Nodes/DOGMA Nodes/DOGMA Category Settings v11
ComfyUI Node

DOGMA Category Settings v11

Per-category detail settings, looked up from a table instead of guessed

By axior·Created 4 months ago·Updated 3 days ago· 1
DOGMA Category Settings v11
    • sam_threshold
    • group_radius
    • context_px
    • max_source_side
    • target_long_side
    • max_crops
    • denoise
    • summary
    category

    The v11 settings node is the earliest of the four versions in this pack, and it's the clearest statement of the idea the whole semantic-detailer family is built on: your SAM threshold, your crop size and your denoise should depend on what you're repairing, and nobody wants to hand-tune twenty numbers per run.

    Give it one input - category - and it returns eight: sam_threshold, group_radius, context_px, max_source_side, target_long_side, max_crops, denoise, summary.

    The lookup

    The category string is collapsed onto a family (vehicles, signage, roadway_people, sidewalk_people, people, street_objects, architecture, vegetation, road, sky, water, animals, other, none), and each family has a row of numbers. A few of them, to show the shape of the thinking:

    • vehicles - threshold 0.14, group radius 320, context 160, source ≤ 2400, model side 1536, 8 crops, denoise 1.00
    • people - 0.20, 260, 128, 1700, 1536, 8, 0.80
    • architecture - 0.34, 720, 128, 2800, 1344, 6, 0.35
    • sky - 0.40, 900, 64, 3000, 1024, 4, 0.20
    • none - 0.50, 480, 128, 1800, 1024, 1, 0.00

    Read across and the logic is transparent. Objects that have to keep their identity (vehicles, people) get a low SAM threshold so nothing is missed, tight grouping radii so individual instances stay separate, and high denoise because the model is allowed to actually rebuild a wheel. Big surfaces (architecture, road, sky) get a high threshold - you only want confident segmentation on a facade - enormous grouping radii because those regions are enormous, and low denoise because a second pass on a wall is a way to lose detail, not gain it.

    denoise 0.00 on the none row is the tell: this node came from a working graph where an inactive category still executed, so the safest setting was "sample nothing". The summary output prints the whole row as readable text - "vehicles: SAM threshold=0.14, group_radius=320, source≤2400, model≤1536, max_crops=8, denoise=1.00" - which is the single most useful debugging affordance here. Wire summary to a text preview node while you're building the graph; when a sector misbehaves, the summary tells you which row it picked up, and nine times out of ten the answer is "the wrong family".

    Wiring

    One instance per sector, fanned out: sam_threshold into your segmenter's threshold, group_radius/context_px/max_source_side/target_long_side/max_crops into the crop node, denoise into the inpaint strength. This is the pre-v12 interface, so there's no stitch alpha here - blending is whatever the downstream stitch node does.

    Pros: it will not fight you, and the defaults are a genuine prior from someone who ran thousands of frames of this. Cons: it's the oldest table in the pack, tuned around 1344-1536 model sides, and the later versions push surfaces much harder (v13's architecture alpha goes from 0.55 to 0.82, and target sides go up to 1536-1920). If you're on a modern edit model and 2048-scale crops, prefer v12 or v13.

    Install

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

    Or Manager → DOGMA Nodes, then restart - the nodes register at import. No dependencies. The pack's README doesn't mention this node; it only documents the WAN VACE prep and sampler nodes, so the source is your reference.

    Common issues

    The wrong row. "my car" and "vehicles" land in the same family, but something like "traffic" or "roadway people" resolves by substring matching and can surprise you. Check summary.

    denoise 0.00 and nothing happens. That's the none row doing its job. If your category is genuinely being reparsed as none, no amount of prompt work will help.

    Numbers that don't match your crop node's ranges. These values were written for this pack's own crop nodes. Feeding group_radius=900 to a third-party cropper that caps at 512 will either clamp or error depending on the node.

    CategoryDOGMA/Semantic Detailer

    Inputs (1)

    NameTypeDefaultDescription
    categorySTRING

    Outputs (8)

    NameTypeDescription
    sam_thresholdFLOAT
    group_radiusINT
    context_pxINT
    max_source_sideINT
    target_long_sideINT
    max_cropsINT
    denoiseFLOAT
    summarySTRING