Guida all'uso
Flux-2-Klein-4b da immagine a immagine per foto di prodotti e-commerce
Un flusso di lavoro pratico per modificare foto di prodotti esistenti con flux-2-klein-4b/image-to-image sull'API hiapi — con prompt reali, output reali e codice per l'elaborazione in batch.
Perché modificare le foto di prodotto invece di rifarle
Una singola immagine principale di un prodotto raramente copre tutto ciò che serve per una scheda prodotto. La griglia di un marketplace richiede un'immagine pulita su sfondo bianco. Un articolo di blog o una pubblicità richiede lo stesso prodotto inserito in un contesto lifestyle. Una campagna stagionale richiede una variante di colore o materiale che potrebbe non esistere ancora. Rifare un servizio fotografico per ogni variante è lento e costoso — e il più delle volte la geometria del prodotto (forma, posizione del logo, proporzioni) non dovrebbe cambiare affatto: solo lo sfondo o un singolo materiale deve essere diverso.
È esattamente il compito in cui eccelle flux-2-klein-4b/image-to-image sull'API hiapi: riceve una foto di prodotto esistente e un'istruzione di modifica, e produce una nuova immagine in cui tutto ciò che non hai chiesto di cambiare resta com'era. È il livello veloce ed economico della serie FLUX.2 [klein] — non è il modello da scegliere quando generi un prodotto da zero, ma è perfetto una volta che hai già una foto di base soddisfacente.
Qui sotto trovi due modifiche reali eseguite sulla stessa foto di partenza, con i prompt esatti utilizzati e uno script batch per applicare questo flusso all'intero catalogo prodotti.
La foto di partenza

Questa è l'immagine di base su cui si fonda ciascuna delle modifiche seguenti: cuffie over-ear nero opaco, fotografate su uno sfondo da studio grigio uniforme — una tipica foto "prima" di una scheda prodotto, che necessita di più varianti.
Modifica 1: inserire il prodotto in un contesto lifestyle

Prompt utilizzato:
Mantieni le cuffie esattamente invariate (forma, finitura nero opaco, logo e proporzioni tutti invariati). Sostituisci lo sfondo da studio grigio uniforme con una calda scena lifestyle: le cuffie appoggiate su una scrivania in rovere chiaro, accanto a un MacBook chiuso, una piccola pianta verde e una tazza in ceramica, con una morbida luce naturale proveniente da una finestra sulla sinistra, profondità di campo ridotta, fotografia di prodotto editoriale in stile home office accogliente.
Il punto chiave è la prima frase: prima di descrivere il nuovo sfondo, dici esplicitamente al modello quali parti devono restare identiche (forma, finitura, logo, proporzioni). Senza questo ancoraggio, i modelli image-to-image a volte modificano le proporzioni o la finitura del prodotto insieme alla scena. Con l'ancoraggio, le cuffie restano intatte e cambia solo ciò che le circonda.
Modifica 2: sostituire il materiale senza alterare la forma

Prompt utilizzato:
Mantieni invariati la forma, le proporzioni, il logo e l'angolazione di scatto delle cuffie. Cambia solo il materiale e il colore dei cuscinetti auricolari e dell'imbottitura dell'archetto, passando dal nero opaco a una finitura in pelle marrone chiaro con cuciture visibili, mentre la scocca e i bracci dell'archetto restano nero opaco. Mantieni invariati lo sfondo da studio grigio uniforme e l'illuminazione, fotografia di prodotto per catalogo e-commerce.
Questa modifica ha un ambito più ristretto di quella lifestyle: stesso sfondo, stessa illuminazione, stessa angolazione di scatto — solo il materiale dei cuscinetti auricolari e dell'imbottitura dell'archetto passa dal nero opaco alla pelle marrone chiaro. Limitare l'istruzione con tale precisione (indicando i componenti esatti e il materiale esatto) è ciò che impedisce al resto del prodotto — scocca, logo, profilo — di cambiare.
Perché queste modifiche sono affidabili
- Indica cosa resta invariato, non solo cosa cambia. Anteporre all'istruzione di modifica "mantieni invariate forma, logo e proporzioni" funziona meglio di qualsiasi accumulo di dettagli sul nuovo sfondo o materiale.
- Sii letterale sull'obiettivo. "Finitura in pelle marrone chiaro con cuciture visibili" lascia al modello meno margini di interpretazione rispetto a "rendilo elegante".
- Una sola modifica per prompt. La sostituzione dello sfondo e quella del materiale funzionano bene se eseguite separatamente; accumulare più modifiche non correlate in un unico prompt tende a offuscare gli ancoraggi e a far spostare dettagli non desiderati.
- Riusa la stessa foto di base tra le varianti. Ogni immagine di questa guida parte dalla stessa foto sorgente, ed è per questo che possono essere usate insieme nella stessa scheda prodotto o campagna.
Modificare in batch un catalogo prodotti
Le due modifiche precedenti usano la stessa struttura di richiesta: un URL di immagine esistente più un prompt di modifica, inviati all'endpoint asincrono dei task di hiapi. Lo snippet seguente ripete questo processo su un elenco di tuple (base_image_url, prompt, output_name) — è lo stesso schema che useresti per elaborare in batch un intero catalogo in una serie di varianti di sfondo o materiale.
import os
import time
import requests
API_BASE = "https://api.hiapi.ai/v1/tasks"
TOKEN = os.environ["HIAPI_API_KEY"]
MODEL = "flux-2-klein-4b/image-to-image"
def submit_edit(base_image_url: str, prompt: str) -> str:
resp = requests.post(
API_BASE,
headers={"Authorization": f"Bearer {TOKEN}"},
json={
"model": MODEL,
"input": {
"prompt": prompt,
"image_urls": [base_image_url],
"resolution": "1 MP",
},
},
timeout=60,
)
resp.raise_for_status()
return resp.json()["data"]["taskId"]
def wait_and_download(task_id: str, out_path: str, poll_s: int = 5, timeout_s: int = 300) -> None:
deadline = time.time() + timeout_s
while time.time() < deadline:
r = requests.get(
f"{API_BASE}/{task_id}",
headers={"Authorization": f"Bearer {TOKEN}"},
timeout=30,
)
task = r.json().get("data", {})
if task.get("status") == "success":
url = task["output"][0]["url"]
img = requests.get(url, timeout=120)
with open(out_path, "wb") as f:
f.write(img.content)
return
if task.get("status") == "fail":
raise RuntimeError(task.get("error"))
time.sleep(poll_s)
raise TimeoutError(f"task {task_id} did not finish in {timeout_s}s")
# One entry per product / variant you need.
batch = [
("https://cdn.example.com/products/headphones-black.jpg",
"Keep the product exactly as-is (shape, finish, logo, proportions). "
"Replace the background with a warm lifestyle desk scene, soft natural "
"light from the left.",
"headphones-lifestyle.jpg"),
("https://cdn.example.com/products/headphones-black.jpg",
"Keep the shape, proportions, logo, and camera angle exactly as they "
"are. Change only the ear cushion and headband padding material to tan "
"brown leather with visible stitching; background and lighting stay "
"the same.",
"headphones-tan-leather.jpg"),
]
for base_url, prompt, out_name in batch:
task_id = submit_edit(base_url, prompt)
wait_and_download(task_id, out_name)
print(f"saved {out_name}")
Ogni chiamata è indipendente, quindi per cataloghi di grandi dimensioni in genere esegui un piccolo pool di questi task in parallelo (pochi worker sono di solito sufficienti — il collo di bottiglia è l'API dei task stessa, non il tuo client), invece di iterare rigorosamente uno alla volta.
Prezzi
flux-2-klein-4b/image-to-image viene fatturato per immagine e il costo aumenta con la risoluzione di output. A partire da 2026-08, il livello 1MP utilizzato dalle due modifiche di questa guida costa $0.00715 per immagine; consulta la pagina dei prezzi per l'elenco completo dei livelli di risoluzione (da 0.25MP a 4MP) e le tariffe attuali degli altri modelli, poiché i prezzi possono cambiare.
Domande frequenti
L'image-to-image modifica la forma o il logo del prodotto? Se glielo chiedi esplicitamente di non farlo, no. Indicare chiaramente all'inizio del prompt quali elementi devono restare fissi (forma, proporzioni, logo) è proprio ciò che li mantiene stabili — la mancata specificazione è la causa più comune di spostamenti indesiderati.
Quale risoluzione usare per le modifiche del catalogo? 1MP è sufficiente per la maggior parte delle schede web e dei contenuti lifestyle, e tiene sotto controllo i costi; passa a 2MP o 4MP solo per le immagini che verranno ritagliate da vicino o stampate, poiché ogni livello costa di più.
Posso eseguire questo flusso su un intero catalogo in una volta?
Sì — lo script batch sopra è proprio questo schema: itera sulle tuple (image, prompt, output name), inviando ciascuna come task indipendente. Esegui un piccolo numero di richieste in parallelo, invece di un unico grande ciclo sequenziale.
In cosa differisce dal generare un prodotto da zero con il text-to-image? Il text-to-image parte da zero, quindi non può garantire che il risultato corrisponda alla geometria esatta del prodotto esistente. L'image-to-image parte dalla tua foto reale, quindi forma, logo e proporzioni che non hai chiesto di cambiare vengono preservati per costruzione — ed è esattamente ciò che serve a un catalogo prodotti.
Prova tu stesso
Una volta che i prompt sono definiti con precisione, ciascuna delle due modifiche sopra richiede una sola chiamata API. Se hai già foto di prodotto e vuoi generare varianti lifestyle o di materiale senza rifare il servizio fotografico, la guida rapida alla documentazione di hiapi ti accompagna in pochi minuti attraverso l'autenticazione e la prima richiesta.
Articoli correlati
Vedi tutti gli articoli →-
Guida all'uso
Guida introduttiva a seedream-5.0-pro/image-to-image: capacità, prezzi e punti chiave di integrazione
Limiti di capacità, modalità di fatturazione e pratiche di integrazione ingegneristica del modello di editing immagini di ByteDance
-
Guida all'uso
Guida pratica al text-to-image con seedream-5.0-pro: limiti di capacità, integrazione API e controllo dei costi
Prospettiva operativa per sviluppatori: dai punti chiave sui parametri alla stima di costo di $0,05 per immagine
-
Guida all'uso
Guida introduttiva a Hailuo 2.3 Fast image-to-video: limiti delle capacità, prezzi e pratiche di integrazione
Selezione e integrazione del modello MiniMax image-to-video per sviluppatori