|
Download README.md from Coderdw/ernie-image-ncnn-vulkan: direct link, hf CLI and curl.
- Browser
- Download file 3.25 kB
-
https://huggingface.co/Coderdw/ernie-image-ncnn-vulkan/resolve/main/README.md
- Command line
-
hf download hf://Coderdw/ernie-image-ncnn-vulkan/README.md
-
curl -L -o README.md https://huggingface.co/Coderdw/ernie-image-ncnn-vulkan/resolve/main/README.md
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 许可证。 | |