Vuoi cambiare da codice una sola cosa in una foto: luce, sfondo, abito o una scritta. Ti serve un editor che non rifiuti l’istruzione e non la attenui senza dirtelo. Questa guida spiega quale endpoint chiamare, quanto costa, cosa accetta, come provare una modifica nel Playground e poi da codice o con un Agent, e cosa fare quando fallisce.
In breve: una chiamata da immagine a immagine è un task su un endpoint il cui ID modello termina con /edit: invii un prompt e un’immagine sorgente e ricevi il file modificato. Per una foto e un’istruzione, parti da Qwen Image Edit Spicy: $0.038 per modifica, una sorgente, nessuna maschera e nessun controllo di intensità. Per più sorgenti usa Qwen Image 3.0, Seedream 5.0 Pro o Wan 2.7. Per una maschera usa Qwen Image 2.1 o FLUX.1 Dev LoRA; strength esiste solo su FLUX.1 Dev LoRA e Z-Image Turbo LoRA.
I prezzi e i limiti seguenti provengono dal catalogo attuale e dalla documentazione; ogni prezzo è stato ottenuto con un preventivo gratuito.
Cosa significa «senza censura» su un endpoint di modifica
«Senza censura» è l’etichetta del catalogo per un modello che dichiara di non avere un filtro dei contenuti: SpicyAPI non aggiunge una scansione dei contenuti a livello di piattaforma e il modello decide cosa restituire. Non promette di eseguire ogni istruzione. Prevedi due esiti:
- Un rifiuto termina il task come
failedconerrorCode: "content_rejected". L’importo riservato sul saldo viene liberato per intero. - Un risultato attenuato è un’immagine finita più moderata di quanto richiesto. È un task riuscito, quindi viene addebitato; la risposta non lo segnala. Puoi accorgertene solo guardando l’immagine.
Alcuni limiti valgono per tutti i modelli: nessuna rappresentazione sessualizzata di minori in qualsiasi stile, nessuna rappresentazione intima o sessualizzata di persone reali identificabili senza consenso documentato (inclusi scambio del volto e trasferimento delle sembianze), nessuna impersonificazione e nulla di illegale dove operi. Con gli endpoint di modifica è facile violare il secondo limite, perché la sorgente è spesso una foto reale. Secondo la politica di uso accettabile, una fotografia pubblica, la notorietà o una relazione passata non equivalgono al consenso; il materiale di età ambigua rientra nella regola sui minori e non devi caricare materiale privato che non hai diritto di trattare.
SpicyAPI non esamina ogni singola richiesta. Se i tuoi utenti caricano foto, gli obblighi sono tuoi: verifica dell’età, attestazione del consenso al caricamento conservata con l’ID del task, rifiuto delle sorgenti con età incerta, blocco delle modifiche di persone reali identificabili senza consenso documentato e possibilità di segnalare contenuti. Questa non è consulenza legale.
Il servizio non è disponibile nella Cina continentale, in Russia, Bielorussia, Cuba, Iran, Corea del Nord o Siria; secondo i termini, nemmeno nel Regno Unito, a Hong Kong, Macao, in Arabia Saudita, Emirati Arabi Uniti, Qatar, Kuwait, Bahrein, Oman, Pakistan, Bangladesh, Afghanistan, Indonesia, Malaysia o Brunei. La politica sui contenuti e sull’uso precisa che l’elenco può ampliarsi. Gli scambi di volto e testa sono endpoint separati con un proprio flusso, illustrato nel workflow dell’API di scambio del volto con IA.
Scegli l’endpoint di modifica
Gli endpoint differiscono per numero di sorgenti, controlli aggiuntivi e forma del risultato:
| Endpoint | Sorgenti | Controlli oltre al prompt | Forma del risultato | Prezzo per immagine |
|---|---|---|---|---|
Qwen Image Edit Spicy alibaba/qwen-image-spicy-edit/edit | Esattamente 1 (image_url) | seed | Nessun campo per le dimensioni | $0.038 |
Qwen Image 2 alibaba/qwen-image-2/edit | Esattamente 1; prompt fino a 800 caratteri | aspect_ratio, seed | Da aspect_ratio, predefinito 1:1; non segue la sorgente | $0.035 |
Qwen Image 3.0 alibaba/qwen-image-3.0/edit | Da 1 a 3 | negative_prompt, aspect_ratio, resolution (1k o 2k), enable_prompt_expansion (attivo per impostazione predefinita), seed | Da aspect_ratio, predefinito 1:1 | $0.033 con una sorgente, $0.039 con tre |
Seedream 5.0 Pro bytedance/seedream-5.0-pro/edit | Da 1 a 10 | aspect_ratio, resolution, output_format; nessun seed | auto (predefinito) sceglie il rapporto più vicino alla prima sorgente | $0.036 a 1k, $0.072 a 2k (predefinito); +$0.003 per sorgente aggiuntiva |
Wan 2.7 alibaba/wan-2.7/edit | Da 1 a 9 | bounding_boxes (fino a 2 per immagine), color_palette, resolution (1k o 2k, stesso prezzo), num_outputs (da 1 a 4), seed | Segue l’ultima sorgente salvo aspect_ratio esplicito | $0.03 per output (4 output $0.12), uguale con 1–9 sorgenti |
Qwen Image 2.1 alibaba/qwen-image-2.1/edit | Da 1 a 10; maschera solo con esattamente 1 | mask_url (PNG, JPEG o WebP; una sola sorgente), resolution, aspect_ratio, enable_prompt_expansion (attivo per impostazione predefinita), seed | aspect_ratio, predefinito 1:1 | $0.036 a 1k con una sorgente, +$0.012 per sorgente aggiuntiva; $0.048 fisso a 2k; $0.072 a 1.5k |
FLUX.1 Dev LoRA black-forest-labs/flux-1-dev-lora/edit | Esattamente 1 | mask_url, strength, steps, guidance_scale, fino a 3 LoRA, seed | Mantiene la forma della sorgente | $0.018 |
I prezzi sono preventivi per una richiesta di una sola immagine. Seedream 5.0 Pro costa il doppio al livello 2k predefinito rispetto a 1k; Qwen Image 3.0 aggiunge un costo per sorgente. I livelli di Qwen Image 2.1 non crescono in ordine (1.5k costa più di 2k e 2k è fisso indipendentemente dalle sorgenti), quindi richiedi un preventivo per il corpo esatto prima di definire il budget.
Il catalogo include altri editor etichettati senza censura, come Seedream 5.0 Flash, Qwen Image 3.0 Pro e Wan 2.7 Pro. Gli endpoint di modifica GPT Image 2 e 2.5 e Nano Banana hanno l’etichetta Filtered: non sono adatti quando cerchi un risultato senza censura.
Una foto, una modifica. Usa Qwen Image Edit Spicy. L’intera richiesta comprende image_url, prompt e un seed facoltativo; l’istruzione è l’unico controllo, quindi una frase su cosa mantenere è anche la tua impostazione di preservazione. La sua recensione indica circa 21 secondi per una modifica tipica. Qwen Image 2 segue la stessa idea a un prezzo leggermente inferiore, con una sola sorgente e un prompt di massimo 800 caratteri.
Più sorgenti in una modifica. Un volto da una foto, un indumento da un’altra, una stanza da una terza: Qwen Image 3.0 (tre sorgenti), Seedream 5.0 Pro (dieci) o Wan 2.7 (nove). Il prompt deve dire quale immagine fornisce cosa. Seedream 5.0 Pro si avvicina per default alla forma della prima sorgente, Wan 2.7 all’ultima e Qwen produce un quadrato: un ritratto inviato a Qwen Image 3.0 senza aspect_ratio ritorna in 1:1.
Modifiche locali con maschera o controllo di intensità. Qwen Image 2.1 e FLUX.1 Dev LoRA accettano una maschera come mask_url: un’immagine in bianco e nero delle dimensioni della sorgente, dove il bianco viene ridisegnato e il nero mantenuto. strength (da 0 a 1, predefinito 0.8, distanza del risultato dalla sorgente) esiste su FLUX.1 Dev LoRA e sull’endpoint di modifica Z-Image Turbo LoRA. Wan 2.7 indica le regioni diversamente, con fino a due rettangoli in pixel per immagine in bounding_boxes.
Risultati dei contenuti. Secondo i nostri report pubblici di settembre 2026, ogni editor ha affrontato cinque livelli di contenuto (L1 il più moderato, L5 il più intenso), normalmente con tre esecuzioni per livello.
| Endpoint | Modifiche consegnate come richiesto | Dove non ha soddisfatto la richiesta |
|---|---|---|
| Qwen Image Edit Spicy | 18 su 18 | Nessun caso |
| Qwen Image 3.0 | 17 su 17 | Nessun caso |
| Qwen Image 2.1 | 18 su 18 | Nessun caso |
| Qwen Image 2 | 16 su 18 | Due delle tre esecuzioni L4 Intense sono state attenuate |
| Seedream 5.0 Pro | 16 su 17 | Una modifica L4 Intense è diventata un semplice ritratto |
| Wan 2.7 | 11 su 15 | Una su tre conforme a L4 Intense e in una prova L5 Extreme; l’editor è più permissivo del testo a immagine dello stesso modello |
FLUX.1 Dev LoRA è il percorso più economico con maschera e strength, ma il suo report pubblico riguarda testo a immagine, dove i livelli più intensi sono stati attenuati. Prova quindi il tuo livello di contenuto su una sola modifica prima di impegnarti.
I dettagli sono nelle pagine delle recensioni, ad esempio Seedream 5.0 Pro; il test senza censura di Qwen Image Edit mostra coppie prima e dopo degli editor Qwen.
Locale o ospitato? Con una GPU di almeno 8 GB di VRAM e modifiche in volume, un modello locale in ComfyUI (Qwen Image Edit o FLUX.2 Klein) è un’opzione concreta. Il servizio ospitato conviene se non vuoi gestire una GPU, devi chiamare un editor da un’app o preferisci pagare per immagine: a $0.018–$0.072 per immagine, cento modifiche costano $1.80–$7.20 prima dei nuovi tentativi.
Provalo prima nel Playground
Il modo più veloce per vedere cosa fa un editor con la tua foto è il Playground sulla pagina del modello, senza codice né gestione delle chiavi.
- Apri la pagina Qwen Image Edit Spicy e resta nella scheda Playground, vista Form. Accedi con un account con saldo per eseguire.
- In Input image, trascina un file (JPG, PNG, WEBP o GIF, fino a 10 MB), oppure usa Asset URL e Add URL per un link diretto al file immagine.
- In Prompt, indica cosa deve restare, poi l’unica modifica (la sezione seguente mostra le formulazioni).
- Imposta facoltativamente un Seed. Riutilizzarlo con la stessa immagine e istruzione rende confrontabili due formulazioni.
- Premi Run model e guarda prima di tutto l’immagine in Output: un risultato attenuato viene addebitato come ogni altro.
Gli altri editor hanno campi propri nello stesso modulo, come sorgenti aggiuntive o una maschera su Qwen Image 2.1. La vista JSON accanto a Form mostra il corpo esatto della richiesta e le schede di codice vicine (JavaScript, Python, cURL e altre) mostrano la stessa chiamata. Puoi copiare nel progetto una configurazione che funziona qui.
Poi eseguilo da codice
Installa il Python SDK (pip install spicyapi), imposta SPICY_API_KEY nell’ambiente ed esegui una modifica. Lo script carica la foto, mostra il prezzo e attende il tuo sì prima di creare il task:
import uuid
from spicyapi import SpicyClient, output_assets
client = SpicyClient() # reads SPICY_API_KEY from the environment
MODEL = "alibaba/qwen-image-spicy-edit/edit"
source = client.upload_file("photo.jpg") # or put a public HTTPS link in image_url
body = {
"image_url": source["uri"],
"prompt": "Keep the person, pose, framing and room exactly as they are. "
"Change only the light to warm late-afternoon sun from the window on the left.",
}
quote = client.quote_task(model=MODEL, input_data=body)
print("Estimated", quote["estimatedCost"], "maximum", quote["maxCharge"])
if input("Create the task? [y/N] ").strip().lower() != "y":
raise SystemExit
task = client.create_task(
model=MODEL,
input_data=body,
idempotency_key=str(uuid.uuid4()),
quote_id=quote["quoteId"],
expected_cost=quote["estimatedCost"],
)
print("Resume task:", task["taskId"], flush=True)
final = client.wait_for_terminal(task["taskId"])
if final["state"] != "succeeded":
raise SystemExit(f"{task['taskId']} ended as {final['state']}: {final.get('errorCode')}")
assets = output_assets(final)
if not assets or any(a.get("pending") or a.get("unavailable") or not a.get("url") for a in assets):
raise RuntimeError(f"Task {task['taskId']} has no ready output; check this task before a new run")
print(assets[0]["url"]) # copy the image to your own storage nowLa documentazione del Python SDK e la guida ai task coprono ciò che va oltre questa chiamata; un servizio che deve ricevere una richiamata invece di attendere può usare webhook.
Oppure lascia che lo esegua un Agent
Se un assistente deve eseguire le modifiche, tutti e tre gli strumenti ufficiali mostrano il prezzo e chiedono conferma prima di una chiamata a pagamento.
- CLI. Carica la foto, inserisci l’indirizzo
spicy://restituito e il prompt ininput.jsoncomeimage_urleprompt, poi:
``bash spicyapi files upload photo.jpg spicyapi tasks create --model alibaba/qwen-image-spicy-edit/edit --input-file input.json --wait ``
Vedi la documentazione CLI; npx @spicyapi/cli funziona senza installazione.
- Server MCP. Aggiungi il server MCP all’assistente, poi chiedi: "Edit /path/to/photo.jpg with Qwen Image Edit Spicy: keep the person, pose and room, change only the light to warm late-afternoon sun." Carica con
spicyapi_upload_file, chiamaspicyapi_task_create, che si ferma per confermare il prezzo, poispicyapi_task_wait. - Skill.
npx skills add spicyapi-ai/spicy-skillinstalla l’Agent Skill, che fa leggere all’assistente di codice lo schema attuale anziché indovinare i campi.
Cosa puoi inviare e quanto costa
Un’immagine sorgente può arrivare al task in tre modi:
- Un URL HTTPS pubblico, senza caricamento. Deve restituire il file stesso senza credenziali; una pagina condivisa di cloud o album è una pagina web e viene rifiutata con 400.
- Una piccola immagine incorporata, come
data:image/png;base64,...nello stesso campo. Deve essere JPEG, PNG, WebP o GIF, al massimo 1 MiB decodificato e 8192 pixel per lato. - Un caricamento, per file più grandi o privati: JPEG, PNG, WebP o GIF fino a 10 MiB. È gratuito; paghi solo il task che usa il file. Restituisce un URI
spicy://valido per un giorno.
Qwen Image 2 accetta solo JPEG, PNG e WebP. I campi differiscono: Qwen Image Edit Spicy e FLUX.1 Dev LoRA prendono una stringa image_url, gli altri un array image_urls. Un endpoint rifiuta un campo non elencato anziché ignorarlo.
Il costo dipende dal livello di risoluzione, dal numero di sorgenti e, su Wan 2.7, da num_outputs; il prezzo mostrato prima della conferma copre la richiesta esatta. Vedi preventivi e guida ai media.
Altri endpoint: cambia solo l’input
I modelli che accettano un array usano image_urls; con più sorgenti, il prompt assegna i ruoli. Usa lo stesso codice con l’ID modello e il corpo qui sotto:
{
"model": "alibaba/qwen-image-3.0/edit",
"input": {
"prompt": "Use the person from the first image and the jacket from the second. Keep her face, hair and pose from the first image. Change nothing else.",
"image_urls": ["spicy://f/fil_...", "spicy://f/fil_..."],
"aspect_ratio": "3:4",
"resolution": "2k"
}
}Una modifica con maschera su FLUX.1 Dev LoRA aggiunge maschera e intensità al corpo con una sola sorgente:
{
"model": "black-forest-labs/flux-1-dev-lora/edit",
"input": {
"prompt": "A black satin jacket with a high collar, same light as the rest of the photo.",
"image_url": "spicy://f/fil_...",
"mask_url": "spicy://f/fil_...",
"strength": 0.9,
"seed": 7
}
}Un strength inferiore resta più vicino all’originale; il valore predefinito è 0.8. Copia i valori dallo schema attuale di ogni pagina modello; la guida alla generazione di immagini spiega le differenze fra endpoint.
Scrivi l’istruzione: prima cosa resta, poi cosa cambia
Un endpoint di modifica ridisegna ciò che non specifichi. Indica prima cosa deve restare identico e poi l’unica modifica. Elencare più elementi da preservare non costa di più. Su Qwen Image 3.0 e 2.1 imposta enable_prompt_expansion a false per una modifica fedele: è attivo per default e amplia il prompt in una descrizione più completa della scena, che può diluire la frase di preservazione.
- Solo luce: “Keep the person, pose, framing and room exactly as they are. Change only the light to warm late-afternoon sun from the window on the left. Keep the colour grade and film grain.”
- Solo sfondo: “Keep the subject, outfit and crop. Replace the studio wall with dark theatre curtains. Add no logos or text.”
- Più sorgenti: “Use the person from the first image, the jacket from the second and the street from the third. Keep her face and pose from the first image. Change nothing else.”
Cambia una cosa per passaggio; combinare cambi di stile e di testo favorisce la deriva dell’identità. Se il risultato non è quello giusto:
| Cosa vedi | Causa probabile | Prossimo tentativo |
|---|---|---|
| Risultato quadrato o reinquadrato | aspect_ratio è 1:1 per default su Qwen Image 2, 2.1 e 3.0 | Invia esplicitamente il rapporto della sorgente |
| Dopo la fusione, il volto è simile ma non è il suo | Il prompt non dice quale sorgente fornisce il volto; più sorgenti lasciano più spazio alla deriva | Usa meno sorgenti, nomina quella del volto nella prima frase, una modifica per passaggio |
| Mobili o finestre spostati senza richiesta | Il report Qwen Image 2 nota che modifiche complesse possono ricostruire la stanza | Dividi in due passaggi; elenca gli oggetti da mantenere |
| Immagine più moderata o semplice del richiesto | Risultato attenuato; il task è comunque riuscito | Rileggi il prompt per un cambiamento chiaro o usa un endpoint con risultati migliori a quel livello |
| Scritta su un cartello errata | Le stringhe brevi funzionano meglio | Cita il vecchio e il nuovo testo nella frase; affida i testi densi a Qwen Image 3.0 |
Quando fallisce
Questi errori sono specifici delle modifiche; scegli il ramo in base al code numerico o all’errorCode del task, non al testo del messaggio.
| Cosa vedi | Significato | Cosa fare |
|---|---|---|
400 strength: is not a supported field | Il campo appartiene a un altro endpoint; i campi sconosciuti sono rifiutati, non ignorati | Rimuovilo o usa FLUX.1 Dev LoRA se ti serve |
400 image_urls: must contain at most 1 items | Qwen Image 2 e l’editor Spicy prendono una sorgente | Inviane una o scegli un endpoint multisorgente |
400 Reference asset not found or does not belong to this account | URI spicy:// non confermato, scaduto o di un altro account | Carica nuovamente il file |
400 The file linked in image_urls was not found oppure ... opens a web page | Link HTTPS errato, offline o a una pagina di visualizzazione | Usa un link diretto o carica il file |
Task failed, invalid_asset | Il link HTTPS era una pagina di visualizzazione o è scaduto | Carica il file e crea un nuovo task con il nuovo URI |
Task failed, content_rejected | Il modello ha rifiutato il contenuto | Non reinviare invariato; cambia prompt o modello. Controlla settled e cost |
Errori di saldo, timeout e altri errori generali sono nella documentazione degli errori.
Cosa succede ai file
Le foto caricate restano un giorno, i risultati fino a 14 giorni. Copia quindi il risultato da conservare nel tuo spazio di archiviazione appena il task riesce. Se una foto deve restare meno a lungo sulla piattaforma, la documentazione sulla conservazione spiega come accorciare la finestra o distruggere media e prompt di un task terminato. Vedi anche caricamenti temporanei e consegna duratura dei media e la guida iniziale all’API di immagini e video.
Domande frequenti
Esiste un’API da immagine a immagine senza censura con regolazione dell’intensità?
Sì: FLUX.1 Dev LoRA (strength da 0 a 1, predefinito 0.8, con maschera facoltativa) e l’endpoint di modifica Z-Image Turbo LoRA. Negli altri il controllo è l’istruzione; inviare strength restituisce 400 strength: is not a supported field.
Devo caricare la foto?
No. Funzionano un link HTTPS pubblico o un’immagine incorporata fino a 1 MiB; carica il file quando è più grande o privato.
Una modifica rifiutata o fallita costa?
Normalmente no: un task fallito libera tutta la somma riservata, un errore di creazione non addebita nulla. Un risultato attenuato è un’immagine finita e viene addebitato.
La modifica manterrà volto e posa?
Non è garantito. Indica cosa resta, cambia una cosa per passaggio e usa una sorgente quando possibile. Seedream 5.0 Pro ha mantenuto la persona cambiando luce e abito, ma ha collocato il volto meno accuratamente integrandola in un nuovo set da una seconda foto; Qwen Image 2 ha gestito bene modifiche semplici, ma ha ricostruito alcuni mobili in quelle complesse.
Posso modificare la foto di una persona reale?
Solo con il suo consenso documentato, e mai sessualizzandola senza di esso. Vale per ogni modello; conserva la prova nel tuo sistema.
Da quale endpoint dovrei partire?
Qwen Image Edit Spicy per una foto e una modifica. Cambia solo se servono più sorgenti, una maschera o strength. Esegui prima una modifica e guarda l’immagine prima di cambiare endpoint.
Come proseguire
Esegui una modifica nel Playground con una foto di prova innocua e leggi il prezzo prima di confermare; poi scegli il livello di risoluzione da pagare e decidi se in produzione usare un webhook invece di attendere.
Per i prompt dell’editor Spicy in dettaglio, leggi il workflow Qwen Image Edit Spicy per preservare la sorgente. Per confrontare editor di immagini esistenti oltre l’API, vedi i migliori editor IA di immagini senza censura. Il catalogo di API di immagini senza censura elenca tutti i modelli richiamabili con etichetta dei contenuti e prezzo attuale.












