Vai al contenuto principale

API di upscaling immagini: scegli 2K, 4K o 8K e scarica il risultato

Scegli 2K, 4K o 8K in base ai pixel del ritaglio finale, prova nel Playground, esegui un esempio Python e correggi incisioni, volti e dimensione del file.

Autore
Lydia
Pubblicato
Lettura
8 min di lettura
Aggiornato
Illustrazione editoriale di una fotografa dai capelli rossi che usa una lente d'ingrandimento per esaminare una grande stampa di ritratto in una luminosa sala di stampa; non è un risultato dell'API di upscaling.

Usa spicyapi/image-upscaler-v1/upscale per ingrandire un'immagine già finita. Scegli 2k, 4k o 8k in base ai pixel che serve al ritaglio finale: i livelli sono budget di pixel di circa 4, 17 e 67 megapixel, non dimensioni fisse del lato lungo. Tutti e tre costano $0.012 per immagine di output (1000 immagini costano $12), in JPEG, PNG o WebP. Provali prima nel Playground, poi esegui il breve esempio Python o affidalo a un Agent.

Scegli il livello in base al ritaglio finale

L'Image Upscaler mantiene il rapporto d'aspetto della sorgente. Un ritratto 1024×1536 restituisce:

RichiestaBudget di pixelDimensione restituitaPrezzo
2kcirca 4 MP1672×2508$0.012/immagine
4k (predefinito)circa 17 MP3344×5017$0.012/immagine
8kcirca 67 MP6689×10033$0.012/immagine

Un altro rapporto d'aspetto dà altre dimensioni. Se ragioni in «2×» o «4×», l'ingrandimento lineare è la radice quadrata del budget divisa per i megapixel della sorgente:

Sorgente2k4k8k
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 foto da telefono)0.6× (riduce)1.2×2.4×

Un livello inferiore al numero di pixel della sorgente riduce: un input da 3344×5017 inviato a 2k restituisce 1672×2509. Se la sorgente soddisfa già la destinazione, esportatela normalmente; questo endpoint non ha una modalità di nitidezza alla dimensione originale.

Per una card web mostrata larga 600 pixel a densità 2×, servono 1200 pixel sul ritaglio finale. Se quel ritaglio mantiene metà della larghezza della sorgente, il master ne richiede 2400 in larghezza. Il ritratto da 1672 pixel con 2k non basta; 4k lo copre.

Per la stampa, moltiplica i pollici per la densità richiesta dalla stampante. Un'immagine da 10×15 pollici a 300 pixel per pollice richiede 3000×4500 pixel, dimensioni che il ritratto 4k copre senza ritaglio. Cambiare i metadati di densità non aggiunge pixel, e un ritaglio più stretto richiede un nuovo calcolo.

Scegli 8k solo quando il ritaglio lo richiede. Il prezzo è lo stesso, ma 67 megapixel corrispondono a circa 268 MB di dati pixel grezzi a quattro canali, cosa che conta per la memoria di editing, e il JPEG scaricato arriva a circa 8 MB a quel livello.

Prepara una sorgente pulita

Completa prima la rimozione di oggetti, il ritaglio e altre modifiche, e parti dal miglior originale, non da una miniatura di un sito web. L'input è un JPEG, PNG o WebP di massimo 10 MB, quindi un master di stampa grande potrebbe richiedere un'esportazione prima dell'invio. Per un catalogo di cancelleria fittizio, usa una fotografia approvata di una penna stilografica e della sua scatola, e tieni un riferimento separato per il nome inciso esatto: l'ingrandimento può trasformare segni ambigui in lettere sicure ma sbagliate.

Scegli output_format in base a cosa succede dopo. jpeg (predefinito) è il più piccolo; il PNG è lossless ma diverse volte più grande a 8k; WebP sta nel mezzo. Il PNG non rende vero un dettaglio ricostruito. Non ci sono prompt, né larghezza/altezza esatta, né forza di ripristino del volto, né seed.

Una fotografa fittizia esamina una penna stilografica con dettagli circolari che mostrano il pennino dorato, l'incisione sul fusto e il riflesso di una scatola color crema.

Illustrazione delle aree di ispezione, non un risultato di upscaling.

Prova prima nel Playground

  1. Apri la pagina Image Upscaler e resta nella scheda Playground, in vista Form. Accedi con un account con saldo per eseguire.
  2. Trascina la tua immagine in Input image (JPG, PNG o WEBP, fino a 10 MB), oppure incolla un link con Asset URL.
  3. Imposta Resolution su 2K, 4K o 8K e Output format su JPEG, PNG o WebP.
  4. Esegui, poi controlla il risultato alla sua dimensione finale di card o di stampa.

Prova qui la tua sorgente migliore prima di scrivere codice. Il corpo della richiesta nel Playground è lo stesso JSON che l'API accetta, quindi un'impostazione che funziona qui si copia direttamente nel codice.

Poi chiamatela dal codice

Installa l'SDK Python (pip install spicyapi), imposta SPICY_API_KEY nel tuo ambiente ed esegui:

Installa Pillow (python -m pip install Pillow) per la validazione del download in questo esempio. Il file di output originale viene sostituito solo dopo che il nuovo JPEG è stato decodificato con successo.

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)

Un'esecuzione richiede circa 45 secondi. Cambia livello o formato modificando resolution e output_format. Caricamenti, attesa, tentativi ed errori sono coperti nella guida alle task e nel riferimento dell'SDK Python. I link del risultato durano circa 20 minuti e i file generati vengono eliminati entro massimo 14 giorni, quindi copia il risultato nel tuo archivio.

Oppure fai eseguire a un Agent

Quando un assistente deve ingrandire le tue immagini, tutti e tre gli strumenti ufficiali mostrano il prezzo e chiedono conferma prima di una chiamata a pagamento.

  • CLI. spicyapi esegue una task da terminale (npx @spicyapi/cli funziona senza installazione). Metti {"image_url": "spicy://...", "resolution": "4k"} in input.json, usando l'URI che il caricamento stampa:

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

  • Server MCP. Aggiungi il server MCP al tuo assistente, poi chiedi: «Upscale ./fountain-pen-master.png to 4K with Image Upscaler.» Chiama spicyapi_upload_file, poi spicyapi_task_create, che si ferma per la conferma del prezzo, poi spicyapi_task_wait.
  • Skill. npx skills add spicyapi-ai/spicy-skill installa l'Agent Skill, che fa leggere a un assistente di programmazione lo schema del modello in tempo reale invece di indovinare i campi. Non può eseguire task da solo, quindi usalo insieme alla CLI o a MCP.

Decidi se i pixel aggiuntivi servono

Controlla il risultato nel layout finale della card o della stampa, poi a dimensione piena su pennino, incisione e bordi della scatola: i pixel aggiuntivi servono a quell'uso mantenendo il prodotto fedele?

SintomoPasso successivo
L'output è più piccolo della sorgenteConfronta i pixel della sorgente con il budget del livello; sali di un livello solo se la destinazione richiede un ingrandimento.
Le lettere incise sembrano nitide ma sbagliateSostituisci la sorgente con una foto più nitida o con artwork approvato; un livello più grande non può verificare lettere mancanti.
Compaiono contorni chiari attorno ai bordi scuriConfronta con l'originale inviato. Se è stata la sua stessa nitidezza a creare il contorno, esporta una sorgente più pulita prima di riprovare.
Il volto sembra levigato ma diversoConfronta occhi, espressione e attaccatura dei capelli con l'originale; scarta quel candidato invece di approvare la sola nitidezza.
La pagina web scarica un'immagine enormeTieni il master approvato ed esporta una derivata ordinaria più piccola per lo spazio mostrato.
L'API rifiuta un campo in piùRimuovi scale, face_restore, width e controlli simili; questo endpoint non ne ha.
Un ritratto fittizio di uomo adulto accompagnato da ritagli di carta di espressione, attaccatura dei capelli e scollo su sfondo morbido.

Illustrazione di dettagli del ritratto da confrontare, non dettaglio facciale recuperato.

Per i ritratti fittizi di adulti, SpicyAPI non esegue alcun controllo di sicurezza su questo strumento, quindi il consenso e gli obblighi legali restano tuoi. Gli input NSFW moderati e avanzati vengono ingranditi normalmente; esegui un campione del tuo materiale prima di un batch.

Se il master è buono ma una piccola card perde l'incisione, regola quella derivata o riduci lo zoom; un altro passaggio di IA non è la prima soluzione. Se ti serve un'inquadratura più larga invece di più pixel, vedi l'estensione verso un nuovo rapporto d'aspetto; per i clip, vedi l'upscaling video.

Anche in English · 日本語 · 한국어 · Deutsch · Français · Español · Português (Brasil) · Русский · Polski

Metti in pratica questa guida

Vedi il workflow

Dal concept ComfyUI a un’immagine finale più grande.

Crea un ritratto di personaggio o una copertina per la galleria con Z-Image Turbo, passa l’immagine a Image Upscaler e salva la versione più grande da un unico grafo ComfyUI. Usalo per ritratti dettagliati, copertine illustrate e layout di galleria ampi.

Provalo tu stesso

Paghi solo quello che esegui: nessun piano, nessun abbonamento.

Creato con MiniMax H3 · ByteDance Seedance 2.0 Fast