๐ญ Smart USDU DiffDiff (No Upscale)
Differential-diffusion tiling, with the upscale step done elsewhere
- upscaled_image
- model
- conditionings
- negative
- vae
- denoise_mask
- IMAGE
This is the exact same node as Smart USDU Differential Diffusion, minus the upscaling. No upscale_by, no upscale_model - instead it takes a pre-upscaled image and tiles that, keeping all the per-pixel denoise-mask control. If you read the DiffDiffusion article, this one is the variant you want when the Smart Tile Solver is doing the pixel work upstream.
That split is worth doing more often than people do it. The Solver V6.2 computes the optimal tile grid and produces the lanczos upscale, so the "No Upscale" variants can take upscaled_image plus the exact tile_width/tile_height/overlap values the solver chose - the grid is guaranteed to line up with the image. Do it all inside the USDU node and you're letting it pick the grid implicitly, which is fine, but you lose the solver's efficiency planning.
What's here and what isn't
The full DiffDiff feature set is present: optional denoise_mask (white = more denoise, black = less), multiplier (<1 = stronger effect, >1 = weaker), per-tile conditionings list, and the whole USDU tiling suite - mode_type (Linear/Chess/None), tile_width/tile_height, mask_blur, tile_padding, and the seam-fix block. The only real differences from the non-NoUpscale version are:
upscaled_imagereplacesimage(it's the sameIMAGEtype, renamed to make the contract obvious)- no
upscale_by- the node assumes the upscale already happened, so it runs at 1.0 - no
upscale_modelinput at all
One subtle thing: because this node takes the pre-upscaled image, tile_width/tile_height are now in output pixel space, not input space. If the solver said tile 1024ร1024 for a 2ร upscale, that's the size to type in here. Get this wrong and you'll either be sampling way too much per tile or chopping the upscaled image into more tiles than the solver planned.
Installing it
It's 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
Then restart. This node needs nothing beyond ComfyUI's own torch/Pillow/numpy - the heavy dependencies in requirements.txt belong to other parts of the pack. Free for personal use; commercial use needs the author's paid license.
Common gotchas
Feeding the raw, un-upscaled source into upscaled_image is the classic mistake - you get a "no-op" 1.0-scale pass and wonder why nothing happened. Pair it with the solver, wire tile_params or the individual INT outputs through, and keep safe_guard on wherever the Matrix Search values are plumbed into the tile fields. If your conditioning list count doesn't match the total tile count, the node reuses the last entry rather than erroring - great when you want one prompt everywhere, a trap when you wanted per-tile prompts and miscounted.
Inputs (25)
| Name | Type | Default | Description |
|---|---|---|---|
| upscaled_image | IMAGE | โ | |
| model | MODEL | โ | |
| conditionings | CONDITIONING_LIST | โ | |
| negative | CONDITIONING | โ | |
| vae | VAE | โ | |
| 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 | FLOAT | 0.200โ1 | โ |
| 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 | โ |
| denoise_maskopt | MASK | Optional mask for per-pixel denoise. White=more denoise, Black=less | |
| multiplieropt | FLOAT | 1.000-10โ10 | Controls effect strength. <1=stronger, >1=weaker |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | โ |