H3 Studio • Reference Edit
Nine ordered references, compiled to H3's REF2VA path
- clip
- vae
- source_image
- reference_image_2
- reference_image_3
- reference_image_4
- reference_image_5
- reference_image_6
- reference_image_7
- reference_image_8
- reference_image_9
- positive
- h3_latent
- fitted_source
- requested_frames
- image_prompt
- run_info
Multi-reference editing is where H3 genuinely stands apart from the SD family. The REF2VA path conditions on up to nine ordered images, and in your prompt you address them directly as <Picture 1>, <Picture 2>, and so on - one image can be the identity, another the outfit, another the composition. H3StudioReferenceEditPrepare is the hand-wired node for exactly that: it encodes every ordered reference through the H3 video VAE and compiles your instruction into REF2VA conditioning.
The required set mirrors the I2I node but with a shift in meaning: clip, vae, source_image (the primary reference, addressed as <Picture 1>), edit_instruction, width/height, quality_profile, source_fidelity, source_fit, reference_detail, and optimize_for_still. Then reference_image_2 through reference_image_9 fill out the rest of the picture - each optional, each retaining its own aspect ratio before encoding, so mismatched dimensions are fine.
The knobs that actually do something
- source_fidelity (0.75) - same rule as the I2I node: it steers the prompt's preservation language, it is not a denoise slider. Raised, the compiled prompt asks harder for identity/pose/geometry to survive.
- reference_detail -
match_generation_area(default) ormax_identity_2048. The latter keeps more of the reference's source resolution before VAE encoding, which can preserve identity better but costs more memory and time. Worth switching on for the primary reference when faces matter. - quality_profile - 5 frames is the recommended speed/quality balance; the tooltip notes 20 frames gives REF2VA more temporal context and is much slower.
- optimize_for_still - wraps the prompt with locked-camera still language and reference-preservation instructions.
The edit_instruction is where the craft lives, and the pack's prompting guide says it plainly: refer to inputs explicitly as <Picture 1>, <Picture 2>, and give each one a narrow job. "Keep identity and pose from <Picture 1>, transfer only the jacket from <Picture 2>" is the shape of a good instruction. Reference editing is semantic regeneration, not compositing - explicit ownership and retention language improves control but cannot guarantee exact geometry.
Outputs
positive, h3_latent, fitted_source, requested_frames, image_prompt, run_info - same shape as the I2I node, so swapping one for the other doesn't rewire your sampler section. image_prompt is worth reading after your first edit to see how your instruction got expanded into preservation language.
When to use it instead of the Director
The Director's reference cards are nicer for interactive work - roles, retention, thumbnails, @ImageN names. This node is the explicit equivalent for custom graphs: raw <Picture N> addressing, no cards. If you're building a reusable I2I/REF2VA workflow by hand, it's the more direct tool; if you're doing one-off reference edits, the Director saves you the wiring.
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. No extra dependencies beyond the pack.
Inputs (19)
| Name | Type | Default | Description |
|---|---|---|---|
| clip | CLIP | MiniMax H3 Qwen text/vision encoder. | |
| vae | VAE | MiniMax H3 video VAE used to encode every ordered reference image. | |
| source_image | IMAGE | Primary REF2VA reference, addressed as <Picture 1> in the prompt. | |
| edit_instruction | STRING | Describe the final image and refer to inputs explicitly as <Picture 1>, <Picture 2>, and so on. | |
| width | INT | 134432–16384 | Generation canvas width; references retain their own aspect ratio before encoding. |
| height | INT | 76832–16384 | Generation canvas height; references retain their own aspect ratio before encoding. |
| quality_profile | COMBO | recommended | 5 frames | 5 frames is the recommended speed/quality balance. 20 frames gives REF2VA more temporal context and is much slower. The complete profile is available to Single Image Output. |
| source_fidelity | FLOAT | 0.750–1 | Controls how strongly the still prompt asks H3 to preserve identity, pose, composition and geometry. This is NOT diffusion denoise strength and does not alter the sigma schedule. |
| source_fit | COMBO | crop_center | How the primary source preview is fitted to the generation canvas. |
| reference_detail | COMBO | match_generation_area | How much source resolution each REF2VA reference keeps before VAE encoding. max_identity_2048 may preserve more identity detail at higher memory cost. |
| optimize_for_still | BOOLEAN | true | Adds a locked-camera still-image prompt wrapper and reference-preservation language. Sampling settings are unchanged. |
| reference_image_2opt | IMAGE | Optional <Picture 2> reference. Different dimensions are supported. | |
| reference_image_3opt | IMAGE | Optional <Picture 3> reference. | |
| reference_image_4opt | IMAGE | Optional <Picture 4> reference. | |
| reference_image_5opt | IMAGE | Optional <Picture 5> reference. | |
| reference_image_6opt | IMAGE | Optional <Picture 6> reference. | |
| reference_image_7opt | IMAGE | Optional <Picture 7> reference. | |
| reference_image_8opt | IMAGE | Optional <Picture 8> reference. | |
| reference_image_9opt | IMAGE | Optional <Picture 9> reference. |
Outputs (6)
| Name | Type | Description |
|---|---|---|
| positive | CONDITIONING | Positive REF2VA reference-edit conditioning for the sampler's positive input. |
| h3_latent | LATENT | Packed H3 audio/video latent prepared for reference-guided regeneration. |
| fitted_source | IMAGE | Primary source fitted to the output canvas for preview and comparison. |
| requested_frames | INT | Number of image frames that Exact Frame Decode should preserve and decode. |
| image_prompt | STRING | Final ordered-reference prompt after optional preservation optimization. |
| run_info | STRING | Reference count, temporal packet, checkpoint expectations and recommended selection strategy. |