Una title card generata nello stile di OrcaRouter che recita “FLUX 3 Image Klein Prompt Upsampler”, con l’occhiello “Rilasciato in sordina · 15 ottobre 2026”, con il sottotitolo “Il modello Apache-2.0 da 18,8 GB che Black Forest Labs ha rilasciato senza dargli un nome.”, una grande metrica “18,82 GB” etichettata “un file bfloat16 safetensors, secondo l’API di Hugging Face”, due chip che recitano “Apache 2.0 · nessun gate di accesso” e “Quattro system prompt · t2i / i2i / bbox”, disegni al tratto di una didascalia che si espande in una pila di righe di testo che alimentano un’immagine incorniciata, e un lucchetto aperto accanto a una seconda immagine incorniciata. Una didascalia in basso a sinistra recita “Fine-tune completo di Qwen3.5-9B con la torre visiva congelata.” Il logo OrcaRouter è inserito in compositing nella fascia con padding lungo il fondo.
Engineering & Research

FLUX 3 Image Klein Prompt Upsampler: Il modello da 18,8 GB che BFL ha rilasciato senza nominarlo

Autore

Magnus Corvin

Data di pubblicazione

Ultimi modelli · 20Vedi tutti i modelli →
Benchmark: Artificial Analysis · aggiornato ogni giorno
Torna a tutti gli articoli

Black Forest Labs shipped two models on 15 October 2026 and announced one of them. The announced model is FLUX 3 Image Klein, the 5.6B open-weights image generator that drew the launch post, the pricing table, the ComfyUI workflow and a round of trade coverage. The other is the FLUX 3 Image Klein Prompt Upsampler — an 18.8 GB fine-tune of Qwen3.5-9B that rewrites your short request into the long caption the image model expects — and it is the single most permissive artifact in the release. Its repository is public, requires no account, and carries the Apache License 2.0, where each of its three sibling repositories carries the FLUX Kommunity License and an access gate. B​FL's launch post never names it. Neither does the model page, the release notes, or the API documentation for FLUX 3 Image Klein, which does not contain the word "upsampler" once in 35,000 characters.

That gap is checkable in about five minutes, and it is worth checking, because the upsampler decides more about what your images look like than most of the settings you will spend the weekend adjusting. It also raises a question the announcement does not answer: whether B​FL intends it as a standalone model you can build on, or as a load-bearing dependency of its own inference code that happened to get published with an Apache header. This piece separates what the repository proves from what only B​FL can confirm. Every number below comes from the model card, the Hugging Face API, the reference inference code or B​FL's own documentation, and none of it has been independently benchmarked by a third party.

Cosa è stato effettivamente rilasciato e quale parte non è stata nominata

Iniziamo dalle date, perché sono esatte. Il repository dell'upsampler è stato creato su Hugging Face alle 20:40 UTC del 14 ottobre 2026 e l'ultima scrittura risale alle 15:32 UTC del 15 ottobre — la stessa finestra temporale su scala minuto dei repository FLUX 3 Image Klein che serve. Il post di lancio è datato 15 ottobre. Quindi non è una fuga di notizie, non è un'anteprima e non è un checkpoint che qualcuno tiene da parte: è un rilascio first-party pubblicato insieme al modello a cui appartiene.

What it did not get is a name in the announcement. Read B​FL's own enumeration of the release and the pattern is consistent:

• The launch post describes FLUX 3 Image Klein's weights, its FP8, INT8 and NVFP4 builds built with N​VIDIA, its day-one ComfyUI and Diffusers support, and its licence. It mentions "prompt upsampling" once, as a feature of the hosted API endpoint, without naming a model or linking a repository.

• La pagina del modello su bfl.ai/models/flux-3-image-klein elenca le versioni non distillate e distillate e indica che l'accesso API include il "miglioramento del prompt". Inoltre, nessun repository.

• Le note di rilascio del 15 ottobre elencano i pesi: Klein (distilled), Klein Base e i pesi ComfyUI. L'upsampler non è tra questi.

• La documentazione API per FLUX 3 Image Klein è di 35.148 caratteri. Una ricerca senza distinzione tra maiuscole e minuscole di "upsampl" non restituisce alcun risultato.

• Il codice di inferenza di riferimento su GitHub è dove compare finalmente — una sezione del README intitolata "Prompt upsampling", un flag --no-pup sulla CLI, un budget --pup-memory e un modulo flux3/pup.py. Che è la risposta onesta a "è nascosto?": no. È documentato, è integrato, viene eseguito per impostazione predefinita e, se hai clonato il repository, lo incontreresti immediatamente.

La distinzione è importante ed è facile confonderla. Questo non è un rilascio stealth; è un rilascio il cui componente con la licenza più permissiva è stato trattato come semplice infrastruttura. La comunità se n'è accorta più in fretta della stampa: il 15 ottobre esistevano già quantizzazioni GGUF di terze parti dell'upsampler su Hugging Face, e un'organizzazione mirror aveva copiato tutti e quattro i repository.

A generated single-column scoreboard card titled “FLUX 3 Image Klein Prompt Upsampler — the scoreboard”, kicked by “Shipped quietly · figures from the repo, 16 October 2026”, with six rows: “Disk size: 18.82 GB bf16”, “Vision tower: 27 layers, frozen”, “Licence: Apache 2.0”, “Access gate on Hugging Face: none — the other three repos are gated”, “Downloads after 24 hours: 13”, and an amber-highlighted “Named in BFL's launch post: no — it appears only in the reference repo”. A footer reads “Figures taken from the model card, the Hugging Face API and the reference repository. No independent evaluation of the upsampler has been published.”

Cos'è realmente l'upsampler

La model card è diretta riguardo alla discendenza: è un fine-tune completo di Qwen3.5-9B con la torre visiva congelata. Il file di configurazione conferma la forma — 32 livelli, uno stato nascosto largo 4.096, 16 teste di attenzione contro 4 teste chiave-valore, un limite di posizione di 262.144 token e un vocabolario di 248.320. Lo stack di layer non è uniforme: tre livelli su quattro usano l'attenzione lineare, con un livello di attenzione completa ogni quattro. La torre visiva è profonda 27 livelli e larga 1.152, dimensione della patch 16, fusione spaziale 2. Questo è un modello visione-linguaggio di generazione attuale con attenzione ibrida, non un template di prompt con un modello linguistico aggiunto.

Su disco è un singolo file safetensors bfloat16 da 18,82 GB più un tokenizer, un template di chat e un file più interessante degli altri: system_prompts.json, 12,6 KB che contiene quattro prompt di sistema completi denominati t2i, i2i, t2i_bbox e i2i_bbox. Quei quattro prompt sono l'interfaccia effettiva del modello. Sono anche leggibili, il che significa che il comportamento dell'upsampler non è una scatola nera — puoi leggere esattamente ciò che gli è stato chiesto di fare, e poi verificare se lo ha fatto.

L'addestramento si è svolto in due fasi, stando alla scheda: fine-tuning supervisionato su coppie di richieste brevi e relativi prompt espansi, poi preference tuning su coppie di output del modello stesso, renderizzati tramite FLUX 3 Image Klein con un seed fisso e classificati in base all'immagine risultante. È la seconda fase quella degna di nota. L'upsampler non è stato ottimizzato per scrivere prompt che si leggano bene; è stato ottimizzato su quale dei suoi stessi prompt producesse l'immagine migliore quando il modello di immagini li eseguiva. Si tratta di una metodologia riportata dal fornitore, non di un'ablation pubblicata, e non ne esiste alcuna valutazione indipendente.

Le quattro modalità, e come la pipeline ne sceglie una

L'upsampler non è sempre uno strumento di testo-a-immagine. Quale prompt di sistema carica dipende da ciò che gli passi, e la regola si trova in bbox.py:

• Nessuna immagine di riferimento, nessun riquadro — il prompt t2i. Espande una richiesta in un'unica didascalia dettagliata.

• Immagini di riferimento, senza riquadri — il prompt i2i. Esamina i riferimenti e scrive un'istruzione di modifica che identifica ogni referente in base a ciò che appare realmente. Una richiesta vaga viene interpretata come la modifica più plausibile delle immagini fornite.

• Box forniti, testo-immagine — il prompt t2i_bbox. L'output diventa una didascalia seguita da una tabella di elementi JSON, una riga per oggetto su una tela da 0 a 1000, e la didascalia cita ogni riga tramite id tra parentesi angolari.

• Box e riferimenti — il prompt i2i_bbox, che restituisce un record di annotazione con un campo from che distingue il contenuto tratto da ref_image_N dal contenuto contrassegnato come target, più un box nella sorgente e un box nell'output immaginato.

I tuoi box hanno la meglio in caso di conflitto. Il codice converte le tue coordinate da 0 a 1 sulla griglia da 0 a 1000, le passa al modello come elenco bloccato autorevole, e poi riconcilia la risposta: qualsiasi riga che il modello ha riprogettato con il proprio id e che si sovrappone a un box bloccato con un rapporto di intersezione su unione di 0,9 o superiore assume l'id bloccato, e le righe bloccate vengono riscritte testualmente, adottando la descrizione del modello. Il tuo layout non è un suggerimento su cui il modello possa migliorare.

Il decoding è fisso e vale la pena copiarlo se lo richiami tu stesso: greedy, top-p 0,95, top-k 20, un limite di 3.584 nuovi token e una penalità di presenza di 1,5 per il text-to-image contro 0,0 per le modifiche. Questa asimmetria è deliberata — la penalità esiste per impedire al generatore di didascalie di ripetersi, e un'istruzione di modifica che menziona legittimamente due volte lo stesso oggetto non dovrebbe esserne penalizzata.

Cosa richiedono i prompt — e perché i tuoi prompt hanno l'aspetto che hanno

Il prompt di sistema t2i è il documento più utile della release per chiunque abbia trovato strano il comportamento di FLUX 3 Image Klein. Alcune delle sue istruzioni spiegano direttamente lo stile di output del modello:

• Lunghezza. "La lunghezza tipica è di 100-350 parole, di più per le scene complesse." L'upsampler non sta comprimendo né riassumendo il tuo prompt. Lo sta espandendo di circa un ordine di grandezza, e il modello di immagini è stato addestrato su didascalie in quel range.

• Ogni persona a fuoco riceve un profilo. Etnia, genere, fascia d'età, tonalità della pelle, capelli e abbigliamento — come attributi osservabili. Il prompt fornisce gli esempi "pelle chiara" e "pelle bruna".

• Lo sfondo occupa circa un sesto della didascalia. Esplicito. Il prompt richiede inoltre che i contenuti fuori fuoco e distanti vengano descritti come forme, colori e silhouette anziché identità o testo leggibile.

• Lo stile predefinito è la fotografia.Se non viene indicato alcuno stile, il modello pianifica una fotografia reale e apre con una convenzione di medium — "Full-color outdoor photograph", "Studio photograph" — riservando "Photorealistic" ai render. Una richiesta di qualcosa di "realistico" viene convertita nella convenzione fotografica anziché essere ripetuta così com'è.

• Divieti. Nessun avverbio attenuativo. Nessun giudizio sulla qualità o sulle emozioni. Nessuna frase di chiusura sull'umore. Le negazioni vengono riscritte come affermazioni su ciò che è presente. La voce generativa è obbligatoria: "questa immagine mostra" e "possiamo vedere" sono vietate in modo assoluto.

• Anti-foto-stock. Il prompt richiede «alcuni dettagli ordinari e non ideali, ricavati dagli oggetti della scena stessa anziché dall'ideale da foto stock». Si tratta di un'istruzione per rendere le immagini meno generiche, inserita in un prompt di sistema.

• Gestione del testo. Il testo visualizzato deve essere trascritto testualmente tra virgolette doppie nella sua lingua e scrittura originali, con interruzioni di riga preservate, tipografia, colore e posizionamento specificati. Quando una richiesta necessita di testo che non ha fornito, il modello redige una formulazione concreta e corretta per il dominio.

Leggi quella lista confrontandola con una generazione deludente e di solito riesci a individuare quale regola non ha avuto abbastanza elementi con cui lavorare. Un ritratto piatto con uno sfondo vuoto è una richiesta senza scena, senza illuminazione e senza dettagli ordinari. Un prompt che il modello ha poi comunque ampliato, riempiendo il vuoto con un piano generico di sua scelta.

A headless-browser capture of the Hugging Face repository page for black-forest-labs/flux-3-image-klein-pup, showing the model header and title, the repository tabs, the Apache-2.0 licence label, the task tag and library tags, and the file listing for the repository including the 18.82 GB bfloat16 safetensors weight file and the system_prompts.json file.

Quanto ti costa in memoria e tempo

The upsampler is on by default in B​FL's own pipeline, and the practical reason to care is that "on by default" means a second model resident while the first one generates. From the reference code and documentation:

• Disco — 18,82 GB per i pesi bfloat16, contro 11,1 GB per i safetensors del modello immagini distillato e circa 11 GB per la base.

• VRAM — the reference implementation gives the upsampler a share of the GPU, defaulting to 0.35 in the Python API and 0.85 in the standalone module's command line. B​FL's memory table, measured on a B200, runs 31 GB in bf16 for the image model with --no-pup; the upsampler's reserved share sits on top of that.

• The 8 GB story gets more complicated. B​FL's headline is that the INT8 build of FLUX 3 Image Klein runs on an RTX GPU with as little as 8 GB of VRAM, and that is the image model. In the ComfyUI repository the prompt upsampler ships as a separate 9.75 GB INT8 text encoder file. Nobody has published a configuration in which both an 8 GB card and the upsampler are resident at once.

• L'interruttore di disattivazione è un singolo flag. --no-pup invia il tuo prompt così come digitato. La demo ha lo stesso interruttore, e l'upsampling del prompt dell'API ospitata fa parte dell'endpoint anziché essere una voce separata nella rate card pubblicata: $0.008 a 768 quadrati, $0.009 a 1K, $0.011 a 1.5K, $0.014 a 2K e $0.036 a 4K, con generazione ed editing allo stesso prezzo.

• I riferimenti vengono ridimensionati verso il basso prima che l'upsampler li veda. Un riferimento è limitato a circa un megapixel; due ricevono 724 quadrati ciascuno; tre o più ricevono 512 quadrati ciascuno, ricodificati in JPEG a qualità 92. La model card lo elenca come una limitazione a chiare lettere — i piccoli dettagli in un riferimento possono essere descritti in modo errato — ed è il meccanismo alla base di un errore specifico che puoi riprodurre: chiedi una modifica che dipende da un piccolo dettaglio stampato e l'istruzione potrebbe tornare descrivendo la cosa sbagliata, perché l'upsampler non l'ha mai visto a piena risoluzione. Il modello di immagini riceve il tuo originale.

La licenza è la parte su cui vale la pena discutere

Ecco l'asimmetria, detta chiaramente. I pesi di FLUX 3 Image Klein sono distribuiti con la FLUX Kommunity License, che consente l'uso commerciale gratuito solo a individui e aziende con fatturato annuo inferiore a 5 milioni di dollari, mentre le organizzazioni più grandi vengono indirizzate verso licenze self-hosted o verso l'API. Avvia una richiesta di licenza commerciale per un prodotto e il modello che stai distribuendo non è l'unico artefatto in gioco.

Quattro repository facevano parte di questa release. Tre di essi — il modello distillato, il modello base e i pesi ComfyUI — sono elencati dall'API di Hugging Face come gated: auto, il che significa che devi accettare i termini prima di poter scaricare i file. Uno non è affatto gated e riporta la Apache License 2.0: il prompt upsampler. È anche l'unico dei quattro la cui model card dichiara direttamente una licenza permissiva, e il README stesso del repository di riferimento traccia esplicitamente il confine — il codice è Apache 2.0, i pesi Klein sono FLUX Kommunity e «il prompt upsampler è Apache 2.0».

A generated comparison card titled “One licence line separates the upsampler from the rest of the release”, kicked by “Shipped quietly · the four repositories, 16 October 2026”, with the sub-line “Access gate and licence as listed by the Hugging Face API.” A header row reads “Repository / Licence / Access gate on Hugging Face” above four rows: “Distilled image model”, “Base image model” and “ComfyUI weights”, each reading “FLUX Kommunity License” and “gated — terms must be accepted” in amber, and a highlighted “Prompt upsampler” row reading “Apache License 2.0” and “none — download without an account” in blue. A footer reads “Licence and gate status read from the Hugging Face API and each repository's model card. Three of the four carry the FLUX Kommunity License, which permits free commercial use only below $5M annual revenue.” The OrcaRouter logo is composited into the padded strip along the bottom.

What that buys you depends on the unresolved question. If the upsampler is genuinely a standalone artifact, it is a 9B-class vision-language model you can fine-tune, redistribute and ship in a commercial product without a revenue threshold, and it is currently the cheapest way to acquire that capability from a frontier image lab under terms that do not require a lawyer. If it is intended only as a dependency of B​FL's reference code, then repurposing it carries a risk that no document currently resolves.

Cosa è confermato, e cosa no.

Confermato dal repository e dall'API di Hugging Face, tutto ricontrollabile: l'inventario dei file e le dimensioni in byte, la licenza Apache 2.0, l'assenza di un gate di accesso, la base Qwen3.5-9B, i quattro system prompt e il loro testo completo, i parametri di decoding, il budget di preprocessing di riferimento, il comportamento di riconciliazione dei box, la descrizione dell'addestramento in due fasi e le limitazioni pubblicate.

Not confirmed, and stated as open rather than guessed: whether B​FL considers the upsampler a supported product or an internal dependency; whether the Apache 2.0 header was a deliberate licensing decision or an inherited default from Qwen3.5-9B; how much the upsampler actually improves output, since no third party has run a controlled comparison and B​FL has published no ablation; whether the preference-tuning stage generalises beyond the prompts in its training set; and whether the 9.75 GB INT8 ComfyUI file is the same model at lower precision or a differently prepared one, since that repository's model card is gated and could not be read.

Apriamo anche una parentesi: i numeri sul repository stesso sono piccoli. Tredici download e dieci like sull'upsampler, contro 3.241 download e 128 like sul modello di immagini distillato, ventiquattro ore dopo il rilascio. Non è una prova che il modello sia poco importante — è la prova che quasi nessuno sapeva che fosse lì.

Dove OrcaRouter è adatto, e dove non lo è

Prima la versione onesta: OrcaRouter non ospita alcun modello Black Forest Labs. Il catalogo è stato verificato anziché dato per scontato, e non contiene alcuna voce FLUX. Nulla di quanto segue implica il contrario.

What does sit in the catalogue is the comparison set. If you are going to spend a weekend testing whether prompt expansion helps your images, the interesting experiment is running the same request through FLUX 3 Image Klein with the upsampler on and off, and then against a hosted image model that does its own prompt handling — G​oogle's image models, O​penAI's, G​rok's — to see whether the gap you are measuring is the upsampler or the generator. Those hosted models are reachable from a single key on OrcaRouter, at the provider's list price with no markup added, so the cost of the experiment is the provider's own rate and nothing on top of it. That is a cheaper way to answer the question than downloading 18.82 GB four times.

Vale però la pena essere precisi sul limite di quel consiglio. Se desideri davvero fare fine-tuning dell'upsampler con licenza Apache 2.0, ti servono i pesi sul tuo hardware e un runtime in grado di servire un modello visione-linguaggio da 9B. OrcaRouter non si occupa di quella parte, e la questione della licenza di cui sopra sta a te risolvere.

Cosa trasformerebbe questo in una storia più grande?

Four things, in rough order of how much they would change. First, a named mention from B​FL — a model card, a docs page, a line in the release notes — which would settle the framing here and probably force an update to this piece. Second, a controlled evaluation, ours or anyone's, of images generated with and without the upsampler at a fixed seed; that number is currently missing and it is the one everyone actually wants. Third, a statement on whether the Apache 2.0 licence is deliberate, since that is what makes the artifact interesting rather than merely unlisted. Fourth, the same treatment applied to the rest of the FLUX 3 family: if the upsampler pattern holds, other tiers will ship with permissive helper models attached and unannounced.

Fino ad allora, la lettura pratica è ristretta e poco glamour. Poiché il modello di immagini scaricato è gated e la sua licenza prevede una soglia di ricavi, la maggior parte di chi vuole costruire su FLUX 3 Image Klein inizierà con l’API, dove l’upsampler non è una decisione che prendi tu — è qualcosa che fa l’endpoint, con un prezzo incluso in un listino che parte da $0,008 per immagine. Le persone a cui dovrebbe interessare il repository sono quelle che fanno self-hosting, e per loro il fatto utile questa settimana è semplicemente che il componente della release con la licenza più permissiva è anche quello di cui nessuno ha parlato loro.

Per un modello le cui modalità di guasto non sono ancora documentate, il contraltare utile è il registro di ciò che è già andato storto altrove: gli incidenti AI documentati e i fallimenti degli agenti relativi ai modelli di questa classe sono raccolti in OrcaRouter AI Incident Archive, dove ogni voce riporta le proprie fonti, il livello di gravità, il grado di confidenza e il flag di contestazione.