UpRes (upres-cli)

Servidor MCP e CLI de upscaling de imagens e vídeos com IA, até 8K, em 14 modelos neurais especializados.

Documentação

upres-cli

npm version PyPI version License: MIT

Dê uma estrela neste repositório se o UpRes ajudar você. GitHub stars

CLI + SDK oficial para upres.ai — restauração de imagem, vídeo e fala. Uma API, 14 aliases públicos, saída de até 8K.

$ 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

Por que criamos isso

  • Topaz custa US$ 200/ano, apenas desktop, sem API, sem automação
  • Upscayl é ótimo para usos pontuais, mas não lida com exportações em lote ou pipelines de CI
  • Qualquer outro upscaler SaaS ou coloca marca d'água na sua saída, limita a resolução a 2K, ou cobra por imagem sem plano mensal

O upres.ai oferece uma API REST limpa, 14 aliases públicos, processamento em lote e preços previsíveis a partir de US$ 9/mês na oferta de lançamento Creator.


Início rápido

Node.js

npx upres-cli upscale photo.jpg

Ou instale globalmente:

npm install -g upres-cli
upres upscale photo.jpg --model lumen --scale 8 --output photo_8k.jpg

Python

pip install upres-ai
upres upscale photo.jpg --model flare --scale 4

Autenticação

  1. Cadastre-se em upres.ai (grátis — 5 upscales/mês)
  2. Acesse upres.ai/account/api-keys
  3. Gere uma chave — ela é exibida apenas uma vez
export UPRES_API_KEY=upres_yourkey

Ou salve permanentemente:

mkdir -p ~/.config/upres
echo '{"apiKey":"upres_yourkey"}' > ~/.config/upres/config.json

Ordem de resolução da chave: flag --api-key → variável de ambiente UPRES_API_KEY → ~/.config/upres/config.json


Comandos

# 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

SDK Node.js

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);

Arquivos acima de 50 MB são enviados automaticamente via protocolo retomável TUS.


SDK Python

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"])

O SDK Python usa httpx — pronto para async, sem dependências pesadas.


Exemplos

ExemploO que faz
batch-upscale-folder.jsAumenta a escala de todas as imagens em uma pasta com concorrência configurável
restore-photo-folder.pyRestaura fotos antigas/digitalizadas com Lumen
ecommerce-pipeline.jsPipeline de imagens de produto: fotos brutas → 4K → prontas para publicação
lightroom-export-hook.mdAumenta automaticamente a escala de exportações do Lightroom via hook de pós-processamento
figma-plugin-stub.mdGuia de integração de plugin para Figma

Modelos

14 aliases públicos entre imagem, vídeo e fala. Cada um informa antecipadamente se inventa detalhes ou deixa seu arquivo intacto. Aliases que não ampliam ignoram --scale.

AliasTipoMelhor para
flareImagemFotos do dia a dia, padrão mais rápido
prismImagemTexto, logotipos, fotos de produto — mantém bordas fiéis
lumenImagemRecuperação máxima de detalhes para impressão, até 8x
mirageImagemInventa novos detalhes — arte e imagens de destaque
hushImagemRedução de ruído fiel, mesmo tamanho da fonte
keenImagemDesfoque e nitidez, mesmo tamanho
visageImagemApenas rostos, não amplia
atelierImagemHush, Visage se for retrato, depois Lumen
motionVídeoAcabamento 4K rápido para vídeo de IA
motion-xVídeoQualidade de cinema, para filmes e comerciais
stillVídeoRedução de ruído temporal, resolução mantida
cadenceVídeoInterpolação de quadros, não amplia
atelier-xVídeoStill, depois Motion X
voiceFalaRedução de ruído de fala até 48 kHz. Não para música

Catálogo completo de modelos: upres.ai/models · Especificação ao vivo: api.upres.ai/v1/openapi.json


Preços

PlanoPreçoIncluiAPIMarca d'água
FreeUS$ 05 upscales/mês—Sim
CreatorUS$ 9/mês (oferta de lançamento, era US$ 19)50 imagens + 20 min de vídeo 4K/mês—Não
StudioUS$ 39/mês250 imagens + 90 min de vídeo 4K/mêsSimNão

O plano Studio desbloqueia a API completa, processamento em lote e sem marca d'água na saída.

Comparar planos → · vs. Topaz → · vs. Upscayl →


MCP (Claude, Cursor, Hermes)

claude mcp add upres -- npx -y github:auroracapital/upres-cli mcp

Ou em claude_desktop_config.json / Cursor:

{
  "mcpServers": {
    "upres": {
      "command": "npx",
      "args": ["-y", "github:auroracapital/upres-cli", "mcp"],
      "env": { "UPRES_API_KEY": "upres_yourkey" }
    }
  }
}

Ferramentas: upres_list_models, upres_get_credits, upres_upscale_image, upres_upscale_video, upres_enhance_audio, upres_get_job.


Plano gratuito para projetos open-source

Se você está construindo algo open-source sobre a API, envie um e-mail para support@upres.ai com o link do seu repositório. Oferecemos 500 operações/mês para projetos OSS qualificados.


Tratamento de erros

O SDK lida com estes erros automaticamente:

StatusComportamento
401Exibe erro de chave de API + link para gerenciamento de chaves, encerra
402Exibe cota excedida + link para preços, encerra
429Exibe mensagem de limite de requisições (60 req/min), encerra
5xxLança UpresError com mensagem

Em Python: levanta AuthError, QuotaExceededError ou UpresError.


Contribuindo

Veja CONTRIBUTING.md. Os testes são executados com:

# Node
npm test

# Python
pip install -e ".[dev]"
pytest tests/test_client.py -v

Licença

MIT — veja LICENSE