docs: archive workflow construction guide and node reference

This commit is contained in:
2026-11-01 17:12:31 +08:00
parent b0e2544c09
commit 08b987172c
4 changed files with 1486 additions and 0 deletions
@@ -0,0 +1,808 @@
# ComfyUI工作流搭建指南:节点作用、连线方法与短剧实操
仓库归档日期:2026-11-01。参考图/音频未纳入Git,使用前阅读[素材替换说明](示例素材/README.md)。
接口与原任务核对日期:2026-10-31。适用地址:<http://192.168.10.51:8188/>,本次读到的ComfyUI版本为0.39.0。
这份指南让你能够看懂一张工作流、从空画布重新搭出它,并知道遇到不同制作任务该改哪一部分。主要用本机实际跑过的Z-Image、Qwen Image 2.1和MiniMax H3举例,最后补充配乐和指定音频驱动的区别。
本次只整理文档、复制既有示例和检查接口,没有提交新生成任务。示例是旧片工作流的原样副本,参考图、旧台词和输出前缀都保留,导入后需要按自己的镜头替换。技术成功不代表对白或剧情已经自然;上一版《应许之路》的艺术修订仍在进行。
## 阅读路线
- 完全新手:先读第1—4节,再动手搭第5节文生图。
- 想保持同一个人物:读第6节参考图编辑、第8节多参考视频和第10节声音。
- 想做分海等变化:先理解第7节图生视频,再读第9节首尾帧。
- 想理解每个参数:读第11—13节;排错读第15节。
- 已有工作流想查端口:打开[39种节点端口速查](节点端口速查.md)。
目录:
1. [工作流是什么](#1-工作流是什么)
2. [模型节点参数分别是什么](#2-模型节点参数分别是什么)
3. [先认识连线的数据类型](#3-先认识连线的数据类型)
4. [在画布上怎样搭建](#4-在画布上怎样搭建)
5. [练习一文生图](#5-练习一文生图z-image)
6. [练习二图生图与参考图编辑](#6-练习二图生图与参考图编辑)
7. [练习三图生视频](#7-练习三图生视频h3-i2v)
8. [练习四多参考人物对白](#8-练习四多参考人物对白h3-ref2va)
9. [练习五首尾帧](#9-练习五首尾帧视频)
10. [配音和指定音频驱动](#10-配音和指定音频驱动)
11. [LoRA结构控制和常用扩展](#11-lora结构控制和常用扩展)
12. [参数怎样调整](#12-参数怎样调整)
13. [练习六独立配乐](#13-练习六独立配乐minimax-music3)
14. [把工作流用于一场短剧](#14-把工作流用于一场短剧)
15. [常见问题怎么排查](#15-常见问题怎么排查)
16. [保存复用和接口](#16-保存复用和接口)
17. [练习与检查清单](#17-练习与检查清单)
18. [依据和验证范围](#18-依据和验证范围)
## 1. 工作流是什么
工作流是一张处理数据的有向图。每个节点做一件事,连线把前一个节点的输出送到后一个节点的输入。
典型生成过程包含五部分:加载正确模型、把文字/图片变成条件、准备潜空间和噪声、采样生成、解码并保存。
```mermaid
flowchart LR
M[加载生成模型] --> S[采样]
T[文字和参考素材] --> C[条件编码]
C --> S
L[潜空间与噪声] --> S
S --> D[VAE解码]
D --> O[图片/音频/视频输出]
```
例如你要做“法老听完摩西的话,停止转动戒指”:先有法老正确的脸和站位图,再写动作与视线,模型才去生成这一个镜头。把“整部出埃及故事”塞进一个节点,不会自动得到完整分镜、合理对白和准确剪辑。
画布位置用于方便阅读,执行次序由依赖连线决定。把一个节点拖到最右边不会让它自动最后执行;没有连接到本次输出的支路通常不会参与本次生成。
## 2. 模型、节点、参数分别是什么
| 名称 | 实际含义 | 例子 |
|---|---|---|
| 模型文件 | 学到生成能力的一组权重 | Z-Image主模型、H3主模型 |
| 节点 | 加载或操作数据的一段程序 | `UNETLoader`、`KSampler` |
| 参数 | 这个节点本次怎么工作 | seed、steps、宽高 |
| 输入素材 | 本次用到的具体内容 | 摩西定妆图、对白录音 |
| 工作流JSON | 节点、参数和连线的描述 | 附带的6套GUI示例 |
| 自定义节点包 | 给ComfyUI增加节点的代码扩展 | 本机T8音频控制节点包 |
下载一个JSON不会自动带来模型权重。装了一个自定义节点包,也不代表它依赖的模型已经齐全。主模型、文本编码器、VAE、LoRA要按该模型家族配套。
### 2.1 四类模型组件
| 组件 | 负责什么 | 常用加载节点 |
|---|---|---|
| 生成模型/去噪模型 | 依据条件预测如何更新潜空间 | `UNETLoader` |
| 文本或多模态编码器 | 把文字、以及部分任务中的图像/音频上下文变成模型能用的表示 | `CLIPLoader`、`DualCLIPLoader` |
| VAE | 在像素/波形与潜空间之间转换 | `VAELoader` |
| LoRA | 在基础模型上应用一个较小的适配权重 | `LoraLoader`、`LoraLoaderModelOnly` |
`UNETLoader`是历史节点名,实际可以加载受支持的Transformer类生成模型。`CLIP`也是接口类型名,本机Qwen/H3文本编码器不等于传统CLIP模型。不要仅凭节点名称判断内部架构。
### 2.2 本机已跑过的配套关系
下面都是项目执行记录里的组合,本次接口下拉列表仍能找到对应文件。
| 任务 | 主模型 | 文本编码器与type | VAE |
|---|---|---|---|
| Z-Image文生图 | `z_image_turbo_bf16.safetensors` | `qwen_3_4b.safetensors`,`lumina2` | `ae.safetensors` |
| Qwen2.1参考编辑 | `qwen_image_2.1_bf16.safetensors` | `qwen3vl_8b_bf16.safetensors`,`qwen_image` | `qwen_image_2.1_vae_bf16.safetensors` |
| H3图生/首尾帧 | `minimax_h3_fl2va_pruned_int8_convrot.safetensors` | `qwen3vl_32b_minimax_h3_nvfp4_awq.safetensors`,`minimax` | 视频:`minimax_h3_video_vae_fp16.safetensors`;音频:`minimax_h3_audio_vae_fp32.safetensors` |
| H3多参考 | `minimax_h3_ref2va_pruned_int8_convrot.safetensors` | 与上一行相同 | 与上一行相同 |
| Music3配乐 | `minimax_music3_dit_fp16.safetensors` | `minimax_music3_text_encoder_pruned_int8_convrot.safetensors`,`minimax` | `minimax_music3_dav.safetensors` |
H3和Music3的编码器type都写`minimax`,文件却不同,不能互换。两个VAE都输出`VAE`类型,也不代表它们能给同一个模型解码。
`CheckpointLoaderSimple`用于支持的整合式检查点,一次给出`MODEL / CLIP / VAE`。上表使用拆分加载,不能拿任意SDXL整合检查点替换这些专用组件。
## 3. 先认识连线的数据类型
节点左侧一般是输入,右侧一般是输出。端口名说明“这份数据用来做什么”,数据类型说明“它是什么”。连线颜色只作辅助,以当前端口标注为准。
| 类型 | 通俗理解 | 典型连接 |
|---|---|---|
| `MODEL` | 加载或修饰后的生成模型对象 | 模型加载器→采样器/Guider |
| `CLIP` | 编码器对象 | 编码器加载器→文本/多模态编码节点 |
| `VAE` | 编解码器对象 | VAE加载器→Encode/Decode |
| `CONDITIONING` | 已编码的条件,不是原始文字 | TextEncode→采样器positive |
| `LATENT` | 模型处理的潜空间数据 | 空潜空间→采样器→VAE解码 |
| `IMAGE` | 图片张量,也可以是一批视频帧 | LoadImage→参考节点;视频解码→CreateVideo |
| `MASK` | 表示区域范围的蒙版 | 蒙版→支持局部控制的节点 |
| `AUDIO` | 波形及其采样率等信息 | LoadAudio/音频解码→CreateVideo.audio |
| `VIDEO` | 包含视频帧及相关信息的视频对象 | CreateVideo→SaveVideo |
| `NOISE` | 噪声生成对象 | RandomNoise→高级采样器noise |
| `GUIDER` | 使用模型与条件指导采样的对象 | BasicGuider→高级采样器guider |
| `SAMPLER` | 采样算法对象 | KSamplerSelect→高级采样器sampler |
| `SIGMAS` | 采样的噪声级别序列 | BasicScheduler→高级采样器sigmas |
| `CONTROL_NET` | 结构控制模型对象 | ControlNetLoader→ControlNetApplyAdvanced |
| `STRING / INT / FLOAT / BOOLEAN` | 文字/整数/小数/开关 | 提示词、帧数、强度、启用开关 |
三条常见错误:
- `CLIP`是编码器对象,不能直接接采样器`positive`;中间需要条件编码。
- `LATENT`尚未成为可看的图片,不能直接接`SaveImage`;中间需要匹配的`VAEDecode`。
- 普通`AUDIO`不能接`CreateVideo.images`;它应接`audio`输入。
类型匹配是必要条件,还要检查模型家族、张量通道、尺寸和任务模式。`LATENT`同名也有图像、视频、音频、联合声画等不同内部结构。
### 3.1 端口和小控件有什么区别
下拉框、文本框和滑块是参数控件。例如`KSampler.steps=9`是参数;`KSampler.model`则需要一根`MODEL`连线。部分控件能在右键菜单转换成输入端口,供其他节点控制。
当某个参数已经接线,真正的值来自上游。Music3的`seconds`会接到潜空间时长输入,这时修改旁边旧的数字控件不会覆盖那根线传来的值。
## 4. 在画布上怎样搭建
### 4.1 从示例开始
1. 打开ComfyUI,先把当前工作流另存。
2. 将本文件夹`示例工作流`中的GUI JSON拖到画布,或从工作流菜单打开。
3. 找到模型加载节点,确认下拉文件名有实际值。
4. 对`LoadImage / LoadAudio`上传自己的对应素材,或从本机完整学习包取得参考文件;参见[素材替换说明](示例素材/README.md)。
5. 修改提示词和保存前缀,例如`learning_20261031/shot01`。
6. 第一遍保持原采样参数,只改一段文字或一张参考图。
7. 点击运行/Queue,看到保存节点返回结果后检查内容。
8. 另存自己的版本,记录模型、参数、输入和结果。
这些是本机旧项目的已执行副本。在原服务器上,旧输入路径可能直接可用;换机器或清理过输入目录后需要重新上传。素材上传到服务器后,节点用的是服务器文件名,不是你Windows磁盘上的本地路径。
### 4.2 真正从空画布搭建
1. 在空白处打开节点搜索,输入本指南的英文节点名。
2. 先放加载器和最终保存节点,明确输入和交付格式。
3. 放编码、潜空间、采样、解码节点。
4. 从左到右按本指南连线表连接,每接一根确认类型和端口。
5. 填匹配的模型文件,再填提示词和小规模参数。
6. 先跑通单张图或一条短镜头,再增加参考、分支与后期。
节点编号只在一张工作流内部有意义。本指南表里的编号来自附带实例,你自己新建时出现其他编号很正常。
## 5. 练习一:文生图(Z-Image)
用途:没有参考图时,探索人物定妆、服装、场景和风格。先选出满意的法老主图,再进入参考编辑。
示例:[GUI](示例工作流/01_文生图_ZImage.json) · [API](示例工作流/01_文生图_ZImage.api.json)。
### 5.1 节点分别做什么
| 编号 | 节点 | 作用 |
|---:|---|---|
| 16 | `UNETLoader` | 加载Z-Image主模型 |
| 11 | `ModelSamplingAuraFlow` | 按这条模型配方调整采样时间参数,示例shift=3;不负责画面内容 |
| 18 | `CLIPLoader` | 加载Qwen4B编码器,type为lumina2 |
| 17 | `VAELoader` | 加载ae VAE |
| 6 | `CLIPTextEncode` | 把正向提示词编码为条件 |
| 7 | `CLIPTextEncode` | 提供负向条件;示例文本为空 |
| 13 | `EmptySD3LatentImage` | 准备本模型所需的空潜空间,设置宽高和batch |
| 3 | `KSampler` | 根据模型、条件、seed等完成采样 |
| 8 | `VAEDecode` | 将采样结果解码为图片 |
| 9 | `SaveImage` | 把图片写入服务器输出目录并返回预览 |
`EmptySD3LatentImage`的名字不表示只适用于SD3;本例用它准备Z-Image需要的潜空间形状。不要随意换成另一个空潜空间节点。
### 5.2 连线
```mermaid
flowchart LR
U[UNETLoader] --> A[ModelSamplingAuraFlow]
A --> K[KSampler]
C[CLIPLoader] --> P[正向CLIPTextEncode]
C --> N[负向CLIPTextEncode]
P --> K
N --> K
L[EmptySD3LatentImage] --> K
K --> D[VAEDecode]
V[VAELoader] --> D
D --> S[SaveImage]
```
| 从哪里 | 接到哪里 | 类型 |
|---|---|---|
| 16.MODEL | 11.model | MODEL |
| 11.MODEL | 3.model | MODEL |
| 18.CLIP | 6.clip、7.clip | CLIP |
| 6.CONDITIONING | 3.positive | CONDITIONING |
| 7.CONDITIONING | 3.negative | CONDITIONING |
| 13.LATENT | 3.latent_image | LATENT |
| 3.LATENT | 8.samples | LATENT |
| 17.VAE | 8.vae | VAE |
| 8.IMAGE | 9.images | IMAGE |
### 5.3 第一次填什么
| 参数 | 本例实际值 | 调整目的 |
|---|---|---|
| 宽×高 | 1344×768 | 画布比例和像素量 |
| batch_size | 1 | 同一次生成的图片数,增加会占更多显存 |
| steps | 9 | 与Turbo配方相配的采样步数 |
| cfg | 1 | 此配方不依靠常规正负CFG增强 |
| sampler / scheduler | euler / simple | 保持配方组合 |
| denoise | 1 | 完整生成 |
| shift | 3 | Z-Image这条配方的时间参数 |
法老定妆练习提示词可以写:
> 原创古埃及法老,约五十岁,神态克制,深色短发或剃发,金蓝相间王巾、亚麻衣与宽领饰。单人胸上定妆,双眼可见,嘴闭合,侧窗柔光,背景简洁,真实皮肤与织物。不要把人物设计成欧洲王冠、重甲或夸张魔王。
这只是可替换的练习文字,没有在本轮实际生成。满意后固定主图,并给它编号PH01。下一次换场景应从主图参考编辑开始,不能只靠相同seed重新抽同一个人。
## 6. 练习二:图生图与参考图编辑
### 6.1 普通图生图的基本概念
在适配的图像模型中,`LoadImage.IMAGE → VAEEncode.pixels`,再把匹配VAE接到`VAEEncode.vae`,编码出的`LATENT`送到采样器。`denoise`决定重新采样的程度。最终仍经过VAE解码和保存。
```text
LoadImage → VAEEncode → KSampler.latent_image → VAEDecode → SaveImage
↑ ↑ ↑
匹配VAE 模型与文字条件 同一匹配VAE
```
这是普通图生图的结构说明,本包没有单独提供其已运行示例。不同模型接受的潜空间和采样方式不同,不能把这段概念连线直接套到H3或所有编辑模型上。
### 6.2 本机参考编辑用Qwen Image2.1
用途:保留同一演员,再换场景、衣物、景别、机位或修掉指定问题。示例:[GUI](示例工作流/02_参考图编辑_Qwen21.json) · [API](示例工作流/02_参考图编辑_Qwen21.api.json)。
| 编号 | 节点 | 作用 |
|---:|---|---|
| 1 | `LoadImage` | 输入主参考图,本例为摩西主定妆 |
| 20 | `UNETLoader` | Qwen Image2.1主模型 |
| 21 | `CLIPLoader` | 对应Qwen3-VL 8B编码器,type=qwen_image |
| 22 | `VAELoader` | Qwen2.1专用VAE |
| 23 | `QwenImage21Cache` | 管理这套模型的前缀缓存位置与精度 |
| 30 | `TextEncodeQwenImage21` | 读取编辑文字与有序参考图,输出正向、负向条件和对齐潜空间 |
| 31 | `KSampler` | 按编辑条件采样 |
| 32 | `VAEDecode` | 使用同一套VAE解码 |
| 33 | `SaveImage` | 保存编辑结果 |
### 6.3 连线
```mermaid
flowchart LR
U[Qwen主模型] --> C[QwenImage21Cache]
C --> K[KSampler]
E[Qwen编码器] --> T[TextEncodeQwenImage21]
I[LoadImage参考图] --> T
V[Qwen2.1 VAE] --> T
T -->|positive / negative / latent| K
K --> D[VAEDecode]
V --> D
D --> S[SaveImage]
```
| 从哪里 | 接到哪里 |
|---|---|
| 20.MODEL | 23.model |
| 23.MODEL | 31.model |
| 21.CLIP | 30.clip |
| 22.VAE | 30.vae、32.vae |
| 1.IMAGE | 30.images.image_1 |
| 30.positive(输出0) | 31.positive |
| 30.negative(输出1) | 31.negative |
| 30.latent(输出2) | 31.latent_image |
| 31.LATENT | 32.samples |
| 32.IMAGE | 33.images |
这一行的关键是**用编码节点给出的latent**。它与第一张有效参考图的尺寸对齐,不要额外造一块不同大小的空潜空间替换它。
### 6.4 多张参考图怎样接
每一张图用独立的`LoadImage`,依次接`image_1、image_2……`。本机API名为`images.image_1`等;画布可能显示折叠后的参考图分组。
例如图1是场景构图,图2是法老定妆,图3是摩西定妆,可以这样分工:
> 以<image1>的王宫构图为基础。左侧高位的法老使用<image2>的人脸与服饰;右侧下位的摩西使用<image3>的人脸、银发长须、红披肩和木杖。保持两个人分开,法老看右,摩西看左,灯光来自同一扇窗。
这类多人合成需要另外检查是否混脸、换位或改变道具,本例实际执行只有单参考,不能把单参考成功当成三参考同框已经验证。节点目前显示最多16个槽位;先从1—3张开始,不靠堆参考数量保证质量。不要把多张图先塞进一个图片batch代替独立槽位。
### 6.5 参数怎么理解
- 本例40步、CFG1、euler/simple、denoise1,`resolution=1024`,缓存`auto/default`。
- `resolution`约指参考像素面积的尺度,保留长宽比并按节点规则取整,不是强制宽高都等于1024。
- Qwen参考编辑的`denoise=1`仍有图像条件,不等于把参考图丢掉;不要照搬普通图生图“调低就更像”的经验。
- CFG1时常规负向引导不起作用,要在正向编辑指令里清楚写出该保留和该改变的内容。
- 缓存管内存与计算,不是角色记忆或人脸数据库。改变缓存精度不能代替角色参考。
从“一次只改背景”开始,成功后再试机位或动作。人物脸没有保持住时,先对照输入图和指令,再考虑参数。
## 7. 练习三:图生视频(H3 I2V)
用途:让一张已经确认的分镜首帧运动起来。适合行走、举杖、倾听、单人表演等。示例:[GUI](示例工作流/03_图生视频_H3_I2V.json) · [API](示例工作流/03_图生视频_H3_I2V.api.json)。
该示例原本是摩西说“让我的百姓走”的镜头,包含旧对白。做静默反应时,必须把旧句替换成你的静默表演要求,并检查输出有没有多余讲话。
### 7.1 它为什么比文生图多很多节点
H3此处把声画一起生成,采样又拆成噪声、指导器、算法和噪声日程等独立节点。你可以把这几个节点整体理解为“展开的采样器”。
| 编号 | 节点 | 作用 |
|---:|---|---|
| 1 | `LoadImage` | 已确认的镜头首帧 |
| 6 | `UNETLoader` | 加载FL2VA主模型 |
| 121 | `LoraLoaderModelOnly` | 加载匹配的8步FL2V加速LoRA |
| 13 | `CLIPLoader` | H3专用Qwen3-VL编码器 |
| 11 | `VAELoader` | H3视频VAE |
| 24 | `VAELoader` | H3音频VAE,与视频VAE分开 |
| 104 | `MiniMaxH3ImageToVideo` | 编码提示词/首帧,设置画幅与长度,输出条件及联合声画潜空间 |
| 15 | `RandomNoise` | 提供由noise_seed决定的噪声 |
| 16 | `BasicGuider` | 把模型与条件组合成指导器;此节点不提供常规正负CFG旋钮 |
| 17 | `KSamplerSelect` | 选择采样算法,本例res_multistep |
| 9 | `BasicScheduler` | 依据模型、步数和denoise生成SIGMAS日程 |
| 14 | `SamplerCustomAdvanced` | 使用上述输入执行采样 |
| 10 | `VAEDecode` | 从采样结果解出视频图片帧 |
| 23 | `VAEDecodeAudio` | 从同一联合结果解出音频 |
| 91 | `CreateVideo` | 把图片帧和音频组合成VIDEO对象 |
| 92 | `SaveVideo` | 将VIDEO对象编码保存为实际视频文件 |
### 7.2 完整连线
```mermaid
flowchart LR
U[FL2VA主模型] --> L[匹配FL2V LoRA]
L --> G[BasicGuider]
L --> B[BasicScheduler]
C[H3编码器] --> H[H3 ImageToVideo]
I[首帧] --> H
V[视频VAE] --> H
H -->|positive| G
H -->|LATENT| S[SamplerCustomAdvanced]
G --> S
B --> S
N[RandomNoise] --> S
A[KSamplerSelect] --> S
S --> D[视频VAE解码]
S --> E[音频VAE解码]
V --> D
W[音频VAE] --> E
D --> M[CreateVideo]
E --> M
M --> O[SaveVideo]
```
| 从哪里 | 接到哪里 | 类型 |
|---|---|---|
| 6.MODEL | 121.model | MODEL |
| 121.MODEL | 16.model、9.model | MODEL |
| 13.CLIP | 104.clip | CLIP |
| 11.VAE | 104.vae、10.vae | VAE |
| 1.IMAGE | 104.first_frame | IMAGE |
| 104.positive(0) | 16.conditioning | CONDITIONING |
| 104.LATENT(1) | 14.latent_image | LATENT |
| 15.NOISE | 14.noise | NOISE |
| 16.GUIDER | 14.guider | GUIDER |
| 17.SAMPLER | 14.sampler | SAMPLER |
| 9.SIGMAS | 14.sigmas | SIGMAS |
| 14.output(0) | 10.samples、23.samples | LATENT |
| 24.VAE | 23.vae | VAE |
| 10.IMAGE | 91.images | IMAGE帧batch |
| 23.AUDIO | 91.audio | AUDIO |
| 91.VIDEO | 92.video | VIDEO |
已经应用LoRA的MODEL要同时进入Guider和Scheduler。不要把其中一根线仍留在原始主模型上。
### 7.3 已验证参数
本例:960×544、175帧、24fps、8步、res_multistep/simple、denoise1、LoRA强度1。175帧约7.29秒。
`MiniMaxH3ImageToVideo`设置模型生成的宽、高和帧数;`CreateVideo.fps`设置组装视频时使用的帧率。H3这里按24fps设计,不能只把CreateVideo改成30就当成模型多生成了6帧/秒。
### 7.4 提示词怎么写
本地H3基础模式采用三个字段,I2V前面还有参考图片说明。下面是练习用的原创新提示词,不代表本轮已生成:
```text
For the target video, at 0.00 seconds into the target video, <Picture 1> (from [Shot 1]) is fully referenced.
integrated_multimodal_description: [Shot 1] A locked medium close-up of the same Pharaoh in the reference. He looks toward Moses just offscreen right. He listens, stops moving the ring on his finger, and replies quietly but firmly: <d>[Chinese] 男人可以。孩子留下。</d> His visible mouth matches the audible sentence. After speaking he closes his mouth and waits for the reply. Keep his face, clothing and light unchanged. No other speaker, no cuts, no captions.
overall_soundscape: A quiet stone hall, faint cloth movement, and only the specified Mandarin line. No background conversation.
non_diegetic_music: None.
```
镜头提示词写谁、怎么动、对谁说、说什么、听完怎样。对白文字放在`<d>[Chinese] ... </d>`里;身份、音色、情绪和动作写在标签外。静默镜头删除对白标签,并明确闭嘴和具体倾听动作。
时间提示只能提出期望,不能保证模型在那一毫秒开口。仍需实际看嘴部、听语气、核对说话时间;ASR用于核字,不代替表演判断。
## 8. 练习四:多参考人物对白(H3 Ref2VA)
用途:给人物图片、声音等参考,再生成一条新的声画镜头。它适合继续同一角色的外观与音色;生成构图仍可能变化,不保证和参考图逐像素重合。
示例:[GUI](示例工作流/04_多参考对白_H3_Ref2VA.json) · [API](示例工作流/04_多参考对白_H3_Ref2VA.api.json)。默认引用摩西图和摩西声音,法老需要替换成法老自己的图和声音。
### 8.1 从I2V改哪些部分
| 部位 | I2V | Ref2VA |
|---|---|---|
| 主模型 | FL2VA | Ref2VA |
| 加速LoRA | FL2V 8步 | 匹配Ref2V 4步 |
| 条件节点104 | `MiniMaxH3ImageToVideo` | `MiniMaxH3ReferenceToVideo` |
| 图片连接 | `first_frame` | `ref_images.ref_image_1` |
| 音频连接 | 本例无参考音频 | 增加`LoadAudio → ref_audios.ref_audio_1` |
| VAE输入 | 视频VAE | 同时接视频`vae`和音频`audio_vae` |
| 提示词 | 三字段 | 六字段 |
| 采样步数 | 本例8 | 本例4,与匹配LoRA一起使用 |
它们不是只换一个节点名字。换模式时,主模型、LoRA、条件输入、步数与提示词结构一起核对。
### 8.2 参考输入怎样连
在前一节采样、解码与保存结构保持不变的基础上:
| 从哪里 | 接到哪里 |
|---|---|
| H3编码器CLIP | 104.clip |
| H3视频VAE | 104.vae、视频解码器vae |
| H3音频VAE | 104.audio_vae、音频解码器vae |
| LoadImage.IMAGE | 104.ref_images.ref_image_1 |
| LoadAudio.AUDIO | 104.ref_audios.ref_audio_1 |
| 104.positive(0) | BasicGuider.conditioning |
| 104.LATENT(1) | SamplerCustomAdvanced.latent_image |
增加第二张角色图时,用另一个`LoadImage`接下一参考槽位。增加另一个人物声音时,用另一`LoadAudio`接下一声音槽位,并在文字里明确谁对应哪张图、哪段声音。
`ref_image_size`本例为`max`。它使用更大的参考处理尺度,可能增加显存和计算;不等于开启“绝对锁脸”。先复用本例,不在未看结果时同时增加画幅、时长和参考数量。
### 8.3 六字段提示词示意
```text
subject_definitions: <Subject 1> is Pharaoh (S1). His face, clothes and appearance come from <Picture 1>. His voice identity comes from <Audio 1>.
summary: Generate one new live-action Mandarin dialogue shot of Pharaoh answering Moses offscreen. The target is about six seconds.
retention_analysis: Keep the recognizable actor and costume from <Picture 1>. Use <Audio 1> for speaker timbre only; do not repeat its old sentence. Speak the NEW exact line below.
detailed_description: [Shot 1] Pharaoh looks just offscreen right toward Moses. He listens first, then replies with controlled authority: <d>[Chinese] 男人可以。孩子留下。</d> His mouth matches the audible words. Afterward he closes his mouth and waits. No other speaker, no cut, no captions.
overall_soundscape: Quiet palace air and the specified Mandarin reply only. No unrelated words or crowd conversation.
non_diegetic_music: None.
```
这里的图片、声音编号跟输入顺序对应。如果交换了两段音频,人物绑定文字也要更新。多参考不是把“同一个人”重复写很多次,而是给实际素材明确分工。
### 8.4 需要知道的限制
- 这条路线会生成新的音频,不保证完整保留输入声音的每一个采样点、节奏与停顿。
- 参考录音应清晰、少混响、少背景乐,先选同语言的连续语音;本项目摩西参考约2.88秒。
- 官方参考范围是图片最多9张,视频和音频分别最多3段;参考片段有2—15秒等长度限制及总文件/总时长限制。第一次只用一张图和一段声音即可。
- 多人同框时既要分配身份,也要明确当前谁说、谁听。不要默认模型会自动把一句话分给正确的人。
- 画面已经明显动嘴而音轨还未开声,或音频开始但嘴没动时,要重新取用合适范围或重做;不能把另一句录音硬搬到不匹配的嘴上。
## 9. 练习五:首尾帧视频
用途:开始与结束的状态都能提前画出来,例如海面从完整变为两侧水墙、人物从门外走到门内、物件从收起变为展开。
示例:[GUI](示例工作流/05_首尾帧视频_H3_FL2V.json) · [API](示例工作流/05_首尾帧视频_H3_FL2V.api.json)。
沿用第7节FL2VA主模型与FL2V 8步LoRA,在`MiniMaxH3ImageToVideo`增加一根线:
```text
LoadImage A(开始画面).IMAGE → first_frame
LoadImage B(结束画面).IMAGE → last_frame
```
其他采样、声画解码和保存连接不变。示例226帧,约9.42秒。
提示词开头同时指定两张参考及对应时间,例如226帧/24fps时,最后一帧时间约9.38秒:
```text
For the target video, at 0.00 seconds into the target video, <Picture 1> (from [Shot 1]) is fully referenced; at 9.38 seconds into the target video, <Picture 2> (from [Shot 1]) is fully referenced.
```
随后仍写三字段,描述中间如何发生变化。分海应写“水先向左右退开、海床逐渐显露、终段形成水墙”,不能只写“史诗、震撼、巨浪”。
两张图尽量保持同一空间、地平线、镜头方向和角色身份。首尾帧能帮助约束端点,不能证明中间动作合理;仍要看是否变成淡化、突变、身体穿模或道具消失。
选择原则:
| 任务 | 优先路线 |
|---|---|
| 只知道氛围、演员不需固定 | 文生视频探索,先看小样 |
| 已确定首帧,重点是动作 | I2V |
| 需要角色/音色等多种参考 | Ref2VA |
| 开始与结束都必须接上 | 首尾帧 |
| 必须照着一段确定录音说话 | 专门音频驱动路线,先验证同步能力 |
本例没有单独附文生视频的已执行模板。H3基础节点在不提供首尾图时支持文本模式,但“有这个入口”和“这条新配置已测试满意”应分开记录。
## 10. 配音和指定音频驱动
### 10.1 三种声音做法
| 做法 | 输入 | 实际控制的内容 |
|---|---|---|
| 原生声画生成 | 图片/文字/准确台词 | 模型同时生成画面和声音,仍可能声画失配 |
| 参考音色生成 | 人物图+声音参考+新台词 | 尝试延续说话人音色,目标语音仍是新生成的 |
| 指定音频驱动 | 已经满意的最终对白音频+人物/画面 | 让画面跟随该录音,具体效果依模型、条件和工作流验证 |
单独把配音和视频放进`CreateVideo`,只是在组合两个轨道,不会自动让嘴部跟随录音。`LoadAudio`能读取声音,也不会自己产生口型。
### 10.2 本机T8节点是什么
本次实际接口存在`MiniMaxH3AudioConditioningT8`,它来自自定义节点包。它提供`drive_audio`、`final_audio`、首尾图、参考图等输入,以及`positive、av_latent、mux_audio`等输出。
| 字段 | 从接口可确认的职责 | 使用时要核实什么 |
|---|---|---|
| `drive_audio` | 提供驱动用音频 | 是否真参与声画条件,时间是否对齐 |
| `final_audio` | 可单独提供最终混入的干净音轨 | 是否与驱动音轨内容、速度一致 |
| `audio_mode` | 可选lock_source、remix_source、reference_only、native | 不同模式对源音频的保留/重生成不同 |
| `task_type` | 显式选择I2VA、Ref2VA等任务,或auto | 要与所用主模型及参考条件相配 |
| `positive / av_latent` | 输出供采样器使用的条件/潜空间 | 不能直接当最终视频 |
| `mux_audio` | 提供给最终组装的音频输出 | 音频保存正确不等于嘴已经同步 |
概念上的位置是“读取声音与图片 → 音频条件节点 → 采样生成画面 → 与确认声音组装”。但本项目没有完成这条T8指定音频路线的端到端运行验证,**本包不把它作为第7套已跑通JSON交付**。
先拿一张人物图和约5—8秒录音做验证:核对最终音轨是否确实保留该录音;检查开声、停声、闭口和脸部;再检查片外静默有没有持续动嘴。即使音轨逐采样保持一致,也还需验证画面口型。
### 10.3 为了对白自然,要先解决什么
一段法老与摩西对手戏,应先确定句子对谁说、想改变什么、对方如何反应。声音的停顿跟着这些刺激走。不要把每个短词都安排固定的长空档,再靠音乐填满。
台词原生生成后,听完整交流,再核字与口型;指定录音路线则先选满意的表演,再验证驱动画面。两种路线都应先完成约30秒小样,不直接批量制作整部。
## 11. LoRA、结构控制和常用扩展
### 11.1 LoRA是什么
LoRA是一种较小的适配权重,通常在较大的基础模型上应用。它可以针对人物、风格、动作、物体或加速任务训练。你看到一个LoRA文件时,要先知道它针对哪个基础模型、训练目标和使用配方。
| LoRA类型 | 可能的用途 | 不能直接推断的事 |
|---|---|---|
| 人物LoRA | 学习特定人物的外观特征 | 不保证所有角度和服饰下都保持一样 |
| 风格LoRA | 偏向某种画面风格 | 不负责剧本、站位或对白自然度 |
| 动作/概念LoRA | 增强某种动作或视觉概念 | 不保证任意复杂动作都物理正确 |
| Turbo/蒸馏加速LoRA | 配合特定少步数采样 | 不等于人物锁脸LoRA,也不应随意套到别的任务 |
`LoraLoader`接`MODEL + CLIP`,通常输出修改后的`MODEL + CLIP`;该LoRA实际包含哪些适配目标取决于文件。两路有需要时都继续向下游接修改后的对象。
`LoraLoaderModelOnly`只接模型、输出模型,H3例子使用这一类。强度1是这些加速配方的实际值;普通人物/风格LoRA的合适强度要按作者说明与样片判断。强度增加不等于质量增加。
本项目没有训练摩西/法老人物LoRA。摩西一致性主要依靠主图、参考编辑和镜头检查。
### 11.2 ControlNet有什么用
ControlNet用额外的结构条件帮助控制姿态、轮廓、深度等。常见结构是:
```text
参考图 → 对应姿态/深度/边缘预处理 → ControlNetApplyAdvanced.image
ControlNetLoader.CONTROL_NET → ControlNetApplyAdvanced.control_net
文字正负条件 → ControlNetApplyAdvanced → 采样器的正负条件
```
`ControlNetApplyAdvanced`本机存在,输入包括positive、negative、control_net、image、strength、start_percent、end_percent,输出修改后的正负条件。`strength`控制影响程度,起止比例控制采样过程中的作用区间。
这只是通用图像结构控制说明。控制模型、预处理结果、主模型要相互适配;普通SDXL ControlNet不能因为端口能接就当作H3或Qwen2.1控制器。姿态控制也不会自动保证同一张脸。本包未附这条路线的实测示例。
### 11.3 其他常见节点
| 节点/类型 | 有什么用 | 接线位置 |
|---|---|---|
| `ImageScale` | 调整像素尺寸/比例供后续节点使用 | LoadImage之后或解码之后,输入输出仍是IMAGE |
| `VAEEncode` | 把真实图片编码成匹配潜空间 | 图片输入与采样之间 |
| `LoadImage.MASK` | 提供从输入图得到的区域蒙版 | 接支持MASK的局部处理节点;黑白含义按具体节点核对 |
| `LoadVideo` | 读取VIDEO对象 | 需要引入已有视频时 |
| `GetVideoComponents` | 将VIDEO拆为帧IMAGE、AUDIO、fps等 | LoadVideo之后,可分别处理声画 |
| `ConditioningZeroOut` | 将条件内容置零,供指定配方使用 | 例如Music3的负向支路 |
| `DualCLIPLoader` | 加载某套模型需要的一对编码器 | 只在该模型配方要求时使用 |
图片缩放只改变像素采样。它不会自动重新设计构图,不能把横屏人物硬拉宽当成换镜头。蒙版只指定区域,真正的局部生成还需要合适的模型与工作流。
## 12. 参数怎样调整
### 12.1 最常见的参数
| 参数 | 作用 | 怎样调整才有判断依据 |
|---|---|---|
| seed / noise_seed | 噪声随机种子 | 对比两个参数时固定seed;探索不同结果时换seed |
| steps | 采样迭代步数 | 先用匹配配方,少步数LoRA和普通模型不照搬 |
| cfg | 常规正负引导强度 | 仅对使用这类CFG的路线有意义;BasicGuider没有同一个cfg旋钮 |
| sampler_name | 每步更新算法 | 先保持模板,不把“更高级名字”当质量保证 |
| scheduler | 噪声级别随步骤的安排 | 与算法、模型配方配套 |
| denoise | 本次采样使用的去噪程度/日程区间 | 图生图、参考编辑、加速模型的语义不能混用 |
| width / height | 生成画幅和像素量 | 同时影响构图、细节与显存;先保持比例再调大小 |
| batch_size | 一次处理的样本数 | 新手先1,不等于连续镜头数 |
| length | 视频生成帧数 | 按模型允许的网格和训练范围设置 |
| fps | 输出组装帧率 | 与生成时间轴一致,修改它不等于补帧 |
| ref_image_size | 参考图处理尺度 | 更大参考可能更重,必须看身份与显存实际结果 |
同一个seed不等于同一人物。完整复现还取决于模型、软件、输入、参数和执行环境;本地缓存也会让相同输入复用已有结果。
### 12.2 H3帧数怎么计算
本地节点使用`17k+5`帧数网格,示例按24fps:
| length | 约时长 |
|---:|---:|
| 124 | 5.17秒 |
| 158 | 6.58秒 |
| 175 | 7.29秒 |
| 192 | 8.00秒 |
| 226 | 9.42秒 |
| 243 | 10.13秒 |
本机经验先用124—192帧做单动作短镜头。节点对不合网格的值可能取整,不要根据随手填的200就承诺成片一定8.33秒。最终以实际帧数、fps和探测结果为准。
### 12.3 改参数的顺序
先固定模型组合,解决参考图与提示词;再调整尺寸或时长;最后才比较步数、算法等。每次只改一类问题,给输出保存不同版本。
人物脸变了先查参考与角色绑定;木杖变火把先查图片与“torch light”等冲突文字;台词生硬先改对白和演绎。把steps从8加到30,不会自动解决这些创作问题,还可能违背加速配方。
BF16、FP8、INT8等表示不同权重精度或量化方案,会影响内存、加载和部分数值行为。它们不是统一的画质档位;应使用与节点、硬件和LoRA相容的组合。
## 13. 练习六:独立配乐(MiniMax Music3)
用途:生成独立音乐片段,再在剪辑阶段按剧情安放。示例:[GUI](示例工作流/06_配乐_MiniMaxMusic3.json) · [API](示例工作流/06_配乐_MiniMaxMusic3.api.json)。
### 13.1 节点与连接
| 编号 | 节点 | 作用 |
|---:|---|---|
| 1 | UNETLoader | Music3主模型 |
| 2 | CLIPLoader | Music3专用编码器 |
| 3 | VAELoader | Music3音频DAV |
| 4 | MiniMaxMusic3TextEncode | 编码caption、lyrics等,输出条件及实际seconds |
| 5 | ConditioningZeroOut | 从同一条件构造零条件支路 |
| 6 | EmptyMiniMaxMusic3LatentAudio | 根据编码器给出的seconds准备音频潜空间 |
| 7 | KSampler | 采样渲染音频潜空间 |
| 8 | VAEDecodeAudio | 使用Music3 DAV解成波形 |
| 9 | SaveAudioAdvanced | 保存FLAC等格式 |
```text
CLIPLoader → Music3TextEncode.CONDITIONING → KSampler.positive
├→ ConditioningZeroOut → KSampler.negative
└→ seconds → EmptyMusic3LatentAudio → KSampler.latent_image
UNETLoader.MODEL → KSampler.model
KSampler → VAEDecodeAudio ← Music3专用VAE
VAEDecodeAudio.AUDIO → SaveAudioAdvanced.audio
```
本例30步、CFG1.7、euler/simple、denoise1。编码器里的`cfg_scale`与KSampler里的`cfg`属于两个阶段的参数,不是同一个输入重复两遍。
`MiniMaxMusic3TextEncode.seed`与`KSampler.seed`在本例使用同一个整数。做可比较版本时同时记录两处,不只改一个后忘记另一个。
最容易接错的是`seconds`:要把TextEncode输出的实际seconds送到Empty节点,不是把上限44秒写死后假设一定生成44秒。
### 13.2 写什么和怎么使用
`caption`写音乐风格、情绪变化、速度、乐器和编排;`lyrics`用结构标签,例如`[Instrumental]`与`[Outro]`,不写对白文字。纯器乐要求也仍需检查生成结果有没有人声。
本片三曲设置42/44/40秒上限,实际约33.193/43.990/23.475秒。使用实际音乐长度安排入点和尾音,不把上限当成保证;高潮位置也需要测量和试听后对齐画面。
`VAEDecodeAudio`不是所有模型统一44.1kHz的转换器。本片H3原始音频为32kHz,Music3为44.1kHz,后期统一到48kHz以便混音。以实际AUDIO采样率或文件探测为准,换一个保存采样率不会增加原始声音细节。
## 14. 把工作流用于一场短剧
以“法老提出留下孩子,摩西拒绝”为例,每种工具的任务应当清楚:
| 制作步骤 | 具体交付 | 工作流 |
|---|---|---|
| 写场景 | 谁提出条件、谁拒绝、拒绝后发生什么 | 剧本和排演,先完成文字逻辑 |
| 定人物 | 法老PH01、摩西M01主图及服饰、木杖 | 文生图探索后确认主图 |
| 定空间 | 双方同框,法老高位、摩西下位、出口和卫兵位置 | Qwen参考编辑 |
| 定镜头 | 法老看右、摩西看左的中近景,必要反应 | Qwen参考编辑,逐张核脸和轴线 |
| 试对白 | 法老一句、摩西一句及各自声音参考 | H3 Ref2VA;更精确的指定录音另作驱动测试 |
| 拍反应 | 停止转戒指、握紧木杖、卫兵上前 | H3 I2V,单镜一个主要行为 |
| 先剪小样 | 约30秒完整交锋,有条件与后果 | 剪辑、对白与环境混音 |
| 扩展章节 | 放行、出城、反悔、追兵 | 按已确定场景逐镜生成 |
同框镜头负责建立关系,单人镜头负责听与说。不能把两个独立人像都拍得直视镜头,再期望剪辑自动产生对手戏。
参考图里要已经有正确的脸、服装、手和站位。视频提示词主要安排它们如何行动,避免在一条5秒镜头里同时要求换装、转身、说长句、走楼梯和镜头绕行。
## 15. 常见问题怎么排查
按输入素材、连线、配套模型、参数、生成内容的顺序排查。错误信息指向哪个节点,就先看该节点和直接上游。
| 症状 | 优先检查 | 处理办法 |
|---|---|---|
| 节点红色或找不到 | class_type是否已安装、节点包是否成功加载 | 对照接口快照与实际搜索;节点存在和模型存在分开查 |
| 模型下拉无文件 | 文件放在哪类模型目录、服务是否识别 | 使用服务器真实列表中的名字;JSON不携带权重 |
| 线接不上 | 端口类型是否相同 | 加适合的编码/解码转换,别强改类型名 |
| 能连线但形状报错 | 主模型、编码器、VAE、LoRA家族 | 回到已跑通的整套组合 |
| 采样完成没有文件 | 末端是否接SaveImage/SaveVideo/SaveAudio | 将真实输出接到保存节点 |
| 显示很多噪声/黑图 | 模型配套、VAE、采样日程、权重格式 | 先用已验证参数做小样,不先堆后处理 |
| Qwen编辑构图偏移 | 是否换了一个不同尺寸的空latent | 使用TextEncodeQwenImage21自身的latent输出 |
| 多参考只看到一张 | 是否把图塞到同一个batch、槽位是否正确 | 独立LoadImage接连续参考槽位,并按编号写角色 |
| 同一人物换脸 | 主图质量、参考绑定、机位变化、多人混淆 | 固定主图、减小同时变化量、对照五官后重做 |
| 木杖变火把等 | 参考图和动作提示中是否仍出现火把/发光词 | 改实际首帧与文字,必要时重新生成,不只写一长串禁止词 |
| 台词多词/乱码 | 是否给准确语言与对白标签、是否多人抢话 | 一镜少量对白,绑定当前说话人,核对完整输出 |
| 嘴先动、声音后到 | 实际口型和音轨起止 | 取用合适的同源区间或重做,不把新音轨随意移到旧嘴上 |
| 听起来像念稿 | 句子是否回应对方、停顿是否有动机 | 重写并试演;核字通过不等于表演通过 |
| 参考音频没被原样保留 | 用的是音色参考还是锁定音频模式 | 明确路线,指定音频驱动要另行验证 |
| 首尾能对上,中间穿模 | 中间动作是否过复杂、两端空间是否冲突 | 简化动作或拆镜头,不能只验首尾两张 |
| 视频时长不符合预期 | length网格、实际帧数和CreateVideo.fps | 按模型网格设置并探测结果,不仅看界面秒数 |
| 修改后还是老结果 | 是否仅移动节点、输入是否相同并命中缓存 | 修改真实输入/seed,确认本次运行记录与保存前缀 |
| 保存到错误文件夹 | 保存前缀是服务器相对路径 | 用独立项目子目录,不把Windows路径直接填成远程目录 |
| 运行显存不足 | 像素、帧数、batch、参考尺度、缓存模型 | 先减小其中一项、串行生成;不要释放正在执行其他任务的模型 |
| 音乐盖住对白 | 是否独立调人声/音乐并在对白处duck | 保留分轨,按真实台词窗口压音乐,最后再整体母带 |
本机曾出现连续H3任务缓存模型导致显存不足;确认队列完全空时释放模型后,短镜头串行运行成功。这个经验不授权在别人的任务运行时全局清队列、打断或重启服务。
## 16. 保存、复用和接口
### 16.1 两种JSON
GUI工作流有节点坐标、控件与画布连线,用于拖入ComfyUI继续编辑。API工作流以节点ID为键,用`class_type + inputs`描述执行图,主要供脚本调用。二者不是随便换扩展名就能相互转换。
本包每个实例各提供一份GUI和一份API。原始任务、规范哈希、界面布局、历史执行一致性的检查见[示例来源与校验](接口核对/示例来源与校验.json)。
### 16.2 API里一根线长什么样
```json
{
"32": {
"class_type": "VAEDecode",
"inputs": {
"samples": ["31", 0],
"vae": ["22", 0]
}
}
}
```
`["31", 0]`表示节点31的第0个输出,不是字符串形式的图片路径。这段只演示一根线,不是可单独执行的完整工作流。
### 16.3 复用一张图的步骤
另存副本,先保留已验证的模型与采样结构;替换角色图/声音、提示词、输出前缀,再检查旧角色名、旧对白和旧参考编号是否残留。内容参数改变后保存新版本,保留上次可用版本。
建议分文件夹保存`人物主图、场景首帧、声音参考、工作流、原始输出、采用清单、成片`。每次运行记录镜号、输入、模型、seed、参数和结果;记录未采用原因,能避免把同一错误再次选回来。
## 17. 练习与检查清单
### 17.1 六个练习
1. 文生图:只改提示词,生成一个法老定妆;说清MODEL、CLIP、VAE和LATENT分别来自哪里。
2. 参考编辑:只换背景;核对脸、衣装、道具与光向,再试改变景别。
3. 图生视频:让人物闭嘴、停下手部动作;看是否真的停止而不是只在字幕里写停止。
4. 多参考对白:一张人物图、一段同角色声音,生成一句新台词;核字并检查开口和闭口。
5. 首尾帧:同一场景中的门从关闭到打开;检查中间有真实变化,而非突然换图。
6. 配乐:生成短器乐段,测实际时长,在一段对白下压低音乐;保存人声和音乐分轨。
### 17.2 运行前
- [ ] 这一条镜头只承担一个明确的叙事/动作任务。
- [ ] 主模型、编码器、VAE、LoRA与任务模式匹配。
- [ ] 参考图人物、服装、手、道具、位置已检查。
- [ ] 说话人和声音参考对应正确,旧台词已经替换。
- [ ] 条件、潜空间、采样、解码及保存都接通。
- [ ] 参数先沿用实测配置,模型特有尺寸与帧数规则满足。
- [ ] 输出前缀与版本可区分。
### 17.3 运行后
- [ ] 文件实际存在,分辨率、帧数、fps、音频与预期一致。
- [ ] 人物身份、动作、空间、道具在开/中/末仍成立。
- [ ] 听完整对白,核对漏词、增词、语气、气口与接话。
- [ ] 说话外的嘴部没有持续假动,音轨没有无关对白。
- [ ] 前后镜头能连接,人物决定造成下一件事。
- [ ] 记录采用区间和问题;生成成功、技术检查通过和艺术认可分开标记。
## 18. 依据和验证范围
### 18.1 本地依据
- [服务版本](接口核对/服务版本.json):本次实际读取的版本及39种节点存在情况。
- [节点接口快照](接口核对/节点接口快照.json):实际输入/输出、下拉模型和参数结构。
- [示例来源与校验](接口核对/示例来源与校验.json):6个旧任务均历史执行成功,执行图与保存图一致,GUI无节点重叠;原学习包复制未改变原JSON;本仓库归档将换行规范为LF,图结构与参数保持一致。
- [节点端口速查](节点端口速查.md):从上述接口生成,供逐节点检索。
配套示例来自同一台服务器已执行的任务。本次没有重新渲染这些任务,因此不把接口检查表述为“刚刚又生成了一遍”。普通图生图、ControlNet扩展和T8指定音频驱动分别标了概念或未验证状态。
### 18.2 公开一手资料
- [ComfyUI节点与属性](https://docs.comfy.org/development/core-concepts/properties):输入、控件和数据类型。
- [ComfyUI核心节点代码](https://github.com/Comfy-Org/ComfyUI/blob/master/nodes.py):通用加载、采样和VAE节点实现。
- [ComfyUI高级采样实现](https://github.com/Comfy-Org/ComfyUI/blob/master/comfy_extras/nodes_custom_sampler.py):Guider、Noise、SIGMAS与自定义采样。
- [Qwen Image2.1官方ComfyUI指南](https://docs.comfy.org/tutorials/image/qwen/qwen-image-2-1):参考编辑与节点使用。
- [ComfyUI Qwen节点实现](https://github.com/Comfy-Org/ComfyUI/blob/master/comfy_extras/nodes_qwen.py):参考槽位、编码与潜空间处理。
- [MiniMax H3官方模型说明](https://huggingface.co/MiniMaxAI/MiniMax-H3):任务、输入模式、声画规格与提示词资料入口。
- [ComfyUI H3节点实现](https://github.com/Comfy-Org/ComfyUI/blob/master/comfy_extras/nodes_minimax_h3.py):I2V、参考生成和帧数规则。
- [ComfyUI Music3节点实现](https://github.com/Comfy-Org/ComfyUI/blob/master/comfy_extras/nodes_minimax_music.py):音乐条件和实际时长输出。
公开文档与接口都会更新。复用到其他机器时,先核对该机器实际节点和模型;同名端口或网上截图不能替代这一步。
+24
View File
@@ -0,0 +1,24 @@
# ComfyUI 工作流搭建指南
从[主指南](ComfyUI工作流搭建指南.md)学习节点作用、数据类型、逐端口连线与参数;查单个接口用[39种节点端口速查](节点端口速查.md);导入实例见[6套工作流说明](示例工作流/README.md)。
## 内容与验证范围
| 目录或文件 | 用途 |
|---|---|
| 主指南 | 文生图、参考图编辑、图生视频、多参考对白、首尾帧、配乐及故障排查 |
| 示例工作流 | 6套实际成功任务的GUI与API副本(仅将文本换行规范为LF),共12个JSON |
| 示例素材 | 替换方法和本地素材的文件名、哈希;媒体本身未进入Git |
| 接口核对 | 2026-10-31实际读取的39种节点接口、服务版本、历史任务核对 |
| [归档核对](归档核对.json) | 本次复制与文本适配记录 |
本次为2026-11-01文档整理,没有重新运行示例或验证新版服务。原工作流保留旧人物、旧台词、旧输入路径及保存前缀;先另存,换素材和提示词再运行。T8指定音频驱动仍未完成端到端验证。
## 在自己的电脑复用
1. 把普通`.json`拖入ComfyUI;`.api.json`供脚本提交。
2. 按[素材替换说明](示例素材/README.md)上传自己的角色图、镜头图和音色参考,再在加载节点里选择。
3. 确认模型和自定义节点存在,保留匹配的主模型、编码器、VAE与加速LoRA。
4. 修改旧提示词、人物绑定、时长和保存前缀。先做短小样,确认表演及声画后再批量制作。
本机包含媒体的原学习包:[目录](F:/AI视频项目/摩西出埃及_应许之路_20261030/V2_剧本重构_20261031/工作流搭建指南/README.md)。该路径仅对原制作电脑有效;外部读者可用自己的合法参考素材完成练习。
+161
View File
@@ -0,0 +1,161 @@
{
"date": "2026-11-01",
"source_package": "F:/AI视频项目/摩西出埃及_应许之路_20261030/V2_剧本重构_20261031/工作流搭建指南",
"copy_scope": "Markdown and JSON only; original media and models remain local",
"new_gpu_jobs": 0,
"copied_files": [
{
"source": "F:/AI视频项目/摩西出埃及_应许之路_20261030/V2_剧本重构_20261031/工作流搭建指南/ComfyUI工作流搭建指南.md",
"destination": "ComfyUI工作流搭建指南.md",
"source_sha256": "bb2b4d70200b1ac0cfce44f4a9390e9e152015924a407e1325f898074a539d4a",
"archived_sha256": "436d9081297a927ae3b49fd179baba058ac177a1135e12b98b3882a25d656772",
"unchanged": false
},
{
"source": "F:/AI视频项目/摩西出埃及_应许之路_20261030/V2_剧本重构_20261031/工作流搭建指南/接口核对/公开来源链接检查.json",
"destination": "接口核对/公开来源链接检查.json",
"source_sha256": "c2134108366d89ef2b91041820a8e5aef61099649fc763e283a9d2e25ba5d137",
"archived_sha256": "311990bbdd8e0cd886c17c338ee4560440736d999115ca088e3ff7a71e5fc270",
"unchanged": false,
"json_semantics_unchanged": true
},
{
"source": "F:/AI视频项目/摩西出埃及_应许之路_20261030/V2_剧本重构_20261031/工作流搭建指南/接口核对/服务版本.json",
"destination": "接口核对/服务版本.json",
"source_sha256": "0364e5a556789d157aed8940ea5262c149a74a13bced340802cd705766220277",
"archived_sha256": "af5c33995c064931cc71816e4d49cb8e66de3aebea34f52d15907ef1fe5b3d87",
"unchanged": false,
"json_semantics_unchanged": true
},
{
"source": "F:/AI视频项目/摩西出埃及_应许之路_20261030/V2_剧本重构_20261031/工作流搭建指南/接口核对/示例来源与校验.json",
"destination": "接口核对/示例来源与校验.json",
"source_sha256": "c773278b5c31e0125a88183a9f84da2c1047f7cbf54d8546f135e3236f2faa08",
"archived_sha256": "21516a8a5a3390c739c394d2b5aff3d5d84fbdb39bb82009c249f2d300308d98",
"unchanged": false,
"json_semantics_unchanged": true
},
{
"source": "F:/AI视频项目/摩西出埃及_应许之路_20261030/V2_剧本重构_20261031/工作流搭建指南/接口核对/节点接口快照.json",
"destination": "接口核对/节点接口快照.json",
"source_sha256": "c3e52a92782e299948f23b8fa1e3bb85505f83353f59f6d86956924aadab4986",
"archived_sha256": "dc96eb2b40458da5d9bf57b2e6c0df306a0732fc13eca97045a36c8d9449f8ea",
"unchanged": false,
"json_semantics_unchanged": true
},
{
"source": "F:/AI视频项目/摩西出埃及_应许之路_20261030/V2_剧本重构_20261031/工作流搭建指南/示例工作流/01_文生图_ZImage.api.json",
"destination": "示例工作流/01_文生图_ZImage.api.json",
"source_sha256": "81d1c89217af4b9bb98c7abd5cebbcbc41a91765a6256bd89c6b8d87eae97ac2",
"archived_sha256": "86e3cf0db1bcafe5f67c555ff7ebe73c982085afb601873d7c39245a73a09921",
"unchanged": false,
"json_semantics_unchanged": true
},
{
"source": "F:/AI视频项目/摩西出埃及_应许之路_20261030/V2_剧本重构_20261031/工作流搭建指南/示例工作流/01_文生图_ZImage.json",
"destination": "示例工作流/01_文生图_ZImage.json",
"source_sha256": "8aebff527189edf3965ec29cb91e89e6f742e4125cf31c9c4d29c6268c538261",
"archived_sha256": "2a99c50617591754769b427e8ed33348c77306bbf2f66cdf2b4a24dd919ce7cc",
"unchanged": false,
"json_semantics_unchanged": true
},
{
"source": "F:/AI视频项目/摩西出埃及_应许之路_20261030/V2_剧本重构_20261031/工作流搭建指南/示例工作流/02_参考图编辑_Qwen21.api.json",
"destination": "示例工作流/02_参考图编辑_Qwen21.api.json",
"source_sha256": "021c1081d42faa5ee5418e5aa219881c2f84977188dc24734d0f560ba3a5226f",
"archived_sha256": "df08f4e2c11aa1730e8933e355d716969765309979ab4890742d279b2293d9dc",
"unchanged": false,
"json_semantics_unchanged": true
},
{
"source": "F:/AI视频项目/摩西出埃及_应许之路_20261030/V2_剧本重构_20261031/工作流搭建指南/示例工作流/02_参考图编辑_Qwen21.json",
"destination": "示例工作流/02_参考图编辑_Qwen21.json",
"source_sha256": "3d5b4c7b808fe6d8b21dafc6f9fed2faa16f620bc25fc33b1738c8e542afc500",
"archived_sha256": "caae21eaf7d57cb0da8284c7b8929f5149b34179cec76d1cc21f727f84db0645",
"unchanged": false,
"json_semantics_unchanged": true
},
{
"source": "F:/AI视频项目/摩西出埃及_应许之路_20261030/V2_剧本重构_20261031/工作流搭建指南/示例工作流/03_图生视频_H3_I2V.api.json",
"destination": "示例工作流/03_图生视频_H3_I2V.api.json",
"source_sha256": "1668b19c835f1186eb766dd67cc16932f78896bfbf69dc125a305467679689ee",
"archived_sha256": "a585e5d7ec0fa7c21233123b262598aa071633d37de43e911acf98715feca3d9",
"unchanged": false,
"json_semantics_unchanged": true
},
{
"source": "F:/AI视频项目/摩西出埃及_应许之路_20261030/V2_剧本重构_20261031/工作流搭建指南/示例工作流/03_图生视频_H3_I2V.json",
"destination": "示例工作流/03_图生视频_H3_I2V.json",
"source_sha256": "92cb79dcd126c1bfb1eea5960fb0e42984a0cd5afbb724220edaa477f31b2558",
"archived_sha256": "7e6902bf55058a07508e4db9a0095ef239dd6ee75dcc1898a7f4ca5d70978316",
"unchanged": false,
"json_semantics_unchanged": true
},
{
"source": "F:/AI视频项目/摩西出埃及_应许之路_20261030/V2_剧本重构_20261031/工作流搭建指南/示例工作流/04_多参考对白_H3_Ref2VA.api.json",
"destination": "示例工作流/04_多参考对白_H3_Ref2VA.api.json",
"source_sha256": "5ec1c669873867859f3cb7419ba84f6603f014949b02b118476dbefa8d72812f",
"archived_sha256": "4be3c9cfc45494de492f921060cbabf7c9da8a2d660f3b7dda3f2f83b2275187",
"unchanged": false,
"json_semantics_unchanged": true
},
{
"source": "F:/AI视频项目/摩西出埃及_应许之路_20261030/V2_剧本重构_20261031/工作流搭建指南/示例工作流/04_多参考对白_H3_Ref2VA.json",
"destination": "示例工作流/04_多参考对白_H3_Ref2VA.json",
"source_sha256": "9d3b7e12b1bf823a2e0404d99b944888d1a24ece027e29e4750e0eb82f039138",
"archived_sha256": "ea5053e4b19a12d945b2835752d9dbd3ccc55211b19ad53dadd63750028229d4",
"unchanged": false,
"json_semantics_unchanged": true
},
{
"source": "F:/AI视频项目/摩西出埃及_应许之路_20261030/V2_剧本重构_20261031/工作流搭建指南/示例工作流/05_首尾帧视频_H3_FL2V.api.json",
"destination": "示例工作流/05_首尾帧视频_H3_FL2V.api.json",
"source_sha256": "7b3b34797540eae4941868cfb8d6f4beffcb673592c17e3bf0b4388cfedd7eb2",
"archived_sha256": "e354a4f4928c8f7d278cb0d906df045e73db5ccba4172cae25e614775876f622",
"unchanged": false,
"json_semantics_unchanged": true
},
{
"source": "F:/AI视频项目/摩西出埃及_应许之路_20261030/V2_剧本重构_20261031/工作流搭建指南/示例工作流/05_首尾帧视频_H3_FL2V.json",
"destination": "示例工作流/05_首尾帧视频_H3_FL2V.json",
"source_sha256": "1a2681e0649cc109bad651bb5cac2379e1505f83636691b183667edecd761fc8",
"archived_sha256": "f6416c642ddab74d68064bcb627beec182addd9b780c7daabc2a37d5a7670279",
"unchanged": false,
"json_semantics_unchanged": true
},
{
"source": "F:/AI视频项目/摩西出埃及_应许之路_20261030/V2_剧本重构_20261031/工作流搭建指南/示例工作流/06_配乐_MiniMaxMusic3.api.json",
"destination": "示例工作流/06_配乐_MiniMaxMusic3.api.json",
"source_sha256": "e254b6f1da89330895ee71e835b80d225b730e892f0531cb8229542b0934f5f9",
"archived_sha256": "0c1e025166a2e9b9bbaa2244091be33af88694fb8da1433e4f8f6ee9d8955c43",
"unchanged": false,
"json_semantics_unchanged": true
},
{
"source": "F:/AI视频项目/摩西出埃及_应许之路_20261030/V2_剧本重构_20261031/工作流搭建指南/示例工作流/06_配乐_MiniMaxMusic3.json",
"destination": "示例工作流/06_配乐_MiniMaxMusic3.json",
"source_sha256": "a5321f21a2d5633aa37e2de5c1ce54fe2de5328dcb86c51653038b932baf8d5b",
"archived_sha256": "5326dfd4e551ed09e4c34656e7b3e7afbba3c49a4600e045eb6d2fbeeffe3106",
"unchanged": false,
"json_semantics_unchanged": true
},
{
"source": "F:/AI视频项目/摩西出埃及_应许之路_20261030/V2_剧本重构_20261031/工作流搭建指南/示例工作流/README.md",
"destination": "示例工作流/README.md",
"source_sha256": "069f8d19670326b7424de02e07be8c51eaf9ccf31a37a1481c08e47b675fec21",
"archived_sha256": "492e564743a2b75536fe58a463b697bfe7bf3f063d94272bb746bc4d6fcc3dbb",
"unchanged": false
},
{
"source": "F:/AI视频项目/摩西出埃及_应许之路_20261030/V2_剧本重构_20261031/工作流搭建指南/节点端口速查.md",
"destination": "节点端口速查.md",
"source_sha256": "c362028bdaf098c8d617d4cc43faeb162db271275975a588fe2ecbf2f8b05ec9",
"archived_sha256": "213234034c8b0995273c1c03efb09dcf92d7f1d0a1ec90344b33182eef195278",
"unchanged": false
}
],
"gui_api_copies": 12,
"media_files_excluded": 6,
"historical_checks": "接口核对中的来源检查记录对应2026-10-31的原完整学习包,不代表仓库包含媒体或本次重新运行成功。",
"workflow_text_normalization": "CRLF to UTF-8/LF only; JSON graph and parameter values unchanged"
}
+493
View File
@@ -0,0 +1,493 @@
# 当前节点端口速查(自动读取实际接口)
核对:2026-10-31,服务器ComfyUI 0.39.0。39种节点。此附录列接口,功能、连线和应用见主指南。
COMBO是下拉参数;COMFY_AUTOGROW_V3是可增长的一组输入。一个同名数据类型仍需匹配正确模型家族。
## CheckpointLoaderSimple
Load Checkpoint
| 方向 | 端口/参数 | 数据类型 | 默认值/说明 |
|---|---|---|---|
| 必填输入 | `ckpt_name` | COMBO(68项) | — |
| 输出0 | `MODEL` | MODEL | — |
| 输出1 | `CLIP` | CLIP | — |
| 输出2 | `VAE` | VAE | — |
## UNETLoader
Load Diffusion Model
| 方向 | 端口/参数 | 数据类型 | 默认值/说明 |
|---|---|---|---|
| 必填输入 | `unet_name` | COMBO(157项) | — |
| 必填输入 | `weight_dtype` | COMBO(4项) | — |
| 输出0 | `MODEL` | MODEL | — |
## CLIPLoader
Load CLIP
| 方向 | 端口/参数 | 数据类型 | 默认值/说明 |
|---|---|---|---|
| 必填输入 | `clip_name` | COMBO(65项) | — |
| 必填输入 | `type` | COMBO(29项) | — |
| 可选输入 | `device` | COMBO(2项) | — |
| 输出0 | `CLIP` | CLIP | — |
## DualCLIPLoader
Load CLIP (Dual)
| 方向 | 端口/参数 | 数据类型 | 默认值/说明 |
|---|---|---|---|
| 必填输入 | `clip_name1` | COMBO(65项) | — |
| 必填输入 | `clip_name2` | COMBO(65项) | — |
| 必填输入 | `type` | COMBO(12项) | — |
| 可选输入 | `device` | COMBO(2项) | — |
| 输出0 | `CLIP` | CLIP | — |
## VAELoader
Load VAE
| 方向 | 端口/参数 | 数据类型 | 默认值/说明 |
|---|---|---|---|
| 必填输入 | `vae_name` | COMBO(40项) | — |
| 输出0 | `VAE` | VAE | — |
## LoadImage
Load Image
| 方向 | 端口/参数 | 数据类型 | 默认值/说明 |
|---|---|---|---|
| 必填输入 | `image` | COMBO(48项) | — |
| 输出0 | `IMAGE` | IMAGE | — |
| 输出1 | `MASK` | MASK | — |
## ImageScale
Upscale Image
| 方向 | 端口/参数 | 数据类型 | 默认值/说明 |
|---|---|---|---|
| 必填输入 | `image` | IMAGE | — |
| 必填输入 | `upscale_method` | COMBO(5项) | — |
| 必填输入 | `width` | INT | 512 |
| 必填输入 | `height` | INT | 512 |
| 必填输入 | `crop` | COMBO(2项) | — |
| 输出0 | `IMAGE` | IMAGE | — |
## VAEEncode
VAE Encode
| 方向 | 端口/参数 | 数据类型 | 默认值/说明 |
|---|---|---|---|
| 必填输入 | `pixels` | IMAGE | — |
| 必填输入 | `vae` | VAE | — |
| 输出0 | `LATENT` | LATENT | — |
## VAEDecode
VAE Decode
| 方向 | 端口/参数 | 数据类型 | 默认值/说明 |
|---|---|---|---|
| 必填输入 | `samples` | LATENT | — |
| 必填输入 | `vae` | VAE | — |
| 输出0 | `IMAGE` | IMAGE | — |
## EmptyLatentImage
Empty Latent Image
| 方向 | 端口/参数 | 数据类型 | 默认值/说明 |
|---|---|---|---|
| 必填输入 | `width` | INT | 1024 |
| 必填输入 | `height` | INT | 1024 |
| 必填输入 | `batch_size` | INT | 1 |
| 输出0 | `LATENT` | LATENT | — |
## EmptySD3LatentImage
EmptySD3LatentImage
| 方向 | 端口/参数 | 数据类型 | 默认值/说明 |
|---|---|---|---|
| 必填输入 | `width` | INT | 1024 |
| 必填输入 | `height` | INT | 1024 |
| 必填输入 | `batch_size` | INT | 1 |
| 输出0 | `LATENT` | LATENT | — |
## CLIPTextEncode
CLIP Text Encode (Prompt)
| 方向 | 端口/参数 | 数据类型 | 默认值/说明 |
|---|---|---|---|
| 必填输入 | `text` | STRING | — |
| 必填输入 | `clip` | CLIP | — |
| 输出0 | `CONDITIONING` | CONDITIONING | — |
## KSampler
KSampler
| 方向 | 端口/参数 | 数据类型 | 默认值/说明 |
|---|---|---|---|
| 必填输入 | `model` | MODEL | — |
| 必填输入 | `seed` | INT | 0 |
| 必填输入 | `steps` | INT | 20 |
| 必填输入 | `cfg` | FLOAT | 8.0 |
| 必填输入 | `sampler_name` | COMBO(45项) | — |
| 必填输入 | `scheduler` | COMBO(9项) | — |
| 必填输入 | `positive` | CONDITIONING | — |
| 必填输入 | `negative` | CONDITIONING | — |
| 必填输入 | `latent_image` | LATENT | — |
| 必填输入 | `denoise` | FLOAT | 1.0 |
| 输出0 | `LATENT` | LATENT | — |
## ModelSamplingAuraFlow
ModelSamplingAuraFlow
| 方向 | 端口/参数 | 数据类型 | 默认值/说明 |
|---|---|---|---|
| 必填输入 | `model` | MODEL | — |
| 必填输入 | `shift` | FLOAT | 1.73 |
| 可选输入 | `sampling` | COMBO(2项) | flow |
| 输出0 | `MODEL` | MODEL | — |
## LoraLoader
Load LoRA (Model and CLIP)
| 方向 | 端口/参数 | 数据类型 | 默认值/说明 |
|---|---|---|---|
| 必填输入 | `model` | MODEL | — |
| 必填输入 | `clip` | CLIP | — |
| 必填输入 | `lora_name` | COMBO(117项) | — |
| 必填输入 | `strength_model` | FLOAT | 1.0 |
| 必填输入 | `strength_clip` | FLOAT | 1.0 |
| 输出0 | `MODEL` | MODEL | — |
| 输出1 | `CLIP` | CLIP | — |
## LoraLoaderModelOnly
Load LoRA
| 方向 | 端口/参数 | 数据类型 | 默认值/说明 |
|---|---|---|---|
| 必填输入 | `model` | MODEL | — |
| 必填输入 | `lora_name` | COMBO(117项) | — |
| 必填输入 | `strength_model` | FLOAT | 1.0 |
| 输出0 | `MODEL` | MODEL | — |
## TextEncodeQwenImage21
Text Encode Qwen Image 2.1
| 方向 | 端口/参数 | 数据类型 | 默认值/说明 |
|---|---|---|---|
| 必填输入 | `clip` | CLIP | — |
| 必填输入 | `prompt` | STRING | — |
| 必填输入 | `negative_prompt` | STRING | — |
| 必填输入 | `resolution` | INT | 1024 |
| 必填输入 | `images` | COMFY_AUTOGROW_V3 | 可增长输入;展开后逐个接线 |
| 可选输入 | `vae` | VAE | — |
| 输出0 | `positive` | CONDITIONING | — |
| 输出1 | `negative` | CONDITIONING | — |
| 输出2 | `latent` | LATENT | — |
## QwenImage21Cache
Qwen Image 2.1 Cache
| 方向 | 端口/参数 | 数据类型 | 默认值/说明 |
|---|---|---|---|
| 必填输入 | `model` | MODEL | — |
| 必填输入 | `device` | COMBO | auto |
| 必填输入 | `dtype` | COMBO | default |
| 输出0 | `MODEL` | MODEL | — |
## RandomNoise
RandomNoise
| 方向 | 端口/参数 | 数据类型 | 默认值/说明 |
|---|---|---|---|
| 必填输入 | `noise_seed` | INT | 0 |
| 输出0 | `NOISE` | NOISE | — |
## BasicGuider
Basic Guider
| 方向 | 端口/参数 | 数据类型 | 默认值/说明 |
|---|---|---|---|
| 必填输入 | `model` | MODEL | — |
| 必填输入 | `conditioning` | CONDITIONING | — |
| 输出0 | `GUIDER` | GUIDER | — |
## KSamplerSelect
KSamplerSelect
| 方向 | 端口/参数 | 数据类型 | 默认值/说明 |
|---|---|---|---|
| 必填输入 | `sampler_name` | COMBO | — |
| 输出0 | `SAMPLER` | SAMPLER | — |
## BasicScheduler
BasicScheduler
| 方向 | 端口/参数 | 数据类型 | 默认值/说明 |
|---|---|---|---|
| 必填输入 | `model` | MODEL | — |
| 必填输入 | `scheduler` | COMBO | — |
| 必填输入 | `steps` | INT | 20 |
| 必填输入 | `denoise` | FLOAT | 1.0 |
| 输出0 | `SIGMAS` | SIGMAS | — |
## SamplerCustomAdvanced
SamplerCustomAdvanced
| 方向 | 端口/参数 | 数据类型 | 默认值/说明 |
|---|---|---|---|
| 必填输入 | `noise` | NOISE | — |
| 必填输入 | `guider` | GUIDER | — |
| 必填输入 | `sampler` | SAMPLER | — |
| 必填输入 | `sigmas` | SIGMAS | — |
| 必填输入 | `latent_image` | LATENT | — |
| 输出0 | `output` | LATENT | — |
| 输出1 | `denoised_output` | LATENT | — |
## MiniMaxH3ImageToVideo
MiniMax H3 Image to Video
| 方向 | 端口/参数 | 数据类型 | 默认值/说明 |
|---|---|---|---|
| 必填输入 | `clip` | CLIP | — |
| 必填输入 | `vae` | VAE | — |
| 必填输入 | `prompt` | STRING | — |
| 必填输入 | `width` | INT | 1344 |
| 必填输入 | `height` | INT | 768 |
| 必填输入 | `length` | INT | 124 |
| 可选输入 | `first_frame` | IMAGE | — |
| 可选输入 | `last_frame` | IMAGE | — |
| 输出0 | `positive` | CONDITIONING | — |
| 输出1 | `LATENT` | LATENT | — |
## MiniMaxH3ReferenceToVideo
MiniMax H3 Reference to Video
| 方向 | 端口/参数 | 数据类型 | 默认值/说明 |
|---|---|---|---|
| 必填输入 | `clip` | CLIP | — |
| 必填输入 | `prompt` | STRING | — |
| 必填输入 | `width` | INT | 1344 |
| 必填输入 | `height` | INT | 768 |
| 必填输入 | `length` | INT | 124 |
| 必填输入 | `ref_image_size` | COMBO | match |
| 可选输入 | `vae` | VAE | — |
| 可选输入 | `audio_vae` | VAE | — |
| 可选输入 | `ref_images` | COMFY_AUTOGROW_V3 | 可增长输入;展开后逐个接线 |
| 可选输入 | `ref_videos` | COMFY_AUTOGROW_V3 | 可增长输入;展开后逐个接线 |
| 可选输入 | `ref_video_audios` | COMFY_AUTOGROW_V3 | 可增长输入;展开后逐个接线 |
| 可选输入 | `ref_audios` | COMFY_AUTOGROW_V3 | 可增长输入;展开后逐个接线 |
| 输出0 | `positive` | CONDITIONING | — |
| 输出1 | `LATENT` | LATENT | — |
## VAEDecodeAudio
VAE Decode Audio
| 方向 | 端口/参数 | 数据类型 | 默认值/说明 |
|---|---|---|---|
| 必填输入 | `samples` | LATENT | — |
| 必填输入 | `vae` | VAE | — |
| 输出0 | `AUDIO` | AUDIO | — |
## CreateVideo
Create Video
| 方向 | 端口/参数 | 数据类型 | 默认值/说明 |
|---|---|---|---|
| 必填输入 | `images` | IMAGE | — |
| 必填输入 | `fps` | FLOAT | 30.0 |
| 可选输入 | `audio` | AUDIO | — |
| 可选输入 | `bit_depth` | COMBO | auto |
| 可选输入 | `color_space` | COMBO | sRGB |
| 可选输入 | `codec` | COMBO | none |
| 输出0 | `VIDEO` | VIDEO | — |
## SaveVideo
Save Video
| 方向 | 端口/参数 | 数据类型 | 默认值/说明 |
|---|---|---|---|
| 必填输入 | `video` | VIDEO | — |
| 必填输入 | `filename_prefix` | STRING | video/ComfyUI |
| 必填输入 | `format` | COMFY_DYNAMICCOMBO_V3 | — |
| 可选输入 | `codec` | COMFY_DYNAMICCOMBO_V3 | — |
| 输出0 | `video` | VIDEO | — |
## SaveImage
Save Image
| 方向 | 端口/参数 | 数据类型 | 默认值/说明 |
|---|---|---|---|
| 必填输入 | `images` | IMAGE | — |
| 必填输入 | `filename_prefix` | STRING | ComfyUI |
| 输出0 | `images` | IMAGE | — |
## LoadAudio
Load Audio
| 方向 | 端口/参数 | 数据类型 | 默认值/说明 |
|---|---|---|---|
| 必填输入 | `audio` | COMBO | — |
| 输出0 | `AUDIO` | AUDIO | — |
## SaveAudioAdvanced
Save Audio (Advanced)
| 方向 | 端口/参数 | 数据类型 | 默认值/说明 |
|---|---|---|---|
| 必填输入 | `audio` | AUDIO | — |
| 必填输入 | `filename_prefix` | STRING | audio/ComfyUI |
| 必填输入 | `format` | COMFY_DYNAMICCOMBO_V3 | — |
| 输出0 | `audio` | AUDIO | — |
## MiniMaxH3AudioConditioningT8
MiniMax H3 Audio Conditioning (T8)
| 方向 | 端口/参数 | 数据类型 | 默认值/说明 |
|---|---|---|---|
| 必填输入 | `clip` | CLIP | — |
| 必填输入 | `video_vae` | VAE | — |
| 必填输入 | `audio_vae` | VAE | — |
| 必填输入 | `prompt` | STRING | — |
| 必填输入 | `width` | INT | 1344 |
| 必填输入 | `height` | INT | 768 |
| 必填输入 | `length` | INT | 124 |
| 必填输入 | `task_type` | COMBO | auto |
| 必填输入 | `audio_mode` | COMBO | lock_source |
| 必填输入 | `audio_denoise_strength` | FLOAT | 0.35 |
| 必填输入 | `add_source_as_reference` | BOOLEAN | True |
| 必填输入 | `prompt_primary_audio_ordinal` | INT | 1 |
| 必填输入 | `strict_prompt_tags` | BOOLEAN | True |
| 必填输入 | `ref_image_size` | COMBO | match |
| 必填输入 | `reference_video_policy` | COMBO | official_2_to_15s |
| 可选输入 | `drive_audio` | AUDIO | — |
| 可选输入 | `final_audio` | AUDIO | — |
| 可选输入 | `first_frame` | IMAGE | — |
| 可选输入 | `last_frame` | IMAGE | — |
| 可选输入 | `ref_images` | COMFY_AUTOGROW_V3 | 可增长输入;展开后逐个接线 |
| 可选输入 | `ref_videos` | COMFY_AUTOGROW_V3 | 可增长输入;展开后逐个接线 |
| 可选输入 | `ref_video_audios` | COMFY_AUTOGROW_V3 | 可增长输入;展开后逐个接线 |
| 可选输入 | `ref_audios` | COMFY_AUTOGROW_V3 | 可增长输入;展开后逐个接线 |
| 可选输入 | `allow_above_reference_area` | BOOLEAN | True |
| 可选输入 | `semantic_bridge` | T8_SEMANTIC_BRIDGE | — |
| 输出0 | `positive` | CONDITIONING | — |
| 输出1 | `av_latent` | LATENT | — |
| 输出2 | `mux_audio` | AUDIO | — |
| 输出3 | `conditioned_prompt` | STRING | — |
| 输出4 | `media_map_json` | STRING | — |
| 输出5 | `report` | STRING | — |
## MiniMaxMusic3TextEncode
MiniMax Music3 Text Encode
| 方向 | 端口/参数 | 数据类型 | 默认值/说明 |
|---|---|---|---|
| 必填输入 | `clip` | CLIP | — |
| 必填输入 | `caption` | STRING | — |
| 必填输入 | `lyrics` | STRING | — |
| 必填输入 | `seed` | INT | 0 |
| 必填输入 | `max_duration` | FLOAT | 120.0 |
| 必填输入 | `cfg_scale` | FLOAT | 1.5 |
| 必填输入 | `top_k` | INT | 50 |
| 输出0 | `CONDITIONING` | CONDITIONING | — |
| 输出1 | `seconds` | FLOAT | — |
## EmptyMiniMaxMusic3LatentAudio
Empty MiniMax Music3 Latent Audio
| 方向 | 端口/参数 | 数据类型 | 默认值/说明 |
|---|---|---|---|
| 必填输入 | `seconds` | FLOAT | 120.0 |
| 必填输入 | `batch_size` | INT | 1 |
| 输出0 | `LATENT` | LATENT | — |
## ConditioningZeroOut
Conditioning Zero Out
| 方向 | 端口/参数 | 数据类型 | 默认值/说明 |
|---|---|---|---|
| 必填输入 | `conditioning` | CONDITIONING | — |
| 输出0 | `CONDITIONING` | CONDITIONING | — |
## ControlNetLoader
Load ControlNet Model
| 方向 | 端口/参数 | 数据类型 | 默认值/说明 |
|---|---|---|---|
| 必填输入 | `control_net_name` | COMBO(34项) | — |
| 输出0 | `CONTROL_NET` | CONTROL_NET | — |
## ControlNetApplyAdvanced
Apply ControlNet
| 方向 | 端口/参数 | 数据类型 | 默认值/说明 |
|---|---|---|---|
| 必填输入 | `positive` | CONDITIONING | — |
| 必填输入 | `negative` | CONDITIONING | — |
| 必填输入 | `control_net` | CONTROL_NET | — |
| 必填输入 | `image` | IMAGE | — |
| 必填输入 | `strength` | FLOAT | 1.0 |
| 必填输入 | `start_percent` | FLOAT | 0.0 |
| 必填输入 | `end_percent` | FLOAT | 1.0 |
| 可选输入 | `vae` | VAE | — |
| 输出0 | `positive` | CONDITIONING | — |
| 输出1 | `negative` | CONDITIONING | — |
## LoadVideo
Load Video
| 方向 | 端口/参数 | 数据类型 | 默认值/说明 |
|---|---|---|---|
| 必填输入 | `file` | COMBO | — |
| 输出0 | `VIDEO` | VIDEO | — |
## GetVideoComponents
Get Video Components
| 方向 | 端口/参数 | 数据类型 | 默认值/说明 |
|---|---|---|---|
| 必填输入 | `video` | VIDEO | — |
| 输出0 | `images` | IMAGE | — |
| 输出1 | `audio` | AUDIO | — |
| 输出2 | `fps` | FLOAT | — |
| 输出3 | `bit_depth` | COMBO | — |
| 输出4 | `color_space` | COMBO | — |