ADSDUpscaleSampler
Diffusion upscaling, parallelized — ADSDUpscaleSampler
- model
- config
- image
- scheduler
- IMAGE
ADSDUpscaleSampler is the pack's generative upscaler: you feed it an image plus a model and config, and it runs the Stable Diffusion x4 Upscaler with the denoising split across your GPUs by AsyncDiff. Output is a bigger, higher-detail IMAGE.
Before you get excited, hear the distinction the community has spent years arguing about. There are two different jobs people call "upscaling":
- More pixels - the image already has its detail; you just need it larger. ESRGAN-family models or Lanczos do this, they're instant, and they can't hallucinate.
- More detail - the image is soft or small and you want a model to invent plausible detail that was never there. That's generation, it will rewrite faces, and it's exactly what this node does.
This is job #2. The x4 Upscaler is a diffusion model - it re-renders your image at 4x with fresh detail. That's powerful for breathing life into a low-res render, and it's why the upscaling guides in the community keep telling people to decide which job they have before comparing tools.
How it works
The AsyncDiff angle: the upscaler's denoising model gets split into model_n components across your GPUs, and the serial denoising loop becomes an asynchronous pipeline. Same trick as the rest of the pack - you get the upscale faster than running the same upscaler on one card, in exchange for a small quality delta versus a fully sequential run.
Inputs that matter
- image - required, and the star of the show. Your low-res input goes here, straight from any image-loading node.
- model -
AD_MODELfrom ADModelLoader, pointed at the SD x4 Upscaler checkpoint. - config - mandatory
AD_CONFIGfrom ADPipelineConfigurator. - positive_prompt / negative_prompt - for an upscaler these are usually short. A positive prompt describing the content ("detailed, sharp") and an empty or minimal negative is the common setup; the upscaler mostly cares about the image.
- steps (default 60) and guidance_scale (default 3.5) - the sampling knobs, same defaults as the pack's other samplers. Backing steps off to ~30 is usually fine.
- Optional scheduler from ADSchedulerSelector; leave it on the default
dpmpp_2munless you have a reason.
Output is a single IMAGE - the upscaled frame(s), ready for a save node or to be fed into the next stage.
Install
cd ComfyUI/custom_nodes
git clone https://github.com/SlackinJack/asyncdiff_comfyui.git
cd asyncdiff_comfyui
./clone_asyncdiff_repo.sh # required - pulls the upstream AsyncDiff framework
Restart ComfyUI (or ComfyUI Manager, search "asyncdiff_comfyui").
Where people get burned
The big one is expectations: this is generative upscaling, so faces get re-rendered and detail gets invented. If you just want the image bigger without changes, this is the wrong node - reach for an ESRGAN model instead. Also the whole pack is multi-GPU or nothing; on one card this is a slower way to run an upscaler you could run natively. And same as everywhere in this pack, the README's supported lane is stable-video-diffusion-img2vid, so the SD upscaler here is frontier territory - real, but thinly documented. For a quick sanity check, upscale something without faces first.
Inputs (9)
| Name | Type | Default | Description |
|---|---|---|---|
| model | AD_MODEL | — | |
| config | AD_CONFIG | — | |
| image | IMAGE | — | |
| positive_prompt | STRING | — | |
| negative_prompt | STRING | — | |
| seed | INT | 00–4294967295 | — |
| steps | INT | 601–4294967295 | — |
| guidance_scale | FLOAT | 3.50–4294967295 | — |
| scheduleropt | AD_SCHEDULER | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |