DOGMA Object Settings v31 — Compact Groups / Base 0.35
Fewer, denser groups and no VLM call at all
- group_radius
- context_px
- max_source_side
- target_long_side
- max_crops
- stitch_strength
- vlm_request
- summary
DOGMAObjectSettingsV31 looks identical to v27 - same two inputs, same eight outputs, same category-keyed table - and its point is the one number that went down and the one call that went away.
The number: max_crops drops from a mostly-7/8 to a flat 5 across every real category, while the proximity gaps go up (vehicles 96→120, people 72→96, architectural details 96→120). Fewer crops, each holding more adjacent instances. On the base 9B checkpoint at ~20 steps, every crop is a full sampler run, so five instead of eight is close to a 40% cut in local render time.
The call: v31 is built around one full-frame 4B audit rather than a per-crop vision call. Version v27's vlm_request was a paragraph of instruction you sent to a VLM for every single crop. Here that output is a stub string:
v31 uses one full-frame 4B audit; no per-object VLM call.
Wire it into a vision model expecting a real request and you'll get that sentence back - the node is telling you the per-crop inspection has moved upstream, to a single audit pass whose defect hints get folded into one active category prompt. If you're building a v31-era graph, don't add a crop-level VLM stage; it's redundant by design.
The table
group_radius, context_px, max_source_side, target_long_side, max_crops, stitch_strength come out pre-set per category, with a (104, 176, 3584, 2560, 5, 0.95) fallback: vehicles (120, 192, 4096, 3072, 5, 0.96), people (96, 176, 3584, 2560, 5, 0.96), faces (64, 128, 2304, 2048, 5, 0.96), hands (56, 120, 2048, 1792, 5, 0.96), architectural details (120, 224, 4096, 3072, 4, 0.94). Small discrete things still get the tight canvases. __none__/none still maps to (48, 96, 1536, 1536, 1, 0.0) - one crop, no stitch - so an inactive slot is inert rather than destructive.
summary spells out the intent in plain text, e.g. v31 vehicles: compact grouped objects / no local tiling; proximity≤120px; context=192px; whole crop never split; model long side≤3072px, ≤3.8MP; groups≤5; stitch=0.96; Base9B 20-step CFG4 denoise0.35. That's your spec sheet, printed at runtime.
Wiring
Feed category from the audit/planner's slot output and restoration_brief from wherever your project brief lives. Six of the outputs go straight into a v31 crop node's matching inputs - group_radius, context_px, max_source_side, target_long_side, max_crops, stitch_strength (the last belongs on the stitch node, not the crop node). vlm_request you can leave dangling on this version, and summary is worth a text preview while tuning.
Install
ComfyUI Manager → search DOGMA Nodes, or:
cd ComfyUI/custom_nodes
git clone https://github.com/axior/ComfyUI-DOGMA-Nodes
# restart ComfyUI
No extra Python packages - the pack is pure PyTorch plus ComfyUI's own APIs, and the README's dependency claim holds up against requirements.txt. The README doesn't document this node, so the runtime summary is the documentation.
What to watch for
Five dense crops can hurt faces and crowds. Denser groups mean more instances sharing one prompt and one seed, which is the road to identical strangers. If identity drift appears, either move back to a v27-geometry settings node or lower your category expectations - v31 is tuned for urban scenes, not portrait crowds.
__none__ returns stitch_strength 0.0. You didn't break it. That's an intentional "don't touch this" slot; make sure your stitch node actually consumes the strength output, or the zero does nothing.
The VLM stub is a real output, not an error. If your graph has a vision node downstream that now "answers" with a sentence about full-frame audits, that's the symptom of leaving a v27-era stage in a v31 graph. Remove it.
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 | — |
| vlm_request | STRING | — |
| summary | STRING | — |