ComfyUI Node

Load ResAdapter

Generate at any resolution without the artifact tax

By jiaxiangc·Created 2 years ago·Updated 2 years ago· 278
Load ResAdapter
  • model
  • clip
  • MODEL
  • CLIP
resadapter_name
strength_model1.00
strength_clip1.00

Every diffusion model has a native resolution it was trained at, and leaving that band is how you get double heads, elongated bodies, and broken anatomy. SD 1.5 lives at 512x512, SDXL at 1024x1024. Go off that and the model starts silently glitching. The usual fixes are the two-pass hires workflow or generating small and upscaling - both work, both cost time. ResAdapter is a third path: a tiny ByteDance adapter that patches the UNet so the model generates directly at whatever resolution you ask for, out-of-domain included. This node - Load ResAdapter - is the ComfyUI port, and it behaves exactly like a LoRA loader, because it basically is one.

What it actually does

ByteDance's res-adapter project splits the job into two pieces. First, a small LoRA (~0.5M parameters, so a file of a few megabytes, not a multi-GB checkpoint) that teaches the model to denoise cleanly across a broad range of resolution priors. Second, for the extrapolation variants, a weight-normalizing patch - diffusion_pytorch_model.safetensors - that gets loaded straight into the UNet with strict=False to keep activation magnitudes sane at extreme resolutions. The interpolation variants skip the patch entirely (the code says so explicitly). Neither piece carries any style information, which is the point: the paper and the community both emphasize that your checkpoint's look survives. And unlike a hires pass, there's no second denoising loop - it generates at target resolution in one go, so it's effectively free at inference time.

The inputs that matter

You wire it like a LoRA loader: checkpoint's MODEL and CLIP in, patched MODEL and CLIP out to the sampler. Of the five inputs, three are worth touching:

  • resadapter_name - dropdown of 8 variants: v1 and v2 for both SD 1.5 and SDXL, with v1 split into plain, _interpolation, and _extrapolation. Match it to your checkpoint's architecture, or nothing useful happens. (Ignore the stray .cache entry in the list - it's a huggingface_hub artifact leaking into the dropdown, and selecting it just errors.)
  • strength_model - how hard to apply the adapter to the UNet. Default 1.0. The range runs -20 to 20, so you can push past 1.0 for more reach or go negative to nudge a model back toward its native resolution.
  • strength_clip - same dial for the CLIP side.

Set both strengths to 0 and the node short-circuits and returns your model untouched.

Installing it

Two routes, both easy:

cd ComfyUI/custom_nodes
git clone https://github.com/jiaxiangc/ComfyUI-ResAdapter

...then restart ComfyUI. Or just use ComfyUI Manager: search "ResAdapter" and install from there. The pack has no requirements.txt - it only needs huggingface_hub, which ComfyUI already ships. On first start it auto-downloads all eight variants from jiaxiangc/res-adapter on Hugging Face into the pack's own models/ folder, so give the first launch a minute. That storage location is the one real gotcha: the weights don't live in your normal ComfyUI/models/loras, so Manager won't show or manage them, and you can't drop a random LoRA in there and expect it to appear in the list.

Should you bother?

ResAdapter is a 2024-vintage tool that got real buzz on release and then quietly settled into niche status. The killer use case is low-resolution work - pixel art, small canvases, generating at 512 on SDXL without paying the hires-fix tax - and stable arbitrary aspect ratios. For the classic "I want bigger images" problem, honestly, most people concluded that generating at native res and upscaling (or using ComfyUI's built-in PatchModelAddDownscale / deep-shrink trick) serves them better. But when you specifically want clean, direct generation outside the trained domain, this is the one that does it, it's tiny, it's Apache-2.0, and it stacks with ControlNet, IP-Adapter, and LCM-LoRA per the pack's example workflows. Reach for it when the situation is actually about resolution - not when the situation is really about wanting more detail.

Categoryloaders

Inputs (5)

NameTypeDefaultDescription
modelMODEL
clipCLIP
resadapter_nameCOMBO9 options: resadapter_v1_sdxl, resadapter_v1_sd1.5_extrapolation, resadapter_v1_sd1.5, resadapter_v2_sd1.5, resadapter_v1_sdxl_extrapolation, resadapter_v1_sdxl_interpolation, +3
strength_modelFLOAT1.00-20–20
strength_clipFLOAT1.00-20–20

Outputs (2)

NameTypeDescription
MODELMODEL
CLIPCLIP