DOGMA Phase3Render 1.0.23
The same render, plus a review output you can actually inspect
- prepared
- model
- clip
- vae
- sampler
- image
- render_report
- review
V1.0.23 adds three widgets and one output to the phase-3 renderer, and the output is the interesting part. Alongside image and render_report, DOGMAPhase3RenderV123 emits a review socket. That is the same node that does the per-region masked inpaint loop, now recording what it did so DOGMAReviewPairV123 can show you the before and after of any single job.
The case for it is the discipline of the loop. A dozen regions get rendered with different prompts and denoises, they get composited back into one master, and you look at the result. When something is off you cannot tell which pass did it. This node makes each pass auditable after the fact, from the actual run - no re-generation, no guessing.
How it works
Set save_comparisons on and the renderer creates a per-run folder under ComfyUI's temp directory, DOGMA_REVIEW/<uuid>/, and instantiates a recorder that it passes down into the render loop. As it walks the jobs it saves the frames: the frame before the category starts, the frame after it finishes, the source region before the crop was touched, the raw decoded crop, and the inpaint and blend masks - each thumbnailed to comparison_side. At the end it writes a review.json manifest describing every category in real processing order with its crops and statuses, and returns that dictionary on the review output.
The recorder groups consecutive jobs by target, so before/after is per category, not per crop - a deliberate choice, and the source comments say it will not reorder the renderer to produce a prettier report. Processing order stays the truth.
With save_comparisons off, or with no jobs to run, the node emits a disabled review (enabled=False, empty categories) instead of an error. That is the same shape DOGMAEmptyReviewV123 produces, so the downstream viewer behaves identically in both cases.
Inputs and outputs
Same required inputs as the 1.0.22 renderer: prepared, model, clip, vae, sampler, negative_prompt, steps (12), cfg (1.0), scheduler, seed (1976), vae_tile_size (1024), vae_overlap (128), low_frequency_strength (0.15), save_reports.
New here:
- save_comparisons (on by default) - writes the per-job PNGs and the manifest.
- comparison_side (2048, 0–8192) - longest-side cap for those previews only. The tooltip is explicit that render pixels are unchanged, which is worth believing: this is a thumbnail setting, not a quality setting. Set it to 0 if you want native-resolution comparisons.
Outputs: image, render_report, review (DOGMA_REVIEW).
Install
cd ComfyUI/custom_nodes
git clone https://github.com/axior/ComfyUI-DOGMA-Nodes
Or ComfyUI Manager → search DOGMA Nodes, then restart. The pack's only declared Python dependency is scipy>=1.10.
Where people get burned
Temp lifecycle. The comparisons are files in ComfyUI's temp folder. Clear temp, or let a cleaner wipe it between sessions, and the viewer will refuse to load them with an explicit "previews no longer available, re-run phase 3" error. It is not corruption; the images are just gone.
Disk and time on big batches. Every job writes several PNGs. At comparison_side 0 on a 48-crop run that is real disk churn, so drop the comparison side or switch comparisons off for bulk work and turn them back on when you are tuning a specific category.
Version pairing. The output is a DOGMA_REVIEW, and only the 1.0.23 viewer reads it. Both nodes ship in the same pack, so just wire them together from the same generation.
Last thing, straight from the pack's own changelog: this code path is CPU-tested, and the author says outright that GPU runtime and segmentation quality still need validation on your hardware. Do not assume the defaults are optimal for your checkpoint - that is what the comparison output is for.
Inputs (16)
| Name | Type | Default | Description |
|---|---|---|---|
| prepared | DOGMA_RENDER_JOBS | — | |
| model | MODEL | — | |
| clip | CLIP | — | |
| vae | VAE | — | |
| sampler | SAMPLER | — | |
| negative_prompt | STRING | — | |
| steps | INT | 121–10000 | — |
| cfg | FLOAT | 1.00–100 | — |
| scheduler | COMBO | 9 options: simple, sgm_uniform, karras, exponential, ddim_uniform, beta, +3 | |
| seed | INT | 19760–18446744073709550000 | — |
| vae_tile_size | INT | 1024512–4096 | — |
| vae_overlap | INT | 12864–512 | — |
| low_frequency_strength | FLOAT | 0.150–1 | — |
| save_reports | BOOLEAN | true | — |
| save_comparisons | BOOLEAN | true | — |
| comparison_side | INT | 20480–8192 | Preview longest side only. 0 saves native resolution. Render pixels are unchanged. |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |
| render_report | STRING | — |
| review | DOGMA_REVIEW | — |