TTP Smart Tile Assemble
The last node in the Smart Tile loop, and the one with the most dials
- sampled_tiles
- tile_meta
- tile_set
- base_image
- source_image
- color_reference_image
- image
- weight_preview
Every Smart Tile 2.0 workflow ends here. Once your per-tile img2img loop has finished (via TTP Smart Tile Loop Source → sampler → TTP Smart Tile Loop Collect), this node pastes every processed tile back onto a canvas - with feathering, masks, semantic priority, optional color correction, and optional pixel alignment - to produce the final image. It has by far the largest parameter list in the pack, which mostly exists because "paste a variable-size, object-aware tile set back together without visible seams" is a genuinely harder problem than a fixed grid's reassembly.
The setting that matters most first: assemble_mode. Default is final_only, and that's deliberate - the README is explicit that you should connect TTP Smart Tile Loop Collect.done to this node's done input, so unfinished loop passes return a cheap preview instead of doing the full, expensive composite every single tile. It only does the real assemble once, after done=true. Switch to always only if you specifically want a full recomposite after every tile (much slower, useful mainly for debugging mid-loop). One thing worth knowing: if you've enabled pixel_alignment, unfinished loop runs are automatically treated as final-only anyway, specifically to avoid repeating an expensive alignment pass on every tile.
The inputs and outputs that actually connect to the rest of your graph: sampled_tiles (your processed tiles from Loop Collect), tile_set and tile_meta (the layout and ranking data), and optionally base_image/source_image/color_reference_image depending on how you want gaps and color handled. Output is image (the assembled result) and weight_preview (a visualization of how much influence each region had - genuinely useful for debugging why a tile did or didn't win an overlap).
A handful of the settings worth understanding, not just defaulting through:
base_canvas_mode-autoby default, but the README specifically recommendsblackwhen you don't want the original source image showing through uncovered or low-weight areas. If your assembled result has faint ghosting of the original underneath your edits, this is usually why.auto_composite_policy-safe_autois the sane default (keeps background tiles low-priority, promotes detail tiles).replace_tileis for edit-style workflows where you want selected tiles to hard-replace the canvas rather than blend; pair it withreplace_tile_shape(mask_firstuses the object mask when present and hardens its interior like an inpaint stitch,tile_box_firstignores the mask entirely and replaces the full rectangular tile).small_tile_on_top- off by default, but the README recommends flipping it on for any detail workflow, since it's what stops a small, high-priority face or eye tile from getting buried under a larger background tile during compositing.mask_blend_mode-mask_featherby default, which uses the tile's object mask when available and a feathered rectangular mask otherwise. Reasonable to leave alone unless you have a specific reason not to.color_correction- off by default, and the README's own advice is to start there and only reach forreinhard_lab,mkl_lab, orhistogramif you're actually seeing color mismatches between tiles.
Install. ComfyUI Manager, search "Comfyui_TTP_Toolset", or cd ComfyUI/custom_nodes && git clone https://github.com/TTPlanetPig/Comfyui_TTP_Toolset, then restart. No models required by this node itself.
Common issues, straight from the README's own troubleshooting table. Face or eyes getting hidden under a larger tile: turn on small_tile_on_top, keep auto_composite_policy=safe_auto, and make sure TTP Smart Tile Semantic Rank ran upstream so priority metadata actually exists to act on. Original image visibly showing through: set base_canvas_mode=black and confirm you used the editor's "Fill gaps" action so there aren't uncovered regions in the first place. Assembly running slow: stick with assemble_mode=final_only and avoid enabling pixel_alignment for anything other than the true final pass, since repeated alignment on every unfinished loop iteration is the single most expensive thing this node can do.
Inputs (29)
| Name | Type | Default | Description |
|---|---|---|---|
| blend_multiplier | FLOAT | 1.000–4 | — |
| output_scale | FLOAT | 0.000–16 | — |
| use_priority | BOOLEAN | true | — |
| tile_alignment | COMBO | center_crop | 4 options: center_crop, crop_or_pad, resize, off |
| edge_crop_px | INT | 00–512 | — |
| color_correction | COMBO | off | 5 options: off, local_mean_std, reinhard_lab, mkl_lab, histogram |
| color_strength | FLOAT | 0.350–1 | — |
| mask_blend_mode | COMBO | mask_feather | 4 options: off, auto, mask_only, mask_feather |
| pixel_alignment | COMBO | off | 3 options: off, mask_edge_match, edge_match |
| pixel_alignment_radius | INT | 80–64 | — |
| pixel_alignment_device | COMBO | auto | 3 options: auto, cpu, gpu |
| large_tile_policy | COMBO | use_if_higher_resolution | 3 options: use_if_higher_resolution, context_only, always_use |
| large_tile_area_threshold | FLOAT | 0.550.05–1 | — |
| min_tile_scale_ratio | FLOAT | 0.950.25–2 | — |
| context_tile_weight | FLOAT | 0.250–1 | — |
| assemble_device | COMBO | auto | 3 options: auto, cpu, gpu |
| assemble_mode | COMBO | final_only | 2 options: final_only, always |
| base_canvas_mode | COMBO | auto | 4 options: auto, black, base_image, source_image |
| weight_preview_mode | COMBO | raw_weight | 2 options: raw_weight, coverage |
| small_tile_on_top | BOOLEAN | false | — |
| auto_composite_policy | COMBO | safe_auto | 5 options: safe_auto, strict_layer, soft_detail, replace_object, replace_tile |
| replace_tile_shape | COMBO | mask_first | 2 options: mask_first, tile_box_first |
| sampled_tilesopt | IMAGE | — | |
| tile_metaopt | TTP_SMART_TILE_META | — | |
| tile_setopt | TTP_SMART_TILE_SET | — | |
| base_imageopt | IMAGE | — | |
| source_imageopt | IMAGE | — | |
| color_reference_imageopt | IMAGE | — | |
| doneopt | BOOLEAN | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |
| weight_preview | IMAGE | — |