@hiwise_aigc: https://x.com/hiwise_aigc/status/2109255757845914013
Summary
An introduction to AtomicChat's "decensored" text encoder for Qwen-Image-2.1-Turbo, released on HuggingFace in GGUF quantized form, plus a complete tutorial for running it locally with ComfyUI on 8GB VRAM (RTX 5060). Includes the full file download checklist, node configurations, 5 real-world gotchas with their fixes, and prompt examples.
View Cached Full Text
Cached at: 10/11/26, 05:15 PM
Runs on 8GB VRAM: Qwen-Image-2.1-Turbo “Uncensored” — Local Deployment in 8 Steps (With ComfyUI Workflow)
AtomicChat has been publishing GGUF repos on HuggingFace back-to-back these past two days: a quantized denoiser for Qwen-Image-2.1-Turbo, and a text encoder with a rather provocative name — “Uncensored.”
People in the comments are already fantasizing about what an “unlocked” model can generate. Before getting into the technical details, let’s pour some cold water on that: the official model card’s own testing shows that swapping in this encoder with 45 sensitive prompts produced zero output changes. What it generates is essentially identical to the official version.
So what’s the point? Can an 8GB RTX 5060 actually run it? Yes — we tested it and it works. The ComfyUI workflow below was developed step by step through real-world trial and error on an RTX 5060 (8GB VRAM). All 5 pitfalls in Section 3 and 4 prompt sets in Section 4 have been verified on real hardware — not armchair theorizing.
Test results: First image takes about 2 minutes (including model initialization/loading). Every subsequent generation is about 1 minute.
This article covers everything: how to download 4 model files, where to put them, a ready-to-use workflow, solutions to 5 real-world pitfalls, 4 “uncensored” prompt sets, and a quantization selection table based on the official 48-prompt test data.
Key Insight: What “Uncensored” Changes Is Not the Image — It’s the “Refusal” Weights
Qwen-Image-2.1 uses three components: the denoiser (paints the image) + text encoder (understands prompts) + VAE (decodes the image).
This “uncensored” version only modifies the text encoder: it projects out the single weight direction in Qwen3-VL-8B responsible for “refusal.” Official test results:
- Encoder used as a chat model: harmful request refusal rate drops from 88.9% → 1.2%, while MMLU general capability remains unchanged (77.35%)
- Encoder used for image generation: 45 sensitive prompts produce 0 output flips before/after the swap — because the native pipeline never had a content filter to begin with
In short: this is not an “unlocked version” — it’s an “encoder with no refusal tendency.” For image generation, the value lies in: a ready-to-use Qwen3-VL encoder GGUF where the Q8_0 variant only causes a 0.037 image deviation (nearly lossless); plus, when running locally, no one controls what you generate.
Let’s take a look at the generated image results 👇
1. Download List: 4 Files — Name / Size / Direct Link / Destination
The following files have been individually verified via the HuggingFace official API:
| File | Size | Download | Destination |
|---|---|---|---|
| Qwen-Image-2.1-Turbo-AD-Q4_K.gguf (denoiser) | 4.20GB | Download | ComfyUI/models/diffusion_models/ |
| Qwen-Image-2.1-Turbo-Abliterated-Uncensored-Q8_0.gguf (encoder) | 8.71GB | Download | ComfyUI/models/text_encoders/ |
| mmproj-Qwen-Image-2.1-Turbo-Abliterated-Uncensored-F16.gguf (vision projector, hard requirement of the patch) | 1.16GB | Download | ComfyUI/models/text_encoders/ (same directory as encoder, do not rename) |
| qwen_image_2.1_vae_bf16.safetensors (VAE) | 644MB | Download | ComfyUI/models/vae/ |
⚠️ Three pitfalls to watch out for:
- Don’t download the BF16 denoiser (14.23GB — instant OOM on 8GB VRAM). Make sure the filename contains AD-Q4_K.
- The encoder repo has 6 quantization levels; for 8GB cards, use Q8_0 (loaded into RAM) — don’t grab AD-Q2_K (image output visibly degrades).
- The denoiser and encoder filenames look very similar: the one with Abliterated-Uncensored is the encoder (goes into CLIPLoader), the one without is the denoiser (goes into Unet Loader). Mixing them up causes an immediate error — see Pitfall 2 in Section 3.
Download self-check: all 4 files in place + sizes match (4.20GB / 8.71GB / 1.16GB / 644MB) → success.
📜 License note: The license for Qwen-Image-2.1 official weights has changed from Apache 2.0 to the Qwen Research License (HuggingFace official model card license_name=qwen-research, verified 2026-10-11). Fine for personal learning and testing, but read the official LICENSE before any commercial use.
2. ComfyUI Workflow: Drag and Use (11 Nodes, Pre-Wired)
The workflow JSON is ready — download and drag it directly into the ComfyUI canvas to import:
Qwen-Image-2.1-Turbo_Uncensored_ComfyUI_Workflow.json
Step 1: Prerequisites
- Update ComfyUI to the latest version (native Qwen-Image-2.1 support landed in 0.37+)
- Install custom nodes via Manager:
- ComfyUI-GGUF (city96 — loads GGUF denoiser/encoder)
- ComfyUI-KJNodes (kijai — needed for precisely reproducing the Turbo scheduler)
- Comfyroll Studio (for aspect ratio control — search “Comfyroll” in Manager and pick the card whose description includes “Aspect Ratio”)
- Community patch ComfyUI-GGUF-Qwen3VL-TE: Run
git clone https://github.com/pottokao-dotcom/comfyui-gguf-qwen3vl-tein thecustom_nodesdirectory, fully restart ComfyUI. When the console shows[GGUF-Qwen3VL-TE] ComfyUI-GGUF patched, the patch is active. (Why this is required — see Pitfall 3 in Section 3.)
Step 2: Place the Models
Put the 4 files into their respective directories per the Section 1 table. ComfyUI Desktop users note: the model directory is the shared directory (e.g., E:\Comfy-Desktop\ComfyUI-Shared\models\ containing diffusion_models/, text_encoders/, vae/). Don’t drop files into the bundled models folder inside the installer package.
Step 3: Wire Up the Nodes (Double-click the canvas to search for node names)
Node list:
- Unet Loader (GGUF) → select
Qwen-Image-2.1-Turbo-AD-Q4_K.gguffrom the dropdown - CLIPLoader (GGUF) (note: no space between “CLIP” and “Loader”) → select
Qwen-Image-2.1-Turbo-Abliterated-Uncensored-Q8_0.gguf, set type toqwen_image - Load VAE → select
qwen_image_2.1_vae_bf16.safetensors - CLIP Text Encode (positive): enter your prompt;
clipconnects to node 2 - CLIP Text Encode (negative): leave empty;
clipconnects to node 2 (Turbo uses cfg=1, no need for negative prompts) - KSamplerSelect: select
euler - CustomSigmas (KJNodes): paste the official Turbo 9 values:
1.0, 0.978453, 0.95418, 0.926626, 0.89508, 0.845148, 0.704534, 0.414568, 0.0.interpolate_to_stepsmust be set to 8 (confirmed from KJNodes source code: when the count ≠ steps+1, it performs logarithmic interpolation and destroys the official schedule; when 9 = 8+1, values are used as-is). Separate numbers with English commas + spaces. - SamplerCustom: model←1, positive←4, negative←5, sampler←7, sigmas←8, latent_image←12;
add_noise=true,noise_seedrandom,cfg=1.0 - VAE Decode (vae←3, samples←9) → Save Image
- CR Aspect Ratio (Comfyroll, image ratio): select a preset from the dropdown, e.g.,
SDXL - 16:9 landscape 1344x768(horizontal),SDXL - 9:16 portrait 768x1344(vertical/phone wallpaper),SDXL - 1:1 square 1024x1024(square). For custom dimensions, selectcustomand manually enterwidth/heightbelow. Itsempty_latentoutput connects directly to the sampler — no need for an Empty Latent Image node.
Wiring check order: three model nodes → two prompt nodes → one sampler set → decode & save. Scan through in this order before hitting Queue — a single missing connection causes an error.
Lazy Version (Skip KJNodes)
Just use KSampler: steps 8, cfg 1.0, sampler euler, scheduler simple. It will generate images, but the official team has warned that Turbo without its own scheduler will have quality drift. To reproduce the official output precisely, use the SamplerCustom version above.
3. Real-World Pitfall Log: 5 Issues Found and Solved on Real Hardware
The official model card explicitly states this uncensored encoder has “Not run yet in ComfyUI” — the official team hasn’t even tested it in ComfyUI themselves. The following 5 pitfalls represent the full process of clearing the untested territory, each with its solution.
Pitfall 1: Error on workflow import — CustomSigmas “cannot convert to INT”
Symptom: After dragging the JSON onto the canvas and clicking Queue, CustomSigmas reports an error: the input value 1.0, 0.978453, ... for interpolate_to_steps cannot be converted to INT.
Cause: When hand-writing ComfyUI API-format JSON, the order of widget parameters in inputs must match the declaration order in the plugin’s source code INPUT_TYPES — the frontend maps widget values by position during import. The first version of the JSON placed interpolate_to_steps before sigmas_string, causing the long number sequence to be injected into the INT input box.
Solution: Re-download the workflow JSON from Section 2 (delete the old version). Lesson: always generate hand-written workflow JSON with a script that follows source code order + validation — never arrange widgets manually.
Pitfall 2: Unet Loader reports “Unexpected architecture type: ‘qwen3vl’” — denoiser/encoder mixed up
Symptom: Node 1 (Unet Loader) reports: Unexpected architecture type in GGUF file: 'qwen3vl'.
Cause: The dropdown selected the encoder file Qwen-Image-2.1-Turbo-Abliterated-Uncensored-AD-Q4_K.gguf (qwen3vl architecture), but Unet Loader only accepts the denoiser. The filenames in the two repos are extremely similar.
Solution: Change Node 1 to the denoiser: Qwen-Image-2.1-Turbo-AD-Q4_K.gguf (filename has no Abliterated-Uncensored, 4.20GB). Memory rule: with Abliterated-Uncensored = encoder (goes into CLIPLoader), without = denoiser (goes into Unet Loader).
Pitfall 3: Dimension explosion at sampling step 0 — [4096] vs [1, 512, 12288]
Symptom: Denoiser loads successfully (log shows Requested to load QwenImage21 → loaded completely), but sampling blows up at 0/8: Given normalized_shape=[4096], expected input with shape [*4096], but got input of size[1, 512, 12288].
Cause: ComfyUI-GGUF currently cannot correctly load the Qwen3-VL GGUF encoder — it mistakes it for a FLUX.2 klein 9B encoder (evidence: an unexpected Requested to load Flux2TEModel_ line appears in the log), outputting 12288-dim conditioning, while the denoiser’s txt_in expects 4096-dim.
Solution: Install the community patch ComfyUI-GGUF-Qwen3VL-TE (specifically designed for this error — the error message in the author’s docs matches ours character for character). git clone into custom_nodes, fully restart. When the console shows [GGUF-Qwen3VL-TE] ComfyUI-GGUF patched, the patch is active. No new nodes added; no workflow changes needed.
Pitfall 4: After installing the patch, “Missing vision tower” error
Symptom: After the patch takes effect, Node 2 (CLIPLoader) reports: [GGUF-Qwen3VL-TE] Missing vision tower for '...Abliterated-Uncensored-Q8_0.gguf', prompting you to place an mmproj file in the text_encoders directory.
Cause: Once the patch takes over, the Qwen3-VL encoder is loaded in its “complete form” — including the vision projector (mmproj, the component handling multimodality / image editing). The patch locates the mmproj by filename matching and refuses to load if it can’t find one.
Solution: Download mmproj-Qwen-Image-2.1-Turbo-Abliterated-Uncensored-F16.gguf (Download, ~1.16GB) from the same repo and place it in the text_encoders directory — same directory as the encoder, do not rename either file. Pure text-to-image doesn’t use it, but the patch strictly requires the file to exist.
Pitfall 5: Aspect ratio node can’t connect — input boxes can’t automatically become slots
Symptom: The width / height outputs of CR Aspect Ratio hang unconnected, not linked to any node.
Cause: Empty Latent Image’s width/height are input boxes (widgets), not connectable slots. ComfyUI doesn’t automatically convert widgets to slots when importing API-format JSON — both wires get silently swallowed.
Solution: The updated workflow uses a different wiring — remove Empty Latent Image and connect CR Aspect Ratio’s built-in empty_latent output (directly outputs a latent) → the sampler’s latent_image. All standard slot-to-slot connections. Re-download the JSON from Section 2, delete the old nodes from the canvas, and re-drag.
After clearing all 5 pitfalls, a single Queue passes: on the RTX 5060 (8GB), first image takes about 2 minutes (including model initialization), every subsequent generation is about 1 minute.
4. Uncensored Prompts: 4 Tested Sets + 1 Comparison Experiment
Let’s be upfront: official testing shows both encoders produce 0 output flips. So the prompts below demonstrate not “the image looks different” but “the freedom of running locally where no one controls what you generate” — that’s the only practical meaning of “uncensored” for image generation.
Parameters from the proven working config: steps 8, CFG 1.0, euler + 9 official sigmas, negative prompt left empty, ratio as needed.
Set 1: Dark Horror (the category mainstream platforms love to ban)
- Interior of a gloomy Gothic cathedral, flickering candlelight, a skeleton king wearing a crown of thorns seated on a bone throne, blood-red moonlight streaming through stained glass, dark fantasy oil painting style
- Abandoned hospital corridor, bloody handprints on the walls, dark red liquid dripping from the ceiling, thick fog, horror movie still quality
Set 2: Dystopian Satire (topics DALL-E / MJ refuse outright)
- Cyberpunk slum, giant holographic billboard playing a smiling politician, crowds queuing in the rain for rations below, neon and garbage, cinematic composition
- Protest crowd holding placards reading “WE ARE WATCHING”, riot police forming a human wall, tear gas smoke at dusk with backlight, photojournalism style
Set 3: Sensitive Text Posters (Qwen-Image’s signature strength: rendering text)
- Underground bar neon sign reading “NO RULES”, rainy night street reflections, wet asphalt gleaming
Set 4: War / History (graphic scenes, frequently throttled by platforms)
- WWII battlefield, soldiers leaping from trenches in a charge, smoke-filled air, black and white documentary style, heavy film grain
- Medieval siege, burning arrows streaking through the night sky, flames engulfing the city walls, epic oil painting composition
Comparison experiment (recommended as a video): Use the same prompts, generate one image with the uncensored encoder and one with the official encoder, place them side by side and let viewers spot the difference — they almost certainly won’t. That itself is the most powerful counterintuitive proof, directly closing the loop with the claim in Section 2.
5. Quantization Selection Table (Based on Official 48-Prompt Test Data)
Lower LPIPS = closer to original BF16. Official conclusion verbatim: “Q8_0 if it fits. AD-Q4_K is the pick at 4 bits.”
Denoiser:
| Level | Size | Image Deviation | Notes |
|---|---|---|---|
| Q8_0 | 7.59GB | 0.037 | Closest to original, but too tight for 8GB cards |
| AD-Q6_K | 6.71GB | 0.044 | 0.88GB smaller than Q8_0, nearly identical |
| AD-Q5_K | 5.40GB | 0.076 | Composition preserved, details shifted |
| AD-Q4_K | 4.20GB | 0.147 | ✅ Recommended for 8GB cards (used in this article’s test) |
| AD-Q3_K | 3.60GB | 0.206 | Layout / faces / text start to drift |
| AD-Q2_K | 2.55GB | 0.359 | Image output visibly degrades |
Encoder:
| Level | Size | Image Deviation | Conclusion |
|---|---|---|---|
| Q8_0 | 8.71GB | 0.037 | Load into RAM, first choice (used in this article’s test) |
| AD-Q4_K | 5.29GB | 0.087 | Best at 4-bit, half the deviation of regular Q4_K_M |
| AD-Q2_K | 3.34GB | 0.241 | Avoid |
Note: The AD- prefix refers to AtomicChat’s importance-matrix quantization, which at the same file size stays closer to the original than regular quantization.
A Final Word
Running locally does not mean there are no rules. The official model card explicitly states: do not create content involving minors, and do not create non-consensual intimate or derogatory images of real people. The technology itself is neutral — how you use it has boundaries.
启明破晓 @hiwise_aigc · Oct 10
Similar Articles
@atomic_chat_hq: Run UNCENSORED Qwen-Image-2.1-Turbo locally Our Atomic Dynamic GGUF quants ladder starts from 3.3 GB to 16.4 GB Refusal…
AtomicChat 发布了 Qwen-Image-2.1-Turbo 的无审查(uncensored)GGUF 量化版本,量化阶梯从 3.3 GB 到 16.4 GB,可使用 llama.cpp、Ollama、LM Studio 等工具在本地运行图像生成。
@hiwise_aigc: Yesterday Qwen-image2.1 "de-censored version" post blew up, and a bunch of friends DM'd me asking how to set it up them…
作者分享了 Qwen-image2.1 "去审查版" 的本地部署教程,称在仅 8G 显存的 RTX 5060 上即可运行,并整理了 5 个常见坑点,提醒大家适度使用。
AtomicChat/Qwen-Image-2.1-Turbo-Uncensored-GGUF
AtomicChat released an abliterated GGUF of Qwen-Image-2.1-Turbo's text encoder (Qwen3-VL-8B-Instruct) with the refusal direction projected out, dropping chat refusals from 88.9% to 1.2% with no measurable MMLU loss. Benchmarks on 45 sensitive prompts show no change in image output, since the stock Qwen-Image pipeline has no safety checker.
AtomicChat/Qwen3.8-Flash-Next-GGUF is Really Good
The AtomicChat quantization of Qwen3.8-Flash-Next-GGUF significantly reduces memory usage from 106GB to 65GB while maintaining good inference performance, making it more efficient for hardware-limited setups.
Qwen/Qwen-Image-2.1-Turbo · Hugging Face
阿里云 Qwen 团队在 Hugging Face 上发布了 Qwen-Image-2.1-Turbo 图像生成模型,提供更快的图像生成能力。