ComfyUI LivePortrait 插件完全教程
1. 插件简介
插件地址: https://github.com/MixLabPro/comfyui-liveportrait
ComfyUI LivePortrait 是一个超级厉害的插件,它能让静态照片"活"起来!想象一下,你有一张朋友的照片,然后你录了一个自己做鬼脸的视频,这个插件就能让照片里的朋友跟着你的视频一起做鬼脸!
主要功能:
- 让静态照片动起来(就像哈利波特里的魔法照片)
- 支持多张脸同时动画(全家福都能一起动)
- 可以精确控制表情(眨眼、微笑、张嘴等等)
- 支持头部转动(左右摇头、点头)
- 可以制作表情过渡动画(从严肃脸慢慢变成笑脸)
能带来什么效果:
- 制作有趣的动态头像
- 让老照片重新"活"过来
- 制作表情包和短视频
- 虚拟主播换脸
- 艺术创作和娱乐应用
2. 如何安装
方法一:通过 ComfyUI Manager 安装(推荐)
- 打开 ComfyUI
- 点击右下角的 "Manager" 按钮
- 在搜索框输入 "liveportrait"
- 找到 "comfyui-liveportrait" 点击安装
- 重启 ComfyUI
方法二:手动安装
- 打开终端或命令提示符
- 进入你的 ComfyUI 安装目录下的 custom_nodes 文件夹
- 运行命令:
git clone https://github.com/MixLabPro/comfyui-liveportrait.git - 重启 ComfyUI
下载必需的模型文件
你需要下载一些"大脑文件"让插件能够工作:
下载地址:
放置位置:
- 下载的文件放到
ComfyUI/models/liveportrait文件夹 - 人脸识别文件放到
ComfyUI/models/insightface文件夹
额外需要的人脸检测模型:
- 下载 face_yolov8m.pt 或 face_yolov8n.pt
- 放到
models/ultralytics/bbox/文件夹
3. 节点详细解析
3.1 Live Portrait 节点
这个节点是干嘛的?
这是插件的核心节点,就像一个"换脸魔法师"。你给它一张静态照片和一个动作视频,它就能让照片里的人跟着视频动起来。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| source_image | source_image | IMAGE类型 | 清晰的正脸照片 | 这是要"变活"的照片,就像给雕像注入灵魂 | 源图像输入,作为面部替换的目标 | 上传一张朋友的照片,最好是正面清晰的 |
| driving_video | driving_video | SCENE_VIDEO类型 | 表情丰富的视频 | 这是"动作指导"视频,告诉照片怎么动 | 驱动视频,提供面部动作和表情变化 | 录一个自己做表情的视频,照片就会跟着做 |
| crop_info | crop_info | CROP_INFO类型 | 可选 | 这是"脸部定位器",告诉系统脸在哪里 | 面部裁剪信息,用于精确定位面部区域 | 如果有多张脸,用这个指定要动哪张脸 |
| driving_video_reverse_align | driving_video_reverse_align | BOOLEAN | True | 这是"动作同步开关",决定动作是否要反向 | 驱动视频反向对齐控制 | 如果动作方向不对,可以关闭这个 |
3.2 Live Portrait for Video 节点
这个节点是干嘛的?
这个节点专门处理"连续照片变动画",就像把一叠照片做成翻页动画书,每张照片都会跟着同一个动作视频动起来。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| source_image_batch | source_image_batch | IMAGE类型(批量) | 多张连续照片 | 这是一堆要"变活"的照片,像动画的每一帧 | 批量源图像输入,用于视频到视频的转换 | 上传一段视频的每一帧,让每帧都跟着动作动 |
| driving_video | driving_video | SCENE_VIDEO类型 | 表情动作视频 | 这是"统一动作指导",所有照片都跟它学 | 驱动视频,为所有帧提供统一的动作参考 | 用一个点头视频,让所有照片里的人都点头 |
3.3 Face Crop Info 节点
这个节点是干嘛的?
这个节点就像一个"人脸侦探",它会在照片里找到所有的脸,然后告诉你每张脸在哪里,有多大,方便后面的节点知道要处理哪张脸。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| source_image | source_image | IMAGE类型 | 包含人脸的照片 | 这是要"找脸"的照片,系统会在里面找人脸 | 输入图像,用于人脸检测和定位 | 上传一张全家福,系统会找出每个人的脸 |
| face_sorting_direction | face_sorting_direction | 下拉选择 | left-right | 这是"脸部排序方式",决定先处理哪张脸 | 人脸排序方向,影响多人脸处理顺序 | 选left-right从左到右处理,large-small从大脸到小脸 |
| face_index | face_index | 整数 | 0 | 这是"脸部编号",指定要处理第几张脸 | 人脸索引,用于选择特定的人脸 | 设为0处理第一张脸,设为-1处理所有脸 |
| debug | debug | 布尔值 | False | 这是"调试模式",开启后能看到找到的脸在哪里 | 调试模式,显示人脸检测结果 | 开启后会显示红框标出找到的脸部位置 |
3.4 Retargeting 节点
这个节点是干嘛的?
这个节点就像一个"动作开关控制器",你可以单独控制眼睛和嘴巴要不要跟着动。比如你只想让眼睛动,嘴巴不动,就可以用这个节点。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| crop_info | crop_info | CROP_INFO类型 | 来自Face Crop Info | 这是"脸部信息",告诉系统要控制哪张脸 | 人脸裁剪信息输入 | 连接Face Crop Info节点的输出 |
| lip | lip | 布尔值 | True | 这是"嘴巴动作开关",控制嘴巴要不要动 | 唇部重定向控制开关 | 关闭后嘴巴就不会跟着视频动了 |
| eye | eye | 布尔值 | True | 这是"眼睛动作开关",控制眼睛要不要动 | 眼部重定向控制开关 | 关闭后眼睛就不会跟着视频眨眼了 |
3.5 Expression Editor 节点
这个节点是干嘛的?
这个节点就像一个"表情调节器",你可以精确控制照片里人的各种表情,比如让他眨眨眼、微微笑、皱皱眉,就像在玩一个表情娃娃。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| src_image | src_image | IMAGE类型 | 清晰人脸照片 | 这是要"调表情"的照片 | 源图像输入 | 上传一张正面清晰的人脸照片 |
| rotate_pitch | rotate_pitch | 浮点数 | 0 | 这是"点头摇头"控制,正数点头,负数仰头 | 俯仰角旋转控制 | 设为10让人轻微点头,设为-10让人轻微仰头 |
| rotate_yaw | rotate_yaw | 浮点数 | 0 | 这是"左右摇头"控制,正数向右,负数向左 | 偏航角旋转控制 | 设为15让人向右看,设为-15让人向左看 |
| rotate_roll | rotate_roll | 浮点数 | 0 | 这是"歪头"控制,正数向右歪,负数向左歪 | 翻滚角旋转控制 | 设为5让人可爱地向右歪头 |
| blink | blink | 浮点数 | 0 | 这是"眨眼"控制,正数闭眼,负数瞪眼 | 眨眼程度控制 | 设为5让人半眯眼,设为15让人闭眼 |
| eyebrow | eyebrow | 浮点数 | 0 | 这是"眉毛"控制,正数挑眉,负数皱眉 | 眉毛表情控制 | 设为10让人挑眉表示疑问 |
| wink | wink | 浮点数 | 0 | 这是"眨单眼"控制,让人做俏皮的眨眼动作 | 单眼眨眼控制 | 设为10让人俏皮地眨左眼 |
| pupil_x | pupil_x | 浮点数 | 0 | 这是"眼球左右"控制,正数看右边,负数看左边 | 瞳孔水平位置控制 | 设为5让人眼珠向右看 |
| pupil_y | pupil_y | 浮点数 | 0 | 这是"眼球上下"控制,正数向上看,负数向下看 | 瞳孔垂直位置控制 | 设为3让人眼珠向上看 |
| aaa | aaa | 浮点数 | 0 | 这是"张嘴"控制,数值越大嘴张得越大 | 开口程度控制 | 设为30让人张大嘴巴说"啊" |
| eee | eee | 浮点数 | 0 | 这是"咧嘴"控制,让人做"咿"的表情 | 咧嘴表情控制 | 设为5让人做轻微咧嘴表情 |
| woo | woo | 浮点数 | 0 | 这是"嘟嘴"控制,让人做"呜"的表情 | 嘟嘴表情控制 | 设为8让人嘟起嘴巴 |
| smile | smile | 浮点数 | 0 | 这是"微笑"控制,数值越大笑得越开心 | 微笑程度控制 | 设为0.5让人微微笑,设为1.0让人开心大笑 |
| src_weight | src_weight | 浮点数 | 1 | 这是"原始表情保留",控制保留多少原照片的表情 | 源表情权重控制 | 设为0.5表情变化更自然,设为0完全按新表情 |
| expression_json | expression_json | 字符串 | 可选 | 这是"表情配方",可以输入预设的表情参数 | 表情参数JSON输入 | 输入别人分享的表情参数快速应用 |
3.6 Expression Video 节点
这个节点是干嘛的?
这个节点就像一个"表情动画制作器",你给它两个不同的表情设置,它就能制作出从一个表情慢慢变到另一个表情的动画,比如从严肃脸慢慢变成笑脸。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| src_image | src_image | IMAGE类型 | 清晰人脸照片 | 这是要做"表情动画"的照片 | 源图像输入 | 上传一张要制作表情动画的照片 |
| from_expression | from_expression | 字符串 | JSON格式 | 这是"起始表情",动画开始时的表情 | 起始表情参数JSON | 输入严肃表情的参数设置 |
| to_expression | to_expression | 字符串 | JSON格式 | 这是"结束表情",动画结束时的表情 | 目标表情参数JSON | 输入微笑表情的参数设置 |
| interpolation_type | interpolation_type | 下拉选择 | cubic | 这是"变化方式",控制表情怎么从一个变到另一个 | 插值算法类型 | cubic最平滑,linear直线变化,nearest突变 |
| interpolations_num | interpolations_num | 整数 | 30 | 这是"动画帧数",数值越大动画越流畅 | 插值帧数控制 | 设为30生成30帧的表情变化动画 |
3.7 Expression Video 2 Video 节点
这个节点是干嘛的?
这个节点是"批量表情动画制作器",它可以给一段视频的每一帧都应用表情变化,让整个视频从一种表情慢慢变成另一种表情。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| src_frames | src_frames | IMAGE类型(批量) | 视频帧序列 | 这是要做"表情变化"的视频帧 | 源视频帧批量输入 | 输入一段视频的所有帧 |
| from_expression | from_expression | 字符串 | JSON格式 | 这是"视频开始时的表情" | 起始表情参数JSON | 视频第一帧的表情设置 |
| to_expression | to_expression | 字符串 | JSON格式 | 这是"视频结束时的表情" | 目标表情参数JSON | 视频最后一帧的表情设置 |
| interpolation_type | interpolation_type | 下拉选择 | cubic | 这是"表情变化方式",控制整个视频的表情如何过渡 | 插值算法类型 | cubic让表情变化最自然平滑 |
4. 使用技巧和建议
4.1 照片选择技巧
- 选择正面清晰的照片:侧脸或模糊的照片效果会很差
- 光线要均匀:避免强烈的阴影或逆光
- 表情自然:原照片表情越自然,效果越好
- 分辨率适中:太小看不清,太大处理慢
4.2 驱动视频制作技巧
- 动作要明显:表情和动作要夸张一点
- 时长适中:建议3-10秒,太长处理时间久
- 稳定拍摄:避免手抖,最好用三脚架
- 光线一致:保持稳定的光线条件
4.3 参数调节技巧
- 从小数值开始:先用小的参数值测试效果
- 逐步调整:一次只调一个参数,看清楚效果
- 保存好的设置:把效果好的参数记录下来
- 多尝试组合:不同参数组合会有意想不到的效果
4.4 性能优化建议
- 降低分辨率:测试时用小图,确定效果后再用大图
- 分批处理:处理多张照片时分批进行
- 关闭不需要的功能:用Retargeting节点关闭不需要的动作
- 清理显存:处理完一批后重启ComfyUI清理显存
5. 常见问题解答
Q1: 为什么我的照片没有动起来?
A: 检查以下几点:
- 模型文件是否正确下载和放置
- 照片中的人脸是否清晰可见
- 驱动视频是否包含明显的面部动作
- 检查节点连接是否正确
Q2: 生成的视频效果很奇怪,脸部扭曲?
A: 可能的原因:
- 原照片和驱动视频的人脸角度差异太大
- 照片质量不够好(模糊、侧脸等)
- 参数设置过于极端
- 建议使用正面清晰照片和相似角度的驱动视频
Q3: 处理速度很慢怎么办?
A: 优化建议:
- 降低输入图片和视频的分辨率
- 缩短驱动视频的时长
- 关闭调试模式
- 确保有足够的显存
Q4: 多人脸照片怎么处理?
A: 使用方法:
- 用Face Crop Info节点检测所有人脸
- 设置face_index参数选择特定人脸
- 可以用多个节点分别处理不同的人脸
- 最后合成到一起
Q5: Expression Editor的参数怎么调?
A: 调节技巧:
- 从0开始,慢慢增加数值
- 观察每个参数的单独效果
- 微笑参数建议在0.1-0.8之间
- 旋转参数建议在-20到20之间
Q6: 如何制作表情动画?
A: 步骤:
- 用Expression Editor调出起始表情,复制JSON
- 再调出结束表情,复制JSON
- 用Expression Video节点,输入两个JSON
- 设置合适的帧数(建议30-60帧)
- 选择cubic插值获得最平滑效果
Q7: 生成的视频没有声音?
A: 这是正常的,因为:
- LivePortrait只处理视觉效果,不处理音频
- 如需添加声音,可以用其他视频编辑软件
- 或者使用ComfyUI的音频处理插件
Q8: 如何批量处理多张照片?
A: 方法:
- 使用Live Portrait for Video节点
- 将多张照片作为批量输入
- 使用同一个驱动视频
- 系统会自动处理每张照片
6. 进阶应用技巧
6.1 制作虚拟主播
- 准备一张清晰的主播照片
- 录制自己的表情和动作视频
- 使用Live Portrait节点生成动态主播
- 配合音频处理插件添加声音
6.2 老照片复活
- 选择清晰的老照片(可以先用AI修复)
- 录制温和的表情视频(微笑、点头等)
- 使用较小的参数值保持自然效果
- 可以添加怀旧滤镜增强效果
6.3 表情包制作
- 使用Expression Editor制作夸张表情
- 调大smile、blink、eyebrow等参数
- 制作多个不同表情的版本
- 导出为GIF格式
6.4 艺术创作
- 使用艺术画作中的人物肖像
- 创造性地调节表情参数
- 制作超现实的动态效果
- 结合其他ComfyUI节点创作独特作品
7. 相关插件推荐
为了获得更好的使用体验,建议同时安装以下插件:
- comfyui-mixlab-nodes: 提供更多视频处理功能
- comfyui-ultralytics-yolo: 提供人脸检测模型
- Comfyui-ChatTTS: 添加语音合成功能
- comfyui-sound-lab: 音频处理工具
- comfyui-Image-reward: 图像质量评估
8. 总结
ComfyUI LivePortrait 插件是一个功能强大的动态肖像生成工具,通过7个不同的节点,你可以:
- 让静态照片动起来
- 精确控制面部表情
- 制作表情过渡动画
- 处理多人脸场景
- 批量处理视频
掌握这些节点的使用方法,你就能创造出各种有趣的动态内容。记住,多练习、多尝试是掌握这个插件的关键!
最重要的提醒:
- 始终使用合法、合规的照片和视频
- 尊重他人的肖像权和隐私
- 不要用于恶意的深度伪造
- 享受创作的乐趣,传播正能量!