Batch Image Upscaling: How to Upscale 100+ Photos at Once With AI.

You have 350 product photos. Your manufacturer sent them at 800×800 pixels. Your e-commerce platform requires 2000×2000 minimum for zoom functionality. Doing them one at a time is not a workflow — it's a half-day task that shouldn't exist. Here's how to process them all at once.

The Two Approaches: ZIP Batch vs. API

There are two ways to batch-upscale images on UpRes, and choosing between them depends on your technical comfort level and volume:

  • ZIP batch upload (web app): Upload a ZIP file containing up to 50 images, select a model, wait for processing, download a ZIP of results. No code required. Works on Pro and Business plans.
  • REST API (Business plan): POST each image URL to /v1/jobs, collect job IDs, poll for completion in parallel. Handles unlimited volume, no browser required, integrates into your own pipeline.

Method 1: ZIP Batch Upload (No Code)

The simplest path for photographers and designers who don't want to write code:

  1. Compress your images into a ZIP file on your computer. Keep them under 50 images per ZIP and under 500 MB total (individual image limit is 50 MB each).
  2. Open the UpRes web app and drag the ZIP onto the upload zone. The app detects ZIP files automatically and queues each image as a separate job.
  3. Select your model. For product photos at consistent quality, Real-ESRGAN is fastest and most cost-effective. For images with faces, switch to Bria Increase Resolution.
  4. Wait for the batch to complete — the job list updates in real time. Download the result ZIP when all jobs show "completed."

Time estimate: 50 product JPEGs (3–5 MB each) through Real-ESRGAN typically completes in 4–8 minutes on a Pro plan.

Method 2: REST API (Any Volume, Programmatic)

For volumes over 50 images, recurring batch jobs, or integration into a product, the API is the correct approach. UpRes Business ($49/month) includes full API access.

The basic loop in Python:

import requests
import time

API_KEY = "your_api_key_here"
IMAGE_URLS = ["https://your-cdn.com/img001.jpg", ...]  # list of 100+ URLs
MODEL = "flare"

# Submit all jobs in parallel
jobs = []
for url in IMAGE_URLS:
    r = requests.post(
        "https://api.upres.ai/v1/jobs",
        json={"image_url": url, "model": MODEL, "scale": 4},
        headers={"Authorization": f"Bearer {API_KEY}"},
    )
    jobs.append(r.json()["id"])

# Poll until all complete
results = {}
pending = set(jobs)
while pending:
    for job_id in list(pending):
        r = requests.get(
            f"https://api.upres.ai/v1/jobs/{job_id}",
            headers={"Authorization": f"Bearer {API_KEY}"},
        )
        job = r.json()
        if job["status"] == "completed":
            results[job_id] = job["result_url"]
            pending.discard(job_id)
    if pending:
        time.sleep(5)

print(f"Done — {len(results)} images processed")

Full API reference at /docs/api. The OpenAPI 3.1 spec is at https://api.upres.ai/v1/openapi.json if you want to generate a typed client in any language.

Choosing the Right Model for Batch Jobs

At volume, model choice has a large impact on cost and speed. Here's the decision matrix for the most common batch scenarios:

Content typeRecommended modelCost
Product photos, landscapesReal-ESRGAN1 credit per image
Portraits, facesBria Increase Resolution1 credit per image
AI-generated artCrystal UpscalerPay per use
Mixed content (safe default)Image Upscaler1 credit per image

For a 350-image product batch through Real-ESRGAN, PAYG needs 350 credits. On the Pro plan's 100 included images, the remaining 250 images need 250 credits. See the batch upscaling guide for a full cost breakdown.

Common Batch Workflow Mistakes

  • Using the wrong scale factor: a 3200×3200 output from an 800×800 input means 4× upscaling. For a 3200×3200 target, request 4x. If you specify 2x and then try to scale again, you get two generations of artifacts.
  • Pre-compressing inputs: Don't ZIP already-compressed JPEGs with aggressive JPEG compression again. Each JPEG recompression cycle degrades quality. Use the original files as inputs.
  • Not rate-limiting API calls: The API accepts 60 requests/minute. Submit in batches of 50–55 with a 1-second sleep between batches to avoid 429 errors.
  • Single model for all content: A batch of mixed portraits and landscapes should use Bria for the portraits and Real-ESRGAN for the landscapes — not one model for everything.

Integration Patterns

Beyond one-off batch jobs, teams often integrate upscaling into larger pipelines:

  • E-commerce image pipeline: Ingest supplier images → check resolution → if under threshold, POST to UpRes API → replace with upscaled version before publishing to storefront.
  • DAM (Digital Asset Management) integration:On asset upload to your DAM, trigger a webhook that sends the file to UpRes and stores the upscaled version alongside the original.
  • Print-on-demand quality check: Before sending to a print vendor, run all uploaded images through Real-ESRGAN if they're under 300 DPI at the target print size.

The API integration guide covers webhook patterns and error handling in detail.

Quick Answer

UpRes supports batch image upscaling via two methods: ZIP batch upload in the web app (up to 50 images per batch, no code required, Pro plan) and the REST API for unlimited parallel processing (Business plan, $49/month). For product photography, Real-ESRGAN is a sensible default — each image uses one credit on PAYG, and credit packs start at $5 for 50.

FAQ

How do I upscale multiple images at once with AI?

Upload a ZIP file to UpRes for no-code batch processing (up to 50 images), or use the REST API for larger batches. Both methods process images in parallel.

What is the best AI tool for batch image upscaling?

UpRes Business ($49/month) with the REST API is the best option for programmatic batch upscaling. The API handles unlimited volume with priority queue processing.

How long does it take to batch upscale 100 images?

With the API running requests in parallel, 100 JPEG images typically complete in 5–10 minutes on the Business plan.

Get started in 3 steps

  1. Upload — drag a ZIP of images or a single file. Free tier works immediately.
  2. Pick a model — Real-ESRGAN for product photos, Bria for portraits.
  3. Download results — as individual files or a ZIP. Jobs run in parallel.
Free tier available

Try batch upscaling free — 5 images/month, no card.

5 free upscales per month. Creator from $9/mo. No watermarks on paid plans.