Um cartão de título gerado exibindo "FLUX 3 Image Klein vs FLUX 3 Image Klein Pup", com o subtítulo "um gera a imagem, o outro escreve o prompt". Um cartão à esquerda exibe "Klein: gerador de 5,6B, 5,6 GB FP8, INT8 a partir de 8 GB", um cartão à direita exibe "Pup: fine-tune do Qwen3.5 de 9B, 18,8 GB BF16, Apache 2.0", e um rodapé exibe "Ambos os números conforme os model cards do Hugging Face". O logotipo da OrcaRouter fica no canto inferior direito.
Guides & Insights

FLUX 3 Image Klein vs FLUX 3 Image Klein Pup: Um modelo contra seu próprio gerador de prompts

Autor

Magnus Corvin

Data de publicação

Modelos mais recentes · 20Ver todos os modelos →
Benchmarks: Artificial Analysis · atualizado diariamente
Voltar para todas as publicações

O nome no repositório convida a uma comparação que não existe. FLUX 3 Image Klein e FLUX 3 Image Klein Pup parecem dois modelos de uma família, como todas as outras páginas "vs" deste blog que colocam frente a frente dois geradores com pontos fortes diferentes. Não são isso. FLUX 3 Image Klein é o modelo de imagem de 5,6B lançado em 15 de outubro de 2026. FLUX 3 Image Klein Pup — intitulado "Prompt Upsampler" em sua ficha de modelo — é um modelo de linguagem de 9B cuja única função é reescrever seu prompt curto na legenda longa e detalhada que o modelo de imagem foi treinado para receber.

Então, a verdadeira questão não é qual deles é melhor. É se o segundo é opcional. A Black Forest Labs diz que não: o model card afirma claramente que o Klein "não foi feito para funcionar sem um prompt upsampler na frente dele", e que um prompt curto enviado como digitado gera uma saída genérica. Essa afirmação é o que vale a pena examinar, porque aceitá-la muda seu orçamento de memória, sua latência, suas obrigações de licença e — em um caso específico — a precisão das suas edições.

O que cada um dos dois realmente é

A separação é mais limpa do que a nomenclatura sugere. Um dos modelos tem visão, o outro não, e apenas um deles chega a tocar em um pixel.

• Função — Klein gera e edita imagens; Pup emite texto e nunca renderiza nada

• Parâmetros — 5,6B para o gerador, 9B para o upsampler, então o auxiliar é o modelo maior

• Linhagem — Klein é um modelo de imagem da linhagem FLUX 3; Pup é um ajuste fino completo do Qwen/Qwen3.5-9B, ele próprio derivado do Qwen3.5-9B-Base

Pesos em disco — 11,2 GB em BF16 e 5,6 GB em FP8 para Klein; 18,8 GB para os safetensors do Pup em BF16

• Licença — FLUX Kommunity License para Klein, com seu limite de receita de US$ 5 milhões; Apache 2.0 para Pup

• Entradas — Klein recebe texto, imagens de referência e caixas delimitadoras; Pup recebe a mesma solicitação mais até 10 imagens de referência e retorna um prompt

• Saída — pixels versus texto em inglês

Essa última linha é a que as pessoas deixam passar. O idioma de saída do Pup é sempre inglês, mesmo quando a solicitação de entrada está em outro idioma. Se o seu pipeline registra prompts para revisão, o prompt que o seu revisor vê não é o prompt que o seu usuário digitou.

O número de 8 GB não sobrevive ao pipeline padrão

A principal alegação de hardware para o Klein é que a versão INT8 roda em uma placa RTX com apenas 8 GB de VRAM. Essa alegação diz respeito ao gerador e, nos seus próprios termos, parece se sustentar — o checkpoint quantizado é feito para isso, e os tempos publicados junto com ele foram medidos pela NVIDIA.

Agora adicione o pipeline padrão. Os pesos do Pup ocupam 18,8 GB em BF16 antes de qualquer sobrecarga de execução. Não dá para encaixar 18,8 GB de pesos em 8 GB de VRAM. Os dois números descrevem duas coisas diferentes, e o material de lançamento os coloca próximos o bastante para que um leitor conclua, com razoabilidade, que tudo isso roda em uma placa antiga. Não roda, não na configuração que a BFL diz que o modelo espera.

Existem três saídas honestas, e elas custam coisas diferentes:

• Quantize o upsampler — existem builds GGUF da comunidade para o Pup nas variantes Q8_0, Q5_K_M, IQ4_XS e IQ3_S com um projetor de visão separado, o que reduz substancialmente o auxiliar a algum custo para a qualidade do prompt

• Execute o upsampler em outro lugar — ele é um modelo de texto, portanto não precisa compartilhar uma GPU com o gerador, apenas um salto de rede

• Pule com --no-pup — gratuito, imediato e a opção que a BFL desaconselha

A aritmética de memória é a coisa mais útil de se entender sobre esta combinação. Ela também explica um tipo de reclamação: alguém relata que o Klein está lento ou não cabe, e o que na verdade está relatando é que executou o pipeline documentado em hardware dimensionado para a versão reduzida.

O que o Pup faz com um prompt

Ele se expande. Uma solicitação como “um homem caminhando com seu cachorro, sol da tarde” se transforma em uma legenda de cena completa que abrange sujeito, cenário, iluminação, câmera e composição — a ficha do modelo descreve a saída como uma legenda longa de aproximadamente duzentas palavras em sua configuração média. O modelo de imagem então usa essa legenda como condição, em vez da sua frase.

Esta é uma capacidade real, não um truque. Modelos de imagem do tipo difusão são sensíveis à especificidade do prompt, e um prompt de cinco palavras deixa quase todas as decisões composicionais a cargo dos priors do modelo. Um upsampler toma essas decisões de forma explícita e consistente, e é por isso que a saída do pipeline padrão parece mais deliberada do que a saída do mesmo checkpoint alimentado com a frase bruta.

É também uma perda de controle, e a perda é silenciosa. Sua frase não é anotada — ela é substituída. Se o upsampler decidir que a luz da tarde é hora dourada e que o cachorro é um border collie, o gerador não tem como saber que você não queria dizer isso. Para trabalho exploratório, isso é um recurso. Para uma lista de planos, é uma variável que você não pediu.

Quatro modos, e por que o modo importa mais do que o prompt

O Pup não é um único modelo com um único comportamento. Ele seleciona um prompt de sistema com base na tarefa, e há quatro: texto para imagem, imagem para imagem, texto para imagem com caixas delimitadoras e imagem para imagem com caixas delimitadoras. O modo errado produz um prompt bem escrito para a tarefa errada, o que é uma falha que parece um problema de qualidade do modelo e não é.

As configurações de amostragem também variam conforme o modo, e a diferença não é cosmética. A decodificação é greedy com temperatura zero, máximo de 3.584 novos tokens e raciocínio desativado. A penalidade de presença é 1,5 para texto para imagem e 0 para edições. Esse zero é intencional: uma penalidade de repetição incentiva o modelo a introduzir novo material, que é exatamente o que você não quer quando a tarefa é reafirmar fielmente uma instrução de edição. As imagens de referência também são redimensionadas de forma diferente dependendo de quantas você fornece — cerca de 1 megapixel para uma, 724² para duas, 512² para três ou mais — então um trabalho com dez referências está condicionado a imagens muito menores do que um trabalho com uma referência.

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.

A licença está dividida ao meio.

Esta é a parte que quase não recebe atenção e provavelmente deveria. As duas metades do pipeline estão sob licenças diferentes. Klein está sob a FLUX Kommunity License: uso comercial gratuito para receita anual inferior a US$ 5 milhões, licenciamento pago acima disso. Pup é Apache 2.0, sem nenhuma condição de receita.

Portanto, uma empresa acima do limiar pode usar o upsampler de prompt livremente e ainda precisa de uma licença para usar o gerador que ele alimenta. E uma empresa abaixo do limiar que deseja fazer fine-tuning no lado do prompt tem muito mais liberdade do que uma que deseja fazer fine-tuning no lado da imagem. Se você planeja lançar um produto, leia as duas licenças separadamente em vez de tratar o Klein stack como uma coisa só. A metade permissiva é a metade fácil de passar despercebida.

O que realmente muda quando você o desativa

Desativar o Pup é uma única flag, e os efeitos são assimétricos entre as tarefas.

• Texto para imagem — a maior regressão. Prompts curtos tornam-se genéricos, que é exatamente a falha sobre a qual a BFL alerta, e a diferença aumenta quanto mais curto for o seu prompt

• Multi-referência — o upsampler é o que transforma “coloque essas três pessoas em uma sala” em uma descrição que considera as três referências; sem ele, a aderência às referências fica visivelmente mais frouxa

• Layout de caixa delimitadora — o modo existe para converter a intenção espacial em uma legenda que a preserve, então removê-lo devolve o ônus à sua formulação

• Edição precisa — o caso menos claro e aquele em que desativá-la pode ajudar

Esse último item é o contraintuitivo e vem do mesmo lugar que a penalidade de presença zero. Uma instrução de edição geralmente é restrita: alterar este objeto, mover este elemento, remover esta coisa. A função do upsampler é expandir, então ele expande a cena ao redor da sua instrução, bem como a própria instrução. Quando a edição é genuinamente local, essa expansão ao redor é, na melhor das hipóteses, ruído. Quando contradiz algo no quadro, é pior que ruído.

Nossa própria experiência executando o Klein em edições localizadas — alterando um objeto, movendo um elemento para uma região delimitada, mantendo o restante do quadro intacto — é que o modelo é mais convincente exatamente nesse modo restrito. O que torna a questão do upsampler mais aguda, e não mais amena: a tarefa em que o gerador é mais forte é também aquela em que a expansão do auxiliar é menos bem-vinda. Teste ambas as configurações com seus próprios prompts de edição antes de decidir. Este é um caso em que o conselho genérico do fornecedor e sua carga de trabalho específica podem legitimamente divergir.

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.

A decisão, na prática

Se você está chamando a API do fornecedor em vez de baixar qualquer coisa, a maior parte disso é irrelevante. O endpoint hospedado aplica seu próprio upsampling de prompt e restauração de pixels no lado do servidor, então você já está obtendo o comportamento de prompt expandido, quer pense nisso ou não. A escolha só se torna real quando você baixa os pesos.

Quando você fizer isso, a divisão é mais ou menos esta. Mantenha o Pup se seus prompts forem curtos, seu trabalho for exploratório ou você estiver gerando em vez de editar. Descarte-o, ou use uma build quantizada, se sua placa for pequena, suas edições forem restritas e literais, ou seus prompts já forem longos e específicos o suficiente para que a expansão majoritariamente acrescente invenção. Quantize-o se quiser os dois e puder aceitar alguma perda na qualidade dos prompts em troca de encaixar todo o pipeline em um único dispositivo.

Uma observação prática sobre tentar isso de forma barata: as duas metades falham independentemente, e uma camada de roteamento é a forma usual de evitar apostar um caminho de produção em um único endpoint. O OrcaRouter executa uma API compatível com OpenAI sobre mais de 200 modelos com 0% de markup — o preço de tabela do provedor repassado sem alteração — e failover automático entre provedores, para que um endpoint degradado não se torne um job com falha. Isso não ajuda com o próprio Klein, que não está no nosso catálogo de 210 modelos e não é algo que servimos. Para este pipeline, os pesos e a API do fornecedor são as rotas; o argumento de roteamento importa para os modelos que você coloca ao redor dele.

O que mudaria a resposta

Uma ablação publicada. Ninguém divulgou uma comparação lado a lado do Klein com e sem o Pup nos mesmos prompts, avaliada por alguém fora do laboratório, e é justamente essa tabela ausente que mantém isso como uma questão de julgamento. Enquanto ela não existir, a posição defensável é a pouco glamourosa: o upsampler faz parte do sistema como projetado, a alegação de 8 GB não o abrange, e a única carga de trabalho em que você poderia razoavelmente substituir o padrão é aquela em que este modelo é mais forte.