Nodes/DOGMA Nodes/DOGMA - Categorie / Denoise / Evita Blocchi
ComfyUI Node

DOGMA - Categorie / Denoise / Evita Blocchi

The same chooser, plus a per-region switch

By axior·Created 6 months ago·Updated 2 days ago· 2
DOGMA - Categorie / Denoise / Evita Blocchi
  • categories
  • previews
  • selected_categories
  • selection_report
◄manualfalse►
◄default_denoise0.30►

If you have already met the 1.0.22 chooser, this is that node with one extra column in its popup: a per-category Evita Blocchi toggle. Translated from the Italian, it means "avoid blocks" - as in avoid the square tile boundaries that show up when you re-render a big flat surface in pieces. Which is a genuinely annoying artifact class, so the switch is doing something real.

The setting exists because DOGMA's crops are native-resolution cuts: a large continuous surface (a wall, a road, a shopfront panel) can end up chopped into several chunks, each re-rendered on its own, and the seams between chunks read as blocks. Evita Blocchi says "treat this category as one whole element instead."

How it works

Structurally it is DOGMAChooseCategoriesV124 subclassing the 1.0.22 chooser and calling it with _supports_avoid_blocks=True, which does two things. The popup payload gains a supports_avoid_blocks flag, so the frontend draws the toggle; and the returned selection gains an avoid_blocks_by_target dictionary mapping each selected target ID to a boolean, alongside the denoise_by_target map the 1.0.22 line already produced.

The validation is strict, in a way that saves you from a silent no-op. The select route refuses any Evita Blocchi key that is not for a selected category, refuses non-boolean values, and refuses the whole request if the bundle did not advertise support - meaning if you pair this chooser with an older mask stage, you get a clear error instead of a toggle that quietly does nothing.

Downstream, DOGMAPhase3CropsV124 is the node that consumes it. When the flag is on and the category is classified as a continuous surface, the crop stage puts the whole region in one crop and caps its long side with the whole_region_side setting (2048 or 3072, aspect preserved). When it is off, you get the normal native tiles.

The choice is not free either way. One whole-region crop means one inference per element instead of several - cheaper and seam-free - but the crop gets downscaled to fit that long-side cap, and WholeRegionCrop actually raises a warning if the downscale loses a very thin mask. For a thin painted line, leave the switch off.

Inputs and outputs

The four required inputs are the same as its predecessor: categories (the DOGMA_CATEGORIES bundle), previews (the preview IMAGE batch for the popup), manual (off = select everything automatically), and default_denoise (0.3, the starting value each selected category gets before you override it in the popup).

Outputs are selected_categories and selection_report (STRING). The report now carries a third block: one line per selected category saying Evita Blocchi On or Off. That string is your receipt for what the popup actually sent.

Install

Same pack, same install. Through ComfyUI Manager search DOGMA Nodes, or:

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

scipy>=1.10 is the only pip dependency in requirements.txt. Restart after install; the popup needs the pack's frontend extension, since it is drawn by JavaScript and answered over the pack's own /dogma/categories/select route.

Practical notes

The manual popup blocks the queue until you answer it. That is by design - the node's IS_CHANGED returns NaN when manual is on so it re-runs every queue - but it means a headless or API-driven run will hang on the wait loop. Cancel works; the loop checks for interruption.

And keep the generations aligned. The Evita Blocchi value only has somewhere to go if the crops node is the 1.0.24 one, and the denoise overrides only apply if the crops node is at least 1.0.22. The version suffix on these node IDs is not cosmetic - it is the contract between them.

The pack itself has essentially no public discussion to consult (the phrase "DOGMA Nodes" returns zero threads in the community corpus), so if something misbehaves, the report string and dogma_coherence_v124.py are the ground truth.

CategoryDOGMA/v1.0.24

Inputs (4)

NameTypeDefaultDescription
categoriesDOGMA_CATEGORIES—
previewsIMAGE—
manualBOOLEANfalse—
default_denoiseFLOAT0.300–1—

Outputs (2)

NameTypeDescription
selected_categoriesDOGMA_CATEGORIES—
selection_reportSTRING—