Day30-视频生成

文生视频

模型介绍和安装

  • 模型名称:wan2.2-t2v-rapid-aio-v10.safetensors
  • 下载地址:https://pan.baidu.com/s/1hfl5o99a3rwKaKKhZNxQMg?pwd=yrrh 提取码: yrrh
  • 模型介绍:
    • 核心定位:
      • 这是一个专门为文生视频(Text-to-Video)任务优化的AI模型,属于"一体化"(All-in-One)解决方案,在ComfyUI工作流中能快速生成视频内容。
    • 模型架构:
      • 基于Wan 2.2架构:Wan系列是专门为视频生成设计的模型
      • T2V专化:针对文本到视频转换进行了特别训练
      • Rapid版本:强调生成速度优化,适合快速迭代
      • AIO设计:集成了多个功能于单一模型,减少工作流复杂度
    • 技术特点:
      • 帧一致性:能生成时间上连贯的视频片段
      • 分辨率适配:通常支持512×512或768×768等常见视频帧尺寸
      • 运动控制:具有一定的镜头运动和时间动态控制能力
      • 快速推理:相比一些大型视频模型,推理速度更快
    • 使用场景
      • 短视频生成:快速制作社交媒体短视频
      • 概念可视化:快速将创意转化为动态视觉

节点安装

image-20260130153914471

工作流搭建

新节点:

  • 采样算法(SD3)
  • 空Latent视频(LTXV)
  • 图层工具:清除VRAM
  • Video Combine

image-20260131090351255

文生视频工作原理

文生视频的核心思想:将一段文字描述,通过AI逐步“翻译”成一段连续、动态的视频。

想象你要拍摄一部8秒钟的微电影,剧本是:“一个现代女性在博物馆拿手机拍照,然后不小心摔倒了”。传统拍摄需要演员、场地、摄影机、剪辑师。而AI生成视频则是这样工作的:文本输入 → 理解剧本 → 搭建场景 → 逐帧绘制 → 连接成片

各节点作用详解

1. Checkpoint加载器(简易)

作用:加载AI的“大脑”

  • 原理:这是整个系统的预训练模型,包含了AI学习过的所有视觉知识和绘画规则。
  • 比喻:就像聘请一位经验丰富的导演+摄影师+动画师团队,他们已经看过数百万部电影和图片,知道如何把文字变成画面。

2. CLIP文本编码

作用:把文字翻译成AI能懂的“视觉密码”

  • 原理:CLIP将文本和图像映射到同一个语义空间中。
  • 比喻:编剧把剧本拆解成分镜指令
  • 工作过程
    1. 输入:“现代女性”、“博物馆”、“拍照”、“摔倒”
    2. 输出:一组768维的数学向量(数字密码)
    3. 这些向量不是文字,而是视觉特征的数学描述

3. 空Latent视频(LTXV)

作用:创建视频的“空白画布”

  • 原理:在潜空间中创建一个空的视频容器。
  • 比喻:准备一部空的电影胶片,确定了长度和尺寸,但内容全是空白。
  • 参数意义
    • 宽度768×高度512:每帧画面的分辨率
    • 长度161帧:总帧数(161÷18≈8.9秒视频)
    • 批量大小1:一次生成1个视频

4. 采样算法(SD3)

作用:确定AI的“绘画方法论”

  • 原理:定义了如何从噪声逐步生成清晰图像的具体数学方法。

  • 比喻:决定画家是从轮廓开始画,还是从细节开始画

  • SD3的特点

    • 稳定性高,生成质量好
    • 支持较少的采样步数(如4步)也能出效果
  • 参数:移位

    • 控制生成内容的“创意自由度”

      • 实际有效范围:0.0 ~ 20.0(超过20通常无实际意义)
      • 常见工作范围:0.5 ~ 10.0
    • 想象你在教AI画画:

      • 移位=0:AI严格按你教的方法画,不出格
      • 移位=1.0:AI会加入一些自己的想法,可能超出预期
      • 移位=8.00(如图中设置):AI有很大的创意发挥空间
    • 典型分段区间:

      移位值 范围描述 常见用途
      0.0 ~ 1.0 保守/精确区 产品设计、精确概念图
      1.0 ~ 3.0 标准/平衡区 常规创作、商业项目
      3.0 ~ 6.0 创意/艺术区 艺术创作、概念探索
      6.0 ~ 10.0 高自由/实验区 实验艺术、风格探索
      10.0+ 极端随机区 纯实验、抽象艺术

5. K采样器

作用:执行实际的图像生成过程(核心引擎)

  • 原理:执行扩散模型的反向过程,将随机噪声逐步转化为有意义的图像。

  • 比喻:导演实际指导每一帧的拍摄。

  • 工作步骤

    1. 初始化:在潜空间创建161帧的随机噪声(像电视雪花)

    2. 去噪过程(以4步为例):

      第1步:AI问“根据剧本,这堆噪声应该是什么?”
             → 减少一些噪声,露出大致轮廓
      
      第2步:AI问“现在更像什么了?”
             → 进一步细化,出现基本形状
      
      第3步:AI问“细节应该是什么?”
             → 添加纹理和细节
      
      第4步:AI问“最终效果如何?”
             → 精修完成,得到清晰图像
      
  • 采样器名称euler_ancestral(一种快速收敛的采样方法)

  • 调度器beta(控制噪声减少的节奏)

6. VAE解码

作用:将潜空间表示转换为真实图像

  • 原理:变分自编码器的解码部分,将压缩表示“解压”成像素图像。
  • 比喻:将设计稿加工成成品照片

7. Video Combine

作用:将静态帧序列合成为视频文件

  • 原理:使用视频编码器将图片序列压缩为标准视频格式。
  • 比喻:将拍好的照片胶卷冲洗成电影放映带
  • 参数配置
    • 帧率18:每秒播放18帧(基本流畅)
    • 格式H.264 MP4:最通用的视频格式
    • CRF 19:压缩质量参数(23是默认,19更高质量)
    • 像素格式yuv420p:兼容性最好的色彩编码
  • 输出结果:一个可直接播放的.mp4文件

8. 图层工具:清除VRAM

作用:清理显卡内存,防止资源耗尽

  • 原理:释放不再需要的模型和数据,为后续操作腾出空间。
  • 比喻:拍完一场戏后,清理片场,准备下一场。
  • 两种清理模式
    1. 清除缓存:清理中间计算结果(如已处理的图像数据)
    2. 清除模型:卸载AI模型本身(约5-7GB)
  • 使用场景
    • 生成多个视频后防止内存不足
    • 切换不同模型前释放空间
    • 解决程序崩溃问题

图生视频

加载模型:

  • wan2.2-i2v-rapid-aio-v10.safetensors存放到models的checkpoint文件夹下

    • 专门为图生视频优化的模型,可以理解图片内容并生成合理的动态延伸
  • clip_vision_h.safetensors存放到models下面的clip-vision文件夹下

    • 加载CLIP视觉编码器,可以将图片转换为语义向量

图生视频核心原理

与文生视频的根本区别

文生视频 图生视频
输入:文字描述 输入:参考图片 + 文字引导
起点:完全随机噪声 起点:基于图片的潜空间表示
控制:完全由文字引导 控制:图片内容 + 文字引导

节点详解

加载CLIP视觉

通俗理解

想象你要请一位艺术评论家来分析一幅画:

  • 这位评论家需要丰富的艺术知识
  • clip_vision_h.safetensors就是这位评论家的“知识库”
  • 这个节点就是请出这位专家

实际作用

  • 功能:加载CLIP模型的视觉编码部分
  • 文件clip_vision_h.safetensors
  • 训练数据:这个模型看过数亿张图片,学会了:
    • 识别物体、人物、场景
    • 理解颜色、构图、风格
    • 将视觉信息映射到语义空间

工作示例

输入:一张“戴面纱的女人”图片
↓
CLIP视觉模型激活
↓
模型开始工作:
1. “哦,这是一个人物肖像”
2. “女性,大约25-30岁”
3. “戴着传统面纱”
4. “背景是古朴建筑”
5. “整体是国画风格”

技术细节

  • 与文本CLIP的关系:同一个模型的两个部分
    • 文本CLIP:理解文字意思
    • 视觉CLIP:理解图片内容

CLIP视觉编码

通俗理解

评论家开始详细分析画作,并写出分析报告

  • 这份报告用专业术语写成
  • 其他节点能看懂这份报告
  • 报告是数字形式的,不是文字

实际作用

  • 输入:图片 + CLIP视觉模型
  • 过程:提取图片的深层语义特征
  • 输出:768维的语义向量(数字密码)

具体编码过程

# 假设图片内容:戴面纱的女人
图片像素 → CLIP视觉编码器 → 语义向量

# 向量中的部分数值可能代表:
数值[0:100]:  人物特征(0.8表示“女性”)
数值[100:200]: 服饰特征(0.9表示“面纱”)
数值[200:300]: 风格特征(0.7表示“国画风”)
数值[300:400]: 场景特征(0.6表示“古朴建筑”)

重要特点

  1. 不是像素复制:而是提取“本质特征”
  2. 可计算的距离
    • “戴面纱的女人”和“戴帽子的女人”向量距离近
    • “戴面纱的女人”和“汽车”向量距离远
  3. 与文本兼容:同一个向量空间
    • 文字“女人”也会生成类似向量

示例对比

原始图片:1024×768×3 ≈ 235万个像素值
编码后:1×768个数值(压缩了3000倍!)

好处:
1. 节省计算资源
2. 抓住本质,忽略细节噪音
3. 便于与其他条件(文本)融合

Wan图像到视频

这是整个工作流的心脏,负责:

  1. 接收所有输入条件
  2. 生成视频潜空间序列
  3. 确保时间连贯性

Video Combine

返回可视化视频画面。

参数:

frame_rate = 18        	     # 每秒18帧
format = "video/h264-mp4"    # 最通用的视频格式
pix_fmt = "yuv420p"          # 像素格式

视频换脸

核心节点安装

1. ReActor(换脸节点):ReActor 是一个基于深度学习的 面部替换模型,专门用于在视频中进行高质量的人脸交换。

  1. 打开ComfyUI管理器(如果有安装)
  2. 点击"Install Custom Nodes"(安装自定义节点)
  3. 搜索"ReActor"
  4. 点击安装
image-20260201090854737

2. RIFE VFI(视频帧插值节点):是一种先进的 帧插值算法,可以将低帧率视频“补帧”为高帧率视频。在换脸流程中,它的用途是提升视频流畅度、减少因帧跳跃导致的面部跳动或卡顿;

在ComfyUI管理器中搜索"frame interpolation"

image-20260201094223993

模型下载

image-20260201111025948

下载链接:https://pan.baidu.com/s/1VV1hnY-UqwtcJkLaMgRXeg?pwd=eeu7 提取码: eeu7

整体目标

我们使用的是 ComfyUI 的 ReActor + RIFE VFI + Load/Combine 视频节点 组合,来完成:

  1. 上传视频 → 加载视频
  2. 换脸处理(ReActor)
  3. 插帧补帧(RIFE)提升流畅度
  4. 输出合成视频

核心节点介绍

节点一:**Load Video (Upload) **——【加载原始视频】

从本地上传一个视频文件,并解析其信息(如帧率、分辨率等),供后续节点使用。

参数详解:

参数 含义
video dance.mp4 你要上传的视频文件名(实际运行时点击“choose video to upload”选择)
force_rate 30 强制将视频帧率设为 30 fps(即使原视频不是)。有助于统一处理速度。
custom_width / custom_height 0 自定义宽高,0 表示不修改原尺寸。若填入数值会缩放视频。
frame_count_cap 93 最多读取多少帧(防止内存爆炸)。比如只处理前93帧测试。
skip_first_frames 0 跳过开头几帧(用于跳过黑屏或无脸画面)。
select_every_nth 2 每隔 N 帧选一帧处理(例如=2 就是每隔一帧处理,降低计算量)。
format AnimateDiff 指定输出格式,这里表示要用于 AnimateDiff 类型模型(非关键,主要是兼容性)

💡 提示:如果你视频很长,建议适当设置 frame_count_capselect_every_nth 来节省时间和显存。

节点二:**ReActor - Fast Face Swap **——【核心换脸节点】

这是真正的“换脸”操作核心!它能识别源视频中的人脸,然后替换成你指定的目标人脸(source_image)。

参数详解:

参数 含义
input_image ✅ 已勾选 输入的原始视频帧(来自上一步 Load Video)
source_image ✅ 已勾选 你的“目标人脸”照片(即你想换上去的脸)
face_model inswapper_128.onnx 使用的换脸模型(推荐使用 inswapper 系列,速度快且效果好)
face_boost ON 开启增强模式,提高面部细节还原质量
swap_model inswapper_128.onnx 换脸模型路径(与 face_model 相同)
face_detection retinaface_resnet50 人脸检测算法,准确率高,适合复杂背景
face_restore_model codeformer-v0.1.0.pth 修复换脸后可能出现的模糊或失真问题(如皮肤质感)
face_restore_visibility 0.50 修复强度(0~1),越高越清晰但可能过度处理
codeformer_weight 0.50 CodeFormer 模型权重,控制修复程度
detect_gender_input / detect_gender_source no 是否根据性别优化检测,一般保持 no 即可
input_faces_index 0 选择输入视频中第几个脸进行替换(多个脸时用)
source_faces_index 0 选择 source_image 中第几个脸作为模板(多脸图时用)
console_log_level 1 控制日志输出级别,1 是正常提示

✅ 关键技巧:

  • 如果你想让换脸更自然,建议开启 face_boost
  • face_restore_visibilitycodeformer_weight 可以调到 0.7~0.8 提升画质
  • 若你有多个脸,记得调整 faces_index
节点三:RIFE VFI ——【插帧补帧,提升流畅度】

对处理后的视频帧进行“插帧”(Video Frame Interpolation),把原本每秒30帧变成60帧甚至更高,使动作更顺滑!

参数详解:

参数 含义
frames ✅ 已勾选 输入的是已经换完脸的视频帧序列
ckpt_name rife47.pth 使用的插帧模型文件(rife47 是目前最常用且效果好的版本)
clear_cache_after_n_frames 10 每处理10帧清一次缓存,避免内存溢出
multiplier 2 帧数倍增系数,2 表示原来30fps → 60fps;3 → 90fps
fast_mode true 快速模式,牺牲一点点精度换取速度
ensemble true 启用集成预测(多个模型投票),提升稳定性
scale_factor 1 缩放因子,1 表示不缩放,保留原分辨率

💡 注意:

  • 插帧会让视频更流畅,但也增加显卡负担
  • 推荐使用 rife47rife49,性能和效果平衡最好
  • 设置 multiplier=2 是最常见的需求(30→60fps)
节点四:Video Combine ——【合并并导出最终视频】

把所有处理好的帧(包括换脸+插帧后的结果)重新组合成一个完整的视频文件并保存。

参数详解:

参数 含义
frame_rate 30 输出视频的帧率(注意:如果前面用了 RIFE 插帧,应改为 60 才匹配)
loop_count 0 循环播放次数,0 表示只播放一次
filename_prefix AllInOne01 输出文件名前缀(最终文件名为 AllInOne01.mp4)
format video/h264-mp4 输出格式,MP4 是通用格式,H.264 是编码方式
pix_fmt yuv420p 颜色格式,兼容性最强,几乎所有设备都能播放
crf 19 压缩质量参数(CRF),值越小质量越高(18~23 是推荐范围)
save_metadata false 不保存元数据(如创建时间等),减小文件大小
trim_to_audio false 不裁剪到音频长度(适用于无声音视频)
pingpong false 是否来回播放(如动画回放),一般不用
save_output true 是否保存输出文件(必须打开才能看到结果)

✅ 实用建议:

  • 如果你在 RIFE 中设置了 multiplier=2,请在这里把 frame_rate 改成 60
  • CRF 设为 19 是高质量,但文件较大;想压缩可设 23
  • 输出路径通常在 ComfyUI 的 output 文件夹下

使用建议

  1. 显存不足怎么办?
    • 减少 frame_count_cap
    • 增加 select_every_nth(如设为 4,只处理每4帧)
    • 关闭 face_boost 或降低 face_restore_visibility
  2. 换脸不自然?
    • 尝试更换 face_model(如 inswapper_128.onnx vs inswapper_128_v2.onnx
    • 调整 face_restore_visibility 到 0.7~0.8
    • 确保 source_image 是清晰正面照
  3. 视频卡顿?
    • 检查 frame_rate 是否与 RIFE 的 multiplier 匹配
    • 使用 fast_mode=true 在 RIFE 中加速
  4. 如何调试?
    • 先只处理前几帧测试(frame_count_cap=10
    • 分步运行:先跑 Load → ReActor → 查看中间帧是否正常
posted @ 2026-02-03 19:06  凫弥  阅读(177)  评论(0)    收藏  举报