DOGMA Category Settings v24 — True Inpaint
The settings node that finally respects your mask
- group_radius
- context_px
- max_source_side
- target_long_side
- max_crops
- stitch_strength
- edit_prompt
- summary
Of the three DOGMA settings nodes, this is the one whose prompt starts with the sentence "TRUE MASKED LOCAL INPAINT of the CURRENT MASTER." That one line is the difference between v24 and its siblings, and it's the reason it's the one I'd wire first if you're doing actual masked work.
Why the distinction matters
There's a real fork in how people run a second pass at high resolution, and the KB is blunt about it. Instruction-editing models took most of the "fix what's wrong" job, but they regenerate the whole frame - every unmasked pixel comes back close but not identical, and it compounds across a chain of edits. The thing masks still uniquely buy you is the guarantee that nothing outside the boundary moved, which is why the 2026 hybrid everyone converged on is crop → edit → stitch rather than "send the whole frame through Klein and hope."
v24 is a settings node for that hybrid. It emits a prompt that tells the model the current master crop is simultaneously the reference latent and the spatial ground truth, and that only the supplied inpaint mask may change. v23 says something similar but softer - it's a reconstruction pass. v24 is an inpaint pass.
How it works
Same shape as v23: substring-match the category to a family, read a table, build a prompt. The table is more conservative, and that's deliberate - the comment in the source says the smaller groups exist to avoid shrinking enormous areas into one 2K crop, which is the failure mode you get when 1000px grouping radii meet a 1792px model target.
| family | group radius | context | target long side | crops | stitch | |---|---|---|---|---|---| | vehicles | 340 | 192 | 1792 | 8 | 0.90 | | people | 300 | 192 | 1792 | 8 | 0.88 | | roadway_people | 280 | 208 | 1792 | 8 | 1.00 | | street_objects | 320 | 192 | 1792 | 8 | 0.88 | | faces (keyword) | 220 | 160 | 1664 | 8 | 0.86 | | hands (keyword) | 200 | 160 | 1664 | 8 | 0.88 | | road / architecture / vegetation | 800 | 160 | 1664 | 4 | 0.00 |
Note the two sub-string overrides: if your category contains face or hand, the whole row is swapped for a tighter crop and a smaller source cap. That's the classic detailer case - small region, needs more context than it needs pixels - and here it's automatic rather than something you remember to do.
As in v23, the broad-surface families come out at 0.00 and are labelled support/protection only. The prompt for those literally reads "PROTECTION/SUPPORT ONLY. Do not perform a generative local edit for this category."
The inputs and outputs
Two string inputs: category and restoration_brief - the second is a multiline box where your own phrasing gets appended to the generated policy, so "preserve the 1970s colour cast" lands on every category you run through it.
Eight outputs, same names as v22/v23: group_radius, context_px, max_source_side, target_long_side, max_crops, stitch_strength, edit_prompt, summary. Numbers drive the crop node, stitch_strength drives the stitch, edit_prompt goes to the text encoder for the local sampler, summary is your receipt. summary telling you TRUE masked ReferenceLatent inpaint versus support/protection only is the quickest way to see whether the category you typed actually landed.
Install
cd ComfyUI/custom_nodes
git clone https://github.com/axior/ComfyUI-DOGMA-Nodes
Or ComfyUI Manager → search DOGMA Nodes, or comfy node install comfyui-dogma-nodes. The pack ships requirements.txt containing a comment and nothing else, and dependencies = [] in pyproject.toml, so there is no pip step and no compiled extension to break. Nothing to download either - it configures a graph that loads its own FLUX.2 Klein 9B or whatever else you point it at. MIT.
Where people get burned
The upstream mask is load-bearing. v24 emits a prompt promising that only the mask changes; if the mask your graph is actually stitching with is a dilated, feathered blob, you've made a promise the pipeline doesn't keep. Pair it with DOGMAFastDualMaskV34 or DOGMADualMaskV545, both of which produce a wide generation mask plus a tight stitch mask - that separation is what makes the sentence true.
Same version muddle as the rest of this pack: three settings nodes, no README section for any of them, and the numbering goes up over time without the old ones going away. v24 is the newest of the three and the one whose prompt is written for masked work; v22 is the gentle "anchor to the current master" pass, v23 is full-noise-on-objects-only. If a workflow came with one of them and you can't tell which, look at the first line of the edit_prompt string.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| category | STRING | — | |
| restoration_brief | STRING | — |
Outputs (8)
| Name | Type | Description |
|---|---|---|
| group_radius | INT | — |
| context_px | INT | — |
| max_source_side | INT | — |
| target_long_side | INT | — |
| max_crops | INT | — |
| stitch_strength | FLOAT | — |
| edit_prompt | STRING | — |
| summary | STRING | — |