license: other license_name: qwen-research license_link: LICENSE base_model: Qwen/Qwen-Image-2.1-Turbo base_model_relation: quantized library_name: gguf pipeline_tag: text-to-image tags:
- sakura
- sakura-mini
- gguf
- stable-diffusion.cpp
- comfyui
- text-to-image
- qwen-image
- uncensored
- abliterated
- heretic
- not-for-all-audiences
Sakura — Qwen-Image-2.1-Turbo, uncensored (GGUF)
Built with Qwen. Community quantization of Qwen/Qwen-Image-2.1-Turbo (8-step distilled, 7B DiT) with an abliterated text encoder. Independent work, not made or endorsed by Alibaba/Qwen. Non-commercial use only (Qwen RESEARCH LICENSE AGREEMENT, copy in LICENSE).
For adults only; you are responsible for what you generate and for the laws that apply to you.
What you need to run it
Everything except the runtime is in this repository. Pick the column of the program you use:
| Part | stable-diffusion.cpp | ComfyUI |
|---|---|---|
| Image model (pick one) | Sakura-Image-2.1-Turbo-Q8_0-7.07GiB.gguf (best), Sakura-Image-2.1-Turbo-Q5_K_M-4.60GiB.gguf (better) or Sakura-Image-2.1-Turbo-Q4_K_M-3.77GiB.gguf (smallest), passed with --diffusion-model | the same file, loaded with Unet Loader (GGUF) |
| Uncensored text encoder (pick one) | Sakura-TextEncoder-Qwen3VL-8B-Uncensored-8bit-8.11GiB.gguf (GGUF Q8_0, recommended: closest to the official encoder in our image test) or Sakura-TextEncoder-Qwen3VL-8B-Uncensored-4bit-4.68GiB.gguf (GGUF Q4_K_M, smaller), passed with --llm | the same file, loaded with CLIPLoader (GGUF), type qwen_image |
| mmproj file (vision tower) | not needed | required: ComfyUI-mmproj-8bit-Sakura-TextEncoder-Qwen3VL-8B-Uncensored-8bit-8.11GiB.gguf (for the 8bit encoder) or ComfyUI-mmproj-4bit-Sakura-TextEncoder-Qwen3VL-8B-Uncensored-4bit-4.68GiB.gguf (for the 4bit encoder), in the same folder as the encoder |
| VAE | qwen_image_2.1_vae_bf16.safetensors (0.63 GiB, unmodified copy of the official file, identical sha256), passed with --vae | the same file, loaded with Load VAE |
| Program | sd-cli / sd-server of stable-diffusion.cpp master (we used commit 228c707, Vulkan build), not included | a recent ComfyUI build with native Qwen-Image 2.1 support and a ComfyUI-GGUF loader that supports Qwen-Image 2.1 and Qwen3-VL text encoders (custom node), not included |
The text encoder file names have no quantization label on purpose, so the Hub card lists only the image models.
Install in ComfyUI
- Use a recent ComfyUI build with native Qwen-Image 2.1 support.
- Install a ComfyUI-GGUF loader that supports Qwen-Image 2.1 and Qwen3-VL text encoders (custom node; restart ComfyUI afterwards).
- Put the image model (
.gguf) intoComfyUI/models/diffusion_models/(orunet/), the VAE intoComfyUI/models/vae/, and the text encoder together with its mmproj file intoComfyUI/models/text_encoders/. Keep the file names as they are: the loader pairs the encoder with themmprojfile by name (Sakura-TextEncoder-…-8bit-8.11GiB.ggufwithComfyUI-mmproj-8bit-Sakura-TextEncoder-…-8bit-8.11GiB.gguf). - Build the graph with Unet Loader (GGUF) (image model), CLIPLoader (GGUF) with type
qwen_image(text encoder), the normal Load VAE, and the TextEncodeQwenImage21 node. Sampling: 8 steps, CFG 1.0,euler, with the Turbo sigmas1.0, 0.978453, 0.95418, 0.926626, 0.89508, 0.845148, 0.704534, 0.414568, 0.0(node "ManualSigmas" into "SamplerCustomAdvanced").
Tested: ComfyUI with a ComfyUI-GGUF build that supports Qwen3-VL text encoders, 512x512; the Q5_K_M and Q4_K_M image models and both text encoders ran and produced correct images (combinations: Q5_K_M with 4bit, Q4_K_M with 8bit). Other GGUF loader forks were not tested. The mmproj file is only needed for ComfyUI; stable-diffusion.cpp ignores it.
Weights in memory for Q5_K_M with the 8bit encoder: about 4.6 + 8.1 + 0.6 = 13.3 GiB (with the 4bit encoder: 4.6 + 4.7 + 0.6 = 10 GiB) (we did not measure peak VRAM for this exact combination).
What is "uncensored" here, exactly
| Part | What we did |
|---|---|
| Text encoder (Qwen3-VL-8B) | Directional ablation with Heretic (o_proj + down_proj), then GGUF Q8_0 and Q4_K_M. Measured as a chat model: refusals on Heretic's 100 held-out harmful prompts 100/100 -> 8/100, KL divergence of the first-token distribution 0.047 (BF16 checkpoint, before quantization). |
| Image model (7B DiT) | Only quantized (Q4_K, Q5_K, Q8_0) from the official Turbo weights. We did not change what the DiT can draw. |
What we did not measure: how much the ablated encoder changes the images. The refusal numbers describe the encoder used as a language model; in this pipeline it only supplies embeddings. We only compared neutral prompts (see below). No sample images of restricted content are included.
Files
| File | Size | What it is |
|---|---|---|
Sakura-Image-2.1-Turbo-Q8_0-7.07GiB.gguf | 7.07 GiB | image model (DiT), Q8_0 |
Sakura-Image-2.1-Turbo-Q5_K_M-4.60GiB.gguf | 4.60 GiB | image model (DiT), uniform Q5_K recipe of sd.cpp (file name carries the standard label Q5_K_M so the Hub recognises it) |
Sakura-Image-2.1-Turbo-Q4_K_M-3.77GiB.gguf | 3.77 GiB | image model (DiT), uniform Q4_K recipe of sd.cpp (file name carries the standard label Q4_K_M) |
Sakura-TextEncoder-Qwen3VL-8B-Uncensored-8bit-8.11GiB.gguf | 8.11 GiB | our ablated text encoder, Q8_0 (recommended) |
Sakura-TextEncoder-Qwen3VL-8B-Uncensored-4bit-4.68GiB.gguf | 4.68 GiB | our ablated text encoder, Q4_K_M (smaller) |
ComfyUI-mmproj-8bit-Sakura-TextEncoder-Qwen3VL-8B-Uncensored-8bit-8.11GiB.gguf and ComfyUI-mmproj-4bit-Sakura-TextEncoder-Qwen3VL-8B-Uncensored-4bit-4.68GiB.gguf | 1.08 GiB each | vision tower of Qwen3-VL-8B (F16, converted from the official weights, unmodified; both files are identical), only needed for ComfyUI |
The VAE qwen_image_2.1_vae_bf16.safetensors in this repository is the unmodified official file from Comfy-Org/Qwen-Image-2.1.
Run with stable-diffusion.cpp
sd-cli \
--diffusion-model Sakura-Image-2.1-Turbo-Q5_K_M-4.60GiB.gguf \
--vae qwen_image_2.1_vae_bf16.safetensors \
--llm Sakura-TextEncoder-Qwen3VL-8B-Uncensored-8bit-8.11GiB.gguf \
--sigmas "1.0,0.978453,0.95418,0.926626,0.89508,0.845148,0.704534,0.414568,0.0" \
--steps 8 --cfg-scale 1.0 --sampling-method euler --diffusion-fa --vae-tiling \
-W 1024 -H 1024 -p "your prompt" -o out.png
We ran and measured everything at 512x512 (8 steps, about 12 to 15 s per image on a Radeon 8060S with Vulkan); 1024x1024 is the usual size of the model but we did not test it. The sigma schedule is the official Turbo schedule (sample_sigmas of the model card). Use CFG 1.0 and 8 steps. sd-cli/sd-server of stable-diffusion.cpp master (commit 228c707 was used) load these files directly.
Image-model quality (what we measured)
Same prompts, same seed (42), 512x512, 8 steps, same machine; reference is the Q8_0 file the two files were made from (DogukanUrker's). Eight neutral prompts (cat, street with neon signs, portrait, mountain lake, poster with text, kitchen, marble statue, beach). Higher is closer to Q8_0; a diffusion model changes details even with tiny weight changes, so these are deviation numbers, not a quality score.
| File | Size | PSNR vs Q8_0 | SSIM vs Q8_0 |
|---|---|---|---|
| Q5_K | 4.60 GiB | 24.77 dB | 0.906 |
| Q4_K | 3.77 GiB | 21.46 dB | 0.842 |
Text encoder: refusals and effect on images
Our own refusal measurement on the encoder used as a chat model (llama.cpp, Q4_K_M, temperature 0, 120 tokens, 104 held-out harmful prompts of the Heretic harmful_behaviors test split, identical prompts and settings for both rows):
| Text encoder (Q4_K_M) | strict refusals | broad refusal markers |
|---|---|---|
| official, unchanged | 58 / 104 | 98 / 104 |
| ours (Heretic) | 0 / 104 | 9 / 104 |
Same probe on the Q8_0 version of our encoder (temperature 0, 120 tokens, same 104 prompts): 0 / 104 strict refusals, 7 / 104 broad markers.
Heretic's own count on its 100 evaluation prompts: 100/100 refusals before, 8/100 after, KL divergence 0.047 (trial 66 of 70, seed 42, 24 random start trials; checkpoint selection rule: fewest refusals with KL <= 0.1).
Effect on images (Q8_0 image model, eight neutral prompts, seed 42; reference = the same Q8_0 with the official int8 text encoder):
| Text encoder | PSNR vs reference | SSIM vs reference |
|---|---|---|
| official encoder as GGUF Q4_K_M | 20.75 dB | 0.830 |
| ours (Heretic) Q4_K_M | 18.70 dB | 0.771 |
| ours (Heretic) Q8_0 | 25.59 dB | 0.908 |
The 4bit ablated encoder moves the images further away from the reference than plain 4bit quantization does (compositions and details change), but the images follow the prompts (we looked at the cat, street and poster images; text such as "LISBOA" is still rendered correctly). These numbers do not say anything about content restrictions.
What we changed (Qwen RESEARCH LICENSE, section 3b)
Sakura-Image-2.1-Turbo-Q8_0-7.07GiB.gguf: made withsd-cli -M convertdirectly from the official BF16 weights of Qwen-Image-2.1-Turbo (sha256 of both shards checked); its tensors are identical to the Q8_0 file below (compared tensor by tensor), apart from the norm weights mentioned further down. Modified file.Sakura-Image-2.1-Turbo-Q5_K_M-*.gguf,Sakura-Image-2.1-Turbo-Q4_K_M-*.gguf: made withsd-cli -M convertfrom the Q8_0 GGUF of DogukanUrker/Qwen-Image-2.1-Turbo-GGUF (sha256228d7931adade6cd..., itself a conversion of the official BF16 weights), not directly from the BF16 weights. They are plain uniform Q5_K / Q4_K files like other sd.cpp conversions; the new part of this repository is the text encoder. Modified files.Sakura-TextEncoder-*.gguf: the official text encoder of Qwen-Image-2.1-Turbo with Heretic's directional ablation (o_proj,down_proj) merged into the weights, converted to GGUF with llama.cpp and quantized to Q8_0 (8bit file) or Q4_K_M (4bit file). Modified files.ComfyUI-mmproj-*.gguf: the vision tower of the official Qwen3-VL-8B encoder, converted to GGUF F16 with llama.cpp. Unmodified weights (Heretic only changes the language model).- Since 2026-10-09 the 64 small attention-norm weights (
attn.norm_q,attn.norm_k) of the image-model files are stored as F32 instead of Q8_0 (the same values after dequantization, +22 KB) so that ComfyUI can read them. A check with stable-diffusion.cpp (Q5_K_M, 4bit encoder, one prompt, seed 42, 512x512) gave a pixel-identical image before and after. qwen_image_2.1_vae_bf16.safetensorsis an unmodified copy of the official VAE. Tokenizer and scheduler are not part of this repository.
License and use
Qwen RESEARCH LICENSE AGREEMENT (LICENSE): use, reproduction and modification for non-commercial purposes only (research or evaluation); redistribution requires this license text and the notices in NOTICE. The agreement is governed by the laws of China. "Qwen" is the name of the original work; this is a derivative work by Sakura, "based on Qwen-Image-2.1-Turbo".
Part of the Sakura Mini line.
Credits
- Original model: Qwen/Qwen-Image-2.1-Turbo (Qwen / Alibaba).
- Ablation: p-e-w/heretic (AGPL-3.0, used as a tool; not included here).
- GGUF conversion: leejet/stable-diffusion.cpp (MIT) and ggml-org/llama.cpp (MIT).
English above. 本节为上文的中文翻译(Sakura = 樱花 yīnghuā);完整的独立中文版见 README_zh.md。
Sakura — Qwen-Image-2.1-Turbo,去审查版(GGUF)
Built with Qwen. 这是 Qwen/Qwen-Image-2.1-Turbo(8 步蒸馏,7B DiT)的社区量化版本,并附带一个 经消融(abliterated)的文本编码器。属于独立工作,并非 Alibaba/Qwen 制作或认可。仅限非商业用途(Qwen RESEARCH LICENSE AGREEMENT,副本见 LICENSE)。
仅限成年人使用;您需对自己生成的内容以及适用于您的法律负责。
运行所需文件
除运行程序外,所需文件都在本仓库中。请选择您所用程序对应的一列:
| 部分 | stable-diffusion.cpp | ComfyUI |
|---|---|---|
| 图像模型(三选一) | Sakura-Image-2.1-Turbo-Q8_0-7.07GiB.gguf(最佳)、Sakura-Image-2.1-Turbo-Q5_K_M-4.60GiB.gguf(质量更好)或 Sakura-Image-2.1-Turbo-Q4_K_M-3.77GiB.gguf(最小),通过 --diffusion-model 传入 | 同一个文件,用 Unet Loader (GGUF) 加载 |
| 去审查文本编码器(二选一) | Sakura-TextEncoder-Qwen3VL-8B-Uncensored-8bit-8.11GiB.gguf(GGUF Q8_0,推荐:在我们的图像测试中最接近官方编码器)或 Sakura-TextEncoder-Qwen3VL-8B-Uncensored-4bit-4.68GiB.gguf(GGUF Q4_K_M,更小),通过 --llm 传入 | 同一个文件,用 CLIPLoader (GGUF) 加载,类型为 qwen_image |
| mmproj 文件(视觉塔) | 不需要 | 必需:ComfyUI-mmproj-8bit-Sakura-TextEncoder-Qwen3VL-8B-Uncensored-8bit-8.11GiB.gguf(对应 8bit 编码器)或 ComfyUI-mmproj-4bit-Sakura-TextEncoder-Qwen3VL-8B-Uncensored-4bit-4.68GiB.gguf(对应 4bit 编码器),与编码器放在同一文件夹 |
| VAE | qwen_image_2.1_vae_bf16.safetensors(0.63 GiB,官方文件的未改动副本,sha256 相同),通过 --vae 传入 | 同一个文件,用 Load VAE 加载 |
| 程序 | stable-diffusion.cpp master 版本的 sd-cli / sd-server(我们使用的是 commit 228c707,Vulkan 构建),不包含 | 原生支持 Qwen-Image 2.1 的较新版 ComfyUI,以及支持 Qwen-Image 2.1 和 Qwen3-VL 文本编码器的 ComfyUI-GGUF 加载器(自定义节点),不包含 |
文本编码器的文件名中特意不带量化标签,这样 Hub 的硬件兼容性卡片只列出图像模型。
在 ComfyUI 中安装
- 使用原生支持 Qwen-Image 2.1 的较新版 ComfyUI。
- 安装支持 Qwen-Image 2.1 和 Qwen3-VL 文本编码器的 ComfyUI-GGUF 加载器(自定义节点;安装后重启 ComfyUI)。
- 将图像模型(
.gguf)放入ComfyUI/models/diffusion_models/(或unet/),VAE 放入ComfyUI/models/vae/,文本编码器 连同其 mmproj 文件 放入ComfyUI/models/text_encoders/。请保持文件名不变:加载器按文件名把编码器与mmproj文件配对(Sakura-TextEncoder-…-8bit-8.11GiB.gguf对应ComfyUI-mmproj-8bit-Sakura-TextEncoder-…-8bit-8.11GiB.gguf)。 - 用 Unet Loader (GGUF)(图像模型)、类型为
qwen_image的 CLIPLoader (GGUF)(文本编码器)、常规的 Load VAE 以及 TextEncodeQwenImage21 节点搭建工作流。采样:8 步,CFG 1.0,euler,Turbo sigmas 为1.0, 0.978453, 0.95418, 0.926626, 0.89508, 0.845148, 0.704534, 0.414568, 0.0(节点 "ManualSigmas" 接入 "SamplerCustomAdvanced")。
已测试:使用支持 Qwen3-VL 文本编码器的 ComfyUI-GGUF 版本的 ComfyUI,512x512;Q5_K_M 和 Q4_K_M 图像模型以及两个文本编码器均能运行并生成正确的图像(组合:Q5_K_M 配 4bit,Q4_K_M 配 8bit)。其他 GGUF 加载器分支未测试。mmproj 文件仅 ComfyUI 需要;stable-diffusion.cpp 会忽略它。
使用 8bit 编码器时,Q5_K_M 在内存中的权重约为:4.6 + 8.1 + 0.6 = 13.3 GiB(使用 4bit 编码器时:4.6 + 4.7 + 0.6 = 10 GiB)(我们没有测量这一具体组合的显存峰值)。
这里的“去审查”具体指什么
| 部分 | 我们做了什么 |
|---|---|
| 文本编码器(Qwen3-VL-8B) | 使用 Heretic 进行定向消融(o_proj + down_proj),再转为 GGUF Q8_0 和 Q4_K_M。作为聊天模型测得:在 Heretic 的 100 条留出有害提示上,拒绝次数 100/100 -> 8/100,首个 token 分布的 KL 散度为 0.047(BF16 检查点,量化之前)。 |
| 图像模型(7B DiT) | 仅对官方 Turbo 权重做了 量化(Q4_K、Q5_K、Q8_0)。我们没有改变 DiT 能画出什么。 |
我们 没有 测量的内容:被消融的编码器对 图像 改变了多少。拒绝次数描述的是把编码器当作语言模型使用时的表现;在本流程中它只提供嵌入向量。我们只比较了中性提示(见下文)。本仓库不包含任何受限内容的示例图片。
文件
| 文件 | 大小 | 说明 |
|---|---|---|
Sakura-Image-2.1-Turbo-Q8_0-7.07GiB.gguf | 7.07 GiB | 图像模型(DiT),Q8_0 |
Sakura-Image-2.1-Turbo-Q5_K_M-4.60GiB.gguf | 4.60 GiB | 图像模型(DiT),sd.cpp 统一的 Q5_K 方案(文件名使用标准标签 Q5_K_M,以便 Hub 识别) |
Sakura-Image-2.1-Turbo-Q4_K_M-3.77GiB.gguf | 3.77 GiB | 图像模型(DiT),sd.cpp 统一的 Q4_K 方案(文件名使用标准标签 Q4_K_M) |
Sakura-TextEncoder-Qwen3VL-8B-Uncensored-8bit-8.11GiB.gguf | 8.11 GiB | 我们消融后的文本编码器,Q8_0(推荐) |
Sakura-TextEncoder-Qwen3VL-8B-Uncensored-4bit-4.68GiB.gguf | 4.68 GiB | 我们消融后的文本编码器,Q4_K_M(更小) |
ComfyUI-mmproj-8bit-Sakura-TextEncoder-Qwen3VL-8B-Uncensored-8bit-8.11GiB.gguf 和 ComfyUI-mmproj-4bit-Sakura-TextEncoder-Qwen3VL-8B-Uncensored-4bit-4.68GiB.gguf | 各 1.08 GiB | Qwen3-VL-8B 的视觉塔(F16,由官方权重转换,未改动;两个文件完全相同),仅 ComfyUI 需要 |
本仓库中的 VAE qwen_image_2.1_vae_bf16.safetensors 是来自 Comfy-Org/Qwen-Image-2.1 的未改动官方文件。
使用 stable-diffusion.cpp 运行
sd-cli \
--diffusion-model Sakura-Image-2.1-Turbo-Q5_K_M-4.60GiB.gguf \
--vae qwen_image_2.1_vae_bf16.safetensors \
--llm Sakura-TextEncoder-Qwen3VL-8B-Uncensored-8bit-8.11GiB.gguf \
--sigmas "1.0,0.978453,0.95418,0.926626,0.89508,0.845148,0.704534,0.414568,0.0" \
--steps 8 --cfg-scale 1.0 --sampling-method euler --diffusion-fa --vae-tiling \
-W 1024 -H 1024 -p "your prompt" -o out.png
我们的所有运行和测量都在 512x512 下进行(8 步,在 Radeon 8060S 上使用 Vulkan,每张图约 12 到 15 秒);1024x1024 是该模型的常用尺寸,但我们没有测试。sigma 调度是官方 Turbo 调度(模型卡中的 sample_sigmas)。请使用 CFG 1.0 和 8 步。stable-diffusion.cpp master 版本的 sd-cli/sd-server(我们使用的是 commit 228c707)可直接加载这些文件。
图像模型质量(我们的测量)
相同提示、相同种子(42)、512x512、8 步、同一台机器;参照是制作这两个文件所用的 Q8_0 文件(DogukanUrker 的版本)。八条中性提示(猫、霓虹招牌街道、肖像、山间湖泊、带文字的海报、厨房、大理石雕像、海滩)。数值越高越接近 Q8_0;即使权重只有微小变化,扩散模型也会改变细节,因此这些是 偏离度 数值,而不是质量评分。
| 文件 | 大小 | 相对 Q8_0 的 PSNR | 相对 Q8_0 的 SSIM |
|---|---|---|---|
| Q5_K | 4.60 GiB | 24.77 dB | 0.906 |
| Q4_K | 3.77 GiB | 21.46 dB | 0.842 |
文本编码器:拒绝次数及对图像的影响
我们对把编码器当作聊天模型使用时的拒绝情况进行了自己的测量(llama.cpp,Q4_K_M,温度 0,并生成 120 个 token,Heretic harmful_behaviors 测试集中的 104 条留出有害提示,两行使用相同的提示和设置):
| 文本编码器(Q4_K_M) | 严格拒绝 | 宽泛拒绝标记 |
|---|---|---|
| 官方,未改动 | 58 / 104 | 98 / 104 |
| 我们的(Heretic) | 0 / 104 | 9 / 104 |
对我们编码器的 Q8_0 版本做同样的测试(温度 0,生成 120 个 token,同样的 104 条提示):严格拒绝 0 / 104,宽泛标记 7 / 104。
Heretic 自己在其 100 条评估提示上的计数:消融前 100/100 次拒绝,消融后 8/100,KL 散度 0.047(70 次试验中的第 66 次,种子 42,随机起始试验 24 次;检查点选择规则:KL <= 0.1 条件下拒绝次数最少)。
对图像的影响(Q8_0 图像模型,八条中性提示,种子 42;参照 = 使用官方 int8 文本编码器的同一个 Q8_0):
| 文本编码器 | 相对参照的 PSNR | 相对参照的 SSIM |
|---|---|---|
| 官方编码器,GGUF Q4_K_M | 20.75 dB | 0.830 |
| 我们的(Heretic)Q4_K_M | 18.70 dB | 0.771 |
| 我们的(Heretic)Q8_0 | 25.59 dB | 0.908 |
4bit 的被消融编码器使图像比单纯 4bit 量化更偏离参照(构图和细节会变化),但图像仍然遵循提示(我们查看了猫、街道和海报图像;“LISBOA”这样的文字仍能正确渲染)。这些数值并不说明任何关于内容限制的情况。
我们改动了什么(Qwen RESEARCH LICENSE,第 3b 节)
Sakura-Image-2.1-Turbo-Q8_0-7.07GiB.gguf:使用sd-cli -M convert直接由 Qwen-Image-2.1-Turbo 的官方 BF16 权重制作(两个分片的 sha256 均已核对);其张量与下面提到的 Q8_0 文件完全相同(逐张量比较),下文提到的归一化权重除外。已修改文件。Sakura-Image-2.1-Turbo-Q5_K_M-*.gguf、Sakura-Image-2.1-Turbo-Q4_K_M-*.gguf:使用sd-cli -M convert,由 DogukanUrker/Qwen-Image-2.1-Turbo-GGUF 的 Q8_0 GGUF(sha256228d7931adade6cd...,其本身是官方 BF16 权重的转换)制作,而不是直接由 BF16 权重制作。它们与其他 sd.cpp 转换版本一样是普通的统一 Q5_K / Q4_K 文件;本仓库的新内容是文本编码器。已修改文件。Sakura-TextEncoder-*.gguf:Qwen-Image-2.1-Turbo 的官方文本编码器,将 Heretic 的定向消融(o_proj、down_proj)合并进权重,用 llama.cpp 转换为 GGUF 并量化为 Q8_0(8bit 文件)或 Q4_K_M(4bit 文件)。已修改文件。ComfyUI-mmproj-*.gguf:官方 Qwen3-VL-8B 编码器的视觉塔,用 llama.cpp 转换为 GGUF F16。权重未改动(Heretic 只改变语言模型)。- 自 2026-10-09 起,图像模型文件中的 64 个小型注意力归一化权重(
attn.norm_q、attn.norm_k)由 Q8_0 改为以 F32 存储(反量化后数值相同,增加 22 KB),以便 ComfyUI 读取。用 stable-diffusion.cpp 检查(Q5_K_M,4bit 编码器,一条提示,种子 42;512x512),修改前后生成的图像逐像素完全相同。 qwen_image_2.1_vae_bf16.safetensors是官方 VAE 的未改动副本。分词器和调度器不属于本仓库。
许可与使用
Qwen RESEARCH LICENSE AGREEMENT(LICENSE):使用、复制和修改 仅限非商业目的(研究或评估);再分发需附带此许可文本以及 NOTICE 中的声明。该协议适用中国法律。“Qwen”是原作品的名称;本作品是 Sakura 的衍生作品,“基于 Qwen-Image-2.1-Turbo”。
属于 Sakura Mini 系列。
致谢
- 原始模型:Qwen/Qwen-Image-2.1-Turbo(Qwen / Alibaba)。
- 消融:p-e-w/heretic(AGPL-3.0,仅作为工具使用;不包含在本仓库中)。
- GGUF 转换:leejet/stable-diffusion.cpp(MIT)和 ggml-org/llama.cpp(MIT)。