{ "id": "e3f2b845-8f2c-4b5a-9caf-eac1029d3e7e", "revision": 0, "last_node_id": 144, "last_link_id": 288, "nodes": [ { "id": 92, "type": "SaveVideo", "pos": [ 1150, 4880 ], "size": [ 1210, 126 ], "flags": {}, "order": 26, "mode": 0, "inputs": [ { "name": "video", "type": "VIDEO", "link": 260 } ], "outputs": [ { "name": "video", "type": "VIDEO", "links": null } ], "properties": {}, "widgets_values": [ "MiniMax-H3-16GB-HiFi/Ref2VA-Fast", "auto", "auto" ] }, { "id": 115, "type": "ResolutionSelector", "pos": [ -1480, 5610 ], "size": [ 270, 170 ], "flags": {}, "order": 0, "mode": 0, "showAdvanced": false, "inputs": [], "outputs": [ { "name": "width", "type": "INT", "links": [ 276 ] }, { "name": "height", "type": "INT", "links": [ 277 ] } ], "title": "Resolution Selector (Size)", "properties": { "Node name for S&R": "ResolutionSelector" }, "widgets_values": [ "16:9 (Widescreen)", 0.98, 32 ], "color": "#322", "bgcolor": "#533" }, { "id": 116, "type": "MarkdownNote", "pos": [ -2030, 4850 ], "size": [ 450, 889.6875 ], "flags": {}, "order": 1, "mode": 0, "inputs": [], "outputs": [], "title": "Note: MiniMax H3", "properties": {}, "widgets_values": ["# MiniMax H3 16GB HiFi · Ref2VA Fast\n\nThe accepted fast preset uses the same HiFi weights and 20-step sampler, then adds static Sol-Attention (tau 1.0) and EasyCache (0.1, 15–85%). QK/PV INT8 and distilled/Turbo LoRA are deliberately disabled.\n\nDefault output: 1344×768, 362 frames (about 15.08 s), 24 fps, native 32 kHz stereo audio. Select your own reference inputs and prompt.\n\n## 时长设置 / Duration\n\n- `Float (Duration)` 的单位是 **秒 / seconds**:5 秒填 `5`,10 秒填 `10`,15 秒填 `15`。**请勿在这里填写 `124` 或 `362`,它们是帧数。**\n- 工作流会通过 `ComfyMathExpression` 按 24 fps 自动将秒数换算成帧数,并向上对齐到模型要求的 17k+5 帧网格,再传入生成节点的 `length`。请保留这条接线;下游 `length` 的单位才是帧 / frames。\n- 输入 `5` / `10` / `15` 秒分别得到 124 / 243 / 362 帧;在 24 fps 下,成片约为 5.17 / 10.13 / 15.08 秒。少量时长差异来自帧数对齐。`CreateVideo` 的输出帧率请保持 `24`。\n\n## 首次试跑 / First run\n\n当前默认值为 1344×768、Duration `15`(约 15.08 秒)。首次试跑建议将 `Resolution Selector (Size)` 设为 `16:9 (Widescreen)`、megapixels `0.5`、multiple `32`(960×544),并将 `Float (Duration)` 设为 `5`。较高分辨率和较长时长会明显增加生成耗时。"], "color": "#222", "bgcolor": "#000" }, { "id": 117, "type": "MarkdownNote", "pos": [ -2500, 4850 ], "size": [ 440, 740 ], "flags": {}, "order": 2, "mode": 0, "inputs": [], "outputs": [], "title": "Note: Model Links", "properties": {}, "widgets_values": ["# 安装 / Install\n\n仓库:[l1ngzi/MiniMax-H3-16G-HiFi](https://modelscope.cn/models/l1ngzi/MiniMax-H3-16G-HiFi)\n\n环境请按模型卡配置:ComfyUI ≥ 0.31、PyTorch cu130。\n\n### 1. 放置模型文件\n\n将模型文件放入以下准确目录(Ref2VA 使用对应的 DiT;文本编码器和 VAE 两种模式共用):\n\n```text\nComfyUI/models/diffusion_models/minimax_h3_ref2va_dit_16g.safetensors\nComfyUI/models/text_encoders/qwen3vl_text_encoder.safetensors\nComfyUI/models/vae/minimax_h3_video_vae_fp16.safetensors\nComfyUI/models/vae/minimax_h3_audio_vae_fp32.safetensors\n```\n\n### 2. 安装配套自定义节点\n\n下载本模型仓库提供的 [ComfyUI-sol-attn-main.zip](https://modelscope.cn/models/l1ngzi/MiniMax-H3-16G-HiFi/resolve/master/ComfyUI-sol-attn-main.zip?view=false),解压到 `ComfyUI/custom_nodes/`。请使用仓库内这份配套 ZIP,避免与其他版本的 sol-attn 插件混淆。\n\n确认最终目录结构为:\n\n```text\nComfyUI/custom_nodes/ComfyUI-sol-attn-main/\n├── __init__.py\n├── minimax.py\n├── nodes.py\n└── sol_kernel/\n```\n\n**不要多套一层同名文件夹,也不要放到 `ComfyUI/comfy_api_nodes/`。**\n\n本工作流使用的 `MiniMaxH3MemoryEfficientSolAttentionPatch`、`MiniMaxH3FusedModulation`、`MiniMaxH3ChunkFeedForward` 均由这份 ZIP 提供。\n\n### 3. 完整重启\n\n完整关闭并重新启动 ComfyUI,再刷新网页、重新打开工作流。若仍提示缺失节点,请查看 ComfyUI 启动日志中的自定义节点导入错误。\n\n建议启动参数:`--fast-disk --reserve-vram 2.5`。"], "color": "#222", "bgcolor": "#000" }, { "id": 119, "type": "VAELoader", "pos": [ -1490, 5270 ], "size": [ 640, 70 ], "flags": {}, "order": 3, "mode": 0, "inputs": [], "outputs": [ { "name": "VAE", "type": "VAE", "links": [ 251, 273 ] } ], "properties": { "Node name for S&R": "VAELoader", "models": [ { "name": "minimax_h3_video_vae_fp16.safetensors", "url": "https://www.modelscope.cn/models/l1ngzi/MiniMax-H3-16G-HiFi/resolve/master/vae/minimax_h3_video_vae_fp16.safetensors", "directory": "vae" } ] }, "widgets_values": [ "minimax_h3_video_vae_fp16.safetensors" ] }, { "id": 120, "type": "VAELoader", "pos": [ -1490, 5400 ], "size": [ 650, 70 ], "flags": {}, "order": 4, "mode": 0, "inputs": [], "outputs": [ { "name": "VAE", "type": "VAE", "links": [ 250, 274 ] } ], "properties": { "Node name for S&R": "VAELoader", "models": [ { "name": "minimax_h3_audio_vae_fp32.safetensors", "url": "https://www.modelscope.cn/models/l1ngzi/MiniMax-H3-16G-HiFi/resolve/master/vae/minimax_h3_audio_vae_fp32.safetensors", "directory": "vae" } ] }, "widgets_values": [ "minimax_h3_audio_vae_fp32.safetensors" ] }, { "id": 121, "type": "VAEDecodeAudio", "pos": [ 480, 5180 ], "size": [ 230, 60 ], "flags": { "collapsed": false }, "order": 24, "mode": 0, "inputs": [ { "name": "samples", "type": "LATENT", "link": 281 }, { "name": "vae", "type": "VAE", "link": 250 } ], "outputs": [ { "name": "AUDIO", "type": "AUDIO", "links": [ 259 ] } ], "properties": { "Node name for S&R": "VAEDecodeAudio" }, "widgets_values": [] }, { "id": 122, "type": "VAEDecode", "pos": [ 480, 5060 ], "size": [ 230, 60 ], "flags": { "collapsed": false }, "order": 23, "mode": 0, "inputs": [ { "name": "samples", "type": "LATENT", "link": 280 }, { "name": "vae", "type": "VAE", "link": 251 } ], "outputs": [ { "name": "IMAGE", "type": "IMAGE", "links": [ 258 ] } ], "properties": { "Node name for S&R": "VAEDecode" }, "widgets_values": [] }, { "id": 123, "type": "KSamplerSelect", "pos": [ -260, 5190 ], "size": [ 370, 70 ], "flags": {}, "order": 5, "mode": 0, "inputs": [], "outputs": [ { "name": "SAMPLER", "type": "SAMPLER", "links": [ 255 ] } ], "properties": { "Node name for S&R": "KSamplerSelect" }, "widgets_values": [ "res_multistep" ] }, { "id": 124, "type": "BasicScheduler", "pos": [ -260, 5310 ], "size": [ 370, 130 ], "flags": {}, "order": 18, "mode": 0, "inputs": [ { "name": "model", "type": "MODEL", "link": 287 } ], "outputs": [ { "name": "SIGMAS", "type": "SIGMAS", "links": [ 256 ] } ], "properties": { "Node name for S&R": "BasicScheduler" }, "widgets_values": [ "simple", 20, 1 ] }, { "id": 125, "type": "SamplerCustomAdvanced", "pos": [ 150, 5110 ], "size": [ 230, 140 ], "flags": {}, "order": 22, "mode": 0, "inputs": [ { "name": "noise", "type": "NOISE", "link": 253 }, { "name": "guider", "type": "GUIDER", "link": 254 }, { "name": "sampler", "type": "SAMPLER", "link": 255 }, { "name": "sigmas", "type": "SIGMAS", "link": 256 }, { "name": "latent_image", "type": "LATENT", "link": 271 } ], "outputs": [ { "name": "output", "type": "LATENT", "links": [ 280, 281 ] }, { "name": "denoised_output", "type": "LATENT", "links": [] } ], "properties": { "Node name for S&R": "SamplerCustomAdvanced" }, "widgets_values": [] }, { "id": 126, "type": "BasicGuider", "pos": [ -260, 5080 ], "size": [ 360, 60 ], "flags": {}, "order": 21, "mode": 0, "inputs": [ { "name": "model", "type": "MODEL", "link": 288 }, { "name": "conditioning", "type": "CONDITIONING", "link": 270 } ], "outputs": [ { "name": "GUIDER", "type": "GUIDER", "links": [ 254 ] } ], "properties": { "Node name for S&R": "BasicGuider" }, "widgets_values": [] }, { "id": 127, "type": "UNETLoader", "pos": [ -1490, 4940 ], "size": [ 640, 90 ], "flags": {}, "order": 6, "mode": 0, "inputs": [], "outputs": [ { "name": "MODEL", "type": "MODEL", "links": [ 283 ] } ], "properties": { "Node name for S&R": "UNETLoader", "models": [ { "name": "minimax_h3_ref2va_dit_16g.safetensors", "url": "https://www.modelscope.cn/models/l1ngzi/MiniMax-H3-16G-HiFi/resolve/master/diffusion_models/minimax_h3_ref2va_dit_16g.safetensors", "directory": "diffusion_models" } ] }, "widgets_values": [ "minimax_h3_ref2va_dit_16g.safetensors", "default" ] }, { "id": 128, "type": "CLIPLoader", "pos": [ -1490, 5090 ], "size": [ 640, 120 ], "flags": {}, "order": 11, "mode": 0, "inputs": [], "outputs": [ { "name": "CLIP", "type": "CLIP", "links": [ 272 ] } ], "properties": { "Node name for S&R": "CLIPLoader", "models": [ { "name": "qwen3vl_text_encoder.safetensors", "url": "https://www.modelscope.cn/models/l1ngzi/MiniMax-H3-16G-HiFi/resolve/master/text_encoders/qwen3vl_text_encoder.safetensors", "directory": "text_encoders" } ] }, "widgets_values": [ "qwen3vl_text_encoder.safetensors", "minimax", "default" ] }, { "id": 129, "type": "RandomNoise", "pos": [ -260, 4940 ], "size": [ 360, 90 ], "flags": {}, "order": 12, "mode": 0, "inputs": [], "outputs": [ { "name": "NOISE", "type": "NOISE", "links": [ 253 ] } ], "properties": { "Node name for S&R": "RandomNoise" }, "widgets_values": [ 20260812, "randomize" ] }, { "id": 130, "type": "CreateVideo", "pos": [ 790, 5090 ], "size": [ 270, 110 ], "flags": {}, "order": 25, "mode": 0, "inputs": [ { "name": "images", "type": "IMAGE", "link": 258 }, { "name": "audio", "shape": 7, "type": "AUDIO", "link": 259 } ], "outputs": [ { "name": "VIDEO", "type": "VIDEO", "links": [ 260 ] } ], "properties": { "Node name for S&R": "CreateVideo" }, "widgets_values": [ 24, 8 ] }, { "id": 131, "type": "ComfyMathExpression", "pos": [ -1450, 5940 ], "size": [ 225, 0 ], "flags": { "collapsed": true }, "order": 19, "mode": 0, "inputs": [ { "label": "a", "name": "values.a", "type": "FLOAT,INT,BOOLEAN", "link": 261 }, { "label": "b", "name": "values.b", "shape": 7, "type": "FLOAT,INT,BOOLEAN", "link": null } ], "outputs": [ { "name": "FLOAT", "type": "FLOAT", "links": [] }, { "name": "INT", "type": "INT", "links": [ 275 ] }, { "name": "BOOL", "type": "BOOLEAN", "links": [] } ], "properties": { "Node name for S&R": "ComfyMathExpression" }, "widgets_values": [ "max(5, round(a * 24)) + (5 - (max(5, round(a * 24)) % 17)) % 17" ] }, { "id": 132, "type": "PrimitiveFloat", "pos": [ -1480, 5830 ], "size": [ 270, 70 ], "flags": {}, "order": 13, "mode": 0, "inputs": [], "outputs": [ { "name": "FLOAT", "type": "FLOAT", "links": [ 261 ] } ], "title": "Float (Duration)", "properties": { "Node name for S&R": "PrimitiveFloat" }, "widgets_values": 15.0, "color": "#322", "bgcolor": "#533" }, { "id": 136, "type": "MiniMaxH3ReferenceToVideo", "pos": [ -750, 4940 ], "size": [ 410, 530 ], "flags": {}, "order": 20, "mode": 0, "inputs": [ { "name": "clip", "type": "CLIP", "link": 272 }, { "name": "vae", "type": "VAE", "link": 273 }, { "name": "audio_vae", "type": "VAE", "link": 274 }, { "label": "ref_image_0", "name": "ref_images.ref_image_0", "shape": 7, "type": "IMAGE", "link": 278 }, { "label": "ref_image_1", "name": "ref_images.ref_image_1", "shape": 7, "type": "IMAGE", "link": 282 }, { "label": "ref_image_2", "name": "ref_images.ref_image_2", "shape": 7, "type": "IMAGE", "link": null }, { "label": "ref_video_0", "name": "ref_videos.ref_video_0", "shape": 7, "type": "IMAGE", "link": null }, { "label": "ref_video_audio_0", "name": "ref_video_audios.ref_video_audio_0", "shape": 7, "type": "AUDIO", "link": null }, { "label": "ref_audio_0", "name": "ref_audios.ref_audio_0", "shape": 7, "type": "AUDIO", "link": null }, { "name": "prompt", "type": "STRING", "widget": { "name": "prompt" }, "link": 279 }, { "name": "width", "type": "INT", "widget": { "name": "width" }, "link": 276 }, { "name": "height", "type": "INT", "widget": { "name": "height" }, "link": 277 }, { "name": "length", "type": "INT", "widget": { "name": "length" }, "link": 275 } ], "outputs": [ { "name": "positive", "type": "CONDITIONING", "links": [ 270 ] }, { "name": "LATENT", "type": "LATENT", "links": [ 271 ] } ], "properties": { "Node name for S&R": "MiniMaxH3ReferenceToVideo" }, "widgets_values": [ "", 1344, 768, 124, "match" ] }, { "id": 137, "type": "LoadImage", "pos": [ -930, 5630 ], "size": [ 290, 330 ], "flags": {}, "order": 14, "mode": 0, "inputs": [], "outputs": [ { "name": "IMAGE", "type": "IMAGE", "links": [ 278 ] }, { "name": "MASK", "type": "MASK", "links": null } ], "properties": { "Node name for S&R": "LoadImage" }, "widgets_values": [ "red_superboy_on_city_roof.png", "image" ] }, { "id": 138, "type": "PrimitiveStringMultiline", "pos": [ -1480, 6000 ], "size": [ 370, 390 ], "flags": {}, "order": 15, "mode": 0, "inputs": [], "outputs": [ { "name": "STRING", "type": "STRING", "links": [ 279 ] } ], "title": "Input Text (Prompt)", "properties": { "Node name for S&R": "PrimitiveStringMultiline" }, "widgets_values": "Use as the primary identity and appearance reference, and as the secondary style/environment reference. Generate one continuous cinematic shot with natural motion, stable identity, coherent lighting, and synchronized native stereo ambience.", "color": "#322", "bgcolor": "#533" }, { "id": 139, "type": "LoadImage", "pos": [ -580, 5630 ], "size": [ 290, 330 ], "flags": {}, "order": 16, "mode": 0, "inputs": [], "outputs": [ { "name": "IMAGE", "type": "IMAGE", "links": [ 282 ] }, { "name": "MASK", "type": "MASK", "links": null } ], "properties": { "Node name for S&R": "LoadImage" }, "widgets_values": [ "mecha_dragon_lightning.png", "image" ] }, { "id": 140, "type": "MarkdownNote", "pos": [ -1890, 5830 ], "size": [ 300, 520 ], "flags": {}, "order": 17, "mode": 0, "inputs": [], "outputs": [], "title": "Note: Size Settings Reference", "properties": {}, "widgets_values": [ "| megapixels | Aspect | Output (multiple=32) |\n|---|---|---|\n| 0.2 | 16:9 | 608 x 352 |\n| 0.3 | 16:9 | 736 x 416 |\n| 0.4 | 16:9 | 864 x 480 |\n| 0.5 | 16:9 | 960 x 544 |\n| 0.6 | 16:9 | 1056 x 608 |\n| 0.7 | 16:9 | 1152 x 640 |\n| 0.8 | 16:9 | 1216 x 672 |\n| 0.9 | 16:9 | 1280 x 736 |\n| 0.98 | 16:9 | 1344 x 768 |\n| 1.0 | 16:9 | 1376 x 768 |\n| 1.2 | 16:9 | 1504 x 832 |\n| 1.5 | 16:9 | 1664 x 928 |\n| 1.8 | 16:9 | 1824 x 1024 |\n| 2.0 | 16:9 | 1920 x 1088 |\n" ], "color": "#222", "bgcolor": "#000" }, { "id": 141, "type": "MiniMaxH3MemoryEfficientSolAttentionPatch", "pos": [ -1240, 4760 ], "size": [ 360, 280 ], "flags": {}, "order": 7, "mode": 0, "inputs": [ { "name": "model", "type": "MODEL", "link": 283 } ], "outputs": [ { "name": "MODEL", "type": "MODEL", "links": [ 284 ] } ], "properties": { "Node name for S&R": "MiniMaxH3MemoryEfficientSolAttentionPatch", "category": "model_patches/attention" }, "widgets_values": [ true, 1.0, 4096, true, "diag", false, false, "exact_kv", "" ] }, { "id": 142, "type": "MiniMaxH3FusedModulation", "pos": [ -830, 4760 ], "size": [ 330, 82 ], "flags": {}, "order": 8, "mode": 0, "inputs": [ { "name": "model", "type": "MODEL", "link": 284 } ], "outputs": [ { "name": "MODEL", "type": "MODEL", "links": [ 285 ] } ], "properties": { "Node name for S&R": "MiniMaxH3FusedModulation", "category": "model_patches/optimization" }, "widgets_values": [ true ] }, { "id": 143, "type": "MiniMaxH3ChunkFeedForward", "pos": [ -830, 4890 ], "size": [ 330, 126 ], "flags": {}, "order": 9, "mode": 0, "inputs": [ { "name": "model", "type": "MODEL", "link": 285 } ], "outputs": [ { "name": "MODEL", "type": "MODEL", "links": [ 286 ] } ], "properties": { "Node name for S&R": "MiniMaxH3ChunkFeedForward", "category": "model_patches/memory" }, "widgets_values": [ true, 4, 8192 ] }, { "id": 144, "type": "EasyCache", "pos": [ -440, 4760 ], "size": [ 330, 168 ], "flags": {}, "order": 10, "mode": 0, "inputs": [ { "name": "model", "type": "MODEL", "link": 286 } ], "outputs": [ { "name": "MODEL", "type": "MODEL", "links": [ 287, 288 ] } ], "properties": { "Node name for S&R": "EasyCache", "category": "advanced/debug" }, "widgets_values": [ 0.1, 0.15, 0.85, false ] } ], "links": [ [ 250, 120, 0, 121, 1, "VAE" ], [ 251, 119, 0, 122, 1, "VAE" ], [ 253, 129, 0, 125, 0, "NOISE" ], [ 254, 126, 0, 125, 1, "GUIDER" ], [ 255, 123, 0, 125, 2, "SAMPLER" ], [ 256, 124, 0, 125, 3, "SIGMAS" ], [ 258, 122, 0, 130, 0, "IMAGE" ], [ 259, 121, 0, 130, 1, "AUDIO" ], [ 260, 130, 0, 92, 0, "VIDEO" ], [ 261, 132, 0, 131, 0, "FLOAT" ], [ 270, 136, 0, 126, 1, "CONDITIONING" ], [ 271, 136, 1, 125, 4, "LATENT" ], [ 272, 128, 0, 136, 0, "CLIP" ], [ 273, 119, 0, 136, 1, "VAE" ], [ 274, 120, 0, 136, 2, "VAE" ], [ 275, 131, 1, 136, 12, "INT" ], [ 276, 115, 0, 136, 10, "INT" ], [ 277, 115, 1, 136, 11, "INT" ], [ 278, 137, 0, 136, 3, "IMAGE" ], [ 279, 138, 0, 136, 9, "STRING" ], [ 280, 125, 0, 122, 0, "LATENT" ], [ 281, 125, 0, 121, 0, "LATENT" ], [ 282, 139, 0, 136, 4, "IMAGE" ], [ 283, 127, 0, 141, 0, "MODEL" ], [ 284, 141, 0, 142, 0, "MODEL" ], [ 285, 142, 0, 143, 0, "MODEL" ], [ 286, 143, 0, 144, 0, "MODEL" ], [ 287, 144, 0, 124, 0, "MODEL" ], [ 288, 144, 0, 126, 0, "MODEL" ] ], "groups": [ { "id": 1, "title": "Models", "bounding": [ -1520, 4840, 700, 670 ], "color": "#3f789e", "flags": {} }, { "id": 2, "title": "Sampling", "bounding": [ -280, 4840, 690, 670 ], "color": "#3f789e", "flags": {} }, { "id": 3, "title": "Conditioning", "bounding": [ -790, 4840, 480, 670 ], "color": "#3f789e", "flags": {} }, { "id": 4, "title": "Decoding and create video", "bounding": [ 440, 4840, 670, 670 ], "color": "#3f789e", "flags": {} }, { "id": 5, "title": "User Inputs", "bounding": [ -1520, 5540, 1930, 900 ], "color": "#3f789e", "flags": {} } ], "config": {}, "extra": { "ds": { "scale": 1, "offset": [ 1062.9224582659933, -4889.495457009915 ] }, "frontendVersion": "1.47.11", "VHS_latentpreview": false, "VHS_latentpreviewrate": 0, "VHS_MetadataImage": true, "VHS_KeepIntermediate": true }, "version": 0.4 }