CR Upscale Image
Comfyroll's upscaler, without installing all of Comfyroll
- image
- IMAGE
CR Upscale Image is the Comfyroll Studio upscaler, copied into this pack so you can use it without pulling in the entire Comfyroll suite. "CR" is Comfyroll; the code and even the help link trace straight back to Suzie1's Comfyroll Custom Nodes. The author of this pack has made a habit of lifting individual nodes from big suites to trim their dependency surface - and a battle-tested upscaler is a good one to steal.
What it does: run an ESRGAN-family upscale model over your image to multiply its pixel count, then optionally rescale the result to a specific size. That's two of the three things upscaling can mean, in one node - model-based upscaling for "more pixels," and then a resize step to land on an exact target, all with a resampling method of your choice.
The inputs that matter
- image - the
IMAGEto upscale. - upscale_model - a dropdown of the
.pth/.safetensorsupscale models in yourmodels/upscale_modelsfolder. Classic choices:4x-UltraSharpfor clean general-purpose upscales,4x_NMKD-Siax_200kor4x-AnimeSharpfor anime/illustration. This is the ESRGAN workhorse category - fast, runs in milliseconds, adds no hallucinated detail, which is exactly right when the source is already sharp and you just want pixels. - mode -
rescale(multiply by a factor) orresize(target an exact width). - rescale_factor - e.g. 2 for 2x, when in rescale mode.
- resize_width - target width when in resize mode (height follows aspect ratio).
- resampling_method -
lanczos,nearest,bilinear, orbicubic.lanczosis the sensible default for clean downscales/upscales. - supersample -
true/false. - rounding_modulus - the output dimensions are snapped to a multiple of this (default 8), which keeps your latent dimensions friendly for samplers.
Output is the upscaled IMAGE.
The honest picture
The model upscale part is real and useful - a 4x ESRGAN pass before a hi-res fix or as a finishing step is a legitimate, proven move (and ESRGAN-family usage is actually rising relative to generative upscalers, because when the source is clean you don't want a diffusion model inventing detail). But the node carries some Comfyroll baggage: the mode/rescale/resize logic is a second step on top of the model upscale, and if you just want "upscale by 2 with UltraSharp," you might find core ComfyUI's own Upscale Image (Model) plus a simple resize simpler. This is the node you reach for when you want the Comfyroll behavior specifically, or when you're already in this pack.
Install
Part of duckcomfy personal nodes. ComfyUI Manager → search "duckcomfy personal nodes", or:
cd ComfyUI/custom_nodes
git clone https://github.com/duckcomfy/duckcomfy_personal_nodes
Restart ComfyUI. No pip dependencies. The one thing you do need is an upscale model file in ComfyUI/models/upscale_models/ - 4x-UltraSharp or similar from the usual model sites. No model, and the dropdown is empty and the node can't run.
Gotchas
The most common failure is forgetting the model file - the upscale_model dropdown is empty until you drop a model in the folder and refresh. Beyond that, remember this is a model-based upscale plus a resize, so watch the interaction: if you're in resize mode after a model upscale, you're resizing the already-upscaled image, which can erase the model's gains if your target is below the model's output size. And keep rounding_modulus in mind if the result feeds another sampler - odd dimensions can trip latent size requirements.
Inputs (8)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — | |
| upscale_model | COMBO | 0 options: | |
| mode | COMBO | 2 options: rescale, resize | |
| rescale_factor | FLOAT | 2.000.01–16 | — |
| resize_width | INT | 10241–48000 | — |
| resampling_method | COMBO | 4 options: lanczos, nearest, bilinear, bicubic | |
| supersample | COMBO | 2 options: true, false | |
| rounding_modulus | INT | 88–1024 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |