Prompt Director: Editable Master Instructions
The one text box that steers the whole upscale
- global_instruction
- prompt_system
- combined_instructions
The Prompt Director is where Smart Upscaler's personality lives. Every other node in the pack is automated - the analysis, the tiling, the per-tile prompts, the stitching all run on defaults. This one is the plain-English master instruction that tells the whole pipeline what job it's doing. Want a faithful 2x upscale? A style change? A time-of-day shift? A restoration of a smashed-up scan? Type that here, in prose, and every tile prompt downstream gets built around it.
It's called "Editable Master Instructions" in the menu and that's exactly right: the node's whole point is that you don't touch the ten other nodes, you edit the recipe.
What you actually set
The node arrives pre-filled in the shipped workflow (with a Google Earth→photograph example baked in as the default). Three required text fields:
- instructions - the complete job description. TASK, image analysis notes, and global context are all written as readable lines inside this one box. This is the control the README says matters.
- user_request - what you want changed: a style, a time of day, a specific edit. Leave blank when the instructions already describe the whole job.
- known_false_detections - comma-separated things you know are NOT in the picture ("no car", "no tower"). They're kept out of the analysis and out of every tile prompt - and, importantly, they never become negative prompts. This box is the final word on what the scene contains.
Then the options that fine-tune how prompts get written:
- tile_detail - how much verified local detail each tile prompt carries:
Simple(one short line) throughAdaptive by Tile(the recommended default - short for plain tiles, rich for busy ones) up toMaximum(names every visible item). More is not better; it depends on your model, and lower is faster. This is the other control that matters. - sampler_prompt_style -
Instruction editfor Klein/Qwen Edit models,Plain descriptionfor Z-Image Turbo/SDXL/Flux. Set automatically by the preset's model family; the edit-vs-denoise split is the most common cause of bad results in this pack. - prompt_suffix - plain quality words appended to every tile prompt. Not an instruction, just text the sampler reads. Leave empty for none.
- tile_colors - off by default, and the tooltip is blunt: leave it off. Turn it on only for the specific "checkerboard tint" problem, where a model paints whole tiles one flat shade because tile prompts name colours.
Outputs
Three: global_instruction (the master text), prompt_system (the SMART_PROMPT_SYSTEM contract that carries all of this downstream), and combined_instructions - the runtime blueprint containing the full-image instruction, the spatial filtering rules, and the final prompt formula. prompt_system and combined_instructions wire into SmartTileJobDirector, SmartCachedTilePromptGenerator, and the audit log.
Presets
The Load Preset list ships empty, deliberately - the defaults come from code and the shipped workflow carries its own tuned instructions, so nothing depends on it. It fills two ways: set your fields and click Save My Preset to Disk (survives updates, appears under Saved:), or drop a pack's .json into presets/packs/ and restart (format documented in presets/packs/README.md).
Install
Via ComfyUI Manager (search "ComfyUI-Smart-Upscaler") or:
cd ComfyUI/custom_nodes
git clone https://github.com/HallettVisual/ComfyUI-Smart-Upscaler
then restart. Also grab ComfyUI-KJNodes and rgthree-comfy from the Manager for the shipped workflow. No Python dependencies; the ~13 GB of models are the only heavy lift (list in docs/MODELS.md).
Troubleshooting
The pack's diagnostic loop starts here. If part of the picture comes out wrong, read that tile's prompt (the SmartTileInspector shows you exactly what each tile was told), and it is almost always fixable from this node rather than by swapping models. A tile that shows "cracked, smeared wall" got told that from somewhere - restate the goal so the instruction says what should be there. And if you've switched between an edit model and a denoise model, check sampler_prompt_style first; that mismatch fails silently and completely.
Inputs (7)
| Name | Type | Default | Description |
|---|---|---|---|
| instructions | STRING | TASK: Google Image Enhance Turn this Google Earth image into a realistic photograph. Keep everything exactly where it is - the same buildings, streets, layout, and camera angle - and just make it look like a real, sharp photo. Anything that looks broken, melted, smeared, or like debris is a capture glitch, not real damage: fix it into how it should really look. Don't add anything that isn't clearly there, and never assume what kind of place this is - describe only what is visible. Any big continuous area the image really has should look the same everywhere it appears. | The complete job description, normally filled in by Load Preset at the bottom of this node. TASK, IMAGE ANALYSIS, and GLOBAL CONTEXT settings are written inside this one box. |
| user_request | STRING | What you want changed - a style, a time of day, a specific edit. Leave blank when the Instructions already describe the whole job. | |
| known_false_detections | STRING | Comma-separated things you know are NOT in the picture. They are kept out of the analysis and out of every tile prompt; they never become negative prompts. | |
| prompt_suffixopt | STRING | Fine detail | Plain words added to the end of every tile prompt - not an instruction, just text the sampler reads (quality tags, a style word). Leave empty for none. |
| tile_detailopt | COMBO | Adaptive by Tile (recommended) | How much verified local detail each tile prompt carries. Simple: one short literal line. Adaptive: short for plain tiles, rich for complex ones. Complex/Detailed: full materials, colors, and patterns. Maximum: name every visible item - made for samplers that only render what is named. Lower settings are faster. |
| sampler_prompt_styleopt | COMBO | Instruction edit (Klein, Qwen Edit) | Set automatically by the chosen preset's model family. Edit models (Klein, Qwen Edit) get an edit command plus the tile description. Denoise models (SDXL, Flux) get a plain complete description and use the negative prompt. |
| tile_colorsopt | COMBO | Off - change nothing (default) | Leave this Off - Off changes nothing at all. Turn it On only for the one problem it fixes: a model painting whole tiles a flat shade (the checkerboard tint), which happens when tile prompts name colors. On deletes color names from the finished tile prompt. Colors you typed into Your Request are always kept. |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| global_instruction | STRING | — |
| prompt_system | SMART_PROMPT_SYSTEM | — |
| combined_instructions | STRING | — |