Nodes/DOGMA Nodes/DOGMA v43 High-Recall Scene Plan
ComfyUI Node

DOGMA v43 High-Recall Scene Plan

Tuned to find the tiny stuff

By axior·Created 4 months ago·Updated 3 days ago· 1
DOGMA v43 High-Recall Scene Plan
    • preview
    • category_1
    • sam_prompt_1
    • kind_1
    • threshold_1
    • category_2
    • sam_prompt_2
    • kind_2
    • threshold_2
    • category_3
    • sam_prompt_3
    • kind_3
    • threshold_3
    • category_4
    • sam_prompt_4
    • kind_4
    • threshold_4
    • category_5
    • sam_prompt_5
    • kind_5
    • threshold_5
    • category_6
    • sam_prompt_6
    • kind_6
    • threshold_6
    inventory_text
    project_context

    There's a specific failure this version was written for: a VLM looks at a wide city street, mentions "cars" in passing, and your segmentation pass returns two of the nine cars in frame. The distant ones are 30 pixels tall, half-occluded, and slightly melted - which is precisely the population you were trying to repair in the first place.

    High-Recall Scene Plan is the planner for that job. Same six slots, same two inputs as v42, but the selection rules and thresholds are pushed toward catching more.

    What it does

    Three passes over the text, like v42: parse explicit GROUP/CATEGORY pipe lines first, then pattern-scan the whole response for categories (people, cars, bus, trucks, buildings, grass, trees, sky, road, water, animals, furniture, machinery, products, clothing, food), then fill gaps from a context-derived fallback list. project_context steers only that last stage.

    Where it differs is the caps: three vehicle-category slots (up from two), two vegetation slots, one for everything else. So a scene with cars, buses and trucks can get all three reparsed as separate passes instead of being folded into one cars group. Then each slot gets a canonical spec from a fixed table - cars get car, bus gets bus, trees get tree, and the thresholds come out low: 0.06 for people, 0.07 for cars, 0.08 for bus/trucks/animals/trees/sky/water/grass, 0.09–0.10 for the rest.

    The preview output labels each row's origin - QWEN for parsed/scanned, FALLBACK for invented, INACTIVE for padded slots - and this is the version that started printing origins, which is why it's worth keeping visible.

    Empty slots get none plus the placeholder concept nonexistent_placeholder_object_xyz, kind OBJECT and threshold 0.50, so they contribute nothing.

    Inputs and outputs

    inventory_text and project_context (multiline STRING each). Out: preview plus six repeats of category_N, sam_prompt_N, kind_N, threshold_N.

    The kind values matter downstream: buildings is STRUCTURE, grass, sky, road and water are SURFACE, but trees comes out as OBJECT here - while the v44 planner's table calls trees a SURFACE. The family isn't perfectly self-consistent across generations, and the DOGMA crop nodes do branch on kind (SURFACE masks are cropped as large connected regions rather than per-instance patches), so if tree crops are behaving oddly, that's why.

    Install

    Manager → search DOGMA Nodes → install → restart. Or:

    cd ComfyUI/custom_nodes
    git clone https://github.com/axior/ComfyUI-DOGMA-Nodes
    

    Zero dependencies, zero models - requirements.txt is the line "No external dependencies", and this node is regex over a string. It registers under DOGMA/v43. You'll still need a VLM to write the inventory and a segmenter to consume it; SAM 3 via ComfyUI's native nodes or a community pack is the usual pairing, and note that the sam_prompt values here are plain concept phrases (not the concept:weight notation the pack's older planners use), so read your segmenter's docs if it expects something else.

    DOGMA Nodes is by axior, the studio arm of a Milan production team running commercial work through heavy ComfyUI mask chains - where "find all nine cars" is the difference between a clean plate and an embarrassing one.

    Where it goes wrong, and how to tell

    Fallback traffic is high. This version would rather over-plan than plan nothing, so on an image where the VLM was terse you can get three or four FALLBACK rows. They're harmless when nothing matches (empty mask, wasted pass) but they will find objects the VLM didn't report. Watch the preview.

    Too many masks, not enough passes. Six categories is six segmentation calls, six crop batches and six edit passes. High recall is expensive; that's the trade this version makes explicitly, and it's why the pack also ships DOGMASAMMaskCheckpointV12 to babysit VRAM between passes.

    Thresholds disagree with your segmenter. v43 runs 0.06–0.10; v42 runs 0.16–0.22 and v44 drops to 0.02–0.06. If v43 gives you empty masks where v44 gives you dense ones, your segmenter's confidence semantics are on the other side of the pack's assumptions. Try the neighbour version instead of hand-editing strings.

    CategoryDOGMA/v43

    Inputs (2)

    NameTypeDefaultDescription
    inventory_textSTRING
    project_contextSTRING

    Outputs (25)

    NameTypeDescription
    previewSTRING
    category_1STRING
    sam_prompt_1STRING
    kind_1STRING
    threshold_1FLOAT
    category_2STRING
    sam_prompt_2STRING
    kind_2STRING
    threshold_2FLOAT
    category_3STRING
    sam_prompt_3STRING
    kind_3STRING
    threshold_3FLOAT
    category_4STRING
    sam_prompt_4STRING
    kind_4STRING
    threshold_4FLOAT
    category_5STRING
    sam_prompt_5STRING
    kind_5STRING
    threshold_5FLOAT
    category_6STRING
    sam_prompt_6STRING
    kind_6STRING
    threshold_6FLOAT