DOGMA v40 Short Category Prompt
DOGMA's canned per-category repair prompt
- prompt
- info
Every other prompt node in this family needs a vision-language model somewhere upstream, holding VRAM and adding a round trip per crop. DOGMALocalPromptV40 doesn't. It has its own answers, indexed by category, and it's the one to reach for when you want the local repair pass to be dumb, deterministic and fast.
What it actually outputs
You wire in category (cars, people, buildings, grass …) and kind - the three-way classification the pack's scene planners emit: OBJECT, STRUCTURE or SURFACE. The node canonicalises the category against its own vocabulary and returns a finished prompt from a canned table. For cars, for instance, that's a paragraph about refining the existing vehicles into clean coherent period-correct Italian vehicles, preserving count, position, colour and shape, and explicitly not adding or removing cars. There are canned paragraphs for bus, trucks, people, buildings, grass, trees, sky, road and water.
Anything outside that table falls through to generic templates built from kind: a SURFACE gets "improve the existing surface with coherent natural photographic micro-detail while preserving its footprint, colour and lighting"; a STRUCTURE gets structural detail, edges and repetition; everything else gets shape and detail. Those generic branches splice in the first ~180 characters of project_context - the multiline sentence describing what the project is - which is how the canned prompt still knows it's looking at a street rather than a studio product shot.
Category none returns PRESERVE IMAGE. immediately, which is the no-op contract the rest of the pack reads.
Why this is genuinely useful
Three reasons, all practical.
No VLM, no VRAM spike. If you're already tight because a Klein 9B is loaded, adding a Qwen-VL to caption twenty crops is the kind of thing that pushes a 16GB card into a swap. This node costs nothing.
Deterministic. Same category, same prompt, every run. When you're bisecting why group 7 keeps coming out blurry, a prompt that changes with the VLM's mood is one more variable you don't need.
It encodes the preserve rules for you. Every template in the table says some version of "keep count, position, scale, colour, silhouette" or "preserve the exact footprint". That's the actual hard part of local repair - the phrasing is what stops a low-denoise pass from going wandering.
Where it loses to the v34/v35/v36 prompt nodes
The generic branches are generic. If your subject is a stained-glass window or a flock of pigeons, kind-based templating won't know what it should look like, and a VLM-written instruction will beat it. The canned table's subject matter is also pretty specific to the author's own project - 1970s Milan street photography is baked into the strings in a way you can't configure. That's fine, the language still works as a generic repair instruction, but don't be surprised by it.
Inputs and outputs
category, kind and project_context in; prompt and info out. All three are STRING inputs meant to be wired from a planner node rather than typed, though you can type them if you're prototyping. Output info names the category and kind it resolved.
Install
Manager → DOGMA Nodes, or:
cd ComfyUI/custom_nodes
git clone https://github.com/axior/ComfyUI-DOGMA-Nodes
Restart. No pip installs - the pack declares no dependencies and its requirements.txt is a single comment confirming it. You still supply the models: FLUX.2 Klein for the pass itself.
Where it bites
Type the kind carefully if you're doing it by hand: OBJECT, STRUCTURE, SURFACE, uppercase, and it's a plain string, not a dropdown - so a typo like Surface doesn't error, it just lands you in the generic OBJECT branch and you'll wonder why your sky got object-shaped instructions.
Second, project_context is truncated to its first sentence, so put the useful sentence first rather than the fourth.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| category | STRING | — | |
| kind | STRING | — | |
| project_context | STRING | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| prompt | STRING | — |
| info | STRING | — |