DOGMA Tile Prompt v34 A — Short / Front-Loaded
Put the noun first, because the model only reads the start
- prompt
- clean_report
Take a VLM report that says a tile contains three parked cars, a wet kerb and a shopfront, and turn it into:
RESTORE THREE PARKED CARS AND A WET KERB. Reconstruct only these existing
elements with coherent geometry and natural photographic detail...
Subject first, uppercase, action verb in front of it. That's the whole thesis of this composer - v34 "A", the pass-A prompt writer for the first semantic tile pass - and it's an admission about attention: the first tokens of a prompt carry disproportionate weight on these models, so anything important goes at the front and the constraints go behind it.
How it extracts
It parses the VLM report as labelled lines. Whitelist the fields your prompt instruction asked for and they'd show up as:
FOCUS: parked cars, wet kerb
PROTECT: smooth sky, existing shop lettering
Both fields get read with a case-insensitive prefix match, cleaned to a single line, and capped - FOCUS at 180 characters, PROTECT at 160, and the whole report at 420. Then the template fills:
- No
FOCUS, or it saysnone/n/a→ fall back to "existing visible objects, edges and materials". The prompt is never subjectless. - No
PROTECT→ fall back to true blur, smooth sky or haze, and existing text/logos. project_contextis capped at 120 characters and appended as style context only where visibly supported, which is the same "context is an adjective, never evidence" rule the rest of the family enforces.
The body of the prompt is a fixed block: keep exact count, position, scale, direction, pose, occlusion and focus; leave the protected regions unchanged; no new or missing objects; glyphs unchanged.
Outputs are prompt and clean_report. The clean report is the raw report flattened to one line and truncated - useful mainly to confirm the VLM actually emitted FOCUS: and PROTECT: instead of prose, because if it didn't, you're running on fallbacks and the tile prompts will all look suspiciously identical.
Install
ComfyUI Manager → search DOGMA Nodes, or:
cd ComfyUI/custom_nodes && git clone https://github.com/axior/ComfyUI-DOGMA-Nodes
Restart ComfyUI. No dependencies - the pack's requirements.txt is a single comment, # No external dependencies. - and no model files. Like the rest of the semantic detailer suite, this node is not described in the pack README at all; it registers from dogma_semantic_v5641.py at import.
Where it bites
The field names must match your instruction prompt. FOCUS: and PROTECT: are a contract between you and the VLM. Ask your VLM node for a different format and both fields come back empty, the node silently substitutes defaults, and every tile gets nearly the same prompt. clean_report is the tell.
Front-loading is a bet on brevity. 180 characters of FOCUS is about a sentence. If your tile genuinely has eight things in it, they can't all be at the front - push the count down with better tiling, or accept that the tail is decoration.
It's pass A of two. This writer is for the first pass, where the goal is to reconstruct detail that exists. The second pass has its own writer (v34 B) with a different objective - repair what the first pass made worse - and mixes badly with this one: using A's prompt in the pass-B slot leaves the pass-B gate unable to tell "nothing to fix" from "fix everything".
Short prompts do not make a distilled model smarter. 4 steps at CFG 1 is the intended configuration; a tight prompt won't rescue an over-cranked CFG or a tile crop that cut through the subject.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| tile_report | STRING | — | |
| project_context | STRING | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| prompt | STRING | — |
| clean_report | STRING | — |