Overlapped Latent Merge
Merge tiled latents in latent space, so you never leave it for a stitch
- tiled_latents
- mira_itu_pipeline
- LATENT
The pack's OverlappedImageMerge is the pixel-space stitch. Overlapped Latent Merge is the same idea running on latents, before the VAE decode. If your tiled upscaler wants to sample every tile and then hand a single full latent to the rest of the graph - or if you're worried about color drift from decode-encode round trips - this is the node that puts the tiles back together in the latent domain.
The source comment for its pixel sibling says it plainly: merging in pixel space can shift colors, so it's not great for latents. Which is exactly why this node exists - latents get merged with the same feathering machinery, but there's no decode step in the middle, so nothing about the colors gets a chance to go sideways. The trade is that you can't visually inspect a latent, so this node is for pipelines that treat the merge as an intermediate step, not a final output.
How it works
Same family as OverlappedImageMerge: it takes the mira_itu_pipeline descriptor to reconstruct the tile grid, and stitches tiled_latents back onto a full latent canvas using geometric feather masks and a weight map. Overlap dominance applies here too - heavily-overlapped tiles get boosted weight so the newer tile wins instead of both averaging into mush.
One extra knob the pixel version doesn't have: pixel_alignment (default 8), which controls the alignment grid for the tile math. It's a FLOAT in the schema, but treat it as your model's VAE grid - 8 for SDXL, 16 for FLUX.2, 32 for Qwen Image - and keep it consistent with the tiling node's setting.
The inputs
- tiled_latents - the sampled tiles, in the order the tiling/encoding produced them.
- mira_itu_pipeline - the descriptor from
ImageCropTiles(or its pixel variant). Required; keep the pair together. - feather_rate_override (default 0) - 0 uses the pipeline's feather rate. Set non-zero to override. Unlike the pixel merge there's no
-0.1direct-overwrite mode here; the range starts at 0. - pixel_alignment (default 8) - the alignment grid for tile math.
One output: LATENT - the full, merged latent, ready for a VAE decode or further processing.
Install
cd ComfyUI/custom_nodes
git clone https://github.com/mirabarukaso/ComfyUI_MiraSubPack
or search "MiraSubPack" in ComfyUI Manager and restart. No extra dependencies.
When to reach for it
The honest answer: when your pipeline needs a single full latent. That's the case if you're chaining a tiled pass into a final full-image pass, or if your downstream nodes (a refiner, a second sampler) expect one latent and you don't want to pay the cost of decode→merge→re-encode. For the common tiled-upscale output you actually want to look at, use the pixel-space OverlappedImageMerge instead - a latent you can't inspect is only useful as an intermediate.
One caveat if you hit weird seams here: latent-space merging is more sensitive to alignment mismatches than pixel-space, because a half-tile offset in latent coordinates is a much bigger error after decode. Check that pixel_alignment matches the crop node before you blame the feathering.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| tiled_latents | LATENT | Tiled latents input. | |
| mira_itu_pipeline | mira_image_tiled_upscaler_pipeline | Mira Image Tiled Upscale pipeline info from tiling node. | |
| feather_rate_override | FLOAT | 0.00–4 | Override fathering rate multiplier if value is not 0. |
| pixel_alignment | FLOAT | 81–64 | Pixel alignment for tile calculations (e.g., 8 for 8-pixel grid). |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| LATENT | LATENT | — |