Een gegenereerde titelkaart in de OrcaRouter-huisstijl met de tekst “FLUX 3 Image Klein Prompt Upsampler”, met als kicker “Stilletjes uitgebracht · 15 oktober 2026”, met als ondertitel “Het 18,8 GB grote Apache-2.0-model dat Black Forest Labs uitbracht zonder er een naam aan te geven.”, een grote metrische waarde “18,82 GB” met het label “één bfloat16-safetensorsbestand, volgens de Hugging Face API”, twee chips met de tekst “Apache 2.0 · geen toegangspoort” en “Vier systeemprompts · t2i / i2i / bbox”, lijntekeningen van een bijschrift dat zich ontvouwt tot een stapel tekstregels, waarmee een ingelijste afbeelding wordt gevoed, en een open hangslot naast een tweede ingelijste afbeelding. Een bijschrift linksonder luidt “Volledige fine-tune van Qwen3.5-9B met de vision-toren bevroren.” Het OrcaRouter-logo is in de opvulstrook onderaan gecompositeerd.
Engineering & Research

FLUX 3 Image Klein Prompt Upsampler: het 18,8 GB-model dat BFL uitbracht zonder er een naam aan te geven

Auteur

Magnus Corvin

Publicatiedatum

Nieuwste modellen · 20Bekijk alle modellen →
Benchmarks: Artificial Analysis · dagelijks bijgewerkt
Terug naar alle berichten

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.

Wat er daadwerkelijk is uitgebracht, en welk onderdeel niet werd genoemd.

Begin met de datums, want die zijn exact. De upsampler-repository is op Hugging Face aangemaakt op 14 oktober 2026 om 20:40 UTC, en er is voor het laatst op 15 oktober om 15:32 UTC naar geschreven — hetzelfde venster op minutenschaal als de FLUX 3 Image Klein-repositories die het bedient. Het lanceringsbericht is gedateerd op 15 oktober. Dit is dus geen lek, geen voorproefje en geen checkpoint die iemand achterhoudt: het is een first-party release die samen met het bijbehorende model is gepubliceerd.

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.

• De modelpagina op bfl.ai/models/flux-3-image-klein vermeldt de niet-gedistilleerde en gedistilleerde versies en beschrijft API-toegang als inclusief "promptverbetering". Ook geen repository.

• De releaseopmerkingen van 15 oktober vermelden de gewichten: Klein (distilled), Klein Base en de ComfyUI-gewichten. De upsampler staat er niet bij.

• De API-documentatie voor FLUX 3 Image Klein telt 35.148 tekens. Een zoekopdracht naar "upsampl" waarbij geen onderscheid wordt gemaakt tussen hoofd- en kleine letters levert nul resultaten op.

• De referentie-inferentiecode op GitHub is waar het uiteindelijk opduikt — een README-sectie met de titel "Prompt upsampling", een --no-pup-flag op de CLI, een --pup-memory-budget, en een flux3/pup.py-module. Wat het eerlijke antwoord is op "is het verborgen?": nee. Het is gedocumenteerd, het is geïntegreerd, het draait standaard, en als je de repo had gekloond, zou je het meteen tegenkomen.

Het onderscheid is belangrijk en makkelijk te vervagen. Dit is geen stealthrelease; het is een release waarvan de meest permissief gelicentieerde component als loodgieterswerk werd behandeld. De community merkte het sneller op dan de pers — op 15 oktober waren er al door derden gemaakte GGUF-kwantisaties van de upsampler op Hugging Face, en een mirrororganisatie had alle vier de repositories gekopieerd.

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.”

Wat de upsampler eigenlijk is

De modelkaart is expliciet over de afstamming: het is een volledige fine-tune van Qwen3.5-9B met de vision tower bevroren. Het configuratiebestand bevestigt de vorm — 32 lagen, een hidden state van 4.096 breed, 16 attention-heads tegenover 4 key-value-heads, een positieplafond van 262.144 tokens, en een vocabulaire van 248.320. De lagenstack is niet uniform: drie van elke vier lagen gebruiken linear attention, met elke vierde laag een full-attentionlaag. De vision tower is 27 lagen diep en 1.152 breed, patchgrootte 16, spatial merge 2. Dit is een vision-languagemodel met hybride attention van de huidige generatie, geen promptsjabloon met een taalmodel eraan vastgeschroefd.

Op schijf is het één enkel bfloat16-safetensorsbestand van 18,82 GB plus een tokenizer, een chatsjabloon en één bestand dat interessanter is dan de rest: system_prompts.json, 12,6 KB met vier volledige systeemprompts genaamd t2i, i2i, t2i_bbox en i2i_bbox. Die vier prompts vormen de feitelijke interface van het model. Ze zijn ook leesbaar, wat betekent dat het gedrag van de upsampler geen black box is — je kunt precies lezen wat hem is opgedragen te doen, en vervolgens controleren of hij dat heeft gedaan.

Training verliep in twee fasen, volgens de kaart: supervised fine-tuning op paren van korte verzoeken en hun uitgebreide prompts, daarna preference tuning op paren van de eigen outputs van het model, weergegeven via FLUX 3 Image Klein met een vaste seed en gerangschikt op de resulterende afbeelding. Die tweede fase is de opvallende. De upsampler werd niet afgestemd om prompts te schrijven die goed lezen; hij werd afgestemd op welke van zijn eigen prompts de betere afbeelding opleverde toen het beeldmodel ze uitvoerde. Dat is een door de leverancier gerapporteerde methodologie, geen gepubliceerde ablatie, en er bestaat geen onafhankelijke evaluatie ervan.

De vier modi, en hoe de pipeline er één kiest

De upsampler is niet altijd een tekst-naar-afbeeldingstool. Welke systeemprompt hij laadt, hangt af van wat je hem geeft, en de regel staat in bbox.py:

• Geen referentieafbeeldingen, geen boxes — de t2i-prompt. Deze breidt een verzoek uit tot één gedetailleerd bijschrift.

• Referentieafbeeldingen, geen boxen — de i2i-prompt. Hij bekijkt de referenties en schrijft een bewerkingsinstructie die elke referent identificeert aan de hand van hoe die er daadwerkelijk uitziet. Een vaag verzoek wordt gelezen als de meest plausibele bewerking van de aangeleverde afbeeldingen.

• Boxen meegeleverd, tekst-naar-afbeelding — de t2i_bbox-prompt. De uitvoer wordt een caption gevolgd door een JSON-elementtabel, één rij per object op een canvas van 0 tot 1000, en de caption verwijst naar elke rij via een id tussen punthaken.

• Boxen plus referenties — de i2i_bbox-prompt, die een annotatierecord retourneert met een from-veld dat onderscheid maakt tussen inhoud die uit ref_image_N komt en inhoud die als target is gemarkeerd, plus een box in de bron en een box in de denkbeeldige output.

Je boxen winnen een conflict. De code converteert je coördinaten van 0 tot 1 naar het raster van 0 tot 1000, geeft ze aan het model als een gezaghebbende vergrendelde lijst, en stemt daarna het antwoord af: elke rij die het model onder zijn eigen id opnieuw heeft gepland en die een vergrendelde box overlapt met een intersection-over-union van 0,9 of beter, neemt het vergrendelde id over, en de vergrendelde rijen worden woordelijk teruggeschreven, waarbij de beschrijving van het model wordt overgenomen. Je lay-out is geen suggestie die het model mag verbeteren.

Decodering is vast en het waard om te kopiëren als je het zelf aanroept: greedy, top-p 0,95, top-k 20, een limiet van 3.584 nieuwe tokens, en een presence penalty van 1,5 voor tekst-naar-afbeelding tegenover 0,0 voor bewerkingen. Die asymmetrie is bewust — de penalty bestaat om te voorkomen dat de caption-generator zichzelf herhaalt, en een bewerkingsinstructie die legitiem twee keer hetzelfde object noemt, mag daarvoor niet worden gestraft.

Wat de prompts eisen — en waarom je prompts er zo uitzien

De t2i-systeemprompt is het nuttigste document in de release voor iedereen die het gedrag van FLUX 3 Image Klein vreemd vond. Sommige instructies erin verklaren de outputstijl van het model rechtstreeks:

• Lengte. "De typische lengte is 100 tot 350 woorden, meer voor complexe scènes." De upsampler comprimeert je prompt niet en vat hem niet samen. Hij breidt hem uit met ruwweg een orde van grootte, en het beeldmodel is getraind op onderschriften in dat bereik.

• Elke persoon die in focus staat, krijgt een profiel. Etniciteit, geslacht, leeftijdsbereik, huidskleur, haar en kleding — als waarneembare kenmerken. De prompt geeft de voorbeelden "lichte huid" en "bruine huid".

• De achtergrond krijgt ongeveer een zesde van het bijschrift. Expliciet. De prompt vereist ook dat onscherpe en verre inhoud wordt beschreven als vormen, kleuren en silhouetten in plaats van als identiteiten of leesbare tekst.

• Stijl is standaard fotografie. Zonder een opgegeven stijl plant het model een daadwerkelijke foto en opent het met een conventie voor het medium — "Full-color outdoor photograph", "Studio photograph" — waarbij "Photorealistic" wordt gereserveerd voor renders. Een verzoek om iets "realistisch" wordt omgezet naar de fotoconventie in plaats van te worden herhaald.

• Verbodsbepalingen. Geen verzachtende bijwoorden. Geen kwaliteits- of emotieoordelen. Geen slotzin over stemming. Ontkenningen worden herschreven als uitspraken over wat aanwezig is. De generatieve stem is verplicht: "deze afbeelding toont" en "we kunnen zien" zijn volledig verboden.

• Anti-stockfoto. De prompt vraagt om "een paar gewone, niet-ideale details die aan de objecten van de scène zelf zijn ontleend in plaats van het stockfoto-ideaal." Dat is een instructie om afbeeldingen minder generiek te maken, opgenomen in een systeemprompt.

• Tekstverwerking. Weergegeven tekst moet woordelijk tussen dubbele aanhalingstekens worden getranscribeerd in de oorspronkelijke taal en het oorspronkelijke schrift, met behoud van regeleinden, en met vermelding van typografie, kleur en plaatsing. Wanneer een verzoek tekst nodig heeft die het niet heeft aangeleverd, schrijft het model concrete, domeinjuiste formuleringen.

Leg die lijst naast een teleurstellende generatie en je kunt meestal vinden welke regel niet genoeg had om mee te werken. Een vlak portret met een lege achtergrond is een verzoek zonder scène, zonder belichting en zonder gewone specifieke details erin. Een prompt die het model vervolgens toch uitbreidde, waarbij het de leemte opvulde met een generiek plan naar eigen keuze.

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.

Wat het je kost aan geheugen en tijd

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:

• Schijf — 18,82 GB voor de bfloat16-gewichten, tegenover 11,1 GB voor de eigen safetensors van het gedistilleerde beeldmodel en ongeveer 11 GB voor de basis.

• 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.

• De uitschakelaar is één flag. --no-pup stuurt je prompt zoals getypt. De demo heeft dezelfde toggle, en de prompt-upsampling van de gehoste API maakt deel uit van het endpoint in plaats van een apart regelitem in de gepubliceerde tariefkaart: $0,008 bij 768 vierkant, $0,009 bij 1K, $0,011 bij 1,5K, $0,014 bij 2K en $0,036 bij 4K, waarbij genereren en bewerken hetzelfde kosten.

• Referenties worden verkleind voordat de upsampler ze ziet. Eén referentie is beperkt tot ongeveer één megapixel; twee krijgen elk 724 bij 724; drie of meer krijgen elk 512 bij 512, opnieuw gecodeerd naar JPEG met kwaliteit 92. De modelkaart noemt dit met zoveel woorden als beperking — kleine details in een referentie kunnen verkeerd worden beschreven — en het is het mechanisme achter een specifieke fout die je kunt reproduceren: vraag om een bewerking die afhangt van een klein gedrukt detail en de instructie kan terugkomen met een beschrijving van het verkeerde ding, omdat de upsampler het nooit op volledige resolutie heeft gezien. Het beeldmodel krijgt jouw origineel.

De licentie is het deel dat het waard is om over te discussiëren

Hier is de asymmetrie, ronduit gesteld. De FLUX 3 Image Klein-gewichten vallen onder de FLUX Kommunity License, die gratis commercieel gebruik alleen toestaat voor individuen en bedrijven met een jaaromzet onder $5M, waarbij grotere organisaties worden doorverwezen naar self-hosted licenties of de API. Vraag je een commerciële licentie aan voor een product, dan is het model dat je levert niet het enige artefact dat binnen de scope valt.

Vier repositories maakten deel uit van deze release. Drie ervan — het gedistilleerde model, het basismodel en de ComfyUI-gewichten — worden door de Hugging Face API vermeld als gated: auto, wat betekent dat je de voorwaarden moet accepteren voordat je de bestanden kunt downloaden. Eén is helemaal niet gated en valt onder de Apache License 2.0: de prompt-upsampler. Het is ook de enige van de vier waarvan de modelkaart direct een permissieve licentie vermeldt, en de README van de referentierepository zelf trekt de grens expliciet — de code is Apache 2.0, de Klein-gewichten zijn FLUX Kommunity, en "de prompt-upsampler is 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.

Wat is bevestigd, en wat niet

Bevestigd vanuit de repository en de Hugging Face API, allemaal opnieuw te controleren: de bestandsinventaris en bytegroottes, de Apache 2.0-licentie, de ontbrekende toegangspoort, de Qwen3.5-9B-basis, de vier systeemprompts en hun volledige tekst, de decoderingsparameters, het referentie-voorverwerkingsbudget, het box-reconciliatiegedrag, de beschrijving van de tweefasige training en de gepubliceerde beperkingen.

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.

Ook open: de cijfers op de repository zelf zijn klein. Dertien downloads en tien likes op de upsampler, tegenover 3.241 downloads en 128 likes op het gedistilleerde beeldmodel, vierentwintig uur na release. Dat is geen bewijs dat het model onbelangrijk is — het is bewijs dat bijna niemand wist dat het er was.

Waar OrcaRouter past, en waar niet

Eerst de eerlijke versie: OrcaRouter herbergt geen model van Black Forest Labs. De catalogus is nagekeken in plaats van aangenomen, en er staat geen FLUX-vermelding in. Niets hieronder impliceert het tegendeel.

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.

Toch is het de moeite waard om precies te zijn over de beperking van dat advies. Als je de upsampler echt wilt fine-tunen onder Apache 2.0, heb je de gewichten op je eigen hardware nodig en een runtime die een 9B vision-language-model kan serveren. OrcaRouter doet dat deel niet, en de licentiekwestie hierboven is aan jou om te beslechten.

Wat zou hier een groter verhaal van maken?

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.

Tot dan toe is de praktische interpretatie beperkt en weinig glamoureus. Omdat het gedownloade beeldmodel afgeschermd is en de licentie een omzetdrempel kent, zullen de meeste mensen die op FLUX 3 Image Klein willen bouwen met de API beginnen, waar de upsampler geen keuze is die je maakt — hij is iets wat de endpoint doet, verrekend in een tariefkaart die begint bij $0,008 per afbeelding. De mensen die zich om de repository zouden moeten bekommeren, zijn degenen die zelf hosten, en voor hen is het nuttige feit deze week simpelweg dat het onderdeel van de release met de meest permissieve licentie ook het onderdeel is waar niemand hun iets over heeft verteld.

Voor een model waarvan de faalmodi nog niet gedocumenteerd zijn, vormt het verslag van wat elders al is misgegaan de nuttige tegenhanger: de gedocumenteerde AI-incidenten en agentstoringen rond modellen in deze klasse zijn verzameld in the OrcaRouter AI Incident Archive, waarbij elke vermelding zijn eigen bronnen, ernstgraad, betrouwbaarheidsgraad en betwist-markering bevat.