MMH3 Spatial Tile Editor
Plan the giant MiniMax H3 shot before you pay for it
- tile_config
- segments_info
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 stripvertical_alternating- a stacked column4_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.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| show_editor | BOOLEAN | true | Toggle the visual dock editor panel on/off. |
| base_prompt | STRING | Shared positive prompt applied to all tiles. | |
| base_negative | STRING | Shared negative prompt applied to all tiles. | |
| tile_data | STRING | {} | Internal JSON managed by the dock editor. |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| tile_config | DICT | Complete tile configuration (pure dict/text) for MMH3 Spatial Extend Video. |
| segments_info | DICT | Inspectable geometry summary: tile count, plan, dimensions, and per-tile compose crop boxes. |