Free AI Image Upscaling with image-upscaling-api

 

Image-Upscaling.net is a free online AI image upscaler that lets you enlarge photos/images without any signup or payment. It’s donation-funded and offers 100% free usage with no paywalls or accounts needed. Key features include high-quality upscaling (up to 4×, supporting images to be scaled to 16k×16k pixels), optional face restoration, transparent-image support, and a fast web interface. Behind the scenes, Image-Upscaling.net even provides a free developer API (via a PyPI package) so you can automate upscaling in code.

This tutorial walks through using the official image-upscaling-api Python package to upload and upscale images. It covers installation, usage examples, and notes on quotas. All of the following code examples come from the official documentation that can be found here.

Interactive Demo

A quick interactive demo notebook for colab can be found here: image-upscaling.net_API/upscale_api/image_upscaling_api_demo.ipynb at main · dercodeKoenig/image-upscaling.net_API

1. Install the package

First, install the Python package from PyPI:

pip install image-upscaling-api

2. Set up your client_id

The API does not require any secret key or signup. Instead, you supply a client_id — a unique identifier string (you choose this) that ties your requests together. The client_id must be a 32-digit hexadecimal string. For example, you could generate one with Python or an online tool (e.g. "481d40602d3f4570487432044df03a52"). This string doesn’t authenticate you to an account; it simply lets the service group and track your images. Keep the same client_id for all your requests to identify yourself.

Note: Image-Upscaling.net stores your results under this client ID (via a cookie) so you must use the same ID to query status later. Because images are private to you, only someone with your client_id (or cookie) can see your processed images.

3. Upload and upscale an image

Use the upload_image function to send an image for processing. You pass your local filename, the client_id, and options for scaling and face-enhancement. For example:

from image_upscaling_api import upload_image

# Choose your image file and a 32-digit client ID
image_path = "photo.jpg"
client_id = "481d40602d3f4570487432044df03a52" # replace with your own id
# Upload the image for 4× upscaling, without face enhancement
upload_image(
image_path,
client_id,
scale=4,
use_face_enhance=False
)

Once you call upload_image(...), the file is sent to the server. If successful, your image is added to the processing queue. (You don’t download anything immediately; instead, check back later for the upscaled result.)

4. Check status and download results

Use get_uploaded_images to poll the processing status of your uploaded images. It returns three lists: waitingin_progress, and completed. Each list contains records for your images at that stage. For example:

from image_upscaling_api import get_uploaded_images

waiting, completed, in_progress = get_uploaded_images(client_id)
print("Waiting:", waiting) # images queued
print("In Progress:", in_progress) # images being processed
print("Completed:", completed) # images done

When an image finishes processing, it appears in the completed list. Each entry in these lists includes the URL(s) to the upscaled image(s). You can take that URL and download the high-resolution image (for example, using requests.get(url).content) at your convenience.

Important: High-quality AI upscaling takes time. On the site, it’s noted that processing one image can take 1–2 minutes (depending on current demand). So you’ll usually poll get_uploaded_images a few times (with some delay) until your image shows up under completed.

Also note that processed images are only stored for a few hours. Be sure to download them when they are processed.

5. Usage limits and quotas

Although completely free, the service uses a quota system to prevent abuse. The API has the same free quota as the web interface; in other words, you get the same daily processing allotment as a regular user of the website. The site provides a “free quota per IP” (around €0.15-€0.20 per day) with one upscale beeing priced at 0.01€-0.02€ depending on image size. So you can easily upscale 10–15 images every day for free.

If you need more than the free allowance, the site encourages donations that allow you to claim additional quota. For casual or intermittent use you likely won’t run into hard blocks, but if you plan heavy automation be mindful of this limits.

Details about the daily free quota and pricing can be found on the “about” page here: About — Image-Upscaling.net

6. Tips and best practices

By following these steps, you can quickly integrate free AI upscaling into your Python projects. Enjoy higher-resolution images at no cost, and consider donating to support the service if you find it useful!

API source code: dercodeKoenig/image-upscaling.net_API