Coderdw's picture
Remove generated image gallery from model card
c8c30cc verified
|
Raw History Blame Contribute Delete
3.25 kB
---
license: apache-2.0
pipeline_tag: text-to-image
library_name: ncnn
base_model: baidu/ERNIE-Image-Turbo
tags:
- ernie-image
- ncnn
- vulkan
- text-to-image
---
# ERNIE-Image-Turbo ncnn 权重
这是 [`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。
## 主要能力
| 能力 | 说明 |
|---|---|
| C++ 文生图 | 串联 Tokenizer、Text Encoder、DiT、Scheduler、VAE 和 PNG 写出 |
| CPU / Vulkan | 同一套权重支持 ncnn CPU 与 Vulkan 后端 |
| 动态 Prompt | 按实际 token 数在运行时生成文本 RoPE、Attention Mask 和联合序列 |
| 动态分辨率 | 图片宽高可分别设置,并在运行时生成 latent、图像 token、RoPE 和 VAE shape |
| Turbo 加速 | 使用 ERNIE-Image-Turbo,按官方 FlowMatch 配置仅需 8 个去噪步骤 |
| 可重复生成 | 支持官方 seed=42 reference 模式和接受任意 seed 的 portable 模式 |
## 下载与运行
```bash
hf download Coderdw/ernie-image-ncnn-vulkan \
--local-dir models/ernie-image-turbo
./build/ernie_image_cli \
--model-dir models/ernie-image-turbo \
--device vulkan \
--gpu-index 0 \
--rng-mode portable \
--seed 123 \
--width 1376 \
--height 768 \
--prompt '一只黑白相间的中华田园犬在草地上奔跑' \
--output image.png
```
图片宽高默认为 1024×1024,必须为正数且均为 16 的倍数;动态分辨率使用 `portable` RNG。同一套权重已完整运行 1024×1024、1376×768、768×1376 和 528×784,并支持运行时动态文本长度。`reference` RNG 仅用于官方 1024×1024、seed=42 回归。
模型目录结构:
```text
tokenizer/ tokenizer.json
text_encoder/ embedding 与 layers 0-24(见下方层编号说明)
dit/ frontend、layers 0-35 与 output head
vae/ decoder 与归一化常量
rng/ 官方 CUDA/BF16 seed=42 回归 latent
```
## Text Encoder 层编号说明
官方 `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` 的输出。
因此,本部署包包含 embedding 和 `layers.0–24` 共 25 个实际参与文生图 conditioning 的 Transformer Block。官方模型中的 `layers.25` 与末端 RMSNorm 位于所选 hidden-state 边界之后,不参与该生成路径,所以没有收入 ncnn 权重包。这是对官方 Pipeline 执行边界的复现,不是权重缺失或层编号错误。
当前模型包采用 FP32,约为 43 GiB,固定 batch=1 和 Turbo 8-step,不包含 Prompt Enhancer。请使用配套代码仓库内置的 ncnn 源码,其中 Vulkan GELU 与 SDPA mask 行为属于已验证运行契约。
这些文件转换自 `baidu/ERNIE-Image-Turbo` revision `bc68c81e2a1730a394d5fc9fae70713dee940140`,遵循 Apache-2.0 许可证。