๐ญ Smart USDU Mask Denoise
The simpler sibling of diffdiff upscaling
- image
- model
- conditionings
- negative
- vae
- denoise_mask
- upscale_model
- IMAGE
If the Differential Diffusion node's per-pixel mask feels like too much machinery, this is the trimmed-down version. Smart USDU Mask Denoise takes one mask and two denoise values - one for white regions, one for black - and works out the rest. The example the author ships with is the perfect mental model: mask the sky white, mask the building black, set denoise_masked to 0.5 and denoise_unmasked to 0.2, and the sky gets rebuilt while the structure only gets a light detail pass. Gray in the mask interpolates between the two.
The difference from DiffDiff is real but subtle. DiffDiff patches the model with a per-pixel threshold function and lets any mask value do its own thing. This node instead computes a single denoise value per tile from the mask intensity over that tile's region - so regions that are mostly white get sampled at ~denoise_masked, mostly-black at ~denoise_unmasked. It's a coarser tool, but it's also far easier to reason about, and it runs in a single pass without the diffdiff model patch. Reach for it when two zones is all you have.
The inputs that matter
denoise_mask(required MASK) - the map. White = high denoise zone, black = low.denoise_masked(default 0.5) - denoise for white regions. The tooltip suggests "sky."denoise_unmasked(default 0.2) - denoise for black regions. The tooltip suggests "building."conditionings- per-tileCONDITIONING_LISTin row-major order; short lists reuse the last entry.upscale_model+ the USDU core (mode_type, tile size/padding/blur, seam fix,tiled_decode) - this variant does its own pixel upscale (upscale_bydefault 2).
Output is a single IMAGE.
Installing it
One of the ~100 nodes in ComfyUI-ArchAi3d-Qwen by Amir Ferdos (ArchAi3d). ComfyUI Manager โ search "ArchAi3d Qwen" โ install โ restart, or:
cd ComfyUI/custom_nodes
git clone https://github.com/amir84ferdos/ComfyUI-ArchAi3d-Qwen.git
cd ComfyUI-ArchAi3d-Qwen
pip install -r requirements.txt
Restart after. Only ComfyUI's own torch/numpy/Pillow are required here; the heavy deps in requirements.txt serve other pack nodes. Free for personal/non-commercial use; commercial work needs the author's paid license.
Common gotchas
The mask is resized to the output size, so a low-res hand-drawn mask gets blurrier edges than you expect - leave a bit of margin around boundaries. Both denoise values still get applied to every tile; the tooltip is explicit that black regions are "less denoise, but still processed." If you need a region truly untouched, you want an inpaint-style mask with a real "no touch" value, not this node. And because the per-tile denoise is computed from mask intensity, a mask with lots of gray ends up averaging out - keep your mask high-contrast if you want crisp zone behavior.
Inputs (27)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | โ | |
| model | MODEL | โ | |
| conditionings | CONDITIONING_LIST | โ | |
| negative | CONDITIONING | โ | |
| vae | VAE | โ | |
| upscale_by | FLOAT | 2.000.05โ4 | โ |
| seed | INT | 00โ18446744073709550000 | โ |
| steps | INT | 201โ10000 | โ |
| cfg | FLOAT | 8.000โ100 | โ |
| sampler_name | COMBO | 44 options: euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, heunpp2, +38 | |
| scheduler | COMBO | 9 options: simple, sgm_uniform, karras, exponential, ddim_uniform, beta, +3 | |
| denoise_mask | MASK | โ | |
| denoise_masked | FLOAT | 0.500โ1 | Denoise for WHITE/masked regions (e.g., sky) |
| denoise_unmasked | FLOAT | 0.200โ1 | Denoise for BLACK/unmasked regions (e.g., building) |
| upscale_model | UPSCALE_MODEL | โ | |
| mode_type | COMBO | 3 options: Linear, Chess, None | |
| tile_width | INT | 51264โ8192 | โ |
| tile_height | INT | 51264โ8192 | โ |
| mask_blur | INT | 80โ64 | โ |
| tile_padding | INT | 320โ8192 | โ |
| seam_fix_mode | COMBO | 4 options: None, Band Pass, Half Tile, Half Tile + Intersections | |
| seam_fix_denoise | FLOAT | 1.000โ1 | โ |
| seam_fix_width | INT | 640โ8192 | โ |
| seam_fix_mask_blur | INT | 80โ64 | โ |
| seam_fix_padding | INT | 160โ8192 | โ |
| force_uniform_tiles | BOOLEAN | true | โ |
| tiled_decode | BOOLEAN | false | โ |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | โ |