Nodes/DOGMA Nodes/DOGMA Tile Prompt v34 A — Short / Front-Loaded
ComfyUI Node

DOGMA Tile Prompt v34 A — Short / Front-Loaded

Put the noun first, because the model only reads the start

By axior·Created 4 months ago·Updated 3 days ago· 1
DOGMA Tile Prompt v34 A — Short / Front-Loaded
    • prompt
    • clean_report
    tile_report
    project_context

    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 says none / 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_context is 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.

    CategoryDOGMA/Semantic Detailer

    Inputs (2)

    NameTypeDefaultDescription
    tile_reportSTRING
    project_contextSTRING

    Outputs (2)

    NameTypeDescription
    promptSTRING
    clean_reportSTRING