Une carte de titre générée indiquant « FLUX 3 Image Klein vs FLUX 3 Image Klein Pup », avec le sous-titre « l'un génère l'image, l'autre écrit le prompt ». Une carte de gauche indique « Klein : générateur de 5,6 Md, 5,6 Go FP8, INT8 à partir de 8 Go », une carte de droite indique « Pup : modèle affiné Qwen3.5 de 9 Md, 18,8 Go BF16, Apache 2.0 », et un pied de page indique « Les deux chiffres sont issus des fiches de modèle Hugging Face. » Le logo OrcaRouter se trouve en bas à droite.
Guides & Insights

FLUX 3 Image Klein vs FLUX 3 Image Klein Pup : un modèle face à son propre rédacteur de prompts

Auteur

Magnus Corvin

Date de publication

Derniers modèles · 20Voir tous les modèles →
Benchmarks : Artificial Analysis · mis à jour quotidiennement
Retour à tous les articles

Le nom du dépôt invite à une comparaison qui n’existe pas. FLUX 3 Image Klein et FLUX 3 Image Klein Pup ressemblent à deux modèles d’une même famille, comme toutes les autres pages « vs » de ce blog opposent deux générateurs aux forces différentes. Il n’en est rien. FLUX 3 Image Klein est le modèle d’image 5,6B sorti le 15 octobre 2026. FLUX 3 Image Klein Pup — intitulé « Prompt Upsampler » sur sa fiche modèle — est un modèle de langage 9B dont tout le rôle est de réécrire votre prompt court en la légende longue et détaillée que le modèle d’image a été entraîné à recevoir.

La vraie question n’est donc pas de savoir lequel est le meilleur. C’est de savoir si le second est facultatif. Black Forest Labs affirme que non : la fiche du modèle indique clairement que Klein « n’est pas censé fonctionner sans un suréchantillonneur de prompt en amont », et qu’un prompt court envoyé tel quel donne une sortie générique. C’est cette affirmation qu’il vaut la peine d’examiner, car l’accepter change votre budget mémoire, votre latence, vos obligations de licence et — dans un cas précis — la précision de vos modifications.

Ce qu’est réellement chacun des deux

La séparation est plus nette que ne le suggère leur nom. Un modèle dispose de la vision, l'autre pas, et un seul d'entre eux touche ne serait-ce qu'un pixel.

• Rôle — Klein génère et modifie des images ; Pup produit du texte et ne fait jamais aucun rendu

• Paramètres — 5,6 B pour le générateur, 9 B pour le suréchantillonneur, donc le modèle auxiliaire est le plus grand

• Lignée — Klein est un modèle d’image de la lignée FLUX 3 ; Pup est un fine-tuning complet de Qwen/Qwen3.5-9B, lui-même dérivé de Qwen3.5-9B-Base

• Poids sur disque — 11,2 Go en BF16 et 5,6 Go en FP8 pour Klein ; 18,8 Go pour les safetensors de Pup en BF16

• Licence — FLUX Kommunity License pour Klein, avec son seuil de revenus de 5 M$ ; Apache 2.0 pour Pup

• Entrées — Klein prend du texte, des images de référence et des boîtes englobantes ; Pup prend la même requête avec jusqu’à 10 images de référence supplémentaires et renvoie une invite

• Sortie — pixels vs texte anglais

Cette dernière ligne est celle que les gens oublient. La langue de sortie de Pup est toujours l’anglais, même lorsque la demande d’entrée est dans une autre langue. Si votre pipeline journalise les prompts pour examen, le prompt que voit votre relecteur n’est pas celui que votre utilisateur a saisi.

Le nombre 8 Go ne survit pas au pipeline par défaut.

L’argument matériel phare pour Klein est que la version INT8 fonctionne sur une carte RTX avec aussi peu que 8 Go de VRAM. Cette affirmation concerne le générateur et, en soi, elle semble se vérifier — le checkpoint quantifié est conçu pour cela, et les temps publiés en parallèle ont été mesurés par NVIDIA.

Ajoutez maintenant le pipeline par défaut. Les poids de Pup font 18,8 Go en BF16 avant toute surcharge d’exécution. Vous ne pouvez pas faire tenir 18,8 Go de poids dans 8 Go de VRAM. Les deux chiffres décrivent deux choses différentes, et les documents de lancement les présentent d’assez près l’un de l’autre pour qu’un lecteur puisse raisonnablement conclure que l’ensemble tourne sur une vieille carte. Ce n’est pas le cas, pas dans la configuration que BFL indique comme celle attendue par le modèle.

Il existe trois façons honnêtes de s’en sortir, et chacune a un coût différent :

• Quantifier le suréchantillonneur — des builds GGUF communautaires existent pour Pup en variantes Q8_0, Q5_K_M, IQ4_XS et IQ3_S avec un projecteur de vision séparé, ce qui réduit considérablement la taille de l’assistant au prix d’une certaine dégradation de la qualité des prompts

• Exécutez l'upsampler ailleurs — c'est un modèle de texte, il n'a donc pas besoin de partager un GPU avec le générateur, seulement un saut réseau

• Ignorez-le avec --no-pup — gratuit, immédiat, et l'option que BFL déconseille

Le calcul de mémoire est la chose la plus utile à comprendre à propos de ce couplage. Il explique aussi tout un type de plainte : quelqu'un signale que Klein est lent ou ne tient pas, alors que ce qu'il signale en réalité, c'est qu'il a exécuté le pipeline documenté sur un matériel dimensionné pour la version allégée.

Ce que le Pup fait à un prompt

Cela s’étend. Une requête comme « un homme se promenant avec son chien, soleil d’après-midi » devient une légende de scène complète couvrant le sujet, le décor, l’éclairage, la caméra et la composition — la fiche du modèle décrit la sortie comme une longue légende d’environ deux cents mots à son réglage moyen. Le modèle d’image conditionne ensuite sa génération sur cette légende plutôt que sur votre phrase.

Ce n’est pas un gadget, mais une véritable capacité. Les modèles d’image de type diffusion sont sensibles à la précision du prompt, et un prompt de cinq mots laisse presque toutes les décisions de composition aux a priori du modèle. Un upsampler rend ces décisions explicites et cohérentes, ce qui explique pourquoi la sortie du pipeline par défaut paraît plus réfléchie que celle du même checkpoint alimenté avec la phrase brute.

C'est aussi une perte de contrôle, et cette perte est silencieuse. Votre phrase n'est pas annotée — elle est remplacée. Si le suréchantillonneur décide que la lumière de l'après-midi est celle de l'heure dorée et que le chien est un border collie, le générateur n'a aucun moyen de savoir que ce n'était pas ce que vous vouliez dire. Pour un travail exploratoire, c'est une fonctionnalité. Pour une liste de plans, c'est une variable que vous n'avez pas demandée.

Quatre modes, et pourquoi le mode compte plus que le prompt

Pup n’est pas un modèle doté d’un seul comportement. Il sélectionne un prompt système en fonction de la tâche, et il en existe quatre : texte-vers-image, image-vers-image, texte-vers-image avec boîtes englobantes, et image-vers-image avec boîtes englobantes. Un mode incorrect produit un prompt bien rédigé pour la mauvaise tâche, ce qui constitue un échec qui ressemble à un problème de qualité du modèle sans en être un.

Les paramètres d’échantillonnage varient eux aussi selon le mode, et cette différence n’est pas cosmétique. Le décodage est glouton à température zéro, avec un maximum de 3 584 nouveaux tokens et la réflexion désactivée. La pénalité de présence est de 1,5 pour le texte-vers-image et de 0 pour les modifications. Ce zéro est délibéré : une pénalité de répétition encourage le modèle à introduire de nouveaux éléments, ce qui est exactement ce que vous ne voulez pas lorsque la tâche consiste à reformuler fidèlement une instruction de modification. Les images de référence sont également redimensionnées différemment selon le nombre que vous fournissez — environ 1 mégapixel pour une, 724² pour deux, 512² pour trois ou plus — ainsi, une tâche avec dix références s’appuie sur des images bien plus petites qu’une tâche avec une seule référence.

A generated two-card memory diagram titled 'The default pipeline does not fit in 8 GB'. The left card, headed 'FLUX 3 Image Klein', lists 'Parameters 5.6B', 'FP8 weights 5.6 GB', 'BF16 weights 11.2 GB' and 'INT8 build from 8 GB VRAM'. The right card, headed 'FLUX 3 Image Klein Pup', lists 'Parameters 9B', 'BF16 weights 18.8 GB' and 'Licence Apache 2.0'. A bar across the bottom reads 'Default pipeline: generator plus 18.8 GB of upsampler weights'. A footer reads 'Weights per the Hugging Face model cards; the 8 GB claim covers the INT8 generator alone.' The OrcaRouter logo sits bottom-right.

La licence est partagée en deux moitiés égales

C'est la partie qui retient presque aucune attention et qui le mériterait probablement. Les deux moitiés du pipeline sont sous des licences différentes. Klein est sous licence FLUX Kommunity : gratuite pour un usage commercial en dessous de 5 M$ de chiffre d'affaires annuel, licence payante au-delà. Pup est sous Apache 2.0, sans aucune condition de chiffre d'affaires.

Une entreprise au-dessus du seuil peut donc utiliser librement le suréchantillonneur de prompts et a toujours besoin d’une licence pour utiliser le générateur qu’il alimente. Et une entreprise en dessous du seuil qui souhaite affiner le côté prompt dispose de bien plus de latitude qu’une entreprise qui souhaite affiner le côté image. Si vous prévoyez de commercialiser votre produit, lisez les deux licences séparément plutôt que de considérer « la Klein stack » comme un tout. La moitié permissive est celle qu’il est facile de négliger.

Qu’est-ce qui change réellement quand on le désactive ?

Désactiver Pup ne demande qu’un seul flag, et les effets sont asymétriques selon les tâches.

• Texte vers image — la régression la plus importante. Les invites courtes deviennent génériques, ce qui est précisément l'échec contre lequel BFL met en garde, et l'écart se creuse à mesure que votre invite raccourcit

• Multi-référence — c’est le suréchantillonneur qui fait passer de « mettez ces trois personnes dans une pièce » à une description qui prend en compte les trois références ; sans lui, la fidélité aux références devient nettement plus lâche.

• Disposition en boîte englobante — ce mode sert à convertir l’intention spatiale en une légende qui la préserve ; le supprimer reporte donc la charge sur votre formulation.

• Montage précis — le cas le moins tranché, et celui où le désactiver peut aider

Ce dernier point est le plus contre-intuitif, et il vient du même endroit que la pénalité de présence nulle. Une instruction de modification est généralement étroite : changer cet objet, déplacer cet élément, supprimer cette chose. Le rôle de l'upsampler est d'étendre, il étend donc la scène autour de votre instruction autant que l'instruction elle-même. Lorsque la modification est réellement locale, cette expansion environnante n'est au mieux que du bruit. Lorsqu'elle contredit quelque chose dans l'image, elle est pire que du bruit.

Notre propre expérience de l’utilisation de Klein sur des retouches localisées — modifier un objet, déplacer un élément dans une région délimitée, en gardant le reste de l’image intact — est que le modèle est le plus convaincant précisément dans ce mode étroit. Ce qui rend la question de l’upsampler plus aiguë plutôt que plus simple : la tâche où le générateur est le plus performant est aussi celle où l’expansion du helper est la moins bienvenue. Testez les deux réglages sur vos propres prompts de retouche avant de décider. C’est un cas où les conseils généraux du fournisseur et votre charge de travail spécifique peuvent légitimement diverger.

A screenshot of the Hugging Face model card for black-forest-labs/flux-3-image-klein-pup, showing the title FLUX 3 Image Klein Prompt Upsampler, a description of a 9B vision-language model that expands a short image request into a detailed prompt for FLUX 3 Image, the statement that Klein is not meant to run without a prompt upsampler in front of it, the worked example turning 'A man walking with his dog, afternoon sun' into a 220-word caption, an Apache 2.0 licence, 9B parameters in BF16, and a model tree showing a fine-tune of Qwen3.5-9B.A screenshot of the Hugging Face model card for black-forest-labs/flux-3-image-klein, showing a gated-model notice asking the visitor to agree to share contact information, a sample image grid, a model size of 6B parameters in BF16, the tag 'License: flux-kommunity-license', 3,241 downloads in the last month, and model-tree counts of 1 adapter, 4 fine-tunes and 5 quantizations.

La décision, en pratique

Si vous appelez l’API du fournisseur plutôt que de télécharger quoi que ce soit, l’essentiel de tout cela est sans objet. Le point de terminaison hébergé applique son propre suréchantillonnage de prompt et sa propre restauration de pixels côté serveur, donc vous bénéficiez déjà du comportement de prompt étendu, que vous y pensiez ou non. Le choix ne devient réel que lorsque vous récupérez les poids.

Dans ce cas, la répartition est à peu près la suivante. Gardez Pup si vos prompts sont courts, si votre travail est exploratoire ou si vous générez plutôt que de modifier. Abandonnez-le, ou exécutez une version quantifiée, si votre carte est petite, si vos modifications sont ciblées et littérales, ou si vos prompts sont déjà assez longs et précis pour que l’expansion n’ajoute surtout que de l’invention. Quantifiez-le si vous voulez les deux et pouvez accepter une certaine perte de qualité des prompts en échange de la possibilité de faire tenir tout le pipeline sur un seul appareil.

Une remarque pratique pour tester cela à moindre coût : les deux moitiés échouent indépendamment, et une couche de routage est le moyen habituel d’éviter de parier un chemin de production sur un seul point de terminaison. OrcaRouter fait tourner une API compatible OpenAI sur plus de 200 modèles avec 0 % de marge — le prix catalogue du fournisseur est répercuté sans changement — et un basculement automatique entre fournisseurs, afin qu’un point de terminaison dégradé ne se transforme pas en tâche échouée. Cela ne vous aide pas pour Klein lui-même, qui ne figure pas dans notre catalogue de 210 modèles et que nous ne servons pas. Pour ce pipeline, les poids et l’API du fournisseur sont les routes ; l’argument de routage compte pour les modèles que vous placez autour.

Qu’est-ce qui changerait la réponse ?

Une ablation publiée. Personne n'a publié de comparaison côte à côte de Klein avec et sans Pup sur les mêmes prompts, évaluée par quelqu'un d'autre que le laboratoire, et c'est ce seul tableau manquant qui fait que la question reste une affaire d'appréciation. Tant qu'il n'existe pas, la position défendable est la moins glamour : l'upsampler fait partie du système tel que conçu, la promesse des 8 Go ne le couvre pas, et le seul type de charge de travail où l'on pourrait raisonnablement déroger au réglage par défaut est celui où ce modèle est le plus fort.