← back to catalog · registered 2026-10-12 03:59

webmp3/Sakura-Iris-3B-Uncensored-GGUF

webmp3 3B GGUF image-gen
Your rig guess connected
? Why do I need an app?
Reading your rig…

This is a rough estimate. Install the free app - we'll show exact numbers.

Reading real hardware from your app right now. Numbers below are exact.

Below is the per-quantization compatibility for this model.

curl -H "Authorization: Bearer $ABL_KEY" \
     "https://abliteration.org/api/v1/models/webmp3%2FSakura-Iris-3B-Uncensored-GGUF"
Response includes
  • classification m-uncensored
  • files 12
  • author_summary 4 models
  • readme_text full
10 credits · hourly refresh · ~4 KB payload Get an API key →
Abliteration classifier · v1.0.0
M-U
Primary method

Uncensored (method unknown)

No other method signals detected in this model.
Confidence
LOW
Why this label 3 signals
Weak or ambiguous signals. Best guess based on catalog patterns; treat as tentative and check the evidence below.
  • 'uncensored' in name/tags but no 'abliterated' marker
  • method not identifiable from author declaration alone
  • may be DPO fine-tune, prompt engineering, or unknown technique
Refusal direction extraction

No specific extraction method could be identified for this model. The producer either did not document it or used a proprietary pipeline.

What is a refusal direction? →
Downloads · 30-day
12
Likes
1
Model age
1d ago
created 2026-10-11
Downloads over time
Now12→from0↑0%
049130 on Oct 1212 on Oct 13Oct
Oct 12 → Oct 13 · 2 snapshots · spans 1 day

Genealogy 0 direct forks

Full fork graph →

This model's place in the market. Above: what it was derived from. Below: the tree of everything derived from it.

Metadata

License
apache-2.0
Quantizations
Q4_K Q5_K
Tags
gguf safetensors sakura sakura-image stable-diffusion.cpp text-to-image iris-3b pixel-space uncensored abliterated not-for-all-audiences base_model:speridlabs/iris-3b

Related

Total size
20.7 GB
Files
12
Quantizations
3
Registered
2026-10-12 03:59
Last updated on HF
2026-10-12 00:52

Files by quantization

Q5_K 1 file 3.40 GB
Sakura-Iris-3B-Q5_K_M-3.40GiB.gguf 3.40 GB 869200be download
Q4_K 1 file 3.14 GB
Sakura-Iris-3B-Q4_K_M-3.14GiB.gguf 3.14 GB a65ca4a7 download
Auxiliary files 10 files 14.1 GB
Sakura-Iris-3B-Q8_0-4.15GiB.gguf 4.15 GB 4e9821f1 download
Sakura-TextEncoder-Qwen3VL-4B-Uncensored-8bit-3.99GiB.gguf 3.99 GB ae45d32c download
Sakura-Iris-3B-Q6_K-3.66GiB.gguf 3.66 GB 51e95720 download
Sakura-TextEncoder-Qwen3VL-4B-Uncensored-4bit-2.33GiB.gguf 2.33 GB a876aed5 download
README.md 29.1 KB ee6ce66b download
README_zh.md 13.0 KB 114ec2be download
LICENSE 11.1 KB d6456956 download
SHA256SUMS 2.84 KB 1ebbd01f download
.gitattributes 2.59 KB d80d00de download
NOTICE 2.21 KB b687d2a4 download

README current version from Hugging Face


license: apache-2.0
base_model: speridlabs/iris-3b
base_model_relation: quantized
library_name: gguf
pipeline_tag: text-to-image
tags:

  • sakura
  • sakura-image
  • gguf
  • stable-diffusion.cpp
  • text-to-image
  • iris-3b
  • pixel-space
  • uncensored
  • abliterated
  • not-for-all-audiences
    widget:
  • text: "A vast floating harbour city above the clouds at golden hour: huge wooden and brass airships docking at suspended piers, tiny people on the gangways, waterfalls spilling off the edge of a sky island, warm light, epic wide shot, detailed fantasy concept art."
    output:
    url: images/01_airship.png
  • text: "A hand-painted 1980s fantasy film poster: a warrior woman with long braided hair and a glowing sword stands on a cliff facing a gigantic dragon wreathed in flames, storm clouds and a burning castle behind her. The title at the top reads "EMBER CROWN" in ornate golden letters, the tagline below says "One sword. One kingdom.""
    output:
    url: images/02_emberqueen.png
  • text: "A colossal rusted mecha robot standing motionless in a flooded city at sunrise, moss and flowers growing on its armour, a tiny boat with a child passing between its legs, soft golden mist, epic cinematic wide shot, concept art."
    output:
    url: images/03_mecha.png
  • text: "Anime movie key visual: a mountain village at night during a lantern festival, hundreds of glowing paper lanterns rising into a sky full of stars, a girl in a yukata with a fox mask on her head looking up, warm light, rich detail, painterly background."
    output:
    url: images/04_lanterns.png
  • text: "A narrow rainy street at night in a dense city, neon signs in many colours reflected in the puddles, a lone cyclist holding an umbrella, cinematic wide shot."
    output:
    url: images/05_street.png
  • text: "Portrait photo of an elderly fisherman with a weathered face and a grey beard, wearing a yellow raincoat, a harbour with boats softly out of focus behind him, overcast light."
    output:
    url: images/06_fisherman.png
  • text: "A snow leopard standing alert on a snowy ridge in a light snowfall, head turned toward the camera, both rounded ears upright and clearly visible with black backs and white tufts, thick spotted fur dusted with snow, pale blue eyes, shallow depth of field, wildlife photograph, telephoto lens."
    output:
    url: images/07_leopard.png
  • text: "A clockwork dragon sculpture made of polished brass gears, springs and tiny rivets, wings of thin copper plates, perched on an old wooden workbench, studio macro photograph with dramatic side light and a soft dark background."
    output:
    url: images/08_clockdragon.png
  • text: "A Japanese woodblock print in ukiyo-e style: a samurai cat in armour fishing from a wooden bridge under a huge full moon, ripples on the water, cherry blossom branches, flat colours with fine black outlines, a small red seal in the corner."
    output:
    url: images/09_woodblock.png

Sakura — Iris-3B, uncensored (GGUF)

Community quantization of speridlabs/iris-3b (3 B parameter pixel-space diffusion transformer, no VAE) with an uncensored (abliterated) text encoder (Qwen3-VL-4B-Instruct). Independent work, not made or endorsed by speridlabs or Alibaba/Qwen. Apache-2.0.
For adults only; you are responsible for what you generate and for the laws that apply to you.

Sample generations

Image model Q8_0 (Sakura-Iris-3B-Q8_0-4.15GiB.gguf) and our 8bit uncensored text encoder, stable-diffusion.cpp (Vulkan, Radeon 8060S), 1024x1024, 30 steps, CFG 3, dpm++2m. One seed per prompt, all nine prompts are shown, no re-rolls and no selection. About 212 s per image including model loading (305 s for the first one, other jobs were still running); the whole-GPU memory counter peaked at 11.9 GiB while generating (other jobs were running on the same GPU at times, so these are upper bounds). The images were made with stable-diffusion.cpp.

The prompts are neutral. These images say nothing about what the ablated text encoder changes for restricted content; they only show that ordinary prompts still work. Seeds 1202, 1302, 1305, 1306, 1105, 1103, 1503, 1506, 1406 in the order shown; the prompts are the captions of the images above.

What you need to run it

Everything except the runtime is in this repository. Iris-3B has no VAE: do not pass --vae.

Part 🟦 stable-diffusion.cpp 🟧 ComfyUI
Image model (pick one) Sakura-Iris-3B-Q8_0-4.15GiB.gguf (best), Sakura-Iris-3B-Q6_K-3.66GiB.gguf, Sakura-Iris-3B-Q5_K_M-3.40GiB.gguf or Sakura-Iris-3B-Q4_K_M-3.14GiB.gguf (smallest), passed with --diffusion-model not tested. ComfyUI has no native Iris support (checked 2026-10-11). Our GGUF files carry no general.architecture tag and use the original Iris tensor names; the third-party node RealRebelAI/ComfyUI-Iris-3B expects the tag iris (or wan), so these files will most likely not load there. We did not run that node.
Uncensored text encoder (pick one) Sakura-TextEncoder-Qwen3VL-4B-Uncensored-8bit-3.99GiB.gguf (GGUF Q8_0, recommended) or Sakura-TextEncoder-Qwen3VL-4B-Uncensored-4bit-2.33GiB.gguf (GGUF Q4_K_M with importance matrix, smaller), passed with --llm the BF16 Hugging Face folder TextEncoder-Qwen3VL-4B-Uncensored-bf16/ (written with save_pretrained; the original Iris code loads its encoder with from_pretrained from the path in text_encoder.pretrained, so pointing that setting at this folder should work); not tested with the original Iris code or in ComfyUI
VAE none (pixel space) none
Program sd-cli / sd-server of stable-diffusion.cpp master with Iris support (since commit f89d9b1, 2026-10-10; we used release master-956-1b0ba10, Vulkan), not included –

The text encoder GGUF names carry a label (8bit, 4bit) instead of Q8_0 / Q4_K_M, so the Hub card lists only the image models.

What is "uncensored" here, exactly

Part What we did
Text encoder (Qwen3-VL-4B-Instruct) Directional ablation with Heretic (o_proj + down_proj), then GGUF Q8_0 and Q4_K_M and a BF16 Hugging Face folder. Measured as a chat model: refusals on Heretic's 100 harmful evaluation prompts 97/100 -> 18/100, KL divergence of the first-token distribution 0.087 (BF16 checkpoint, before quantization).
Image model (3 B DiT) Only quantized (Q4_K_M, Q5_K_M, Q6_K, Q8_0) from the official FP32 weights. We did not change what the DiT can draw.

What we did not measure: how much the ablated encoder changes the images of restricted content. The refusal numbers describe the encoder used as a language model; in this pipeline it only supplies hidden states (Iris reads the states of layers 2, 5, 8, ..., 35 of the 36 layers). We only compared neutral prompts (see below). No sample images of restricted content are included.

Files

File Size What it is
Sakura-Iris-3B-Q8_0-4.15GiB.gguf 4.15 GiB image model (DiT), Q8_0
Sakura-Iris-3B-Q6_K-3.66GiB.gguf 3.66 GiB image model (DiT), Q6_K
Sakura-Iris-3B-Q5_K_M-3.40GiB.gguf 3.40 GiB image model (DiT), Q5_K (file name carries the standard label Q5_K_M so the Hub recognises it)
Sakura-Iris-3B-Q4_K_M-3.14GiB.gguf 3.14 GiB image model (DiT), Q4_K (file name carries the standard label Q4_K_M)
Sakura-TextEncoder-Qwen3VL-4B-Uncensored-8bit-3.99GiB.gguf 3.99 GiB our uncensored text encoder, Q8_0 (recommended)
Sakura-TextEncoder-Qwen3VL-4B-Uncensored-4bit-2.33GiB.gguf 2.33 GiB our uncensored text encoder, Q4_K_M (importance matrix, smaller)
TextEncoder-Qwen3VL-4B-Uncensored-bf16/ 8.27 GiB our uncensored text encoder, BF16 Hugging Face folder (two safetensors shards, config, tokenizer)
SHA256SUMS, LICENSE, NOTICE checksums of all files, Apache-2.0 text, notices and the list of changes

Why the image files are not smaller: stable-diffusion.cpp keeps 3.05 GiB of the model in FP32 at every quantization level: the FFN w2 weights (row length 6826 is not divisible by the quantization block size, 2.21 GiB) and the text adapter, timestep embedder and small tensors (0.83 GiB, excluded by its own rule). In our files the w2 weights are stored as F16 (saves 1.04 GiB; with the sd.cpp default rule they would stay FP32 and the files would be 4.19 / 4.44 / 4.71 / 5.20 GiB). The F16 variant was within ±0.6 dB PSNR of the default rule in every pair we compared (one image each, see below).

Run with stable-diffusion.cpp

sd-cli \
  --diffusion-model Sakura-Iris-3B-Q5_K_M-3.40GiB.gguf \
  --llm Sakura-TextEncoder-Qwen3VL-4B-Uncensored-8bit-3.99GiB.gguf \
  --steps 30 --cfg-scale 3 --sampling-method dpm++2m --diffusion-fa \
  -W 1024 -H 1024 -p "your prompt" -o out.png

Width and height must be multiples of 16, prompts are limited to 300 tokens. The original model card uses 100 steps and CFG 3 with a DPM-Solver++ order-2 sampler. We measured and made the images with 30 steps and the dpm++2m sampler of stable-diffusion.cpp.

Steps (Q8_0 image model made with the sd.cpp default rule, 5.20 GiB, not shipped; same prompt and seed, 1024x1024, one image each):

Steps Time per image What we saw
8 61 s usable preview, but rough: over-sharpened, distorted background, plastic-looking surfaces
20 145 s clean, close to 30 steps
30 211 to 309 s clean (setting of all tables below)
50 366 s clean
100 838 s clean (original default; measured with nothing else running)

All times include model loading and were measured on a Radeon 8060S (Vulkan); the 30- and 50-step times were taken while other jobs were running on the machine. Iris is not a distilled model: 8 steps is a preview setting, 20 to 30 steps is a good compromise.

Image-model quality (what we measured)

Reference: the official FP32 model.safetensors run by the same program with the same encoder (official Qwen3-VL-4B-Instruct Q8_0 GGUF), 1024x1024, 30 steps, CFG 3, dpm++2m, seed 42, same machine, prompt "A small orange cat sitting on a blue chair in a sunny room, natural colors, realistic photograph." One image per file, so differences of about one dB or less are noise, and the order of Q5_K_M and Q4_K_M is not resolved by PSNR. Higher is closer to the FP32 reference; a diffusion model changes details even with tiny weight changes, so these are deviation numbers, not a quality score.

File Size PSNR vs FP32 SSIM vs FP32
Q8_0 4.15 GiB 26.97 dB 0.868
Q6_K 3.66 GiB 24.69 dB 0.844
Q5_K_M 3.40 GiB 20.10 dB 0.775
Q4_K_M 3.14 GiB 20.04 dB 0.695

For the same prompt with the sd.cpp default rule (w2 FP32, not shipped): Q8_0 26.84 dB / 0.875, Q6_K 25.23 dB / 0.863, Q5_K_M 20.01 dB / 0.777, Q4_K_M 20.19 dB / 0.703. A second prompt (a travel poster with the word "LISBOA") was measured for the default-rule Q8_0 (19.80 dB / 0.813) and Q4_K_M (15.41 dB / 0.604) and for Q4_K_M with w2 as F16 (15.49 dB / 0.600); the text is rendered correctly in all three. Peak whole-GPU memory with nothing else running: 13.5 GiB for the default-rule Q8_0 (5.20 GiB, not shipped) at 100 steps (2.2 GiB were in use before), 19.0 GiB for the FP32 original at 30 steps. We did not measure the memory of the other quantizations with nothing else running.

Text encoder: refusals and effect on images

Our own refusal measurement on the encoder used as a chat model (llama.cpp, temperature 0, 120 tokens, the 104 harmful prompts of the Heretic harmful_behaviors test split, identical prompts and settings for all rows; these are held out from the direction computation (train split), but the first 100 of the 104 are also the prompts Heretic evaluated its trials on, so this is not an independent test of the selected trial; the Q4_K_M files were built with an importance matrix, see below):

Text encoder strict refusals broad refusal markers
unchanged, Q4_K_M 48 / 104 97 / 104
ours (uncensored), Q4_K_M 0 / 104 14 / 104
unchanged, Q8_0 65 / 104 100 / 104
ours (uncensored), Q8_0 0 / 104 18 / 104

Heretic's own count on its 100 evaluation prompts: 97/100 refusals before, 18/100 after, KL divergence 0.087 (trial 89 of 100, 60 random start trials, seed 42; checkpoint selection rule: fewest refusals with KL <= 0.1). Lower refusal counts were found at higher KL (for example 13/100 at KL 0.163 after 56 trials); we kept the KL <= 0.1 rule, the same as for our Qwen-Image encoder.

Effect on images (image model: Q8_0 made with the sd.cpp default rule, 5.20 GiB, not shipped; prompt "cat", seed 42, 30 steps; reference = the unchanged encoder as Q8_0, so only the encoder differs; one image each):

Text encoder PSNR vs reference SSIM vs reference
unchanged, Q4_K_M without importance matrix 21.42 dB 0.767
unchanged, Q4_K_M with importance matrix 24.61 dB 0.839
ours (uncensored), Q8_0 32.03 dB 0.883
ours (uncensored), Q4_K_M with importance matrix 26.08 dB 0.845

The ablation itself moves the image little (32 dB at Q8_0); 4-bit rounding of the encoder moves it more than the ablation does. The importance matrix helped in this test (21.4 -> 24.6 dB, one image). How the Q4_K_M files were made: importance matrix from the Q8_0 file of the same weights, calib_mix_v1.txt (English / German / code mix), 50 chunks of 512 tokens (stopped at 50 of 96 planned after the values had converged; measured on the unchanged encoder: cosine similarity of 0.998 between the 30- and 40-chunk states, median change per channel 2.3 %), then llama-quantize from the BF16 GGUF. An importance matrix computed from 116 real image prompts in the Iris chat template (32 chunks) gave 24.09 dB for our encoder in the same test, i.e. no better; we kept the generic one. These numbers do not say anything about content restrictions.

What we changed (Apache License 2.0, section 4)

  • Sakura-Iris-3B-*.gguf: made with sd-cli -M convert directly from the official FP32 model.safetensors of speridlabs/iris-3b (sha256 a90e1f4c197bac8491f82078def68884b6a3527ea7fc97a693e3e367372aa80f, checked against the Hub), with --type q8_0|q6_K|q5_K|q4_K and --tensor-type-rules "mlp(_x|_y)?\.w2\.weight$=f16". Modified files.
  • Sakura-TextEncoder-*: the unmodified Qwen3-VL-4B-Instruct (revision ebb281ec70b05090aa6165b016eac8ec08e71b17) with Heretic's directional ablation (o_proj, down_proj) merged into the weights, converted to GGUF with llama.cpp and quantized (Q8_0; Q4_K_M with importance matrix), plus the merged BF16 Hugging Face folder. Modified files.
  • Our unchanged-encoder control: the encoder converted by us from the original weights gives a pixel-identical image to the official Qwen3VL-4B-Instruct-Q8_0.gguf (same image model, prompt and seed), so the converter does not change anything.
  • LICENSE is the Apache License 2.0 text of the original repository; NOTICE carries the original notice and this list of changes.

License and use

Apache License 2.0 (LICENSE), same as Iris-3B and Qwen3-VL-4B-Instruct. Iris-3B is by speridlabs; this is an independent community release.

Credits


中文说明 · 樱花 (Simplified Chinese)

English above. 本节为上文的中文翻译(Sakura = 樱花 yīnghuā);完整的独立中文版见 README_zh.md。

Sakura — Iris-3B,去审查版(GGUF)

这是 speridlabs/iris-3b(3 B 参数的像素空间扩散 Transformer,没有 VAE)的社区量化版本,并附带一个 去审查(abliterated)的文本编码器(Qwen3-VL-4B-Instruct)。属于独立工作,并非 speridlabs 或 Alibaba/Qwen 制作或认可。Apache-2.0。
仅限成年人使用;您需对自己生成的内容以及适用于您的法律负责。

示例生成

Q8_0 图像模型(Sakura-Iris-3B-Q8_0-4.15GiB.gguf)与我们的 8bit 去审查文本编码器,stable-diffusion.cpp(Vulkan,Radeon 8060S),1024x1024、30 步、CFG 3、dpm++2m。每条提示词只用一个种子,展示的是全部九条提示词,没有重抽,也没有挑选。每张图约 212 秒(含模型加载;第一张为 305 秒,当时仍有其他任务在运行);生成期间整块 GPU 的显存计数器峰值为 11.9 GiB(部分时间同一块 GPU 上还有其他任务在运行,因此这些数值是上限)。这些图片由 stable-diffusion.cpp 生成。

提示词是中性的。这些图片并不说明被消融的文本编码器对受限内容有何改变,只说明普通提示词仍然可用。种子依次为 1202, 1302, 1305, 1306, 1105, 1103, 1503, 1506, 1406;提示词即上方图片的说明文字。

运行所需文件

除运行程序外,所需文件都在本仓库中。Iris-3B 没有 VAE:不要传入 --vae。

部分 🟦 stable-diffusion.cpp 🟧 ComfyUI
图像模型(四选一) Sakura-Iris-3B-Q8_0-4.15GiB.gguf(最佳)、Sakura-Iris-3B-Q6_K-3.66GiB.gguf、Sakura-Iris-3B-Q5_K_M-3.40GiB.gguf 或 Sakura-Iris-3B-Q4_K_M-3.14GiB.gguf(最小),通过 --diffusion-model 传入 未测试。 ComfyUI 没有原生的 Iris 支持(2026-10-11 核查)。我们的 GGUF 文件不带 general.architecture 标签,并沿用 Iris 原始的张量名称;第三方节点 RealRebelAI/ComfyUI-Iris-3B 要求标签为 iris(或 wan),因此这些文件很可能无法在其中加载。我们没有运行过该节点。
去审查文本编码器(二选一) Sakura-TextEncoder-Qwen3VL-4B-Uncensored-8bit-3.99GiB.gguf(GGUF Q8_0,推荐)或 Sakura-TextEncoder-Qwen3VL-4B-Uncensored-4bit-2.33GiB.gguf(GGUF Q4_K_M,使用重要性矩阵,更小),通过 --llm 传入 BF16 的 Hugging Face 文件夹 TextEncoder-Qwen3VL-4B-Uncensored-bf16/ (用 save_pretrained 写出;原版 Iris 代码用 from_pretrained 按 text_encoder.pretrained 中的路径加载编码器,因此把该设置指向此文件夹应当可行);未用原版 Iris 代码或在 ComfyUI 中测试
VAE 无(像素空间) 无
程序 支持 Iris 的 stable-diffusion.cpp master 版本的 sd-cli / sd-server(自 commit f89d9b1,2026-10-10 起支持;我们使用的是发行版 master-956-1b0ba10,Vulkan 构建),不包含 –

文本编码器 GGUF 的文件名中使用标签(8bit、4bit)而不是 Q8_0 / Q4_K_M,这样 Hub 的硬件兼容性卡片只列出图像模型。

这里的“去审查”具体指什么

部分 我们做了什么
文本编码器(Qwen3-VL-4B-Instruct) 使用 Heretic 进行定向消融(o_proj + down_proj),再转为 GGUF Q8_0 和 Q4_K_M 以及 BF16 的 Hugging Face 文件夹。作为聊天模型测得:在 Heretic 的 100 条有害评估提示上,拒绝次数 97/100 -> 18/100,首个 token 分布的 KL 散度为 0.087(BF16 检查点,量化之前)。
图像模型(3 B DiT) 仅对官方 FP32 权重做了 量化(Q4_K_M、Q5_K_M、Q6_K、Q8_0)。我们没有改变 DiT 能画出什么。

我们 没有 测量的内容:被消融的编码器对受限内容的 图像 改变了多少。拒绝次数描述的是把编码器当作语言模型使用时的表现;在本流程中它只提供隐藏状态(Iris 读取 36 层中第 2、5、8、...、35 层的状态)。我们只比较了中性提示(见下文)。本仓库不包含任何受限内容的示例图片。

文件

文件 大小 说明
Sakura-Iris-3B-Q8_0-4.15GiB.gguf 4.15 GiB 图像模型(DiT),Q8_0
Sakura-Iris-3B-Q6_K-3.66GiB.gguf 3.66 GiB 图像模型(DiT),Q6_K
Sakura-Iris-3B-Q5_K_M-3.40GiB.gguf 3.40 GiB 图像模型(DiT),Q5_K(文件名使用标准标签 Q5_K_M,以便 Hub 识别)
Sakura-Iris-3B-Q4_K_M-3.14GiB.gguf 3.14 GiB 图像模型(DiT),Q4_K(文件名使用标准标签 Q4_K_M)
Sakura-TextEncoder-Qwen3VL-4B-Uncensored-8bit-3.99GiB.gguf 3.99 GiB 我们的去审查文本编码器,Q8_0(推荐)
Sakura-TextEncoder-Qwen3VL-4B-Uncensored-4bit-2.33GiB.gguf 2.33 GiB 我们的去审查文本编码器,Q4_K_M(重要性矩阵,更小)
TextEncoder-Qwen3VL-4B-Uncensored-bf16/ 8.27 GiB 我们的去审查文本编码器,BF16 的 Hugging Face 文件夹(两个 safetensors 分片、配置和分词器)
SHA256SUMS、LICENSE、NOTICE 全部文件的校验和、Apache-2.0 文本、声明以及改动清单

为什么图像文件不更小: stable-diffusion.cpp 在每个量化级别都把模型中的 3.05 GiB 保留为 FP32:FFN 的 w2 权重(行长度 6826 不能被量化块大小整除,2.21 GiB)以及文本适配器、时间步嵌入器和小张量(0.83 GiB,按它自己的规则排除)。在我们的文件中,w2 权重以 F16 存储(节省 1.04 GiB;按 sd.cpp 默认规则它们会保持 FP32,文件大小会是 4.19 / 4.44 / 4.71 / 5.20 GiB)。在我们比较的每一对中,F16 变体与默认规则的 PSNR 相差不超过 ±0.6 dB(每个文件一张图,见下文)。

使用 stable-diffusion.cpp 运行

sd-cli \
  --diffusion-model Sakura-Iris-3B-Q5_K_M-3.40GiB.gguf \
  --llm Sakura-TextEncoder-Qwen3VL-4B-Uncensored-8bit-3.99GiB.gguf \
  --steps 30 --cfg-scale 3 --sampling-method dpm++2m --diffusion-fa \
  -W 1024 -H 1024 -p "your prompt" -o out.png

宽度和高度必须是 16 的倍数,提示词限制为 300 个 token。原版模型卡使用 100 步、CFG 3 和 DPM-Solver++ order-2 采样器。我们的测量和图片使用 30 步以及 stable-diffusion.cpp 的 dpm++2m 采样器。

步数(使用 sd.cpp 默认规则制作的 Q8_0 图像模型,5.20 GiB,未提供;相同提示词和种子,1024x1024,每个设置一张图):

步数 每张图耗时 我们看到的
8 61 秒 可用的预览,但粗糙:过度锐化、背景扭曲、表面像塑料
20 145 秒 干净,接近 30 步
30 211 到 309 秒 干净(下方所有表格使用的设置)
50 366 秒 干净
100 838 秒 干净(原版默认值;测量时机器上没有其他任务)

所有耗时都包含模型加载,在 Radeon 8060S(Vulkan)上测得;30 步和 50 步的耗时是在机器上还有其他任务运行时取得的。Iris 不是蒸馏模型:8 步只是预览设置,20 到 30 步是不错的折中。

图像模型质量(我们的测量)

参照:官方 FP32 的 model.safetensors,由同一程序、同一编码器(官方 Qwen3-VL-4B-Instruct Q8_0 GGUF)运行,1024x1024、30 步、CFG 3、dpm++2m、种子 42、同一台机器,提示词为 "A small orange cat sitting on a blue chair in a sunny room, natural colors, realistic photograph."。每个文件只有一张图,因此约一个 dB 或更小的差异属于噪声,Q5_K_M 和 Q4_K_M 的先后顺序也无法用 PSNR 分辨。数值越高越接近 FP32 参照;即使权重只有微小变化,扩散模型也会改变细节,因此这些是 偏离度 数值,而不是质量评分。

文件 大小 相对 FP32 的 PSNR 相对 FP32 的 SSIM
Q8_0 4.15 GiB 26.97 dB 0.868
Q6_K 3.66 GiB 24.69 dB 0.844
Q5_K_M 3.40 GiB 20.10 dB 0.775
Q4_K_M 3.14 GiB 20.04 dB 0.695

同一提示词下使用 sd.cpp 默认规则(w2 为 FP32,未提供):Q8_0 26.84 dB / 0.875,Q6_K 25.23 dB / 0.863,Q5_K_M 20.01 dB / 0.777,Q4_K_M 20.19 dB / 0.703。第二条提示词(带有单词 "LISBOA" 的旅游海报)测量了默认规则的 Q8_0(19.80 dB / 0.813)和 Q4_K_M(15.41 dB / 0.604),以及 w2 为 F16 的 Q4_K_M(15.49 dB / 0.600);三者的文字都渲染正确。机器上没有其他任务时整块 GPU 的显存峰值:默认规则的 Q8_0(5.20 GiB,未提供)在 100 步时为 13.5 GiB(运行前已占用 2.2 GiB),FP32 原版在 30 步时为 19.0 GiB。其他量化版本在没有其他任务时的显存我们没有测量。

文本编码器:拒绝次数及对图像的影响

我们对把编码器当作聊天模型使用时的拒绝情况进行了自己的测量(llama.cpp,温度 0,生成 120 个 token,Heretic harmful_behaviors 测试集中的 104 条有害提示,所有行使用相同的提示和设置;它们在方向计算中是留出的(方向计算只用训练集),但这 104 条中的前 100 条同时也是 Heretic 评估各次试验所用的提示,因此这并不是对所选试验的独立测试;Q4_K_M 文件使用了重要性矩阵,见下文):

文本编码器 严格拒绝 宽泛拒绝标记
未改动,Q4_K_M 48 / 104 97 / 104
我们的(去审查),Q4_K_M 0 / 104 14 / 104
未改动,Q8_0 65 / 104 100 / 104
我们的(去审查),Q8_0 0 / 104 18 / 104

Heretic 自己在其 100 条评估提示上的计数:消融前 97/100 次拒绝,消融后 18/100,KL 散度 0.087(100 次试验中的第 89 次,60 次随机起始试验,种子 42;检查点选择规则:KL <= 0.1 条件下拒绝次数最少)。在更高的 KL 下可以找到更低的拒绝次数(例如 56 次试验后在 KL 0.163 下为 13/100);我们保留了 KL <= 0.1 的规则,与我们的 Qwen-Image 编码器相同。

对图像的影响(图像模型:使用 sd.cpp 默认规则的 Q8_0(5.20 GiB,未提供);提示词 "cat",种子 42、30 步;参照 = 未改动 的编码器 Q8_0,因此只有编码器不同;每个设置一张图):

文本编码器 相对参照的 PSNR 相对参照的 SSIM
未改动,Q4_K_M,不使用 重要性矩阵 21.42 dB 0.767
未改动,Q4_K_M,使用重要性矩阵 24.61 dB 0.839
我们的(去审查),Q8_0 32.03 dB 0.883
我们的(去审查),Q4_K_M,使用重要性矩阵 26.08 dB 0.845

消融本身对图像的改变很小(Q8_0 时 32 dB);编码器的 4 bit 舍入对图像的改变比消融更大。在这项测试中重要性矩阵有帮助(21.4 -> 24.6 dB,一张图)。Q4_K_M 文件的制作方式: 重要性矩阵由相同权重的 Q8_0 文件计算,使用 calib_mix_v1.txt(英语 / 德语 / 代码混合),50 个块、每块 512 个 token(计划 96 块,在数值收敛后于第 50 块停止;对未改动的编码器测得:30 块与 40 块状态之间的余弦相似度为 0.998,每个通道的变化中位数为 2.3 %),然后用 llama-quantize 从 BF16 GGUF 量化。由 116 条真实图像提示词(Iris 聊天模板,32 个块)计算的重要性矩阵在同一测试中为我们的编码器给出 24.09 dB,即并不更好;我们保留了通用的那一个。这些数值并不说明任何关于内容限制的情况。

我们改动了什么(Apache License 2.0,第 4 节)

  • Sakura-Iris-3B-*.gguf:使用 sd-cli -M convert 直接由 speridlabs/iris-3b 的官方 FP32 model.safetensors 制作(sha256 a90e1f4c197bac8491f82078def68884b6a3527ea7fc97a693e3e367372aa80f,已与 Hub 核对),参数为 --type q8_0|q6_K|q5_K|q4_K 和 --tensor-type-rules "mlp(_x|_y)?\.w2\.weight$=f16"。已修改文件。
  • Sakura-TextEncoder-*:未改动的 Qwen3-VL-4B-Instruct(版本 ebb281ec70b05090aa6165b016eac8ec08e71b17),将 Heretic 的定向消融(o_proj、down_proj)合并进权重,用 llama.cpp 转换为 GGUF 并量化(Q8_0;Q4_K_M 使用重要性矩阵),另有合并后的 BF16 Hugging Face 文件夹。已修改文件。
  • 我们的未改动编码器对照:由我们从原始权重转换的编码器与官方 Qwen3VL-4B-Instruct-Q8_0.gguf(相同图像模型、提示词和种子)生成的图像逐像素完全相同,因此转换器没有改变任何内容。
  • LICENSE 是原始仓库的 Apache License 2.0 文本;NOTICE 包含原始声明和上述改动清单。

许可与使用

Apache License 2.0(LICENSE),与 Iris-3B 和 Qwen3-VL-4B-Instruct 相同。Iris-3B 由 speridlabs 制作;本仓库是独立的社区发布。

致谢

README history 3 versions

The author's README evolved over time. Click a version to see its content at that point.

  1. 2026-10-12Add README.md396440f29.1 KB
    Loading...
  2. 2026-10-11Add README.md019ffbd28.1 KB
    Loading...
  3. 2026-10-11Add README.md8a92b5a28.1 KB
    Loading...
Catalog is the map. Apps are the tools.

Run models on your own machine, not in the cloud.

Every model page has an "Open in Abliteration" button that hands the model directly to the first-party desktop client, at the quantization your rig can actually run. No API keys, no subscription, no prompt leakage.

Open in Abliteration