# SDXL vs Krea2 Turbo vs Boogu Turbo：同提示词 A/B 实测

> 测试日期：2026-09-13 23:50 CST ｜ 执行机：DSH 机 192.168.31.76 ｜ 推理机：GPU 机 192.168.31.31
> 环境：ComfyUI 0.34.0 · RTX 5060 Ti 16GB · LOW_VRAM 档（`--lowvram --force-fp16 --reserve-vram 1.0 --fast-disk`）
> 触发：用户判断「SD1.5 和 SDXL 的效果已经远弱于目前主流生图模型」——本文用**同一条提示词**做四档 A/B 验证

---

## 一、结论速览

**判断成立，且差距是结构性（架构级）的，不是调参能补的。**

| 评判维度 | ① SDXL base 1.0 | ② SDXL uberRealistic 合并档 | ③ Krea2 Turbo | ④ Boogu Turbo |
|---|---|---|---|---|
| 核心主体「店主」 | ❌ **完全缺失** | ❌ **完全缺失** | ✅ 亚洲老年男性、米色开衫 | ✅ 老年男性、米色毛衣 |
| 核心动作「把书放上书架」 | ❌ | ❌ | ✅ 双手举书入架 | ✅ 单手扶书入架 |
| 橘猫 / 茶杯 / 黄铜台灯 | 仅猫 | ❌ 全缺 | ✅ 三样全中 | ✅ 三样全中 |
| 木招牌文字 "BOOKS" | ❌ 乱码 `BSUNDPSLOES` | ❌ 无文字 | ✅ **拼写完全正确** | ✅ **拼写完全正确** |
| 窗外蓝霓虹 + 雨痕 | 部分（蓝色门板，非霓虹） | ❌ | ✅ 日式霓虹街景 + 雨窗 | ✅ 日式霓虹街景 + 雨窗 |
| 手部结构 | 无（画面无人） | 无（画面无人） | ✅ 双手自然持书 | ✅ 单手自然扶书 |
| 采样步数 | 30 | 30 | **9** | **4** |
| 出图耗时（含模型加载） | ~20 s | ~30 s | ~60 s | ~46 s |

**一句话**：四张图里，两档 SDXL 都把提示词的**主语（店主）整个丢了** —— ① 退化成"书店门面＋一只猫"，② 退化成"无人书店内景"。而 Krea2 / Boogu 把人物、动作、道具、空间关系、窗外街景**全部落地**，招牌英文还拼对了。

对比拼图：`AB_compare_grid.png`（2×2，左上→右下 = ①②③④）

---

## 二、方法（公平性说明）

先堵住"是不是故意挑弱模型 / 用弱参数"的质疑：

- **同一条提示词**（516 字符 / 81 词），**同一个 seed** `20260913`，同为 **1024×1024**。
- 每档都用**各自官方或社区推荐**参数，未做任何削弱：
  - ① SDXL base 1.0：`dpmpp_2m` + `karras`，30 步，cfg 7，标准负向提示（**负向里刻意不含 `text`**，以免压制招牌文字）
  - ② SDXL 社区强化写实合并档：参数同 ①（这是 SDXL 生态里以写实见长的合并模型）
  - ③ Krea2 Turbo：`er_sde` + `simple`，9 步，cfg 1，负向 `ConditioningZeroOut`（官方 Turbo 档）
  - ④ Boogu Turbo：`lcm` + `sgm_uniform`，4 步，cfg 1，负向 `ConditioningZeroOut`（官方 nvfp4 工作流原参）
- SDXL 特意跑**两个档**（官方基线 + 社区强化档），确保结论不依赖单一模型选择。

提示词（全文，可复现）：

```
a cozy japanese secondhand bookstore at dusk, an elderly shopkeeper in a beige cardigan
carefully places a worn hardcover onto a tall wooden shelf, stacks of vintage paperbacks
and a brass reading lamp on the counter, a ginger cat asleep beside a ceramic teacup,
warm tungsten light spilling across the floorboards while rain-streaked windows reflect
blue neon signs outside, a hand-painted wooden sign reading "BOOKS" above the doorway,
shot on 35mm film, shallow depth of field, fine grain, cinematic color grading
```

四档的 API 请求 JSON 原样归档在同目录 `prompts/` 下（`sdxl_base.json`、`sdxl_urpm.json`、`krea2.json`、`boogu.json`）。

---

## 三、机制证据：SDXL 为什么抓不住长提示

用 ComfyUI venv 的 `SDTokenizer` 对这条提示词做实测：

```
CLIP-L 编码结果：2 个 chunk，各 77 token
  chunk 0：75 个有效 token
     "a cozy japanese secondhand bookstore at dusk, an elderly shopkeeper in a beige
      cardigan carefully places a worn hardcover onto a tall wooden shelf, ... blue neon
      signs outside, a"
  chunk 1：30 个有效 token + 46 个 padding
     "- painted wooden sign reading "books" above the doorway, shot on 35mm film,
      shallow depth of field, fine grain, cinematic color grading"
```

**⚠️ 这里纠正一个流传很广的误解（我在本次会话中也先说错了，后经实测更正）：**

- 在**原版 SD / A1111** 里，超过 77 token 是**直接截断**，后半段提示词确实白写；
- 在 **ComfyUI** 里则会做 **chunked conditioning（分块拼接）**，本例**并没有丢词**。但代价是：两个 chunk **各自从 `<|startoftext|>` 独立编码**，块与块之间**没有 token 级注意力交互**，第二块（承载"BOOKS 招牌、35mm 胶片、浅景深、电影调色"等关键描述）对最终结果的影响力被显著削弱。
- 现代档的文本编码器是 **Qwen3VL 系 VLM**（Krea2 用 `qwen3vl_4b_fp8` 5.2GB；Boogu 用 `qwen3vl_8b_fp8` 10.6GB），整段 516 字符**单次编码**成一组全局语义，再由 DiT 主干做全局注意力 —— 这才是"提示词听话"的根本原因。

所以差距不在于"词有没有被看到"，而在于**文本理解器的容量与编码方式**，以及主干的架构代际（U-Net+交叉注意力 vs DiT+rectified flow）。**这一点无法通过调参、加权、加 LoRA 弥补。**

---

## 四、逐张点评

| # | 文件 | 实际画面 |
|---|---|---|
| ① | `AB1_sdxl_base_00001_.png` | 从**店外**看书店正门：木门、两侧书架、一只橘猫走过地板。招牌上是一串**乱码 `BSUNDPSLOES`**（模型知道该有文字，但字母顺序失控）。**没有店主、没有放书动作、没有茶杯、没有台灯**。整体偏数码平光、材质塑料感 |
| ② | `AB2_sdxl_urpm_00001_.png` | **无人**的书店内部全景：密集书架、吊灯、暖色木调、窗外绿树。构图与光照比 ① 精致、质感更好，但**店主和橘猫都不存在**，提示词的核心事件（把书放上书架）完全没有发生；招牌文字也未生成 |
| ③ | `AB3_krea2_00001_.png` | **完整实现提示词**：亚洲老年男性穿米色开衫，**双手把一本精装书举上书架**；柜台上一只橘猫酣睡在茶杯旁，黄铜台灯暖光，木招牌 "BOOKS" **拼写正确**，窗外是雨夜日式霓虹街景，胶片颗粒与浅景深到位 |
| ④ | `AB4_boogu_00001_.png` | 与 ③ 高度接近的高质量实现：老年男性在书架前取放书，橘猫睡在柜台上，台灯/茶杯/书堆齐备，"BOOKS" 木招牌正确，窗外蓝色霓虹＋湿街反光。**仅 4 步采样**即达到该质量 |

---

## 五、耗时与显存

- 四张图**串行**跑完（含全部模型首次加载与互切）总计 **2 分 37 秒**（23:50:45 → 23:53:22）。
- 单张耗时（轮询粒度 ±15s，**含模型加载**，非纯采样时间）：① ~20s ② ~30s ③ ~60s ④ ~46s。
- 显存：ComfyUI 空闲时 154 MiB / 16311 MiB；本次未单独采集每张的峰值（`--lowvram` 下 13GB 级 UNet 会动态换入换出，首图明显慢于后续同模型出图）。
- 注意 ③④ 的耗时大头是**模型加载**（Krea2 13.1GB UNet + 5.2GB TE；Boogu 5.8GB nvfp4 UNet + 10.6GB TE），连出同模型时会快得多；而 ③ 只用 9 步、④ 只用 4 步，采样本身远比 SDXL 的 30 步便宜。

---

## 六、结论与建议

1. **你的判断成立**，而且这次实测把差距定位得很具体：不在"画风好不好看"，而在**提示词遵循度、主体完整性、文字渲染**这三项现代生图的核心能力上，SDXL 世代出现的是**整段语义丢失**（连主语都没了），这属于架构级差距。
2. **你机器上早就不是只有老模型**：Krea2 Turbo、JANK2、Boogu-Image（Base/Edit/Turbo）权重、文本编码器、VAE、官方工作流 JSON 全部就位，**零下载成本即可用**。真正的问题是一直在用 `checkpoints/` 那 27 个老档（125GB）。
3. **保留 SDXL 的正当理由只有一条**：它海量的 LoRA / ControlNet 生态与可自训练性（尤其特定动漫审美、特定人物 likeness、特定构图控制）。作为**通用出图主力**，建议切到 Krea2（写实与美感）或 Boogu（快，4 步）。
4. 若要进一步提升，16GB 卡的现代候选：**Z-Image Turbo**（6B，消费卡 5–10s/图，Apache 2.0）、**FLUX.2 [klein] 4B**（~8GB，Apache 2.0）、**Qwen-Image 2.0**（7B，中英文字渲染最强，Apache 2.0）。
5. 磁盘现状 91% 已用（剩 109GB），而那 125GB 老 checkpoint 是最大可回收池 —— 建议在确认不再使用后分批清理。

---

## 附：文件清单

| 文件 | 说明 |
|---|---|
| `AB_compare_grid.png` | 2×2 对比拼图（带标签） |
| `AB1_sdxl_base_00001_.png` | SDXL base 1.0 官方基线 |
| `AB2_sdxl_urpm_00001_.png` | SDXL uberRealisticPornMerge v12 写实合并档 |
| `AB3_krea2_00001_.png` | Krea2 Turbo fp8（9 步） |
| `AB4_boogu_00001_.png` | Boogu-Image Turbo nvfp4（4 步） |
| `prompts/*.json` | 四档的 ComfyUI API 请求原文（可直接 POST `/prompt` 复现） |

**复现命令**（GPU 机 ComfyUI 运行时，从 DSH 机执行）：

```bash
curl -s --noproxy '*' -X POST http://192.168.31.31:8189/prompt \
  -H 'Content-Type: application/json' -d @prompts/krea2.json
```
