Una nuova funzione multimediale raramente parte con una coda GPU costante. Parte con qualche ritratto, modifica di prodotto o breve video, seguiti da una domanda: l'applicazione deve continuare a pagare un'API o far girare un modello per conto proprio?
Usa un'API multimediale gestita se la domanda è irregolare, se servono più famiglie di modelli o se la funzione sta ancora cercando i suoi utenti. Valuta il self-hosting quando una pipeline open-weight compatibile soddisfa il compito e un uso continuativo ripaga il suo intero costo operativo. Spesso una soluzione ibrida è pratica: genera in locale le immagini fisse in modo costante e lascia i video occasionali a un task gestito.
Come fattura di partenza concreta, Z-Image Turbo costa $0.010 per immagine con l'espansione del prompt disattivata, e cinque secondi di MiniMax H3 da immagine a video a 768p costano $0.185. Il confronto utile parte da questi asset finiti, non dalla tariffa oraria di listino di una GPU.
Confronta prima lo stesso risultato
Una nuova immagine da testo, la modifica di un ritratto esistente e un video da un frame approvato sono capacità diverse. Una tariffa bassa per ora di GPU non rende un solo modello il sostituto di tutte e tre.
| Esigenza | Esempio gestito attuale | Costo cliente indicato | Cosa deve fare un'alternativa locale |
|---|---|---|---|
| Nuova immagine da testo | Z-Image Turbo | $0.010/immagine, espansione disattivata | Eseguire un checkpoint da testo a immagine adatto alla dimensione richiesta |
| Modifica da riferimenti | Qwen Image 2.1 edit | Un riferimento: 1K $0.036; 2K $0.048 (espansione disattivata); 1.5K $0.072 (espansione attivata) | Accettare le immagini di partenza e preservare i dettagli richiesti dalla revisione |
| Animare un frame iniziale | H3 image-to-video | $0.037/secondo a 768p; $0.058 a 2K | Eseguire una pipeline video compatibile, non soltanto un modello di immagini |
Il secondo riferimento di Qwen porta una modifica 1K a $0.048; una modifica 2K risultava comunque quotata $0.048 con uno o due riferimenti. La modifica 1.5K richiede attualmente l'espansione del prompt attivata: $0.072 con un riferimento, $0.09 con due.
Una funzione che promette lo stesso personaggio immaginario in più scene richiede più di un economico modello da testo a immagine. Serve un modo per trasportare l'identità da un'immagine all'altra. Scaricare un checkpoint da testo a immagine non aggiunge né la modifica da riferimento né il condizionamento del personaggio. Scegli prima il controllo, poi dove eseguirlo.
Cosa ottieni con la via gestita
Per Z-Image, il task prevede un prompt fino a 1.000 caratteri, cinque rapporti d'aspetto, output PNG e un seed facoltativo. È un'operazione ristretta da testo a immagine, non un'interfaccia per sostituire il sampler o manipolare i latenti intermedi.
H3 image-to-video accetta un'immagine iniziale e un prompt, più un frame finale facoltativo. Supporta da 4 a 15 secondi a 768p o 2K; le clip da quattro secondi sono limitate a 768p. L'immagine iniziale determina la forma dell'output. Il task non espone né un seed né un campo per bloccare la camera: prepara la composizione prima dell'animazione e descrivi nel prompt il comportamento di camera desiderato.
La API dei task gestisce preventivo, creazione asincrona e recupero dello stato. La tua applicazione deve comunque controllare gli invii duplicati e conservare i file consegnati, ma non deve caricare i pesi del modello, ripristinare i worker GPU o mantenere un runtime di serving.
Un piccolo budget per immagini e video
Dieci tentativi con Z-Image e due clip H3 da cinque secondi offrono un utile esempio di partenza:
- Dieci immagini fisse: 10 × $0.010 = $0.100.
- Due clip a 768p: 2 × 5 × $0.037 = $0.370.
- Generazione totale: $0.470.
Metti a budget separatamente le modifiche e i tentativi scartati rispetto agli asset selezionati.
Cosa offre il self-hosting e cosa aggiunge
Il repository ufficiale di Z-Image fornisce codice, pesi e istruzioni per l'inferenza locale. Z-Image è una famiglia da 6B, e il README ufficiale indica che Turbo entra in dispositivi consumer con 16 GB di VRAM. Questo ne fa un candidato plausibile per la generazione locale di immagini fisse, non un motivo per dare per scontato che ogni risoluzione e ogni batch richiesti entrino nella tua GPU.
Il self-hosting ti permette di scegliere un runtime compatibile, aggiungere adattatori o preelaborazione supportati e collocare l'inferenza in un'infrastruttura che gestisci tu. Ti rende però anche responsabile di:
- Caricamento del modello e memoria: pesi, dimensioni e job concorrenti determinano se il worker ci sta.
- Capacità: una singola immagine veloce non dice come si accoderà un picco di richieste.
- Ripristino: un errore di memoria esaurita o il crash di un worker richiedono un nuovo tentativo limitato e un sostituto in salute.
- Aggiornamenti: modifiche a modello, dipendenze e runtime possono cambiare il risultato o rompere il servizio.
Se ti serve un grafo di inferenza personalizzato o un adattatore privato non disponibile nel task gestito, quel controllo può giustificare il self-hosting prima ancora di qualsiasi risparmio. Se il task è già supportato e usato solo di rado, lo stesso controllo può aggiungere lavoro senza migliorare la funzione per il cliente.
Self-hosting non significa sempre una GPU inattiva accesa tutto il giorno
Un handler autogestito può girare su un'istanza dedicata o su worker serverless. Runpod distingue i worker attivi dai worker flex: i worker attivi restano pronti; i worker flex possono scalare a zero, con avvii a freddo quando la domanda torna.
Confronta separatamente queste modalità operative. Una prenotazione sempre attiva include capacità inattiva; una soluzione che scala a zero scambia quel costo di inattività con un ritardo di avvio e con la configurazione del deployment. Entrambe richiedono comunque un handler del modello e una coda che sappia se il worker ha completato il job.
Per personaggi senza censura, scegli il controllo prima dell'host
Un personaggio adulto ricorrente è un buon esempio perché il primo ritratto economico è solo l'inizio. Le scene successive possono richiedere lo stesso volto, un cambio d'abito o una posa particolare. Ripetere una descrizione testuale può produrre nuove variazioni quando il prodotto ha bisogno di continuità.
Il task Z-Image gestito da $0.010 è solo testuale: non può accettare il ritratto di una compagna come riferimento d'identità, e un'immagine economica di un'altra persona non sostituisce un workflow di modifica da riferimento. Lo stesso vale in locale: caricare pesi aperti non aggiunge né il condizionamento del volto, né un LoRA di personaggio compatibile, né una pipeline di modifica, quindi individua prima con precisione quale controllo manca. Se ti serve un adattatore di personaggio addestrato, verifica che checkpoint e adattatore corrispondano e che la tua implementazione lo carichi.
Una catena gestita può rendere espliciti controlli e costi:
- Esplorare un ritratto: Z-Image Turbo a $0.010 per immagine con espansione disattivata.
- Portarlo in una scena correlata: Qwen Image 2.1 edit prende il ritratto approvato come riferimento; le modifiche con un riferimento costano $0.036 a 1K o $0.048 a 2K con espansione disattivata.
- Animare il frame approvato: H3 image-to-video parte da $0.037 al secondo a 768p.
In locale, la stessa catena richiede una pipeline da testo a immagine, la modifica da riferimento o il condizionamento dell'identità, e una pipeline video separata. Un task gestito senza restrizioni rimuove un filtro aggiuntivo della piattaforma; non garantisce che un modello preservi ogni volto o ogni outfit. Eseguire pesi aperti in locale ti dà il controllo della pipeline di inferenza e ti rende responsabile della sua gestione dei contenuti e del deployment. Per i contenuti per adulti, tieni separate tre domande: se il task scelto accetta la richiesta, se il modello produce la categoria voluta e se il risultato è utilizzabile. Una risposta di completamento può accompagnare una scena attenuata o un'identità cambiata, e operare in locale non dimostra che il checkpoint renda bene la scena desiderata. Controlla i termini del modello e del servizio per il tuo deployment effettivo e usa fonti autorizzate di adulti fittizi; «pesi aperti» non è un'etichetta di permesso universale.
Una soluzione ibrida può tenere le immagini fisse di personaggi ad alto volume su una pipeline locale compatibile e inviare solo il frame selezionato a un modello video gestito. Così eviti di comprare capacità video per clip occasionali e conservi i controlli locali usati per creare il personaggio. Tieni separati i costi di immagine e video, in modo che un'immagine fissa economica non nasconda la fase successiva, più costosa. Valuta separatamente il comportamento del task video rispetto ai contenuti: che la tua pipeline di immagini accetti un frame non prova che il modello video lo animerà come previsto.
Calcola il costo per risultato accettato
Per il lavoro gestito, dividi la fattura di tutti i tentativi di generazione per gli asset che il progetto può davvero usare. Se dodici tentativi di immagine a $0.010 producono otto ritratti selezionati, il costo di generazione per ritratto selezionato è $0.015. È un esempio calcolato, non un tasso di accettazione misurato.
Per l'inferenza locale:
local cost per accepted image =
(booked GPU hours × actual hourly rate + storage + transfer + allocated operations)
÷ accepted imagesUsa il tempo di risorsa pagato, compresi avvio e inattività quando la modalità di fatturazione li addebita. Supponi che una prenotazione GPU quotata costi $1.20/ora:
| Immagini accettate nell'ora | Costo di calcolo per immagine accettata | Cosa esclude la cifra |
|---|---|---|
| 80 | $1.20 ÷ 80 = $0.015 | Archiviazione, trasferimento e operatività |
| 20 | $1.20 ÷ 20 = $0.060 | Gli stessi costi aggiuntivi |
Tariffa e conteggi sono dati ipotetici. Il calcolo mostra come l'utilizzo cambi il risultato: una GPU che sembra economica all'ora può essere cara per asset utilizzabile quando gran parte dell'ora è inattiva o spesa in tentativi scartati.
Un esempio mensile di punto di pareggio
Con lo stesso costo gestito di $0.015 per immagine accettata e l'ipotesi di $1.20 per ora di GPU:
$1.20 ÷ $0.015 = 80 immagini accettate per ora di GPU pagata.
Sotto 80, il gestito costa meno in generazione. Sopra 80, il calcolo locale diventa più economico prima di archiviazione, trasferimento e operatività. Conta le immagini accettate, non ogni render tentato.
Una prenotazione mensile da 720 ore richiede 57.600 immagini accettate per eguagliare quella fattura di generazione gestita prima di quei costi aggiuntivi. Un worker che scala a zero si valuta sulle sue ore pagate, compresi avvio e inattività fatturati, e non sull'intero mese. Aggiungi i costi operativi al numeratore prima di considerare una delle due soglie come punto di pareggio aziendale.
Conta solo i costi che differiscono tra le opzioni. Un database applicativo necessario a entrambe non diventa un costo speciale del self-hosting. Lo diventano invece archiviazione aggiuntiva dei modelli, monitoraggio dei worker o ulteriore tempo del personale.
Fai corrispondere il confronto al lavoro del cliente
Per una funzione di ritratti 9:16, mantieni la stessa inquadratura richiesta e la stessa dimensione di consegna. Un'immagine accettata potrebbe dover mostrare il cappotto blu navy richiesto, un volto leggibile, entrambe le mani nell'inquadratura e nessuna scritta indesiderata. Se la via locale usa una modifica da riferimento o un ritocco manuale, includi quel lavoro aggiuntivo.
Le misure più informative sono:
- Numero di accettate: quanti file consegnati soddisfano il requisito del prodotto.
- Attesa completa: il tempo da quando il cliente invia la richiesta a quando arriva il file utilizzabile.
- Tempo di risorsa pagato: ciò che fattura il fornitore, non solo il passaggio finale di inferenza.
- Comportamento sotto picco: cosa succede quando dieci clienti inviano contemporaneamente.
Separa le esecuzioni a caldo dagli avvii a freddo. Un benchmark che parte con i pesi già caricati non rappresenta una funzione che avvia un worker nuovo dopo ogni periodo di quiete. Confronta anche una qualità di consegna equivalente: un'anteprima a pochi passi e un'immagine finita sono prodotti diversi anche se le dimensioni coincidono.
Per un'app con personaggio ricorrente, includi nel carico di lavoro ogni modifica di scena invece di contare solo il primo ritratto. Se una scena richiesta ha bisogno di una modifica iniziale e di una correzione, sono due tentativi di immagine. I tentativi video sono un'altra voce. Sulla tua GPU queste operazioni consumano più tempo di esecuzione pagato; su un task gestito generano addebiti di richiesta aggiuntivi. Un foglio di calcolo che valuta ogni foto del cliente come una sola generazione sottostima entrambi i lati quando il flusso reale usa più passaggi.
Separa il vantaggio di costo dal vantaggio di prodotto. Una pipeline locale può costare un po' di più ed esporre un controllo di cui i tuoi utenti hanno bisogno. Una pipeline gestita può costare un po' di più e far risparmiare abbastanza tempo agli operatori da rilasciare prima la funzione. Nessuno dei due compromessi deve essere mascherato da cifra universale di pareggio.
Il video richiede un calcolo a sé. Il throughput delle immagini non permette di prevedere quanto rapidamente una pipeline video consegnerà cinque secondi di movimento e audio. Valuta la pipeline video separatamente: il suo tempo GPU pagato e il fabbisogno di memoria non si possono dedurre dal throughput delle immagini.
Domande frequenti
Il self-hosting costa meno di un'API per immagini?
Può, con un utilizzo continuativo. Confronta il costo dei file accettati, inclusi tentativi scartati, inattività pagata e operatività. Una tariffa oraria bassa per la GPU, da sola, non dimostra un risparmio.
Un modello Z-Image locale può sostituire un editor di immagini?
Il modello da testo a immagine crea nuove immagini a partire dalle parole. Preservare un ritratto caricato o cambiare una regione definita richiede una pipeline di modifica o di condizionamento che supporti quell'operazione. Scegli quella pipeline separatamente.
Il self-hosting significa che devo comprare una GPU?
No. Puoi noleggiare una GPU dedicata o distribuire un handler autogestito su worker GPU serverless. Le modalità dedicata e a scalatura a zero hanno compromessi diversi tra costo di inattività e ritardo di avvio.
Posso ospitare le immagini in locale e usare un'API per i video?
Sì. È una soluzione pratica quando le immagini fisse sono frequenti e il video è occasionale. Salva l'immagine approvata, inviala alla modalità video scelta e metti a budget separatamente le fasi di immagine e video.








