Instructions to use pottokao/Qwen-Image-2.1-Text-Encoder-Heretic-GGUF with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- llama.cpp
How to use pottokao/Qwen-Image-2.1-Text-Encoder-Heretic-GGUF with llama.cpp:
Install (macOS, Linux)
curl -LsSf https://llama.app/install.sh | sh # Start a local OpenAI-compatible server with a web UI: llama serve -hf pottokao/Qwen-Image-2.1-Text-Encoder-Heretic-GGUF:Q4_K_M # Run inference directly in the terminal: llama cli -hf pottokao/Qwen-Image-2.1-Text-Encoder-Heretic-GGUF:Q4_K_M
Install from WinGet (Windows)
winget install llama.cpp # Start a local OpenAI-compatible server with a web UI: llama serve -hf pottokao/Qwen-Image-2.1-Text-Encoder-Heretic-GGUF:Q4_K_M # Run inference directly in the terminal: llama cli -hf pottokao/Qwen-Image-2.1-Text-Encoder-Heretic-GGUF:Q4_K_M
Use pre-built binary
# Download pre-built binary from: # https://github.com/ggerganov/llama.cpp/releases # Start a local OpenAI-compatible server with a web UI: ./llama-server -hf pottokao/Qwen-Image-2.1-Text-Encoder-Heretic-GGUF:Q4_K_M # Run inference directly in the terminal: ./llama-cli -hf pottokao/Qwen-Image-2.1-Text-Encoder-Heretic-GGUF:Q4_K_M
Build from source code
git clone https://github.com/ggerganov/llama.cpp.git cd llama.cpp cmake -B build cmake --build build -j --target llama-server llama-cli # Start a local OpenAI-compatible server with a web UI: ./build/bin/llama-server -hf pottokao/Qwen-Image-2.1-Text-Encoder-Heretic-GGUF:Q4_K_M # Run inference directly in the terminal: ./build/bin/llama-cli -hf pottokao/Qwen-Image-2.1-Text-Encoder-Heretic-GGUF:Q4_K_M
Use Docker
docker model run hf.co/pottokao/Qwen-Image-2.1-Text-Encoder-Heretic-GGUF:Q4_K_M
- LM Studio
- Jan
- Ollama
How to use pottokao/Qwen-Image-2.1-Text-Encoder-Heretic-GGUF with Ollama:
ollama run hf.co/pottokao/Qwen-Image-2.1-Text-Encoder-Heretic-GGUF:Q4_K_M
- Unsloth Desktop
- Pi
How to use pottokao/Qwen-Image-2.1-Text-Encoder-Heretic-GGUF with Pi:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf pottokao/Qwen-Image-2.1-Text-Encoder-Heretic-GGUF:Q4_K_M
Configure the model in Pi
# Install Pi: npm install -g @earendil-works/pi-coding-agent # Add to ~/.pi/agent/models.json: { "providers": { "llama-cpp": { "baseUrl": "http://localhost:8080/v1", "api": "openai-completions", "apiKey": "none", "models": [ { "id": "pottokao/Qwen-Image-2.1-Text-Encoder-Heretic-GGUF:Q4_K_M" } ] } } }Run Pi
# Start Pi in your project directory: pi
- Docker Model Runner
How to use pottokao/Qwen-Image-2.1-Text-Encoder-Heretic-GGUF with Docker Model Runner:
docker model run hf.co/pottokao/Qwen-Image-2.1-Text-Encoder-Heretic-GGUF:Q4_K_M
- Lemonade
How to use pottokao/Qwen-Image-2.1-Text-Encoder-Heretic-GGUF with Lemonade:
Pull the model
# Download Lemonade from https://lemonade-server.ai/ lemonade pull pottokao/Qwen-Image-2.1-Text-Encoder-Heretic-GGUF:Q4_K_M
Run and chat with the model
lemonade run user.Qwen-Image-2.1-Text-Encoder-Heretic-GGUF-Q4_K_M
List all available models
lemonade list
- Hermes Agent
How to use pottokao/Qwen-Image-2.1-Text-Encoder-Heretic-GGUF with Hermes Agent:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf pottokao/Qwen-Image-2.1-Text-Encoder-Heretic-GGUF:Q4_K_M
Configure Hermes
# Install Hermes: curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash hermes setup # Point Hermes at the local server: hermes config set model.provider custom hermes config set model.base_url http://127.0.0.1:8080/v1 hermes config set model.default pottokao/Qwen-Image-2.1-Text-Encoder-Heretic-GGUF:Q4_K_M
Run Hermes
hermes
- Atomic Chat
- OpenClaw
How to use pottokao/Qwen-Image-2.1-Text-Encoder-Heretic-GGUF with OpenClaw:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf pottokao/Qwen-Image-2.1-Text-Encoder-Heretic-GGUF:Q4_K_M
Configure OpenClaw
# Install OpenClaw: npm install -g openclaw@latest # Register the local server and set it as the default model: openclaw onboard --non-interactive --mode local \ --auth-choice custom-api-key \ --custom-base-url http://127.0.0.1:8080/v1 \ --custom-model-id "pottokao/Qwen-Image-2.1-Text-Encoder-Heretic-GGUF:Q4_K_M" \ --custom-provider-id llama-cpp \ --custom-compatibility openai \ --custom-text-input \ --accept-risk \ --skip-health
Run OpenClaw
openclaw agent --local --agent main --message "Hello from Hugging Face"
- Qwen-Image-2.1 Text Encoder (Heretic) โ GGUF ยท FP8 ยท bf16
- Made with a simple node
- ๐ฅ Which file should I use?
- โ๏ธ Recommended sampler settings
- ๐ฑ All-GGUF Qwen-Image-2.1
- ๐ผ๏ธ Showcase
- GGUF in ComfyUI โ 3 steps
- Files in this repo
- Ablation (inherited from the bf16 source)
- Format details
- ๐จ Also for Qwen-Image-2.1: the prompt rewriters (Heretic)
- What the patch handles
- Made with a simple node
Qwen-Image-2.1 Text Encoder (Heretic) โ GGUF ยท FP8 ยท bf16
Got
got input of size [1, 512, 12288]with the GGUF? It's fixed. The GGUF files were fine all along โ ComfyUI-GGUF just didn't load the Qwen3-VL vision tower. Install the add-on node ComfyUI-GGUF-Qwen3VL-TE, make sure themmprojfile sits next to the GGUF, restart ComfyUI. No need to re-download anything. The same patch also fixesUnknown model architecture!for Qwen-Image-2.1 DiT GGUFs โ so the whole pipeline can run on GGUF.
Made with a simple node
The sample / showcase images in this repo were generated with the technique behind ComfyUI-QwenImage-PhotoStyles โ a small ComfyUI node (17 photographic styles; one short prompt becomes a full styled prompt via the PE-T2I rewriter). If you're interested in how the images are made, the node and its recipe are there.
๐ฅ Which file should I use?
| Your setup | File(s) | Size | Loader |
|---|---|---|---|
| Smallest (GGUF) | qwen3vl_8b_heretic-Q4_K_M.gguf + mmproj-qwen3vl_8b_heretic-f16.gguf |
5.0 + 1.2 GB | CLIPLoaderGGUF + add-on node |
| NVIDIA GPU, no extra nodes | qwen3vl_8b_fp8_heretic.safetensors |
9.3 GB | stock CLIPLoader |
| Mac / non-CUDA, no extra nodes | qwen3vl_8b_bf16_heretic.safetensors |
17.5 GB | stock CLIPLoader |
All three are in this repo. Every loader uses type qwen_image and feeds TextEncodeQwenImage21.
โ๏ธ Recommended sampler settings
Qwen-Image-2.1 is a full (non-distilled) model. Use 25 steps โ more steps don't make text sharper and start to burn the highlights.
- No text in the image: plain
KSampler, cfg 1.0 (fastest, softest look; the negative prompt is ignored at cfg 1). - Text in the image (signs, labels, posters): switch cfg partway through โ the first ยฝโโ of the steps at cfg 1 lock in composition and materials, the rest at cfg 3 with a negative prompt redraws the lettering. You get cfg 1's look and cfg 3's readable text, in one pass with one seed.
In ComfyUI that's two chained KSamplerAdvanced nodes (same model, seed and steps):
add_noise |
steps |
cfg |
start_at_step |
end_at_step |
return_with_leftover_noise |
|
|---|---|---|---|---|---|---|
| 1st | enable | 25 | 1.0 | 0 | 12โ17 | enable |
| 2nd | disable | 25 | 3.0 | 12โ17 | 25 | disable |
Split later (17) keeps more of the cfg 1 look; split earlier (12) gives crisper text.
Example negative prompt: oversaturated, overexposed, gibberish text.
๐ฑ All-GGUF Qwen-Image-2.1
| Part | Where | Loader |
|---|---|---|
| Prompt rewriter (optional) | PE-T2I Heretic GGUF | llama.cpp / LLM node |
| Text encoder | this repo โ Q4_K_M + mmproj | CLIPLoaderGGUF + patch node |
| DiT | Qwen-Image-2.1 DiT GGUF โ Q8_0 / Q6_K / Q4_K_M | UnetLoaderGGUF โ stock, no patch |
| VAE | official qwen_image_2.1_vae_bf16.safetensors |
VAELoader |
๐ผ๏ธ Showcase
This is what Q4_K_M across the board looks like โ every image above was made with:
| Part | File |
|---|---|
| PE-T2I rewriter | pe_t2i_heretic-Q4_K_M.gguf |
| Text encoder | qwen3vl_8b_heretic-Q4_K_M.gguf + f16 mmproj |
| DiT | qwen_image_2.1-Q4_K_M.gguf |
| VAE | qwen_image_2.1_vae_bf16.safetensors (official) |
AI-generated. Style homage only โ not affiliated with or endorsed by the photographers.
GGUF in ComfyUI โ 3 steps
Install two custom nodes into
ComfyUI/custom_nodes/:Node What it does city96/ComfyUI-GGUF the GGUF loaders ( CLIPLoaderGGUF,UnetLoaderGGUF) โ also in ComfyUI Managerpottokao-dotcom/ComfyUI-GGUF-Qwen3VL-TE temporary patch for Qwen-Image-2.1 until ComfyUI-GGUF supports it โ manual install only cd ComfyUI/custom_nodes git clone https://github.com/pottokao-dotcom/ComfyUI-GGUF-Qwen3VL-TENo git? On the GitHub page click Code โ Download ZIP, unzip it into
ComfyUI/custom_nodes/. New to custom nodes: official guide.The patch fixes both errors: the text encoder's
[1, 512, 12288], andUnknown model architecture!when a Qwen-Image-2.1 DiT GGUF has no architecture metadata (e.g. unsloth / leejet builds).Put both files in
ComfyUI/models/text_encoders/qwen3vl_8b_heretic-Q4_K_M.ggufmmproj-qwen3vl_8b_heretic-f16.ggufโ the vision tower (required โ also used for image editing)
Don't rename either file โ the vision tower is matched by name. If it's missing, the add-on stops with a
Missing vision towererror telling you which file to download.Restart ComfyUI, then
CLIPLoaderGGUFโ typeqwen_imageโTextEncodeQwenImage21โ the rest of the official workflow. The console should show[GGUF-Qwen3VL-TE] added 351 Qwen3-VL vision tensors from mmproj.
Verified 2026-09-23 on ComfyUI 0.36.0 + ComfyUI-GGUF 6ea2651 (NVIDIA GPU): text-to-image and
reference-image editing both work and match the bf16 encoder's output for the same seed up to Q4
quantization noise. Not tested on a Mac.
What the patch changes, and why: see the bottom of this page.
Files in this repo
| File | Size | Use for |
|---|---|---|
qwen3vl_8b_heretic-Q4_K_M.gguf |
5.03 GB | ComfyUI via CLIPLoaderGGUF + add-on ยท llama.cpp |
qwen3vl_8b_heretic-Q6_K.gguf |
6.88 GB | higher quality โ same loader (CLIPLoaderGGUF + add-on + mmproj) |
qwen3vl_8b_heretic-Q8_0.gguf |
8.71 GB | near-lossless โ same loader (for spare VRAM) |
mmproj-qwen3vl_8b_heretic-f16.gguf |
1.16 GB | vision tower โ required next to the GGUF |
qwen3vl_8b_fp8_heretic.safetensors |
9.34 GB | ComfyUI via stock CLIPLoader (NVIDIA GPU) |
qwen3vl_8b_bf16_heretic.safetensors |
17.53 GB | ComfyUI via stock CLIPLoader (any device, incl. Mac) โ full precision |
Other formats of the same model
| Repo | Format | Size | Note |
|---|---|---|---|
โฆ-Heretic |
bf16 | 17.5 GB | HF transformers shards (+ the same bf16 single file) |
โฆ-int8-convrot |
INT8 convrot | 9.35 GB | official template default format, CUDA |
โฆ-W4A8 |
W4A8 | 6.31 GB | CUDA |
โฆ-NVFP4 |
NVFP4 | 6.31 GB | Blackwell GPUs |
Ablation (inherited from the bf16 source)
| Refusals | KL divergence | |
|---|---|---|
| Stock Qwen-Image-2.1 text encoder | 100/100 | 0 (by definition) |
| This family | 5/100 | 0.0220 |
Produced with Heretic directional ablation
(o_proj + down_proj), 200 trials / 60 startup trials, knee point of the Pareto
front. Independently re-checked on the bf16 source: 0/20 refusals, 4/4 benign
questions answered correctly. Full methodology in the
bf16 repo.
Format details
GGUF: Q4_K_M language model, vision tower as a separate f16 mmproj.
FP8: self-quantized float8_e4m3fn (Comfy-Org doesn't ship an FP8 encoder):
| Layers | Count | Precision |
|---|---|---|
| FFN + attention + embed/lm_head (all 2-D weights) | 254 | FP8 e4m3fn |
| Vision tower | 351 tensors | bf16 โ untouched |
| norms / biases | โ | bf16 |
Remapped to the ComfyUI key layout (model.layers.โฆ, no language_model. prefix).
Requires a ComfyUI build with QwenImage21 support (0.36.0 or newer).
๐จ Also for Qwen-Image-2.1: the prompt rewriters (Heretic)
Qwen-Image-2.1 ships two prompt rewriters โ small LLMs that expand a short request into the detailed prompt the model was trained on. Both are available refusal-ablated, and both have GGUF builds that run anywhere llama.cpp runs (Mac included):
| Rewriter | What it does | Builds |
|---|---|---|
| PE-T2I (text-to-image) | one line in any language โ detailed English prompt + aspect ratio | GGUF ยท NVFP4 ยท bf16 |
| PE-I2I (image editing) | vague edit instruction + input image(s) โ precise editing prompt | GGUF + mmproj |
A short request goes in; one JSON line comes out (real output of the PE-T2I GGUF, trimmed):
in: ้จๅค็ๆฑไบฌๅฐๅทท๏ผไธ้ปๆตๆตช็๏ผ็ฒ็ฒ้ป็ฝ่กๆ้ขจๆ ผ
out: {"rewritten_prompt": "A vertical nighttime street photograph in a gritty grainy black-and-white street style shows a
narrow, rain-soaked urban alley with a stray dog standing in the lower foreground. The scene is
composed with strong depth: dark building walls and utility poles frame the left and right sides,
while the wet pavement stretches into a softly blurred background. โฆ (2,137 characters)",
"wh_ratio": "2:3"}
Showcase โ generated with the NVFP4 builds through the full pipeline (PE-T2I rewriter โ Qwen-Image-2.1 text encoder โ DiT), each from a one-line prompt, one seed per image, no retouching. Also shown in the PE-T2I NVFP4 repo.
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
What the patch handles
ComfyUI-GGUF-Qwen3VL-TE changes nothing on disk โ it only adjusts how ComfyUI-GGUF loads Qwen-Image-2.1 files, in memory, at load time.
1. Text encoder โ [1, 512, 12288]
RuntimeError: Given normalized_shape=[4096], expected input with shape [*, 4096],
but got input of size [1, 512, 12288]
ComfyUI-GGUF loads the mmproj vision tower only for qwen2vl, not qwen3vl. Without it, ComfyUI
doesn't recognise the encoder as Qwen3-VL, builds the wrong model, and gets 12288-wide hidden states
instead of 4096. The patch loads the matching mmproj-*.gguf from the same folder and renames its
tensors to ComfyUI's Qwen3-VL layout (model.visual.*). The vision tower is then really used โ
reference images for editing go through it.
2. DiT โ Unknown model architecture!
ValueError: This model is not currently supported - (Unknown model architecture!)
A DiT GGUF without general.architecture metadata (stable-diffusion.cpp convention, e.g. unsloth /
leejet) is identified by its tensor names, and ComfyUI-GGUF's list has no Qwen-Image entry. The patch
recognises Qwen-Image-2.1 by img_in, txt_in.in_layer and txt_in.text_norm and loads it as
qwen_image. DiT GGUFs that already carry the metadata (e.g. Abiray's) are unaffected.
Once ComfyUI-GGUF handles either case itself, that part of the patch detects it and does nothing.
Not affiliated with, or endorsed by, Alibaba / Qwen. Community derivative (refusal-ablated) of
Qwen/Qwen3-VL-8B-Instructโ the model Qwen-Image-2.1 uses, unmodified, as its text encoder. Qwen releases that model under Apache-2.0, so this derivative is redistributed under Apache-2.0 (seeLICENSEandNOTICE).
- Downloads last month
- 126,393
4-bit
6-bit
8-bit
Model tree for pottokao/Qwen-Image-2.1-Text-Encoder-Heretic-GGUF
Base model
Qwen/Qwen3-VL-8B-Instruct













































