(零)自己做的例子

可以看这里的🔗B站视频,感觉静止场景效果不错。
这里我准备用尽量不废话的方式,记录一下从零安装的过程。
💡PS:想当年DFL要换头好难的,极其耗时,还得是寸头短发或光头强……

(一)安装

(1.0)基础环境

有些基本的东西需要先准备好,发现缺的时候再装也来得及:

  • Nvidia的驱动程序。
  • CUDA套件和CUDNN
  • Python(别太旧也别太新)
  • MS构建工具集(这里用得到吗?)
  • 待补充

(1.1)ComfyUI

ComfyUI是一款基于节点流程的图像生成工具,通过连接功能模块构建工作流,界面灵活、显存占用低,适合高阶用户定制AI绘画流程。比较方便的地方是你可以用自带模板中的工作流,进行Wan,LTX,等模型的文生图生视频,图生视频等等。也可以下载别人的工作流,或者自己来设计修改工作流。

官网的 🔗地址
仓库的 🔗地址

比较简单的办法是安装官方提供的压缩包,比如:ComfyUI_windows_portable_nvidia.7z
安装方式:解压后就可用,但稍微注意下对应显卡的版本。
💡 这种方式是自带Python环境的。

根据安装方式不一样,为了后续方便,可能还需要自己安装 ComfyUI-Manager
安装方式git clone 到 xxx\ComfyUI_windows_portable\ComfyUI\custom_nodes\下。

(1.2)Alissonerdx 的 Best Face Swap Video

Alissonerdx的 Alissonerdx 的 Best Face Swap 是一系列专为 Qwen 和 Flux 等模型设计的高保真换脸 LoRA 模型。
而 Best Face Swap Video 则是一款基于 LTX-2 模型的视频换脸 LoRA。它采用“首帧锚定”技术,需对视频第一帧进行高质量换脸作为身份锚点,再生成剩余帧。V2 版本引入杂志蒙版覆盖法,通过精确遮罩强制模型忽略引导视频的原始面部,从而实现稳定的身份迁移。这里我们用的是V3……

(1.2.1)作者的工作流3.0和模型。

BFS在 🔗抱脸网站地址
工作流:workflow_ltx2_head_swap_drag_and_drop_v3.0.json
放到 xxx\ComfyUI_windows_portable\ComfyUI\user\default\workflows\
模型放到对应的目录,不赘述了。

💡 比较简单的方法是先用ComfyUI打开工作流,再看自己缺少哪些模型(也许你之前已经有了呢),按需下载。

(1.2.2)工作流3.0用到的一些LTX3.2模型Kijai版本。

Kijai的LTX模型在 🔗抱脸网站地址

(1.2.3)工作流中用到的一个节点(BFSNodes):

BFSNodes的 🔗仓库地址,需要安装。
忘了也没关系,工作流图中也提示了这个节点的信息。
安装方式git clone 到 xxx\ComfyUI_windows_portable\ComfyUI\custom_nodes\下。

(1.2.4)不常见的调度器bong_tangent:

不装的话只能切换成更常见的比如karras,不过我觉得作者配置啥就用啥呗,装吧。
我用ComfyUI Manager安装了RES4LYF,里面就带有它。
或则也可以从 🔗仓库源码 安装。

(1.2.5)其它节点:

杂七杂八的其它节点我是用ComfyUI Manager安装的。
如果你没有提前安装Kijai的节点,那么缺什么就装什么。

(1.3)Ollama+Qwen3.5 9B

Ollama 是一个开源的、轻量级的本地大模型运行工具,通过简单命令即可一键部署和运行各类AI模型,支持跨平台且保护数据隐私

Qwen3.5 9B 是阿里通义千问系列中性能最强的紧凑型多模态模型,拥有约96.5亿参数,在推理、编程等任务上表现优异,性能可媲美更大规模的模型

流程中会用到LLM自动生成描述视频帧的文本,自动的当然好,要不得自己写提示词。
Ollama的 🔗官网地址。下载安装并pull个Qwen3.5的模型吧。

⚠️ 用Ollama请注意别暴露在公网上,这方面自行了解。

(二)设置

(2.1)工作流

运行ComfyUI。
如果没出错的话,从ComfyUI里面打开那个BFS3.0版本的工作流。
太大了导致能全部截图的缩放比例下,节点名字都显示不出来,哎。
整体流程

(2.2)模型部分

从这里开始感觉都是废话了。
工作流最左上除了说明的第一块就是模型,确认下每个模型是不是都下载了。
没有的话就从左边说明里的地址下载,或者谷歌一下地址。

作者工作流里唯一没更新的就是最重要的那两个Lora,见下图右侧:
名字有点不一样,所以请自行选择他提供的2个Lora之一,或对比后决定。

  • head_swap_v3_rank_64 👉 固定强度、稳定、好控
  • head_swap_v3_rank_adaptive_fro_098 👉 自适应强度、更激进、可能更像但更不稳

设置模型

(2.3)参数

模型选择的下面就是视频,图片,音频。
其实什么都不用配也能用,但需要配合skip_first_frames需要让视频保持在8x+1帧的长度。
可以先上传视频和人物图片,什么都不改先跑一下。
视频参数

(三)生成

右上角的运行,开始运行这个3.0的工作流。

(3.1)导览视频

BFS Video作者说到,V3引入了新的持久模板条件处理流程。与之前主要依赖从第0帧确定身份的版本不同,V3采用了自定义的导览视频(控制视频)构建步骤,使新面孔在整个导览序列中始终可见。

说人话就是:之前版只在第0帧提供身份,V3每一帧都提供身份。

喏,右边这个半边绿加白框的围住源头像,半边源视频的就是导览视频,导览视频会非常快的生成。
如果有问题,那么看看是不是前面的BFSNodes没有安装好。

导览视频

(3.2)自动提示词

默认就是自动提示词,所以需要把Ollama运行起来。
运行在本机的话自然不需要管IP端口,运行在其它服务器,改改IP,还得看Ollama的网络访问权限。

💡 请注意这里默认是qwen3.5:9b模型,因为是从图片生成描述,所以如果要替换掉,可别用纯文本的LLM哦。
自动提示词

(3.3)视频帧数

视频如果不是8x+1帧的长度,就会报错:

"causal_video_autoencoder.py", line 1197, 
in encode raise ValueError("Invalid number of frames: 
Encode input must have 1 + 8 * x frames (e.g., 1, 9, 17, ...). 
Please check your input.") 
ValueError: Invalid number of frames: Encode input must have 1 + 8 * x frames (e.g., 1, 9, 17, ...). 
Please check your input.

汗,我咋知道视频有多少帧?
这时候可以看看日志,自动提示词下面有一句:
Processing 16 frames out of xxx total.
看看那个xxx是否不等于8x+1,然后通过手动调节源视频的skip_first_frames参数,增加/减少相应值。

(四)结果

(4.1)合成结果视频

运行完成后,在工作流最右边可以看到结果。
同时会保存在ComfyUI的output目录中。
运行结果

(4.2)复盘与改进

我们除了提供更好的头像,能改的不多。
可以尝试这两个不同的LoRA和设置不同的模型强度参数(默认1.0)

  • head_swap_v3_rank_64 👉 固定强度、稳定、好控
  • head_swap_v3_rank_adaptive_fro_098 👉 自适应强度、更激进、可能更像但更不稳

模型强度越高,越像源头像,但随之而来是视频中更多闪烁跳动。

好像写完了,应该暂时没别的了吧?

Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐