deepfacelab中文网

 找回密码
 立即注册(仅限QQ邮箱)
123
返回列表 发新帖
楼主: xunlian

浅谈DF架构换脸原理,新人少走点弯路

[复制链接]

3

主题

94

帖子

2271

积分

初级丹圣

Rank: 8Rank: 8

积分
2271
 楼主| 发表于 2025-3-18 17:54:25 | 显示全部楼层
yzc281 发表于 2025-3-18 17:40
后期是指和GAN同时训练?还是GAN后再练一段

关闭扭曲即可,GAN不GAN 随你
回复 支持 反对

使用道具 举报

1

主题

100

帖子

1188

积分

初级丹圣

Rank: 8Rank: 8

积分
1188
发表于 2025-3-18 22:29:58 | 显示全部楼层
1、Trainning (训练)——工作流的叙述中,大意是不是SRC编码的由SRC解码器负责生成图像,DST编码的由DST解码器负责生成图像?
回复 支持 反对

使用道具 举报

3

主题

94

帖子

2271

积分

初级丹圣

Rank: 8Rank: 8

积分
2271
 楼主| 发表于 2025-3-18 22:33:18 | 显示全部楼层
yzc281 发表于 2025-3-18 22:29
1、Trainning (训练)——工作流的叙述中,大意是不是SRC编码的由SRC解码器负责生成图像,DST编码的由DST ...

DF架构 SCR和DST都是同一个编码器编码,解码是各自解各自的。
回复 支持 反对

使用道具 举报

1

主题

100

帖子

1188

积分

初级丹圣

Rank: 8Rank: 8

积分
1188
发表于 2025-3-18 23:41:29 | 显示全部楼层
懂了,启发很大,感谢回复
回复 支持 反对

使用道具 举报

8

主题

165

帖子

1652

积分

初级丹圣

Rank: 8Rank: 8

积分
1652

万事如意节日勋章

发表于 2025-6-13 06:41:12 | 显示全部楼层
xunlian 发表于 2025-3-12 09:48
在模型的世界里,不存在预训练和正训。当你把素材放进,启动训练后,编码器和解码器的权重已经开始累积。
...

按照这个说法,预训练目的是学习标准编码,是不是可以理解为我可以放入同一人的全角度人脸进行预训练,正训时再src同一人,dst换成几万张杂图?
回复 支持 反对

使用道具 举报

3

主题

94

帖子

2271

积分

初级丹圣

Rank: 8Rank: 8

积分
2271
 楼主| 发表于 2025-6-13 09:08:04 | 显示全部楼层
mjy9921130 发表于 2025-6-13 06:41
按照这个说法,预训练目的是学习标准编码,是不是可以理解为我可以放入同一人的全角度人脸进行预训练,正 ...

DFL的原理其实就是2步
第一步:提取出SRC和DST的特征,这个阶段就是训练编码器。随着不断训练 2 4预览窗口 会逐渐清晰。
第二步:随着SRC和DST特征逐渐清晰,就能对比找出相似SRC和DST,产生映射关系。预览窗口5列就会显示换脸效果图。

这2个步骤是同时进行的。

预训练原理 其实就是在强化第一步,弱化抑制第二步(特别是SRC和SRC对练。用预训练丹放入自己的SRC和DST后, 2 4列立马就出图像了,感觉效果很好,但是5列根本就不像,所以还要训练。

所谓的预训练 只是很多人为了节省时间,想走捷径而已。

SRC和SRC的预训练方式,上面已经解释了,强化第一步,弱化抑制第二步。

既然第一步和第二步是同时进行的,即使从0开始训练时,就正式放入想要训练的SRC和DST不是更好?
至于有些人说预训练可以解决SRC和DST光影问题,其实是自欺欺人。DFL本质就是找SRC和DST的相似图片,SRC的素材决定了输出效果。DST和某个SCR最相似,就输出某个SCR。

最后一个问题:预训练(SRC-SRC),正训(SRC-多DST)。
看来你要训练训练一个单SRC和多DST的万能模型。那你是否能在论坛中找出一个真正意义上的万能模型?很多万能模型以及大佬都说提一句 找脸型相似的,一定要脸型相似的。为何要脸型相似?因为脸型差异大的,根本换不出SRC嘛。

按照简单逻辑理解,万能模型就是脸型通吃(前提 素材OK),相似脸型 80-90相似,脸型差异大 起码 50-60相似(至少眼,嘴,鼻 ),好比一个吃胖了,或者廋了的SRC嘛。但是普遍情况是,脸型差异大的,基本就直接输出DST了。

最后说结论 你采取所谓百W预训练单+正训单src,多DST,训练万能模型,最终结果 仍然是一个只能换相似脸型的伪万能模型。

DFL不是一个无脑挂机的项目,也不要盲目追求LOSS值得降低。不同的SRC和DST 需要采取不同的训练方式,方法。论坛中的教程 其实本质上是相似脸型 1vs1的训练方法。盲目套用最终只是浪费时间。
回复 支持 反对

使用道具 举报

8

主题

165

帖子

1652

积分

初级丹圣

Rank: 8Rank: 8

积分
1652

万事如意节日勋章

发表于 2025-6-13 21:50:08 | 显示全部楼层
xunlian 发表于 2025-6-13 09:08
DFL的原理其实就是2步
第一步:提取出SRC和DST的特征,这个阶段就是训练编码器。随着不断训练 2 4预览窗 ...

大神,我看有人说head模型可以无视dst脸型,直接输出src脸型,这个是真的吗?
回复 支持 反对

使用道具 举报

3

主题

94

帖子

2271

积分

初级丹圣

Rank: 8Rank: 8

积分
2271
 楼主| 发表于 2025-6-14 09:17:14 | 显示全部楼层
mjy9921130 发表于 2025-6-13 21:50
大神,我看有人说head模型可以无视dst脸型,直接输出src脸型,这个是真的吗? ...

你都换头了,何来脸型问题呢?
都把SRC整个头都搬过去了

最后还是提醒一点,不要盲目追求所谓万能模型。即使DFL把SRC百分百的输出,你也要考虑贴合问题。换脸实质是把SRC的面罩贴合/覆盖在DST原图上,如果一个三角形 去覆盖一个圆形,始终是无法全部覆盖,这又回到了像不像的问题,但这不能怪DFL。

回复 支持 反对

使用道具 举报

0

主题

5

帖子

183

积分

高级丹童

Rank: 2

积分
183
发表于 4 天前 | 显示全部楼层
关于src-src这种预训练方式,我也发表一下我的意见
我的观点和楼主一致,同样是不赞成,甚至相当反对此方法。但是我的分析是,src-src将大量的多id数据送入训练(如果我没理解错的话),使得训练目标从一开始就偏离了架构设计。这导致src decoder和 dst decoder都承担着相同的训练目标,即在同一批数据上完成重建作业,那么这个架构实际上等同一个只有一个decoder的ae,因此下文不再区分src和dst的decoder。由于decoder需要从大量的数据中重建出不同身份的人脸,所以decoder无法编码特定的身份信息(没错,就是编码,因为decoder的本意就是包含对特定身份的理解,能把一切中立人脸特征解码成特定身份人脸)。那么身份信息就只能由共享的encoder和inter来表达。而这正是背离了df设计的初衷。df的核心意图正是特定身份的分离,不同id用不同的decoder去编码,而inter只负责编码中立的特征。如此一来,虽然预训练后能快速成像,那是因为ae本身就是在重建任务上训练的,但是由于src decoder学习的不是如何将通用人脸特征转化成特定id人脸,而是将一个包含身份信息的特征还原成原来人脸,所以导致将任意被inter编码后的人脸送入src decoder都无法实现换脸。这才是换脸失败的根本原因。严格来说,这不是"污染",不是因为见了太多人脸导致对特定人脸表达变弱,而是更严重的问题:训练彻底脱离了任务目标,尽管预训练本意是缩短这个进程,但遗憾的是未来需要很长时间将参数从一个任务的局部最优拉到另一个任务的局部最优,这个代价是昂贵的
回复 支持 反对

使用道具 举报

0

主题

5

帖子

183

积分

高级丹童

Rank: 2

积分
183
发表于 4 天前 | 显示全部楼层
xunlian 发表于 2025-3-12 09:54
LIAE架构 解码器共享,已经被污染了,从解码器角度注定了无法达到逼真换脸,不做过多说明 ...

另外我也不认同liae解码器共享导致被污染的观点。liae和df本质不是同一个换脸范式,不能用同样的思路理解它。liae类似于gan inverse后的图像编辑,它本质上是在做人脸属性编辑,这和df不同,df是用id+通用人脸特征=具有特定风格的身份人脸。接下来详细分析liae架构:对于共用inter,需要分别对src和dst编码,然后完成两个目标,一个是独立重建src,一个是和interB协同重建dst。decoder作为共享解码器,同样不编码特定身份,那么身份只有可能是inter来编码。这不同于df,df的inter不编码身份信息。问题在于liae有两个inter,得看分别做了什么。刚才说了共享inter需要负责重建任务,interAB自己是不懂src和dst的语义的,对它来说都一视同仁,它的目标就是对任何输入的输出都要能独立重建src和联合重建dst。那么显然独立重建src的信号要远远强烈于后一信号,interAB会倾向于学习输出带src身份的特征(不管输入是dst还是src)来完成src的重建任务,同时interB负责编码包括dst身份在内的其他特征,以此配合重建dst。这一观点的证明就是,换脸的时候,是将dst经过interAB的输出解码得到换脸。而interAB在里面真正做的,就是将输入特征强制投影到一个src身份的临域,这就在保留了其他属性的同时,也实现了身份的迁移。这也是为什么论文里说liae的隐空间更加紧凑,同时光影好的原因。这样的思路和gan编辑类似,都是做潜空间重映射,通过编辑潜空间的特定维度来控制生成图像的内容属性,只是这个过程是隐式的无监督的。因此架构如果出现换脸不像的问题,很可能不是因为解码器共享导致被污染,而是因为InterAB这个最核心的换脸组件内部映射是隐式的无监督的,也就是没有损失去指导它怎么转换,朝着哪个方向转换src身份,导致interAB优化目标被decoder的优化偏好所影响,进而产生身份波动
回复 支持 反对

使用道具 举报

QQ|Archiver|手机版|deepfacelab中文网 |网站地图

GMT+8, 2025-10-16 14:43 , Processed in 0.120754 second(s), 30 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表