Bỏ qua đến nội dung

Qwen-Image-2.1 Uncensored: Chạy ComfyUI Không Lọc Với GGUF Và Heretic

Chạy Qwen-Image-2.1 Uncensored trên ComfyUI: kết hợp DiT GGUF và Heretic Text Encoder triệt tiêu refusal. Bí quyết tối ưu VRAM từ 8GB đến 24GB không giật lag.

Hoang Yell
Hoang Yell
26 phút đọc
English
Qwen-Image-2.1 Uncensored: Chạy ComfyUI Không Lọc Với GGUF Và Heretic

Cảm giác trả 30 USD mỗi tháng cho các dịch vụ tạo ảnh đám mây để rồi nhận về thông báo đỏ lòm “Prompt violates safety policy” khi vẽ một bức tượng giải phẫu hay tranh siêu thực gothic thực sự rất bực mình. Các bộ lọc đạo đức doanh nghiệp biến công cụ sáng tạo thành một chiếc hộp đen bảo thủ.

Khi Qwen-Image-2.1 của Alibaba ra mắt, giới đồ họa máy tính trầm trồ trước khả năng bám sát văn bản và chi tiết ảnh vượt trội. Nhưng chỉ khi cộng đồng mã nguồn mở bóc tách thành công phiên bản Uncensored GGUF cùng bộ mã hóa văn bản Heretic, người dùng mới thực sự làm chủ phần cứng và dữ liệu cá nhân trên máy cục bộ.


Tóm tắt (TL;DR)

Hộp Trả Lời Nhanh (Google Search Featured Snippet): Qwen-Image-2.1 Uncensored ComfyUI là gì? Đây là giải pháp tạo ảnh cục bộ kết hợp giữa mô hình khuếch tán Qwen-Image-2.1 định dạng GGUF và bộ giải mã văn bản Heretic đã triệt tiêu cơ chế từ chối (refusal ablation). Giải pháp này chạy mượt mà trên ComfyUI, xóa bỏ hoàn toàn bộ lọc nội dung đám mây và hoạt động ổn định trên card đồ họa từ 8GB VRAM trở lên.

  • Hai tầng tự do: DiT loại bỏ safety checker cấp ứng dụng, kết hợp Text Encoder Heretic triệt tiêu phản xạ từ chối prompt ngay từ tầng nhúng ngữ nghĩa.
  • Tối ưu hóa VRAM thực dụng: Chạy DiT lượng tử hóa Q4_K_M trên GPU và đẩy Text Encoder sang RAM hệ thống giúp card 8GB - 12GB VRAM không bao giờ tràn bộ nhớ.
  • Đa dạng phần cứng: Hỗ trợ NVFP4 cho kiến trúc RTX 50, W4A8 cho RTX 30/40, và GGUF cho chip Apple Silicon.
  • Yêu cầu phiên bản: Bắt buộc dùng ComfyUI phiên bản 0.36.0 trở lên (đã kiểm chứng trên v0.37.1) để nhận diện đúng node TextEncodeQwenImage21 và đầu ra 64-channel latent.
  • Kho lưu trữ cốt lõi: Trọng số DiT tại abenzerps/Qwen-Image-2.1-Uncensored-GGUF (lưu ý tiền tố -UC-) và Text Encoder tại pottokao/Qwen-Image-2.1-Text-Encoder-Heretic-W4A8.

Bản đồ tư duy (Beginner Map)

Mô hình tạo ảnh thông thường giống như một họa sĩ tài ba nhưng luôn bị một quản lý khó tính đứng sau cầm kéo cắt vụn bản vẽ nếu thấy từ ngữ nhạy cảm. Workflow Qwen-Image Uncensored dùng kỹ thuật phẫu thuật laser để loại bỏ vị quản lý đó, để lại họa sĩ thuần túy nhận lệnh trực tiếp từ bàn phím của bạn.


Phần 1: Nền tảng (Foundations)

Khi người dùng chạy các mô hình nguồn mở như Stable Diffusion trước đây, việc “uncensored” tương đối đơn giản: chỉ cần gỡ bỏ node SafetyChecker trong code Python. Nhưng với các mô hình thế hệ mới sử dụng LLM lớn làm bộ mã hóa văn bản như Qwen-Image-2.1, sự kiểm duyệt nằm sâu ở hai tầng độc lập.

Tầng thứ nhất là mô hình khuếch tán DiT (Diffusion Transformer - mạng nơ-ron khuếch tán dựa trên transformer). Tầng này xử lý việc biến các hạt nhiễu ngẫu nhiên thành điểm ảnh có nghĩa. Tầng thứ hai là Text Encoder (bộ mã hóa văn bản chuyển chữ viết thành vector số học), sử dụng trực tiếp mô hình ngôn ngữ thị giác Qwen3-VL-8B-Instruct.

Chính Qwen3-VL-8B-Instruct đã được huấn luyện căn chỉnh an toàn (RLHF/DPO). Khi gặp các từ khóa về cơ thể người, tranh kinh dị máu me hay chủ đề gai góc, nó từ chối sinh vector đại diện hoặc trả về vector rỗng. Dù DiT của bạn có tự do đến đâu, nếu Text Encoder từ chối hiểu câu lệnh, kết quả trả về chỉ là một mảng xám xịt hoặc thông báo lỗi.

Thuật ngữ / Term Ý nghĩa bỏ túi (3-6 từ)
DiT (Diffusion Transformer) Mạng biến nhiễu thành ảnh
VRAM (Video RAM) Bộ nhớ đồ họa siêu tốc
Text Encoder (Bộ mã hóa) Dịch chữ viết thành số
Abliteration (Triệt tiêu hướng) Phẫu thuật cắt bỏ vector cấm
GGUF (Định dạng lượng tử) Nén mô hình chạy ít RAM
VAE (Bộ biến phân tự mã hóa) Dịch latent sang ảnh thật

Để giải quyết triệt để, lập trình viên Pottokao sử dụng công cụ Heretic để thực hiện kỹ thuật abliteration (cắt bỏ định hướng vector). Thay vì huấn luyện lại toàn bộ 8 tỷ tham số rất tốn kém, thuật toán tìm ra chính xác vector kích hoạt hành vi từ chối trong không gian tiềm ẩn và trừ khử nó đi. Độ phân kỳ KL (thước đo độ lệch tri thức gốc) chỉ ở mức 0.0220, giữ nguyên vẹn 99% khả năng hiểu ngữ pháp phức tạp trong khi tỷ lệ từ chối giảm từ 100% xuống 5%.


Phần 2: Khảo sát & Cài đặt tự động (Investigation & Automated Setup)

Để chạy trơn tru workflow này trên máy tính cá nhân, bạn không cần đến card đồ họa máy chủ A100. Chiến lược tối ưu ở đây là chia tách nhiệm vụ theo đặc thù bộ nhớ phần cứng.

Mô hình DiT cần lặp lại 20 đến 40 bước sampling liên tục, vì vậy nó bắt buộc phải nằm trọn trong VRAM card đồ họa để đạt tốc độ cao nhất. Ngược lại, Text Encoder chỉ cần chạy đúng một lần duy nhất lúc bắt đầu để tính toán vector văn bản (mất chưa đầy 700 mili giây), sau đó có thể ngủ yên. Do đó, việc để Text Encoder chạy trên RAM hệ thống (CPU) giúp bạn giải phóng một lượng lớn VRAM mà tốc độ tổng thể gần như không suy giảm.

1. Cài đặt tự động trên Linux / WSL2 (Bash)

# Clone ComfyUI, cài custom node GGUF và tải bộ 3 model về đúng chỗ
set -euo pipefail

[ ! -d "ComfyUI" ] && git clone https://github.com/comfyanonymous/ComfyUI.git
cd ComfyUI

mkdir -p custom_nodes models/diffusion_models models/text_encoders models/vae
[ ! -d "custom_nodes/ComfyUI-GGUF" ] && \
  git clone https://github.com/leejet/ComfyUI-GGUF.git custom_nodes/ComfyUI-GGUF

python3 -m venv venv
source venv/bin/activate
pip install --upgrade pip
pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu124
pip install -r requirements.txt
pip install -r custom_nodes/ComfyUI-GGUF/requirements.txt

# Tải bộ ba trọng số (DiT Q4_K_M + Heretic W4A8 + VAE BF16)
# Lưu ý: Upstream repo dùng slug 'Qwen-Image-2.1-Uncensored-GGUF' với tiền tố '-UC-'
curl -C - -L "https://huggingface.co/abenzerps/Qwen-Image-2.1-Uncensored-GGUF/resolve/main/qwen-image-2.1-UC-Q4_K_M.gguf" \
  -o models/diffusion_models/qwen-image-2.1-UC-Q4_K_M.gguf

curl -C - -L "https://huggingface.co/pottokao/Qwen-Image-2.1-Text-Encoder-Heretic-W4A8/resolve/main/qwen3vl_8b_w4a8_heretic.safetensors" \
  -o models/text_encoders/qwen3vl_8b_w4a8_heretic.safetensors

curl -C - -L "https://huggingface.co/abenzerps/Qwen-Image-2.1-Uncensored-GGUF/resolve/main/vae/qwen_image_2.1_vae_bf16.safetensors" \
  -o models/vae/qwen_image_2.1_vae_bf16.safetensors

python main.py --listen 127.0.0.1 --port 8188 --preview-method auto

2. Cài đặt tự động trên Windows (PowerShell)

# Chạy trực tiếp trong PowerShell (Admin hoặc User)
$ErrorActionPreference = "Stop"

if (-not (Test-Path "ComfyUI")) {
    git clone https://github.com/comfyanonymous/ComfyUI.git
}
Set-Location "ComfyUI"

New-Item -ItemType Directory -Force -Path "custom_nodes", "models\diffusion_models", "models\text_encoders", "models\vae" | Out-Null
if (-not (Test-Path "custom_nodes\ComfyUI-GGUF")) {
    git clone https://github.com/leejet/ComfyUI-GGUF.git custom_nodes\ComfyUI-GGUF
}

python -m venv venv
.\venv\Scripts\Activate.ps1
pip install --upgrade pip
pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu124
pip install -r requirements.txt
pip install -r custom_nodes\ComfyUI-GGUF\requirements.txt

$models = @(
    @{ 
        Url = "https://huggingface.co/abenzerps/Qwen-Image-2.1-Uncensored-GGUF/resolve/main/qwen-image-2.1-UC-Q4_K_M.gguf"; 
        Out = "models\diffusion_models\qwen-image-2.1-UC-Q4_K_M.gguf" 
    },
    @{ 
        Url = "https://huggingface.co/pottokao/Qwen-Image-2.1-Text-Encoder-Heretic-W4A8/resolve/main/qwen3vl_8b_w4a8_heretic.safetensors"; 
        Out = "models\text_encoders\qwen3vl_8b_w4a8_heretic.safetensors" 
    },
    @{ 
        Url = "https://huggingface.co/abenzerps/Qwen-Image-2.1-Uncensored-GGUF/resolve/main/vae/qwen_image_2.1_vae_bf16.safetensors"; 
        Out = "models\vae\qwen_image_2.1_vae_bf16.safetensors" 
    }
)

foreach ($m in $models) {
    if (-not (Test-Path $m.Out)) {
        Write-Host "Dang tai $($m.Out)..." -ForegroundColor Yellow
        curl.exe -C - -L $m.Url -o $m.Out
    }
}

python main.py --listen 127.0.0.1 --port 8188 --preview-method auto

Bảng phân loại phiên bản theo cấu hình card đồ họa thực tế:

Card đồ họa (GPU) Mô hình DiT khuyên dùng Bộ mã hóa Text Encoder Mức chiếm dụng VRAM
RTX 3060 / 4060 (8GB) qwen-image-2.1-UC-Q4_0.gguf (4.05GB) Heretic GGUF / W4A8 (Offload RAM) ~4.8 GB VRAM
RTX 4070 / 4070 Super (12GB) qwen-image-2.1-UC-Q4_K_M.gguf (4.60GB) Heretic W4A8 (5.88GB) ~11.0 GB - 11.2 GB VRAM (Full GPU)
RTX 4070 Ti Super / 4080 (16GB) qwen-image-2.1-UC-Q6_K.gguf (5.88GB) Heretic W4A8 (5.88GB) ~12.5 GB - 14.5 GB VRAM
RTX 3090 / 4090 (24GB) qwen-image-2.1-UC-Q8_0.gguf hoặc BF16 Heretic BF16 (16.33GB) ~22.0 GB - 23.5 GB VRAM
RTX 5070 / 5080 (Blackwell) qwen-image-2.1-UC-Q4_K_M.gguf Heretic NVFP4 (5.87GB) ~6.0 GB VRAM
Apple Silicon (Mac M2/M3/M4) qwen-image-2.1-UC-Q4_K_M.gguf Heretic Q4_K_M GGUF (4.68GB) ~11 GB Unified Memory

Dành riêng cho người dùng RTX 4070 (12GB VRAM): Bộ phối ghép tối ưu nhất là DiT UC-Q4_K_M (4.60GB) đi kèm Text Encoder Heretic W4A8 (5.88GB) và VAE BF16 (676MB). Tổng mức tiêu hao đạt ~11.1GB, vừa vặn nằm trọn trong 12GB VRAM để tận dụng 100% tốc độ Tensor Core mà không bị tràn bộ nhớ. Nếu bạn dùng máy tính có nhiều tác vụ nền, chỉ cần bật cờ --lowvram để ComfyUI tự động giải phóng Text Encoder sang RAM sau khi mã hóa câu lệnh.


Phần 3: Chẩn đoán & Ghi chép thực chiến (Diagnosis & Battlefield Field Notes)

Quá trình triển khai thực tế trên máy cá nhân bộc lộ những cái bẫy kỹ thuật mà các bài hướng dẫn dạo thường bỏ qua:

1. Bẫy đổi tên kho lưu trữ Hugging Face (“Entry not found”)

Kho lưu trữ gốc đã được tác giả đổi slug sang abenzerps/Qwen-Image-2.1-Uncensored-GGUF, đồng thời toàn bộ các file lượng tử DiT đều được thêm tiền tố -UC- (UnCensored). Nếu gọi URL cũ, lệnh curl sẽ tải về một file dung lượng vỏn vẹn 15 byte chứa dòng chữ Entry not found. Luôn đảm bảo tên file đích là qwen-image-2.1-UC-Q4_K_M.gguf.

2. Bẫy cháy màu (CFG Burn) & Da nhựa bóng (Bí quyết chất lượng ảnh)

Khác với SD 1.5 thế hệ cũ thường đẩy CFG lên 7.0 - 8.0, kiến trúc DiT hiện đại hoạt động hoàn toàn khác:

  • Đặt CFG: 3.5 với negative prompt rỗng sẽ gây ra hiện tượng CFG Burn: màu da bị rực quá đà, bề mặt bóng nhờn như tượng sáp, ngón tay biến dạng và cháy sáng vùng highlight.
  • Cách khắc phục: Hạ CFG xuống mức 2.0 - 2.5 (điểm lý tưởng nhất: 2.2) khi dùng kèm negative prompt mục tiêu, hoặc đặt CFG: 1.0 nếu muốn chạy theo cơ chế flow distillation thuần túy.

3. Lệch kênh Latent 64-Channel

Khác với Stable Diffusion (4 kênh latent) hay SDXL (4 kênh), Qwen-Image-2.1 sử dụng 64-channel VAE (spacial_downscale_ratio = 16).

  • Nếu bạn nối node EmptyLatentImage thông thường mà không sửa kiến trúc, lỗi sai kích thước tensor (shape mismatch) sẽ xảy ra ngay lập tức.
  • Luôn sử dụng node chuyên dụng TextEncodeQwenImage21. Node này nhận prompt, negative prompt cùng độ phân giải, và xuất thẳng tensor latent chuẩn [1, 64, H//16, W//16].

4. Comfy Desktop & Bẫy ký tự UTF-8 BOM

Trên Windows, nếu bạn dùng Comfy Desktop và sửa file cấu hình (installations.json hoặc settings.json) bằng lệnh Set-Content -Encoding utf8 mặc định của PowerShell 5.1, PowerShell sẽ tự động chèn thêm ký tự Byte Order Mark (\ufeff). Trình phân tích JSON.parse() của Electron sẽ crash ngay:

Installations: failed to parse installations JSON: Unexpected token '', "[

Đảm bảo mọi chỉnh sửa file JSON đều phải được lưu strictly dưới định dạng UTF-8 không có BOM (UTF-8 without BOM).


Phần 4: Tối ưu chất lượng & Độ phân giải (Resolution & Quality Optimization)

Thiết lập chuyên nghiệp cho độ chân thực tối đa

Tham số Giá trị mặc định Giá trị Pro thực chiến Lý do kỹ thuật
Sampling Steps 25 35 - 40 25 bước chỉ đủ dựng khung thô; 35-40 bước mới làm rõ từng sợi tóc, vân da và nếp gấp trang phục.
CFG Guidance 3.5 2.2 Triệt tiêu hiện tượng da nhựa búp bê, giữ độ bám sát chi tiết theo prompt.
Sampler / Scheduler euler / simple euler / simple Cặp thuật toán chuẩn hóa tối ưu nhất cho DiT của Qwen.
Resolution 1024 1280 (hoặc 896x1344) 1280x1280 cho 1.64 triệu điểm ảnh (~56% nhiều pixel hơn), yếu tố sống còn để chụp toàn thân mà mặt không bị nhòe.

Kỹ thuật Prompt Engineering cho Qwen3-VL-8B

Bộ mã hóa văn bản của Qwen là một mô hình ngôn ngữ thị giác 8 tỷ tham số, không phải bộ quét từ khóa CLIP thời kỳ đầu. Chuỗi tag phẩy phẩy kiểu ("ultra detailed, 8k, amazing, beautiful face") làm phân tán khả năng chú ý (attention). Thay vào đó, hãy viết bằng văn xuôi nhiếp ảnh tự nhiên:

# Prompt tích cực (Chất lượng nhiếp ảnh):
A full-body high-fashion editorial portrait of a beautiful young woman wearing stylish thin-rimmed designer glasses. She is posing in a relaxed reclined posture, natural curves, wearing elegant chic modern apparel. Shot on full-frame DSLR with an 85mm f/1.8 prime lens, natural depth of field, soft diffused studio ambient light, authentic realistic skin texture with fine pores and subtle natural imperfections, detailed expressive eyes, sharp crisp focus, masterwork photography.

# Prompt tiêu cực (Negative Prompt):
oversaturated, high contrast burn, plastic doll skin, airbrushed, CGI, 3D render, cartoon, anime, illustration, deformed anatomy, distorted hands, bad fingers, extra limbs, blurry face, bad eyes, low resolution, bad lighting, watermark, text

Giải phẫu Workflow: Hình dung qua xưởng vẽ nghệ thuật

Nếu nhìn vào hàng chục sợi dây lòng thòng trên ComfyUI làm bạn hoa mắt, hãy hình dung cả hệ thống này giống như một xưởng vẽ nghệ thuật thu nhỏ với các nhân vật phối hợp nhịp nhàng:

  1. Người phiên dịch kịch bản (CLIPLoader - Heretic): Bạn đưa ra ý tưởng bằng lời nói (prompt). Người phiên dịch này đọc hiểu từng câu chữ, gạt bỏ mọi rào cản kiểm duyệt bảo thủ, rồi chuyển hóa nội dung thành một tập hồ sơ số học mà họa sĩ có thể hiểu được.
  2. Bản thiết kế toan vẽ (TextEncodeQwenImage21): Trộn tập hồ sơ kịch bản với kích thước mong muốn (1280px), chuẩn bị sẵn một tấm toan vẽ đặc biệt có tới 64 lớp chiều sâu tiềm ẩn (thay vì chỉ 4 lớp như toan vẽ thông thường).
  3. Họa sĩ bậc thầy (UnetLoaderGGUF - Qwen DiT): Sở hữu bộ não hội họa đỉnh cao với kiến thức giải phẫu và ánh sáng tinh xảo. Nhờ được “tinh giản” (lượng tử hóa GGUF), vị họa sĩ này ngồi vừa vặn trong chiếc ghế VRAM card đồ họa của bạn mà không làm sập bàn.
  4. Quá trình tỉa tót nét vẽ (KSampler): Bắt đầu từ một tấm toan phủ đầy cát nhiễu loạn ngẫu nhiên, họa sĩ cặm cụi gọt dũa qua 35 - 40 lượt tỉa tót (steps). Chỉ số CFG: 2.2 đóng vai trò như mức độ lắng nghe: nghe lời bạn vừa đủ để không tự ý vẽ bậy, nhưng không căng thẳng đến mức làm biến dạng nét cọ hay làm da bóng nhờn như tượng sáp.
  5. Phòng tráng rọi quang học (VAELoader & VAEDecode): Tấm toan 64 lớp của họa sĩ chỉ là các công thức toán học vô hình. Bộ giải mã VAE đóng vai trò như dung dịch tráng rọi phim, phóng đại và chuyển đổi 64 lớp tiềm ẩn đó thành hàng triệu điểm ảnh màu (RGB) rực rỡ mà mắt người chiêm ngưỡng được.
  6. Đóng khung lưu trữ (SaveImage): Đóng khung tác phẩm hoàn chỉnh và cất vào kho ảnh của bạn.

Workflow JSON hoàn chỉnh kéo-thả

Lưu đoạn mã bên dưới thành file qwen_image_2.1_uncensored.json và kéo-thả trực tiếp lên giao diện ComfyUI của bạn:

{
  "last_node_id": 7,
  "last_link_id": 9,
  "nodes": [
    {
      "id": 1,
      "type": "UnetLoaderGGUF",
      "pos": [60, 100],
      "size": [340, 90],
      "outputs": [{"name": "MODEL", "type": "MODEL", "slot_index": 0, "links": [1]}],
      "widgets_values": ["qwen-image-2.1-UC-Q4_K_M.gguf"]
    },
    {
      "id": 2,
      "type": "CLIPLoader",
      "pos": [60, 240],
      "size": [340, 110],
      "outputs": [{"name": "CLIP", "type": "CLIP", "slot_index": 0, "links": [2]}],
      "widgets_values": ["qwen3vl_8b_w4a8_heretic.safetensors", "qwen_image", "default"]
    },
    {
      "id": 3,
      "type": "VAELoader",
      "pos": [60, 400],
      "size": [340, 80],
      "outputs": [{"name": "VAE", "type": "VAE", "slot_index": 0, "links": [3, 4]}],
      "widgets_values": ["qwen_image_2.1_vae_bf16.safetensors"]
    },
    {
      "id": 4,
      "type": "TextEncodeQwenImage21",
      "pos": [450, 100],
      "size": [450, 440],
      "inputs": [
        {"name": "clip", "type": "CLIP", "link": 2},
        {"name": "vae", "type": "VAE", "link": 3}
      ],
      "outputs": [
        {"name": "positive", "type": "CONDITIONING", "slot_index": 0, "links": [5]},
        {"name": "negative", "type": "CONDITIONING", "slot_index": 1, "links": [6]},
        {"name": "latent", "type": "LATENT", "slot_index": 2, "links": [7]}
      ],
      "widgets_values": [
        "A full-body high-fashion editorial portrait of a beautiful young woman wearing stylish glasses, relaxed reclined posture, natural curves, modern apparel. Shot on 85mm f/1.8 lens, soft diffused studio lighting, authentic realistic skin texture with fine pores, sharp focus.",
        "oversaturated, high contrast burn, plastic doll skin, airbrushed, CGI, 3D render, cartoon, deformed anatomy, distorted hands, bad fingers, blurry face, watermark",
        1280
      ]
    },
    {
      "id": 5,
      "type": "KSampler",
      "pos": [940, 100],
      "size": [320, 480],
      "inputs": [
        {"name": "model", "type": "MODEL", "link": 1},
        {"name": "positive", "type": "CONDITIONING", "link": 5},
        {"name": "negative", "type": "CONDITIONING", "link": 6},
        {"name": "latent_image", "type": "LATENT", "link": 7}
      ],
      "outputs": [
        {"name": "LATENT", "type": "LATENT", "slot_index": 0, "links": [8]}
      ],
      "widgets_values": [123456789, "randomize", 35, 2.2, "euler", "simple", 1]
    },
    {
      "id": 6,
      "type": "VAEDecode",
      "pos": [1310, 100],
      "size": [220, 80],
      "inputs": [
        {"name": "samples", "type": "LATENT", "link": 8},
        {"name": "vae", "type": "VAE", "link": 4}
      ],
      "outputs": [
        {"name": "IMAGE", "type": "IMAGE", "slot_index": 0, "links": [9]}
      ]
    },
    {
      "id": 7,
      "type": "SaveImage",
      "pos": [1310, 240],
      "size": [340, 320],
      "inputs": [
        {"name": "images", "type": "IMAGE", "link": 9}
      ],
      "widgets_values": ["Qwen2.1_Uncensored"]
    }
  ],
  "links": [
    [1, 1, 0, 5, 0, "MODEL"],
    [2, 2, 0, 4, 0, "CLIP"],
    [3, 3, 0, 4, 1, "VAE"],
    [4, 3, 0, 6, 1, "VAE"],
    [5, 4, 0, 5, 1, "CONDITIONING"],
    [6, 4, 1, 5, 2, "CONDITIONING"],
    [7, 4, 2, 5, 3, "LATENT"],
    [8, 5, 0, 6, 0, "LATENT"],
    [9, 6, 0, 7, 0, "IMAGE"]
  ],
  "version": 0.4
}

Ma trận hệ sinh thái: Công dụng và lựa chọn giữa ComfyUI Uncensored, Viggle Turbo và Vulkan C++

Hệ sinh thái Qwen-Image-2.1 hiện đã phân hóa thành 3 nhánh giải pháp độc lập, mỗi nhánh giải quyết một bài toán phần cứng và nhu cầu sáng tạo hoàn toàn khác nhau:

Tiêu chí so sánh ComfyUI Uncensored (GGUF + Heretic) Viggle Turbo (DMD2 4-Step) qwenimage-ncnn-vulkan (Engine C++)
Mục đích cốt lõi Sáng tạo tự do, triệt tiêu bộ lọc từ chối, dựng đồ họa chất lượng cao Tăng tốc độ sinh ảnh gấp 10 lần, phác thảo concept siêu nhanh Cứu tinh phần cứng yếu, chạy trên GPU phổ thông không cần CUDA
Kiểm duyệt (Censorship) Xóa bỏ 100% (Heretic abliteration triệt tiêu refusal rate từ 100% về 5%) Giữ nguyên mức an toàn gốc của mô hình Alibaba Giữ nguyên mức an toàn gốc của mô hình Alibaba
Số bước lấy mẫu 35 - 40 bước (chất lượng chi tiết cực cao) 4 bước (chu trình nén chưng cất DMD2) 40 bước (thuật toán fp16 chuẩn)
Tốc độ sinh ảnh 20 - 45 giây (tùy GPU RTX 30/40) 1.8 - 4.5 giây (siêu tốc độ) 1.5 - 3 phút (trung chuyển qua bus PCIe)
Yêu cầu VRAM tối thiểu 8GB VRAM (bản Q4_K_M offload Text Encoder sang RAM) 8GB VRAM (bản GGUF) hoặc 16GB+ (bản bf16) 2GB - 4GB VRAM (nhờ cơ chế nạp tầng tuần tự)
Yêu cầu môi trường Python, PyTorch, ComfyUI, Node GGUF Python, Diffusers hoặc ComfyUI GGUF File nhị phân C++ độc lập 15MB, không cần Python/CUDA
Phần cứng tương thích Nvidia RTX (CUDA) và Apple Silicon (Metal) Nvidia RTX (CUDA) và Apple Silicon (Metal) Đa nền tảng: Nvidia, AMD Radeon, Intel Arc/Iris, Mac
Bài phân tích chi tiết Chính bài viết này Qwen-Image-2.1 Viggle Turbo Qwen-Image-2.1 ncnn Vulkan

Tóm tắt công dụng từng giải pháp để chọn đúng nhu cầu:

  • Chọn ComfyUI Uncensored (Bài này) khi bạn muốn toàn quyền kiểm soát quy trình sáng tạo, cần vẽ các chủ đề nghệ thuật, giải phẫu, kinh dị mà không bị hệ thống từ chối, và máy có card đồ họa Nvidia từ 8GB VRAM trở lên.
  • Chọn Viggle Turbo khi bạn cần tốc độ tối đa để tạo hàng loạt ý tưởng, dựng storyboard hoặc sản xuất nội dung nhanh (2 đến 4 giây/ảnh) trên card từ 8GB VRAM, chấp nhận khóa CFG ở mức 1.0 và không chỉnh sửa nhiều ảnh tham chiếu phức tạp.
  • Chọn qwenimage-ncnn-vulkan khi bạn dùng máy cấu hình phổ thông, laptop mỏng nhẹ có card 2GB - 4GB VRAM (GTX 1650, RTX 3050 Ti), card AMD hoặc chip đồ họa tích hợp Intel. Engine C++ giúp bạn chạy được mô hình 7B cục bộ mà không sợ tràn VRAM, với thời gian chờ khoảng 1.5 đến 3 phút mỗi ảnh.

⚡ Master Prompt Tự Động Hóa 1-Shot (Không Chạm)

Nếu bạn dùng các trợ lý lập trình tự hành (như Claude Code, Cursor, Antigravity, hay OpenHands), bạn thậm chí không cần gõ lệnh thủ công. Chỉ cần copy đoạn prompt bên dưới dán vào trợ lý:

You are an expert autonomous systems engineer. Set up and configure Qwen-Image-2.1 Uncensored on my local ComfyUI instance end-to-end by executing the following steps:

1. System & Environment Detection:
   - Identify whether ComfyUI is installed as a git repository or via Comfy Desktop (check `%LOCALAPPDATA%\Comfy-Desktop` on Windows or `~/ComfyUI`).
   - Verify the ComfyUI version is at least v0.36.0 (target v0.37.1 or latest release). If older, pull/checkout the latest release.
   - Detect active GPU VRAM via nvidia-smi.

2. Custom Node Installation:
   - Verify if `custom_nodes/ComfyUI-GGUF` exists. If missing, clone `https://github.com/leejet/ComfyUI-GGUF.git`.
   - Install required packages into the active python virtual environment: `pip install -r custom_nodes/ComfyUI-GGUF/requirements.txt` (specifically ensuring `gguf>=0.13.0` and `protobuf`).

3. Model Acquisition (Download with resume support):
   Download the following 3 files into the active models directory (respecting ComfyUI-Shared if using Comfy Desktop):
   - DiT Model -> `models/diffusion_models/qwen-image-2.1-UC-Q4_K_M.gguf`:
     URL: https://huggingface.co/abenzerps/Qwen-Image-2.1-Uncensored-GGUF/resolve/main/qwen-image-2.1-UC-Q4_K_M.gguf
   - Text Encoder -> `models/text_encoders/qwen3vl_8b_w4a8_heretic.safetensors`:
     URL: https://huggingface.co/pottokao/Qwen-Image-2.1-Text-Encoder-Heretic-W4A8/resolve/main/qwen3vl_8b_w4a8_heretic.safetensors
   - VAE -> `models/vae/qwen_image_2.1_vae_bf16.safetensors`:
     URL: https://huggingface.co/abenzerps/Qwen-Image-2.1-Uncensored-GGUF/resolve/main/vae/qwen_image_2.1_vae_bf16.safetensors

4. Workflow Generation:
   - Create a ready-to-load `qwen_image_2.1_uncensored.json` workflow file and save it to the Desktop and the ComfyUI `user/default/workflows/` directory.
   - Configure the nodes:
     * UnetLoaderGGUF loading `qwen-image-2.1-UC-Q4_K_M.gguf`
     * CLIPLoader loading `qwen3vl_8b_w4a8_heretic.safetensors` with `type: qwen_image`
     * VAELoader loading `qwen_image_2.1_vae_bf16.safetensors`
     * TextEncodeQwenImage21 with resolution set to 1280
     * KSampler configured with `steps: 35`, `cfg: 2.2`, `sampler: euler`, `scheduler: simple`
     * VAEDecode -> SaveImage
   - If Comfy Desktop is used, ensure `installations.json` is preserved in valid UTF-8 without BOM.

5. Launch & Verification:
   - Verify model loading in python without errors.
   - Launch ComfyUI / Comfy Desktop and notify me when the canvas is ready for generation.

Lời khuyên cuối (Final Take)

Sự kết hợp giữa lượng tử hóa GGUF và kỹ thuật triệt tiêu định hướng Heretic chứng minh rằng cộng đồng mã nguồn mở luôn tìm ra cách trao lại quyền kiểm soát phần cứng cho lập trình viên. Đừng lãng phí tiền thuê GPU đám mây nếu cỗ máy dưới bàn làm việc của bạn đủ sức gánh vác việc đó.


Thử thách thực hành (Student First Assignment)

  1. Tải file DiT lượng tử qwen-image-2.1-UC-Q4_K_M.gguf (4.60 GB) và bản Text Encoder qwen3vl_8b_w4a8_heretic.safetensors về máy.
  2. Thiết lập workflow ComfyUI tối giản sử dụng Unet Loader (GGUF) kết nối với CLIPLoader (qwen_image).
  3. Chạy thử nghiệm một câu prompt phức tạp có chứa yếu tố giải phẫu mỹ thuật hoặc hình ảnh chiến trường đổ nát để kiểm tra xem hệ thống có bị nghẽn refusal hay không.
  4. Ghi lại lượng VRAM tiêu thụ thực tế bằng lệnh nvidia-smi và so sánh giữa chế độ tải toàn bộ lên VRAM và chế độ offload sang RAM.

Câu hỏi thường gặp (FAQ)

Tại sao chạy ComfyUI lại báo lỗi thiếu node TextEncodeQwenImage21?

Lỗi này xảy ra do phiên bản ComfyUI đang cài đặt là 0.34.2 hoặc cũ hơn, chưa được tích hợp kiến trúc mô hình mới của Qwen 2.1. Bạn chỉ cần chạy lệnh git pull trong thư mục ComfyUI để cập nhật lên phiên bản 0.36.0 trở lên.

Mô hình Qwen-Image-2.1 Uncensored này có chạy được trên máy Mac Apple Silicon không?

Hoàn toàn được. Bạn chỉ cần tải phiên bản DiT qwen-image-2.1-UC-Q4_K_M.gguf cùng Text Encoder qwen3vl_8b_heretic-Q4_K_M.gguf và chạy thông qua node CLIPLoaderGGUF. Máy Mac trang bị chip M2/M3/M4 với 16GB Unified Memory trở lên sẽ chạy rất mượt.

Chạy DiT Q4_K_M có làm giảm chất lượng hình ảnh so với bản gốc BF16 không?

Độ suy giảm chất lượng giữa Q4_K_M và BF16 là dưới 1.5% đối với các chi tiết thông thường, nhưng dung lượng file giảm hơn 65% (từ 16GB xuống còn 4.6GB). Đây là mức đánh đổi lý tưởng nhất cho người dùng cá nhân.

Mô hình DiT gốc của Alibaba có bị kiểm duyệt không, hay chỉ bị ở Text Encoder?

Trọng số khuếch tán DiT gốc của Alibaba vốn không chứa bộ lọc hình ảnh nội tại; sự kiểm duyệt trên các dịch vụ đám mây thực chất đến từ wrapper lớp ứng dụng và đặc biệt là bộ mã hóa văn bản Qwen3-VL-8B-Instruct (vốn được căn chỉnh an toàn RLHF). Nếu bạn dùng DiT gốc nhưng ghép với Text Encoder Heretic đã triệt tiêu vector từ chối, mô hình vẫn sinh ảnh tự do bình thường.

Card đồ họa 4GB VRAM (như RTX 3050 Ti, GTX 1650) có chạy nổi mô hình này không?

Nếu chạy trực tiếp qua ComfyUI hoặc PyTorch trong bài viết này thì rất khó và không khuyến khích. Bản nén nhỏ nhất Q4_0 đã chiếm 4.05GB VRAM thô, chưa tính VRAM cho hệ điều hành và Text Encoder. Trên card 4GB, PyTorch sẽ văng lỗi CUDA out of memory hoặc ép máy chạy CPU offload toàn phần (--cpu), khiến thời gian sinh mỗi bức ảnh kéo dài từ 15 đến 30 phút.

Tuy nhiên, bạn hoàn toàn có thể chạy mượt mà mô hình Qwen-Image-2.1 7B trên card 4GB VRAM (thậm chí card 2GB) bằng cách chuyển sang giải pháp qwenimage-ncnn-vulkan. Nhờ kỹ thuật nạp tầng tuần tự (Sequential Layer Streaming) bằng C++ và compute shader Vulkan, engine chỉ cần 2GB VRAM trên GPU để xử lý từng khối transformer, thời gian sinh ảnh chỉ mất từ 1.5 đến 3 phút mà chất lượng vẫn đạt 98% đến 99%.

Lưu ý sống còn trên Windows: Cơ chế WDDM giới hạn ứng dụng Vulkan chỉ được cấp phát tối đa 50% RAM hệ thống theo công thức: (1/2 RAM hệ thống) + VRAM >= 16 GB. Do đó, nếu máy Windows dùng card 4GB VRAM, bạn cần tối thiểu 24GB đến 32GB RAM để không bị văng lỗi khi khởi động. Nếu chạy trên Linux, hệ thống 16GB RAM kết hợp card 4GB VRAM có thể chạy bình thường. Mặt khác, nếu ưu tiên tốc độ tối đa (2 đến 4 giây/ảnh), bạn có thể tham khảo Qwen-Image-2.1 Viggle Turbo, nhưng phiên bản này bắt buộc phần cứng từ 8GB VRAM trở lên.

Bài viết liên quan