
ComfyUI 社区里凡是能稳定做电影级图生视频的工作流基本都沿着同一条路线先用图像模型把“第一帧”的构图、光影和人物定死再用视频模型让这一帧动起来。整个过程听起来不复杂但实际落地时很多人卡在同一个地方——参考图和视频模型之间没有形成一致性人物开头像主角过了三秒变成另一个人。z-image 配合 wan2.2 这类方案正是为了改善这个问题出现的z-image 负责生成和修整参考帧wan2.2 负责在参考帧的基础上生成连贯视频。本文从环境准备讲到节点连接再到视频转绘和人物一致性的调参方法适合已经跑通过 ComfyUI 基础工作流、想进入图生视频和视频转绘方向的人。1. 先用“参考图 视频模型”的组合理解这条工作流1.1 三个核心角色并不是各自独立工作的ComfyUI 是承载工作流的容器。它的本质是一个节点图编辑器每个节点负责一类操作比如加载模型、编码文本、处理图像、采样生成节点之间通过连线传递张量或潜空间数据。对视频生成来说ComfyUI 的意义是让“参考图生成”和“视频生成”两个阶段在同一个工程环境下串联起来而不是来回切换软件。z-image 在社区工作流里主要承担参考帧生成和风格化处理。具体工作可以简单记为输入文字描述或粗糙底图输出一张构图完整、光影统一、风格偏向电影感的参考图。它解决的是一致性问题的前半段——在还没有“动起来”之前先把人物的脸、服装、环境光线和镜头语言固定下来。wan2.2 承担的是后半段。它属于视频生成模型能从一张参考图出发按照提示词描述产生一段带运动变化的视频片段。和纯文生视频相比图生视频模式多了一个强约束首帧画面已经由参考图决定模型要做的不是无中生有地“想象画面”而是让既有画面沿时间轴移动、产生动态变化。这两个环节独立看都不难难在组合。如果 z-image 生成的参考图是横构图wan2.2 却用了不匹配的分辨率或者提示词里的镜头描述和参考图冲突最终输出就会变成“画面挺好看但根本没有运动逻辑”。1.2 图生视频为什么不连贯一致性到底缺在哪先要知道一个基本事实视频生成模型在生成每一帧时并不会像剪辑软件那样把上一帧当底图逐像素复制。它是在潜空间里根据条件图和文本提示词逐步采样出整段潜变量。帧与帧之间的一致性依赖的是模型的注意力机制和去噪过程中的约束而不是严格的“逐帧锁定”。所以图生视频出现以下现象非常常见人物脸型在镜头切换后发生明显变化服装颜色从深蓝漂成黑色同一个场景里的桌子消失又出现镜头运动速度忽快忽慢像被随机驱动。这些问题的本质是参考图对生成过程的约束力度不足。wan2.2 这类模型虽然能用参考图作为首帧条件但如果提示词过多过杂、采样强度过高、参考帧质量差模型就会“自由发挥”。把一致性拆分到工作流里看至少有三个环节可以挽救参考帧生成环节保证首帧本身是高质量的、可被模型准确理解的提示词环节用镜头语言和画面约束把运动方向说清楚采样参数环节通过降低噪声强度和固定种子限制模型漂移空间。后面第 4 章会重点讲参数第 3 章先解决节点和提示词问题。1.3 这条工作流的完整链路把上面两个模型放到一条工作流里最简链路是参考图生成z-image- 图像编码VAE Encode- 文本编码CLIP / Text Encode- wan2.2 图生视频加载 - KSampler 采样 - VAE 解码 - 保存视频这个流程和普通文生图有明显区别。普通文生图最后输出一张静态图这里是输出一长段视频普通文生图只需要图像 VAE这里需要视频模型配套的 VAE 和 CLIP如果混用会在解码阶段出现颜色异常或无法运行。记住这一点很多新手的第一个坑就已经绕开了。后面章节说的“工作流搭建”本质就是把这条链路上的每个节点在 ComfyUI 里正确摆好并且确保模型文件放对位置。2. 环境准备先把 ComfyUI、模型目录和显卡对齐2.1 一个可以复用的软硬件基线视频生成比文生图吃显存得多原因是潜空间里同时存在多帧数据。硬件资源不够时很多问题根本不是参数问题而是显存直接爆掉。下面是一个比较稳的基线表实际项目还要结合自己的显卡调整。项目最低要求推荐要求说明GPU6GB 显存12GB 以上显存8GB 可以跑低分辨率短视频16GB 更从容驱动NVIDIA 驱动更新到支持 CUDA 12 的版本同上老驱动会导致 PyTorch 无法调用 GPUPython3.103.10 或 3.11ComfyUI 官方要求版本过旧会装不上依赖PyTorch2.xCUDA 版2.xCUDA 版CPU 版无法跑视频生成实用流程系统Windows 10/11 或主流 Linux 发行版Windows 或 Linux显存不足时 Linux 可用配置更灵活磁盘空闲20GB 以上80GB 以上模型文件通常很大视频输出也需要临时空间这里特别提一下 5070 显卡。它在笔记本和入门台式机上很常见显存通常是 8GB 级别不是不能跑 wan2.2而是需要降低分辨率、使用量化版本并把视频长度控制在较短范围内。很多“显存不足”问题基本都来自这类设备更具体的调法在第 5 章。2.2 安装 ComfyUI 的三种方式第一种是使用社区整合包也就是很多人提到的“秋叶一键整合包”。它的优点是开箱即用常见的自定义节点、目录结构和依赖大多已经配好适合第一次接触 ComfyUI 的用户。缺点是版本更新节奏不一定跟得上上游内置节点较多时也会掩盖依赖问题。如果使用整合包建议先确认它的 ComfyUI 核心版本是否能加载 wan2.2 对应的节点最好在更新前保留一份备份。第二种是 git clone 官方仓库部署适合需要频繁更新和版本追踪的开发者。命令如下git clone https://github.com/comfyanonymous/ComfyUI.git cd ComfyUI python -m venv venv source venv/bin/activate # Windows 下使用 venv\Scripts\activate pip install -r requirements.txt安装完先启动一次确认 Web 界面可以打开再继续做下面的工作流python main.py第三种是在已有 Python 环境里安装但强烈建议使用独立虚拟环境。ComfyUI 的依赖和 Stable Diffusion WebUI 等工具可能会冲突虚拟环境可以把影响隔离掉。区分一下学习环境和生产环境学习环境只要能跑通、能折腾整合包完全够用生产环境建议用 git clone 的方式管理版本因为你需要清楚地知道自己在哪个版本上后续更新、回滚、排查都更可控。2.3 模型文件放在哪里目录不能放错ComfyUI 加载模型时默认按固定目录查找。很多工作流导入失败不是因为节点代码有问题而是模型文件放错目录导致加载节点找不到文件。模型类型默认放置目录说明扩散模型 / UNETComfyUI/models/diffusion_models/wan2.2 的生成主模型放这里VAEComfyUI/models/vae/视频解码用 VAE不能和 SD1.5 混用CLIP / 文本编码器ComfyUI/models/text_encoders/负责把提示词编码成条件向量LoRAComfyUI/models/loras/用于角色或风格微调ControlNetComfyUI/models/controlnet/控制动作、景深、线条时使用自定义节点ComfyUI/custom_nodes/git clone 的节点仓库放这里下载模型时要注意匹配关系。wan2.2 的图生视频模型、VAE、CLIP 通常是一套命名里一般会带 i2v、t2v 或分辨率信息。下载后先核对文件大小和校验值不要凭文件名猜。下载来源以模型原作者或 ComfyUI 社区教程提供的地址为准。2.4 第一次启动前先做一次环境检查即使安装完成也不要直接导入高复杂度工作流。建议按这个顺序检查启动 ComfyUI 后控制台是否能正常打印 GPU 信息浏览器打开主界面左侧节点列表是否出现常用节点确认设置里的 Python 环境和 GPU 是否正常用官方自带的示例工作流生成一张小图验证基本链路导入目标工作流之前先导出并保存当前基础工作流作为回退点。这样做的原因很简单工作流崩溃时如果连最简单的生成都无法完成排查范围会变得非常大。先确认地基稳了再上 z-image 和 wan2.2效率会高很多。3. 加载 z-image 参考图并把 wan2.2 接进工作流3.1 先处理最常见的“缺失节点”提示网上分享的 ComfyUI 工作流大多以 JSON 文件形式提供。导入后经常出现一段提示“请安装缺失的包以使用此工作流。要安装缺失的节点请先在你的 python 环境中运行……”这是 ComfyUI 在加载工作流时发现当前环境缺少对应自定义节点直接给出的提示。看到这句话不用慌它不是参数错误而是依赖缺失。处理步骤打开 ComfyUI 控制台查看报错日志。日志里通常会列出无法导入的节点类名比如某个自定义节点仓库的类名如果安装了 ComfyUI Manager可以在界面右侧点击 Manager再选择 Install Missing Custom Nodes按列表安装如果没有 Manager就用 git clone 把缺少的节点仓库安装到 custom_nodes 目录cd ComfyUI/custom_nodes git clone https://github.com/example/custom-node-repo.git cd custom-node-repo pip install -r requirements.txt重启 ComfyUI注意重启后控制台会重新执行节点导入观察是否还有红色报错。这里有一个容易被忽略的坑同一个节点仓库可能有不同分支和版本。工作流作者使用的版本和你安装的最新版接口不一致时即使安装了也会出现“找不到某个输入或输出”的现象。遇到这种情况要看工作流文件里记录的节点版本信息尽量安装匹配的版本不要无脑用最新版。3.2 最简节点连接一张图怎么生成视频如果加载的是别人的完整工作流先不要急着调参先看节点连接关系理解数据流。常见的最小图生视频链路如下Load Image加载参考图。参考图可以自己用 z-image 生成也可以从素材库挑选VAE Encode把参考图编码进潜空间。这里的 VAE 要选择 wan2.2 配套的 VAE不要使用 SD1.5 的CLIP Text Encode正向输入画面内容和镜头描述CLIP Text Encode反向输入不希望出现的元素例如模糊、变形、多余肢体加载 wan2.2 图生视频 UNET 的节点从 models 目录选择 i2v 主模型KSampler设置种子、采样步数、降噪强度VAE Decode把潜空间数据解码成像素画面Save Video保存为 mp4 或 gif。在 ComfyUI 界面里节点不一定要完全一致关键是数据流方向。图像从左侧进入 VAE EncodeVAE Encode 的 latent 输出接到 KSampler 的 latent 输入文本编码节点输出的 conditioning 也接到 KSampler采样结果经 VAE Decode 后到视频保存节点。启动生成时可以先把视频帧数设低比如 16 帧或 2 秒左右等验证通过再增加。第一次运行不要一步到位做长视频先把链路跑通否则一旦中途报错定位会很麻烦。3.3 提示词里的电影感与镜头描述z-image 生成参考图时提示词决定画面风格wan2.2 生成视频时提示词决定运动逻辑和镜头感。两者不是同一套重点。参考图阶段的提示词更侧重静态构图cinematic still, moody lighting, warm teal shadow, female character with short black hair and silver earrings, wearing dark leather jacket, medium close-up, shallow depth of field, film grain视频阶段的提示词要加入时间维度和镜头语言the character slowly turns her head toward camera, camera pushes in gently, shallow depth of field, background bokeh, cinematic lighting, subtle hand movement, continuous motion对比一下普通写法和电影感写法普通写法电影感写法a girl walking on streeta girl walking on rain street, low angle shotperson looks at cameracharacter slowly raises her eyes to camera, camera holdssunsetsunset with warm orange rim light and long shadowsno blurno motion blur, no flicker, no face distortion电影感提示词并不是玄学。它的作用是在采样时把模型注意力引导到更具体的镜头运动、光影方向和画面元素上减少模型自由发挥的空间。保持人物一致性时提示词太简单会留下太多随机性太繁杂又会盖过参考图的约束。建议把“人物描述”和“镜头描述”拆成两段用逗号分隔并优先把人物外观放在前面。4. 视频转绘和人物一致性参数怎么调才不会崩4.1 视频转绘不是直接扔视频而是拆帧再还原视频转绘的常见误解是“把一段视频丢给图生视频模型让它自动重绘”。实际工程里通常不是这样。wan2.2 这类模型生成的是短视频片段不是对整段长视频逐帧重绘。要把已有视频转成电影感效果需要拆成更小的单元。推荐流程用 FFmpeg 从视频中抽取关键帧ffmpeg -i input.mp4 -q:v 2 frames/frame_%05d.png从抽取出的帧中挑选最能代表人物形象的 1 到 3 帧用 z-image 对参考帧进行风格化或修复统一色调、补全细节把处理后的参考帧作为 wan2.2 的首帧输入镜头描述生成短视频段对每个分镜重复第 3、4 步用 FFmpeg 拼接生成的分镜ffmpeg -f concat -i list.txt -c:v libx264 -pix_fmt yuv420p final.mp4这个流程的好处是每个分镜都有同一个风格源。首帧来自同一套 z-image 风格处理角色外观的底层特征会被大量保留最终拼接后观感一致性比“完全依赖模型随机生成”高很多。缺点是需要人工挑选关键帧和生成多段批量生产时要把这个流程脚本化。4.2 三个最容易影响一致性的参数图生视频的 KSampler 参数里denoise、seed、引导强度是影响最明显的三个。denoise 表示在潜空间中保留多少原始条件信息。值越低生成结果越接近参考图一致性越好但运动幅度也越小值越高模型自由发挥空间越大运动丰富但人物更容易崩。做视频转绘时可以先从 0.4 到 0.6 试起根据预览效果调节。seed 决定随机噪声的初始状态。同一个参考图、同一个提示词、同一个种子理论上会得到接近的结果。想保持人物一致性时尽量固定 seed不要每帧都变。但固定 seed 不等于不会出现崩坏它只是让排查变量减少一个是调试时的辅助手段。引导强度也就是 guidance scale控制模型对提示词的服从程度。过高的引导强度会让画面锐利但产生过饱和、金属感和闪烁过低则提示词失效镜头运动可能和描述不相关。一般建议在中等区间调整不要一上来就拉满。参数对一致性影响调小效果调大效果建议起点denoise / strength高更贴近参考图运动弱运动大易漂移变形0.4 - 0.6seed中只是换随机噪声不直接决定一致性固定后便于复现固定一个随机种子guidance scale高提示词约束弱可能乱动过锐、闪烁先取中等值再细调采样步数中可能欠采样细节差时间变长收益递减20 - 30 步实际项目里推荐先固定 denoise 和 seed跑出一段可接受的结果后再微调提示词。不要同时改所有参数否则结果出现变化时根本不知道是哪一步造成的。4.3 人物一致性的落地清单把上面原则整理成操作清单直接放进工作流维护文档里参考图先统一同一角色的多段视频使用同一张或同一组 z-image 生成的首帧不要每段换脸提示词前段固定人物描述放在提示词开头多个分镜保持一致只改动镜头描述部分denoise 控制漂移人物单独出场时用 0.5 左右动作复杂时再适当提高seed 按分镜固定每个分镜记录 seed方便重跑和对比短片段优先把长镜头拆成 3 到 5 秒片段逐段生成比一段生成到底更容易保持稳定负向提示词必备写清 blur、flicker、distorted face、extra limbs 等不希望出现的内容生成后抽帧检查用 FFmpeg 或播放器逐帧观察不要只看第一帧。这份清单可以当作每次出问题时的排查起点。人物崩溃先查 denoise镜头乱动先查提示词和引导强度颜色漂移先查 VAE 是否匹配运动不连贯先查分镜是否太短。5. 运行验证、显存管理和常见报错5.1 预览、保存和输出命名ComfyUI 的 Save Video 节点支持设置帧率、长度和输出路径。预览阶段建议使用低分辨率比如先跑 640x360帧率 16时间 2 秒确认镜头运动正常后再放大到实际目标分辨率。保存时给输出文件加上时间戳和种子信息便于回溯。比如output/film_style_20250101120000_seed12345.mp4这样即使生成了一堆候选视频也能快速找出哪一批对应哪个参数组合。批量生成时这种命名习惯能省下大量整理时间。预览阶段出现黑屏并不一定代表失败。可能是 VAEDecode 节点输出通道不对也可能是保存节点把第一帧和最后一帧之间的过渡丢弃了。先看控制台日志再检查视频文件大小文件大小为 0 或极小往往说明解码阶段有问题。5.2 显存不足、颜色异常、人物崩溃的排查顺序显存不足是最常见的运行问题现象是控制台报 CUDA out of memory 或 OOM界面卡死。处理顺序建议这样关闭其他占用显存的程序降低分辨率比如从 1280x720 降到 960x540减少生成帧数比如从 49 帧降到 33 帧使用 fp8 或低精度版本的 wan2.2 模型用 --lowvram 或 --novram 参数启动 ComfyUI如果