ComfyPilotComfyPilot
工作流 / 视频 / FastH3 OmniRef:参考生视频
FastH3 OmniRef:参考生视频

FastH3 OmniRef:参考生视频

FastH3 OmniRef: Reference to Video

使用 FastH3 OmniRef 八步蒸馏模型,从提示词加参考图生成音画同步的视频,该模型仅需八个采样步骤即可渲染两路流。接收 1 张输入图像并产生 1 个视频输出。非常适合为参考角色制作动画、创建会说话的虚拟形象,以及快速进行社交媒体视频原型制作。

视频 25 个节点 1 个输入 1,606 次使用 ComfyUI ≥ 0.43.0 ComfyUI 39 KB

下载工作流 JSON 查看官方来源

下载后把文件拖进 ComfyUI 窗口即可打开。

需要的权重

这个工作流引用了 4 个权重文件,其中 3 个能在本站模型库里找到。

fasth3_omniref_8step_pruned_int8_convrot.safetensors 模型库暂未收录
minimax_h3_audio_vae_fp32.safetensors 在模型库查看
minimax_h3_video_vae_int8_convrot.safetensors 在模型库查看
qwen3vl_32b_minimax_h3_nvfp4_awq.safetensors 在模型库查看

节点构成

MarkdownNote × 3
VAELoader × 2
SaveVideo × 1
ResolutionSelector × 1
VAEDecodeAudio × 1
VAEDecode × 1
KSamplerSelect × 1
BasicScheduler × 1
SamplerCustomAdvanced × 1
BasicGuider × 1
UNETLoader × 1
CLIPLoader × 1
RandomNoise × 1
CreateVideo × 1
ComfyMathExpression × 1
PrimitiveFloat × 1

官方标注的模型

MiniMax H3

工作流 JSON

和上面「下载工作流 JSON」是同一份文件。

1{
2 "id": "e3f2b845-8f2c-4b5a-9caf-eac1029d3e7e",
3 "revision": 0,
4 "last_node_id": 148,
5 "last_link_id": 291,
6 "nodes": [
7 {
8 "id": 92,
9 "type": "SaveVideo",
10 "pos": [
11 1880,
12 4310
13 ],
14 "size": [
15 900,
16 850
17 ],
18 "flags": [],
19 "order": 24,
20 "mode": 0,
21 "inputs": [
22 {
23 "name": "video",
24 "type": "VIDEO",
25 "link": 260
26 }
27 ],
28 "outputs": [
29 {
30 "name": "video",
31 "type": "VIDEO",
32 "links": null
33 }
34 ],
35 "properties": {
36 "cnr_id": "comfy-core",
37 "ver": "0.33.0"
38 },
39 "widgets_values": [
40 "video/FastH3_OmniRef",
41 "auto",
42 "auto",
43 "auto"
44 ],
45 "widgets_values_named": {
46 "filename_prefix": "video/FastH3_OmniRef",
47 "format": "auto",
48 "format.codec": "auto",
49 "codec": "auto"
50 }
51 },
52 {
53 "id": 115,
54 "type": "ResolutionSelector",
55 "pos": [
56 -1310,
57 5310
58 ],
59 "size": [
60 270,
61 200
62 ],
63 "flags": [],
64 "order": 0,
65 "mode": 0,
66 "showAdvanced": false,
67 "inputs": [],
68 "outputs": [
69 {
70 "name": "width",
71 "type": "INT",
72 "links": [
73 276
74 ]
75 },
76 {
77 "name": "height",
78 "type": "INT",
79 "links": [
80 277
81 ]
82 }
83 ],
84 "title": "Resolution Selector (Size)",
85 "properties": {
86 "Node name for S&R": "ResolutionSelector",
87 "cnr_id": "comfy-core",
88 "ver": "0.33.0"
89 },
90 "widgets_values": [
91 "16:9 (Widescreen)",
92 1,
93 32
94 ],
95 "widgets_values_named": {
96 "aspect_ratio": "16:9 (Widescreen)",
97 "megapixels": 1,
98 "multiple": 32
99 },
100 "color": "#322",
101 "bgcolor": "#533"
102 },
103 {
104 "id": 116,
105 "type": "MarkdownNote",
106 "pos": [
107 -1980,
108 4270
109 ],
110 "size": [
111 570,
112 880
113 ],
114 "flags": [],
115 "order": 1,
116 "mode": 0,
117 "inputs": [],
118 "outputs": [],
119 "title": "Note: Fast Video FastH3",
120 "properties": [],
121 "widgets_values": [
122 "## FastVideo FastH3 OmniRef\n\n[FastH3 OmniRef](https://huggingface.co/FastVideo/FastH3-OmniRef-Comfy) is FastVideo's reference-to-video checkpoint on top of MiniMax H3: the distilled student (step 3500) trained with trajectory-based PDD and a joint DMD loss, so it renders synchronized video and audio in **8 sampling steps**. VSA is trained on 128-token tiles; ComfyUI runs 64-token tiles and the difference is not visible, since the larger tile only speeds up the native kernel on datacenter GPUs.\n\n## About this workflow\n\nThis template runs the **reference-to-video (ref2va)** task with the `MiniMaxH3ReferenceToVideo` node. Reference images are woven into the packed sequence, so a character, a product or a location can be reused across shots while the model still generates the performance and the audio.\n\n**Key inputs**\n\n- **ref_images**: up to 9 reference images; two are wired here (`<Picture 1>` identity, `<Picture 2>` location). Add more slots on the node if you need them.\n- **ref_videos / ref_audios**: optional, up to 3 each. A reference video can carry its own soundtrack.\n- **prompt**: address the inputs by tag in connection order (`<Picture 1>`, `<Picture 2>`, …), then describe the shot, the motion and one line of dialogue; the audio follows the description.\n- **ref_image_size**: `match` downscales references to the output resolution (faster), `max` keeps up to a 2048px short edge for stronger identity fidelity at the cost of speed.\n- **Duration → length**: the `Float (Duration)` value is converted to the 17k+5 frame grid the model expects (5 s = 124 frames at 24fps).\n\n## Required settings\n\n- **Model Sparse Attention** must stay on method `vsa` with `keep_percent` 10: FastH3 checkpoints are trained with VSA and must never run plain block-sparse attention. `sol-attn` and `sla` are not compatible.\n- **Model Attention Backend** only picks the dense fallback used before `start_percent` and under `min_tokens`; `comfy kitchen attention` is the int8 kernel.\n- **MiniMaxH3SigmaShift** 12 / 3 is this checkpoint's video / audio shift. The FastH3 V2 text-to-video recipe (video shift 10) is not an OmniRef recipe, so do not copy it here.\n\n## Checkpoints\n\nTwo diffusion files are published for this model: the int8 convrot export used here (22.2 GB) and a bf16 export (44.2 GB). Load exactly one of them; the text encoders and VAEs are shared with the FastH3 V2 packaging. The NVFP4 AWQ option in the text encoder folder is a text encoder, not an NVFP4 export of this diffusion model.\n\n## Scope\n\nThis checkpoint is distilled for reference-to-video. Plain text-to-video works but is not its strength; use **FastVideo FastH3: Text to Video** or **Image to Video** for those tasks."
123 ],
124 "widgets_values_named": {
125 "text": "## FastVideo FastH3 OmniRef\n\n[FastH3 OmniRef](https://huggingface.co/FastVideo/FastH3-OmniRef-Comfy) is FastVideo's reference-to-video checkpoint on top of MiniMax H3: the distilled student (step 3500) trained with trajectory-based PDD and a joint DMD loss, so it renders synchronized video and audio in **8 sampling steps**. VSA is trained on 128-token tiles; ComfyUI runs 64-token tiles and the difference is not visible, since the larger tile only speeds up the native kernel on datacenter GPUs.\n\n## About this workflow\n\nThis template runs the **reference-to-video (ref2va)** task with the `MiniMaxH3ReferenceToVideo` node. Reference images are woven into the packed sequence, so a character, a product or a location can be reused across shots while the model still generates the performance and the audio.\n\n**Key inputs**\n\n- **ref_images**: up to 9 reference images; two are wired here (`<Picture 1>` identity, `<Picture 2>` location). Add more slots on the node if you need them.\n- **ref_videos / ref_audios**: optional, up to 3 each. A reference video can carry its own soundtrack.\n- **prompt**: address the inputs by tag in connection order (`<Picture 1>`, `<Picture 2>`, …), then describe the shot, the motion and one line of dialogue; the audio follows the description.\n- **ref_image_size**: `match` downscales references to the output resolution (faster), `max` keeps up to a 2048px short edge for stronger identity fidelity at the cost of speed.\n- **Duration → length**: the `Float (Duration)` value is converted to the 17k+5 frame grid the model expects (5 s = 124 frames at 24fps).\n\n## Required settings\n\n- **Model Sparse Attention** must stay on method `vsa` with `keep_percent` 10: FastH3 checkpoints are trained with VSA and must never run plain block-sparse attention. `sol-attn` and `sla` are not compatible.\n- **Model Attention Backend** only picks the dense fallback used before `start_percent` and under `min_tokens`; `comfy kitchen attention` is the int8 kernel.\n- **MiniMaxH3SigmaShift** 12 / 3 is this checkpoint's video / audio shift. The FastH3 V2 text-to-video recipe (video shift 10) is not an OmniRef recipe, so do not copy it here.\n\n## Checkpoints\n\nTwo diffusion files are published for this model: the int8 convrot export used here (22.2 GB) and a bf16 export (44.2 GB). Load exactly one of them; the text encoders and VAEs are shared with the FastH3 V2 packaging. The NVFP4 AWQ option in the text encoder folder is a text encoder, not an NVFP4 export of this diffusion model.\n\n## Scope\n\nThis checkpoint is distilled for reference-to-video. Plain text-to-video works but is not its strength; use **FastVideo FastH3: Text to Video** or **Image to Video** for those tasks."
126 },
127 "color": "#222",
128 "bgcolor": "#000"
129 },
130 {
131 "id": 117,
132 "type": "MarkdownNote",
133 "pos": [
134 -2510,
135 4270
136 ],
137 "size": [
138 470,
139 900
140 ],
141 "flags": [],
142 "order": 2,
143 "mode": 0,
144 "inputs": [],
145 "outputs": [],
146 "title": "Note: Model Links",
147 "properties": [],
148 "widgets_values": [
149 "## Input Asset\n\n- [yellow_plane_ref.png](https://raw.githubusercontent.com/Comfy-Org/workflow_templates/refs/heads/main/input/yellow_plane_ref.png)\n\n## Model Links\n\n- [Hugging Face:Comfy-Org/MiniMax-H3](https://huggingface.co/Comfy-Org/MiniMax-H3)\n- [Hugging Face:FastVideo/FastH3-OmniRef-Comfy](https://huggingface.co/FastVideo/FastH3-OmniRef-Comfy)\n\n**ModelScope mirrors** (alternative repo location)\n\n- [ModelScope:Comfy-Org/MiniMax-H3](https://modelscope.cn/models/Comfy-Org/MiniMax-H3)\n\n**vae**\n\n- [minimax_h3_video_vae_int8_convrot.safetensors](https://huggingface.co/Comfy-Org/MiniMax-H3/resolve/main/vae/minimax_h3_video_vae_int8_convrot.safetensors) (2.62 GB)\n- [minimax_h3_audio_vae_fp32.safetensors](https://huggingface.co/Comfy-Org/MiniMax-H3/resolve/main/vae/minimax_h3_audio_vae_fp32.safetensors) (577.2 MB)\n\n**diffusion_models**\n\n- [fasth3_omniref_8step_pruned_int8_convrot.safetensors](https://huggingface.co/FastVideo/FastH3-OmniRef-Comfy/resolve/main/diffusion_models/fasth3_omniref_8step_pruned_int8_convrot.safetensors)\n\n**text_encoders**\n\n- [qwen3vl_32b_minimax_h3_nvfp4_awq.safetensors](https://huggingface.co/Comfy-Org/MiniMax-H3/resolve/main/text_encoders/qwen3vl_32b_minimax_h3_nvfp4_awq.safetensors) (14.61 GB)\n\n## Model Storage Location\n\n```\n📂 ComfyUI/\n├── 📂 models/\n│ ├── 📂 vae/\n│ │ ├── minimax_h3_video_vae_int8_convrot.safetensors\n│ │ └── minimax_h3_audio_vae_fp32.safetensors\n│ ├── 📂 diffusion_models/\n│ │ └── fasth3_omniref_8step_pruned_int8_convrot.safetensors\n│ └── 📂 text_encoders/\n│ └── qwen3vl_32b_minimax_h3_nvfp4_awq.safetensors\n```\n\n## Report Issue\n\nNote: Please update ComfyUI first ([guide](https://docs.comfy.org/installation/update_comfyui)) and prepare required models. Desktop/Cloud updates follow stable releases, so some nightly-supported models may not be available yet.\n\n- Cannot run / runtime errors: [ComfyUI/issues](https://github.com/comfyanonymous/ComfyUI/issues)\n- UI / frontend issues: [ComfyUI_frontend/issues](https://github.com/Comfy-Org/ComfyUI_frontend/issues)\n- Workflow issues: [workflow_templates/issues](https://github.com/Comfy-Org/workflow_templates/issues)\n"
150 ],
151 "widgets_values_named": {
152 "text": "## Input Asset\n\n- [yellow_plane_ref.png](https://raw.githubusercontent.com/Comfy-Org/workflow_templates/refs/heads/main/input/yellow_plane_ref.png)\n\n## Model Links\n\n- [Hugging Face:Comfy-Org/MiniMax-H3](https://huggingface.co/Comfy-Org/MiniMax-H3)\n- [Hugging Face:FastVideo/FastH3-OmniRef-Comfy](https://huggingface.co/FastVideo/FastH3-OmniRef-Comfy)\n\n**ModelScope mirrors** (alternative repo location)\n\n- [ModelScope:Comfy-Org/MiniMax-H3](https://modelscope.cn/models/Comfy-Org/MiniMax-H3)\n\n**vae**\n\n- [minimax_h3_video_vae_int8_convrot.safetensors](https://huggingface.co/Comfy-Org/MiniMax-H3/resolve/main/vae/minimax_h3_video_vae_int8_convrot.safetensors) (2.62 GB)\n- [minimax_h3_audio_vae_fp32.safetensors](https://huggingface.co/Comfy-Org/MiniMax-H3/resolve/main/vae/minimax_h3_audio_vae_fp32.safetensors) (577.2 MB)\n\n**diffusion_models**\n\n- [fasth3_omniref_8step_pruned_int8_convrot.safetensors](https://huggingface.co/FastVideo/FastH3-OmniRef-Comfy/resolve/main/diffusion_models/fasth3_omniref_8step_pruned_int8_convrot.safetensors)\n\n**text_encoders**\n\n- [qwen3vl_32b_minimax_h3_nvfp4_awq.safetensors](https://huggingface.co/Comfy-Org/MiniMax-H3/resolve/main/text_encoders/qwen3vl_32b_minimax_h3_nvfp4_awq.safetensors) (14.61 GB)\n\n## Model Storage Location\n\n```\n📂 ComfyUI/\n├── 📂 models/\n│ ├── 📂 vae/\n│ │ ├── minimax_h3_video_vae_int8_convrot.safetensors\n│ │ └── minimax_h3_audio_vae_fp32.safetensors\n│ ├── 📂 diffusion_models/\n│ │ └── fasth3_omniref_8step_pruned_int8_convrot.safetensors\n│ └── 📂 text_encoders/\n│ └── qwen3vl_32b_minimax_h3_nvfp4_awq.safetensors\n```\n\n## Report Issue\n\nNote: Please update ComfyUI first ([guide](https://docs.comfy.org/installation/update_comfyui)) and prepare required models. Desktop/Cloud updates follow stable releases, so some nightly-supported models may not be available yet.\n\n- Cannot run / runtime errors: [ComfyUI/issues](https://github.com/comfyanonymous/ComfyUI/issues)\n- UI / frontend issues: [ComfyUI_frontend/issues](https://github.com/Comfy-Org/ComfyUI_frontend/issues)\n- Workflow issues: [workflow_templates/issues](https://github.com/Comfy-Org/workflow_templates/issues)\n"
153 },
154 "color": "#222",
155 "bgcolor": "#000"
156 },
157 {
158 "id": 119,
159 "type": "VAELoader",
160 "pos": [
161 -1310,
162 4790
163 ],
164 "size": [
165 640,
166 100
167 ],
168 "flags": [],
169 "order": 3,
170 "mode": 0,
171 "inputs": [],
172 "outputs": [
173 {
174 "name": "VAE",
175 "type": "VAE",
176 "links": [
177 251,
178 273
179 ]
180 }
181 ],
182 "properties": {
183 "Node name for S&R": "VAELoader",
184 "cnr_id": "comfy-core",
185 "ver": "0.33.0",
186 "models": [
187 {
188 "name": "minimax_h3_video_vae_int8_convrot.safetensors",
189 "url": "https://huggingface.co/Comfy-Org/MiniMax-H3/resolve/main/vae/minimax_h3_video_vae_int8_convrot.safetensors",
190 "directory": "vae"
191 }
192 ]
193 },
194 "widgets_values": [
195 "minimax_h3_video_vae_int8_convrot.safetensors"
196 ],
197 "widgets_values_named": {
198 "vae_name": "minimax_h3_video_vae_int8_convrot.safetensors"
199 }
200 },
201 {
202 "id": 120,
203 "type": "VAELoader",
204 "pos": [
205 -1310,
206 4950
207 ],
208 "size": [
209 640,
210 100
211 ],
212 "flags": [],
213 "order": 4,
214 "mode": 0,
215 "inputs": [],
216 "outputs": [
217 {
218 "name": "VAE",
219 "type": "VAE",
220 "links": [
221 250,
222 274
223 ]
224 }
225 ],
226 "properties": {
227 "Node name for S&R": "VAELoader",
228 "cnr_id": "comfy-core",
229 "ver": "0.33.0",
230 "models": [
231 {
232 "name": "minimax_h3_audio_vae_fp32.safetensors",
233 "url": "https://huggingface.co/Comfy-Org/MiniMax-H3/resolve/main/vae/minimax_h3_audio_vae_fp32.safetensors",
234 "directory": "vae"
235 }
236 ]
237 },
238 "widgets_values": [
239 "minimax_h3_audio_vae_fp32.safetensors"
240 ],
241 "widgets_values_named": {
242 "vae_name": "minimax_h3_audio_vae_fp32.safetensors"
243 }
244 },
245 {
246 "id": 121,
247 "type": "VAEDecodeAudio",
248 "pos": [
249 1400,
250 4640
251 ],
252 "size": [
253 230,
254 90
255 ],
256 "flags": {
257 "collapsed": false
258 },
259 "order": 22,
260 "mode": 0,
261 "inputs": [
262 {
263 "name": "samples",
264 "type": "LATENT",
265 "link": 281
266 },
267 {
268 "name": "vae",
269 "type": "VAE",
270 "link": 250
271 }
272 ],
273 "outputs": [
274 {
275 "name": "AUDIO",
276 "type": "AUDIO",
277 "links": [
278 259
279 ]
280 }
281 ],
282 "properties": {
283 "Node name for S&R": "VAEDecodeAudio",
284 "cnr_id": "comfy-core",
285 "ver": "0.33.0"
286 }
287 },
288 {
289 "id": 122,
290 "type": "VAEDecode",
291 "pos": [
292 1400,
293 4490
294 ],
295 "size": [
296 230,
297 90
298 ],
299 "flags": {
300 "collapsed": false
301 },
302 "order": 21,
303 "mode": 0,
304 "inputs": [
305 {
306 "name": "samples",
307 "type": "LATENT",
308 "link": 280
309 },
310 {
311 "name": "vae",
312 "type": "VAE",
313 "link": 251
314 }
315 ],
316 "outputs": [
317 {
318 "name": "IMAGE",
319 "type": "IMAGE",
320 "links": [
321 258
322 ]
323 }
324 ],
325 "properties": {
326 "Node name for S&R": "VAEDecode",
327 "cnr_id": "comfy-core",
328 "ver": "0.33.0"
329 }
330 },
331 {
332 "id": 123,
333 "type": "KSamplerSelect",
334 "pos": [
335 570,
336 4720
337 ],
338 "size": [
339 370,
340 100
341 ],
342 "flags": [],
343 "order": 5,
344 "mode": 0,
345 "inputs": [],
346 "outputs": [
347 {
348 "name": "SAMPLER",
349 "type": "SAMPLER",
350 "links": [
351 255
352 ]
353 }
354 ],
355 "properties": {
356 "Node name for S&R": "KSamplerSelect",
357 "cnr_id": "comfy-core",
358 "ver": "0.33.0"
359 },
360 "widgets_values": [
361 "euler"
362 ],
363 "widgets_values_named": {
364 "sampler_name": "euler"
365 }
366 },
367 {
368 "id": 124,
369 "type": "BasicScheduler",
370 "pos": [
371 570,
372 4880
373 ],
374 "size": [
375 370,
376 160
377 ],
378 "flags": [],
379 "order": 18,
380 "mode": 0,
381 "inputs": [
382 {
383 "name": "model",
384 "type": "MODEL",
385 "link": 286
386 }
387 ],
388 "outputs": [
389 {
390 "name": "SIGMAS",
391 "type": "SIGMAS",
392 "links": [
393 256
394 ]
395 }
396 ],
397 "properties": {
398 "Node name for S&R": "BasicScheduler",
399 "cnr_id": "comfy-core",
400 "ver": "0.33.0"
401 },
402 "widgets_values": [
403 "simple",
404 8,
405 1
406 ],
407 "widgets_values_named": {
408 "scheduler": "simple",
409 "steps": 8,
410 "denoise": 1
411 }
412 },
413 {
414 "id": 125,
415 "type": "SamplerCustomAdvanced",
416 "pos": [
417 1030,
418 4590
419 ],
420 "size": [
421 230,
422 170
423 ],
424 "flags": [],
425 "order": 20,
426 "mode": 0,
427 "inputs": [
428 {
429 "name": "noise",
430 "type": "NOISE",
431 "link": 253
432 },
433 {
434 "name": "guider",
435 "type": "GUIDER",
436 "link": 254
437 },
438 {
439 "name": "sampler",
440 "type": "SAMPLER",
441 "link": 255
442 },
443 {
444 "name": "sigmas",
445 "type": "SIGMAS",
446 "link": 256
447 },
448 {
449 "name": "latent_image",
450 "type": "LATENT",
451 "link": 271
452 }
453 ],
454 "outputs": [
455 {
456 "name": "output",
457 "type": "LATENT",
458 "links": [
459 280,
460 281
461 ]
462 },
463 {
464 "name": "denoised_output",
465 "type": "LATENT",
466 "links": []
467 }
468 ],
469 "properties": {
470 "Node name for S&R": "SamplerCustomAdvanced",
471 "cnr_id": "comfy-core",
472 "ver": "0.33.0"
473 }
474 },
475 {
476 "id": 126,
477 "type": "BasicGuider",
478 "pos": [
479 570,
480 4570
481 ],
482 "size": [
483 360,
484 90
485 ],
486 "flags": [],
487 "order": 19,
488 "mode": 0,
489 "inputs": [
490 {
491 "name": "model",
492 "type": "MODEL",
493 "link": 287
494 },
495 {
496 "name": "conditioning",
497 "type": "CONDITIONING",
498 "link": 270
499 }
500 ],
501 "outputs": [
502 {
503 "name": "GUIDER",
504 "type": "GUIDER",
505 "links": [
506 254
507 ]
508 }
509 ],
510 "properties": {
511 "Node name for S&R": "BasicGuider",
512 "cnr_id": "comfy-core",
513 "ver": "0.33.0"
514 }
515 },
516 {
517 "id": 127,
518 "type": "UNETLoader",
519 "pos": [
520 -1310,
521 4400
522 ],
523 "size": [
524 640,
525 120
526 ],
527 "flags": [],
528 "order": 6,
529 "mode": 0,
530 "inputs": [],
531 "outputs": [
532 {
533 "name": "MODEL",
534 "type": "MODEL",
535 "links": [
536 283
537 ]
538 }
539 ],
540 "properties": {
541 "Node name for S&R": "UNETLoader",
542 "cnr_id": "comfy-core",
543 "ver": "0.33.0",
544 "models": [
545 {
546 "name": "fasth3_omniref_8step_pruned_int8_convrot.safetensors",
547 "url": "https://huggingface.co/FastVideo/FastH3-OmniRef-Comfy/resolve/main/diffusion_models/fasth3_omniref_8step_pruned_int8_convrot.safetensors",
548 "directory": "diffusion_models"
549 }
550 ]
551 },
552 "widgets_values": [
553 "fasth3_omniref_8step_pruned_int8_convrot.safetensors",
554 "default"
555 ],
556 "widgets_values_named": {
557 "unet_name": "fasth3_omniref_8step_pruned_int8_convrot.safetensors",
558 "weight_dtype": "default"
559 }
560 },
561 {
562 "id": 128,
563 "type": "CLIPLoader",
564 "pos": [
565 -1310,
566 4580
567 ],
568 "size": [
569 640,
570 150
571 ],
572 "flags": [],
573 "order": 7,
574 "mode": 0,
575 "inputs": [],
576 "outputs": [
577 {
578 "name": "CLIP",
579 "type": "CLIP",
580 "links": [
581 272
582 ]
583 }
584 ],
585 "properties": {
586 "Node name for S&R": "CLIPLoader",
587 "cnr_id": "comfy-core",
588 "ver": "0.33.0",
589 "models": [
590 {
591 "name": "qwen3vl_32b_minimax_h3_nvfp4_awq.safetensors",
592 "url": "https://huggingface.co/Comfy-Org/MiniMax-H3/resolve/main/text_encoders/qwen3vl_32b_minimax_h3_nvfp4_awq.safetensors",
593 "directory": "text_encoders"
594 }
595 ]
596 },
597 "widgets_values": [
598 "qwen3vl_32b_minimax_h3_nvfp4_awq.safetensors",
599 "minimax",
600 "default"
601 ],
602 "widgets_values_named": {
603 "clip_name": "qwen3vl_32b_minimax_h3_nvfp4_awq.safetensors",
604 "type": "minimax",
605 "device": "default"
606 }
607 },
608 {
609 "id": 129,
610 "type": "RandomNoise",
611 "pos": [
612 570,
613 4390
614 ],
615 "size": [
616 360,
617 120
618 ],
619 "flags": [],
620 "order": 8,
621 "mode": 0,
622 "inputs": [],
623 "outputs": [
624 {
625 "name": "NOISE",
626 "type": "NOISE",
627 "links": [
628 253
629 ]
630 }
631 ],
632 "properties": {
633 "Node name for S&R": "RandomNoise",
634 "cnr_id": "comfy-core",
635 "ver": "0.33.0"
636 },
637 "widgets_values": [
638 771204598,
639 "fixed"
640 ],
641 "widgets_values_named": {
642 "noise_seed": 771204598,
643 "control_after_generate": "fixed"
644 }
645 },
646 {
647 "id": 130,
648 "type": "CreateVideo",
649 "pos": [
650 1400,
651 4790
652 ],
653 "size": [
654 270,
655 200
656 ],
657 "flags": [],
658 "order": 23,
659 "mode": 0,
660 "inputs": [
661 {
662 "name": "images",
663 "type": "IMAGE",
664 "link": 258
665 },
666 {
667 "name": "audio",
668 "shape": 7,
669 "type": "AUDIO",
670 "link": 259
671 }
672 ],
673 "outputs": [
674 {
675 "name": "VIDEO",
676 "type": "VIDEO",
677 "links": [
678 260
679 ]
680 }
681 ],
682 "properties": {
683 "Node name for S&R": "CreateVideo",
684 "cnr_id": "comfy-core",
685 "ver": "0.33.0"
686 },
687 "widgets_values": [
688 24,
689 8,
690 "sRGB",
691 "none"
692 ],
693 "widgets_values_named": {
694 "fps": 24,
695 "bit_depth": 8,
696 "color_space": "sRGB",
697 "codec": "none"
698 }
699 },
700 {
701 "id": 131,
702 "type": "ComfyMathExpression",
703 "pos": [
704 -1310,
705 5730
706 ],
707 "size": [
708 230,
709 80
710 ],
711 "flags": {
712 "collapsed": true
713 },
714 "order": 14,
715 "mode": 0,
716 "inputs": [
717 {
718 "label": "a",
719 "name": "values.a",
720 "type": "FLOAT,INT,BOOLEAN",
721 "link": 261
722 },
723 {
724 "name": "values.b",
725 "shape": 7,
726 "type": "FLOAT,INT,BOOLEAN",
727 "link": null
728 }
729 ],
730 "outputs": [
731 {
732 "name": "FLOAT",
733 "type": "FLOAT",
734 "links": []
735 },
736 {
737 "name": "INT",
738 "type": "INT",
739 "links": [
740 275
741 ]
742 },
743 {
744 "name": "BOOL",
745 "type": "BOOLEAN",
746 "links": []
747 }
748 ],
749 "properties": {
750 "Node name for S&R": "ComfyMathExpression",
751 "cnr_id": "comfy-core",
752 "ver": "0.33.0"
753 },
754 "widgets_values": [
755 "max(5, round(a * 24)) + (5 - (max(5, round(a * 24)) % 17)) % 17"
756 ],
757 "widgets_values_named": {
758 "expression": "max(5, round(a * 24)) + (5 - (max(5, round(a * 24)) % 17)) % 17"
759 }
760 },
761 {
762 "id": 132,
763 "type": "PrimitiveFloat",
764 "pos": [
765 -1310,
766 5570
767 ],
768 "size": [
769 270,
770 100
771 ],
772 "flags": [],
773 "order": 9,
774 "mode": 0,
775 "inputs": [],
776 "outputs": [
777 {
778 "name": "FLOAT",
779 "type": "FLOAT",
780 "links": [
781 261
782 ]
783 }
784 ],
785 "title": "Float (Duration)",
786 "properties": {
787 "Node name for S&R": "PrimitiveFloat",
788 "cnr_id": "comfy-core",
789 "ver": "0.33.0"
790 },
791 "widgets_values": [
792 5
793 ],
794 "widgets_values_named": {
795 "value": 5
796 },
797 "color": "#322",
798 "bgcolor": "#533"
799 },
800 {
801 "id": 136,
802 "type": "MiniMaxH3ReferenceToVideo",
803 "pos": [
804 10,
805 4400
806 ],
807 "size": [
808 400,
809 390
810 ],
811 "flags": [],
812 "order": 16,
813 "mode": 0,
814 "inputs": [
815 {
816 "name": "clip",
817 "type": "CLIP",
818 "link": 272
819 },
820 {
821 "name": "vae",
822 "shape": 7,
823 "type": "VAE",
824 "link": 273
825 },
826 {
827 "name": "audio_vae",
828 "shape": 7,
829 "type": "VAE",
830 "link": 274
831 },
832 {
833 "label": "ref_image_0",
834 "name": "ref_images.ref_image_0",
835 "shape": 7,
836 "type": "IMAGE",
837 "link": 278
838 },
839 {
840 "name": "ref_images.ref_image_1",
841 "shape": 7,
842 "type": "IMAGE",
843 "link": null
844 },
845 {
846 "label": "ref_video_0",
847 "name": "ref_videos.ref_video_0",
848 "shape": 7,
849 "type": "IMAGE",
850 "link": null
851 },
852 {
853 "label": "ref_video_audio_0",
854 "name": "ref_video_audios.ref_video_audio_0",
855 "shape": 7,
856 "type": "AUDIO",
857 "link": null
858 },
859 {
860 "label": "ref_audio_0",
861 "name": "ref_audios.ref_audio_0",
862 "shape": 7,
863 "type": "AUDIO",
864 "link": null
865 },
866 {
867 "name": "ref_audios.ref_audio_1",
868 "shape": 7,
869 "type": "AUDIO",
870 "link": null
871 },
872 {
873 "name": "ref_audios.ref_audio_2",
874 "shape": 7,
875 "type": "AUDIO",
876 "link": null
877 },
878 {
879 "name": "prompt",
880 "type": "STRING",
881 "widget": {
882 "name": "prompt"
883 },
884 "link": 279
885 },
886 {
887 "name": "width",
888 "type": "INT",
889 "widget": {
890 "name": "width"
891 },
892 "link": 276
893 },
894 {
895 "name": "height",
896 "type": "INT",
897 "widget": {
898 "name": "height"
899 },
900 "link": 277
901 },
902 {
903 "name": "length",
904 "type": "INT",
905 "widget": {
906 "name": "length"
907 },
908 "link": 275
909 }
910 ],
911 "outputs": [
912 {
913 "name": "positive",
914 "type": "CONDITIONING",
915 "links": [
916 270
917 ]
918 },
919 {
920 "name": "LATENT",
921 "type": "LATENT",
922 "links": [
923 271
924 ]
925 }
926 ],
927 "properties": {
928 "Node name for S&R": "MiniMaxH3ReferenceToVideo",
929 "cnr_id": "comfy-core",
930 "ver": "0.33.0"
931 },
932 "widgets_values": [
933 "",
934 1344,
935 768,
936 124,
937 "match"
938 ],
939 "widgets_values_named": {
940 "prompt": "",
941 "width": 1344,
942 "height": 768,
943 "length": 124,
944 "ref_image_size": "match"
945 },
946 "color": "#322",
947 "bgcolor": "#533"
948 },
949 {
950 "id": 137,
951 "type": "LoadImage",
952 "pos": [
953 -380,
954 5350
955 ],
956 "size": [
957 390,
958 490
959 ],
960 "flags": [],
961 "order": 10,
962 "mode": 0,
963 "inputs": [],
964 "outputs": [
965 {
966 "name": "IMAGE",
967 "type": "IMAGE",
968 "links": [
969 278
970 ]
971 },
972 {
973 "name": "MASK",
974 "type": "MASK",
975 "links": null
976 }
977 ],
978 "properties": {
979 "Node name for S&R": "LoadImage",
980 "cnr_id": "comfy-core",
981 "ver": "0.33.0"
982 },
983 "widgets_values": [
984 "yellow_plane_ref.png",
985 "image"
986 ],
987 "widgets_values_named": {
988 "image": "yellow_plane_ref.png",
989 "upload": "image"
990 }
991 },
992 {
993 "id": 138,
994 "type": "PrimitiveStringMultiline",
995 "pos": [
996 -930,
997 5330
998 ],
999 "size": [
1000 470,
1001 520
1002 ],
1003 "flags": [],
1004 "order": 11,
1005 "mode": 0,
1006 "inputs": [],
1007 "outputs": [
1008 {
1009 "name": "STRING",
1010 "type": "STRING",
1011 "links": [
1012 279
1013 ]
1014 }
1015 ],
1016 "title": "Input Text (Prompt)",
1017 "properties": {
1018 "Node name for S&R": "PrimitiveStringMultiline",
1019 "cnr_id": "comfy-core",
1020 "ver": "0.33.0"
1021 },
1022 "widgets_values": [
1023 "subject_definitions:\n<Subject 1> is the plane in <Picture 1>: a yellow propeller plane climbing vertically with a smoke trail.\n<Subject 2> is the setting in <Picture 1>: a towering cumulus cloud against a near-black sky.\n\nsummary:\n[reference generation] The target video is a 5-second, multi-cut cinematic aviation film. The plane climbs vertically, stalls at the top and tumbles into a dramatic dive.\n\nretention_analysis:\n<Subject 1> (appears in [Shot 1], [Shot 2]): fully_preserved - the yellow plane and white smoke trail are retained.\n<Subject 2> (appears in [Shot 1], [Shot 2]): fully_preserved - the towering cumulus and dark sky are retained.\n\ndetailed_description:\nThe target video is a striking, high-contrast aerial film with bright sunlit clouds, deep dark sky and dynamic camera moves.\n[Shot 1] A wide shot matches <Picture 1>: <Subject 1> climbs straight up above <Subject 2>, smoke trail curling, and the camera tilts up with it.\n[Shot 2] At 00:02.000, the shot cuts to a beautiful close-up of the propeller and yellow nose as it slows at the top; the plane stalls, flips over and the camera follows it diving toward the bright cloud.\n\noverall_soundscape:\nStraining engine, wind, a sudden silence at the stall and a roaring dive.\n\nnon_diegetic_music:\nTense rising strings that break into a thrilling crescendo."
1024 ],
1025 "widgets_values_named": {
1026 "value": "subject_definitions:\n<Subject 1> is the plane in <Picture 1>: a yellow propeller plane climbing vertically with a smoke trail.\n<Subject 2> is the setting in <Picture 1>: a towering cumulus cloud against a near-black sky.\n\nsummary:\n[reference generation] The target video is a 5-second, multi-cut cinematic aviation film. The plane climbs vertically, stalls at the top and tumbles into a dramatic dive.\n\nretention_analysis:\n<Subject 1> (appears in [Shot 1], [Shot 2]): fully_preserved - the yellow plane and white smoke trail are retained.\n<Subject 2> (appears in [Shot 1], [Shot 2]): fully_preserved - the towering cumulus and dark sky are retained.\n\ndetailed_description:\nThe target video is a striking, high-contrast aerial film with bright sunlit clouds, deep dark sky and dynamic camera moves.\n[Shot 1] A wide shot matches <Picture 1>: <Subject 1> climbs straight up above <Subject 2>, smoke trail curling, and the camera tilts up with it.\n[Shot 2] At 00:02.000, the shot cuts to a beautiful close-up of the propeller and yellow nose as it slows at the top; the plane stalls, flips over and the camera follows it diving toward the bright cloud.\n\noverall_soundscape:\nStraining engine, wind, a sudden silence at the stall and a roaring dive.\n\nnon_diegetic_music:\nTense rising strings that break into a thrilling crescendo."
1027 },
1028 "color": "#322",
1029 "bgcolor": "#533"
1030 },
1031 {
1032 "id": 141,
1033 "type": "MiniMaxH3SigmaShift",
1034 "pos": [
1035 -500,
1036 4330
1037 ],
1038 "size": [
1039 300,
1040 140
1041 ],
1042 "flags": [],
1043 "order": 13,
1044 "mode": 0,
1045 "inputs": [
1046 {
1047 "name": "model",
1048 "type": "MODEL",
1049 "link": 283
1050 }
1051 ],
1052 "outputs": [
1053 {
1054 "name": "MODEL",
1055 "type": "MODEL",
1056 "links": [
1057 284
1058 ]
1059 }
1060 ],
1061 "properties": {
1062 "Node name for S&R": "MiniMaxH3SigmaShift"
1063 },
1064 "widgets_values": [
1065 12,
1066 3
1067 ],
1068 "widgets_values_named": {
1069 "shift_video": 12,
1070 "shift_audio": 3
1071 }
1072 },
1073 {
1074 "id": 142,
1075 "type": "ModelAttentionBackend",
1076 "pos": [
1077 -500,
1078 4540
1079 ],
1080 "size": [
1081 320,
1082 140
1083 ],
1084 "flags": [],
1085 "order": 15,
1086 "mode": 0,
1087 "inputs": [
1088 {
1089 "name": "model",
1090 "type": "MODEL",
1091 "link": 284
1092 }
1093 ],
1094 "outputs": [
1095 {
1096 "name": "model",
1097 "type": "MODEL",
1098 "links": [
1099 285
1100 ]
1101 }
1102 ],
1103 "properties": {
1104 "Node name for S&R": "ModelAttentionBackend"
1105 },
1106 "widgets_values": [
1107 "comfy kitchen attention"
1108 ],
1109 "widgets_values_named": {
1110 "attention": "comfy kitchen attention"
1111 }
1112 },
1113 {
1114 "id": 143,
1115 "type": "BlockSparseAttention",
1116 "pos": [
1117 -500,
1118 4740
1119 ],
1120 "size": [
1121 340,
1122 340
1123 ],
1124 "flags": [],
1125 "order": 17,
1126 "mode": 0,
1127 "inputs": [
1128 {
1129 "name": "model",
1130 "type": "MODEL",
1131 "link": 285
1132 }
1133 ],
1134 "outputs": [
1135 {
1136 "name": "model",
1137 "type": "MODEL",
1138 "links": [
1139 286,
1140 287
1141 ]
1142 }
1143 ],
1144 "properties": {
1145 "Node name for S&R": "BlockSparseAttention"
1146 },
1147 "widgets_values": [
1148 "vsa",
1149 10,
1150 0,
1151 1,
1152 "",
1153 12288,
1154 256,
1155 "exact_kv_and_rows",
1156 false
1157 ],
1158 "widgets_values_named": {
1159 "selection": "vsa",
1160 "selection.keep_percent": 10,
1161 "start_percent": 0,
1162 "end_percent": 1,
1163 "dense_blocks": "",
1164 "min_tokens": 12288,
1165 "extra_tokens": 256,
1166 "sink_conditioning": "exact_kv_and_rows",
1167 "verbose": false
1168 }
1169 },
1170 {
1171 "id": 148,
1172 "type": "MarkdownNote",
1173 "pos": [
1174 -1730,
1175 5490
1176 ],
1177 "size": [
1178 310,
1179 100
1180 ],
1181 "flags": [],
1182 "order": 12,
1183 "mode": 0,
1184 "inputs": [],
1185 "outputs": [],
1186 "title": "Note",
1187 "properties": [],
1188 "widgets_values": [
1189 "At full `1344x768` (around 1MP) and `362` frames (15s), VSA sparse attention is about 2x faster than the int8 attention backend; at shorter, smaller clips it offers little speedup. This template uses `120 frames` (about `5s`) just to avoid OOM on some low-VRAM GPUs."
1190 ],
1191 "widgets_values_named": {
1192 "text": "At full `1344x768` (around 1MP) and `362` frames (15s), VSA sparse attention is about 2x faster than the int8 attention backend; at shorter, smaller clips it offers little speedup. This template uses `120 frames` (about `5s`) just to avoid OOM on some low-VRAM GPUs."
1193 },
1194 "color": "#322",
1195 "bgcolor": "#533"
1196 }
1197 ],
1198 "links": [
1199 [
1200 250,
1201 120,
1202 0,
1203 121,
1204 1,
1205 "VAE"
1206 ],
1207 [
1208 251,
1209 119,
1210 0,
1211 122,
1212 1,
1213 "VAE"
1214 ],
1215 [
1216 253,
1217 129,
1218 0,
1219 125,
1220 0,
1221 "NOISE"
1222 ],
1223 [
1224 254,
1225 126,
1226 0,
1227 125,
1228 1,
1229 "GUIDER"
1230 ],
1231 [
1232 255,
1233 123,
1234 0,
1235 125,
1236 2,
1237 "SAMPLER"
1238 ],
1239 [
1240 256,
1241 124,
1242 0,
1243 125,
1244 3,
1245 "SIGMAS"
1246 ],
1247 [
1248 258,
1249 122,
1250 0,
1251 130,
1252 0,
1253 "IMAGE"
1254 ],
1255 [
1256 259,
1257 121,
1258 0,
1259 130,
1260 1,
1261 "AUDIO"
1262 ],
1263 [
1264 270,
1265 136,
1266 0,
1267 126,
1268 1,
1269 "CONDITIONING"
1270 ],
1271 [
1272 271,
1273 136,
1274 1,
1275 125,
1276 4,
1277 "LATENT"
1278 ],
1279 [
1280 280,
1281 125,
1282 0,
1283 122,
1284 0,
1285 "LATENT"
1286 ],
1287 [
1288 281,
1289 125,
1290 0,
1291 121,
1292 0,
1293 "LATENT"
1294 ],
1295 [
1296 283,
1297 127,
1298 0,
1299 141,
1300 0,
1301 "MODEL"
1302 ],
1303 [
1304 284,
1305 141,
1306 0,
1307 142,
1308 0,
1309 "MODEL"
1310 ],
1311 [
1312 286,
1313 143,
1314 0,
1315 124,
1316 0,
1317 "MODEL"
1318 ],
1319 [
1320 287,
1321 143,
1322 0,
1323 126,
1324 0,
1325 "MODEL"
1326 ],
1327 [
1328 260,
1329 130,
1330 0,
1331 92,
1332 0,
1333 "VIDEO"
1334 ],
1335 [
1336 261,
1337 132,
1338 0,
1339 131,
1340 0,
1341 "FLOAT"
1342 ],
1343 [
1344 272,
1345 128,
1346 0,
1347 136,
1348 0,
1349 "CLIP"
1350 ],
1351 [
1352 273,
1353 119,
1354 0,
1355 136,
1356 1,
1357 "VAE"
1358 ],
1359 [
1360 274,
1361 120,
1362 0,
1363 136,
1364 2,
1365 "VAE"
1366 ],
1367 [
1368 278,
1369 137,
1370 0,
1371 136,
1372 3,
1373 "IMAGE"
1374 ],
1375 [
1376 285,
1377 142,
1378 0,
1379 143,
1380 0,
1381 "MODEL"
1382 ],
1383 [
1384 279,
1385 138,
1386 0,
1387 136,
1388 10,
1389 "STRING"
1390 ],
1391 [
1392 276,
1393 115,
1394 0,
1395 136,
1396 11,
1397 "INT"
1398 ],
1399 [
1400 277,
1401 115,
1402 1,
1403 136,
1404 12,
1405 "INT"
1406 ],
1407 [
1408 275,
1409 131,
1410 1,
1411 136,
1412 13,
1413 "INT"
1414 ]
1415 ],
1416 "groups": [
1417 {
1418 "id": 1,
1419 "title": "Models",
1420 "bounding": [
1421 -1380,
1422 4240,
1423 778.0522044066522,
1424 916.8025809573492
1425 ],
1426 "color": "#3f789e",
1427 "flags": []
1428 },
1429 {
1430 "id": 2,
1431 "title": "Model Patches",
1432 "bounding": [
1433 -560,
1434 4240,
1435 460,
1436 920
1437 ],
1438 "color": "#3f789e",
1439 "flags": []
1440 },
1441 {
1442 "id": 3,
1443 "title": "Conditioning",
1444 "bounding": [
1445 -70,
1446 4240,
1447 551.5619079772382,
1448 921.6712723524925
1449 ],
1450 "color": "#A88",
1451 "flags": []
1452 },
1453 {
1454 "id": 4,
1455 "title": "Sampling",
1456 "bounding": [
1457 510,
1458 4240,
1459 790,
1460 920
1461 ],
1462 "color": "#3f789e",
1463 "flags": []
1464 },
1465 {
1466 "id": 5,
1467 "title": "Decoding and create video",
1468 "bounding": [
1469 1330,
1470 4240,
1471 490,
1472 920
1473 ],
1474 "color": "#3f789e",
1475 "flags": []
1476 },
1477 {
1478 "id": 6,
1479 "title": "User Inputs",
1480 "bounding": [
1481 -1380,
1482 5200,
1483 1870,
1484 710
1485 ],
1486 "color": "#A88",
1487 "flags": []
1488 }
1489 ],
1490 "config": [],
1491 "extra": {
1492 "ds": {
1493 "scale": 0.37091081850843705,
1494 "offset": [
1495 2684.4916520437455,
1496 -3573.687744684449
1497 ]
1498 },
1499 "frontendVersion": "1.55.18",
1500 "VHS_latentpreview": false,
1501 "VHS_latentpreviewrate": 0,
1502 "VHS_MetadataImage": true,
1503 "VHS_KeepIntermediate": true
1504 },
1505 "version": 0.4
1506}