Skip to content
🧠 模型×任务工作流第 14 / 16 节

Wan2.2 首尾帧生视频:控制开头和结尾 ​

上一课的图生视频解决了「开头」:照片当首帧,画面从它动起来。但结尾呢?全凭模型自由发挥。这一课把最后一块控制权补上——Wan2.2 首尾帧生视频(FLF2V,First-Last-Frame-to-Video):首帧、尾帧各传一张图,开头结尾都锁定,中间的变化过程交给模型补全。

变身、开花、使用前后对比,这类「起点和终点都明确」的视频正是它的主场。

省事的一点是:模型一个都不用新下。官方模板 video_wan2_2_14B_flf2v 用的就是上一课那套 14B I2V 双专家权重(高噪 + 低噪),加 umt5 文本编码器和 wan_2.1_vae——官方教程原话:首尾帧工作流使用的模型位置与 I2V 节相同。真正要学的只有两样:一个新节点 WanFirstLastFrameToVideo,和一个新思路——提示词写「变化过程」。

学完你能做什么 ​

  • 加载官方 Wan2.2 14B FLF2V 模板,上传首帧、尾帧两张图,生成 640×640、81 帧、约 5 秒的首尾帧过渡视频
  • 说得出这一课和图生视频的本质区别:WanFirstLastFrameToVideo 多锁一个 end_image
  • 按规则改参数:宽高步长 16、帧数取 4n+1,显存富余时升到 720P 左右
  • 用 Ctrl+B 在 20 步标准版和 4 步 Lightning LoRA 加速版之间切换
  • 写出描述「从首帧到尾帧怎么变」的提示词,而不是只描述一张图

你现在的困境 ​

  • 想做「变身」「前后对比」这类视频,两张关键帧都画好了,就缺把中间补起来的一段
  • 文生视频控制不了结尾,图生视频又只能锁定开头,结尾全凭模型心情
  • 拿上一课的工作流硬改:WanImageToVideo 只锁首帧,没有接尾帧的输入

什么时候用这一招 ​

当你需要:

  • 在两张关键帧之间补一段平滑过渡:变身、转场、产品使用前后
  • 视频的开头和结尾都精确对上你给的图
  • 复用上一课的 I2V 模型文件,一个大权重都不用新下

而且不想:

  • 反复抽卡,等模型碰巧生成你想要的结尾
  • 换新模型:FLF2V 用的就是 Wan2.2 14B I2V 那套双专家权重

🎒 开始前的准备 ​

  • 跑通了Wan2.2 14B 图生视频:上一课的四个模型文件已归位——wan2.2_i2v_high_noise_14B_fp8_scaled.safetensors、wan2.2_i2v_low_noise_14B_fp8_scaled.safetensors、umt5_xxl_fp8_e4m3fn_scaled.safetensors、wan_2.1_vae.safetensors
  • ComfyUI 0.3.31 以上(官方模板库对这个模板标注的最低版本)
  • 准备两张图:首帧和尾帧,比例保持一致(原因见踩坑提醒);没有素材就先用模板自带的示例图
  • 显存心里有数:官方在 RTX 4090D 24GB、640×640 下测得占用 84%;模板默认小尺寸就是为低显存准备的,先跑通再改大

核心思路 ​

三句话讲清这一课的新东西:

  1. FLF2V = 首尾两帧都锁定的图生视频。 上一课的 WanImageToVideo 只把首帧编码进条件;WanFirstLastFrameToVideo 把首帧、尾帧分别固定在 latent 的开头和结尾,中间帧由模型按提示词插值补全——所以这类视频也叫首尾帧插值视频。
  2. 模型零新增。 官方教程明说:首尾帧工作流的模型位置与 I2V 节相同。上一课下载的四个文件原样复用,想加速再补两个可选 LoRA。
  3. 提示词从「描述画面」变成「描述过程」。 模板示例写的是「冰晶小猫被惊醒、渐渐长出色彩毛发变成巨兽」——起点、过程、终点一句写全。
图生视频(上一课)首尾帧生视频(本课)
节点WanImageToVideoWanFirstLastFrameToVideo
锁定的帧首帧 1 张首帧 + 尾帧共 2 张
提示词描述这段视频的画面描述从首帧到尾帧的变化过程
模型文件wan2.2_i2v_* 双专家同左,完全复用

新节点的参数规则(源码 schema 定死):width / height 步长 16,length 步长 4(合法值 4n+1:49、81、121……),batch_size 默认 1。

跟我做 ​

第 1 步:加载 Wan2.2 首尾帧模板 ​

为什么:官方模板把两套完整工作流(20 步标准版 + Lightning 加速版)和全部默认参数都配好了,从模板起步不会漏节点、不会填错参数。

  1. 打开模板库(Browse Templates),搜索「Wan2.2 14B FLF2V」(英文界面模板名 Wan 2.2 14B First-Last Frame to Video)
  2. 点击加载

你应该看到:

  • 画布分成两大组:Default workflow(默认启用)和 Enable lightning lora version(默认旁路)

  • 每组都按 Step 1 Load models → Step 2.1 Upload start_image → Step 2.2 Upload end_image → Step 3 Video size & length → Step 4 Prompt 摆好

  • 四个模型加载器(两个 Load Diffusion Model、Load CLIP、Load VAE)里的文件名和上一课完全相同

  • 画布上还有 Model Links、VRAM Usage 几个便签,没有任何红节点

  • 模板加载完成,画布无红节点

第 2 步:上传首帧和尾帧两张图 ​

为什么:这两张图就是视频的第一帧和最后一帧,模型的一切生成都被约束在这两点之间。

  1. 在 Step 2.1 - Upload start_image 分组的 Load Image 节点里上传首帧
  2. 在 Step 2.2 - Upload end_image 分组的 Load Image 节点里上传尾帧
  3. 没有素材?模板自带示例图 video_wan2_2_14B_flf2v_start_image.png 和 video_wan2_2_14B_flf2v_end_image.png,官方教程页可以直接下载

你应该看到:两个 Load Image 节点里各出现一张图,分别连向 WanFirstLastFrameToVideo 的 start_image 和 end_image 输入。

  • 首帧、尾帧各就各位

⚠️ 两张图会被缩放到节点尺寸

WanFirstLastFrameToVideo 会把两张图都按节点的 width / height 双线性缩放、居中处理后编码。两张图比例不一致会被拉伸变形——先统一比例,或按图片比例改节点宽高。

第 3 步:设置视频尺寸和帧数 ​

为什么:模板默认 640×640 是官方为低显存用户准备的小尺寸;规则之内随便改,规则之外会出问题。

WanFirstLastFrameToVideo 的四个参数:

参数模板默认规则说明
width640步长 16要 16 的倍数
height640步长 16要 16 的倍数
length81步长 4,取 4n+181 帧 ÷ 16fps ≈ 5 秒
batch_size1—一次生成几条
  1. 先用默认 640×640、81 帧跑通
  2. 显存富余再改大:官方教程的建议是「分辨率 720P 左右」,比如 1280×720(都是 16 的倍数)
  3. 时长在 length 里改(49 约 3 秒、121 约 7.5 秒),帧率在 CreateVideo 节点改(模板设 16)

你应该看到:参数框里的数值按步长增减,不会出现 641 这种值。

  • 记住两条规则:宽高 16 的倍数、帧数 4n+1

第 4 步:写「变化过程」提示词并生成 ​

为什么:首尾帧已经把起点终点定死了,提示词的任务是告诉模型中间怎么变。

  1. 在 CLIP Text Encode (Positive Prompt) 节点里写变化过程。模板自带的示例:
text
冰晶组成的小猫突然被惊醒,愤怒的它抬头,渐渐长出色彩毛发变成为
一个巨兽,像发现危险一样呲牙,瞪大眼睛

一句话写全了起点(冰晶小猫)、过程(惊醒、长出色彩毛发)、终点(呲牙瞪眼的巨兽)——照这个结构写你自己的两张图之间的变化。

  1. 负向提示词保持模板自带的中文段落不变(和上一课 I2V 模板里的完全相同):
展开看模板自带的负向提示词
text
色调艳丽,过曝,静态,细节模糊不清,字幕,风格,作品,画作,画面,静止,
整体发灰,最差质量,低质量,JPEG压缩残留,丑陋的,残缺的,多余的手指,
画得不好的手部,画得不好的脸部,畸形的,毁容的,形态畸形的肢体,手指融合,
静止不动的画面,杂乱的背景,三条腿,背景人很多,倒着走
  1. 确认采样参数是模板默认:两个 KSampler 各 20 步、cfg 4、euler + simple,高噪模型跑 0–10 步、低噪模型跑 10–20 步;两个 ModelSamplingSD3 的 shift 都是 8
  2. 按 Ctrl+Enter 运行

你应该看到:两个 KSampler 先后各跑 10 步;输出视频的第一帧、最后一帧和你上传的两张图对得上,中间是提示词描述的变化过程。视频由 SaveVideo 节点存进输出目录的 video/ 子目录,640×640、81 帧、16fps,约 5 秒。

  • 输出视频的首帧、尾帧与上传的两张图一致

第 5 步:切换 4 步 Lightning LoRA 加速版(可选) ​

为什么:20 步标准版在 RTX 4090D 上首次生成约 536 秒;模板自带的 Lightning LoRA 版只要 4 步,参考耗时约 108 秒——试构图时快得多。

  1. 先下载两个加速 LoRA(各 1.14 GB)放进 models/loras/:wan2.2_i2v_lightx2v_4steps_lora_v1_high_noise.safetensors、wan2.2_i2v_lightx2v_4steps_lora_v1_low_noise.safetensors(Hugging Face 和 ModelScope 的 Wan_2.2_ComfyUI_Repackaged 仓库都有)
  2. 框选 Default workflow 组,按 Ctrl+B 旁路
  3. 框选 Enable lightning lora version 组,按 Ctrl+B 启用
  4. 确认 Lightning 组的参数:两个 LoRA 强度都是 1,ModelSamplingSD3 的 shift 是 5,两个 KSampler 各 4 步、cfg 1,高噪跑 0–2 步、低噪跑 2–4 步
  5. 注意:Lightning 组有自己的一套 Load Image 和提示词节点——切过去后,要在这组里重新上传你的首帧尾帧、粘贴提示词(它默认带着自己的英文示例)
  6. 运行

你应该看到:采样只走 4 步(高噪 2 + 低噪 2),出片明显变快;输出还是 640×640、81 帧、16fps。

  • 两组工作流会互相切换,且同一时间只有一组启用

⚠️ 加速的代价是动态

模板便签原话:使用 Wan2.2 Lightning LoRA 会损失一部分视频动态,但能缩短生成时间。试构图用 4 步版,正式出片切回 20 步标准版。

💡 切换后检查另一组的状态

模板便签特意提醒:启用一组后,别忘了用 Ctrl+B 把另一组旁路,否则两组会同时跑;也可以试试部分执行(partial execution)功能。

检查点 ✅ ​

  • 首尾帧视频跑通:开头结尾与两张上传图一致,中间过渡平滑
  • 说得出 WanFirstLastFrameToVideo 和 WanImageToVideo 的区别:多了 end_image
  • 知道宽高步长 16、length 取 4n+1,会自己改分辨率和时长
  • 会用 Ctrl+B 切换 20 步标准版 / 4 步 Lightning 版,并确认另一组已旁路
  • 提示词写的是「变化过程」,包含起点、过程、终点

踩坑提醒 ​

❌ 两张图比例不一致,出来变形 ​

节点会把两张图都按 width / height 双线性缩放、居中后再编码,比例不同就被拉伸。

正确做法:两张图先统一比例;或者按图片比例改节点宽高——比如两张都是 3:4 竖图,就设 576×768 这类 16 倍数的 3:4 尺寸。

❌ 启用了 Lightning 组,忘了旁路标准组 ​

模板里是两套完整工作流。模板便签原话提醒过:不想两组同时跑,启用一组后别忘了把另一组 Ctrl+B 旁路。

正确做法:切换后扫一眼画布,确认只有一组是启用状态。

❌ 帧数填 80、宽高填 641 ​

length 步长 4、合法值是 4n+1(49、81、121……);width / height 步长 16。界面上按步长走不会错,从别的节点传值进来时要自己守规则。

正确做法:帧数在 49 / 81 / 121 里挑,宽高在 16 的倍数里挑;640×640 是模板默认,1280×720 是 720P 的合法组合。

❌ 下错权重:FLF2V 用的是 I2V 的文件 ​

首尾帧模板加载的是 wan2.2_i2v_*_14B_fp8_scaled 两个文件,不是Wan2.2 14B 文生视频课的 wan2.2_t2v_*。官方教程原话:首尾帧工作流使用的模型位置与 I2V 节相同。

正确做法:四个加载器逐个核对文件名,和上一课图生视频完全一致。

进阶技巧(可选) ​

给提示词加一段「一致性约束」 ​

模板 Lightning 组自带的英文示例提示词分两段:第一段写变化过程(梵高自画像风格的大胡子男人,慢慢变成宇航员——胡须一根根淡出、草帽融成头盔、背景笔触渐变成星空);第二段专门约束镜头和一致性(机位固定、轻微慢推、光线柔和、构图居中不变)。

首尾帧视频尤其怕镜头乱动——照这个结构,给你的提示词也加一段一致性约束。

变化方向随便定 ​

起点和终点没有固定套路:拆箱视频可以「完好包装 → 手里拿着的产品」,也可以反过来拍「还原过程」。两张图在 Load Image 里的位置对调就行。

想要更长的叙事 ​

Wan2.2 的单段视频到此为止。想要多镜头叙事和更长篇幅,看 LTX-2.5:多镜头叙事、4K HDR 与 DFR——LTX-2.5 同样提供首尾帧(FLF2V)工作流模板。

本课小结 ​

✅ 这一课给视频补上了「结尾控制权」,Wan2.2 首尾帧生视频跑通:

  • ✅ 首尾帧生视频:WanFirstLastFrameToVideo 上传首帧、尾帧两张图,中间由模型按提示词补全
  • ✅ 模型零新增:复用上一课 I2V 的双专家权重,只多两个可选加速 LoRA
  • ✅ 参数规则:宽高步长 16、length 取 4n+1;默认 640×640、81 帧、16fps 约 5 秒
  • ✅ 双速出片:20 步标准版(参考耗时约 536 秒)↔ 4 步 Lightning 版(约 108 秒),Ctrl+B 切换

关键配置字段回顾:

字段推荐值说明
Load Diffusion Model ×2wan2.2_i2v_high/low_noise_14B_fp8_scaled.safetensors与图生视频课相同
Load CLIPumt5_xxl_fp8_e4m3fn_scaled.safetensorstype 选 wan
Load VAEwan_2.1_vae.safetensors
WanFirstLastFrameToVideo640×640 / length 81 / batch 1宽高步长 16,length 取 4n+1
KSampler ×220 步 / cfg 4 / euler + simple高噪 0–10 步,低噪 10–20 步
ModelSamplingSD3 ×2shift 8(Lightning 组为 5)
CreateVideofps 1681 帧 ≈ 5 秒
Lightning LoRA ×2强度 1,4 步 / cfg 1默认旁路,Ctrl+B 启用;高噪 0–2、低噪 2–4 步

下一课预告 ​

Wan2.2 到这里收尾,下一课换一个自带声音的模型:LTX-2/2.3:一次生成带声音的视频。你会学到:

  • LTX-2 的六种工作流:T2V、I2V、FLF2V、IA2V、IC-LoRA、ID-LoRA
  • 音画同步的视频生成是什么体验
  • 蒸馏版 8 步、CFG=1 的加速玩法

附录:源码参考 ​

点击展开查看源码位置

更新时间:2026-11-06(模板库模板 video_wan2_2_14B_flf2v,官方标注最低 ComfyUI 版本 0.3.31)

内容位置
官方教程(Wan2.2,含 FLF2V 节)https://docs.comfy.org/tutorials/video/wan/wan2_2
工作流模板 JSONhttps://github.com/Comfy-Org/workflow_templates/blob/main/templates/video_wan2_2_14B_flf2v.json
权重仓库(Hugging Face)https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged
权重仓库(ModelScope 镜像)https://modelscope.cn/models/Comfy-Org/Wan_2.2_ComfyUI_Repackaged
WanFirstLastFrameToVideo 节点源码comfy_extras/nodes_wan.py(L188 起,参数步长 L198–L201)
WanImageToVideo 节点源码comfy_extras/nodes_wan.py(L18 起)

本页参数(640×640 / length 81 / fps 16、20 步 cfg 4 euler + simple、高噪 0–10 / 低噪 10–20、shift 8、Lightning 4 步 cfg 1 / shift 5、模型文件名与大小、RTX 4090D 参考耗时与显存占用)均核对自模板 JSON video_wan2_2_14B_flf2v.json 的实际节点值与内置便签;720P 建议与「模型位置与 I2V 相同」来自官方教程;节点参数步长核对自 comfy_extras/nodes_wan.py 源码。

搞懂AI关于我们怎么写隐私说明

独立的第三方教程,与文中提到的任何产品及其公司没有隶属或合作关系;产品名称和商标归各自所有者。价格和政策以官方页面为准。