DOGMA ReviewBatch v1.0.11
Bigger audit sheets, two candidates at a time
- candidates
- review
- audit_report
Four candidates crammed into one audit sheet is a lot to ask of a vision model. At 512 pixels a tile, a mask that's slightly off reads fine, and a mask that's catastrophically wrong - sky selected as "people" - can survive the compression. v1.0.11's answer was to halve the batch and double the resolution: two candidates per sheet, on a 768 × 1536 canvas, via the matching v1.0.11 audit node. This review node is the reader for that layout.
How it works
Same contract as the 1.0.10 review, with three differences that matter.
First, the arithmetic. Two candidates per sheet means ceil(candidates / 2) expected VLM answers. Feed it the wrong number and it raises rather than sliding every verdict one slot to the left - which is the failure you'd never notice by eye.
Second, the default flips. audit_mode defaults to reject_explicit_fail, so an explicit FAIL on a numbered candidate removes that mask from the bundle. This is the "trust the auditor" setting; it's the sensible default now that each decision is made on a bigger, clearer sheet, but it does mean a bad model day can eat masks that a human would have kept.
Third - and this is the interesting one - the prompt and parser come in exactly matched pairs. The v1.0.11 audit node asks for 1 PASS/1 FAIL lines with a short reason; this node reads the number and the verdict, and discards the reason. Unparseable lines, missing numbers and unreadable output become REVIEW, and a REVIEW is kept in both modes: malformed replies are never treated as a pass or as a rejection. Contradictory votes for the same number are also REVIEW.
The changelog frames the whole change as "no automatic rejection for parse failures," which is the right instinct. A model that rambles shouldn't be allowed to silently delete your mask work.
The inputs and outputs
candidates(DOGMA_CANDIDATES) - exactly one bundle; a list of them is an error.audit_text(STRING, list) - the numbered verdicts from the VLM, one per two-candidate sheet.audit_mode-report_onlyorreject_explicit_fail(default).review(DOGMA_REVIEW) - survivors plus notes, ready for a finalise node or alocal_recoverysearch pass.audit_report(STRING) -source: audit FAIL; REJECTED; mode=reject_explicit_failper candidate. In this version you get the verdict and the outcome, but not the model's stated reason - that arrives in v1.0.14.
Install
Manager → search DOGMA Nodes, or:
cd ComfyUI/custom_nodes
git clone https://github.com/axior/ComfyUI-DOGMA-Nodes
Restart ComfyUI after. The pack installs one dependency, scipy>=1.10; the real requirements are a ComfyUI new enough to expose SAM 3 and a VLM node pack for the audit step.
Which version do you actually want?
The honest answer, if you're starting fresh: v1.0.14. It keeps the two-per-sheet layout and the reject_explicit_fail default, adds category-relative audit guidance (so a mask of pavement isn't rejected for being pavement when "road" is the target) and puts the model's reason in the report. v1.0.11's reason for existing is that it's the frozen counterpart to a v1.0.11 workflow - the pack ships versioned node IDs side by side so old graphs keep their old behaviour, not because older means better.
One caveat that applies to every version: reviewers here judge masks, they don't find objects. If your search pass never detected the awning you care about, no amount of audit quality will conjure it - that's local_recovery's job. And per the author's own validation notes, these releases were CPU-tested with mocked VLM calls, so the verdict quality on your scene is your VLM's problem.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| candidates | DOGMA_CANDIDATES | — | |
| audit_text | STRING | — | |
| audit_mode | COMBO | reject_explicit_fail | 2 options: report_only, reject_explicit_fail |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| review | DOGMA_REVIEW | — |
| audit_report | STRING | — |