Nodes/ComfyUI-MiniMax-H3-Studio/H3 Studio · Image Director
ComfyUI Node

H3 Studio · Image Director

The control panel that makes MiniMax H3 behave like an image model

By thaakeno·Created 17 days ago·Updated 5 days ago· 79
H3 Studio · Image Director
  • media
  • h3_bundle
  • media_1
  • media_2
  • media_3
  • media_4
  • media_5
  • media_6
  • media_7
  • media_8
  • media_9
  • studio_context
  • compiled_prompt
  • state_json
  • width
  • height
  • seed
  • diagnostics
modeimage
prompt
resolutionCustom
aspect_ratio1:1
width1024
height1024
seconds5
advancedfalse
fps24
keyframe_rolefirst
ref_image_size2k
reference_mention_modeindex
megapixels1.50
seed0
enhance_modecompile_only
adherence0.85
routeauto
sampling_profilelightx_v1_fl2v_8
frame_profilerecommended_5
analyzer_model
studio_state
media_filename
media_type_1image
media_filename_1
role_1auto
retention_1attribute_transfer
description_1
media_type_2image
media_filename_2
role_2auto
retention_2attribute_transfer
description_2
media_type_3image
media_filename_3
role_3auto
retention_3attribute_transfer
description_3
media_type_4image
media_filename_4
role_4auto
retention_4attribute_transfer
description_4
media_type_5image
media_filename_5
role_5auto
retention_5attribute_transfer
description_5
media_type_6image
media_filename_6
role_6auto
retention_6attribute_transfer
description_6
media_type_7image
media_filename_7
role_7auto
retention_7attribute_transfer
description_7
media_type_8image
media_filename_8
role_8auto
retention_8attribute_transfer
description_8
media_type_9image
media_filename_9
role_9auto
retention_9attribute_transfer
description_9

MiniMax H3 is a video model. It does images, but only through paths the lab never actually polished for stills - which is why doing H3 image generation in raw ComfyUI means building a graph of routing, reference conditioning, sampler profiles, frame selection and VAE handling by hand. The Director is the node that hides all of that machinery behind one big control panel. If H3 Studio is the point of this pack, this is the point of H3 Studio.

It's the front-end for everything: your prompt, up to nine ordered reference images, resolution, seed, enhancement mode, and which H3 route and sampling profile to take. You type a prompt, connect a few images, pick a profile, and queue - the Director compiles all of it into a typed studio_context that the downstream Condition & Route node consumes.

The part beginners under-use: ordered references

The Director's superpower is how references work. Wire images into media_1 through media_9, and each gets a card with a role (identity, pose, outfit, style, composition, environment, and more) and a retention policy (fully_preserved, attribute_transfer, partially_preserved, reference_only). In your prompt you just write @Image1, @Image2, and so on - the node compiles those friendly mentions into H3's native <Picture N> conditioning under the hood. The cards survive workflow reloads with their descriptions and thumbnails intact.

That's the mechanism worth understanding: H3 Studio keeps four jobs separate - factual analysis of what's in each reference, ownership (which image owns which attribute), prompt direction, and deterministic compilation of @ImageN into <Picture N>. If you only use one, make it this: give each reference one narrow job and say so explicitly. "Keep the identity and pose from @Image1, transfer only the jacket from @Image2" beats a vague paragraph every time, because reference editing here is semantic regeneration, not pixel-locked compositing.

The inputs that matter

The required list is long but most of it has sane defaults you can ignore. The ones you'll actually touch:

  • prompt - write the visual objective naturally; use @ImageN only where a connected reference has a concrete job.
  • sampling_profile - the 11-choice speed/quality ladder, from base_quality_20 (safest) through the LightX 8-step lightx_v1_fl2v_8 (the default) down to 4-step LightX and PDD profiles. The LightX labels are intentionally artifact-specific: v1.0 follows the published adapter, v0.1 recipes are empirical.
  • frame_profile - 5/9/13/20 temporal frames (recommended_5 is the default), plus the experimental one-frame image_vae_1. H3 denoises the whole temporal packet jointly, so more frames mean more candidates to pick from but a much slower run.
  • resolution / aspect_ratio / megapixels - the Director shows the real aligned dimensions and marks draft vs recommended vs experimental ranges. Direct mode spans roughly 0.2–8.5 MP, but treat anything above ~1 MP as an experiment; H3 is not a dedicated super-resolution model and big canvases buy you VRAM pain faster than detail.
  • route - auto is the smart default; it picks FL2VA for text-to-image and image-to-image and REF2VA for reference editing, and rejects impossible combinations before sampling starts.
  • seed - capped at 2^50-1 so ComfyUI's LiteGraph never clamps two randomized seeds onto the same boundary value. That tooltip is there because it's a real footgun.
  • enhance_mode - off, single_prompt, compile_only (default), or vlm for the optional Qwen3-VL prompt pipeline.

Outputs and next steps

The Director returns studio_context (feed this into Condition & Route), compiled_prompt (worth a glance the first few times to see what H3 actually receives), state_json, width, height, seed, and diagnostics. The recommended wiring in the maintained workflow is Loader → Director → Condition → sampling → decode → frame select.

Install

cd ComfyUI/custom_nodes
git clone https://github.com/thaakeno/ComfyUI-MiniMax-H3-Studio.git
cd ComfyUI-MiniMax-H3-Studio
python -m pip install -r requirements.txt

Restart and hard-refresh the frontend. Models are not auto-downloaded - set them up via the Model Setup node or the README's links first. It's alpha, so expect rough edges, and remember the H3 weights themselves are geofenced out of the US/EU/UK/Korea by the community license.

CategoryH3 Studio

Inputs (78)

NameTypeDefaultDescription
modeCOMBOimage2 options: image, reference
promptSTRING
resolutionCOMBOCustom4 options: 480P, 768P, 1024P, Custom
aspect_ratioCOMBO1:111 options: 1:1, 4:5, 5:4, 3:4, 4:3, 2:3, +5
widthINT102432–16384
heightINT102432–16384
secondsFLOAT55–5
advancedBOOLEANfalse
fpsFLOAT2424–24
keyframe_roleCOMBOfirst2 options: first, last
ref_image_sizeCOMBO2k2 options: 1k, 2k
reference_mention_modeCOMBOindex2 options: index, filename
megapixelsFLOAT1.500.2–8.5
seedINT00–1125899906842623H3 Studio seed. Values are limited to 2^50-1 so LiteGraph/ComfyUI never clamps different randomized seeds to the same 2^50 boundary value.
enhance_modeCOMBOcompile_only4 options: off, single_prompt, compile_only, vlm
adherenceFLOAT0.850–1
routeCOMBOauto3 options: auto, fl2va, ref2va
sampling_profileCOMBOlightx_v1_fl2v_811 options: base_quality_20, base_balanced_12, lightx_v1_fl2v_8, lightx_v1_fl2v_8_pruned, lightx_v1_fl2v_4_pruned, lightx_er_sde_4, +5
frame_profileCOMBOrecommended_55 options: image_vae_1, recommended_5, balanced_9, quality_13, maximum_20
analyzer_modelSTRING
studio_stateSTRING
mediaopt*
media_filenameoptSTRING
h3_bundleoptH3_STUDIO_BUNDLE
media_1opt*
media_type_1optSTRINGimage
media_filename_1optSTRING
role_1optCOMBOauto15 options: auto, identity, character, face, style, composition, +9
retention_1optCOMBOattribute_transfer4 options: attribute_transfer, fully_preserved, partially_preserved, reference_only
description_1optSTRING
media_2opt*
media_type_2optSTRINGimage
media_filename_2optSTRING
role_2optCOMBOauto15 options: auto, identity, character, face, style, composition, +9
retention_2optCOMBOattribute_transfer4 options: attribute_transfer, fully_preserved, partially_preserved, reference_only
description_2optSTRING
media_3opt*
media_type_3optSTRINGimage
media_filename_3optSTRING
role_3optCOMBOauto15 options: auto, identity, character, face, style, composition, +9
retention_3optCOMBOattribute_transfer4 options: attribute_transfer, fully_preserved, partially_preserved, reference_only
description_3optSTRING
media_4opt*
media_type_4optSTRINGimage
media_filename_4optSTRING
role_4optCOMBOauto15 options: auto, identity, character, face, style, composition, +9
retention_4optCOMBOattribute_transfer4 options: attribute_transfer, fully_preserved, partially_preserved, reference_only
description_4optSTRING
media_5opt*
media_type_5optSTRINGimage
media_filename_5optSTRING
role_5optCOMBOauto15 options: auto, identity, character, face, style, composition, +9
retention_5optCOMBOattribute_transfer4 options: attribute_transfer, fully_preserved, partially_preserved, reference_only
description_5optSTRING
media_6opt*
media_type_6optSTRINGimage
media_filename_6optSTRING
role_6optCOMBOauto15 options: auto, identity, character, face, style, composition, +9
retention_6optCOMBOattribute_transfer4 options: attribute_transfer, fully_preserved, partially_preserved, reference_only
description_6optSTRING
media_7opt*
media_type_7optSTRINGimage
media_filename_7optSTRING
role_7optCOMBOauto15 options: auto, identity, character, face, style, composition, +9
retention_7optCOMBOattribute_transfer4 options: attribute_transfer, fully_preserved, partially_preserved, reference_only
description_7optSTRING
media_8opt*
media_type_8optSTRINGimage
media_filename_8optSTRING
role_8optCOMBOauto15 options: auto, identity, character, face, style, composition, +9
retention_8optCOMBOattribute_transfer4 options: attribute_transfer, fully_preserved, partially_preserved, reference_only
description_8optSTRING
media_9opt*
media_type_9optSTRINGimage
media_filename_9optSTRING
role_9optCOMBOauto15 options: auto, identity, character, face, style, composition, +9
retention_9optCOMBOattribute_transfer4 options: attribute_transfer, fully_preserved, partially_preserved, reference_only
description_9optSTRING

Outputs (7)

NameTypeDescription
studio_contextH3_STUDIO_CONTEXT
compiled_promptSTRING
state_jsonSTRING
widthINT
heightINT
seedINT
diagnosticsSTRING