H3 Edit Options
One Dropdown Instead of Eleven Widgets You Don't Understand
- options
Here's the failure mode this node exists to prevent: you set the prompt mode to directed | character swap, leave the quality profile on recommended | 5-frame context, and get a confusing image out of a graph that was internally contradicting itself. H3 Edit Options collapses two settings that must agree - which prompt compiler runs, and which frame profile the latent gets - into one choice.
You connect its single options output to the options input on Text Encode H3 Edit / Generate and pick a mode. That's the whole interface for normal use.
What a mode is
Each of the eleven modes is a complete preset, not a hint. character sheet | canonical 6 views selects the six-view character prompt compiler and the 124-frame orbit profile together. scene coverage | room + object study selects the all-semantic reconstruction compiler and the 362-frame camera path. directed | re-pose character picks the re-pose compiler plus the 39-frame settled-change profile, which the one-image decoder then reads to score only the tail frames.
The modes you'll actually live in are still | edit or generate (the default - one photo in, one edited photo out) and advanced | prompt verbatim, which hands your text to H3 untouched.
With show_overrides off, the node sends the canonical values for everything else and - this is the important part - the encoder's legacy task widgets get hidden and ignored. Those widgets still exist in the backend so old workflows keep loading, but stale values sitting in a saved graph won't silently change your task. If you're wondering why your old reference_mode setting seems to do nothing, that's why.
The override panel
Turn show_overrides on and you get the expert set: profile_override (any compatible frame profile, or canonical for selected mode), direct_reference_transport (semantic (Qwen only) / native (Qwen + VAE ref) / none (source only) for the encoder's direct reference socket), source_fit (crop center, contain / pad, stretch), semantic_resolution, native_reference_size, plus the five scene-coverage controls - coverage_views, coverage_arc_degrees, coverage_direction, coverage_hold_frames, coverage_loop_closure.
Override compatibility is enforced, not just documented. Selecting the 8-panel character profile while the mode is a six-panel sheet raises a clear validation error instead of building a contradictory task. Same for scene coverage modes that can only take 124/243/362-frame profiles. Someone clearly got tired of debugging that for us.
Two things worth noticing: coverage_views is ignored by every mode outside scene coverage, so the number sitting in that widget does nothing unless the mode uses it; and switching overrides off resets coverage to 12 views for the canonical camera path, 8 for hard cuts, and 16 for the room + object study.
Install
Manager → search the pack title, or:
cd ComfyUI/custom_nodes
git clone https://github.com/ethanfel/ComfyUI-MiniMax-H3-Edit
Restart ComfyUI, then hard-refresh the browser tab. This node ships a small frontend script that is what actually hides and reshows widgets on the encoder when you connect or disconnect it, and a cached page will happily ignore it.
No extra Python dependencies - the pack's requirements file is empty on purpose.
Where people get burned
- Options not connected. The encoder still works standalone, but you're back to setting every task widget by hand, and nothing warns you. If your encoder shows a full row of legacy widgets, the
optionslink isn't there. - Overrides left on from a previous experiment. An override is authoritative. Enable it deliberately, and turn it back off when you're done, or your next unrelated run inherits a frame profile you forgot about.
- Assuming a mode needs matching widgets. Directed edits always anchor Picture 1 as a strong FL2VA frame-zero reference and always use the 39-frame profile. There's nothing to set; if you've manually changed the profile to something else, you've created the contradiction the node is designed to reject.
- Switching checkpoints. Modes don't load models. Modes that use native references expect a REF2VA diffusion model in your loader; anchored edits expect FL2VA. Swap the file in
UNETLoaderyourself.
Inputs (12)
| Name | Type | Default | Description |
|---|---|---|---|
| mode | COMBO | still | edit or generate | The complete task preset. Scene coverage, directed edits, and character sheets each select their required frame profile automatically. |
| show_overrides | BOOLEAN | false | Reveal expert overrides. Leave off to use the complete canonical preset. |
| profile_override | COMBO | canonical for selected mode | Override the canonical frame profile only when a task needs deliberate tuning. |
| direct_reference_transport | COMBO | semantic (Qwen only) | Transport for the optional direct reference_image on the encoder. |
| source_fit | COMBO | crop center | How an anchored Picture 1 is fitted to the output canvas. |
| semantic_resolution | INT | 1024256–3584 | Equivalent-square Qwen pixel budget for semantic references. |
| native_reference_size | COMBO | match output area | Resize policy for native Qwen+VAE references. |
| coverage_views | INT | 122–24 | Scene-coverage output viewpoints. Ignored by every other mode. |
| coverage_arc_degrees | FLOAT | 36015–360 | Scene-coverage camera arc. Ignored by every other mode. |
| coverage_direction | COMBO | clockwise / camera right | Scene-coverage camera direction. Ignored by every other mode. |
| coverage_hold_frames | INT | 51–9 | Static frames around each coverage capture. Ignored by every other mode. |
| coverage_loop_closure | BOOLEAN | true | Reuse an anchored source for 360-degree loop closure when possible. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| options | H3EDIT_OPTIONS | — |