TTP Smart Tile Prompt Override
Rewriting just the tiles you actually care about
- tile_set
- tile_set
- override_json
- summary
Say your tile set has eight tiles, the QwenVL builder wrote a decent generic caption on all of them, and the only one you actually want to change is the face - you don't want to re-run the whole prompt pass just to fix one tile's wording. That's exactly what Prompt Override is for: pick which tiles to touch, decide how their text changes, and leave everyone else exactly as they were.
How it works
It's a filter followed by a rewrite. First you pick selector_type and selector to decide which tiles match - by index (T3), by name, by the semantic label a tile was given (the README's own example is selector_type=label, selector=face), by prompt_tag, by source, by semantic category or role, by a substring the current prompt contains, or by regex if you need something more surgical. unmatched_mode then decides what happens to everything that didn't match: keep leaves them untouched, and drop_unmatched is for local-edit workflows - you're only running the matched tiles through an edit sampler, and downstream Assemble is expected to pull the rest of the canvas straight from the source image instead of a processed tile.
Once you've got your matched tiles, prompt_mode and negative_mode control the actual edit, each with the same six options: keep, replace, prepend, append, find_replace, or clear. prompt_text/negative_text supply the new text for replace/prepend/append/find_replace, and find_text is the search string when you're doing a targeted find-and-replace instead of a wholesale rewrite.
The inputs and outputs that matter
Required: tile_set, selector_type (default label), selector, unmatched_mode (default keep), prompt_mode (default replace), prompt_text, negative_mode (default keep), negative_text, find_text. There's no optional block - everything about this node is one of those nine fields, and most of them you'll leave at default except selector/prompt_text.
Outputs: tile_set goes onward in the chain - usually into Semantic Rank or straight into Loop Source. override_json is a full dump of what changed, and summary is the quick human-readable version - how many tiles matched and what happened to them. Both are there for debugging, not for wiring anywhere.
Installing it
ComfyUI Manager: search "Comfyui_TTP_Toolset". Manual:
cd ComfyUI/custom_nodes
git clone https://github.com/TTPlanetPig/Comfyui_TTP_Toolset
then restart. Prompt Override is pure text manipulation on the tile set's metadata - no models, nothing extra to download, it just comes along with the rest of the pack.
Where people get tripped up
The single most common mistake is a selector that doesn't match anything, which silently does nothing rather than erroring - if your override doesn't seem to take effect, set selector_type=all temporarily to confirm the node is actually wired into the chain, then narrow the selector back down and check summary to see whether it actually matched tiles this time. find_replace mode needs a non-empty find_text to do anything; if you leave it blank expecting prompt_text to just get appended, use append mode instead. And if you're building a local-edit workflow and the untouched regions of your final image come out wrong, double check you set unmatched_mode=drop_unmatched and that Assemble's own settings are pointed at source_image for the fallback - keep mode will still run the unmatched tiles through your sampler chain, which isn't what you want if the goal was to only touch the face.
Inputs (9)
| Name | Type | Default | Description |
|---|---|---|---|
| tile_set | TTP_SMART_TILE_SET | — | |
| selector_type | COMBO | label | 10 options: all, index, name, label, prompt_tag, source, +4 |
| selector | STRING | — | |
| unmatched_mode | COMBO | keep | 2 options: keep, drop_unmatched |
| prompt_mode | COMBO | replace | 6 options: keep, replace, prepend, append, find_replace, clear |
| prompt_text | STRING | — | |
| negative_mode | COMBO | keep | 6 options: keep, replace, prepend, append, find_replace, clear |
| negative_text | STRING | — | |
| find_text | STRING | — |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| tile_set | TTP_SMART_TILE_SET | — |
| override_json | STRING | — |
| summary | STRING | — |