DOGMA Category Settings v12 — Full 4 Step
Full 4-step denoise for everyone, and a blend alpha per surface
- sam_threshold
- group_radius
- context_px
- max_source_side
- target_long_side
- max_crops
- denoise
- summary
- stitch_strength
The v12 settings node is where this pack stops hedging. Same single category input, one more output than v11: sam_threshold, group_radius, context_px, max_source_side, target_long_side, max_crops, denoise, summary, and now stitch_strength.
Two changes define the generation, and both are worth understanding because they're the pivot the later versions build on.
1. denoise goes to 1.00 for every active category, permanently
The docstring says it plainly: "The diffusion schedule itself stays full 4-step (denoise=1.0) for every active Klein masked-inpaint pass." In v11, people sat at 0.80 and road at 0.25. In v12 the model always gets to do a full pass on the masked region; the restraint moves out of the sampler and into the final blend.
That's a real philosophical choice, and it lines up with how step-distilled models behave. On a 4-step distilled flow-matching model, a denoise of 0.35 isn't a gentle nudge - it's a different, off-distribution trajectory, and the thing that was trained to happen in four steps now happens in one and a half. Cleaner to run the pass as designed and then decide how much of the result you keep.
2. The decision is now stitch_strength - a straight alpha per family
The final blend alpha, per family:
vehicles,roadway_people,sidewalk_people,people,animals- 1.00, the generated pixels fully replace the sourcesignage- 0.95street_objects- 0.90architecture- 0.55vegetation- 0.50water- 0.50road- 0.40sky- 0.35other- 0.75none- 0.00
That single column is the clearest window into what this author actually wanted. Break a car and you'll notice; nobody can tell a repaired stretch of asphalt from an untouched one, and a regeneration pass over a large smooth gradient is a great way to introduce banding. So road and sky get the model's contribution cut to a third, while a person gets all of it.
The rest of the table also loosens slightly versus v11 - thresholds drop a touch on vehicles (0.14, unchanged) and architecture (0.34, unchanged), radii and source bounds stay similar, and the surface rows still keep their high thresholds. The changes are mostly denoise flattening plus the new alpha.
Wiring
Fan the geometry outputs into your crop node, sam_threshold into the segmenter, stitch_strength into the stitch/composite strength. summary reads: "vehicles: SAM=0.14, source≤2400, model≤1536, Klein full 4-step denoise=1.00, final stitch alpha=1.00" - the fastest way to confirm which row a sector landed on.
If you're running the distilled Klein variant (4 steps, CFG 1), the "full 4-step" framing is literal. On the 9B base model, which is guidance-distilled rather than step-distilled, the same row means a full 20-50 step pass at CFG 4-5 - and a denoise of 1.0 there matches the author's stated v31 recipe of "Base9B 20-step CFG4 denoise 0.35" only in spirit, since 0.35 is a partial schedule. Read the row as "don't shorten the schedule, control the blend instead" rather than as a literal step count.
Install
cd ComfyUI/custom_nodes
git clone https://github.com/axior/ComfyUI-DOGMA-Nodes
Or Manager → DOGMA Nodes, restart. No pip install, no downloads; the models (VLM, segmenter, Klein) are yours to supply. The README doesn't cover the semantic family at all.
Common issues
Everything looks slightly flat. You wired stitch_strength to the wrong end - it's an alpha for how much generated result you keep, not a strength multiplier on the sampler. 0.35 on sky means 65% of the original is still there.
A building changed identity. Architecture at 0.55 is still a big change. If the region is large and detailed, the prompt has to carry the identity constraint; the alpha can't.
The output is softer than the source. A full-denoise pass at 4 steps on a low-detail surface will do that, which is exactly why the alpha exists. Lower the alpha before you lower denoise - that's the v12 lesson.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| category | STRING | — |
Outputs (9)
| Name | Type | Description |
|---|---|---|
| sam_threshold | FLOAT | — |
| group_radius | INT | — |
| context_px | INT | — |
| max_source_side | INT | — |
| target_long_side | INT | — |
| max_crops | INT | — |
| denoise | FLOAT | — |
| summary | STRING | — |
| stitch_strength | FLOAT | — |