ComfyPilotComfyPilot
工作流 / 视频 / MiniMax H3 Max:图生视频
MiniMax H3 Max:图生视频

MiniMax H3 Max:图生视频

MiniMax H3 Max: Image to Video

使用MiniMax H3 Max从来源图像生成视频,在保持构图、视觉特征和宽高比的同时,为静态画面添加动画效果。该模型提供快于实时的生成速度,具有强大的提示词遵循能力和精致的电影级美学。非常适合让角色艺术栩栩如生、为产品镜头添加动画,以及从概念图像中创造动态效果。

视频 15 个节点 1 个输入 172 次使用 ComfyUI ≥ 0.34.3 ComfyUI 22 KB

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

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

节点构成

MarkdownNote × 3
SaveVideo × 2
ComfySwitchNode × 2
PrimitiveBoolean × 2
MinimaxHailuo03ContextIRNode × 1
SaveText × 1
MinimaxHailuo03RegenerateNode × 1
PrimitiveStringMultiline × 1
MinimaxHailuo03FirstLastFrameNode × 1
LoadImage × 1

官方标注的模型

MiniMax H3

工作流 JSON

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

1{
2 "id": "c23969d8-7734-4984-ac92-ee71859d3c74",
3 "revision": 0,
4 "last_node_id": 26,
5 "last_link_id": 37,
6 "nodes": [
7 {
8 "id": 2,
9 "type": "SaveVideo",
10 "pos": [
11 -1720,
12 4140
13 ],
14 "size": [
15 740,
16 150
17 ],
18 "flags": {
19 "collapsed": false
20 },
21 "order": 11,
22 "mode": 0,
23 "inputs": [
24 {
25 "name": "video",
26 "type": "VIDEO",
27 "link": 36
28 }
29 ],
30 "outputs": [
31 {
32 "name": "video",
33 "type": "VIDEO",
34 "links": [
35 10
36 ]
37 }
38 ],
39 "properties": [],
40 "widgets_values": [
41 "video/video/MiniMax_H3_i2v_768P",
42 "auto",
43 "auto",
44 "auto"
45 ]
46 },
47 {
48 "id": 7,
49 "type": "MinimaxHailuo03ContextIRNode",
50 "pos": [
51 -2170,
52 4830
53 ],
54 "size": [
55 400,
56 315
57 ],
58 "flags": [],
59 "order": 7,
60 "mode": 0,
61 "inputs": [
62 {
63 "name": "first_frame",
64 "shape": 7,
65 "type": "IMAGE",
66 "link": null
67 },
68 {
69 "name": "last_frame",
70 "shape": 7,
71 "type": "IMAGE",
72 "link": null
73 },
74 {
75 "name": "model.prompt",
76 "type": "STRING",
77 "widget": {
78 "name": "model.prompt"
79 },
80 "link": 22
81 },
82 {
83 "label": "image_1",
84 "name": "model.reference_images.image_1",
85 "shape": 7,
86 "type": "IMAGE",
87 "link": 32
88 },
89 {
90 "label": "image_2",
91 "name": "model.reference_images.image_2",
92 "shape": 7,
93 "type": "IMAGE",
94 "link": null
95 },
96 {
97 "label": "video_1",
98 "name": "model.reference_videos.video_1",
99 "shape": 7,
100 "type": "VIDEO",
101 "link": null
102 },
103 {
104 "label": "audio_1",
105 "name": "model.reference_audios.audio_1",
106 "shape": 7,
107 "type": "AUDIO",
108 "link": null
109 }
110 ],
111 "outputs": [
112 {
113 "name": "STRING",
114 "type": "STRING",
115 "links": [
116 17
117 ]
118 }
119 ],
120 "properties": {
121 "Node name for S&R": "MinimaxHailuo03ContextIRNode"
122 },
123 "widgets_values": [
124 "MiniMax H3",
125 "",
126 5,
127 "adaptive"
128 ],
129 "color": "#432",
130 "bgcolor": "#653"
131 },
132 {
133 "id": 8,
134 "type": "SaveText",
135 "pos": [
136 -1710,
137 4830
138 ],
139 "size": [
140 750,
141 650
142 ],
143 "flags": [],
144 "order": 9,
145 "mode": 0,
146 "inputs": [
147 {
148 "name": "text",
149 "type": "STRING",
150 "link": 23
151 }
152 ],
153 "outputs": [
154 {
155 "name": "text",
156 "type": "STRING",
157 "links": [
158 12
159 ]
160 }
161 ],
162 "properties": {
163 "Node name for S&R": "SaveText"
164 },
165 "widgets_values": [
166 "H3_prompt",
167 "txt"
168 ]
169 },
170 {
171 "id": 10,
172 "type": "MinimaxHailuo03RegenerateNode",
173 "pos": [
174 -830,
175 4570
176 ],
177 "size": [
178 400,
179 326
180 ],
181 "flags": [],
182 "order": 12,
183 "mode": 0,
184 "inputs": [
185 {
186 "name": "video",
187 "type": "VIDEO",
188 "link": 10
189 },
190 {
191 "name": "first_frame",
192 "shape": 7,
193 "type": "IMAGE",
194 "link": null
195 },
196 {
197 "name": "last_frame",
198 "shape": 7,
199 "type": "IMAGE",
200 "link": null
201 },
202 {
203 "name": "model.prompt",
204 "type": "STRING",
205 "widget": {
206 "name": "model.prompt"
207 },
208 "link": 12
209 },
210 {
211 "label": "image_1",
212 "name": "model.reference_images.image_1",
213 "shape": 7,
214 "type": "IMAGE",
215 "link": 34
216 },
217 {
218 "label": "image_2",
219 "name": "model.reference_images.image_2",
220 "shape": 7,
221 "type": "IMAGE",
222 "link": null
223 },
224 {
225 "label": "video_1",
226 "name": "model.reference_videos.video_1",
227 "shape": 7,
228 "type": "VIDEO",
229 "link": null
230 },
231 {
232 "label": "audio_1",
233 "name": "model.reference_audios.audio_1",
234 "shape": 7,
235 "type": "AUDIO",
236 "link": null
237 }
238 ],
239 "outputs": [
240 {
241 "name": "VIDEO",
242 "type": "VIDEO",
243 "links": [
244 18
245 ]
246 }
247 ],
248 "properties": {
249 "Node name for S&R": "MinimaxHailuo03RegenerateNode"
250 },
251 "widgets_values": [
252 "MiniMax H3",
253 "",
254 "2K",
255 false
256 ],
257 "color": "#432",
258 "bgcolor": "#653"
259 },
260 {
261 "id": 11,
262 "type": "SaveVideo",
263 "pos": [
264 -350,
265 4570
266 ],
267 "size": [
268 680,
269 150
270 ],
271 "flags": [],
272 "order": 14,
273 "mode": 0,
274 "inputs": [
275 {
276 "name": "video",
277 "type": "VIDEO",
278 "link": 20
279 }
280 ],
281 "outputs": [
282 {
283 "name": "video",
284 "type": "VIDEO",
285 "links": []
286 }
287 ],
288 "properties": [],
289 "widgets_values": [
290 "video/Minimax_h3_max",
291 "auto",
292 "auto",
293 "auto"
294 ]
295 },
296 {
297 "id": 12,
298 "type": "ComfySwitchNode",
299 "pos": [
300 -2100,
301 5340
302 ],
303 "size": [
304 270,
305 110
306 ],
307 "flags": [],
308 "order": 8,
309 "mode": 0,
310 "inputs": [
311 {
312 "name": "on_false",
313 "type": "STRING",
314 "link": 21
315 },
316 {
317 "name": "on_true",
318 "type": "STRING",
319 "link": 17
320 },
321 {
322 "name": "switch",
323 "type": "BOOLEAN",
324 "widget": {
325 "name": "switch"
326 },
327 "link": 26
328 }
329 ],
330 "outputs": [
331 {
332 "name": "output",
333 "type": "STRING",
334 "links": [
335 23,
336 35
337 ]
338 }
339 ],
340 "properties": {
341 "Node name for S&R": "ComfySwitchNode"
342 },
343 "widgets_values": [
344 false
345 ],
346 "color": "#322",
347 "bgcolor": "#533"
348 },
349 {
350 "id": 13,
351 "type": "ComfySwitchNode",
352 "pos": [
353 -750,
354 4990
355 ],
356 "size": [
357 270,
358 110
359 ],
360 "flags": [],
361 "order": 13,
362 "mode": 0,
363 "inputs": [
364 {
365 "name": "on_false",
366 "type": "VIDEO",
367 "link": 37
368 },
369 {
370 "name": "on_true",
371 "type": "VIDEO",
372 "link": 18
373 },
374 {
375 "name": "switch",
376 "type": "BOOLEAN",
377 "widget": {
378 "name": "switch"
379 },
380 "link": 25
381 }
382 ],
383 "outputs": [
384 {
385 "name": "output",
386 "type": "VIDEO",
387 "links": [
388 20
389 ]
390 }
391 ],
392 "properties": {
393 "Node name for S&R": "ComfySwitchNode"
394 },
395 "widgets_values": [
396 false
397 ],
398 "color": "#322",
399 "bgcolor": "#533"
400 },
401 {
402 "id": 14,
403 "type": "PrimitiveStringMultiline",
404 "pos": [
405 -2910,
406 4770
407 ],
408 "size": [
409 410,
410 380
411 ],
412 "flags": [],
413 "order": 0,
414 "mode": 0,
415 "inputs": [],
416 "outputs": [
417 {
418 "name": "STRING",
419 "type": "STRING",
420 "links": [
421 21,
422 22
423 ]
424 }
425 ],
426 "title": "Text (Prompt)",
427 "properties": {
428 "Node name for S&R": "PrimitiveStringMultiline"
429 },
430 "widgets_values": [
431 "[Product] An all-black chunky sneaker (chunky sole, all-black body, black laces) on black velvet, cold-white top-light system, photoreal product photography.\n\n[First frame A (Shot 1, use the reference image or generate per this)]\nAn all-black chunky sneaker floating over black velvet, one cold-white beam from the upper left, the silhouette rimmed with faint edge light, slightly-off frontal view, the shoe centered, vast black negative space around it, 16:9, no text.\n\n[First frame B (Shot 2, with background text layer)]\nThe same all-black chunky sneaker on the same black velvet with the same cold-white top-light system, restaged as a low-angle hero shot looking up: the sole tilted toward the lens, tread pattern and cold steel-gray edge highlight crisp, laces dropping into frame from above. Deep in the blurred darkness behind the shoe, a giant dark-gray sans-serif line \"BUILT IN THE DARK\" is barely visible: far larger than the product, partially occluded by the shoe, out of focus, extremely low luminance, as if printed on the background velvet. 16:9, photoreal product photography.\n\n[First frame C (Shot 3)]\nThe same all-black chunky sneaker on the same black velvet with the same cold-white top-light system, restaged at a 45-degree overhead-side angle: the shoe occupying the right two-thirds, a large area of black negative space on the left, 16:9, no text.\n\n[Shot 1 motion layer (I2V, first frame A)]\nStart from the first frame, inherit its content and lighting; motion only. Action: [0s-2s] Dust drifts upward in the beam, the key light breathing subtly; [2s-5s] The shoe rotates slowly by about 20 degrees as one rim highlight sweeps along the chunky sole from heel to toe, the velvet rippling once. No text. Camera: one slow constant push-in, subtle handheld breathing, no cuts. Audio: a low drone, one muffled kick at 2s, faint velvet rustle.\n\n[Shot 2 motion layer (I2V, first frame B)]\n\nStart from the first frame, inherit its content and lighting; motion only. Action: [0s-1.5s] One highlight sweeps across the tread while the giant dark-gray background type \"BUILT IN THE DARK\" slides very slowly right to left, always behind the shoe, defocused and low-luminance; [1.5s-3.5s] The shoe flips slowly along a diagonal from sole view toward its side profile, briefly occluding more of the background type mid-flip, creating a foreground-silhouette versus background-type interplay; [3.5s-5s] It settles into a breathing hover as the background type slides off the left frame edge, cropping out and fading. Camera: locked macro, no cuts. Audio: the drone continues, one woody click at 1.5s, subtle fabric friction during the flip. Background text rules: the type never crosses in front of the shoe, never covers any part of it, stays defocused and low-contrast throughout, existing purely as a depth layer.\n\n[Shot 3 motion layer (I2V, first frame C)]\nStart from the first frame, inherit its content and lighting; motion only. Action: [0s-1.5s] The shoe hovers with breathing motion as the rim light builds; [1.5s-2.5s] The first half of the copy fades into the left negative space; [2.5s-3.2s] The second half fades in while the first half shifts gently left within the same line; [3.2s-5s] The copy locks, the shoe settles, the frame holds. Text spelled out verbatim: \"Darkness in Motion\", SF Pro Display Semibold, one line, no wrapping, vertically centered left-aligned; \"Darkness in\" in white fading in at 1.5s, \"Motion\" in cold steel gray at 2.5s. Camera: one slow push-in, no cuts. Audio: the drone peaks, one crisp pluck at 1.5s; at 4.5s everything stops leaving the pluck tail.\n\n[Edit & finishing]\nThree 5-second I2V segments, two hard cuts aligned to the kick ending Shot 1 and the pluck opening Shot 3; one unified cool dark LUT across the film, an optional light grain overlay to hide batch differences. The product stays fully black throughout; only the lighting and the shoe's motion change. Copy rhythm: Shot 1 no text, Shot 2 background defocused type only, Shot 3 the main copy; at most one readable text layer on screen at any moment.\n\n[Negative list (all three segments)]\nno product color change, no extra light sources, no readable text besides the Shot 3 copy line, background text in Shot 2 must never overlap or occlude the shoe, no two text rows, no cuts within any single segment, no mirror floor reflections, no dissolve transitions, no logo."
432 ]
433 },
434 {
435 "id": 17,
436 "type": "MarkdownNote",
437 "pos": [
438 -3800,
439 4090
440 ],
441 "size": [
442 580,
443 1220
444 ],
445 "flags": [],
446 "order": 1,
447 "mode": 0,
448 "inputs": [],
449 "outputs": [],
450 "title": "Note: Guide",
451 "properties": [],
452 "widgets_values": [
453 "## How this graph is wired\n\nThis is a MiniMax H3 Max **image-to-video** template (first / last frame), not the multi-reference graph. It has **one required path** and **two optional stages**. You choose whether to run the optional stages. Both start **off**.\n\nOn the canvas, two nodes are marked **red**. Those are **Switch** nodes. Each is the on/off gate for an optional stage, driven by a boolean in the **Feature Flags** group.\n\n### 1. Video generation (required)\n\n**MiniMax H3 First-Last-Frame to Video** is the core. It always runs. Feed it **Text (Prompt)** and a first-frame image from **Load Image**. Last frame is optional. The first **Save Video** is the first-pass output.\n\n### 2. Prompt enhance (optional)\n\n**Boolean (Prompt Enhance)** feeds the red **Switch** in **Prompt Enhancer (Optional)**.\n\n- Set it to `true` to rewrite the prompt with **MiniMax H3 Context IR (Prompt Enhancer)** before generation.\n- Leave it `false` to send your raw prompt straight to video generation.\n\n### 3. Video upscale (optional)\n\n**Boolean (Upscale to 2K)** feeds the red **Switch** in **Upscale Video to 2K (Optional)**.\n\n- Set it to `true` to run **MiniMax H3 Regenerate to 2K** on the first-pass video.\n- Leave it `false` to save the first-pass video as-is.\n\nUpscale **only accepts 768P** source video. If you turn this stage on, generate at **768P**. Other resolutions are not supported by **MiniMax H3 Regenerate to 2K**.\n\nYou can enable section 2, section 3, both, or neither.\n\n### Duration must match\n\nKeep **duration** the same on every MiniMax node you actually use (generation, prompt enhance, and upscale). The clip length must match across those stages. If one node is 5s and another is 6s, enhance or upscale will be out of sync with the generated video.\n\n### Extra inputs must be duplicated\n\nThe generate node, the prompt-enhance node, and the upscale node do **not** share extra context automatically.\n\nThe first-frame image is already wired into all three. If you add more inputs (a last frame, another image, a reference video, audio, or any extra output you plug into generation), **also plug the same wires into**:\n\n- **MiniMax H3 Context IR (Prompt Enhancer)**, so prompt enhance sees the same frames and references\n- **MiniMax H3 Regenerate to 2K**, so upscale sees the same frames and references\n\nIf you only wire extras into generation, enhance and upscale will run without that context and the result will drift."
454 ],
455 "color": "#222",
456 "bgcolor": "#000"
457 },
458 {
459 "id": 18,
460 "type": "PrimitiveBoolean",
461 "pos": [
462 -2840,
463 5270
464 ],
465 "size": [
466 270,
467 90
468 ],
469 "flags": [],
470 "order": 2,
471 "mode": 0,
472 "inputs": [],
473 "outputs": [
474 {
475 "name": "BOOLEAN",
476 "type": "BOOLEAN",
477 "links": [
478 26
479 ]
480 }
481 ],
482 "title": "Boolean (Prompt Enhance)",
483 "properties": {
484 "Node name for S&R": "PrimitiveBoolean"
485 },
486 "widgets_values": [
487 false
488 ]
489 },
490 {
491 "id": 19,
492 "type": "PrimitiveBoolean",
493 "pos": [
494 -2840,
495 5420
496 ],
497 "size": [
498 270,
499 90
500 ],
501 "flags": [],
502 "order": 3,
503 "mode": 0,
504 "inputs": [],
505 "outputs": [
506 {
507 "name": "BOOLEAN",
508 "type": "BOOLEAN",
509 "links": [
510 25
511 ]
512 }
513 ],
514 "title": "Boolean (Upscale to 2K)",
515 "properties": {
516 "Node name for S&R": "PrimitiveBoolean"
517 },
518 "widgets_values": [
519 false
520 ]
521 },
522 {
523 "id": 21,
524 "type": "MarkdownNote",
525 "pos": [
526 -3150,
527 5430
528 ],
529 "size": [
530 290,
531 120
532 ],
533 "flags": [],
534 "order": 4,
535 "mode": 0,
536 "inputs": [],
537 "outputs": [],
538 "title": "Note: Requirement for Video Upscale",
539 "properties": [],
540 "widgets_values": [
541 "Upscale only accepts **768P** source video. Generate at 768P if you turn on **Boolean (Upscale to 2K)**. Other resolutions are not supported."
542 ],
543 "color": "#222",
544 "bgcolor": "#000"
545 },
546 {
547 "id": 24,
548 "type": "MinimaxHailuo03FirstLastFrameNode",
549 "pos": [
550 -2150,
551 4150
552 ],
553 "size": [
554 400,
555 315
556 ],
557 "flags": [],
558 "order": 10,
559 "mode": 0,
560 "inputs": [
561 {
562 "name": "first_frame",
563 "type": "IMAGE",
564 "link": 31
565 },
566 {
567 "name": "last_frame",
568 "shape": 7,
569 "type": "IMAGE",
570 "link": null
571 },
572 {
573 "name": "model.prompt",
574 "type": "STRING",
575 "widget": {
576 "name": "model.prompt"
577 },
578 "link": 35
579 }
580 ],
581 "outputs": [
582 {
583 "name": "VIDEO",
584 "type": "VIDEO",
585 "links": [
586 36,
587 37
588 ]
589 }
590 ],
591 "properties": {
592 "Node name for S&R": "MinimaxHailuo03FirstLastFrameNode"
593 },
594 "widgets_values": [
595 "MiniMax H3 Max",
596 "",
597 "768P",
598 5,
599 "balanced",
600 791669044,
601 "randomize",
602 false
603 ],
604 "color": "#432",
605 "bgcolor": "#653"
606 },
607 {
608 "id": 25,
609 "type": "LoadImage",
610 "pos": [
611 -2910,
612 4320
613 ],
614 "size": [
615 410,
616 390
617 ],
618 "flags": [],
619 "order": 5,
620 "mode": 0,
621 "inputs": [],
622 "outputs": [
623 {
624 "name": "IMAGE",
625 "type": "IMAGE",
626 "links": [
627 31,
628 32,
629 34
630 ]
631 },
632 {
633 "name": "MASK",
634 "type": "MASK",
635 "links": null
636 }
637 ],
638 "properties": {
639 "Node name for S&R": "LoadImage"
640 },
641 "widgets_values": [
642 "sneaker_black.png",
643 "image"
644 ]
645 },
646 {
647 "id": 26,
648 "type": "MarkdownNote",
649 "pos": [
650 -4170,
651 4090
652 ],
653 "size": [
654 320,
655 350
656 ],
657 "flags": [],
658 "order": 6,
659 "mode": 0,
660 "inputs": [],
661 "outputs": [],
662 "properties": [],
663 "widgets_values": [
664 "## Input Asset\n\n- [sneaker_black.png](https://raw.githubusercontent.com/Comfy-Org/workflow_templates/refs/heads/main/input/sneaker_black.png)\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"
665 ],
666 "color": "#222",
667 "bgcolor": "#000"
668 }
669 ],
670 "links": [
671 [
672 10,
673 2,
674 0,
675 10,
676 0,
677 "VIDEO"
678 ],
679 [
680 12,
681 8,
682 0,
683 10,
684 3,
685 "STRING"
686 ],
687 [
688 17,
689 7,
690 0,
691 12,
692 1,
693 "STRING"
694 ],
695 [
696 18,
697 10,
698 0,
699 13,
700 1,
701 "VIDEO"
702 ],
703 [
704 20,
705 13,
706 0,
707 11,
708 0,
709 "VIDEO"
710 ],
711 [
712 21,
713 14,
714 0,
715 12,
716 0,
717 "STRING"
718 ],
719 [
720 22,
721 14,
722 0,
723 7,
724 2,
725 "STRING"
726 ],
727 [
728 23,
729 12,
730 0,
731 8,
732 0,
733 "STRING"
734 ],
735 [
736 25,
737 19,
738 0,
739 13,
740 2,
741 "BOOLEAN"
742 ],
743 [
744 26,
745 18,
746 0,
747 12,
748 2,
749 "BOOLEAN"
750 ],
751 [
752 31,
753 25,
754 0,
755 24,
756 0,
757 "IMAGE"
758 ],
759 [
760 32,
761 25,
762 0,
763 7,
764 3,
765 "IMAGE"
766 ],
767 [
768 34,
769 25,
770 0,
771 10,
772 4,
773 "IMAGE"
774 ],
775 [
776 35,
777 12,
778 0,
779 24,
780 2,
781 "STRING"
782 ],
783 [
784 36,
785 24,
786 0,
787 2,
788 0,
789 "VIDEO"
790 ],
791 [
792 37,
793 24,
794 0,
795 13,
796 0,
797 "VIDEO"
798 ]
799 ],
800 "groups": [
801 {
802 "id": 1,
803 "title": "Prompt Enhancer (Optional)",
804 "bounding": [
805 -2200,
806 4750,
807 1270,
808 840
809 ],
810 "color": "#3f789e",
811 "flags": []
812 },
813 {
814 "id": 2,
815 "title": "User Inputs",
816 "bounding": [
817 -3160,
818 4060,
819 930,
820 1530
821 ],
822 "color": "#3f789e",
823 "flags": []
824 },
825 {
826 "id": 3,
827 "title": "Upscale Video to 2K (Optional)",
828 "bounding": [
829 -900,
830 4060,
831 1400,
832 1540
833 ],
834 "color": "#3f789e",
835 "flags": []
836 },
837 {
838 "id": 4,
839 "title": "Video Generation (Core)",
840 "bounding": [
841 -2200,
842 4060,
843 1270,
844 670
845 ],
846 "color": "#A88",
847 "flags": []
848 },
849 {
850 "id": 5,
851 "title": "Feature Flags",
852 "bounding": [
853 -2880,
854 5190,
855 350,
856 360
857 ],
858 "color": "#3f789e",
859 "flags": []
860 }
861 ],
862 "config": [],
863 "extra": {
864 "ds": {
865 "scale": 0.4619724363425112,
866 "offset": [
867 4479.236941238183,
868 -3326.3116200177687
869 ]
870 },
871 "frontendVersion": "1.48.7"
872 },
873 "version": 0.4
874}