rekuen/flux-3-image-klein-pup-GGUF overview
FLUX 3 Image Klein Prompt Upsampler — GGUF GGUF build of black forest labs/flux 3 image klein pup https://huggingface.co/black forest labs/flux 3 image klein p…
Runs locally from ~875.6 MB disk (4 GB VRAM class GPUs with llama.cpp / guIDE).
Repository Files & Downloads
Model Details
| Model ID | rekuen/flux-3-image-klein-pup-GGUF |
|---|---|
| Author | rekuen |
| Pipeline | image-text-to-text |
| License | apache-2.0 |
| Base model | black-forest-labs/flux-3-image-klein-pup |
| Last modified | 2026-10-15T16:53:23.000Z |
Model README
---
license: apache-2.0
base_model:
- black-forest-labs/flux-3-image-klein-pup
base_model_relation: quantized
language:
- en
tags:
- gguf
- llama.cpp
- prompt-upsampling
- prompt-rewriting
- text-to-image
- image-editing
- flux
- flux-3
pipeline_tag: image-text-to-text
---
FLUX 3 Image Klein Prompt Upsampler — GGUF
GGUF build of black-forest-labs/flux-3-image-klein-pup,
the 9B vision-language model that expands a short image request into the detailed prompt
FLUX 3 Image Klein works best with. It is a
fine-tune of Qwen3.5-9B. Everything about what the model does, how it
was trained and its limitations is on the original model card; this repository only changes the file format,
for llama.cpp and the tools built on it.
Files
| File | Content | Size | SHA-256 |
|---|---|---|---|
| flux-3-image-klein-pup-Q4_K_M.gguf | the language model, Q4_K_M | 5.63 GB | c20bcdb1282d1a750199eea1ac8f23860d999e151c748c8ba44556e57761783f |
| mmproj-flux-3-image-klein-pup-F16.gguf | the vision tower and projector, F16 (only needed for edits with reference images) | 0.92 GB | 2f92e35102fce9d976e78d3e6da0122de2911052d9e09413a652316f0431db36 |
| system_prompts.json | the four system prompts, unchanged from the original repository: t2i, i2i, t2i_bbox, i2i_bbox | 13 kB | b5da3ed8bc04ab59dbdb747930f7dbff847e868903fed8028f85ee1a4ac82fb4 |
The chat template is embedded in the language-model GGUF.
How it was made
- Converted from the original
model.safetensors(bfloat16) with llama.cpp'sconvert_hf_to_gguf.pyat commit
4df29be: the language
model to a bfloat16 GGUF (architecture qwen35), the vision tower with --mmproj to F16.
- Converted with
--no-mtp. The originalconfig.jsondeclares one multi-token-prediction layer
(mtp_num_hidden_layers: 1), but the checkpoint ships no MTP weights; without the flag the GGUF declares 33
blocks and llama.cpp refuses to load it (tensor 'blk.32.attn_norm.weight' not found).
- Quantized from that bfloat16 GGUF to Q4_K_M with llama.cpp's quantizer, no importance matrix.
Requires a llama.cpp build with Qwen3.5 (qwen35) support.
Usage
Use the original card's settings: the system prompt that matches the task, the chat template rendered with
enable_thinking=False, greedy decoding with top_p 0.95 and top_k 20, presence penalty 1.5 for
text-to-image and 0 for edits, and up to 3584 new tokens.
Text-to-image (llama-cpp-python)
The chat template is rendered with enable_thinking=False and sent as a plain completion, because
create_chat_completion does not pass that flag to the template:
import json
from huggingface_hub import hf_hub_download
from llama_cpp import Llama
from llama_cpp.llama_chat_format import Jinja2ChatFormatter
repo = "rekuen/flux-3-image-klein-pup-GGUF"
llm = Llama(model_path=hf_hub_download(repo, "flux-3-image-klein-pup-Q4_K_M.gguf"),
n_gpu_layers=-1, n_ctx=8192, flash_attn=True)
prompts = json.load(open(hf_hub_download(repo, "system_prompts.json")))
fmt = Jinja2ChatFormatter(template=llm.metadata["tokenizer.chat_template"],
eos_token=llm.detokenize([llm.token_eos()], special=True).decode(),
bos_token="")
rendered = fmt(messages=[{"role": "system", "content": prompts["t2i"]},
{"role": "user", "content": "A man walking with his dog, afternoon sun"}],
enable_thinking=False)
out = llm.create_completion(rendered.prompt, temperature=0.0, top_p=0.95, top_k=20, min_p=0.0,
repeat_penalty=1.0, presence_penalty=1.5, max_tokens=3584,
stop=["<|im_end|>", "<|endoftext|>"])
print(out["choices"][0]["text"].strip())
Edits with reference images
Load mmproj-flux-3-image-klein-pup-F16.gguf as the multimodal projector (for example --mmproj in
llama-mtmd-cli / llama-server), use prompts["i2i"], put the reference images first in the user message and
then this text, three lines:
Reference images follow in order (the first image, the second image, ...).
User request: put a red bandana around the dog's neck
Output the caption.
The original inference code resizes each reference before the model sees it (at most 1 MP for one reference,
724×724 for two, 512×512 for three or more, sides on a multiple of 32, flattened onto white and re-encoded as
JPEG); see flux3/pup.py in
black-forest-labs/flux-3-image-klein.
License
The weights are released under the Apache License 2.0, as the original model is. The original model is
by Black Forest Labs and derived from Qwen3.5-9B by the Qwen team at Alibaba Cloud, released under the Apache
License 2.0. system_prompts.json is copied unchanged from
black-forest-labs/flux-3-image-klein-pup.
This is an unofficial conversion, not affiliated with or endorsed by Black Forest Labs or the Qwen team. Use of
the Black Forest Labs and FLUX trademarks is subject to their owners' policies.
Run rekuen/flux-3-image-klein-pup-GGUF with guIDE
Download guIDE — the AI-native code editor with local LLM inference and 69 built-in tools.
Source: Hugging Face · Compare models