Last Updated | Changes |
1/19/2023 | First version published |
What is Upscaling?
Image Upscaling is the process of taking a lower resolution image (or video) and increasing its height and width dimensions (resolution) while trying to keep the details sharp and clear. This is extremely useful when you want to make an image larger without losing quality.
There are different ways to upscale an image. Traditional methods just stretched the pixels, often resulting in blurry or pixelated images. But now, with advanced AI techniques, upscaling can actually add details that weren’t in the original image, making it look like it was shot or created in high resolution in the first place. This AI-based upscaling is a game-changer for all sorts of visual work.
The above is an example of upscaling. A small image (512×512) was upscaled 8 times its original size, while also adding a lot of fine details. In most applications, the level of detail added is configurable – it doesn’t have to come out looking like an entirely different image!
There are many upscaling models, apps, and methods, each producing wildly different results. We’ll explore some of them below!
Upscaling Models
There are many upscale models designed for image enhancement, and the most popular resource to find them is the OpenModelDB – a community driven repository with hundreds of models, trained to upscale different forms of image.
Upscaling on Civitai
Upscaling for Stable Diffusion image generation has become ubiquitous. Images are often generated at a lower resolution, then through upscaling (sometimes using img2img, or other models) are scaled to the final image size.
The Civitai on-site Image Generator now has the ability to upscale images after generation! Check out the Guide to get started!
Upscaling inside a Local Stable Diffusion Interface
Most Stable Diffusion interfaces provide some form of upscaling. This might be options built into the txt2img pipeline (upscaling after image generation), or it may be a feature which allows any image to be upscaled. Below we’ll look at using some of the most common SD interfaces to upscale;
Upscaling with Fooocus
The Stable Diffusion Fooocus interface has excellent upscaling capabilities, up to 2x base image size, based on in-built upscaling processes. Fooocus is also one of the easiest Stable Diffusion interfaces to start exploring Stable Diffusion and SDXL specifically.
Upscaling with Automatic 1111 WebUI
There are many options for upscaling with Automatic 1111. One of the most commonly used ways to increase both the dimensions and fidelity of an output image is to use what’s known as Hires fix during the txt2img generation process.
Hires fix uses custom upscale models (such as those available from OpenModelDB) to increase the dimensions (and detail) of an image, in what is essentially an img2img pass, with a customizable Denoising Strength.
Images can also be upscaled from the Extras
tab which allows any of the installed upscale models to be used in the process;
Another method is to use ControlNet, Custom Scripts or dedicated Upscaling Extensions. Some popular upscaling Extensions are;
Example outputs to follow.
Upscaling with ComfyUI
ComfyUI provides some of the most flexible upscaling options, with literally hundreds of workflows and nodes dedicated to image upscaling.
In the most simple form, a ComfyUI upscale workflow would just use an Load Upscale Model
node, and might look something like;
Far, far, more complex workflows are available, however, such as this example, from Olivio Sarikas.
Examples to follow.
Upscaling with Local Tools
There are a number of offline, stand-alone, applications for upscaling, some of the most popular include;
Upscayl
Upscayl is a free and Open Source image upscaler made for Linux, MacOS, and Windows. It does require a GPU, it won’t work on CPU alone, and it uses popular, common, upscaling models. Custom models can be provided, downloaded from sites like the OpenModelDB.
Topaz Labs Gigapixel
Gigapixel from Topaz Labs has long been an industry favorite, with both image and video upscaling. It is a stand-alone desktop application for Windows and MacOS, and requires a GPU with at least 2GB of VRAM.
Gigapixel is a one-time fee of $99 USD for unlimited, local, use. It uses proprietary models and does not allow custom upscale models to be used.
Other Upscaling Options
One of the most recent upscalers to enter the market is the phenomenal Magnific AI. Magnific AI isn’t free – it’s quite costly in-fact, at $39 USD per month for about ~200 upscales, but the results are out of this world, with excellent controllability over the type of image to be processed, fine detail, and scaling up to 16x (max 10,000×10,000 pixels).
It’s all web-based, so there’s no GPU/hardware requirement.