Coderdw commited on
Commit
ebca18b
·
verified ·
1 Parent(s): f3b0657

Update model card and clarify Text Encoder layers

Browse files
Files changed (1) hide show
  1. README.md +52 -1
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 许可证。