Cloud image generators refuse a surprising number of ordinary creative prompts. A horror book cover, a battlefield scene for a fantasy game, a historical war illustration or a dark album artwork can all trip a filter. Running an open model in ComfyUI on your own PC removes the cloud filter, but many 2026 models still have a quieter gatekeeper: the text encoder. Qwen-Image 2.1, FLUX 3 Klein, MOSS-Image and Z-Image all read your prompt with a chat LLM, and those LLMs were trained to refuse. This guide explains where refusals actually come from in local image generation, which open models give you the most creative freedom, and how to swap in the new Heretic and abliterated text encoders, with exact repos, file names, ComfyUI nodes and folder paths. Everything is current as of November 2026.
- Local ComfyUI has no output filter. Open models never run a cloud-style safety checker. What limits them is the training data and, for new models, the text encoder.
- Qwen-Image 2.1: swap in
pottokao/Qwen-Image-2.1-Text-Encoder-Heretic-GGUF(Q4_K_M 5.03 GB, refusals 100/100 to 5/100) with ComfyUI-GGUF and the Qwen3VL-TE add-on. - FLUX 3 Klein:
pottokao/FLUX.3-Klein-Text-Encoder-Heretic-DHQ-GGUF(Q4_K_M 2.66 GB, refusals 97/100 to 2/100). - Z-Image and FLUX.2 klein 4B:
DreamFast/qwen3-4b-heretic(FP8 4.2 GB), loads in the stock CLIPLoader. - An uncensored encoder does not teach the model new things. It only stops the encoder from weakening prompts. For a missing style or concept you still need a LoRA.
Where Refusals Come From in Local Image AI
A ComfyUI image workflow has three main parts: a text encoder that turns your prompt into numbers (conditioning), a diffusion model that draws from that conditioning, and a VAE that turns the result into pixels. Online services add a fourth part, a safety filter that checks your prompt and the finished image. Locally, that fourth part simply does not exist. So why do local users still talk about “censored” models?
- Training data. If the diffusion model never saw a concept, it cannot draw it well. Most 2026 base models were trained on filtered datasets, so some subjects come out vague or wrong. Nothing in the text encoder fixes that.
- The text encoder. Older models used CLIP or T5, which do not refuse anything. New models use full chat LLMs: Qwen3-VL 8B for Qwen-Image 2.1 and Ideogram 4, Qwen3-VL 4B for FLUX 3 Klein, Qwen3 4B for Z-Image and FLUX.2 klein 4B, and Qwen3.5 9B for MOSS-Image. These LLMs carry the same “refusal direction” as the chat models they come from. For a prompt about, say, a gritty battle scene, the encoder’s internal state can shift towards “decline”, and the image gets a softer, vaguer version of what you asked for. When the encoder also rewrites or enhances prompts (Qwen-Image 2.1 and FLUX 3 Klein can), it may water the prompt down or refuse outright.
- Prompt enhancers and nodes. Some custom nodes send your prompt to a cloud LLM for expansion. That call can be filtered even though the image is made locally.
Heretic and abliterated encoders tackle point 2. They are the image-model equivalent of the uncensored local LLMs we covered earlier: the refusal direction is removed from the encoder’s weights, so the conditioning reflects your prompt more faithfully.
The Best Open Models for Creative Freedom
All of these run locally in ComfyUI with no filter. The “Encoder” column shows what reads your prompt, which tells you whether an uncensored encoder is worth it.
| Model | Size | Text encoder | Heretic encoder available | Licence | Practical VRAM |
|---|---|---|---|---|---|
| Qwen-Image 2.1 | 7B | Qwen3-VL 8B | Yes (pottokao, 93K downloads) | Qwen Research (non-commercial) | 16 GB (INT8) |
| FLUX 3 Image Klein | 5.6B | Qwen3-VL 4B | Yes (DHQ GGUF) | FLUX Kommunity | 8 GB (INT8) |
| Z-Image Turbo / Z-Image | 6B | Qwen3 4B | Yes (several) | Apache 2.0 | 12 to 16 GB |
| FLUX.2 klein 4B / 9B | 4B / 9B | Qwen3 4B / 8B | Yes | Apache 2.0 (4B) | 8 to 13 GB |
| MOSS-Image | 5B | Qwen3.5 9B | Yes (DHQ GGUF, Oct 23) | Apache 2.0 | 16 GB (INT8) |
| Ideogram 4 | 9.3B | Qwen3-VL 8B | Yes (DHQ GGUF) | See model card | 16 GB+ |
| Krea 2 | 12B | LLM-based | Not yet | Krea 2 Community | 12 to 16 GB |
| SDXL and fine-tunes | 3.5B | CLIP (does not refuse) | Not needed | Open RAIL++-M | 8 GB |
Which to pick: For the best quality and prompt understanding, Qwen-Image 2.1 with the Heretic encoder. For 8 GB cards, FLUX 3 Klein. If you want an Apache 2.0 model you can use commercially, Z-Image Turbo or FLUX.2 klein 4B with the Qwen3 4B Heretic encoder. SDXL is still the king of community styles and has never had an encoder that refuses. For a full quality comparison, see our best open source text-to-image models guide.
Heretic and Abliterated Text Encoders Compared
| Encoder repo | For model | Refusals before / after | Recommended file | Loader |
|---|---|---|---|---|
| pottokao/Qwen-Image-2.1-Text-Encoder-Heretic-GGUF | Qwen-Image 2.1 | 100 / 5 (KL 0.022) | qwen3vl_8b_heretic-Q4_K_M.gguf 5.03 GB + mmproj 1.16 GB, or FP8 safetensors 9.34 GB |
CLIPLoaderGGUF, type qwen_image (or stock CLIPLoader for safetensors) |
| pottokao/FLUX.3-Klein-Text-Encoder-Heretic-DHQ-GGUF | FLUX 3 Image Klein | 97 / 2 | flux3-klein-te-heretic-dhq-Q4_K_M.gguf 2.66 GB + mmproj 0.84 GB, or bf16 8.88 GB |
CLIPLoaderGGUF or CLIPLoader, type flux3 |
| DreamFast/qwen3-4b-heretic | Z-Image, FLUX.2 klein 4B | 100 / 3 (KL 0.0000) | FP8 4.2 GB (or GGUF Q4_K_M 2.3 GB) | Stock CLIPLoader (ComfyUI 0.30+) |
| ponpoke/flux2-klein-9b-uncensored-text-encoder | FLUX.2 klein 9B | Not published | Q4_K_M to F16 GGUF or safetensors (gated) | CLIPLoader / CLIPLoaderGGUF |
| pottokao/MOSS-Image-Text-Encoder-Heretic-DHQ-GGUF | MOSS-Image, Kromoss | Not published (rewrite KL 0.005 at 6.6 GB) | moss-te-heretic-dhq-K-5.8G.gguf 5.78 GB |
Dual-Head Dragon Loader (GGUF), type moss_image |
| pottokao/Ideogram-4-Text-Encoder-Heretic-DHQ-GGUF | Ideogram 4 | Not published | Q4_K_M 5.03 GB + mmproj | CLIPLoaderGGUF, type ideogram4 |
“DHQ” (Dual-Head Quant) is pottokao’s quantization method: instead of choosing each tensor’s precision by chat quality, it measures how much quantization changes what the diffusion model actually reads. On FLUX 3 Klein, the DHQ Q4_K_M has 2.15% text error against 2.77% for a standard Q4_K_M. If you have the VRAM, the bf16 or FP8 safetensors files remain the safest choice for quality.
Install the Required Nodes
Safetensors encoders load with ComfyUI’s built-in Load CLIP (CLIPLoader) node and need nothing extra. GGUF encoders need two custom node packs. Update ComfyUI to 0.36.0 or newer first (the FP8 Qwen3-VL encoder requires it).
1. ComfyUI-GGUF (city96)
Repo: github.com/city96/ComfyUI-GGUF. In ComfyUI Manager, search for ComfyUI-GGUF and install it. Manual install:
cd ComfyUI/custom_nodes
git clone https://github.com/city96/ComfyUI-GGUF
cd ComfyUI-GGUF
pip install -r requirements.txt
On the Windows portable build, use ..\..\..\python_embeded\python.exe -m pip install -r requirements.txt instead of plain pip. Installs to ComfyUI/custom_nodes/ComfyUI-GGUF/ and adds the CLIPLoaderGGUF node.
2. ComfyUI-GGUF-Qwen3VL-TE (pottokao)
Repo: github.com/pottokao-dotcom/ComfyUI-GGUF-Qwen3VL-TE. This add-on patches ComfyUI-GGUF so Qwen3-VL GGUF encoders load with their vision tower. Without it, Qwen-Image 2.1 throws a “12288-wide” shape error, and FLUX 3 Klein silently loads the wrong (Z-Image) encoder type. It adds no nodes and is a manual install:
cd ComfyUI/custom_nodes
git clone https://github.com/pottokao-dotcom/ComfyUI-GGUF-Qwen3VL-TE
Restart ComfyUI. The console should print a [GGUF-Qwen3VL-TE] patch message, and when an encoder loads it reports the vision tensors added from the mmproj.
Qwen-Image 2.1 With a Heretic Encoder
Start from the official Qwen-Image 2.1 template in ComfyUI (Workflow > Browse Templates) or our Pruna 6-step Qwen-Image 2.1 guide. Keep the diffusion model and VAE, and only replace the text encoder.
Files and folders:
- Diffusion model:
ComfyUI/models/diffusion_models/qwen_image_2.1_int8_convrot.safetensors(from Comfy-Org/Qwen-Image-2.1) - VAE:
ComfyUI/models/vae/qwen_image_2.1_vae_bf16.safetensors - Heretic encoder (GGUF):
ComfyUI/models/text_encoders/qwen3vl_8b_heretic-Q4_K_M.gguf - Vision tower:
ComfyUI/models/text_encoders/mmproj-qwen3vl_8b_heretic-f16.gguf(required, do not rename) - Or instead of both GGUF files:
ComfyUI/models/text_encoders/qwen3vl_8b_fp8_heretic.safetensors(9.34 GB, NVIDIA)
Wiring: replace the template’s Load CLIP node with CLIPLoaderGGUF, choose the Heretic GGUF, set type to qwen_image, and connect it to TextEncodeQwenImage21 as before. For the FP8 safetensors file, keep the stock Load CLIP node and just pick the new file. The mmproj also keeps reference-image editing working.
Speed-ups that still work: the Pruna 6-step LoRA (ComfyUI/models/loras/p_q_image_2.1_6_steps_v0.2_comfyui_bf16.safetensors), the Qwen-Image 2.1 Turbo LoRA, and the new DMD2 2-step LoRA released on October 23 all act on the diffusion model, so they combine with any encoder.
The model card says the GGUF output matches the bf16 encoder for the same seed up to Q4 quantization noise, so the main visible change should be prompts that previously came out watered down.
FLUX 3 Klein With a Heretic Encoder
FLUX 3 Image Klein is the best choice for 8 GB cards (setup: FLUX 3 Image Klein in ComfyUI). Its stock encoder is Qwen3-VL 4B.
- Diffusion model:
ComfyUI/models/diffusion_models/flux3-image-klein-int8-convrot.safetensors - VAE:
ComfyUI/models/vae/flux2-vae.safetensors - Heretic encoder, simplest option:
ComfyUI/models/text_encoders/flux3-klein-te-heretic-bf16.safetensors(8.88 GB, includes the vision tower) loaded with the stockLoad CLIPnode, typeflux3 - Low-VRAM option:
ComfyUI/models/text_encoders/flux3-klein-te-heretic-dhq-Q4_K_M.gguf(2.66 GB) plusComfyUI/models/text_encoders/mmproj-flux3-klein-te-heretic-dhq-f16.gguf(0.84 GB), loaded withCLIPLoaderGGUF, typeflux3
The Qwen3VL-TE add-on is mandatory for the GGUF. Without it, ComfyUI loads the file without an error but builds the wrong encoder, and your images will not follow the prompt properly. ComfyUI’s TextGenerate node does not work with the flux3 type, so if you want the encoder to rewrite prompts, run it in llama.cpp instead.
Z-Image and FLUX.2 klein 4B
Z-Image Turbo and FLUX.2 klein 4B share the Qwen3 4B encoder (stock file ComfyUI/models/text_encoders/qwen_3_4b.safetensors), so one Heretic encoder covers both. DreamFast’s build was made with Heretic 1.2.0 over 200 trials: refusals fell from 100/100 to 3/100 with a measured KL divergence of 0.0000, which means no detectable damage to the model.
- Repo: DreamFast/qwen3-4b-heretic
- Pick the FP8 file (4.2 GB) from the ComfyUI folder of the repo, or NVFP4 (2.7 GB) for RTX 50-series cards, and put it in
ComfyUI/models/text_encoders/ - In your Z-Image or FLUX.2 klein workflow, select it in the stock
Load CLIPnode in place ofqwen_3_4b.safetensors. No custom nodes are needed on ComfyUI 0.30 or newer.
For FLUX.2 klein 9B, which uses a larger Qwen3 8B encoder, use ponpoke/flux2-klein-9b-uncensored-text-encoder (abliterated in layers 14 to 24, gated download). There is a matching 4B version too.
MOSS-Image and Ideogram 4
MOSS-Image (setup: MOSS-Image in ComfyUI) uses Qwen3.5 9B as its encoder. pottokao’s Heretic DHQ build arrived on October 23 and comes in “dual-head” files that can both encode and rewrite prompts, plus smaller encoder-only files. It loads through the Dual-Head Dragon Loader (GGUF) node from the ComfyUI-DualHead-Dragon repo, with type moss_image. Put the file, for example moss-te-heretic-dhq-K-5.8G.gguf (5.78 GB), in ComfyUI/models/text_encoders/. The 920 MB mmproj is only needed for image input. It works with Kromoss, the October 19 full fine-tune of MOSS-Image, too.
Ideogram 4 (9.3B, open weights since June) is the best open model for text and typography inside images. Its Heretic encoder is pottokao/Ideogram-4-Text-Encoder-Heretic-DHQ-GGUF: put the Q4_K_M (5.03 GB) and its mmproj in ComfyUI/models/text_encoders/ and load it with CLIPLoaderGGUF, type ideogram4. It needs the Qwen3VL-TE add-on at commit 1f52b00 or later.
LoRAs: What Encoders Cannot Fix
The ponpoke model card says it plainly: an uncensored encoder passes your prompt to the diffusion model as an instruction, but concepts the diffusion model was never trained on will still come out broken or as noise. The encoder cannot add capabilities. For that you need a LoRA trained on the diffusion model itself.
For creative freedom, the most useful LoRAs are style and subject LoRAs: horror and dark-fantasy illustration, comic and manga styles, painterly looks, cinematic lighting, historical costume, creature design. Put them in ComfyUI/models/loras/ and add a LoraLoaderModelOnly node between the diffusion model and the sampler. Our text-to-image roundup lists the best LoRAs for each model, and you can train your own on MOSS-Image with KohakuMoss.
Prompting Tips
- Be specific and visual. “A knight in dented armour after a night battle, torn banner, smoke, cold dawn light” works better than abstract words, with any encoder.
- Use the same seed to compare. Render a prompt with the stock encoder and the Heretic encoder on the same seed. If they look the same, the encoder was not your problem and you need a LoRA.
- Keep the prompt enhancer local. If you use prompt-expansion nodes, point them at a local LLM such as one from our uncensored LLM list rather than a cloud API.
- Do not mix encoders and models. A Qwen3-VL 8B encoder for Qwen-Image 2.1 will not work with FLUX 3 Klein, even though both are “Qwen3-VL”. Match the table above.
Responsible Use and the Law
Running models locally gives you freedom, and with it responsibility. Some rules apply everywhere, whatever the model can draw:
- Never create sexual content of minors, or images that look like real people in sexual, humiliating or defamatory situations without their consent. These are crimes in most countries, including new deepfake laws in the US, UK, EU and India, and no encoder or setting changes that.
- Do not use real people’s likenesses to deceive. Fake news photos and impersonation can be fraud.
- Check the licence. Qwen-Image 2.1 is non-commercial (Qwen Research Licence), FLUX 3 Klein has revenue limits, and Z-Image, FLUX.2 klein 4B and MOSS-Image are Apache 2.0.
- Label AI images when you publish them, especially realistic ones.
- Keep your ComfyUI private. Do not expose it to the internet with
--listenunless it is behind authentication.
Troubleshooting
- “Missing vision tower”: the mmproj file is missing or was renamed. Put it next to the GGUF in
ComfyUI/models/text_encoders/with its original name. - Shape mismatch with “12288” in the error: the ComfyUI-GGUF-Qwen3VL-TE add-on is not installed or not loaded. Check the console for its patch message.
- Images ignore the prompt with the FLUX 3 Klein GGUF: the add-on is missing, so ComfyUI built a Z-Image encoder. Install it or use the bf16 safetensors file.
- Out of memory: use the Q4_K_M GGUF encoder, or add
--lowvram(see our ComfyUI launch flags guide). Encoders are unloaded after encoding, so the diffusion model is usually the larger cost. - No difference from the stock encoder: expected for most prompts. The Heretic encoder matters only where the stock one was weakening a prompt.
- More fixes: ComfyUI errors and fixes.
FAQ
Is ComfyUI censored?
No. ComfyUI has no content filter. Limits come from the model’s training data and, for models with LLM text encoders, the encoder’s built-in refusals.
What is an uncensored text encoder?
A copy of the model’s text encoder LLM with its refusal behaviour removed using Heretic or abliteration, so it encodes your prompt faithfully instead of weakening it.
Does an uncensored text encoder make the image model uncensored?
Only partly. It stops the encoder from diluting prompts, but the diffusion model can still only draw what it learned. Missing concepts need a LoRA.
Which is the best uncensored local image generator in 2026?
Qwen-Image 2.1 with the Heretic Qwen3-VL 8B encoder for quality on 16 GB, FLUX 3 Klein with its Heretic encoder for 8 GB, and Z-Image Turbo with the Qwen3 4B Heretic encoder if you need an Apache 2.0 licence.
Where do text encoder files go in ComfyUI?
ComfyUI/models/text_encoders/. The older ComfyUI/models/clip/ folder also still works.
Will a Heretic encoder lower image quality?
The published numbers suggest no: KL divergence is 0.022 for the Qwen-Image 2.1 encoder and 0.0000 for the Qwen3 4B encoder, and pottokao reports same-seed outputs matching the original up to quantization noise.
Final Thoughts
Local image generation was always filter-free, but the switch to chat-LLM text encoders brought refusals back in through the side door. The fix is simple: swap the encoder file. Use the Heretic Qwen3-VL 8B encoder with Qwen-Image 2.1, the DHQ encoder with FLUX 3 Klein, and DreamFast’s Qwen3 4B Heretic with Z-Image and FLUX.2 klein. Add style LoRAs for what the base model never learned, keep your workflow private, and stay well inside the law.
Related guides:
- Best Uncensored Local LLMs in 2026
- Uncensored Local AI Video Generation in ComfyUI
- Best Open Source Text-to-Image Models in 2026
- Pruna P-Q-Image-2.1: Qwen-Image 2.1 in 6 Steps
- FLUX 3 Image Klein in ComfyUI
- ComfyUI Model Folder Cheat Sheet
Sources
- pottokao Qwen-Image 2.1 Heretic encoder, FLUX 3 Klein Heretic DHQ encoder, MOSS-Image Heretic DHQ encoder and Ideogram 4 Heretic DHQ encoder model cards
- GitHub: ComfyUI-GGUF-Qwen3VL-TE and GitHub: city96/ComfyUI-GGUF
- DreamFast/qwen3-4b-heretic and ponpoke FLUX.2 klein 9B uncensored encoder model cards
- Heretic Docker: abliterating LLMs for video and image generation
- Comfy blog: Ideogram 4 day-0 support
- ComfyUI Wiki news (Kromoss, DMD2 Qwen-Image 2.1 LoRA, October 2026) and Musetta: ComfyUI news October 2026
- GitHub: p-e-w/heretic
- Hugging Face model search for “text-encoder” with heretic, abliterated and uncensored variants, sorted by downloads (checked November 2, 2026)
