DOGMA Sector Plan v26.1 — Text Safe
The planner that refuses to let AI redraw your signage
- plan_preview
- category_1
- sam_prompt_1
- sam_threshold_1
- category_2
- sam_prompt_2
- sam_threshold_2
- category_3
- sam_prompt_3
- sam_threshold_3
- category_4
- sam_prompt_4
- sam_threshold_4
- category_5
- sam_prompt_5
- sam_threshold_5
- category_6
- sam_prompt_6
- sam_threshold_6
What this thing is
DOGMASectorPlanV261 is a text parser dressed up as a planning node. You feed it free text - usually the raw answer a local VLM gave you when you asked "what object categories are in this frame?" - and it hands back a clean, normalized list of target categories, each with a ready-made SAM detection prompt and a confidence threshold.
It exists because the rest of the DOGMA semantic detailer pipeline needs typed inputs, not prose. The chain these nodes are built for is the same four-step loop every automatic detailer runs (detect → crop → re-render → paste back), just blown up to 4K masters: a planner picks what to repair, a SAM detector turns that into masks, a crop node builds region crops, Klein re-renders each crop, and a stitch node puts them back. This node is step one, and step one is where most of the failure modes get prevented.
The v26.1 suffix is the interesting part. DOGMA ships each R&D iteration as a frozen node - v16, v21, v22, v26, v26.1, v27, v35.4, v36, v44, v56.4 - so old graphs keep running exactly as they did. Trailing numbers are iterations, not quality tiers. Here, ".1" means: same planner, one new rule.
How it works
The parser is deterministic and a little ruthless. It strips bullets and list numbering, then keyword-maps each line onto a canonical family. Any line containing sign, signage, billboard, advert, poster, lettering, logo, or license plate is thrown away - mapped to __none__ and never routed to a local generative sector. That is the whole "Text Safe" claim, and the reasoning is sound: generated lettering is the single easiest way to turn a plausible photo into an obvious AI fake, and it's exactly the thing a detailer loves to "fix."
The parent v26 also drops broad scene words (road, sky, wall, background, haze, asphalt, tree) to __none__, keeps at most three real categories, and stuffs them into slots 2, 3 and 4 of a six-slot layout. Slot 1 and slots 5–6 stay empty - legacy wiring from the v16/v21 graphs, kept so you can hot-swap the planner without re-cabling. It also quietly excludes storefronts from the "architectural details" SAM prompt, because storefront masks reliably swallow shop lettering.
Inputs and outputs
planner_text is the only input, and it's forceInput - meaning it has no widget on the node, so you must wire a string into it (a text node, a primitive, or your VLM's STRING output). Beginners hit this one first: there's no box to type in.
On the output side, plan_preview is the one to look at. It renders a per-slot dump of what the parser decided, which is your only feedback loop on a node that silently deletes input. Wire it to a Show Text node and read it before you spend GPU time. Then, per slot 1–6: category_* goes to your SAM detector or to a sector settings node, sam_prompt_* is the detection prompt (things like window:220,door:120,balcony:120,architectural detail:160 - class names with instance caps, in the GroundingDINO/SAM style), and sam_threshold_* is the matching confidence cut-off (0.16 for that slot).
Install
ComfyUI Manager → search DOGMA Nodes, or clone it:
cd ComfyUI/custom_nodes
git clone https://github.com/axior/ComfyUI-DOGMA-Nodes
# restart ComfyUI
requirements.txt is literally a comment saying there are no dependencies, and it's honest - the whole pack is PyTorch plus ComfyUI's own APIs. No model downloads, no API keys, no LoRA. You will need a SAM-capable detector from another pack to consume these strings, since the DOGMA node only produces the prompt, not the masks.
Gotchas
- Text categories vanishing is the feature, not a bug. If fixing a readable shop sign is the job, v26.1 is the wrong planner - you'll want a prompt path that keeps signage and accepts the risk.
- Because broad words are discarded,
sky,road,pavementandbackgroundsilently produce nothing. Your planner text has to name actual objects. - This pack has essentially no community footprint - zero threads in the reddit corpus name "DOGMA Nodes", and the README documents only its WAN VACE and sampler nodes, not this half. You are reading the source, not a tutorial. That's also why the pack exists in the state it does: it's the production toolkit of DOGMA, an Italian studio that does AI work for TV ads and film, published largely as-is.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| planner_text | STRING | — |
Outputs (19)
| Name | Type | Description |
|---|---|---|
| plan_preview | STRING | — |
| category_1 | STRING | — |
| sam_prompt_1 | STRING | — |
| sam_threshold_1 | FLOAT | — |
| category_2 | STRING | — |
| sam_prompt_2 | STRING | — |
| sam_threshold_2 | FLOAT | — |
| category_3 | STRING | — |
| sam_prompt_3 | STRING | — |
| sam_threshold_3 | FLOAT | — |
| category_4 | STRING | — |
| sam_prompt_4 | STRING | — |
| sam_threshold_4 | FLOAT | — |
| category_5 | STRING | — |
| sam_prompt_5 | STRING | — |
| sam_threshold_5 | FLOAT | — |
| category_6 | STRING | — |
| sam_prompt_6 | STRING | — |
| sam_threshold_6 | FLOAT | — |