Tile Info To TTP Image Assy Args (Yogurt Nodes)
The glue node that makes tiled upscaling graphs actually wire together
- tile_info
- POSITIONS
- ORIGINAL_SIZE
- GRID_SIZE
- PADDING
Tiled processing - splitting a big image into pieces, working on each piece, stitching it back - is the standard answer to VRAM limits and to getting fine detail onto huge canvases. The Yogurt pack has its own tile-and-untile nodes for that. But if you're stitching tiles back together with a third-party TTP_Image_Assy node, you've met the classic annoyance: it wants a very specific set of geometry inputs, and the pack's tile node hands you a tile_info dict instead. YogurtTileInfoToTTPImageAssyArgs is the translator between the two. Description on the box says it all: "Convert tile_info to TTP_Image_Assy inputs: positions/original_size/grid_size/padding."
What it does
One required input, tile_info, a DICT - the exact thing the pack's own Image Tile (Seam Mask) node (YogurtImageTileWithSeamMask) outputs. In goes the tile geometry, and out come the four arguments a TTP_Image_Assy node expects:
POSITIONS(LIST) - where each tile sitsORIGINAL_SIZE(TUPLE) - the dimensions of the source imageGRID_SIZE(TUPLE) - how many tiles across and downPADDING(INT) - the overlap margin to account for when stitching
The workflow it belongs to
A typical tiled upscale/repaint graph looks like: load image → Image Tile (Seam Mask) splits it into overlapping tiles plus inpaint masks → each tile gets upscaled or repainted → TTP_Image_Assy reassembles everything into one image. Without this node you'd be manually computing POSITIONS, GRID_SIZE, and PADDING from the tile node's internals every single time you changed the tile size. That's exactly the kind of busywork that makes people give up on tiling. This node removes it: split, process, wire the four outputs straight into the assembly node, done.
One caveat to plan around: TTP_Image_Assy is not part of this pack. The four outputs are named to match that node's expected inputs, so wire them positionally into whatever pack provides it (check the workflow you downloaded - the tiling/assembly pack it came from is the one to install).
Installing it
It ships with Yogurt Nodes under YogurtNodes/Image. One install covers the whole pack:
cd ComfyUI/custom_nodes
git clone https://github.com/yogurt7771/ComfyUI-YogurtNodes.git
cd ComfyUI-YogurtNodes
pip install -r requirements.txt
Or search "ComfyUI-YogurtNodes" in ComfyUI Manager. Restart after. No model downloads for this node, though the seam-mask tile workflow around it is real image processing, so it runs on your GPU like anything else.
Common issues
The dependency mismatch is the one that trips people: this node produces inputs, it doesn't produce the assembled image. If your graph ends at a dead end of POSITIONS/GRID_SIZE/PADDING wires, the TTP_Image_Assy node is missing - install the pack that provides it and reconnect. And feed it a tile_info dict from the matching Image Tile (Seam Mask) node specifically; a hand-built dict with the wrong keys just won't translate. Keep the seam-mask and assembly nodes from the same workflow template and it's a straight drop-in.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| tile_info | DICT | tile_info dict from Image Tile (Seam Mask). |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| POSITIONS | LIST | — |
| ORIGINAL_SIZE | TUPLE | — |
| GRID_SIZE | TUPLE | — |
| PADDING | INT | — |