๐๏ธ Smart USDU Universal (Custom Sample)
The universal upscaler, with the custom-sampler override bolted on
- image
- model
- conditionings
- negative
- vae
- denoise_mask
- model_patch
- control_image
- control_mask
- upscale_model
- custom_sampler
- custom_sigmas
- IMAGE
Take the Smart USDU Universal - the node with enable_diffdiff and enable_controlnet toggles - and add custom_sampler + custom_sigmas sockets, and you get this. It's the subclass variant that keeps every feature the Universal offers while letting you run the whole tiled pipeline on a sampler object or sigma schedule that isn't in the sampler_name dropdown. For most people this is overkill; for the person whose workflow is built around a specific custom sampler, it's the version that doesn't force a compromise.
The class hierarchy in the source is literal here: the Custom Sample version inherits from the Universal and appends the two sockets, so feature-for-feature it's identical plus the sampler override. upscale_model also moves to optional, so you can run the upscale-factor path without forcing a pixel-upscale model.
The inputs
Everything from the Universal: image, model, per-tile conditionings, negative, vae, upscale_by, the sampler block, mode_type, tile size/padding/blur, seam fix, tiled_decode, plus the two feature toggles. Optional block carries diffdiff (denoise_mask, multiplier), ControlNet (model_patch, control_image cropped per tile, control_strength, control_mask), upscale_model, and the new custom_sampler (SAMPLER) + custom_sigmas (SIGMAS). Skip the two custom sockets and it behaves exactly like the plain Universal. Output is one IMAGE.
Installing it
One of ~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. Only ComfyUI's bundled torch/numpy/Pillow needed here; heavy deps in requirements.txt serve other pack nodes. Free for personal use; commercial use needs the paid license.
The honest take
This is the "have your cake and eat it" node: all the toggles, all the features, plus sampler control. The cost is that every silent-failure mode in the family is on the same node - ControlNet needs both model_patch and control_image; enable_* toggles bypass features invisibly; multiplier flips strength at 1.0; conditioning count mismatch reuses the last entry; and now if custom_sigmas doesn't match your steps, the schedule can do something you didn't intend. Use the toggles to bisect problems, keep your sigma schedule in sync with steps, and this becomes the only upscaler node you need in that workflow.
Inputs (35)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | โ | |
| 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 | โ | |
| 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 | 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 |
| 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) | |
| upscale_modelopt | UPSCALE_MODEL | โ | |
| custom_sampleropt | SAMPLER | โ | |
| custom_sigmasopt | SIGMAS | โ |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | โ |