{ "id": "e3f2b845-8f2c-4b5a-9caf-eac1029d3e7e", "revision": 0, "last_node_id": 154, "last_link_id": 285, "nodes": [ { "id": 92, "type": "SaveVideo", "pos": [ 1510, 510 ], "size": [ 360, 370 ], "flags": {}, "order": 34, "mode": 0, "inputs": [ { "localized_name": "video", "name": "video", "type": "VIDEO", "link": 231 }, { "localized_name": "filename_prefix", "name": "filename_prefix", "type": "STRING", "widget": { "name": "filename_prefix" }, "link": null }, { "localized_name": "format", "name": "format", "type": "COMBO", "widget": { "name": "format" }, "link": null }, { "localized_name": "codec", "name": "codec", "type": "COMFY_DYNAMICCOMBO_V3", "widget": { "name": "codec" }, "link": null } ], "outputs": [ { "localized_name": "video", "name": "video", "type": "VIDEO", "links": [] } ], "properties": { "Node name for S&R": "SaveVideo" }, "widgets_values": [ "video/MacMax_%date:yyyy-MM-dd%", "auto", "auto" ], "title": "Finished video + stereo audio" }, { "id": 115, "type": "ResolutionSelector", "pos": [ 0, 510 ], "size": [ 350, 125 ], "flags": {}, "order": 0, "mode": 0, "showAdvanced": true, "inputs": [ { "localized_name": "aspect_ratio", "name": "aspect_ratio", "type": "COMBO", "widget": { "name": "aspect_ratio" }, "link": null }, { "localized_name": "megapixels", "name": "megapixels", "type": "FLOAT", "widget": { "name": "megapixels" }, "link": null }, { "localized_name": "multiple", "name": "multiple", "type": "INT", "widget": { "name": "multiple" }, "link": null } ], "outputs": [ { "localized_name": "width", "name": "width", "type": "INT", "links": [ 232, 276 ] }, { "localized_name": "height", "name": "height", "type": "INT", "links": [ 233, 277 ] } ], "title": "Canvas \u2014 0.2 MP starter; raise after first render", "properties": { "Node name for S&R": "ResolutionSelector" }, "widgets_values": [ "9:16 (Portrait Widescreen)", 0.2, 32 ] }, { "id": 116, "type": "MarkdownNote", "pos": [ 0, 0 ], "size": [ 480, 430 ], "flags": {}, "order": 1, "mode": 0, "inputs": [], "outputs": [], "title": "MacMax - READ ME FIRST", "properties": {}, "widgets_values": [ "# MacMax \u00b7 Parasyte video + audio\n\n**First run**\n1. Install the node packs and five model files (SETUP below).\n2. Select your files in column 3, including Parasyte.\n3. Edit the demo prompt in column 2, then click Run.\n4. Your video with stereo audio appears in column 4.\n\n**Parasyte is ON and fully wired.** Eight steps,\nER-SDE / beta57; shift 12 / 3; strength 1.5.\nLeave the compatibility node on strip.\n\n**Starter canvas:** 0.2 MP, 5 seconds. Increase resolution\nafter the first successful render; it costs time and memory.\nFive seconds rounds to 124 frames (5.17s at 24 fps).\n\n**Image modes:** both images off = T2V; first on = I2V;\nboth on = first/last frame. Select your images first.\nUse the node menu's Bypass action. Purple means off.\n\nChaining and extra exports start OFF.\nDo not use EasyCache or Spectrum with Parasyte: visible artifacts.\nThe optional int8 base path has separate settings below.\nHistorical tests used 48 GB; smaller Macs need testing.\n\n**Measured wall time (48 GB M5 Pro):**\n- 0.2 MP, 5s / 8 steps: **6m 54s**.\n- 0.4 MP, 5s / 8 steps: **12m 52s**.\nSingle runs, including load/decode/save. See README for test conditions.\n\n**R2V:** turn USE R2V on and choose references in column 5. The shared prompt applies to both modes. Leave continuation off for R2V." ], "color": "#222", "bgcolor": "#000" }, { "id": 117, "type": "MarkdownNote", "pos": [ 830, 2840 ], "size": [ 540, 750 ], "flags": {}, "order": 2, "mode": 0, "inputs": [], "outputs": [], "title": "SETUP - models & custom nodes", "properties": {}, "widgets_values": [ "## Setup for the default Parasyte path\n\nRun `./install_node_packs.sh` with ComfyUI stopped, then restart.\nDefault packs: ComfyUI-GGUF, PlagueKind Nodes, comfyui-obvpm,\nand AppleSilicon-FP8 (for the optional int8 path).\n`extras` adds Motion Context and ClipProj. `all` installs both sets.\n\nDownload these five files (~37 GB total) into `ComfyUI/models/`:\n\n**diffusion_models/**\n[MiniMax-H3-FL2VA-Pruned-Q5_K_M.gguf](https://huggingface.co/Abiray/MiniMax-H3-Pruned-GGUF/resolve/main/MiniMax-H3-FL2VA-Pruned-Q5_K_M.gguf)\n\n**loras/**\n[H3-PK-Parasyte-Turbo.safetensors](https://huggingface.co/Plaguekind/H3-Lora/resolve/main/H3-PK-Parasyte-Turbo.safetensors)\n\n**text_encoders/**\n[qwen3vl-32B-MiniMax-H3-Q4_K_M.gguf](https://huggingface.co/realrebelai/MiniMax-H3_GGUFs/resolve/main/qwen3vl-32B-MiniMax-H3-Q4_K_M.gguf)\n\n**vae/**\n[minimax_h3_video_vae_fp16.safetensors](https://huggingface.co/Comfy-Org/MiniMax-H3/resolve/main/vae/minimax_h3_video_vae_fp16.safetensors)\n[minimax_h3_audio_vae_fp32.safetensors](https://huggingface.co/Comfy-Org/MiniMax-H3/resolve/main/vae/minimax_h3_audio_vae_fp32.safetensors)\n\nSelect your actual filenames in each loader if they live in subfolders.\nUse GGUF for the text encoder, not the CUDA-only NVFP4-AWQ file.\n\nStart ComfyUI from its activated venv:\n```\nASFP8_INT8_EXT=1 python main.py --port 8288 \\\n --reserve-vram 10 --cache-none --disable-smart-memory\n```\nThe local test stack is ComfyUI 0.34.0, frontend 1.51.9, torch 2.13.0 on MPS.\nDo not apply old 0.30.0 cherry-pick instructions to this newer installation." ], "color": "#2a4a2a", "bgcolor": "#1e3320" }, { "id": 118, "type": "MarkdownNote", "pos": [ 1420, 2840 ], "size": [ 530, 490 ], "flags": {}, "order": 3, "mode": 0, "inputs": [], "outputs": [], "title": "PROMPTING - read before your first render", "properties": {}, "widgets_values": [ "## Demo prompt and audio\n\nThe PROMPT node contains the kitchen-to-camera demo in prompt_vertical.txt.\nIt uses real paragraphs, one continuous take and explicit dialogue.\n\nThe 15-word line is brisk for five seconds. Use the default as a timing test;\ncheck whether the entire line is spoken before extending duration, which costs memory.\nHistorical car-scene benchmarks used a different prompt and are not this demo's timings.\n\nFor your own clips, describe subject, scene, camera, sound and any dialogue.\nKeep spoken words explicit. Avoid numbered shots for a continuous take.\n\nDuration rounds up to H3's frame grid: 5 seconds produces 124 frames (5.17s at 24 fps).\nTwo-step smoke tests check execution only; they cannot establish speech quality." ], "color": "#3a2a4a", "bgcolor": "#2a1e33" }, { "id": 11, "type": "VAELoader", "pos": [ 1090, 635 ], "size": [ 360, 100 ], "flags": {}, "order": 4, "mode": 0, "inputs": [ { "localized_name": "vae_name", "name": "vae_name", "type": "COMBO", "widget": { "name": "vae_name" }, "link": null } ], "outputs": [ { "localized_name": "VAE", "name": "VAE", "type": "VAE", "links": [ 8, 190, 250, 275 ] } ], "properties": { "Node name for S&R": "VAELoader", "models": [ { "name": "minimax_h3_video_vae_fp16.safetensors", "url": "https://huggingface.co/Comfy-Org/MiniMax-H3/resolve/main/vae/minimax_h3_video_vae_fp16.safetensors", "directory": "vae" } ] }, "widgets_values": [ "minimax_h3_video_vae_fp16.safetensors" ] }, { "id": 24, "type": "VAELoader", "pos": [ 1090, 780 ], "size": [ 360, 100 ], "flags": {}, "order": 5, "mode": 0, "inputs": [ { "localized_name": "vae_name", "name": "vae_name", "type": "COMBO", "widget": { "name": "vae_name" }, "link": null } ], "outputs": [ { "localized_name": "VAE", "name": "VAE", "type": "VAE", "links": [ 23, 279 ] } ], "properties": { "Node name for S&R": "VAELoader", "models": [ { "name": "minimax_h3_audio_vae_fp32.safetensors", "url": "https://huggingface.co/Comfy-Org/MiniMax-H3/resolve/main/vae/minimax_h3_audio_vae_fp32.safetensors", "directory": "vae" } ] }, "widgets_values": [ "minimax_h3_audio_vae_fp32.safetensors" ] }, { "id": 23, "type": "VAEDecodeAudio", "pos": [ 1510, 210 ], "size": [ 360, 100 ], "flags": {}, "order": 26, "mode": 0, "inputs": [ { "localized_name": "samples", "name": "samples", "type": "LATENT", "link": 226 }, { "localized_name": "vae", "name": "vae", "type": "VAE", "link": 23 } ], "outputs": [ { "localized_name": "AUDIO", "name": "AUDIO", "type": "AUDIO", "links": [ 255 ] } ], "properties": { "Node name for S&R": "VAEDecodeAudio" }, "widgets_values": [] }, { "id": 10, "type": "VAEDecode", "pos": [ 1510, 60 ], "size": [ 360, 100 ], "flags": {}, "order": 25, "mode": 0, "inputs": [ { "localized_name": "samples", "name": "samples", "type": "LATENT", "link": 225 }, { "localized_name": "vae", "name": "vae", "type": "VAE", "link": 8 } ], "outputs": [ { "localized_name": "IMAGE", "name": "IMAGE", "type": "IMAGE", "links": [ 254 ] } ], "properties": { "Node name for S&R": "VAEDecode" }, "widgets_values": [] }, { "id": 17, "type": "KSamplerSelect", "pos": [ 1090, 1070 ], "size": [ 360, 90 ], "flags": {}, "order": 6, "mode": 0, "inputs": [ { "localized_name": "sampler_name", "name": "sampler_name", "type": "COMBO", "widget": { "name": "sampler_name" }, "link": null } ], "outputs": [ { "localized_name": "SAMPLER", "name": "SAMPLER", "type": "SAMPLER", "links": [ 16 ] } ], "properties": { "Node name for S&R": "KSamplerSelect" }, "widgets_values": [ "er_sde" ], "title": "Sampler \u2014 Parasyte ER-SDE" }, { "id": 9, "type": "BasicScheduler", "pos": [ 0, 980 ], "size": [ 350, 110 ], "flags": {}, "order": 22, "mode": 0, "inputs": [ { "localized_name": "model", "name": "model", "type": "MODEL", "link": 238 }, { "localized_name": "scheduler", "name": "scheduler", "type": "COMBO", "widget": { "name": "scheduler" }, "link": null }, { "localized_name": "steps", "name": "steps", "type": "INT", "widget": { "name": "steps" }, "link": null }, { "localized_name": "denoise", "name": "denoise", "type": "FLOAT", "widget": { "name": "denoise" }, "link": null } ], "outputs": [ { "localized_name": "SIGMAS", "name": "SIGMAS", "type": "SIGMAS", "links": [ 18 ] } ], "title": "Steps \u2014 Parasyte 8", "properties": { "Node name for S&R": "BasicScheduler" }, "widgets_values": [ "beta57", 8, 1 ] }, { "id": 14, "type": "SamplerCustomAdvanced", "pos": [ 530, 1520 ], "size": [ 510, 110 ], "flags": {}, "order": 24, "mode": 0, "inputs": [ { "localized_name": "noise", "name": "noise", "type": "NOISE", "link": 40 }, { "localized_name": "guider", "name": "guider", "type": "GUIDER", "link": 12 }, { "localized_name": "sampler", "name": "sampler", "type": "SAMPLER", "link": 16 }, { "localized_name": "sigmas", "name": "sigmas", "type": "SIGMAS", "link": 18 }, { "localized_name": "latent_image", "name": "latent_image", "type": "LATENT", "link": 188 } ], "outputs": [ { "localized_name": "output", "name": "output", "type": "LATENT", "links": [ 225, 226, 263 ] }, { "localized_name": "denoised_output", "name": "denoised_output", "type": "LATENT", "links": [] } ], "properties": { "Node name for S&R": "SamplerCustomAdvanced" }, "widgets_values": [] }, { "id": 16, "type": "BasicGuider", "pos": [ 530, 1380 ], "size": [ 510, 90 ], "flags": {}, "order": 23, "mode": 0, "inputs": [ { "localized_name": "model", "name": "model", "type": "MODEL", "link": 239 }, { "localized_name": "conditioning", "name": "conditioning", "type": "CONDITIONING", "link": 253 } ], "outputs": [ { "localized_name": "GUIDER", "name": "GUIDER", "type": "GUIDER", "links": [ 12 ] } ], "properties": { "Node name for S&R": "BasicGuider" }, "widgets_values": [] }, { "id": 6, "type": "UNETLoader", "pos": [ 0, 1380 ], "size": [ 370, 100 ], "flags": {}, "order": 7, "mode": 4, "inputs": [ { "localized_name": "unet_name", "name": "unet_name", "type": "COMBO", "widget": { "name": "unet_name" }, "link": null }, { "localized_name": "weight_dtype", "name": "weight_dtype", "type": "COMBO", "widget": { "name": "weight_dtype" }, "link": null } ], "outputs": [ { "localized_name": "MODEL", "name": "MODEL", "type": "MODEL", "links": [] } ], "title": "Optional int8 base \u2014 Parasyte must be disconnected", "properties": { "Node name for S&R": "UNETLoader", "models": [ { "name": "minimax_h3_fl2va_pruned_int8_convrot.safetensors", "url": "https://huggingface.co/Comfy-Org/MiniMax-H3/resolve/main/diffusion_models/minimax_h3_fl2va_pruned_int8_convrot.safetensors", "directory": "diffusion_models" } ] }, "widgets_values": [ "minimax_h3_fl2va_pruned_int8_convrot.safetensors", "default" ] }, { "id": 13, "type": "CLIPLoaderGGUF", "pos": [ 1090, 490 ], "size": [ 360, 100 ], "flags": {}, "order": 8, "mode": 0, "inputs": [ { "localized_name": "clip_name", "name": "clip_name", "type": "COMBO", "widget": { "name": "clip_name" }, "link": null }, { "localized_name": "type", "name": "type", "type": "COMBO", "widget": { "name": "type" }, "link": null } ], "outputs": [ { "localized_name": "CLIP", "name": "CLIP", "type": "CLIP", "links": [ 189, 274 ] } ], "title": "Text encoder (GGUF, type=minimax)", "properties": { "Node name for S&R": "CLIPLoaderGGUF", "models": [ { "name": "qwen3vl-32B-MiniMax-H3-Q4_K_M.gguf", "url": "https://huggingface.co/realrebelai/MiniMax-H3_GGUFs/resolve/main/qwen3vl-32B-MiniMax-H3-Q4_K_M.gguf", "directory": "text_encoders" } ], "cnr_id": "ComfyUI-GGUF" }, "widgets_values": [ "qwen3vl-32B-MiniMax-H3-Q4_K_M.gguf", "minimax" ] }, { "id": 15, "type": "RandomNoise", "pos": [ 0, 825 ], "size": [ 350, 105 ], "flags": {}, "order": 9, "mode": 0, "inputs": [ { "localized_name": "noise_seed", "name": "noise_seed", "type": "INT", "widget": { "name": "noise_seed" }, "link": null } ], "outputs": [ { "localized_name": "NOISE", "name": "NOISE", "type": "NOISE", "links": [ 40 ] } ], "title": "Seed \u2014 fixed demo; randomize for variants", "properties": { "Node name for S&R": "RandomNoise" }, "widgets_values": [ 77001, "fixed" ] }, { "id": 91, "type": "CreateVideo", "pos": [ 1510, 360 ], "size": [ 360, 100 ], "flags": {}, "order": 30, "mode": 0, "inputs": [ { "localized_name": "images", "name": "images", "type": "IMAGE", "link": 257 }, { "localized_name": "audio", "name": "audio", "shape": 7, "type": "AUDIO", "link": 259 }, { "localized_name": "fps", "name": "fps", "type": "FLOAT", "widget": { "name": "fps" }, "link": null }, { "localized_name": "bit_depth", "name": "bit_depth", "shape": 7, "type": "INT", "widget": { "name": "bit_depth" }, "link": null } ], "outputs": [ { "localized_name": "VIDEO", "name": "VIDEO", "type": "VIDEO", "links": [ 231 ] } ], "properties": { "Node name for S&R": "CreateVideo" }, "widgets_values": [ 24, 8 ] }, { "id": 104, "type": "MiniMaxH3ImageToVideo", "pos": [ 530, 1770 ], "size": [ 510, 440 ], "flags": {}, "order": 19, "mode": 0, "inputs": [ { "localized_name": "clip", "name": "clip", "type": "CLIP", "link": 189 }, { "localized_name": "vae", "name": "vae", "type": "VAE", "link": 190 }, { "localized_name": "first_frame", "name": "first_frame", "shape": 7, "type": "IMAGE", "link": 240 }, { "localized_name": "last_frame", "name": "last_frame", "shape": 7, "type": "IMAGE", "link": 241 }, { "localized_name": "prompt", "name": "prompt", "type": "STRING", "widget": { "name": "prompt" }, "link": 272 }, { "localized_name": "width", "name": "width", "type": "INT", "widget": { "name": "width" }, "link": 232 }, { "localized_name": "height", "name": "height", "type": "INT", "widget": { "name": "height" }, "link": 233 }, { "localized_name": "length", "name": "length", "type": "INT", "widget": { "name": "length" }, "link": 199 } ], "outputs": [ { "localized_name": "positive", "name": "positive", "type": "CONDITIONING", "links": [ 268 ] }, { "localized_name": "LATENT", "name": "LATENT", "type": "LATENT", "links": [ 270 ] } ], "title": "Frame conditioning \u2014 T2V / I2V / first-last", "properties": { "Node name for S&R": "MiniMaxH3ImageToVideo" }, "widgets_values": [ "", 1344, 768, 73 ] }, { "id": 107, "type": "ComfyMathExpression", "pos": [ 530, 1110 ], "size": [ 510, 120 ], "flags": {}, "order": 17, "mode": 0, "inputs": [ { "label": "a", "localized_name": "values.a", "name": "values.a", "type": "FLOAT,INT,BOOLEAN", "link": 205 }, { "label": "b", "localized_name": "values.b", "name": "values.b", "shape": 7, "type": "FLOAT,INT,BOOLEAN", "link": null }, { "localized_name": "expression", "name": "expression", "type": "STRING", "widget": { "name": "expression" }, "link": null } ], "outputs": [ { "localized_name": "FLOAT", "name": "FLOAT", "type": "FLOAT", "links": [] }, { "localized_name": "INT", "name": "INT", "type": "INT", "links": [ 199, 278 ] }, { "localized_name": "BOOL", "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": 111, "type": "PrimitiveFloat", "pos": [ 0, 685 ], "size": [ 350, 90 ], "flags": {}, "order": 10, "mode": 0, "inputs": [ { "localized_name": "value", "name": "value", "type": "FLOAT", "widget": { "name": "value" }, "link": null } ], "outputs": [ { "localized_name": "FLOAT", "name": "FLOAT", "type": "FLOAT", "links": [ 205 ] } ], "title": "Duration \u2014 seconds (rounded to frame grid)", "properties": { "Node name for S&R": "PrimitiveFloat" }, "widgets_values": [ 5 ] }, { "id": 119, "type": "MiniMaxH3SigmaShift", "pos": [ 1090, 925 ], "size": [ 360, 100 ], "flags": {}, "order": 18, "mode": 0, "inputs": [ { "localized_name": "model", "name": "model", "type": "MODEL", "link": 234 }, { "localized_name": "shift_video", "name": "shift_video", "type": "FLOAT", "widget": { "name": "shift_video" }, "link": null }, { "localized_name": "shift_audio", "name": "shift_audio", "type": "FLOAT", "widget": { "name": "shift_audio" }, "link": null } ], "outputs": [ { "localized_name": "MODEL", "name": "MODEL", "type": "MODEL", "links": [ 238, 239 ] } ], "title": "Sigma shift \u2014 Parasyte 12 / 3", "properties": { "Node name for S&R": "MiniMaxH3SigmaShift" }, "widgets_values": [ 12, 3 ] }, { "id": 121, "type": "LoadImage", "pos": [ 530, 745 ], "size": [ 235, 310 ], "flags": {}, "order": 11, "mode": 4, "inputs": [ { "localized_name": "image", "name": "image", "type": "COMBO", "widget": { "name": "image" }, "link": null }, { "localized_name": "choose file to upload", "name": "upload", "type": "IMAGEUPLOAD", "widget": { "name": "upload" }, "link": null } ], "outputs": [ { "localized_name": "IMAGE", "name": "IMAGE", "type": "IMAGE", "links": [ 240 ] }, { "localized_name": "MASK", "name": "MASK", "type": "MASK", "links": [] } ], "title": "First image \u2014 enable for I2V", "properties": { "Node name for S&R": "LoadImage" }, "widgets_values": [ "example.png", "image" ] }, { "id": 122, "type": "LoadImage", "pos": [ 795, 745 ], "size": [ 235, 310 ], "flags": {}, "order": 12, "mode": 4, "inputs": [ { "localized_name": "image", "name": "image", "type": "COMBO", "widget": { "name": "image" }, "link": null }, { "localized_name": "choose file to upload", "name": "upload", "type": "IMAGEUPLOAD", "widget": { "name": "upload" }, "link": null } ], "outputs": [ { "localized_name": "IMAGE", "name": "IMAGE", "type": "IMAGE", "links": [ 241 ] }, { "localized_name": "MASK", "name": "MASK", "type": "MASK", "links": [] } ], "title": "Last image \u2014 also enable for FLF", "properties": { "Node name for S&R": "LoadImage" }, "widgets_values": [ "example.png", "image" ] }, { "id": 123, "type": "PreviewAudio", "pos": [ 1510, 940 ], "size": [ 360, 140 ], "flags": {}, "order": 31, "mode": 0, "inputs": [ { "localized_name": "audio", "name": "audio", "type": "AUDIO", "link": 260 }, { "localized_name": "audioUI", "name": "audioUI", "type": "AUDIO_UI", "widget": { "name": "audioUI" }, "link": null } ], "outputs": [ { "localized_name": "audio", "name": "audio", "type": "AUDIO", "links": [] } ], "title": "Hear the audio", "properties": { "Node name for S&R": "PreviewAudio" }, "widgets_values": [] }, { "id": 124, "type": "ImageScale", "pos": [ 0, 2840 ], "size": [ 360, 150 ], "flags": {}, "order": 29, "mode": 4, "inputs": [ { "localized_name": "image", "name": "image", "type": "IMAGE", "link": 258 }, { "localized_name": "upscale_method", "name": "upscale_method", "type": "COMBO", "widget": { "name": "upscale_method" }, "link": null }, { "localized_name": "width", "name": "width", "type": "INT", "widget": { "name": "width" }, "link": null }, { "localized_name": "height", "name": "height", "type": "INT", "widget": { "name": "height" }, "link": null }, { "localized_name": "crop", "name": "crop", "type": "COMBO", "widget": { "name": "crop" }, "link": null } ], "outputs": [ { "localized_name": "IMAGE", "name": "IMAGE", "type": "IMAGE", "links": [ 244 ] } ], "title": "Optional resize \u2014 pixels only, no new detail", "properties": { "Node name for S&R": "ImageScale" }, "widgets_values": [ "lanczos", 1080, 1920, "disabled" ] }, { "id": 125, "type": "CreateVideo", "pos": [ 0, 3040 ], "size": [ 360, 100 ], "flags": {}, "order": 33, "mode": 4, "inputs": [ { "localized_name": "images", "name": "images", "type": "IMAGE", "link": 244 }, { "localized_name": "audio", "name": "audio", "shape": 7, "type": "AUDIO", "link": 261 }, { "localized_name": "fps", "name": "fps", "type": "FLOAT", "widget": { "name": "fps" }, "link": null }, { "localized_name": "bit_depth", "name": "bit_depth", "shape": 7, "type": "INT", "widget": { "name": "bit_depth" }, "link": null } ], "outputs": [ { "localized_name": "VIDEO", "name": "VIDEO", "type": "VIDEO", "links": [ 246 ] } ], "title": "[EXPORT] mux 1080p", "properties": { "Node name for S&R": "CreateVideo" }, "widgets_values": [ 24, 8 ] }, { "id": 126, "type": "SaveVideo", "pos": [ 0, 3190 ], "size": [ 360, 300 ], "flags": {}, "order": 35, "mode": 4, "inputs": [ { "localized_name": "video", "name": "video", "type": "VIDEO", "link": 246 }, { "localized_name": "filename_prefix", "name": "filename_prefix", "type": "STRING", "widget": { "name": "filename_prefix" }, "link": null }, { "localized_name": "format", "name": "format", "type": "COMBO", "widget": { "name": "format" }, "link": null }, { "localized_name": "codec", "name": "codec", "type": "COMFY_DYNAMICCOMBO_V3", "widget": { "name": "codec" }, "link": null } ], "outputs": [ { "localized_name": "video", "name": "video", "type": "VIDEO", "links": [] } ], "title": "[EXPORT] save 1080x1920", "properties": { "Node name for S&R": "SaveVideo" }, "widgets_values": [ "video/MacMax_1080", "auto", "auto" ] }, { "id": 127, "type": "SaveAudio", "pos": [ 410, 2840 ], "size": [ 360, 120 ], "flags": {}, "order": 32, "mode": 4, "inputs": [ { "localized_name": "audio", "name": "audio", "type": "AUDIO", "link": 262 }, { "localized_name": "filename_prefix", "name": "filename_prefix", "type": "STRING", "widget": { "name": "filename_prefix" }, "link": null }, { "localized_name": "audioUI", "name": "audioUI", "type": "AUDIO_UI", "widget": { "name": "audioUI" }, "link": null } ], "outputs": [ { "localized_name": "audio", "name": "audio", "type": "AUDIO", "links": [] } ], "title": "[EXPORT] audio stem only", "properties": { "Node name for S&R": "SaveAudio" }, "widgets_values": [ "audio/MacMax" ] }, { "id": 129, "type": "MiniMaxH3MotionContext", "pos": [ 1090, 1525 ], "size": [ 360, 240 ], "flags": {}, "order": 21, "mode": 4, "inputs": [ { "localized_name": "conditioning", "name": "conditioning", "type": "CONDITIONING", "link": 249 }, { "localized_name": "vae", "name": "vae", "type": "VAE", "link": 250 }, { "localized_name": "latent", "name": "latent", "type": "LATENT", "link": 251 }, { "localized_name": "context_frames", "name": "context_frames", "shape": 7, "type": "IMAGE", "link": null }, { "localized_name": "context_latent", "name": "context_latent", "shape": 7, "type": "LATENT", "link": 252 }, { "localized_name": "audio_vae", "name": "audio_vae", "shape": 7, "type": "VAE", "link": null }, { "localized_name": "context_audio", "name": "context_audio", "shape": 7, "type": "AUDIO", "link": null }, { "localized_name": "context_length", "name": "context_length", "type": "COMBO", "widget": { "name": "context_length" }, "link": null }, { "localized_name": "audio_context_length", "name": "audio_context_length", "type": "INT", "widget": { "name": "audio_context_length" }, "link": null } ], "outputs": [ { "localized_name": "conditioning", "name": "conditioning", "type": "CONDITIONING", "links": [ 253 ] }, { "localized_name": "trim_frames", "name": "trim_frames", "type": "INT", "links": [ 256 ] } ], "properties": { "Node name for S&R": "MiniMaxH3MotionContext" }, "widgets_values": [ "22", 22 ] }, { "id": 130, "type": "MiniMaxH3MotionContextTrim", "pos": [ 1090, 1815 ], "size": [ 360, 155 ], "flags": {}, "order": 28, "mode": 4, "inputs": [ { "localized_name": "images", "name": "images", "type": "IMAGE", "link": 254 }, { "localized_name": "audio", "name": "audio", "shape": 7, "type": "AUDIO", "link": 255 }, { "localized_name": "trim_frames", "name": "trim_frames", "type": "INT", "widget": { "name": "trim_frames" }, "link": 256 }, { "localized_name": "fps", "name": "fps", "shape": 7, "type": "FLOAT", "widget": { "name": "fps" }, "link": null }, { "localized_name": "match_tail", "name": "match_tail", "shape": 7, "type": "BOOLEAN", "widget": { "name": "match_tail" }, "link": null } ], "outputs": [ { "localized_name": "images", "name": "images", "type": "IMAGE", "links": [ 257, 258 ] }, { "localized_name": "audio", "name": "audio", "type": "AUDIO", "links": [ 259, 260, 261, 262 ] } ], "properties": { "Node name for S&R": "MiniMaxH3MotionContextTrim" }, "widgets_values": [ 0, 24, true ] }, { "id": 131, "type": "MiniMaxH3MotionContextSaveLatent", "pos": [ 1090, 2020 ], "size": [ 360, 100 ], "flags": {}, "order": 27, "mode": 4, "inputs": [ { "localized_name": "latent", "name": "latent", "type": "LATENT", "link": 263 }, { "localized_name": "filename_prefix", "name": "filename_prefix", "type": "STRING", "widget": { "name": "filename_prefix" }, "link": null }, { "localized_name": "clip_index", "name": "clip_index", "type": "INT", "widget": { "name": "clip_index" }, "link": null } ], "outputs": [ { "localized_name": "latent_path", "name": "latent_path", "type": "STRING", "links": [] } ], "properties": { "Node name for S&R": "MiniMaxH3MotionContextSaveLatent" }, "widgets_values": [ "h3_context/mychain/clip", 1 ], "title": "Save THIS clip for continuation" }, { "id": 132, "type": "MiniMaxH3MotionContextLoadLatent", "pos": [ 1090, 1380 ], "size": [ 360, 95 ], "flags": {}, "order": 13, "mode": 4, "inputs": [ { "localized_name": "latent_path", "name": "latent_path", "type": "STRING", "widget": { "name": "latent_path" }, "link": null }, { "localized_name": "clip_index", "name": "clip_index", "type": "INT", "widget": { "name": "clip_index" }, "link": null } ], "outputs": [ { "localized_name": "LATENT", "name": "LATENT", "type": "LATENT", "links": [ 252 ] } ], "properties": { "Node name for S&R": "MiniMaxH3MotionContextLoadLatent" }, "widgets_values": [ "h3_context/mychain", 1 ], "title": "Continue FROM clip" }, { "id": 133, "type": "ClipProjLoader", "pos": [ 1510, 1380 ], "size": [ 360, 210 ], "flags": {}, "order": 14, "mode": 4, "inputs": [ { "localized_name": "clip_name", "name": "clip_name", "type": "COMBO", "widget": { "name": "clip_name" }, "link": null }, { "localized_name": "type", "name": "type", "type": "COMBO", "widget": { "name": "type" }, "link": null }, { "localized_name": "projection", "name": "projection", "type": "COMBO", "widget": { "name": "projection" }, "link": null }, { "localized_name": "device", "name": "device", "type": "COMBO", "widget": { "name": "device" }, "link": null }, { "localized_name": "mode", "name": "mode", "type": "COMBO", "widget": { "name": "mode" }, "link": null } ], "outputs": [ { "localized_name": "CLIP", "name": "CLIP", "type": "CLIP", "links": [] } ], "properties": { "Node name for S&R": "ClipProjLoader" }, "widgets_values": [ "qwen3vl_8b_fp8_scaled.safetensors", "minimax", "mmh3-8b-ClipProj-celeb-mlp.safetensors", "cpu", "resident" ], "title": "Optional smaller text encoder \u2014 reconnect CLIP" }, { "id": 134, "type": "MarkdownNote", "pos": [ 1510, 1650 ], "size": [ 440, 640 ], "flags": {}, "order": 15, "mode": 0, "inputs": [], "outputs": [], "properties": {}, "widgets_values": [ "## CHAINING (Motion Context) + LOW-RAM TEXT ENCODER\n\n**Chain clips (motion + audio continue across the cut).** Needs\n[ComfyUI-H3-Motion-Context](https://github.com/NikoDemon80/ComfyUI-H3-Motion-Context).\nAll four nodes here ship BYPASSED. Before rendering a clip you may want to continue,\nun-bypass Save Latent (~7 MB per clip under output/h3_context/) - a clip rendered without\nit cannot be continued later. To CONTINUE a clip: un-bypass Motion Context, Trim and\nLoad Latent as well, set Load Latent clip_index to the clip you continue FROM and Save\nLatent clip_index to the clip this one IS. Bypass both image inputs for continuations,\nand use a new h3_context folder for each separate chain. Then queue. The continuation comes back exactly 22\nframes shorter (the pinned context, trimmed for clean concat). Validated on a 48GB M5:\n5s + 5s join r=0.95, the audio bed continues (small level swell). Resolution must match\nbetween chained clips. Motion Context refuses to run without a context latent wired.\n\n**Low-RAM text encoder (optional).** The bypassed ClipProj Loader swaps the 13.6 GB 32B\nGGUF encoder for Qwen3-VL-8B fp8 (+380 MB projection) ~= 3.7 GB lighter in the historical comparison. Memory savings depend on the configuration. Needs\n[ComfyUI-ClipProj](https://github.com/nicolab28/ComfyUI-ClipProj) + matrices from\nHF NicoLab28/ClipProj-MiniMax-H3. To use: un-bypass and wire its CLIP output in place of\nthe GGUF loader, then bypass the GGUF loader. Select the installed encoder and projection\nfilenames in their dropdowns. Seed-matched A/B vs GGUF: identity, wardrobe and spoken lines held;\nspeed unchanged. Prompt-sensitive edge cases exist (proper nouns) - eyeball outputs." ], "color": "#432", "bgcolor": "#653" }, { "id": 140, "type": "UnetLoaderGGUF", "pos": [ 1090, 60 ], "size": [ 360, 85 ], "flags": {}, "order": 8, "mode": 0, "inputs": [ { "localized_name": "unet_name", "name": "unet_name", "type": "COMBO", "widget": { "name": "unet_name" }, "link": null } ], "outputs": [ { "localized_name": "MODEL", "name": "MODEL", "type": "MODEL", "links": [ 264 ] } ], "properties": { "Node name for S&R": "UnetLoaderGGUF", "models": [ { "name": "MiniMax-H3-FL2VA-Pruned-Q5_K_M.gguf", "directory": "diffusion_models", "url": "https://huggingface.co/Abiray/MiniMax-H3-Pruned-GGUF/resolve/main/MiniMax-H3-FL2VA-Pruned-Q5_K_M.gguf" } ] }, "widgets_values": [ "MiniMax-H3-FL2VA-Pruned-Q5_K_M.gguf" ], "title": "1 \u00b7 GGUF diffusion model" }, { "id": 141, "type": "LoraLoaderModelOnly", "pos": [ 1090, 195 ], "size": [ 360, 100 ], "flags": {}, "order": 9, "mode": 0, "inputs": [ { "localized_name": "model", "name": "model", "type": "MODEL", "link": 264 }, { "localized_name": "lora_name", "name": "lora_name", "type": "COMBO", "widget": { "name": "lora_name" }, "link": null }, { "localized_name": "strength_model", "name": "strength_model", "type": "FLOAT", "widget": { "name": "strength_model" }, "link": null } ], "outputs": [ { "localized_name": "MODEL", "name": "MODEL", "type": "MODEL", "links": [ 265 ] } ], "properties": { "Node name for S&R": "LoraLoaderModelOnly", "models": [ { "name": "H3-PK-Parasyte-Turbo.safetensors", "directory": "loras", "url": "https://huggingface.co/Plaguekind/H3-Lora/resolve/main/H3-PK-Parasyte-Turbo.safetensors" } ] }, "widgets_values": [ "H3-PK-Parasyte-Turbo.safetensors", 1.5 ], "title": "2 \u00b7 Parasyte \u2014 strength 1.5" }, { "id": 142, "type": "MarkdownNote", "pos": [ 0, 1530 ], "size": [ 460, 700 ], "flags": {}, "order": 10, "mode": 0, "inputs": [], "outputs": [], "properties": {}, "widgets_values": [ "## Optional int8 base path (20 steps)\n\nThe default is now Parasyte on GGUF. This older int8 loader is OFF and disconnected.\nOnly use it if you have the matching pruned FL2VA int8 checkpoint installed.\n\n1. Select the int8 checkpoint and enable this loader.\n2. Connect its MODEL output to Sigma shift's model input, replacing the compatibility cable.\n3. Bypass GGUF DiT, Parasyte and compatibility in column 3.\n4. Set 20 steps, Euler / Simple, sigma shift 6 / 3. Do not use EasyCache or Spectrum with turbo LoRAs.\n\n**Return to Parasyte:** reconnect compatibility MODEL \u2192 Sigma shift model;\nenable GGUF, Parasyte and compatibility, bypass this int8 loader.\nRestore 8 steps, ER-SDE / beta57, shift 12 / 3, strength 1.5, compatibility strip.\n\n**GGUF without LoRA:** leave GGUF and compatibility enabled, bypass Parasyte;\nset the base sampling settings above. The strip fix is harmless without a LoRA.\n\nNever feed Parasyte from this int8 loader. The release's turbo path was tested on GGUF.\n\n[Optional int8 checkpoint](https://huggingface.co/Comfy-Org/MiniMax-H3/resolve/main/diffusion_models/minimax_h3_fl2va_pruned_int8_convrot.safetensors)\n[Parasyte model card](https://huggingface.co/Plaguekind/H3-Lora)" ] }, { "id": 143, "type": "H3AdaLNLoRAFix", "pos": [ 1090, 345 ], "size": [ 360, 95 ], "flags": {}, "order": 40, "mode": 0, "inputs": [ { "name": "model", "type": "MODEL", "link": 265 }, { "name": "mode", "type": "COMBO", "widget": { "name": "mode" }, "link": null } ], "outputs": [ { "name": "MODEL", "type": "MODEL", "links": [ 234 ] } ], "properties": { "Node name for S&R": "H3AdaLNLoRAFix" }, "widgets_values": [ "strip" ], "title": "3 \u00b7 Pruned-model compatibility \u2014 strip" }, { "id": 144, "type": "PrimitiveStringMultiline", "title": "PROMPT \u2014 shared by both modes", "pos": [ 530, 60 ], "size": [ 510, 610 ], "flags": {}, "order": 0, "mode": 0, "inputs": [ { "name": "value", "type": "STRING", "link": null, "widget": { "name": "value" } } ], "outputs": [ { "name": "STRING", "type": "STRING", "links": [ 272, 273 ] } ], "properties": { "Node name for S&R": "PrimitiveStringMultiline" }, "widgets_values": [ "Vertical smartphone-style portrait video, 28mm front camera look, soft late-afternoon window light from the left, natural skin texture, slight handheld drift, fine grain, no lettering anywhere in frame.\n\nScene overview: A woman in her late twenties stands in a bright home kitchen talking straight to camera, casual and warm, like a phone recording.\n\nStoryboard:\n[0s-5s] One continuous take: Vertical medium close-up, head and shoulders filling the upper two thirds of the frame, kitchen counter and a window softly out of focus behind her. She looks into the lens and speaks, one small nod, natural blink.\n\nCamera: Static Shot held at chest height, very slight handheld drift.\n\nAudio: her voice, close and clear with a natural American accent, faint room tone and a distant street hum underneath. She says: \"This whole clip came out of a laptop. Picture and sound, one pass, no studio.\"\n\nMusic: none\n\nNo text, subtitles, lettering, signage, logos or watermarks of any kind.\n" ] }, { "id": 145, "type": "PrimitiveBoolean", "title": "USE R2V \u2014 off: frame modes / on: references", "pos": [ 0, 1140 ], "size": [ 480, 90 ], "flags": {}, "order": 0, "mode": 0, "inputs": [ { "name": "value", "type": "BOOLEAN", "link": null, "widget": { "name": "value" } } ], "outputs": [ { "name": "BOOLEAN", "type": "BOOLEAN", "links": [ 266, 267 ] } ], "properties": { "Node name for S&R": "PrimitiveBoolean" }, "widgets_values": [ false ] }, { "id": 146, "type": "ComfySwitchNode", "title": "Mode router \u2014 conditioning", "pos": [ 530, 2250 ], "size": [ 510, 145 ], "flags": {}, "order": 0, "mode": 0, "inputs": [ { "name": "switch", "type": "BOOLEAN", "link": 266, "widget": { "name": "switch" } }, { "name": "on_false", "type": "CONDITIONING", "link": 268 }, { "name": "on_true", "type": "CONDITIONING", "link": 269 } ], "outputs": [ { "name": "CONDITIONING", "type": "CONDITIONING", "links": [ 249 ] } ], "properties": { "Node name for S&R": "ComfySwitchNode" }, "widgets_values": [ false ] }, { "id": 147, "type": "ComfySwitchNode", "title": "Mode router \u2014 latent", "pos": [ 530, 2430 ], "size": [ 510, 145 ], "flags": {}, "order": 0, "mode": 0, "inputs": [ { "name": "switch", "type": "BOOLEAN", "link": 267, "widget": { "name": "switch" } }, { "name": "on_false", "type": "LATENT", "link": 270 }, { "name": "on_true", "type": "LATENT", "link": 271 } ], "outputs": [ { "name": "LATENT", "type": "LATENT", "links": [ 188, 251 ] } ], "properties": { "Node name for S&R": "ComfySwitchNode" }, "widgets_values": [ false ] }, { "id": 148, "type": "MiniMaxH3ReferenceToVideo", "pos": [ 2020, 60 ], "size": [ 510, 480 ], "flags": {}, "order": 16, "mode": 0, "inputs": [ { "name": "clip", "type": "CLIP", "link": 274 }, { "name": "vae", "type": "VAE", "link": 275 }, { "name": "audio_vae", "type": "VAE", "link": 279 }, { "label": "ref_image_0", "name": "ref_images.ref_image_0", "shape": 7, "type": "IMAGE", "link": 280 }, { "label": "ref_image_1", "name": "ref_images.ref_image_1", "shape": 7, "type": "IMAGE", "link": 281 }, { "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": 283 }, { "label": "ref_video_audio_0", "name": "ref_video_audios.ref_video_audio_0", "shape": 7, "type": "AUDIO", "link": 284 }, { "label": "ref_audio_0", "name": "ref_audios.ref_audio_0", "shape": 7, "type": "AUDIO", "link": 285 }, { "name": "prompt", "type": "STRING", "widget": { "name": "prompt" }, "link": 273 }, { "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": 278 } ], "outputs": [ { "name": "positive", "type": "CONDITIONING", "links": [ 269 ] }, { "name": "LATENT", "type": "LATENT", "links": [ 271 ] } ], "properties": { "Node name for S&R": "MiniMaxH3ReferenceToVideo" }, "widgets_values": [ "", 352, 608, 124, "match" ], "title": "R2V \u2014 reference conditioning" }, { "id": 149, "type": "LoadImage", "pos": [ 2020, 600 ], "size": [ 235, 310 ], "flags": {}, "order": 11, "mode": 4, "inputs": [ { "localized_name": "image", "name": "image", "type": "COMBO", "widget": { "name": "image" }, "link": null }, { "localized_name": "choose file to upload", "name": "upload", "type": "IMAGEUPLOAD", "widget": { "name": "upload" }, "link": null } ], "outputs": [ { "localized_name": "IMAGE", "name": "IMAGE", "type": "IMAGE", "links": [ 280 ] }, { "localized_name": "MASK", "name": "MASK", "type": "MASK", "links": [] } ], "title": "Reference image 1 \u2014 enable after choosing a file", "properties": { "Node name for S&R": "LoadImage" }, "widgets_values": [ "example.png", "image" ] }, { "id": 150, "type": "LoadImage", "pos": [ 2290, 600 ], "size": [ 235, 310 ], "flags": {}, "order": 11, "mode": 4, "inputs": [ { "localized_name": "image", "name": "image", "type": "COMBO", "widget": { "name": "image" }, "link": null }, { "localized_name": "choose file to upload", "name": "upload", "type": "IMAGEUPLOAD", "widget": { "name": "upload" }, "link": null } ], "outputs": [ { "localized_name": "IMAGE", "name": "IMAGE", "type": "IMAGE", "links": [ 281 ] }, { "localized_name": "MASK", "name": "MASK", "type": "MASK", "links": [] } ], "title": "Reference image 2 \u2014 optional", "properties": { "Node name for S&R": "LoadImage" }, "widgets_values": [ "example.png", "image" ] }, { "id": 151, "type": "LoadVideo", "title": "Reference video \u2014 24 fps; choose file then enable", "pos": [ 2020, 1000 ], "size": [ 510, 420 ], "flags": {}, "order": 0, "mode": 4, "inputs": [ { "name": "file", "type": "COMBO", "link": null, "widget": { "name": "file" } } ], "outputs": [ { "name": "VIDEO", "type": "VIDEO", "links": [ 282 ] } ], "properties": { "Node name for S&R": "LoadVideo" }, "widgets_values": [ "" ] }, { "id": 152, "type": "GetVideoComponents", "title": "Reference video frames + soundtrack", "pos": [ 2020, 1480 ], "size": [ 510, 130 ], "flags": {}, "order": 0, "mode": 4, "inputs": [ { "name": "video", "type": "VIDEO", "link": 282 } ], "outputs": [ { "name": "IMAGE", "type": "IMAGE", "links": [ 283 ] }, { "name": "AUDIO", "type": "AUDIO", "links": [ 284 ] }, { "name": "FLOAT", "type": "FLOAT", "links": [] } ], "properties": { "Node name for S&R": "GetVideoComponents" }, "widgets_values": [] }, { "id": 153, "type": "LoadAudio", "title": "Standalone reference audio \u2014 optional", "pos": [ 2020, 1670 ], "size": [ 510, 180 ], "flags": {}, "order": 0, "mode": 4, "inputs": [ { "name": "audio", "type": "COMBO", "link": null, "widget": { "name": "audio" } } ], "outputs": [ { "name": "AUDIO", "type": "AUDIO", "links": [ 285 ] } ], "properties": { "Node name for S&R": "LoadAudio" }, "widgets_values": [ "" ] }, { "id": 154, "type": "MarkdownNote", "title": "R2V \u2014 quick guide", "pos": [ 2020, 1940 ], "size": [ 510, 610 ], "flags": {}, "order": 0, "mode": 0, "inputs": [], "outputs": [], "properties": { "Node name for S&R": "MarkdownNote" }, "widgets_values": [ "## Reference mode\n\nTurn USE R2V on. Choose your files, then enable only the reference loaders you need. For video, enable both Load Video and Video Components. Use a 24 fps source.\n\nDescribe references in the shared prompt as , ,