Nodes/Comfyui-MMH3-UltimateExtend/MMH3 Spatial Tile Editor
ComfyUI Node

MMH3 Spatial Tile Editor

Plan the giant MiniMax H3 shot before you pay for it

By bbaudio-2025·Created a day ago·Updated a day ago· 0
MMH3 Spatial Tile Editor
    • tile_config
    • segments_info
    show_editortrue
    base_prompt
    base_negative
    tile_data{}

    The other node in this pack, MMH3 Spatial Extend Video, is where the sampling happens. This one is where you decide what's about to be sampled - and it costs you nothing until you run it, because MMH3 Spatial Tile Editor never touches a GPU. It's the pure-information half of the pair: a visual dock-panel editor, drawn by the pack's own JavaScript, where you lay out the tiles of a bigger MiniMax H3 video the way you'd arrange a storyboard. The output is just a dict describing the plan, which the Extend Video node then spends actual generations on. Think of it as approving the floor plan before paying for the building.

    Where it sits

    MMH3 Spatial Tile Editor → tile_config → MMH3 Spatial Extend Video → VAEDecode
    

    That wire is the whole relationship. Nothing else consumes its output, and it emits no tensors and loads no images itself - which is the nice property: misconfigure it and the failure shows up downstream as wrong crops or seams, never as a CUDA error on this node.

    How the editor works

    Open the dock panel (the show_editor toggle) and you get a canvas plus a per-tile property panel. You add tiles, pick a layout, and give each tile its own positive and negative prompt, its width and height, and its conditioning mode. The two modes can even mix per tile:

    • FL2VA - the tile is anchored by first/last keyframes.
    • Ref2VA - the tile is anchored by reference blocks, H3's image-to-video path; reach for this when identity fidelity matters (the model's Qwen3-VL CLIP is what reads those references).

    Every tile also decides where its reference comes from: crop means it uses its slice of a whole "compose" image you supplied (a First and/or Last source frame the layout splits up), while own means you dropped dedicated reference images onto that tile from your ComfyUI/input folder. Overlap and fade widths are auto-calculated so tiles can be stitched without visible seams.

    Layouts are where the real modes live:

    • horizontal_alternating - a side-by-side strip
    • vertical_alternating - a stacked column
    • 4_quadrants_expand - a center tile with four corner tiles around it (the one that leans on the pack's Last Quadrant Patch for seam fixes)

    The inputs that matter

    The node's schema is deliberately boring: show_editor, base_prompt and base_negative (shared across every tile - handy for a consistent global scene description), and tile_data, the internal JSON the dock panel writes. Don't hand-edit tile_data; the panel owns it and will silently clobber your changes. Plan and tile count aren't exposed as Python widgets at all - they're JS-managed state inside that JSON, which is exactly the kind of thing that shifts between releases of a 0.0.1 pack.

    Outputs

    tile_config is the dict you feed into MMH3 Spatial Extend Video's tile_config input - that's the node you keep. segments_info is a plain-numbers summary of the geometry (tile count, plan, total dimensions, each tile's placement rect on the canvas and its compose crop box). When a crop comes out starting from the wrong corner of your reference image, that dict is your debugging friend: read it instead of eyeballing the canvas.

    How to install

    ComfyUI Manager should find it by the pack title "Comfyui-MMH3-UltimateExtend" once it's published to the registry. If Manager comes up empty, clone it:

    cd ComfyUI/custom_nodes
    git clone https://github.com/bbaudio-2025/Comfyui-MMH3-UltimateExtend
    

    then restart ComfyUI. No requirements.txt, no pip dependencies - the pyproject is empty on that front, and the pack needs only core ComfyUI (plus a recent enough build to run the 2026-era comfy_api node API it's written against). The dock panel is plain front-end JS served from the pack's web/ folder.

    Common issues

    Because this node is pure information, its problems are all geometry. A compose split that comes out misaligned usually means the compose image isn't where the node can find it - reference images are picked from your ComfyUI input folder, and Extend Video slices the actual file at run time using the exact crop boxes the panel computed, so a missing file means a missing tile. If tiles render with content that doesn't match their crop, compare segments_info's compose_crops against what you dropped in - stale crop boxes from an earlier save are a known wart the code defends against but can't always catch. And remember the golden rule for this one: you're configuring a model whose local weights are licence-restricted in the US, EU, UK and South Korea, so check that before you sink a weekend into a 33B setup.

    Categorymodel/conditioning/minimax

    Inputs (4)

    NameTypeDefaultDescription
    show_editorBOOLEANtrueToggle the visual dock editor panel on/off.
    base_promptSTRINGShared positive prompt applied to all tiles.
    base_negativeSTRINGShared negative prompt applied to all tiles.
    tile_dataSTRING{}Internal JSON managed by the dock editor.

    Outputs (2)

    NameTypeDescription
    tile_configDICTComplete tile configuration (pure dict/text) for MMH3 Spatial Extend Video.
    segments_infoDICTInspectable geometry summary: tile count, plan, dimensions, and per-tile compose crop boxes.