Collega un LoRA e ottieni un ritratto finito, ma identico a quello del modello base. Un job riuscito, da solo, non dimostra che l'adattatore abbia influito sull'immagine. Per scoprirlo, esegui tre volte lo stesso prompt con lo stesso seed: due volte senza LoRA e una con. Le tre uscite costano $0.036, a $0.012 per immagine. Confrontale per vedere se il cambiamento di stile o di identità desiderato compare oltre la normale variazione del modello base.
Questa seconda domanda conta soprattutto nei lavori per adulti. Il modello base rende già brief maturi senza filtro, quindi un risultato più esplicito con un adattatore può derivare dal modello base. Solo il controllo ti dice cosa dipende da cosa.
Prova prima nel Playground
Apri il Playground di z-image-turbo-lora in Form view e imposta gli stessi valori per tutte e tre le esecuzioni:
- Incolla un semplice prompt da ritratto in Prompt, imposta Aspect ratio su 1:1, Output format su PNG e Seed su 42. La compressione JPEG aggiunge rumore a un confronto tra pixel.
- In Style LoRAs, usa Remove item finché l'elenco è vuoto, poi esegui due volte. Sono i tuoi due controlli.
- Scegli Add item, incolla il link diretto al file
.safetensorsin LoRA file, lascia Strength a 1 ed esegui una volta. (Il Playground chiama "Strength" la scala del LoRA; il campo API èscalee non è il comandostrengthda immagine a immagine descritto più avanti.) - Affianca le tre uscite: il cambiamento di stile o di identità desiderato compare oltre la differenza tra i due controlli?
L'adattatore Realism può produrre una modifica lieve su un ritratto già fotografico. Per una prima verifica più evidente, scegli un LoRA pittorico o di color grading compatibile con Turbo e la parola trigger del suo autore. Una piccola differenza con Realism non significa che il caricamento sia fallito.
Eseguire la verifica a tre job tramite API
Per misurare la differenza invece di valutarla a occhio, esegui gli stessi tre job da Python. Installa spicyapi e pillow, imposta SPICY_API_KEY ed esegui:
import os
import uuid
import urllib.request
from io import BytesIO
from PIL import Image, ImageChops, ImageStat
from spicyapi import SpicyClient, output_assets
client = SpicyClient()
MODEL = "alibaba/z-image-turbo-lora/text-to-image"
inputs = {"prompt": "Realism, studio portrait of a woman in a burgundy blazer, soft window light, grey backdrop",
"aspect_ratio": "1:1", "output_format": "png", "seed": 42,
"loras": [{"path": "https://huggingface.co/suayptalha/Z-Image-Turbo-Realism-LoRA/resolve/8dc179cb56844d4ddc6e4527c30e98347eeae971/pytorch_lora_weights.safetensors", "scale": 1}]}
images = []
for name, loras in [("base-1", []), ("base-2", []), ("lora", inputs["loras"])]:
body = {**inputs, "loras": loras}
quote = client.quote_task(model=MODEL, input_data=body)
if input(f"{name}: maximum ${quote['maxCharge']}. Create? [y/N] ") != "y":
raise SystemExit("Stopped")
task = client.create_task(model=MODEL, input_data=body, idempotency_key=str(uuid.uuid4()),
quote_id=quote["quoteId"], expected_cost=quote["estimatedCost"])
final = client.wait_for_terminal(task["taskId"])
url = output_assets(final)[0]["url"]
request = urllib.request.Request(url, headers={"User-Agent": "Mozilla/5.0"})
data = urllib.request.urlopen(request, timeout=120).read()
open(name + ".png", "wb").write(data)
images.append(Image.open(BytesIO(data)).convert("RGB"))
for label, other in [("control gap", images[1]), ("LoRA gap", images[2])]:
diff = ImageStat.Stat(ImageChops.difference(images[0], other)).mean
print(label, sum(diff) / 3 / 255 * 100)L'SDK Python copre la gestione dei task. Usa un file LoRA diretto e fissato a una versione, insieme alla parola trigger dell'autore; cambiare file tra i controlli rende inutile il confronto. Uno stesso seed può comunque produrre pixel diversi, quindi confronta i due controlli prima di interpretare il punteggio dell'adattatore.
Leggere il risultato
| Controllo contro LoRA, confrontato con controllo contro controllo | Che cosa significa | Che cosa fare |
|---|---|---|
| Circa uguale al livello di rumore e le immagini si somigliano | Nessun effetto visibile dell'adattatore in questo prompt | Verifica la base per cui è stato addestrato, la parola trigger e il tipo di file (più sotto), poi usa la scala consigliata dall'autore del file; se non è indicata, confronta 0.5, 1 e 1.5 |
| Nettamente sopra lo scarto tra i controlli (compresi controlli a scarto zero), look desiderato visibile, soggetto intatto | Indizio dell'effetto desiderato dell'adattatore; confermalo su altri seed | Tienilo; ripeti su altri due o tre seed |
| Molto sopra il livello di rumore, ma soggetto, volto o inquadratura sono cambiati | Grande cambiamento, ma non ancora un risultato utile | Confronta scale più basse, come 0.8 e 0.6, con lo stesso controllo |
| Il controllo corrisponde già al tuo brief | L'adattatore non aggiunge nulla di ciò che ti serve | Lascialo da parte; un LoRA è un controllo di stile o identità, non un requisito |
I numeri fanno da filtro; a decidere sono i tuoi occhi. Un piccolo spostamento della camera muove molti pixel, mentre un volto cambiato ne muove pochi: guarda quindi identità, stile, inquadratura ed eventuali costumi o oggetti di scena non richiesti prima di fidarti di una percentuale. Le percentuali non sono soglie valide per altri file o dimensioni. Per le scene per adulti, distingui anche un rifiuto da un'immagine completata ma edulcorata: viene fatturata e può sembrare rifinita pur mancando il brief.
Perché un LoRA non fa nulla
Se il job è stato completato ma non vedi l'effetto desiderato, controlla questi punti in ordine:
- Compatibilità non documentata. Preferisci un file specifico per Turbo, oppure un file addestrato su Base il cui autore documenti la compatibilità con Turbo. Gli adattatori addestrati su Base non sono sostituti automatici. Segui le impostazioni Turbo dell'autore ed esegui il controllo senza LoRA, invece di presumere che una scala maggiore risolva l'incompatibilità.
- Tipo di adattatore sbagliato. Il LoRA standard è il formato sicuro. Una segnalazione su ComfyUI descrive adattatori LoKR per Z-Image Turbo registrati come "lora key not loaded" e ignorati, mentre i LoRA standard funzionavano (ComfyUI issue 10973); è una segnalazione sul loader locale di ComfyUI. Usa qui un LoRA Turbo standard, invece di presumere che l'endpoint supporti file LoKR.
- Parola trigger mancante. I file di stile e di personaggio rispondono alla propria parola trigger. Inizia il prompt con essa.
- Scala troppo bassa o file poco marcato. Prova 0.5, 1 e 1.5 lasciando fisso tutto il resto.
- Problemi con il link. Un URL di pagina o un file privato fallisce all'invio o dopo; usa un file di modello diretto e raggiungibile.
Da immagine a immagine ha due comandi
Il task da immagine a immagine aggiunge image_url, resolution e uno strength separato (da 0 a 1, predefinito 0.8) che controlla quanto il risultato può discostarsi dalla tua sorgente: i valori bassi mantengono più influenza della sorgente, mentre quelli vicini a 1 consentono più cambiamento. Non esiste un'impostazione universale che preservi un volto; i valori superiori a 1 vengono rifiutati. Tieni fisso strength insieme al seed mentre provi scale, altrimenti non saprai quale comando ha mosso l'immagine.
Quale percorso scegliere per lavori per adulti
Nei nostri test di settembre 2026 senza LoRA, da testo a immagine ha consegnato tutte le 18 richieste, dagli scenari allusivi a quelli espliciti. Da immagine a immagine ne ha consegnate 15 su 18: le sue tre modifiche di azioni intime hanno omesso l'atto richiesto, anche se le prove più estreme sono state completate. L'esito dipende dal task e dalla scena, non semplicemente dall'etichetta del livello. Inizia quindi con da testo a immagine quando puoi scrivere la scena da zero, e usa da immagine a immagine quando un ritratto o una composizione esistenti devono sopravvivere. Un LoRA aggiunge poi un look o un personaggio sopra l'uno o l'altro; la recensione del modello riporta i risultati per classe.

Ritratto con abito smeraldo e tre riflessi colorati nello specchio; confrontalo con un controllo equivalente senza LoRA per valutare il contributo dell'adattatore.
Conserva un registro di una riga
Salva accanto a ogni immagine il prompt, il seed, le proporzioni, l'elenco {path, scale}, strength se usato e l'URL di output. Fissa ogni path a una versione del file che non possa cambiare: un URL della community può continuare a risolversi mentre l'autore sostituisce i pesi, e un commit fissato identifica la versione dell'adattatore usata in ogni esecuzione.

Un'illustrazione editoriale del passaggio di verifica: la stessa persona in tre trattamenti rende facile giudicare il cambiamento di stile.
FAQ
Lo stesso seed dà un'immagine identica al pixel?
Non in modo affidabile. Ripeti il job senza LoRA e misuralo rispetto al primo prima di fidarti di qualsiasi differenza attribuita al LoRA.
Posso testare tre LoRA insieme?
Puoi caricarne fino a tre per richiesta, ma provane prima uno. Con più file non puoi sapere quale abbia causato la deriva. Aggiungi il secondo con una scala di circa 0.5 e aumentala finché non compare il suo look.
Collegare un LoRA sblocca contenuti più spinti?
Non da solo: attribuisci all'adattatore solo ciò che compare rispetto al controllo.
Z-Image Turbo supporta i LoRA?
Sì. Ogni richiesta accetta fino a tre LoRA, ciascuno un link diretto a un file .safetensors documentato come compatibile con Z-Image Turbo, con scale da 0 a 4 (predefinito 1). L'endpoint carica i pesi; non li addestra. Addestra i pesi separatamente; la guida all'API LoRA ospitata spiega come fornire il file finito.
Quanto costa?
Il caricamento del LoRA non aggiunge alcun costo separato per l'adattatore. Il preventivo in tempo reale conferma il totale prima di ogni task.
Quale scala devo usare?
Usa l'intervallo consigliato dall'autore. Se non è indicato, la piattaforma usa 1 come predefinito; confronta 0.5, 1 e 1.5 con lo stesso prompt e lo stesso seed. Se il soggetto deriva, abbassa la scala. Aumentarla non è una soluzione universale per un file addestrato su un'altra base.
Se hai già un file Z-Image Turbo, esegui la verifica a tre job da testo a immagine prima che un batch dipenda da esso.
Lascia che sia un Agent a gestire la chiamata
Usa un Agent quando vuoi che prepari gli input e restituisca il risultato mentre tu approvi prezzo e scelte creative.
- CLI: con lo stesso oggetto di input salvato come
input.json, usanpx @spicyapi/cli tasks create --model alibaba/z-image-turbo-lora/text-to-image --input-file input.json --wait. La CLI conferma il prezzo; conserva l'ID del task restituito per il recupero. - MCP: chiedi al tuo assistente di usare
spicyapi_task_createperalibaba/z-image-turbo-lora/text-to-image, poispicyapi_task_wait. Il server MCP richiede la conferma del prezzo prima della creazione. - Skill: installala con
npx skills add spicyapi-ai/spicy-skill, poi chiedi "Use the spicyapi skill to run this three-job check and stop for my approval." La Skill usa una connessione CLI o MCP già configurata.





