LivePortrait Process

节点功能:基于源图像和驱动图像的输入,结合面部关键点和其他配置信息,生成经过面部驱动动画处理后的图像。这种处理广泛应用于人脸动画、表情迁移、以及动态面部表情合成等任务。

输入参数

参数名称说明
pipeline使用已加载的 LivePortrait 推理管道。
crop_info人脸区域裁剪信息。可来自人脸检测节点,用于定位源脸区域;为空时使用默认裁剪策略。
source_image源图像,作为驱动目标(静态人像)。
driving_images驱动帧序列(动画参考图像)。
opt_retargeting_info可选的眼口重定向信息。

输出参数

参数名称说明
cropped_image生成的人脸动画图像序列。
output包含中间状态、图像、融合信息的结构体。

控件参数

参数名称说明
lip_zero是否启用静默唇同步修正。
lip_zero_threshold静默唇修正阈值,越小越敏感。典型值为 0.03,数值越低越容易触发“合嘴”处理。
stitching是否启用多模块融合(眼口等部位)。建议开启,可使生成表情更自然一致。
delta_multiplier表情动作强度倍率,默认 1.0。用于调整动作幅度,值越大动作越夸张,支持负值反向驱动。
mismatch_method驱动帧与目标帧不匹配时的处理策略。可选值:constant(重复首帧)、cycle(循环)、mirror(来回播放)、cut(截断多余帧)。
relative_motion_mode动作相对性模式设置。 可选值: relative:相对运动(推荐) source_video_smoothed:参考源头平滑运动 relative_rotation_only:仅旋转 single_frame:固定参考帧 off:无处理。
driving_smooth_observation_variance驱动帧平滑参数(卡尔曼滤波方差)。越小越稳定但易失去细节,推荐默认值 3e-6。
expression_friendly是否启用更自然的表情驱动(限制极端表情)。
expression_friendly_multiplier表情柔化倍率(需开启上项)。

当lip_zero设置为false, 对原图嘴巴的初始状态控制没有变化。

当lip_zero设置为True,lip_zero_threshold为0.03,图像中前几帧嘴巴几乎是闭合的,控制在阈值内变化,最终图相比上面嘴巴的张开缩小了些。

当lip_zero设置为True,lip_zero_threshold为2,图像中的嘴巴变化幅度又比0.03时更大。

当设置不同的delta_multiplier值时,人物表情的变化如下图,可以看到,当delta_multiplier值设置过大时,人物表情是崩坏的。

在选择mismatch_method中方法时,constant,cycle,mirror方法目测差距不大,输入源为单张图片时,在使用cut方法时,cropped_image只会输出单帧图片。如下图,在使用constant方法时,cropped_image输出为16帧(帧数与驱动视频帧相关,当然也可以手动设置帧数)图片,而cut方法只有单帧图片,这会导致生成动画中人物表情不会有变化。

当设置relative_motion_mode=relative,人物表情的运动会随着驱动视频中人物表情运动。如下图,可以看到,relative和single_frame模式随着驱动人物眼睛闭合源图也会逐渐闭合。而relative_rotation_only和off模式表情并没有什么变化。

relative模式

relative_rotation_only模式

single_frame模式

off模式

需要注意的是,在使用single_frame模式和off模式时,expression_friendly许设置为true,否则图像会比较崩。