Upscale
BetaTwice the size.Still sharp.
Drop an image and get it back larger, with the detail drawn in rather than stretched. No model to pick and no prompt to write. Mynth chooses the model and keeps it current.
Free for 5 images a day at 2×, no account needed. Sign in for 4× and high effort without a limit, from $0.03 an image on your balance.
Drop an image here
Or paste one, or choose a file. PNG, JPEG or WebP, up to 10 MB.
The call
One image in, a larger one out
What this page runs is one API call, and it is the same call for you. Upscaling is in beta: the request is settled, and the models behind each effort may change.
- POST /image/upscale
- One public
httporhttpsimage URL, asizeand aneffort. Nomodeland no prompt. Creates animage.upscaletask and returns201with ataskId. - size
2xor4x. The result can be at most 4096×4096 pixels, so 2× takes images up to about 4.2 MP and 4× up to about 1 MP. A larger one fails before any work and costs nothing.- effort
lowis fast and sharp, for product shots, generated images and anything already clean.highrebuilds fine detail — small text, skin, fur, leaves — on soft or damaged input.- $0.03 / $0.15
- Per image, on low and high effort, whatever the size. Reserved when the task is created and charged when it succeeds. A failed task costs nothing.
- Results
- One image with its real size and format. It stays on the Mynth CDN for seven days, or goes straight to your own storage with a destination.
- Waiting
- Poll the task, or listen for
task.image.upscale.completed. The create response carries apat_token, so a browser can poll the one task without your key. This page does exactly that.
Mynth
One API for AI media
Upscale is one tool among the rest, on the same key, balance and tasks.
- Every model
- Image and video generation, edits, rating, alt text and review, behind one key and one balance. Browse the models.
- One payload
- The same request shape whichever model runs it, so switching is one string. How it works.
- Pay per result
- No plan and no seats. A balance you top up, and a price for every call. See pricing.
SDK
From TypeScript
Pass a URL or a file. A file is uploaded first, and the call waits for the upscale.
TypeScript
import Mynth from "@mynthio/sdk";
import { openAsBlob } from "node:fs";
const mynth = new Mynth(); // reads MYNTH_API_KEY
const upscaled = await mynth.image.upscale({
file: await openAsBlob("./product.jpg"), // or url: "https://…"
size: "2x",
effort: "low",
});
upscaled.image.url; // https://cdn.mynth.io/images/img_….jpg
upscaled.image.size; // "2048x1536"upscaleAsync returns the task instead, to poll yourself or hand to a browser. See the TypeScript SDK.
API
Or over plain HTTP
Create the task, then read the result once its status leaves pending.
REST
curl https://api.mynth.io/image/upscale \
-H "Authorization: Bearer $MYNTH_API_KEY" \
-H "Content-Type: application/json" \
-d '{"url":"https://cdn.example.com/product.jpg","size":"2x","effort":"low"}'
# { "data": { "taskId": "tsk_…", "estimatedCost": "0.03",
# "access": { "publicAccessToken": "pat_…" } } }
curl https://api.mynth.io/tasks/tsk_…/result \
-H "Authorization: Bearer $MYNTH_API_KEY"Upscale images has every field, and Poll for results the waiting loop.