Nodes/ComfyUI-H3-Cast/MiniMax H3 Cast to Video
ComfyUI Node

MiniMax H3 Cast to Video

Stop Hand-Typing <Picture> Tags — Let H3 Cast to Video Number Them

By kat3ri·Created about a month ago·Updated 16 days ago· 4
MiniMax H3 Cast to Video
  • clip
  • vae
  • audio_vae
  • cast_1
  • cast_2
  • cast_3
  • scene_asset
  • scene_images
  • positive
  • latent
  • final_prompt
  • report
prompt
width1344
height768
length124
max_views_per_member3
auto_introtrue
scene_description
include_voicestrue
ref_image_sizematch
ref_spacing1.0
ref_strength1.00
ref_decay0.00
ref_ramp0.0
temporal_stretch1.0

If H3CastMember is the save file, H3CastToVideo is the game. It's the compose node for the whole pack: connect up to three saved cast members plus optional scene reference images, write your prompt in plain language - "Maya sits by the window reading" - and it does the grunt work of MiniMax H3's multi-reference pathway for you, including writing the <Picture i> / <Audio j> intro lines.

Why does that matter? H3's native reference node is powerful but raw. You're expected to number every reference slot by hand, budget nine image slots across characters and scene, and keep the intro text and the actual refs in perfect sync. Get one tag wrong and the model quietly binds the wrong person to the wrong slot. This node does that bookkeeping, and it's the difference between a reusable workflow and a spreadsheet.

How it works

Under the hood it wraps the stock MiniMaxH3ReferenceToVideo node - no new conditioning mechanism, so every native knob keeps working. It takes each cast member's saved views in order, fans them into ref_image_1..9, fills ref_audio_1..3 with voices, and builds the intro for you:

<Picture 1>, <Picture 2>: Maya -- red jacket, nervous energy. <Audio 1> is Maya's voice.

Then your prompt just says "Maya". Three members is the max, and the 9 image slots are shared by all members plus scene images - max_views_per_member (default 3) controls the split.

Inputs that matter

  • clip, vae - your H3 CLIP and video VAE, same as the native node.
  • audio_vae - the H3 audio VAE. If any member has a voice and include_voices is on, this is required; the node refuses to run rather than silently dropping audio. Set it or flip include_voices off.
  • prompt - refer to characters by name; the tooltip is explicit that the intro lines are written for you.
  • scene_images + scene_description - extra reference images of the location (room renders, and a batch means one ref slot per frame). Concrete detail in scene_description anchors the background far better than the generic placeholder - think of it like an Image Reference description.
  • width/height/length - defaults 1344×768, 124 frames, the native node's own defaults.
  • max_views_per_member, auto_intro - the slot split and whether intros get written at all.

The ref_* knobs (ref_spacing, ref_strength, ref_decay, ref_ramp, ref_image_size, temporal_stretch) pass straight through to the native node. If your ComfyUI build's H3 nodes predate one of them - temporal_stretch exists on the kat3ri fork but not everywhere - it's dropped and noted in the report instead of throwing.

Outputs

positive (CONDITIONING) and latent (LATENT) wire into BasicGuider / SamplerCustomAdvanced exactly like the native node. Then two freebies: final_prompt is the exact text that got sent (so nothing is a black box - if a character is misbehaving, look here first), and report lists slot usage. Anything dropped - a member's later views crowded out by a scene image, a voice over the 3-clip cap - is listed, not silently ignored.

Why you'd reach for it

Character consistency across a clip is H3's marquee strength, and the community's read on its reference-to-video quality was essentially "reference to video can replace LoRAs for many use-cases." This node makes that repeatable: same cast, same scene pack, any prompt, no tag arithmetic. If you're generating more than one clip with the same people, it's the one you'll actually reach for.

Install

cd ComfyUI/custom_nodes
git clone https://github.com/kat3ri/ComfyUI-H3-Cast
# restart ComfyUI - node appears under "MiniMax H3/cast"

Or search "ComfyUI-H3-Cast" in ComfyUI Manager. No extra Python dependencies, and no API key - everything runs through the native node on your own machine. You do need the H3 weights (a separate download), and remember the model's community license doesn't cover the US, EU, UK or South Korea.

CategoryMiniMax H3/cast

Inputs (22)

NameTypeDefaultDescription
clipCLIP
vaeVAE
promptSTRINGRefer to characters by NAME -- the <Picture i>/<Audio j> intro lines are written for you (see final_prompt output)
widthINT134432–8192
heightINT76832–8192
lengthINT1245–3600
max_views_per_memberINT31–9Views taken per cast member, in saved order. 9 total image slots are shared by all members + scene images.
auto_introBOOLEANtrueWrite the '<Picture 1>, <Picture 2>: Name -- description' intro lines automatically
audio_vaeoptVAE
cast_1optH3_CAST_MEMBER
cast_2optH3_CAST_MEMBER
cast_3optH3_CAST_MEMBER
scene_assetoptH3_SCENE_ASSETA saved location/background from H3 Scene Asset. Combines with scene_images if both are connected.
scene_imagesoptIMAGEExtra reference images of the location/scene (e.g. room renders); batch = one ref slot per frame. Combines with scene_asset if both are connected.
scene_descriptionoptSTRINGWhat's actually in the scene -- used verbatim in the intro line instead of scene_asset's saved description or the generic 'the location where this scene takes place.' placeholder. Concrete detail here (like Plan v2's Image Reference description) is what actually anchors the model to the background; leave blank to use scene_asset's saved description, if any.
include_voicesoptBOOLEANtrue
ref_image_sizeoptCOMBOmatch2 options: match, max
ref_spacingoptFLOAT1.00–50
ref_strengthoptFLOAT1.000–1
ref_decayoptFLOAT0.000–1
ref_rampoptFLOAT0.00–50
temporal_stretchoptFLOAT1.01–100

Outputs (4)

NameTypeDescription
positiveCONDITIONING
latentLATENT
final_promptSTRING
reportSTRING