Ir al contenido principal

API de aumento de resolución: elija 2K, 4K u 8K y descargue el resultado

Elija 2K, 4K u 8K según los píxeles del recorte final, pruebe en el Playground, ejecute un ejemplo en Python y corrija grabados, caras y tamaño de archivo.

Autor
Lydia
Publicado
Lectura
8 min de lectura
Actualizado
Ilustración editorial de una fotógrafa pelirroja que usa una lupa para inspeccionar una gran copia de retrato en una sala de impresión luminosa; no es un resultado de la API de aumento de resolución.

Use spicyapi/image-upscaler-v1/upscale para ampliar una imagen ya terminada. Elija 2k, 4k u 8k según los píxeles que necesite su recorte final: los niveles son presupuestos de píxeles de aproximadamente 4, 17 y 67 megapíxeles, no tamaños fijos de lado largo. Los tres cuestan $0.012 por imagen de salida (1000 imágenes son $12), en JPEG, PNG o WebP. Pruébelos primero en el Playground, luego ejecute el ejemplo corto en Python o entréguelo a un Agent.

Elija el nivel según el recorte final

El Image Upscaler mantiene la relación de aspecto de la fuente. Un retrato de 1024×1536 devuelve:

SolicitudPresupuesto de píxelesTamaño devueltoPrecio
2kunos 4 MP1672×2508$0.012/imagen
4k (predeterminado)unos 17 MP3344×5017$0.012/imagen
8kunos 67 MP6689×10033$0.012/imagen

Otra relación de aspecto da otras dimensiones. Si piensa en "2×" o "4×", la ampliación lineal es la raíz cuadrada del presupuesto dividida por los megapíxeles de la fuente:

Fuente2k4k8k
1024×1536 (1.6 MP)1.6×3.3×6.5×
1920×1080 (2.1 MP)1.4×2.8×5.7×
4000×3000 (12 MP de foto de móvil)0.6× (reduce)1.2×2.4×

Un nivel por debajo de la cantidad de píxeles de la fuente reduce: una entrada de 3344×5017 enviada a 2k devuelve 1672×2509. Si la fuente ya cumple el destino, expórtela normalmente; este endpoint no tiene modo de nitidez en el tamaño original.

Para una tarjeta web que se muestra con 600 píxeles de ancho a densidad 2×, necesita 1200 píxeles en el recorte final. Si ese recorte conserva la mitad del ancho de la fuente, el maestro necesita 2400 píxeles de ancho. El retrato de 1672 píxeles con 2k se queda corto; 4k lo cubre.

Para imprenta, multiplique las pulgadas por la densidad que pida su impresora. Una imagen de 10×15 pulgadas a 300 píxeles por pulgada necesita 3000×4500 píxeles, y el retrato 4k lo cubre sin recorte. Cambiar los metadatos de densidad no añade píxeles, y un recorte más ajustado requiere un cálculo nuevo.

Elija 8k solo cuando el recorte lo necesite. El precio es el mismo, pero 67 megapíxeles son unos 268 MB de datos de píxel crudos de cuatro canales, lo que cuenta para la memoria de edición, y el JPEG descargado llega a unos 8 MB en ese nivel.

Prepare una fuente limpia

Termine primero la eliminación de objetos, el recorte y otras ediciones, y parta del mejor original, no de una miniatura de un sitio web. La entrada es un JPEG, PNG o WebP de 10 MB como máximo, así que un maestro de impresión grande puede necesitar una exportación antes de enviarlo. Para un catálogo ficticio de papelería, use una fotografía aprobada de una pluma fuente y su estuche, y guarde una referencia aparte para el nombre grabado exacto: la ampliación puede convertir marcas ambiguas en letras seguras que son incorrectas.

Elija output_format según lo que ocurra después. jpeg (predeterminado) es el más pequeño; PNG es sin pérdida pero varias veces mayor en 8k; WebP queda en medio. PNG no convierte en cierto un detalle reconstruido. No hay prompt, ni ancho/alto exactos, ni intensidad de restauración facial, ni seed.

Una fotógrafa ficticia inspecciona una pluma fuente con detalles circulares que muestran su punta dorada, el grabado del cuerpo y el reflejo de un estuche crema.

Ilustración de las zonas de inspección, no un resultado del aumento de resolución.

Pruébelo primero en el Playground

  1. Abra la página de Image Upscaler y quédese en la pestaña Playground, en la vista Form. Inicie sesión con una cuenta con saldo para ejecutar.
  2. Suelte su imagen en Input image (JPG, PNG o WEBP, hasta 10 MB), o pegue un enlace con Asset URL.
  3. Ponga Resolution en 2K, 4K u 8K y Output format en JPEG, PNG o WebP.
  4. Ejecútelo y compruebe el resultado en su tamaño final de tarjeta o de impresión.

Pruebe aquí su mejor fuente antes de escribir código. El cuerpo de la solicitud del Playground es el mismo JSON que acepta la API, así que una configuración que funciona aquí se copia tal cual al código.

Luego llámelo desde el código

Instale el SDK de Python (pip install spicyapi), defina SPICY_API_KEY en su entorno y ejecute:

Instale Pillow (python -m pip install Pillow) para la validación de descarga de este ejemplo. El archivo de salida original se reemplaza solo después de que el nuevo JPEG se decodifica correctamente.

python
import os
from pathlib import Path
import tempfile
import urllib.request
import uuid

from PIL import Image

from spicyapi import SpicyClient, output_assets

client = SpicyClient()  # reads SPICY_API_KEY from the environment

source = client.upload_file("./fountain-pen-master.png")  # local file becomes a spicy:// URI

task = client.create_task(
    model="spicyapi/image-upscaler-v1/upscale",
    input_data={"image_url": source["uri"], "resolution": "4k", "output_format": "jpeg"},
    idempotency_key=str(uuid.uuid4()),  # new key per new request; reuse only to retry the same one
)

print(f"Task ID: {task['taskId']}", flush=True)
final = client.wait_for_terminal(task["taskId"])
if final["state"] != "succeeded":
    raise RuntimeError(f"Task {task['taskId']} ended as {final['state']}")

assets = [a for a in output_assets(final)
          if a.get("url") and not a.get("pending") and not a.get("unavailable")]
if not assets:
    raise RuntimeError(f"Task {task['taskId']} has no downloadable output yet")

request = urllib.request.Request(assets[0]["url"], headers={"User-Agent": "upscale-example/1.0"})
target = Path("upscaled.jpg")
temporary = None
try:
    with tempfile.NamedTemporaryFile(dir=target.parent, suffix=".jpg", delete=False) as out:
        temporary = Path(out.name)
        with urllib.request.urlopen(request, timeout=60) as response:
            out.write(response.read())
    with Image.open(temporary) as image:
        if image.format != "JPEG":
            raise ValueError("Expected a JPEG output")
        image.load()  # reject unreadable or truncated data before replacing the keeper
    os.replace(temporary, target)
finally:
    if temporary is not None:
        temporary.unlink(missing_ok=True)

Una ejecución tarda unos 45 segundos. Cambie de nivel o de formato modificando resolution y output_format. Las subidas, la espera, los reintentos y los errores están cubiertos en la guía de tareas y en la referencia del SDK de Python. Los enlaces de resultado duran unos 20 minutos y los archivos generados se borran como máximo después de 14 días, así que copie el resultado a su propio almacenamiento.

O deje que un Agent lo ejecute

Cuando un asistente debe aumentar la resolución de sus imágenes, las tres herramientas oficiales muestran el precio y le preguntan antes de una llamada de pago.

  • CLI. spicyapi ejecuta una tarea desde una terminal (npx @spicyapi/cli funciona sin instalarlo). Ponga {"image_url": "spicy://...", "resolution": "4k"} en input.json, usando la URI que imprime la subida:

``bash spicyapi files upload ./fountain-pen-master.png spicyapi tasks create --model spicyapi/image-upscaler-v1/upscale --input-file input.json --wait ``

  • Servidor MCP. Añada el servidor MCP a su asistente y luego pregunte: "Upscale ./fountain-pen-master.png to 4K with Image Upscaler." Llama a spicyapi_upload_file, luego a spicyapi_task_create, que se detiene para su confirmación de precio, y luego a spicyapi_task_wait.
  • Skill. npx skills add spicyapi-ai/spicy-skill instala el Agent Skill, que hace que un asistente de código lea el esquema del modelo en vivo en lugar de adivinar campos. No puede ejecutar tareas por sí solo, así que úselo junto con la CLI o MCP.

Decida si los píxeles extra sirven

Compruebe el resultado en su diseño final de tarjeta o de impresión y luego a tamaño completo en la punta, el grabado y los bordes del estuche: ¿sirven los píxeles extra para ese uso mientras mantienen el producto fiel?

SíntomaSiguiente paso
La salida es más pequeña que la fuenteCompare los píxeles de la fuente con el presupuesto del nivel; suba un nivel solo si el destino necesita ampliación.
Las letras grabadas se ven nítidas pero equivocadasReemplace la fuente por una fotografía más nítida o por arte aprobado; un nivel mayor no puede verificar letras que faltan.
Aparecen contornos claros alrededor de bordes oscurosCompare con el original enviado. Si su propia nitidez aplicada (sharpening) creó el contorno, exporte una fuente más limpia antes de reintentar.
La cara se ve retocada pero distintaCompare ojos, expresión y línea del pelo con el original; rechace ese candidato en lugar de aprobar solo la nitidez.
La web descarga una imagen enormeConserve el maestro aprobado y exporte una derivación ordinaria más pequeña para el hueco mostrado.
La API rechaza un campo extraElimine scale, face_restore, width y controles similares; este endpoint no tiene ninguno.
Un retrato ficticio de hombre adulto acompañado de recortes de papel de expresión, línea del pelo y escote contra un fondo suave.

Ilustración de detalles de retrato para comparar, no detalle facial recuperado.

Para retratos ficticios de adultos, SpicyAPI no ejecuta ningún control de seguridad en esta herramienta, así que el consentimiento y las obligaciones legales siguen siendo suyos. Las entradas NSFW moderadas y avanzadas se amplían con normalidad; ejecute una muestra de su propio material antes de un lote.

Si el maestro está bien pero una tarjeta pequeña pierde el grabado, ajuste esa derivación o cambie el zoom; otra pasada de IA no es el primer arreglo. Si necesita un encuadre más ancho en lugar de más píxeles, vea outpainting hacia una nueva relación de aspecto; para clips, vea aumento de resolución de vídeo.

También en English · 日本語 · 한국어 · Deutsch · Français · Português (Brasil) · Русский · Italiano · Polski

Pon esta guía en práctica

Obtener el flujo de trabajo

Del concepto en ComfyUI a una imagen final más grande.

Crea un retrato de personaje o una portada de galería con Z-Image Turbo, pásalo a Image Upscaler y guarda la imagen ampliada desde un solo grafo de ComfyUI. Úsalo para retratos detallados, portadas ilustradas y diseños de galería con mucho espacio.