Tutoriale
API di restauro immagini e rimozione oggetti: modificare le immagini con i prompt su HiAPI
Rimuovi oggetti dalle foto con i modelli image-to-image di HiAPI: confronti reali, quale modello preserva la tua composizione, prompt efficaci ed esempi curl e Python.
Riepilogo
- Su HiAPI, rimuovere oggetti da una foto è un'operazione di editing guidato da istruzioni: invii un'immagine e descrivi cosa rimuovere. I modelli image-to-image generici non accettano maschere.
- Punti di partenza consigliati:
flux-2/image-to-image($0.035 a 1K, conaspect_ratio: "auto"preserva la tua composizione),gpt-image-2/image-to-image($0.03 a 1K, campo immagineinput_urls),seedream-4.5/image-to-image($0.045, fino a 4K) eqwen-image-3.0/image-to-image($0.0358). - Il modello di inpainting basato su maschera FLUX.1 Fill Pro è elencato su HiAPI come in arrivo. Finché non sarà disponibile, il prompt è la tua maschera.
La stessa foto, la stessa istruzione, due modelli
Immagine di partenza: una foto di prodotto da cui vogliamo eliminare l'etichetta del prezzo.

Remove the coral price tag and its string from the bottle. Rebuild the bottle surface and the gray background that were behind it. Keep the bottle, lighting, shadow and everything else unchanged.

gpt-image-2/image-to-image, resolution 1K, 1254×1254, 112 secondi, $0.03.
L'etichetta del prezzo e il suo cordino sono scomparsi. La superficie della borraccia che era coperta dall'etichetta è stata ricostruita, con curvatura e riflessi coerenti con l'originale, lo sfondo grigio non presenta tracce di ritocco, e il tappo, il fondo e l'ombra corrispondono all'immagine di partenza.
Abbiamo inviato la stessa richiesta a flux-2/image-to-image. L'attività è terminata con fail dopo 16 secondi, con il solo motivo TASK_FAILED, e il costo è stato rimborsato. Un singolo fallimento non dice nulla sul modello in sé, ma è un promemoria: gestisci lo stato fail nel codice e riprova con un secondo modello.
Quale modello usare
| ID modello | Campo immagine | Preserva la composizione di partenza | Dimensioni di output | Prezzo |
|---|---|---|---|---|
flux-2/image-to-image |
image_urls (1–8) |
Sì, aspect_ratio: "auto" |
resolution 1K / 2K |
$0.035 a 1K |
gpt-image-2/image-to-image |
input_urls (1–16) |
Sì, aspect_ratio: "auto" (predefinito) |
resolution 1K / 2K / 4K |
$0.03 a 1K |
qwen-image-3.0/image-to-image |
image_urls (1–3) |
No, scegli tra 8 proporzioni | resolution 1K / 2K |
$0.0358 |
seedream-4.5/image-to-image |
image_urls (1–14) |
No, scegli tra 8 proporzioni | resolution 2K / 4K |
$0.045 |
seedream-5.0-pro/image-to-image |
image_urls (1–10) |
No, scegli tra 7 proporzioni | resolution 1K / 2K |
$0.06 a 1K |
Prezzi HiAPI in tempo reale, rilevati il 20 ottobre 2026. Le attività fallite non vengono addebitate.
- Scelta predefinita per la rimozione oggetti: usa un modello che supporta
aspect_ratio: "auto", così l'output mantiene la forma della foto e puoi reinserirlo direttamente al suo posto. - Stampe di grande formato o pagine prodotto con zoom: Seedream 4.5 produce output 4K allo stesso prezzo del 2K.
- Solo rimozione dello sfondo: usa uno strumento dedicato, ad esempio
851-labs/background-remover($0.002 per immagine), che richiede solo unimage_urle nessun prompt.
curl
curl -s -X POST https://api.hiapi.ai/v1/tasks \
-H "Authorization: Bearer $HIAPI_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "flux-2/image-to-image",
"input": {
"prompt": "Remove the white delivery van parked on the right. Rebuild the storefront and sidewalk behind it. Keep everything else unchanged.",
"image_urls": ["https://your-cdn.example.com/street.jpg"],
"aspect_ratio": "auto",
"resolution": "1K"
}
}'
Ricevi un taskId. Esegui il polling di GET https://api.hiapi.ai/v1/tasks/{taskId} finché data.status non è success, poi scarica data.output[0].url. L'immagine di partenza deve trovarsi a un URL pubblico; il modello la recupera lato server.
Python: una funzione per tutti i modelli
# pip install requests; export HIAPI_KEY=your-key first
import os, time, requests
API = "https://api.hiapi.ai/v1/tasks"
H = {"Authorization": f"Bearer {os.environ['HIAPI_KEY']}"}
def edit(model, timeout_s=300, **inp):
r = requests.post(API, json={"model": model, "input": inp}, headers=H, timeout=30).json()
if r.get("code") != 200:
raise RuntimeError(r) # a 400 lists every invalid field at once
task_id = r["data"]["taskId"]
deadline = time.time() + timeout_s
while time.time() < deadline:
d = requests.get(f"{API}/{task_id}", headers=H, timeout=30).json()["data"]
if d["status"] == "success":
return requests.get(d["output"][0]["url"], timeout=120).content
if d["status"] == "fail":
raise RuntimeError(d.get("error"))
time.sleep(4)
raise TimeoutError(task_id)
prompt = ("Remove the tourists from the plaza. Extend the paving stones and the fountain base. "
"Keep the buildings, light and everything else unchanged.")
src = "https://your-cdn.example.com/plaza.jpg"
# FLUX.2 keeps the source shape
img = edit("flux-2/image-to-image", prompt=prompt, image_urls=[src], aspect_ratio="auto", resolution="1K")
# GPT Image 2: note the field name is input_urls
img = edit("gpt-image-2/image-to-image", prompt=prompt, input_urls=[src], resolution="1K")
# Seedream 4.5 at 4K: aspect_ratio and resolution are required
img = edit("seedream-4.5/image-to-image", prompt=prompt, image_urls=[src], aspect_ratio="3:2", resolution="4K")
with open("plaza-clean.png", "wb") as f:
f.write(img)
Scrivere i prompt di rimozione
Senza maschera, il prompt deve specificare chiaramente cosa rimuovere e cosa conservare:
- Indica l'oggetto e la sua posizione. "Il furgone bianco delle consegne parcheggiato a destra" funziona meglio di "quel furgone".
- Spiega con cosa riempire il vuoto. "Ricostruisci la vetrina e il marciapiede dietro di esso."
- Blocca tutto il resto. Concludi con "mantieni invariati illuminazione, colori e tutto il resto", così il modello non ridefinisce lo stile dell'intera foto.
Lo stesso schema vale per attività correlate:
- Raschiare e riempire: "Rimuovi i cavi che attraversano il cielo. Riempili con un cielo sereno che si raccordi al gradiente. Mantieni invariato tutto il resto."
- Sostituire: "Sostituisci il bicchiere di carta per il caffè con una tazza in ceramica bianca. Abbina illuminazione e ombre. Mantieni invariato tutto il resto."
- Restaurare: "L'angolo in basso a sinistra di questa foto scansionata è danneggiato. Ricostruisci l'erba e il sentiero mancanti. Non modificare il resto."
- Più oggetti: "Rimuovi il cestino accanto alla panchina e i due coni stradali. Riempi ogni area con lo sfondo. Mantieni invariato tutto il resto."
Per pulizie estese, esegui una rimozione per chiamata e concatenale. Salva ogni risultato sul tuo storage e passa quell'URL alla chiamata successiva; i link di output di HiAPI scadono dopo circa 7 giorni dal completamento dell'attività.
Gli errori che incontrerai
Questi errori sono tutti HTTP 400 al momento dell'invio, quindi non creano attività e non vengono addebitati:
additional properties 'mask_url' not allowed(omask): questi modelli non accettano maschere. Descrivi l'area nel prompt.input_urls: missing required field "input_urls": hai inviatoimage_urlsagpt-image-2/image-to-image.additional properties 'quality' not allowed: Seedream 5.0 Pro usaresolution(1K o 2K), nonquality.aspect_ratio: value must be one of ...:autoè valido per FLUX.2, GPT Image e Grok Imagine, non per Seedream o Qwen.
Se l'attività termina con fail, controlla data.error. Una causa comune è che il modello non riesce a recuperare l'URL di partenza.
Domande frequenti
HiAPI ha un'API di inpainting basata su maschera?
Al momento non è disponibile per uso generale. FLUX.1 Fill Pro, che accetta un'immagine più una maschera in bianco e nero, è elencato come in arrivo. I modelli sopra elencati eseguono l'editing solo tramite prompt.
Qual è il modello migliore per la rimozione oggetti?
Inizia dai modelli che preservano la composizione di partenza: flux-2/image-to-image o gpt-image-2/image-to-image con aspect_ratio: "auto". GPT Image 2 ha gestito l'esempio sopra in modo pulito. Prima di scegliere un modello, confronta i due con alcune tue foto.
Si possono rimuovere più oggetti in un'unica chiamata?
Sì, elencali in un solo prompt. Ogni chiamata restituisce un'immagine. Se il risultato ne salta uno, esegui un'altra passata sull'output.
Le immagini modificate possono essere usate commercialmente?
Gli output generati sono soggetti ai termini d'uso del tuo piano. Devi comunque possedere i diritti sulla foto di partenza che modifichi.
Altri prompt di editing: Ricette di prompt per Seedream 4.5 e Guida all'API di Qwen Image 3.0.
Articoli correlati
Vedi tutti gli articoli →-
Tutoriale
Come chiamare hailuo-2.3-fast/image-to-video tramite l'API HiAPI: pratica con curl e Python
La prima richiesta funzionante per il livello image-to-video veloce ed economico — dall'ID del modello al download di un MP4
-
Tutoriale
Come chiamare hailuo-2.3/text-to-video tramite l'API HiAPI: curl, Python ed esempi di richiesta eseguibili
-
Tutoriale
Utilizzare Kandinsky 6.0 Pro su HiAPI per la generazione di video da testo: tutorial con curl e Python
Dimostrazione pratica guidata dalla richiesta: costruire la chiamata da prompt a clip video, inviare la richiesta, monitorare lo stato di completamento e scaricare il risultato