๐๏ธ Smart USDU Universal (No Upscale)
The universal upscaler that takes its marching orders from the Tile Solver
- upscaled_image
- model
- conditionings
- negative
- vae
- denoise_mask
- model_patch
- control_image
- control_mask
- IMAGE
Here's where the pack's architecture becomes visible. The Smart Tile Solver V6.2 computes an optimal tile grid and hands you a bundle of numbers; this node - Smart USDU Universal (No Upscale) - is built to receive those numbers. It drops the internal upscaling and takes the pre-upscaled upscaled_image plus explicit output_width, output_height, tiles_x, tiles_y, tile_width, tile_height, and tile_padding inputs, then runs the full Universal pipeline (diffdiff + ControlNet toggles) on exactly that grid.
The design intent is a clean split: the solver plans and upscales, this node does the tiled diffusion pass. No re-deriving grid math inside the node, no drift between what was planned and what gets sampled.
The important bit: safe_guard
safe_guard defaults to True and validates that the values match what the solver produced - the source throws an error on any mismatch. That's a real convenience when you're wiring the solver's INT outputs straight across: it catches a mis-typed tile_width before it wastes a whole render. If you're deliberately overriding the solver's plan, flip it off - but then you own the consequences.
Otherwise it's the Universal feature set: enable_diffdiff / enable_controlnet toggles, per-tile conditionings, the sampler block, mode_type, mask_blur, seam-fix settings, tiled_decode. Optional block: denoise_mask, multiplier, model_patch, control_image, control_strength, control_mask. Note there's no upscale_model or upscale_by anywhere - the upscale already happened. Output is a single IMAGE.
Installing it
Part of 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 needed; the heavyweight deps in requirements.txt belong to other pack nodes. Free for personal use; commercial use requires the paid license.
Common gotchas
The #1 failure is feeding the raw source image in - everything downstream then runs at 1.0 scale with a grid that doesn't match. Keep safe_guard on while you build the graph so a mismatch errors loudly instead of silently producing garbage. And remember tile_width/tile_height here are the solver's output-space tile sizes, not your input image's dimensions.
Inputs (35)
| Name | Type | Default | Description |
|---|---|---|---|
| upscaled_image | IMAGE | Pre-upscaled image from Matrix Search | |
| output_width | INT | 102464โ8192 | Expected output width from Matrix Search |
| output_height | INT | 102464โ8192 | Expected output height from Matrix Search |
| tiles_x | INT | 21โ64 | Number of tile columns from Matrix Search |
| tiles_y | INT | 21โ64 | Number of tile rows from Matrix Search |
| safe_guard | BOOLEAN | true | Validate all values match Matrix Search exactly. Error if ANY mismatch. |
| enable_diffdiff | BOOLEAN | true | Enable/disable Differential Diffusion |
| enable_controlnet | BOOLEAN | true | Enable/disable ControlNet per-tile |
| 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 width from Matrix Search |
| tile_height | INT | 51264โ8192 | Tile height from Matrix Search |
| mask_blur | INT | 80โ64 | โ |
| tile_padding | INT | 320โ8192 | Overlap/padding from Matrix Search |
| 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 | โ |
| 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 |
| model_patchopt | MODEL_PATCH | ControlNet patch (from ModelPatchLoader) | |
| control_imageopt | IMAGE | Control image (e.g., Canny/Depth) - will be cropped per tile | |
| control_strengthopt | FLOAT | 1.00-10โ10 | ControlNet strength |
| control_maskopt | MASK | Optional mask for ControlNet (separate from denoise_mask) |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | โ |