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
)
image_path
is the path to your input file (JPEG/PNG, up to ~16 megapixels).client_id
is your 32-char hex key.scale
can be 1, 2, 3, or 4 (for 1×,2×,3×,4× upscaling, 1x can sometimes remove JPEG compression artifacts).use_face_enhance
(bool) toggles a special AI model for faces. Note that face-enhancement may alter facial features and takes a bit longer to process. It tries to make faces look “good” but they are not always similar to the original faces.
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: waiting
, in_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
- Keep your client_id consistent. Always use the same 32-hex client ID across your calls so that you retrieve the correct images.
- For 3x / 4x: Images up to 2Mpx (2048*1024) automatically use the premium model for better results.
- For 1x / 2x: Images up to 8Mpx (2048*4096) automatically use the premium model for better results.
- Only enable “Face Enhance“ it if your photo has a human face that needs to be improved.
- Download promptly. After an image completes, download it right away. The service only holds upscaled images for a few hours.
- Check status occasionally. Because upscaling can take a minute or two, don’t expect instant results. Wait a short while between polls to avoid spamming the server. (The website interface queries the processing status every 3 seconds)
- Stay updated. You can join the project’s Discord (link on main website) for news or ask questions if needed.
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