先来一张示例效果,左侧为用女神朱茵替换后的效果,整体替换还是比较自然的,视频和图片均可以
工具使用说明:
项目地址:https://github.com/facefusion/facefusion
说明文档:https://docs.facefusion.io/
设备:Mac-M2/16g ,本地部署
选择一张清晰正面的人脸照片,再选择要替换的图片,右侧是预览区。
点击Start按钮替换,替换好后点击Download保存到电脑。
如果想要更清晰的效果,可以勾选脸部增强Face_enhancer
,再替换一次。
脸部替换
视频替换的时候的时候,可以在右侧的预览区可看到效果,切换关键帧,选择需要替换的脸部。人脸选择模式默认从左向右检测人脸,并替换检测到的第一个。检测到的人脸会在右侧列出,点击对应人脸图标可以改变替换的人。选择many
会替换所有检测到的人脸,选择one
只替换检测到的第一张人脸。
REFERENCE FACE DISTANCE
面部距离参数大部分情况下用默认值0.6即可。如果视频里有一些角度较大的低头侧脸镜头,检测出的人脸匹配度很低,可以把它调大,最大值1.5只要判断是人脸就会替换。
Execusion Thread Count
线程数量可以看当前显存使用情况适当调大。底部把保持原视频帧率和跳过下载勾选上。人脸很清晰没有遮挡物的视频,右侧参数可以全部用默认值。如果生成速度较慢,可以将Execusion Thread Count
调成12。
遮罩的使用
对于脸部有物体遮挡的视频,需要选择恰当的遮罩模式,才能达到更好的面部融合效果。使用遮罩时建议开启FaceDebug调试模式,先查看设置效果。
默认的Box模式遮罩是一个绿色方框。对于化妆等脸部有遮挡的视频,要勾选第二种occlusion
封闭遮罩模式。Face Mask Blur
遮罩模糊默认是0.3,它调节遮挡物体的透明度,不透明物体可以调到0.5以上。移动预览进度条可以看到遮罩曲线能贴近并绕过脸部遮挡物。
调试好后执行替换前一定要先关闭FaceDebug,否则换完的视频上会有遮罩曲线。occlusion
模式下Mask Blur值的设置可能需要多次尝试,对于透明物体如眼镜玻璃杯,调小这个值反而有更真实的融合效果。
另一个遮罩类型是region
脸部区域模式。勾选后下面会出现眉毛、鼻子、眼睛、嘴巴等部位参数,默认全部勾选替换。如果不想替换某个部位如嘴巴,取消Mouth的勾选,预览里嘴巴区域就会标记出来不替换。这种模式对嘴部说话镜头较多的视频效果会更好一些。
当选中occlusion
或region
遮罩类型时,可以用FACE MASK PADDING TOP
、FACE MASK PADDING RIGHT
、FACE MASK PADDING BOTTOM
、FACE MASK PADDING LEFT
这四个参数更灵活地控制脸部替换的区域,数值越大不替换的区域就越多,控制的起始位置分别是从脸的上下左右开始。如果只选Box模式,这四个值控制的就是方形遮罩。
对于换脸时有字幕被box
遮罩覆盖变模糊的视频,可以调整FACE MASK PADDING BOTTOM
消除。先勾选FaceDebug
显示出Box遮罩,调整FACE MASK PADDING BOTTOM
直到红框没有覆盖字幕为止,然后取消FaceDebug
执行替换。
Mac 使用的时候可以勾选Coreml,生成的速度会快很多。