Nodes/DOGMA Nodes/DOGMA V50 Clean Tile Prompt
ComfyUI Node

DOGMA V50 Clean Tile Prompt

Stripping a VLM answer down to one usable phrase

By axior·Created 4 months ago·Updated 3 days ago· 1
DOGMA V50 Clean Tile Prompt
    • prompt
    • preview
    vlm_output

    The v50 generation of this pack abandoned the wall-of-guardrails prompt on purpose. Its tile prompt is a phrase - "1970s Italian cars on a road" - and this node is the janitor that makes sure that's actually what comes out of your VLM.

    What it does

    It scans the VLM's output for a line starting with PROMPT:, takes everything after the colon, strips the wrappers a chatty model adds anyway (backticks, code fences, surrounding quotes, a stray leading prompt: or answer:), collapses whitespace, and hard-caps the result at 16 words. No PROMPT: line at all? It falls back to the first non-empty line. Nothing usable? It returns the string existing photographic scene, which is bland on purpose - better a weak prompt than a broken graph.

    Outputs prompt and preview. The preview is literally prefixed ACTUAL KLEIN TILE PROMPT: <phrase>, which is the node's real second job: across a run it's the cheapest audit of what the model was actually asked to do, without cracking open the workflow JSON.

    Why short beats long here

    Different bet than v25–v44, and it's a defensible one. On an LLM-encoded model like Klein, a long constraint paragraph is read as language, but it's also a lot of surface area for the model to satisfice against - you can obey "preserve object count" and still drift, and now nobody knows which clause mattered. A three-to-ten word phrase naming the visible subject gives the model one thing to anchor to and lets the tile's own pixels do the rest, which is the regime the KB's Flux 2 doc describes for edits: technical, direct instructions rather than scene description. The companion node DOGMAV50TileInstruction writes the matching VLM instruction, and it's explicit that the VLM should say what it sees, not what it should do - "Do not say restore, improve, detailed, high quality, damaged, blurry or grainy."

    Inputs and outputs

    One required input, vlm_output (STRING, multiline) - your VLM node's raw text. Outputs prompt (STRING) for your conditioning, preview (STRING) for a text display node. There are no knobs. That's the design: nothing to misconfigure.

    Install

    ComfyUI Manager → search DOGMA Nodes, or:

    cd ComfyUI/custom_nodes && git clone https://github.com/axior/ComfyUI-DOGMA-Nodes
    

    Restart. Zero dependencies - the pack's requirements.txt reads # No external dependencies. - and no models involved, it runs on the text your VLM node produced. The pack README covers only the WAN VACE prep nodes and the samplers; the semantic suite registers itself from dogma_semantic_v5641.py, so there's no upstream writeup of this node.

    Where it bites

    16 words is not many, and the cut is silent. A VLM that answers with a full sentence ("In this tile I can clearly see several parked cars along the wet street") loses its tail. preview shows you exactly what survived, and if your phrases are consistently truncated, that's a signal to tighten the VLM instruction - DOGMAV50TileInstruction already asks for 3–10 words.

    A missing PROMPT: prefix downgrades you to "first line of output". Chatty preamble then becomes your prompt verbatim, quotes and all. The stripping handles the common wrappers, not a model that writes an essay before answering.

    Short prompts don't add information the tile doesn't have. This is the honest limit of the v50 approach: if the VLM misreads the tile, a crisp phrase is a crisp wrong instruction. That's why the v50 siblings run one phrase per category mask rather than one prompt for everything in the frame.

    It's Klein-flavoured by design. The phrase style assumes a prompt-following editor model at 4 steps and CFG 1. Feed it into a tag-based SDXL checkpoint and you've handed it a prompt with no tags.

    CategoryDOGMA/v50

    Inputs (1)

    NameTypeDefaultDescription
    vlm_outputSTRING

    Outputs (2)

    NameTypeDescription
    promptSTRING
    previewSTRING