Nodes/DOGMA Nodes/DOGMA Sector Plan v26 — 3 Non-Destructive Targets
ComfyUI Node

DOGMA Sector Plan v26 — 3 Non-Destructive Targets

Three local targets, and a slot layout that says don't touch the rest

By axior·Created 4 months ago·Updated 3 days ago· 1
DOGMA Sector Plan v26 — 3 Non-Destructive Targets
    • 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
    planner_text

    The sector-plan generation of this pack is built around a single opinion: you do not repair everything locally. Broad, homogeneous areas - sky, road, grass, facades - go through one global base pass. What's left, the discrete objects that break in ways viewers notice, get the local crop-and-repair treatment. This node turns a category list into three of those local targets.

    What it does

    You give it planner_text: a VLM's list of what's in the image, one category per line (commas work too). It normalises each line through a fixed taxonomy:

    • signage words (sign, billboard, advert, poster, lettering, text) → signage
    • car/vehicle/bus/truck/van/motorcycle/bicycle → vehicles
    • face → faces, hand → hands
    • person/people/pedestrian/crowd → people
    • street furniture, architectural details, animals, furniture, machinery, clothing, products all have their own buckets
    • broad surfaces map to __none__ on purpose - road, asphalt, pavement, sidewalk, grass, vegetation, tree, sky, cloud, water, wall, floor, background, haze, fog, building, architecture

    Then it deduplicates, takes the first three survivors, and lays them out across the six-slot interface the pack's other nodes expect. Two things about that layout are worth knowing:

    Slot 1 is unused, slots 2–4 carry the sectors, slots 5–6 are unused. It's a compatibility shim: older six-sector graphs wire slot 2 to the first sector and downstream nodes don't have to change when the plan shrinks to three. The docstring calls it "Three non-destructive sector categories in old 6-slot-compatible layout", and the preview labels them accordingly.

    "Non-destructive" means the three masks stay independent. No category gets priority over another and nothing is erased to resolve overlaps. The resolving happens later, spatially, in the crop node's non-overlapping ownership windows.

    Each slot comes out with an opinionated segmentation prompt and a confidence threshold: vehiclescar:220,automobile:220,bus:30,truck:30,van:30,motorcycle:20,bicycle:16 at 0.13, peopleperson:220,pedestrian:220,human:220 at 0.14, signage → a billboard/shop-sign/traffic-sign family at 0.16, architectural details → window/door/balcony at 0.16. Empty slots get the placeholder concept nonexistent_placeholder_object_xyz:1 at 0.50, i.e. a mask nothing will ever match.

    Inputs and outputs

    One input, planner_text (multiline STRING, normally wired from your VLM or from another planner). Nineteen outputs: plan_preview, then six repeats of category_N, sam_prompt_N, sam_threshold_N. Wire each sam_prompt_N/sam_threshold_N pair into your segmenter, the resulting masks into DOGMASectorMasksV26, and keep plan_preview on screen - it prints slot number, category, prompt and threshold in one block, which is the only place to see the plan whole.

    Note the colon notation in the prompts: car:220. That's this generation's inline weighting, not the plain concept lists the v40-and-later planners emit. Match it to what your segmentation node actually parses; if it wants bare phrases, the numbers ride along as text.

    Install

    Manager → search DOGMA Nodes → install → restart ComfyUI. Manual:

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

    No dependencies and no model files - it's a text classifier with a hard-coded table, and the pack's requirements.txt declares nothing. Registered in DOGMA/Semantic Detailer. It pairs with a segmenter, a crop node and a stitch; those are separate installs, and the only heavy one is the segmenter.

    DOGMA Nodes is by axior, the studio arm of a Milan production team running commercial AI work through heavy ComfyUI inpaint chains. The "don't touch surfaces locally" rule is a budget decision dressed as an aesthetic one, and it's correct on both counts.

    Troubleshooting

    Only one or two sectors active. Normal. The taxonomy throws away everything broad, and most of what's left is a duplicate of something it's already seen.

    You asked for the sky and got nothing. By design. Sky is mapped to __none__ because a global base pass is supposed to own it; the local crop-and-stitch path is for objects. If you genuinely want a per-region sky repair, use a later planner generation that treats sky as a SURFACE kind and pairs it with a kind-aware crop node.

    The numbers in the prompt look wrong. They're the author's calibration for their segmenter, not a universal convention, and different planner generations in this same pack disagree by up to 5x. If your masks are empty or explosive, try a different generation rather than assuming this one is broken.

    CategoryDOGMA/Semantic Detailer

    Inputs (1)

    NameTypeDefaultDescription
    planner_textSTRING

    Outputs (19)

    NameTypeDescription
    plan_previewSTRING
    category_1STRING
    sam_prompt_1STRING
    sam_threshold_1FLOAT
    category_2STRING
    sam_prompt_2STRING
    sam_threshold_2FLOAT
    category_3STRING
    sam_prompt_3STRING
    sam_threshold_3FLOAT
    category_4STRING
    sam_prompt_4STRING
    sam_threshold_4FLOAT
    category_5STRING
    sam_prompt_5STRING
    sam_threshold_5FLOAT
    category_6STRING
    sam_prompt_6STRING
    sam_threshold_6FLOAT