Nodes/MiniMax H3 Edit/H3 Edit Options
ComfyUI Node

H3 Edit Options

One Dropdown Instead of Eleven Widgets You Don't Understand

By ethanfel·Created about a month ago·Updated 19 days ago· 30
H3 Edit Options
    • options
    ◄modestill | edit or generate►
    ◄show_overridesfalse►
    ◄profile_overridecanonical for selected mode►
    ◄direct_reference_transportsemantic (Qwen only)►
    ◄source_fitcrop center►
    ◄semantic_resolution1024►
    ◄native_reference_sizematch output area►
    ◄coverage_views12►
    ◄coverage_arc_degrees360►
    ◄coverage_directionclockwise / camera right►
    ◄coverage_hold_frames5►
    ◄coverage_loop_closuretrue►

    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 options link 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 UNETLoader yourself.
    CategoryMiniMax H3/Edit

    Inputs (12)

    NameTypeDefaultDescription
    modeCOMBOstill | edit or generateThe complete task preset. Scene coverage, directed edits, and character sheets each select their required frame profile automatically.
    show_overridesBOOLEANfalseReveal expert overrides. Leave off to use the complete canonical preset.
    profile_overrideCOMBOcanonical for selected modeOverride the canonical frame profile only when a task needs deliberate tuning.
    direct_reference_transportCOMBOsemantic (Qwen only)Transport for the optional direct reference_image on the encoder.
    source_fitCOMBOcrop centerHow an anchored Picture 1 is fitted to the output canvas.
    semantic_resolutionINT1024256–3584Equivalent-square Qwen pixel budget for semantic references.
    native_reference_sizeCOMBOmatch output areaResize policy for native Qwen+VAE references.
    coverage_viewsINT122–24Scene-coverage output viewpoints. Ignored by every other mode.
    coverage_arc_degreesFLOAT36015–360Scene-coverage camera arc. Ignored by every other mode.
    coverage_directionCOMBOclockwise / camera rightScene-coverage camera direction. Ignored by every other mode.
    coverage_hold_framesINT51–9Static frames around each coverage capture. Ignored by every other mode.
    coverage_loop_closureBOOLEANtrueReuse an anchored source for 360-degree loop closure when possible.

    Outputs (1)

    NameTypeDescription
    optionsH3EDIT_OPTIONS—