DeepFaceLab进阶(1):参数说明中文版!
学会了基本操作之后,你出来的效果也许并不理想。或者说你需要在速度和性能之间做一个平衡,或者你想要更高的清晰,更加完美的融合效果。这个时候你就需要自己去设置参数了。
DeepFaceLab 提供了很多可以设置的参数。但是大部分人可能并不明白其背后的含义,哪怕是能看懂它的英文单词,未必真的懂这个参数背后的意义。下面结合软件作者的机翻英文文档和自己的经验做一些参数讲解。 因为官方英文文档本来就是俄语机翻成英语,然后再翻译成中文,这其中难免有谬误,加上很多专业的术语无处可查,所以只能将就了。谁有更好的,更贴切的翻译请群里AT,我会更新上去。
DeepFaceLab参数主要可以分为以下几类:
- 模型参数(train)
- 合成参数(convert)
- 其他参数(extract , convert to mp4)
1.模型参数
模型参数,根据模型不同,各有不同,有一些参数是适用于所有模型。 这其中有些参数只有初始化的时候可以设置,有些参数可以进行修改。下面就一条一条来说明。
Which GPU idx to choose? (Skip: system choice):
该选项针对多卡用户,可以任性其一,默认系统自己配置好的,注意DFL是没办法同时用多卡训练的!
Write preview history? (Y / n skip: n):
是否保存历史预览图,默认不保存。
Choose image for the preview history? (Y / n skip: n):
选择预览图像,默认不启用。
Target iteration (skip: unlimited):
目标迭代次数,默认无限次。 通过这个参数你可以控制模型的训练次数,比如设定10000次,那么到了这个数字后自动停止。
Batch_size (skip: model choice):
批量大小, 默认为4。 对于这个参数普遍共识是在硬件允许的情况下越大越好,选2的n次方最佳。值越大收敛越快,但是单次迭代时间越长。
Feed faces to network sorted by yaw? (Y / n skip: n):
把扔进神经网络的脸图根据侧脸角度进行排序,默认不启用。作者尚未验证对效果有多少影响。
Flip faces randomly? (Y / n:? Help skip: y):
脸部反转,默认启用。 这个参数感觉是比较有用的。 它可以创造更多角度的数据。比如本来只有右侧脸,反转后左侧脸也有了。
Src face scale modifier% (-30 … 30,:? Help skip: 0):
缩放源头像(src)大小。默认不缩放。 如果 src脸比dst脸宽,可以稍微缩小这个值。
Press enter in 2 seconds to override some model settings
两秒内按回车键(Enter),进入模型设置。可以修改BS等参数。这个主要用于二次启动是调整模型参数。
options for H64 and H128:
H64和H128的共有参数
Use lightweight autoencoder? (Y / n,:? Help skip: n):
使用轻量级编码器,默认不启动。 这个参数主要是为了那些显存不够的人。比如3G,4G内存,如果默认参数跑步起来,可以尝试开启轻量级编码器。轻量级会牺牲一些质量,但是系统资源消耗少,迭代快。
options H64, H128, DF, LIAEF128 models:
H64,H128,DF ,LIAEF128共有参数
Use pixel loss? (Y / n,:? Help skip: n / default):
使用像素丢失,默认不启用。可以改善细节,消除抖动。仅在2万次之后启用。经反馈,可能会提升模型崩溃的概率。
options only for SAE model:
SAE模型的参数。
Resolution (64-256:? Help skip: 128):
像素,数值越高,需要越多显存,需要更长的训练时间。你可以选择64到256之间的数值,这个数字应该是16的倍数。256这样的数值很少有电脑能跑,一般建议128。
Half or Full face? (H / f,:? Help skip: f):
半脸还是全脸,默认被全脸。 注意,这两个的差别并不是眉毛,而是横向区域。
Learn mask? (Y / n,:? Help skip: y):
是否学习遮罩/面具?(翻译不重要,反正就是mask)。 默认启用!
Optimizer mode? (1,2,3:? Help skip:% d):
优化模式,这个选项仅针对N卡。 1为默认,2 允许你训练x2网络,需要更多内存,3允许你训练x3网络,需要更多内存,并且慢30%。
这个参数其实主要是为了解决显存太小的问题。使用2和3模式可以共享内存。叫做,显存不够,内存来凑。
AE architecture (df, liae, vg:? Help skip: df):
神经网络的体系结构类型。默认为df , 可选df,liae,vg。 这里主要使用DF和Liae,其实这个参数就是对应了DF和LIAE模型。
AutoEncoder dims (128-1024:? Help skip:% d):
编码器网络规模,一般用默认。所有的脸部特征都会被扔进这个网络,如果这个数值不够,有些细节就无法识别,比如闭眼。这个值越高越好。但是这个属性非常耗配置,太高了就会OOM跑不起来。
Encoder dims per channel (21-85:? Help skip:% d)
每个 通道的编码器网络规模,大图大参数,其他原理同上
Decoder dims per channel (11-85:? Help skip:% d)
每个 通道的解码器网络规模,越大越有利于提升细节,其他原理同上
Remove gray border? (Y / n,:? Help skip: n):
移出灰边。默认不启用。如果启用需要消耗更多硬件资源。可能会增加模型崩溃的概率
Use CA weights? (Y / n,:? Help skip:% s):
使用CA参数初始化网络,有很多优点,可以参考Convolution Aware的相关论文,比如提升模型精度。但是,首次使用比较慢,重要的是会增加模型崩溃的概率!!!
Use multiscale decoder? (Y / n,:? Help skip: n):
使用多维度解码器,提升细节。一般不用!
Use pixel loss? (Y / n,:? Help skip: n / default)
使用像素丢失,默认不启用。可以改善细节,消除抖动。仅在2万次之后启用。经反馈,可能会提升模型崩溃的概率。
Face style power (0.0 .. 100.0:? Help skip:% 1f.):
学习人物风格,比如光照和颜色。默认为0,启用这个参数会增加模型崩溃的概率
Background style power (0.0 .. 100.0:? Help skip:% 1f.):
学习人脸周围的背景,默认为0, 启用这个参数会增加模型崩溃的概率
Apply random color transfer to src faceset? (Y / n,:? Help skip:% s):
使用随机颜色。通过改变src脸部颜色增加素材多样性。这一点和Face style pover类似。只是颜色变化更加精准,同时不需要更多GPU资源。
Pretrain the model? (Y / n,:? Help skip: n):
是否启用模型预训练,默认不启动。软件自带了大量人脸集合,通过预训练,增加模型的变形能力,训练越长,越强。 仅在第一次进入预训练,第二次启动模型,不会进入预训练,直接进入正常模式。
2.合成参数
上图大致展示了人脸合成的原理。这一部是要对人脸进行替换和融合。融合的主要方式有overlay, hist-match,seamless等。 这个环节也有不少的参数,这些参数会直接影响最终效果。
Choose mode: (1) overlay, (2) hist match, (3) hist match bw, (4) seamless (default), (5) raw:
选择融合模式。不同的融合方式,使用了不同的算法。
上面是各种类型的说明,但是即便直接翻译过来也没几个人明白,还不如看英文单词去找资料。基本上每个类型就代表着某种算法,至于哪种算法好,你可以自己去试一试。模式2和模型4比较常用。
Seamless hist match? (Y / n skip: n):
是否启用无缝直方图均衡? 默认不启用。
Masked hist match? (Y / n skip: y):
For modes hist match, hist match bw, seamless, indicates whether the histogram equalize the mask face.
Mask mode: (1) learned, (2) dst, (3) FAN-prd, (4) FAN-dst (5) FAN-prd * dst (6) learned * FAN-prd * FAN-dst help (?) . Default – 1:
遮罩模式
Learned :Learnedmask if you have selected the option Learn mask. The contours of the mask mitigated, but
can sometimes shake.
DST:crude mask obtained directly from individuals dst, so quivering contours of the mask.
FAN-prd :Mask received predtrenirovannoy DEV_FANSEG model of the predicted face. Facial contours
are not trembling.
FAN-dst :Mask received predtrenirovannoy DEV_FANSEG model of dst face. Facial contours are not
trembling.
FAN-prd *dst:the mask obtained by multiplying the FAN-prd and FAN-dst
learned * FAN-prd * FAN-dst:a mask obtained by multiplying the learned, FAN-prd and FANdst
这几种模式,从经验来看,默认的第一种似乎最差,建议选2,后面的3,4,5,6 效果有提升,但是转换速度会慢很多。在使用了Fanseg模型遮罩之后,必须使用带有FAN的模型才能生效。
Choose erode mask modifier [-200..200] (default 0):
这个选项可以减弱Seamless 模式的闪烁问题。
Choose blur mask modifier [-200..200] (default 0):
选择模糊蒙版修改器,通过这个值你可以指定遮罩的平滑度。
默认值为0,上图展示了-200和200的合成效果。
适当调整这个值,可以让边缘看起来更加自然。
Hist match threshold. [0..255] (default – 255):
直方图匹配阈值,默认为255. 可选区间0-255。 适当降低该值,可以解决亮斑的问题。
Choose output face scale modifier [-50..50] (default 0):
图片缩放比例设置。默认0不缩放。 取值范围:-50 ~50 。这个参数非常清晰,无需多说。负值代表缩小,正值代表放大。
Apply color transfer to predicted face? Choose mode (rct / lct skip: None):
是否使用rct或lct算法进一步调整肤色? 默认不启用。可选RCT和LCT。 用了之后似乎有点嘴唇发紫。可以更具实际情况选择是否启用,勇rct还是lct 。
Apply super resolution? (Y / n skip: n):
是否请用无损放大。默认不启用。这里使用了一种基于神经网络的无损放大方案,可以使图片放大时候看起来不模糊,挺有用!
Degrade color power of final image [0..100] (default 0):
降低最终图像的色彩能力,默认为0,取值区间 0~100。
通过降低图标质量,可以掩盖部分瑕疵。
Export png with alpha channel? [0..1] (default 0):
导出透明通道,便于通过视频软件进行后期制作。
3.其他参数
待更新!
已经更新了好多新参数,望更新文章
好!
請問fan model要怎樣才用得了?每逢選擇 Fan- 選項都不能開始轉換
近期合成感覺素材光影影響好大,目前訓練至70萬,但因為素材來源不同,導致臉上光影亂跳,看網路上大神作品感覺光影可以符合dst影片,是否在挑選素材時最好都不要有明顯光影較佳?目前嘗試過調整erode mask modifier、blur mask modifier 、Hist match threshold、color transfer to predicted face
效果都十分有限。
在训练的时候,选择替换的原素材没有眨眼,都是睁眼的图片,而被替换的素材有眨眼或者闭眼的时候,这些表情是否能出来呢?
难! AI软件都没有见过你闭眼的样子,他怎么能还原的出来呢?
哦哦,果然是这样,我应该换些素材再试试
在合成参数方面 有什么选项是特别耗时间的 那些 选默认会更加的省时间 能详细的说明下吗 谢谢
請問就算使用H64+輕量化 可是只要訓練時間夠長 一樣可以足夠清晰嗎
謝謝大大的詳細解說,我有一個小問題,請問當模組開始運算後,如何再次修改模組參數?
再次启动后,两秒内回车,然后可以修改部分参数。
请问8g显存batch size设多大合适?
看你什么模型哦。你可以自己从4开始往上调,当出现OOM就证明已经到极限了。
请问合成出来的视频倍速很快是什么原因呢,需要调节哪里?
data_dst有删除过么?或者提取的时候FPS调低了。
意思是src和dst的FPS保持一致就可以解决这个问题是吗?
Src face scale modifier% (-30 … 30,:? Help skip: 0):
缩放目标(dst)人脸部大小。默认不缩放。 这个参数适用于 src脸比dst脸宽的情况。
英文不是src face吗?缩放的是dst的脸部大小?
感谢提醒,这里有些错误,看了作者的文档,应该是SRC。
原视频两个人物肤色有差异,换完,出来肤色差异一样很大,基本没有变怎么办??
1.保持数据丰富。2模型训练时间够,3.调整合成参数。这个是可以解决的。
請問大神,當訓練素材有bias,如睜眼圖數量大幅度大於閉眼圖
在轉換閉眼圖的時候是否會被數量影響呢?
訓練者是否需要保證不同面向素材的數量盡量一致?
不需要!SRC素材尽量充分就可以了。
合成参数能给个例子吗,我训练的两个肤色有差异 DH模型训练了24小时 合成的视频肤色差异明显,能清楚的看到脸上的边框
最近写了几篇参数详解,你去看看,会有你需要的答案。
請問模型崩潰是說如果訓練了10萬次崩潰了,是否代表這個10萬模型就沒用了。必須從新訓練?