Un esempio pubblicato di LoRA Qwen Image 2.1: un peso di stile caricato tramite il campo loras.
Hai una LoRA addestrata in .safetensors in un bucket o in un repository Hugging Face e vuoi usarla senza registrarla, caricarla o attendere un'approvazione. Su Qwen Image 2.1 LoRA è un campo della richiesta: un URL e un numero di intensità, scaricati quando l'attività viene eseguita. Il modello gira senza censura e i pesi a cui punti non vengono esaminati.
Questo elimina la coda di caricamento e sposta una dipendenza nel percorso della richiesta: l'host che serve i tuoi pesi. Qui sotto: come provare il tuo file nel Playground, il codice per eseguirlo, quali link difettosi falliscono subito e quali più tardi, e quanto costa.
I punti essenziali
- Una LoRA è un campo della richiesta, non qualcosa che registri.
lorasaccetta fino a tre voci{path, scale}; nulla viene caricato, scansionato o approvato. - Entrambi gli endpoint la accettano, da testo a immagine e modifica per riferimento, quindi i pesi si possono applicare anche a fotogrammi che possiedi già.
- Alcuni link difettosi falliscono subito, altri solo dopo che l'attività è stata accettata. Una pagina web invece di un file dà un 400; un host morto o un link che scade più avanti viene accettato e fallisce dopo, con la trattenuta rimborsata.
- Caricare non è lavorare. Confronta con un'esecuzione senza pesi, stesso prompt e stesso seed.
- Il numero di LoRA non cambia il prezzo; nella modifica cambia il numero di immagini di riferimento.
Provalo prima nel Playground
- Apri la pagina da testo a immagine e resta nella scheda Playground, in vista Form. Accedi con un account con saldo per eseguire.
- Scrivi un prompt che descriva la scena, non lo stile; lascia che siano i pesi a portare l'aspetto.
- Sotto Style LoRAs incolla il link diretto del file in LoRA file e imposta Strength (1 è un avvio normale). Add item ti dà fino a tre pesi.
- Scegli 1k per una prima occhiata economica, poi esegui il modello.
- Per vedere se i pesi hanno fatto qualcosa, imposta un Seed, esegui una volta, premi Remove item ed esegui di nuovo con lo stesso prompt e lo stesso seed.
Il corpo della richiesta del Playground è lo stesso JSON che l'API accetta, quindi una configurazione che funziona qui si copia direttamente nel codice. Se fallisce qui, sistema il link o i pesi prima di scrivere una riga di codice.
Poi eseguilo dal codice
Installa l'SDK Python (pip install spicyapi), imposta SPICY_API_KEY nell'ambiente del tuo server ed esegui:
import uuid
from spicyapi import SpicyClient, output_assets
client = SpicyClient() # reads SPICY_API_KEY from the environment
task = client.create_task(
model="alibaba/qwen-image-2.1-lora/text-to-image",
input_data={
"prompt": "A fishing harbour at first light, rowing boats at their moorings, "
"the far quay dissolving into mist over the water.",
"loras": [{
"path": "https://huggingface.co/your-account/your-style-lora/resolve/<commit-sha>/style.safetensors",
"scale": 1,
}],
"aspect_ratio": "3:2",
"resolution": "1k",
"output_format": "webp",
},
idempotency_key=str(uuid.uuid4()),
)
final = client.wait_for_terminal(task["taskId"])
if final["state"] != "succeeded":
raise RuntimeError(f"{task['taskId']} ended as {final['state']}: {final.get('errorCode')}")
print(output_assets(final)[0]["url"]) # copy the image to your own storage nowCreazione, attesa, download, tentativi e codici di errore sono coperti nella guida alle attività e nel riferimento dell'SDK Python. I risultati scadono, quindi consulta conservazione e consegna prima di costruireci sopra il link restituito.
Oppure fai eseguire a un agente
Quando un assistente deve eseguire le generazioni, tutti e tre gli strumenti ufficiali mostrano il prezzo e chiedono conferma prima di una chiamata a pagamento.
- CLI. Metti lo stesso oggetto
inputininput.json, poi:
``bash spicyapi tasks create --model alibaba/qwen-image-2.1-lora/text-to-image --input-file input.json --wait ``
Vedi la documentazione della CLI; npx @spicyapi/cli funziona senza installazione.
- Server MCP. Aggiungi il server MCP al tuo assistente, poi chiedi: "Esegui Qwen Image 2.1 LoRA con questo prompt e questo link dei pesi a intensità 1." Chiama
spicyapi_task_create, che si ferma per la tua conferma del prezzo, poispicyapi_task_wait. - Skill.
npx skills add spicyapi-ai/spicy-skillinstalla l'Agent Skill, che fa leggere a un assistente di programmazione lo schema del modello in tempo reale invece di indovinare i campi.
L'array loras
loras accetta fino a tre voci { "path", "scale" } su entrambi gli endpoint, da testo a immagine e modifica per riferimento (da 1 a 10 immagini).
| Proprietà | Valore | Perché conta |
|---|---|---|
| Voci per richiesta | Fino a 3 | Una quarta viene rifiutata subito: loras: must contain at most 3 items |
path | Link HTTPS diretto a un file .safetensors | Scaricato al momento della generazione, a ogni attività, da dove ospiti il file |
scale | Da 0 a 4, predefinito 1 | Intensità rispetto al modello base; 1 è l'intensità di partenza tipica. Sopra 4 viene rifiutato |
- Usa un link di file, non una pagina di repository. Un URL di repository Hugging Face o una pagina
blob/main/...viene rifiutato. Usa il linkresolve/...al file stesso. - Non c'è un registro. Non ottieni mai un identificatore per un peso e non esiste un elenco di "le mie LoRA". Il seed stabilizza una serie ma non riproduce un fotogramma, quindi salva l'elenco
{path, scale}, il prompt, le impostazioni e l'ID attività accanto a ogni output.
Scegli pesi documentati come compatibili con il compito esatto. Gli esempi pubblicati di Qwen Image 2.1 includono adattatori di generazione 2512 e adattatori di modifica Edit 2511/2509, quindi una versione più vecchia nel nome del file non rende il file incompatibile di per sé. Quei compiti più vecchi sono disponibili anche tramite Qwen Image 2512 LoRA, e la nostra guida Qwen Image 2.1 LoRA copre quali file vecchi restano validi.
Quali link difettosi falliscono all'invio
Quando invii i pesi, l'API prova il link. Se l'host risponde e ciò che torna non è un file, ottieni un 400 prima che esista qualsiasi attività e prima che venga trattenuto del denaro:
Il tuo path | Risultato |
|---|---|
Link diretto a un file su un host che risponde (un link resolve/... di Hugging Face, il tuo bucket) | Accettato |
| Un file che restituisce 404 | 400: The LoRA link in loras does not lead to a file on <host>. Use the direct download link to the .safetensors file, not the model's web page |
Una pagina web invece di un file (pagina di repository, pagina blob/, qualsiasi HTML) | Lo stesso 400 |
| Un percorso Hugging Face privato o inesistente | 400: needs a sign-in on huggingface.co, so the model cannot download it |
Un host che non risolve, testo che non è un URL o un nome user/repo secco | Accettato dal preventivo; può fallire dopo l'accettazione |
| Un link che funziona ora e smette di funzionare più tardi | Accettato; fallisce dopo l'accettazione |
Le immagini di riferimento dell'endpoint di modifica ricevono lo stesso trattamento: un file image_urls mancante è un 400 che nomina l'host.
Le due righe accettate sono quelle contro cui devi proteggerti. Un link che muore in seguito (un link firmato scaduto, un repository diventato privato, un file rinominato o eliminato) fa fallire ogni richiesta che lo referenzia, perché i pesi vengono scaricati a ogni attività. In base al nostro test di ottobre 2026, un'attività il cui host dei pesi non risolveva è stata accettata ed è fallita subito (circa 3 secondi) con invalid_request; la trattenuta è stata rimborsata (cost era 0, settled era true) e il messaggio diceva che una LoRA non era stata caricata dal link fornito. invalid_request è anche ciò che restituisce un input sbagliato, quindi il codice da solo non indica il link, e con più pesi il messaggio non nomina la voce. Prepara la diagnosi prima di averne bisogno: dopo un preventivo accettato, un errore invalid_request significa controllare prima gli URL dei pesi.
Isola il problema svuotando l'array
Quando un'attività accettata fallisce, invia la stessa richiesta una volta con loras vuoto e senza cambiare altro. Un successo indica l'adattatore, il suo caricamento o la sua interazione con la richiesta; controlla link, formato del file, compatibilità e stack uno alla volta. Un secondo fallimento rende il codice di errore dell'attività, le immagini di origine e lo stato del servizio i controlli successivi.
Tieni un peso canarino
Tieni un piccolo file di pesi che ospiti tu stesso, che non ruoti mai e il cui effetto è inequivocabile, come un peso di stile marcato. Quando un batch inizia a fallire, esegui una generazione con il canarino. Se funziona, sospetta del tuo URL dei pesi. Se fallisce anche quella, controlla l'errorCode dell'attività e lo stato del servizio prima di toccare le impostazioni di archiviazione.
Verifica al momento del deploy, non a ogni richiesta
Esegui un preventivo gratuito (spicyapi tasks quote --model alibaba/qwen-image-2.1-lora/text-to-image --input-file input.json) per ogni URL di pesi che la tua configurazione referenzia, nella pipeline di deploy e all'avvio del servizio. Coglie link chiaramente inutilizzabili, non la compatibilità dell'adattatore. Non chiedere un preventivo prima di ogni generazione: aggiunge latenza e il link può comunque morire un minuto dopo.
Fissa l'indirizzo perché non possa spostarsi
- Hugging Face:
resolve/main/...segue un branch. Fissa il commit:resolve/<commit-sha>/<file>.safetensors. - Il tuo archivio: metti un hash del contenuto nella chiave, come
character-v7-4f9c81.safetensors, e non sovrascrivere mai una chiave. - URL firmati che scadono: evitali in configurazioni di lunga durata. Per attività ricorrenti usa un indirizzo stabile, oppure genera un link fresco poco prima di ogni invio che sopravviva all'attività e a ogni tentativo.
- Repository di terze parti: gli autori possono rinominare, limitare o eliminare un repository in qualsiasi momento. Se un file è essenziale, copialo in un archivio che controlli tu, nel rispetto della sua licenza, e fissa la tua copia.
La LoRA ha fatto qualcosa?

Un esempio di stile pubblicato Qwen Image 2.1 LoRA. Mostra cosa può fare un peso di stile su un fotogramma.
La risposta non ha alcun campo che dica che i tuoi pesi sono stati applicati, quindi valuta dall'immagine. Un file può essere scaricato correttamente e comunque cambiare quasi nulla, per via di pesi incompatibili, una frase di attivazione mancante, una scala debole o adattatori che si sovrappongono.
- Scegli un prompt il cui fallimento è evidente: un soggetto che il modello base rende in modo fotografico, con uno stile che il peso dovrebbe imporre.
- Descrivi la scena, non lo stile. Chiedi "loose impressionist brushwork" e il prompt da solo lo produce, quindi darai il peso per funzionante. Lascia che sia il file a portare l'aspetto.
- Esegui lo stesso prompt e lo stesso seed senza pesi e confronta. Se il risultato è indistinguibile, il confronto non ha mostrato un effetto visibile dell'adattatore.
- Cambia un valore alla volta: scala 1, poi 2, poi 3. Un peso che diventa visibilmente più forte era semplicemente debole; uno che resta inerte a ogni passaggio è probabilmente costruito per un'altra base. Controlla anche il modello base e le parole di attivazione consigliate dall'autore.
- Scrivi il verdetto accanto all'URL e tieni i pesi conformi e non conformi in elenchi separati.
I pesi vengono scaricati prima della generazione, quindi la prima chiamata con un file nuovo è più lenta di decine di secondi, di più per i file grandi (circa 25 secondi in più per un file da 1.2 GB). Prevedi da 90 a 120 secondi per la chiamata a freddo.
Tre slot
Tre voci coprono lo stack abituale: un peso di personaggio che sostiene la persona, un peso di stile di casa a intensità più bassa, un peso di dettaglio per pelle o tessuto.
- Sposta una scala per esecuzione. Se ne cambi due, non puoi attribuire il risultato.
- Lascia spazio ai pesi di supporto. Un peso di stile alla stessa intensità del peso di personaggio tende a combatterlo; imposta la voce di supporto ben sotto 1.
- Non ripetere nel prompt ciò che un peso porta già.
- Questa famiglia non ha prompt negativo. Metti le esclusioni nel prompt.
Quanto costa
I prezzi sono per immagine:
| Endpoint | 1k | 1.5k | 2k |
|---|---|---|---|
| Da testo a immagine | $0.03 | $0.054 | $0.102 |
| Modifica, 1 riferimento | $0.042 | $0.078 | $0.15 |
- Il numero di LoRA non cambia il prezzo. Una voce e tre hanno lo stesso preventivo.
- Il caricamento dei pesi ha un sovrapprezzo rispetto al modello base. Qwen Image 2.1 senza l'array costa $0.024 a 1k e $0.048 a 2k, quindi un'attività che non ha bisogno di pesi dovrebbe chiamare la famiglia base.
- Nella modifica ogni immagine di riferimento in più aggiunge un importo fisso: $0.012 a 1k e $0.024 a 2k.
| Richiesta di modifica | 1k | 2k |
|---|---|---|
| 1 riferimento | $0.042 | $0.15 |
| 2 riferimenti | $0.054 | $0.174 |
| 5 riferimenti | $0.09 | $0.246 |
| 10 riferimenti | $0.15 | $0.366 |
In breve: la richiesta che costa di più è quella con molte immagini di riferimento a 2k, non quella con tre LoRA.
Cento fotogrammi da testo a immagine costano $3.00 a 1k e $10.20 a 2k; cento modifiche con dieci riferimenti a 2k costano $36.60. Itera a 1k e porta i migliori a 2k.
Modifica con pesi
Applica un peso di personaggio a un fotogramma che hai già approvato, con un peso di stile di casa sotto a intensità più bassa:
{
"model": "alibaba/qwen-image-2.1-lora/edit",
"input": {
"prompt": "The source image is the character. Keep her face, her hair and the cut of the coat exactly as they are. Restage her on a wet city street at night, lit by shop windows from the left.",
"image_urls": ["https://cdn.example.com/approved/frame-0412.png"],
"loras": [
{ "path": "https://cdn.example.com/weights/character-v7-4f9c81.safetensors", "scale": 1 },
{ "path": "https://cdn.example.com/weights/house-grade-v2-0ab3de.safetensors", "scale": 0.45 }
],
"aspect_ratio": "4:5",
"resolution": "2k"
}
}Invialo con lo stesso codice, usando alibaba/qwen-image-2.1-lora/edit come modello. Copia i valori dei campi dallo schema in tempo reale della pagina del modello; la guida alla generazione di immagini spiega come differiscono gli endpoint immagine.
Pesi senza censura e di categorie limitate
Questa famiglia è senza censura: non c'è un flag di maturità, non c'è revisione dei pesi a cui punti e non c'è scansione dei contenuti aggiunta da SpicyAPI. I tuoi obblighi non cambiano: solo adulti, pesi e dati di addestramento che hai diritto di usare, nessun minorenne in alcun input o output, nessuna immagine intima non consensuale e nessuna impersonazione ingannevole di una persona reale identificabile.
Prossimi passi
Per il modello base, vedi il nostro test di Qwen Image 2.1; per la modifica senza campo maschera, il nostro test di Qwen Image Edit. Il catalogo più ampio dei modelli immagine elenca lo schema in tempo reale e la stima di ogni modello.
Domande frequenti
Posso eseguire la mia LoRA su un'API senza caricarla?
Sì. loras accetta fino a tre voci {path, scale}, dove path è un link diretto a un file .safetensors. Non esistono endpoint di caricamento, code di approvazione né liste di autorizzazione.
Accetta i link di Hugging Face?
Sì, nella forma https://huggingface.co/<user>/<repo>/resolve/<commit-sha>/<file>.safetensors. Le pagine di repository, le pagine blob/ e i percorsi privati o mancanti vengono rifiutati.
Perché la mia richiesta LoRA è fallita senza un errore utile?
Nella maggior parte dei casi il path non funzionava più dopo che l'attività era stata accettata. Un host morto, un link firmato scaduto o un repository diventato privato fallisce con invalid_request, che restituisce anche un input sbagliato, quindi il codice da solo non nomina il link. La trattenuta viene rimborsata. Isola il problema con loras vuoto, oppure controlla prima gli URL dei pesi.
La mia LoRA cambia appena l'immagine. Cosa c'è che non va?
Controlla la compatibilità dichiarata, la frase di attivazione e la scala; poi confrontala da sola, senza le altre voci. I vecchi file Qwen non sono tutti incompatibili: diversi sono usati negli esempi pubblicati di questo endpoint. Segui i passaggi di scala qui sopra prima di scartare il file.
Quante LoRA posso impilare e impilarle costa di più?
Tre per richiesta, ognuna con la propria intensità. Una quarta viene rifiutata subito. Una voce e tre hanno lo stesso prezzo, quindi scegli i pesi che ti servono, non meno. Nella modifica è il numero di immagini di riferimento a far muovere il prezzo.
Posso usare una LoRA modificando un'immagine esistente?
Sì. L'endpoint di modifica accetta lo stesso array loras con da una a dieci immagini di riferimento. Invia il fotogramma approvato come riferimento, di' nel prompt cosa deve cambiare e lascia che i pesi portino l'identità.
Cosa fa scale e cosa devo impostare?
Pesa la LoRA rispetto al modello base, da 0 a 4, con 1 come intensità di partenza tipica. Sotto 1 l'aspetto resta più discreto, sopra 1 un peso domina.
Come riproduco un'immagine fatta con un certo stack?
Salva lo stack. Non c'è un registro e il seed non riproduce un fotogramma, quindi conserva l'elenco {path, scale}, il prompt e le impostazioni accanto all'output, con ogni percorso fissato a un indirizzo che non può spostarsi.





