Nodes/ComfyUI-ArchAi3d-Qwen/๐ŸŽฏ Smart Tile Conditioning
ComfyUI Node

๐ŸŽฏ Smart Tile Conditioning

Per-tile prompts, encoded in a single CLIP pass

By amir84ferdosยทCreated 11 months agoยทUpdated 5 months agoยท 70
๐ŸŽฏ Smart Tile Conditioning
  • clip
  • bundle
  • conditionings
  • negative
  • debug_info
โ—„tile_promptsโ–บ
โ—„negative_promptblurry, low quality, artifacts, distortedโ–บ
โ—„strip_position_prefixtrueโ–บ

This is the node that makes tiled upscaling intentional instead of mechanical. Plain tiled upscaling runs the same prompt on every tile. Smart Tile Conditioning gives each tile its own text prompt - "this tile is the sky", "this tile is the brick wall" - and encodes them all with one CLIP load, then hands the whole list to the sampler. If you've ever wanted to say "detail the water in the lower-right tile but don't touch the clouds," this is the node that makes that sentence real.

It's part of the "Smart Tile" subsystem of ComfyUI-ArchAi3d-Qwen (Amir Ferdos's pack). The per-tile prompts themselves come from the pack's Smart Tile Prompter node (a sibling that writes descriptive prompts for each tile, possibly with position prefixes like "This top-left tile..."). This node is where those strings become conditioning.

Inputs

  • clip - the CLIP model. One load, all tiles encoded from it.
  • tile_prompts - comma-separated prompts, one per tile in grid order. The tooltip points at Smart Tile Prompter's tile_prompts_labels output as the intended source.
  • negative_prompt - one global negative applied to every tile (default: "blurry, low quality, artifacts, distorted"). No per-tile negatives here - that's a reasonable simplification.
  • bundle (optional) - a SMART_TILE_BUNDLE from Smart Tile Prompter; connects and it auto-fills tile_prompts. You don't type anything.
  • strip_position_prefix (default on) - removes phrases like "This top-left tile..." before encoding. The author's reasoning: position info already lives in the SEGS crop, so the model doesn't need it repeated in text, and the shorter prompt encodes cleaner.

Outputs: conditionings (a CONDITIONING_LIST - one entry per tile, matched by index to the SEGS) and negative (the single negative conditioning). Both feed the Smart Tile Sampler or Detailer.

Installing

cd ComfyUI/custom_nodes
git clone https://github.com/amir84ferdos/ComfyUI-ArchAi3d-Qwen.git
cd ComfyUI-ArchAi3d-Qwen
pip install -r requirements.txt

Or ComfyUI Manager โ†’ "ArchAi3d Qwen". No model downloads (it encodes with whatever CLIP you connect). Free for personal use; commercial use needs a license.

The honest take

The single-CLIP-load batching is the quiet win here - encode N prompts without reloading the CLIP N times, which is exactly the kind of slowdown that makes per-tile prompting impractical elsewhere. The catch is that it's only as good as the tile prompts you feed it, and the natural source (Smart Tile Prompter) is a sibling node you'll also need to install along with this pack - it ships in the same repo. If you're hand-writing prompts instead, keep them terse; the strip_position_prefix toggle exists because verbose prefixed prompts mostly just cost you tokens.

CategoryArchAi3d/Upscaling/Smart Tile

Inputs (5)

NameTypeDefaultDescription
clipCLIPCLIP model for text encoding
tile_promptsSTRINGComma-separated tile prompts from Smart Tile Prompter (tile_prompts_labels output)
negative_promptSTRINGblurry, low quality, artifacts, distortedGlobal negative prompt applied to all tiles
bundleoptSMART_TILE_BUNDLEConnect bundle from Smart Tile Prompter (auto-fills tile_prompts)
strip_position_prefixoptBOOLEANtrueRemove positional phrases like 'This top-left tile...' for cleaner conditioning

Outputs (3)

NameTypeDescription
conditioningsCONDITIONING_LISTโ€”
negativeCONDITIONINGโ€”
debug_infoSTRINGโ€”