UpRes MCP: list models, credits, submit 4K image and video upscale jobs.
Official CLI + SDK for upres.ai — AI image and video upscaling. One API, 6 specialist models (Flare, Prism, Lumen, Mirage, Motion, Motion X), up to 8K output.
$ upres upscale photo.jpg --model flare --scale 4
Submitting job... model=flare
Job created: 550e8400-e29b-41d4-a716-446655440000 (status: pending)
Waiting for result.......
Downloading to photo_upscaled.jpg... done.
Result: photo_upscaled.jpg
upres.ai gives you a clean REST API, 6 specialist models, batch processing, and predictable pricing starting at $9/mo on the Creator launch deal.
npx upres-cli upscale photo.jpg
Or install globally:
npm install -g upres-cli
upres upscale photo.jpg --model lumen --scale 8 --output photo_8k.jpg
pip install upres-ai
upres upscale photo.jpg --model flare --scale 4
export UPRES_API_KEY=upres_yourkey
Or save permanently:
mkdir -p ~/.config/upres
echo '{"apiKey":"upres_yourkey"}' > ~/.config/upres/config.json
Key resolution order: --api-key flag → UPRES_API_KEY env var → ~/.config/upres/config.json
# Upscale a single image (local file or URL)
upres upscale photo.jpg --model flare --scale 4
upres upscale photo.jpg --model lumen --scale 8 --output out.jpg
upres upscale https://example.com/photo.jpg --model prism
# Upscale video (AI-generated video from Sora, Kling, Runway etc.)
upres upscale clip.mp4 --model motion --scale 4
# Batch upscale a folder
upres batch ./photos/ --model flare --output ./upscaled/ --concurrency 5
# List available models
upres models
# List recent jobs
upres jobs --limit 20 --status completed
# Account / quota info
upres account
import { UpresClient } from "upres-cli";
const client = new UpresClient(); // reads UPRES_API_KEY from env
// Upscale a local file
const job = await client.createJobFromFile("photo.jpg", {
model: "flare",
scale: 4,
});
// Wait for completion
const completed = await client.waitForJob(job.id);
// Download result
await client.downloadResult(completed, "photo_4k.jpg");
console.log("Done:", completed.result_url);
Files over 50 MB are automatically uploaded via TUS resumable protocol.
from upres import UpresClient
with UpresClient() as client: # reads UPRES_API_KEY from env
job = client.create_job_from_file(
"photo.jpg",
model="flare",
scale=4,
)
completed = client.wait_for_job(job["id"])
client.download_result(completed, "photo_4k.jpg")
print("Done:", completed["result_url"])
The Python SDK uses httpx — async-ready, no heavy dependencies.
| Example | What it does |
|---|---|
| batch-upscale-folder.js | Upscale all images in a folder with configurable concurrency |
| restore-photo-folder.py | Restore old/scanned photos using Recraft Crisp Upscale |
| ecommerce-pipeline.js | Product image pipeline: raw shots → 4K → publish-ready |
| lightroom-export-hook.md | Auto-upscale Lightroom exports via post-processing hook |
| figma-plugin-stub.md | Figma plugin integration guide |
6 specialist models across image and video. Each one tells you up front whether it invents detail or leaves your file alone.
| Model | Kind | Best for |
|---|---|---|
flare | Image | Everyday photos, fastest default |
prism | Image | Text, logos, product shots — keeps edges true |
lumen | Image | Maximum detail recovery for print, up to 8x |
mirage | Image | Invents new detail — art and hero images |
motion | Video | Fast 4K finish for Sora/Kling/Runway clips |
motion-x | Video | Cinema-grade, for film and commercials |
Full model catalogue: upres.ai/models · Live spec: api.upres.ai/v1/openapi.json
| Plan | Price | Includes | API | Watermark |
|---|---|---|---|---|
| Free | $0 | 3 upscales/mo | — | Yes |
| Creator | $9/mo (launch deal, was $19) | 50 stills + 20 min 4K video/mo | — | No |
| Studio | $39/mo | 250 stills + 90 min 4K video/mo | Yes | No |
Studio tier unlocks the full API, batch processing, and no output watermark.
Compare plans → · vs. Topaz → · vs. Upscayl →
claude mcp add upres -- npx -y github:auroracapital/upres-cli mcp
Or in claude_desktop_config.json / Cursor:
{
"mcpServers": {
"upres": {
"command": "npx",
"args": ["-y", "github:auroracapital/upres-cli", "mcp"],
"env": { "UPRES_API_KEY": "upres_yourkey" }
}
}
}
Tools: upres_list_models, upres_get_credits, upres_upscale_image, upres_upscale_video, upres_get_job.
If you're building something open-source on top of the API, email support@upres.ai with your repo link. We offer 500 ops/month for qualifying OSS projects.
The SDK handles these errors automatically:
| Status | Behavior |
|---|---|
401 | Prints API key error + link to key management, exits |
402 | Prints quota exceeded + link to pricing, exits |
429 | Prints rate limit message (60 req/min), exits |
5xx | Throws UpresError with message |
In Python: raises AuthError, QuotaExceededError, or UpresError.
See CONTRIBUTING.md. Tests run with:
# Node
npm test
# Python
pip install -e ".[dev]"
pytest tests/test_client.py -v
MIT — see LICENSE
This listing does not have a supported local package template. Use the maintainer’s documentation for its hosted endpoint, authentication, and client-specific setup. No install command has been inferred.
https://github.com/auroracapital/upres-cli/releases/download/v0.2.0/upres-cli-0.2.0.mcpbotherio.github.auroracapital/upres-cli works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.
~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.~/.cursor/mcp.jsonRestart Cursor for changes to take effect..vscode/mcp.jsonReload VS Code window for changes to take effect.~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect..mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.