H3 Studio • Image to Image
FL2VA's frame-0 anchor, without pretending it's SD img2img
- clip
- vae
- source_image
- positive
- h3_latent
- fitted_source
- requested_frames
- image_prompt
- run_info
Here's the trap with H3 image-to-image: it is not SD img2img. There's no denoise slider that decides how much of your source survives. H3's FL2VA path treats your source image as the frame-0 anchor of a video - the model conditions on it as a starting frame and then generates the packet forward. How strongly the source survives is a question of prompt language, not noise. H3StudioImageToImagePrepare is the node that builds that conditioning correctly, and the tooltips practically beg you to remember the distinction.
The required inputs are what you'd expect: the clip (MiniMax H3 Qwen encoder), the vae (used to encode the source frame), the source_image, your edit_instruction, and the width/height canvas (defaults 1344×768). The source gets fitted to the canvas before encoding.
The settings that confuse people
- source_fidelity (default 0.75) - "controls how strongly the still prompt asks H3 to preserve identity, pose, composition and geometry." The tooltip is unambiguous: this is NOT a denoise slider and does not change sampling. It steers the wording H3 receives. If you crank it, the generated prompt gets more preservation language, not more denoising.
- source_fit -
crop_center(default),contain_pad, orstretch: how the source is fitted to the canvas before VAE encoding. For a 16:9 canvas from a square source,crop_centertrims,contain_padletterboxes,stretchdistorts. - quality_profile - the temporal ladder: experimental 1-frame image VAE, recommended 5 frames, extended 9, high 13, maximum 20 (slow). The tooltip adds a genuinely useful warning: at 20 frames, FL2VA may retain source-like traits too strongly - more context isn't automatically better for an edit.
- optimize_for_still (default on) - wraps the prompt with locked-camera still-image wording and source-preservation language. Sampling settings are untouched.
Outputs
positive (CONDITIONING) and h3_latent (LATENT) feed the sampler; fitted_source shows the anchored source; requested_frames carries the temporal count; image_prompt and run_info show you what prompt actually went in. Read image_prompt once - seeing how your edit instruction got rewritten with preservation language is the fastest way to understand why a result drifted or stuck too close to the source.
Where it sits
This is the "expert graph" version of the I2I path - the Director and the Combined Prepare node can reach the same conditioning, but this node is the focused, single-mode variant for people wiring I2I by hand. If your edits come out too loose, raise source_fidelity and state the immutable traits explicitly in the instruction; if it clings to the source, lower it. Because it's semantic regeneration rather than pixel-locked compositing, exact geometry is never guaranteed - work the prompt, not the sliders.
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 and the H3 models it wraps.
Inputs (10)
| Name | Type | Default | Description |
|---|---|---|---|
| clip | CLIP | MiniMax H3 Qwen text/vision encoder. | |
| vae | VAE | MiniMax H3 video VAE used to encode the source frame. | |
| source_image | IMAGE | Source image used as FL2VA's frame-0 anchor. | |
| edit_instruction | STRING | Describe the desired final image and the changes to apply to the source. | |
| width | INT | 134432–16384 | Generation canvas width; the source is fitted to this canvas before encoding. |
| height | INT | 76832–16384 | Generation canvas height; the source is fitted to this canvas before encoding. |
| quality_profile | COMBO | recommended | 5 frames | 5 frames is the recommended edit profile. With 20 frames, FL2VA may retain source-like transition frames near the start. Exact Frame Decode now preserves the complete selected profile; Single Image Output scores it and normally emits one still. |
| 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 source is fitted to the generation canvas before VAE encoding. |
| optimize_for_still | BOOLEAN | true | Adds a locked-camera still-image prompt wrapper and source-preservation language. Sampling settings are unchanged. |
Outputs (6)
| Name | Type | Description |
|---|---|---|
| positive | CONDITIONING | Positive FL2VA image-to-image conditioning for the sampler's positive input. |
| h3_latent | LATENT | Packed H3 audio/video latent with the fitted source encoded as frame-0 anchor. |
| fitted_source | IMAGE | Source image after the selected crop, pad or stretch operation. |
| requested_frames | INT | Number of image frames that Exact Frame Decode should preserve and decode. |
| image_prompt | STRING | Final edit prompt after optional still-image and source-preservation optimization. |
| run_info | STRING | Temporal packet, source-fit, checkpoint expectations and recommended selection strategy. |