Update model card and clarify Text Encoder layers
Browse files
README.md
CHANGED
|
@@ -14,6 +14,51 @@ tags:
|
|
| 14 |
|
| 15 |
这是 [`baidu/ERNIE-Image-Turbo`](https://huggingface.co/baidu/ERNIE-Image-Turbo) 的 C++/ncnn FP32 部署模型,配套代码位于 [`everythingfornothing/ernie-image-ncnn-vulkan`](https://github.com/everythingfornothing/ernie-image-ncnn-vulkan)。模型包包含 Tokenizer、Text Encoder、36 层 DiT、VAE Decoder 和官方 seed=42 回归 latent。
|
| 16 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 17 |
## 下载与运行
|
| 18 |
|
| 19 |
```bash
|
|
@@ -38,12 +83,18 @@ hf download Coderdw/ernie-image-ncnn-vulkan \
|
|
| 38 |
|
| 39 |
```text
|
| 40 |
tokenizer/ tokenizer.json
|
| 41 |
-
text_encoder/ embedding 与 layers 0-24
|
| 42 |
dit/ frontend、layers 0-35 与 output head
|
| 43 |
vae/ decoder 与归一化常量
|
| 44 |
rng/ 官方 CUDA/BF16 seed=42 回归 latent
|
| 45 |
```
|
| 46 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 47 |
当前模型包采用 FP32,约为 43 GiB,固定 batch=1 和 Turbo 8-step,不包含 Prompt Enhancer。请使用配套代码仓库内置的 ncnn 源码,其中 Vulkan GELU 与 SDPA mask 行为属于已验证运行契约。
|
| 48 |
|
| 49 |
这些文件转换自 `baidu/ERNIE-Image-Turbo` revision `bc68c81e2a1730a394d5fc9fae70713dee940140`,遵循 Apache-2.0 许可证。
|
|
|
|
| 14 |
|
| 15 |
这是 [`baidu/ERNIE-Image-Turbo`](https://huggingface.co/baidu/ERNIE-Image-Turbo) 的 C++/ncnn FP32 部署模型,配套代码位于 [`everythingfornothing/ernie-image-ncnn-vulkan`](https://github.com/everythingfornothing/ernie-image-ncnn-vulkan)。模型包包含 Tokenizer、Text Encoder、36 层 DiT、VAE Decoder 和官方 seed=42 回归 latent。
|
| 16 |
|
| 17 |
+
## 主要能力
|
| 18 |
+
|
| 19 |
+
| 能力 | 说明 |
|
| 20 |
+
|---|---|
|
| 21 |
+
| C++ 文生图 | 串联 Tokenizer、Text Encoder、DiT、Scheduler、VAE 和 PNG 写出 |
|
| 22 |
+
| CPU / Vulkan | 同一套权重支持 ncnn CPU 与 Vulkan 后端 |
|
| 23 |
+
| 动态 Prompt | 按实际 token 数在运行时生成文本 RoPE、Attention Mask 和联合序列 |
|
| 24 |
+
| 动态分辨率 | 图片宽高可分别设置,并在运行时生成 latent、图像 token、RoPE 和 VAE shape |
|
| 25 |
+
| Turbo 加速 | 使用 ERNIE-Image-Turbo,按官方 FlowMatch 配置仅需 8 个去噪步骤 |
|
| 26 |
+
| 可重复生成 | 支持官方 seed=42 reference 模式和接受任意 seed 的 portable 模式 |
|
| 27 |
+
|
| 28 |
+
## 生成效果
|
| 29 |
+
|
| 30 |
+
以下图片均由配套项目的正式 CLI 使用 Vulkan 后端、8-step Turbo 推理和 `portable seed=123` 生成。
|
| 31 |
+
|
| 32 |
+
<table>
|
| 33 |
+
<tr>
|
| 34 |
+
<td align="center" width="33%">
|
| 35 |
+
<img src="https://raw.githubusercontent.com/everythingfornothing/ernie-image-ncnn-vulkan/main/assets/report/08_cli_zh_1024_seed123.png" alt="中文提示词生成效果" width="100%"><br>
|
| 36 |
+
<sub>中文 · 1024×1024</sub>
|
| 37 |
+
</td>
|
| 38 |
+
<td align="center" width="33%">
|
| 39 |
+
<img src="https://raw.githubusercontent.com/everythingfornothing/ernie-image-ncnn-vulkan/main/assets/report/09_cli_en_1024_seed123_run1.png" alt="英文提示词生成效果" width="100%"><br>
|
| 40 |
+
<sub>英文 · 1024×1024</sub>
|
| 41 |
+
</td>
|
| 42 |
+
<td align="center" width="33%">
|
| 43 |
+
<img src="https://raw.githubusercontent.com/everythingfornothing/ernie-image-ncnn-vulkan/main/assets/report/10_cli_ja_1024_seed123.png" alt="日文提示词生成效果" width="100%"><br>
|
| 44 |
+
<sub>日文 · 1024×1024</sub>
|
| 45 |
+
</td>
|
| 46 |
+
</tr>
|
| 47 |
+
</table>
|
| 48 |
+
|
| 49 |
+
<table>
|
| 50 |
+
<tr>
|
| 51 |
+
<td align="center" width="50%">
|
| 52 |
+
<img src="https://raw.githubusercontent.com/everythingfornothing/ernie-image-ncnn-vulkan/main/assets/report/11_cli_zh_1376x768_seed123.png" alt="1376×768 横向生成效果" width="100%"><br>
|
| 53 |
+
<sub>横图 · 1376×768</sub>
|
| 54 |
+
</td>
|
| 55 |
+
<td align="center" width="50%">
|
| 56 |
+
<img src="https://raw.githubusercontent.com/everythingfornothing/ernie-image-ncnn-vulkan/main/assets/report/12_cli_zh_768x1376_seed123.png" alt="768×1376 竖向生成效果" width="56%"><br>
|
| 57 |
+
<sub>竖图 · 768×1376</sub>
|
| 58 |
+
</td>
|
| 59 |
+
</tr>
|
| 60 |
+
</table>
|
| 61 |
+
|
| 62 |
## 下载与运行
|
| 63 |
|
| 64 |
```bash
|
|
|
|
| 83 |
|
| 84 |
```text
|
| 85 |
tokenizer/ tokenizer.json
|
| 86 |
+
text_encoder/ embedding 与 layers 0-24(见下方层编号说明)
|
| 87 |
dit/ frontend、layers 0-35 与 output head
|
| 88 |
vae/ decoder 与归一化常量
|
| 89 |
rng/ 官方 CUDA/BF16 seed=42 回归 latent
|
| 90 |
```
|
| 91 |
|
| 92 |
+
## Text Encoder 层编号说明
|
| 93 |
+
|
| 94 |
+
官方 `text_encoder/config.json` 中的 `num_hidden_layers` 为 26,对应 Transformer Block `layers.0–25`。官方 Diffusers `ErnieImagePipeline` 在文本编码时启用 `output_hidden_states=True`,并按训练路径选择 `outputs.hidden_states[-2]` 作为 DiT 的文本条件;该边界对应 `layers.24` 的输出。
|
| 95 |
+
|
| 96 |
+
因此,本部署包包含 embedding 和 `layers.0–24` 共 25 个实际参与文生图 conditioning 的 Transformer Block。官方模型中的 `layers.25` 与末端 RMSNorm 位于所选 hidden-state 边界之后,不参与该生成路径,所以没有收入 ncnn 权重包。这是对官方 Pipeline 执行边界的复现,不是权重缺失或层编号错误。
|
| 97 |
+
|
| 98 |
当前模型包采用 FP32,约为 43 GiB,固定 batch=1 和 Turbo 8-step,不包含 Prompt Enhancer。请使用配套代码仓库内置的 ncnn 源码,其中 Vulkan GELU 与 SDPA mask 行为属于已验证运行契约。
|
| 99 |
|
| 100 |
这些文件转换自 `baidu/ERNIE-Image-Turbo` revision `bc68c81e2a1730a394d5fc9fae70713dee940140`,遵循 Apache-2.0 许可证。
|