Nodes/asyncdiff_comfyui/ADSDUpscaleSampler
ComfyUI Node

ADSDUpscaleSampler

Diffusion upscaling, parallelized — ADSDUpscaleSampler

By SlackinJack·Created 2 years ago·Updated about a year ago· 0
ADSDUpscaleSampler
  • model
  • config
  • image
  • scheduler
  • IMAGE
positive_prompt
negative_prompt
seed0
steps60
guidance_scale3.5

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":

  1. 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.
  2. 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_MODEL from ADModelLoader, pointed at the SD x4 Upscaler checkpoint.
  • config - mandatory AD_CONFIG from 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_2m unless 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.

CategoryAsyncDiff/Samplers (StableDiffusion)

Inputs (9)

NameTypeDefaultDescription
modelAD_MODEL
configAD_CONFIG
imageIMAGE
positive_promptSTRING
negative_promptSTRING
seedINT00–4294967295
stepsINT601–4294967295
guidance_scaleFLOAT3.50–4294967295
scheduleroptAD_SCHEDULER

Outputs (1)

NameTypeDescription
IMAGEIMAGE