ComfyUI-FLATTEN 插件完全教程
1. 插件简介
插件地址: https://github.com/logtd/ComfyUI-FLATTEN
这个插件就像是给ComfyUI装了一个超级智能的视频编辑助手。它的核心功能是让你能够编辑视频时保持画面的连贯性,就像专业电影制作一样。
能给我们带来什么效果?
- 视频编辑神器:可以编辑视频内容但保持画面流畅,不会出现闪烁或不连贯
- 风格转换:把普通视频变成动画风格、油画风格等,但动作依然自然
- 场景改造:可以改变视频中的背景、物体,但人物动作保持一致
- 时间一致性:确保视频每一帧之间的变化都很自然,像真实拍摄的一样
这个插件特别适合想要制作高质量视频内容的朋友,它解决了AI视频生成中最大的难题:如何让每一帧都保持连贯。
2. 如何安装
2.1 通过ComfyUI管理器安装(推荐)
- 打开ComfyUI管理器
- 搜索"FLATTEN"
- 点击安装即可
2.2 手动安装
cd ComfyUI/custom_nodes/
git clone https://github.com/logtd/ComfyUI-FLATTEN
注意: 这个插件不需要额外安装其他软件包,ComfyUI自带的就够用了。
3. 节点逐一解析
3.1 Load Checkpoint with FLATTEN model 节点
这个节点是干嘛的?
这就像是一个特殊的模型加载器,它会把普通的AI绘画模型改造成能处理视频的超级模型。就像给汽车装上飞行装置,让它能在天空中飞行一样。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| ckpt_name | ckpt_name | 模型文件列表 | 任意SD1.5模型 | 选择要改造的AI绘画模型,就像选择要升级的汽车 | 选择要加载的检查点文件 | 选择realistic_vision_v5.safetensors等模型 |
3.2 Sample Trajectories 节点
这个节点是干嘛的?
这是一个动作分析师,它会仔细观察视频中每个像素是怎么移动的,就像体育教练分析运动员的动作轨迹一样。这些轨迹信息会告诉后面的节点如何保持画面连贯。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| images | images | IMAGE类型 | - | 要分析的视频帧,就像给教练看的比赛录像 | 输入的图像序列 | 连接你想要编辑的视频帧 |
| context_length | context_length | 0-40 | 20 | 一次分析多少帧,像设置分析窗口大小 | 上下文窗口长度 | 设为16适合短视频,20适合长视频 |
| context_overlap | context_overlap | 0以上 | 10 | 分析窗口的重叠部分,像拼图时的重叠区域 | 上下文重叠长度 | 设为8会有适中的重叠 |
3.3 Unsampler (Flatten) 节点
这个节点是干嘛的?
这是一个时光倒流机,它会把你的视频"倒放"回到纯噪点状态,但同时记录下每一步的变化。就像把一幅完成的拼图拆散,但记住每块拼图原来的位置。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| model | model | MODEL类型 | - | 改造过的AI模型,就像升级后的汽车 | FLATTEN模型对象 | 连接Load Checkpoint节点的输出 |
| steps | steps | 1-10000 | 20 | 倒流的步数,像倒带的精细程度 | 反向采样步数 | 20步适合大多数情况 |
| save_steps | save_steps | 0-10000 | 8 | 保存多少步的记录,像选择保存几个关键帧 | 保存注入信息的步数 | 8步能保证质量和速度平衡 |
| sampler_name | sampler_name | 采样器列表 | euler | 选择倒流方法,像选择倒车的方式 | 采样算法类型 | euler最稳定,适合视频编辑 |
| scheduler | scheduler | 调度器列表 | normal | 控制倒流速度,像调节倒车速度 | 噪声调度策略 | normal适合大多数情况 |
| normalize | normalize | disable/enable | disable | 是否标准化结果,像是否统一格式 | 是否对结果进行标准化 | 一般保持disable |
| positive | positive | CONDITIONING类型 | - | 正面描述,告诉AI你想要什么效果 | 正向条件输入 | 连接正面提示词 |
| latent_image | latent_image | LATENT类型 | - | 要处理的视频数据,像要倒放的录像带 | 潜在空间图像数据 | 连接视频的潜在表示 |
| trajectories | trajectories | TRAJECTORY类型 | - | 动作轨迹信息,像运动员的动作分析报告 | 光流轨迹数据 | 连接Sample Trajectories的输出 |
| old_qk | old_qk | 0-1 | 0 | 使用旧的注意力方式,像选择传统或现代方法 | 是否使用旧的查询键机制 | 0适合视频编辑,1适合场景改造 |
3.4 KSampler (Flatten) 节点
这个节点是干嘛的?
这是一个智能重建师,它会根据你的要求和之前记录的信息,重新生成视频。就像根据拼图的记录和你的新要求,重新拼出一幅改良版的图画。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| model | model | MODEL类型 | - | 改造过的AI模型 | FLATTEN模型对象 | 连接Load Checkpoint节点的输出 |
| add_noise | add_noise | disable/enable | disable | 是否添加随机性,像是否加入创意元素 | 是否添加噪声 | disable适合视频编辑 |
| noise_seed | noise_seed | 0-很大的数 | 0 | 随机种子,像掷骰子的起始数字 | 噪声生成种子 | 固定数值保证结果一致 |
| steps | steps | 1-10000 | 10 | 重建步数,像拼图的精细程度 | 采样步数 | 10步适合快速预览,20步质量更好 |
| injection_steps | injection_steps | 0-10000 | 8 | 使用记录信息的步数,像参考原图的程度 | 注入特征的步数 | 8步保证连贯性 |
| old_qk | old_qk | 0-1 | 0 | 注意力方式选择 | 查询键机制选择 | 与Unsampler保持一致 |
| trajectories | trajectories | TRAJECTORY类型 | - | 动作轨迹信息 | 光流轨迹数据 | 连接Sample Trajectories的输出 |
| cfg | cfg | 0.0-100.0 | 8.0 | 听话程度,像AI对你指令的服从度 | 分类器自由引导强度 | 7-12之间效果较好 |
| sampler_name | sampler_name | 采样器列表 | dpmpp_2m | 重建方法选择 | 采样算法类型 | dpmpp_2m适合视频编辑 |
| scheduler | scheduler | 调度器列表 | normal | 重建速度控制 | 噪声调度策略 | normal最稳定 |
| positive | positive | CONDITIONING类型 | - | 正面描述 | 正向条件输入 | 描述你想要的效果 |
| negative | negative | CONDITIONING类型 | - | 负面描述,告诉AI不要什么 | 负向条件输入 | 描述你不想要的效果 |
| latent_image | latent_image | LATENT类型 | - | 倒流后的视频数据 | 潜在空间图像数据 | 连接Unsampler的输出 |
| injections | injections | INJECTIONS类型 | - | 记录的变化信息 | 注入的特征信息 | 连接Unsampler的第二个输出 |
| start_at_step | start_at_step | 0-10000 | 0 | 从第几步开始重建 | 开始采样的步数 | 通常保持0 |
| end_at_step | end_at_step | 0-10000 | 10000 | 到第几步结束重建 | 结束采样的步数 | 通常保持10000 |
| return_with_leftover_noise | return_with_leftover_noise | disable/enable | disable | 是否保留未完成的噪声 | 是否返回剩余噪声 | 通常选disable |
3.5 Apply Flatten Attention 节点
这个节点是干嘛的?
这是一个注意力增强器,它可以让普通的AI模型也具备一些视频连贯性功能。就像给普通眼镜加上防蓝光功能,不用换整副眼镜就能获得新能力。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| model | model | MODEL类型 | - | 要增强的AI模型 | 输入的模型对象 | 连接普通的模型加载器 |
| trajectories | trajectories | TRAJECTORY类型 | - | 动作轨迹信息 | 光流轨迹数据 | 连接Sample Trajectories的输出 |
| use_old_qk | use_old_qk | True/False | False | 是否使用旧方法,像选择传统或现代技术 | 是否使用旧的查询键机制 | False适合大多数情况 |
| input_attn_1 | input_attn_1 | True/False | True | 是否增强第1层注意力,像选择要升级的部件 | 是否应用到输入注意力层1 | True能提升效果 |
| input_attn_2 | input_attn_2 | True/False | True | 是否增强第2层注意力 | 是否应用到输入注意力层2 | True能提升效果 |
| output_attn_9 | output_attn_9 | True/False | True | 是否增强第9层注意力 | 是否应用到输出注意力层9 | True能提升效果 |
| output_attn_10 | output_attn_10 | True/False | True | 是否增强第10层注意力 | 是否应用到输出注意力层10 | True能提升效果 |
| output_attn_11 | output_attn_11 | True/False | True | 是否增强第11层注意力 | 是否应用到输出注意力层11 | True能提升效果 |
3.6 Create Flow Noise 节点
这个节点是干嘛的?
这是一个智能噪声制造机,它会根据视频的动作轨迹创造特殊的噪声。就像根据音乐的节拍制造有节奏的背景音,这种噪声能帮助AI更好地理解视频的运动规律。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| latent | latent | LATENT类型 | - | 视频数据模板,像制造噪声的模具 | 潜在空间数据 | 连接视频的潜在表示 |
| trajectories | trajectories | TRAJECTORY类型 | - | 动作轨迹信息 | 光流轨迹数据 | 连接Sample Trajectories的输出 |
| add_noise_to_latent | add_noise_to_latent | True/False | False | 是否把噪声加到原视频上,像是否混合背景音 | 是否将噪声添加到潜在数据 | False会单独输出噪声 |
4. 使用技巧和建议
4.1 视频编辑的最佳实践
- 推荐流程:Sample Trajectories → Unsampler (euler) → KSampler (dpmpp_2m)
- 参数设置:old_qk = 0,injection_steps = 8,这样能获得最好的连贯性
- 模型选择:使用SD1.5模型效果最好,SDXL支持有限
4.2 场景改造的实验设置
- 推荐流程:使用LCM采样器,old_qk = 1
- 注意事项:高动作场景效果可能不理想
- 增强效果:可以配合IP-Adapter使用
4.3 性能优化建议
- 内存管理:使用context_length控制一次处理的帧数
- 质量平衡:steps设为10-20之间,太高浪费时间
- 批处理:需要配合AnimateDiff-Evolved节点
4.4 常用参数组合
- 高质量编辑:steps=20, injection_steps=8, cfg=8.0
- 快速预览:steps=10, injection_steps=6, cfg=7.0
- 创意改造:old_qk=1, 使用LCM采样器
5. 常见问题解答
Q: 为什么处理后的视频还是不连贯?
A: 检查trajectories是否正确连接,确保old_qk参数在所有节点中保持一致。
Q: 内存不够用怎么办?
A: 降低context_length参数,比如从20改为16或12。
Q: 支持哪些模型?
A: 主要支持SD1.5模型,SDXL支持有限且效果不如SD1.5。
Q: 可以和其他插件一起使用吗?
A: 可以,支持ControlNet、IP-Adapter、LCM等大多数ComfyUI插件。
Q: 为什么有些采样器不工作?
A: Unsampler建议使用euler,KSampler可以使用dpmpp_2m或其他采样器。
Q: 如何处理长视频?
A: 使用AnimateDiff-Evolved的批处理功能,设置合适的context_length和context_overlap。
6. 总结
ComfyUI-FLATTEN插件为视频编辑带来了革命性的改进,它解决了AI视频生成中最大的难题:时间一致性。通过6个精心设计的节点,你可以:
- 专业视频编辑:保持画面连贯的同时改变视频内容
- 风格转换:让视频具有不同的艺术风格但动作自然
- 场景改造:实验性地改变视频场景
记住关键要点:
- 使用SD1.5模型获得最佳效果
- 视频编辑用old_qk=0,场景改造用old_qk=1
- 合理设置context_length控制内存使用
- 配合其他ComfyUI插件获得更丰富的效果
这个插件特别适合想要制作高质量视频内容的创作者,它让AI视频编辑从"能用"变成了"好用"。