Nodes/DOGMA Nodes/DOGMA ReviewBatch v1.0.14
ComfyUI Node

DOGMA ReviewBatch v1.0.14

Stop the auditor from rejecting the road for being road

By axior·Created 6 months ago·Updated 16 days ago· 2
DOGMA ReviewBatch v1.0.14
  • candidates
  • review
  • audit_report
◄audit_text—►
◄audit_modereject_explicit_fail►

Here's a failure mode that only shows up when you automate masking for real scenes: you ask a vision model to check a mask of "road," it sees a large selection of dark, wet, reflective asphalt, decides that's not a coherent object, and fails it. Same for "buildings" - architecture is background as far as most VLMs are concerned, and background selections are exactly what you're supposed to reject. The auditor was doing its job against the wrong rubric.

v1.0.14 is the release where the audit prompt became category-relative. It is, as far as I can tell, the version to run.

How it works

The counterpart audit node builds the instruction from your category string. If the category looks like a ground surface (road, pav, ground, asphalt, cobble, floor, soil, street) the prompt says so explicitly - visible paving, wet reflections, joints and shadows don't change the category, and the target "need not be one bounded object." If it looks like architecture (building, architect, arch, facade, colonnade, cathedral) you get: walls, roofs, columns and facade components belong to it, and real openings and partial structures are valid. Everyone else gets the neutral prompt.

The sheet layout is the same two-per-sheet arrangement as v1.0.11, and the parse is where the rest of the work went:

  • Verdicts may now be PASS, FAIL or REVIEW. REVIEW means "the model said it can't judge this," and it's kept in both modes.
  • The reason after each verdict is captured and put in the report, trimmed and capped. That's the difference between "your mask was rejected" and "your mask was rejected because it selected the sky."
  • Reasoning-model noise is handled: the text is truncated at 16,000 characters and anything after a <think> tag is dropped before parsing.
  • Contradictory verdicts become REVIEW with the reason "contradictory verdicts; inspect mask." Missing reasons become "no readable visual reason returned; inspect mask." Neither is silently converted into a rejection.

audit_mode defaults to reject_explicit_fail; report_only keeps everything and just tells you what the model thought.

The inputs and outputs

  • candidates (DOGMA_CANDIDATES) - one bundle, from your search pass.
  • audit_text (STRING, list) - one VLM answer per audit sheet; the count must match or the node raises.
  • audit_mode - report_only or reject_explicit_fail (default).
  • review (DOGMA_REVIEW) - the surviving bundle, with notes, feeding a finalise node or a local recovery search.
  • audit_report (STRING) - now the useful one: source: audit FAIL; REJECTED; mode=…; reason=<what the model saw>.

Install

Manager → search DOGMA Nodes, or:

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

Restart after. Package version at the time of writing is 1.0.14 (scipy>=1.10 and that's it for Python deps), so a fresh Manager install gives you this node and its audit counterpart. The audit step still needs a VLM node to answer the prompts, and the search step still needs a SAM-3-capable ComfyUI.

Where it goes wrong

The reason field is your friend, and it will lie to you occasionally. A model that writes confident nonsense will still produce a confident-sounding reason. Treat REJECTED plus a vague reason as "go look at the mask," not as truth.

Don't run the ground/architecture heuristics against a category that's neither. Land your categories on the pack's canonical names where you can - road, buildings, vehicles, people - because those are what the guidance branches actually match on. A category called wet cobbled street surface still hits the ground branch (it contains cobble), but plaza floor texture is a coin flip.

And the standing warning from the author's own release notes: these version-1.0.1x semantic nodes were validated on CPU with model calls simulated. The masking machinery is tested; the semantic correctness of what your SAM and your VLM return is not something the pack can promise. That's what the report is for - read it before you complain that a category vanished.

CategoryDOGMA/v1.0.14

Inputs (3)

NameTypeDefaultDescription
candidatesDOGMA_CANDIDATES—
audit_textSTRING—
audit_modeCOMBOreject_explicit_fail2 options: report_only, reject_explicit_fail

Outputs (2)

NameTypeDescription
reviewDOGMA_REVIEW—
audit_reportSTRING—