{
 "2115": {
  "inputs": {
   "aspect_ratio": "16:9 (Widescreen)",
   "megapixels": 0.9,
   "multiple": 32
  },
  "class_type": "ResolutionSelector",
  "_meta": {
   "title": "Resolution Selector (Size)"
  }
 },
 "2119": {
  "inputs": {
   "vae_name": "minimax_h3_video_vae_fp16.safetensors"
  },
  "class_type": "VAELoader",
  "_meta": {
   "title": "Load VAE"
  }
 },
 "2120": {
  "inputs": {
   "vae_name": "minimax_h3_audio_vae_fp32.safetensors"
  },
  "class_type": "VAELoader",
  "_meta": {
   "title": "Load VAE"
  }
 },
 "2121": {
  "inputs": {
   "samples": [
    "2125",
    0
   ],
   "vae": [
    "2120",
    0
   ]
  },
  "class_type": "VAEDecodeAudio",
  "_meta": {
   "title": "VAE Decode Audio"
  }
 },
 "2122": {
  "inputs": {
   "samples": [
    "2125",
    0
   ],
   "vae": [
    "2119",
    0
   ]
  },
  "class_type": "VAEDecode",
  "_meta": {
   "title": "VAE Decode"
  }
 },
 "2123": {
  "inputs": {
   "sampler_name": "res_multistep"
  },
  "class_type": "KSamplerSelect",
  "_meta": {
   "title": "KSamplerSelect"
  }
 },
 "2124": {
  "inputs": {
   "scheduler": "simple",
   "steps": 20,
   "denoise": 1,
   "model": [
    "2127",
    0
   ]
  },
  "class_type": "BasicScheduler",
  "_meta": {
   "title": "BasicScheduler"
  }
 },
 "2125": {
  "inputs": {
   "noise": [
    "2129",
    0
   ],
   "guider": [
    "2126",
    0
   ],
   "sampler": [
    "2123",
    0
   ],
   "sigmas": [
    "2124",
    0
   ],
   "latent_image": [
    "2136",
    1
   ]
  },
  "class_type": "SamplerCustomAdvanced",
  "_meta": {
   "title": "SamplerCustomAdvanced"
  }
 },
 "2126": {
  "inputs": {
   "model": [
    "2127",
    0
   ],
   "conditioning": [
    "2136",
    0
   ]
  },
  "class_type": "BasicGuider",
  "_meta": {
   "title": "Basic Guider"
  }
 },
 "2127": {
  "inputs": {
   "unet_name": "minimax_h3_ref2va_pruned_int8_convrot.safetensors",
   "weight_dtype": "default"
  },
  "class_type": "UNETLoader",
  "_meta": {
   "title": "Load Diffusion Model"
  }
 },
 "2128": {
  "inputs": {
   "clip_name": "qwen3vl_32b_minimax_h3_nvfp4_awq.safetensors",
   "type": "minimax",
   "device": "default"
  },
  "class_type": "CLIPLoader",
  "_meta": {
   "title": "Load CLIP"
  }
 },
 "2129": {
  "inputs": {
   "noise_seed": 304792529092339
  },
  "class_type": "RandomNoise",
  "_meta": {
   "title": "RandomNoise"
  }
 },
 "2131": {
  "inputs": {
   "expression": "max(5, round(a * 24)) + (5 - (max(5, round(a * 24)) % 17)) % 17",
   "values.a": [
    "2132",
    0
   ]
  },
  "class_type": "ComfyMathExpression",
  "_meta": {
   "title": "Math Expression"
  }
 },
 "2132": {
  "inputs": {
   "value": 5
  },
  "class_type": "PrimitiveFloat",
  "_meta": {
   "title": "Float (Duration)"
  }
 },
 "2136": {
  "inputs": {
   "ref_image_size": "match",
   "clip": [
    "2128",
    0
   ],
   "prompt": [
    "1000087",
    0
   ],
   "width": [
    "2115",
    0
   ],
   "height": [
    "2115",
    1
   ],
   "length": [
    "2131",
    1
   ],
   "vae": [
    "2119",
    0
   ],
   "audio_vae": [
    "2120",
    0
   ],
   "ref_images.ref_image_0": [
    "1000089",
    0
   ],
   "ref_images.ref_image_1": [
    "2139",
    0
   ],
   "ref_images.ref_image_2": [
    "1000106",
    0
   ],
   "ref_videos.ref_video_0": [
    "1000079",
    0
   ],
   "ref_video_audios.ref_video_audio_0": [
    "1000079",
    2
   ]
  },
  "class_type": "MiniMaxH3ReferenceToVideo",
  "_meta": {
   "title": "MiniMax H3 Reference to Video"
  }
 },
 "2139": {
  "inputs": {
   "image": "7d9f5682bf0b8c652b9ad319a02a71db7617f11c2eae514c2dde357f880838d0.png"
  },
  "class_type": "LoadImage",
  "_meta": {
   "title": "(OPTIONAL) CHARACTER REFERENCE"
  }
 },
 "2143": {
  "inputs": {
   "prompt": "Task: reference generation.\n\nVideo 1 = the source clip \u2014 preserve its motion, timing, and framing.\nImage_1 = the look reference \u2014 palette, lighting, texture, rendering style only.\nImage_2 = the hero character (identity anchor \u2192 Picture 1). Image 2 = key-art that establishes the environment (cite inside the environment Subject).\nImage_3 = location reference sheet \u2014 visual details about the surrounding environment. \n\nSource content: A woman stands in the middle of a redwood forest as the camera moves around her.\nTarget look: beautiful outdoor forest.\nTarget: ~5s, 16:9.\nAudio: keep the original audio and match lip sync.\n\nWrite the full MiniMax H3 prompt.",
   "model": "anthropic/claude-opus-5",
   "seed": 1997407132,
   "system_prompt": "You are an expert prompt engineer for MiniMax H3, a reference-to-video model with a strict full-reference format. You take a source VIDEO plus a new CHARACTER reference (and optional look/location references) and write ONE MiniMax H3 prompt that replaces the person in the video with the new character while keeping EVERYTHING else -- camera, motion, timing, framing, and the original audio -- exactly as in the source.\n\nOUTPUT RULES\n- Output ONLY the prompt: six sections, each label on its own line, in this exact order: subject_definitions, summary, retention_analysis, detailed_description, overall_soundscape, non_diegetic_music.\n- No preamble, no explanation, no markdown fences, no extra headings.\n- English only, except literal dialogue/lyrics/on-screen text.\n- Use N/A only for a section that truly does not apply; never omit a section.\n- Every label (<Subject N>, <Picture N>, <Video N>, <Audio N>) is introduced in subject_definitions only; never invent a new label later.\n\nLABELS\n- <Video 1> = the source clip being edited.\n- <Audio 1> = the complete original audio track of <Video 1> (all dialogue, voices, words, timing, ambience).\n- <Subject 1> = the new character identity (from the character reference) that replaces the person in <Video 1>; keep identity-critical details explicit (build, hair, face, wardrobe, distinguishing marks).\n- <Subject 2> = the motion, camera and timing of <Video 1> that must be preserved (its definition cites <Video 1>).\n- <Subject 3> = (optional) target look/environment from a look/location reference -- appearance only.\n- <Picture N> only if an image is a literal first/last/keyframe anchor; otherwise cite the image inside a <Subject>.\n\nCAMERA / MOTION (critical)\n- <Video 1>'s camera movement, trajectory, framing, focal length, blocking and shot timing are LOCKED and reproduced frame-for-frame. Never reinterpret, simplify, invent, add, or drift the camera. Only the character's identity changes; their position, motion and the camera are unchanged.\n\nAUDIO (critical)\n- <Audio 1> is ALWAYS reused, never regenerated. The summary task type MUST include [audio reuse].\n- Never invent, translate, dub, resynthesize, add, or describe new speech, dialogue, voices, singing, chanting, or narration anywhere. Any moving mouth is lip-syncing to <Audio 1>, nothing else.\n\nSECTIONS\n1) subject_definitions -- one line per label: what it denotes, its role, exact features to follow.\n2) summary -- one short paragraph beginning with the task type [video editing] + [audio reuse] (character replacement in place). Include duration/aspect if given.\n3) retention_analysis -- one line per label:\n   - <Video 1> and <Subject 2> (motion/camera/timing/framing): fully_preserved -- reproduced frame-for-frame.\n   - <Audio 1>: fully_preserved -- the original audio track is reused verbatim and the character's mouth stays lip-synced to it; no words, language, voice or timing change.\n   - <Subject 1> (new identity): attribute_transfer -- the new character replaces the original person; ONLY identity changes.\n   - <Subject 3> look (if used): attribute_transfer -- ONLY colour/lighting/texture/style transfer; its own people/props/location are NOT used.\n4) detailed_description -- main body in playback order, ~300-450 words. Open with 1-2 sentences of overall look BEFORE [Shot 1]. [Shot 1] has no timestamp; later shots take one like \"[Shot 2] At 00:09.000\". Follow the source's exact beats and camera; insert labels at first appearance. Cover composition, appearance, position, environment, lighting, action, and the camera move exactly as it happens in the source. Assert limbs and anatomy stay whole and attached and the face stays consistent. The mouth lip-syncs to <Audio 1>. No plot synopsis.\n5) overall_soundscape -- \"Reuse <Audio 1> unchanged: the original dialogue, voices and ambience. Generate no new speech or sound.\"\n6) non_diegetic_music -- N/A, or \"as present in <Audio 1>, reused unchanged.\"\n\nFaithfully reproducing the source's camera, timing and audio always beats new spectacle.",
   "model.reasoning_effort": "off",
   "model.images.image_1": [
    "1000089",
    0
   ],
   "model.images.image_2": [
    "2139",
    0
   ],
   "model.images.image_3": [
    "1000106",
    0
   ]
  },
  "class_type": "OpenRouterLLMNode",
  "_meta": {
   "title": "CHARACTER SWAP PROMPT GENERATOR"
  }
 },
 "2185": {
  "inputs": {
   "video_info": [
    "1000079",
    3
   ]
  },
  "class_type": "VHS_VideoInfo",
  "_meta": {
   "title": "Video Info \ud83c\udfa5\ud83c\udd65\ud83c\udd57\ud83c\udd62"
  }
 },
 "2190": {
  "inputs": {
   "batch_index": 0,
   "length": 1,
   "image": [
    "1000079",
    0
   ]
  },
  "class_type": "ImageFromBatch",
  "_meta": {
   "title": "Get Image from Batch"
  }
 },
 "2192": {
  "inputs": {
   "prompt": "Transform this into a beautiful, cinematic outdoor film still. Keep the man EXACTLY as he is \u2014 identical face, stubble, hairstyle, expression, head turn, body pose, and his dark jacket over a black tee. Completely replace the grey motion-capture studio: place him standing on the soft floor of a majestic coastal redwood forest on a bright sunny day \u2014 enormous ancient redwood trunks with deep reddish-brown bark rising all around and towering out of frame, a lush understory of green ferns and sorrel, a carpet of fallen needles, distant trees fading into soft green depth behind him. No dabbled lighting on the person.\n\nLight it with warm, glorious natural sunlight: strong golden sunbeams and god-rays slanting down through the high canopy from camera-left, casting light and gentle shadows across his face and shoulder, a soft warm rim highlight on his hair, luminous atmospheric haze and floating dust motes catching the shafts of light, cool green ambient bounce filling the shadows. Warm, sun-drenched color grade with rich greens and reddish bark tones, natural contrast, shallow depth of field with soft bokeh in the background foliage, 35mm cinematic look, fine film grain, razor-sharp detailed eyes, photorealistic skin. Serene, awe-struck, epic nature-documentary-meets-cinema mood.",
   "model": "Nano Banana 2 (Gemini 3.1 Flash Image)",
   "seed": 661475353532047,
   "response_modalities": "IMAGE",
   "system_prompt": "You are an expert image-generation engine. You must ALWAYS produce an image.\nInterpret all user input\u2014regardless of format, intent, or abstraction\u2014as literal visual directives for image composition.\nIf a prompt is conversational or lacks specific visual details, you must creatively invent a concrete visual scenario that depicts the concept.\nPrioritize generating the visual representation above any text, formatting, or conversational requests.",
   "temperature": 1,
   "top_p": 0.95,
   "model.aspect_ratio": "auto",
   "model.resolution": "2K",
   "model.thinking_level": "MINIMAL",
   "model.images.image_1": [
    "2190",
    0
   ]
  },
  "class_type": "GeminiNanoBanana2V2",
  "_meta": {
   "title": "Nano Banana 2.1"
  }
 },
 "2194": {
  "inputs": {
   "prompt": "Task: restyle.\n\nVideo_1 = the source clip \u2014 preserve its motion, timing, framing and subjects.\nImage_1 = the look reference \u2014 palette, lighting, texture, rendering style only.\nImage_2 = location reference sheet \u2014 visual details about the surrounding environment. \n\nSource content: A man stands in the middle of a redwood forest as the camera moves around him.\nTarget look: beautiful outdoor forest.\nDuration / aspect: 5s 16:9\nAudio: keep the original audio and match lip sync.\n\nWrite the full MiniMax H3 prompt.",
   "model": "anthropic/claude-opus-5",
   "seed": 178396087,
   "system_prompt": "You are a prompt engineer for MiniMax H3, a reference-to-video model with a strict full-reference format. You convert a brief plus a source VIDEO (video_1) and a KEYART/look image into ONE MiniMax H3 prompt that restyles the video to match the keyart while keeping the source's camera, motion, timing, subjects AND original audio unchanged.\n\nSCOPE\n- The video supplies structure: motion, timing, framing, blocking, camera move, and the identity of whoever/whatever is in it.\n- The keyart supplies look ONLY: palette, lighting, contrast, texture, grade, rendering style.\n- Never swap, replace or re-cast the people or objects in the video. There is no character reference in this task. If the brief asks for a character swap, ignore that and restyle only.\n\nOUTPUT RULES\n- Output ONLY the prompt: six sections, each label on its own line, in this exact order: subject_definitions, summary, retention_analysis, detailed_description, overall_soundscape, non_diegetic_music.\n- No preamble, no explanation, no markdown fences, no extra headings.\n- English only, except literal dialogue/lyrics/on-screen text.\n- Use N/A only for a section that truly does not apply; never omit a section.\n- Every label is introduced in subject_definitions only; never invent a label later.\n\nLABELS -- exactly these four\n- <Video 1> = the source clip being restyled.\n- <Audio 1> = the complete original audio track of <Video 1> (dialogue, voices, words, timing, ambience).\n- <Subject 1> = the content of <Video 1> that must survive: its subjects, their appearance/identity, their motion, the camera move, and the shot timing.\n- <Subject 2> = the target look, defined by citing the keyart image (appearance only).\n- Do not use <Picture N>. The keyart is a style source, not a frame anchor.\n\nCAMERA / MOTION (critical)\n- <Video 1>'s camera movement, trajectory, framing, focal length and shot timing are LOCKED and reproduced frame-for-frame. Never reinterpret, simplify, invent, add or drift the camera. Describe the camera exactly as it moves in the source and never add a move the source lacks.\n\nAUDIO (critical)\n- <Audio 1> is ALWAYS reused, never regenerated. The summary task type MUST include [audio reuse].\n- Never invent, translate, dub, resynthesize, add or describe new speech, dialogue, voices, singing or narration. Any moving mouth is lip-syncing to <Audio 1>, nothing else.\n\nSECTIONS\n1) subject_definitions -- one line per label. For <Subject 1>, name identity-critical details to preserve (build, hair, face, wardrobe, marks) and state its camera move and timing are preserved. For <Subject 2>, describe the look in concrete photographic terms (palette, key/fill, contrast ratio, texture, grain/finish, rendering style) and state only the look transfers. For <Audio 1>, \"the original audio track, reused unchanged.\"\n2) summary -- one short paragraph beginning [video editing] + [audio reuse]. State the restyle in one sentence; include duration and aspect if given.\n3) retention_analysis --\n   - <Video 1> and <Subject 1>: fully_preserved -- motion, camera, timing, framing and subject identity reproduced unchanged, frame-for-frame.\n   - <Audio 1>: fully_preserved -- original audio reused verbatim; lip-sync locked to it.\n   - <Subject 2>: attribute_transfer -- ONLY colour, lighting, texture and rendering style transfer; the keyart's own characters, props and location are NOT used.\n4) detailed_description -- main body in playback order, ~250-400 words. Open with 1-2 sentences establishing the restyled look BEFORE [Shot 1]. [Shot 1] takes no timestamp; later shots take one like \"[Shot 2] At 00:09.000\". Follow the source clip's actual beats and camera wearing the new look. Cover composition, appearance, position, environment, lighting, action and the camera move exactly as in the source. Assert limbs and anatomy stay whole and faces stay consistent. The mouth lip-syncs to <Audio 1>. No plot synopsis.\n5) overall_soundscape -- \"Reuse <Audio 1> unchanged: the original dialogue, voices and ambience. Generate no new speech or sound.\"\n6) non_diegetic_music -- N/A, or \"as present in <Audio 1>, reused unchanged.\"\n\nCONFLICTS\n- Look conflicts (colour, lighting, grade, texture): the keyart wins.\n- Structure conflicts (what happens, when, camera path, who is on screen): the video wins.\n- The restyle never changes the action, shot count, timing, camera, or audio.",
   "model.reasoning_effort": "off",
   "model.images.image_1": [
    "1000089",
    0
   ],
   "model.images.image_2": [
    "1000106",
    0
   ]
  },
  "class_type": "OpenRouterLLMNode",
  "_meta": {
   "title": "VIDEO RESTYLE PROMPT GENERATOR"
  }
 },
 "1000041": {
  "inputs": {
   "prompt": "Change the actor in image_1 to look like the person in image_2.",
   "model": "Nano Banana 2 (Gemini 3.1 Flash Image)",
   "seed": 211695258704993,
   "response_modalities": "IMAGE",
   "system_prompt": "You are an expert image-generation engine. You must ALWAYS produce an image.\nInterpret all user input\u2014regardless of format, intent, or abstraction\u2014as literal visual directives for image composition.\nIf a prompt is conversational or lacks specific visual details, you must creatively invent a concrete visual scenario that depicts the concept.\nPrioritize generating the visual representation above any text, formatting, or conversational requests.",
   "temperature": 1,
   "top_p": 0.95,
   "model.aspect_ratio": "auto",
   "model.resolution": "2K",
   "model.thinking_level": "MINIMAL",
   "model.images.image_1": [
    "1000047",
    0
   ]
  },
  "class_type": "GeminiNanoBanana2V2",
  "_meta": {
   "title": "Nano Banana 2.1"
  }
 },
 "1000046": {
  "inputs": {
   "filename_prefix": "ComfyUI",
   "images": [
    "1000041",
    0
   ]
  },
  "class_type": "SaveImage",
  "_meta": {
   "title": "Save Image"
  }
 },
 "1000047": {
  "inputs": {
   "filename_prefix": "ComfyUI",
   "images": [
    "2192",
    0
   ]
  },
  "class_type": "SaveImage",
  "_meta": {
   "title": "Save Image"
  }
 },
 "1000079": {
  "inputs": {
   "video": "3384c7940ee158a7cfb65c558b4a7ab24e379f41ccfcf8aaa99d30c128dc4a75.mp4",
   "force_rate": 0,
   "custom_width": 0,
   "custom_height": 0,
   "frame_load_cap": 0,
   "skip_first_frames": 0,
   "select_every_nth": 1,
   "format": "AnimateDiff"
  },
  "class_type": "VHS_LoadVideo",
  "_meta": {
   "title": "SOURCE VIDEO"
  }
 },
 "1000087": {
  "inputs": {
   "condition": [
    "1000091",
    0
   ],
   "if_true": [
    "2194",
    0
   ],
   "if_false": [
    "2143",
    0
   ]
  },
  "class_type": "Basic data handling: IfElse",
  "_meta": {
   "title": "if/else"
  }
 },
 "1000089": {
  "inputs": {
   "condition": [
    "1000091",
    0
   ],
   "if_true": [
    "1000047",
    0
   ],
   "if_false": [
    "1000046",
    0
   ]
  },
  "class_type": "Basic data handling: IfElse",
  "_meta": {
   "title": "if/else"
  }
 },
 "1000091": {
  "inputs": {
   "value": true
  },
  "class_type": "PrimitiveBoolean",
  "_meta": {
   "title": "Key Art Only?"
  }
 },
 "1000104:10": {
  "inputs": {
   "prompt": "make a photorealistic location reference sheet out the environment you see in image_1. The purpose is to use this for location consistency in generated storyboards and videos.",
   "model": "gpt-image-2",
   "n": 1,
   "seed": 345395493,
   "model.size": "auto",
   "model.custom_width": 1024,
   "model.custom_height": 1024,
   "model.background": "auto",
   "model.quality": "low",
   "model.images.image_1": [
    "1000047",
    0
   ]
  },
  "class_type": "OpenAIGPTImageNodeV2",
  "_meta": {
   "title": "OpenAI GPT Image 2.5"
  }
 },
 "1000106": {
  "inputs": {
   "filename_prefix": "ComfyUI",
   "images": [
    "1000104:10",
    0
   ]
  },
  "class_type": "SaveImage",
  "_meta": {
   "title": "Save Image"
  }
 },
 "1000110": {
  "inputs": {
   "audio": "69452d5a3032482b6a664ee80be5b6530077568353d2b861ec2c43e0e929b302.mp3"
  },
  "class_type": "LoadAudio",
  "_meta": {
   "title": "Load Audio"
  }
 },
 "1000111": {
  "inputs": {
   "loop_count": 0,
   "filename_prefix": "video/Minimax_H3_VidRestyle",
   "format": "video/h264-mp4",
   "pingpong": false,
   "save_output": true,
   "images": [
    "2122",
    0
   ],
   "frame_rate": [
    "2185",
    0
   ],
   "audio": [
    "2121",
    0
   ],
   "crf": 19,
   "pix_fmt": "yuv420p",
   "save_metadata": true,
   "trim_to_audio": false
  },
  "class_type": "VHS_VideoCombine",
  "_meta": {
   "title": "Video Combine \ud83c\udfa5\ud83c\udd65\ud83c\udd57\ud83c\udd62"
  }
 },
 "1000112": {
  "inputs": {
   "voice": "Sarah (female, american)"
  },
  "class_type": "ElevenLabsVoiceSelector",
  "_meta": {
   "title": "ElevenLabs Voice Selector"
  }
 },
 "1000113": {
  "inputs": {
   "stability": 0.5,
   "model": "eleven_multilingual_sts_v2",
   "output_format": "mp3_44100_192",
   "seed": 3280698246,
   "remove_background_noise": false,
   "voice": [
    "1000112",
    0
   ],
   "audio": [
    "1000079",
    2
   ],
   "model.speed": 1,
   "model.similarity_boost": 0.75,
   "model.use_speaker_boost": false,
   "model.style": 0
  },
  "class_type": "ElevenLabsSpeechToSpeech",
  "_meta": {
   "title": "ElevenLabs Speech to Speech"
  }
 }
}