Supplier product photos are often tiny. 500×500 px, heavy JPEG compression, and then the marketplace asks for at least 1,600 px on the long side, or your zoom feature shows a blurry mess.
The usual fixes are a desktop app (one image at a time), a monthly subscription to an online upscaler, or setting up Real-ESRGAN with a GPU yourself. If you just need a few hundred images bigger and sharper once in a while, none of that is great.
Here is a pay-per-image way to do it in bulk, from a list of URLs.
Step by step
- Open AI Image Upscaler on Apify (the free plan's monthly credits are enough to try it).
- Paste your image URLs, one per line: product feed images, CDN links, Google Drive public links, anything reachable over HTTP.
- Choose 4x or 2x. (2x runs the 4x model on a half-size copy, which looks sharper than simply resizing.)
- Pick PNG, JPEG or WebP. Transparency is kept for PNG and WebP.
- Run it. Every result in the dataset has a direct link to the upscaled file, plus the original and new dimensions.
Under the hood it's Real-ESRGAN (realesr-general-x4v3, BSD-3-Clause) running on CPU, so there's no GPU to rent and nothing to install. It also cleans up JPEG artefacts and noise while it upscales, which matters a lot for supplier photos.
What it costs
$0.01 per output image up to 4 megapixels. A 500×500 photo upscaled 4x becomes 2000×2000 (4 MP), so 1,000 product photos ≈ $10. Larger outputs count as one image per started 4 MP. Failed downloads and unsupported files are never charged.
A real test: a 960×431 photo became 3840×1724 in about 10 seconds.
Bulk upscaling from code
from apify_client import ApifyClient
client = ApifyClient("<YOUR_API_TOKEN>")
run = client.actor("digitalni.produkty.pro.zivot/ai-image-upscaler").call(
run_input={
"imageUrls": [
"https://example.com/products/sku-1001.jpg",
"https://example.com/products/sku-1002.jpg",
],
"scale": "4",
}
)
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item["sourceUrl"], "->", item["imageUrl"], item["width"], "x", item["height"])
No-code: plug it into your workflow
- Make / Zapier / n8n: new product in your shop → run the Actor with the image URL → save the upscaled image back to Google Drive or your CMS.
- Google Sheets: keep a column of image URLs, run the Actor on a schedule, and export the dataset with the new links.
- AI agents: through the Apify MCP server, Claude or ChatGPT can call the upscaler as a tool ("make these 20 images print-ready").
Good to know
- The AI adds plausible detail. It can't recover information that isn't there (for example, unreadable small text).
- Faces are upscaled like the rest of the image, with no separate face-restoration model.
- Only upscale images you have the rights to use.
Other good fits: AI art (Midjourney / Stable Diffusion outputs to print size), old scanned photos, thumbnails for blog headers, and images for print-on-demand merch.
Disclosure: I built this tool. If you need something it doesn't do yet (background removal is coming), tell me in the Issues tab.
Top comments (0)