# Ernie-Image

  

[ERNIE-Image] 是一个拥有 8B 参数、功能强大且高效能极高的图像生成模型。目前仅有两个模型可供发布：

|模型|Hugging Face|
|---|---|
|ERNIE-Image|https://huggingface.co/baidu/ERNIE-Image|
|ERNIE-Image-Turbo|https://huggingface.co/baidu/ERNIE-Image-Turbo|

## ERNIE-Image

ERNIE-Image 采用相对紧凑的架构设计，具备扎实的指令遵循能力，并着重强调参数效率。基于 8B DiT 骨干网络，它在某些场景下可提供与更大规模（20B+）模型相媲美的性能，同时保持合理的参数效率。它在指令理解与执行、文本生成（例如英语 / 中文 / 日语）以及整体稳定性方面，均能提供相对稳定的性能水平。

## ERNIE-Image-Turbo

ERNIE-Image-Turbo 是 ERNIE-Image 的蒸馏变体，仅需 8 次 NFE（Number of Function Evaluations，函数求值次数），在某些情况下可提供与完整模型性能相对接近且效率更高的替代方案。

## ErnieImagePipeline

使用 [ErnieImagePipeline] 根据文本提示生成图像。该流水线默认支持 Prompt Enhancer (PE)，它会对用户的原始提示进行增强以提升输出质量，但可能会降低指令遵循的准确性。

我们提供了一个预训练的 3B 参数 PE 模型；不过，使用更大的语言模型（例如 Gemini 或 ChatGPT）进行提示增强可能会获得更好的效果。系统提示模板位于：https://huggingface.co/baidu/ERNIE-Image/blob/main/pe/chat_template.jinja。

如果不想使用 PE，请设置 use_pe=False。

```python
import torch
from diffusers import ErnieImagePipeline
from diffusers.utils import load_image

pipe = ErnieImagePipeline.from_pretrained("baidu/ERNIE-Image", dtype=torch.bfloat16)
pipe.to("cuda")  # or "mps", "xpu", "cpu"
# If you are running low on GPU VRAM, you can enable offloading
pipe.enable_model_cpu_offload()

prompt = "一只黑白相间的中华田园犬"
images = pipe(
    prompt=prompt,
    height=1024,
    width=1024,
    num_inference_steps=50,
    guidance_scale=4.0,
    generator=torch.Generator("cuda").manual_seed(42),
    use_pe=True,
).images
images[0].save("ernie-image-output.png")
```

```python
import torch
from diffusers import ErnieImagePipeline
from diffusers.utils import load_image

pipe = ErnieImagePipeline.from_pretrained("baidu/ERNIE-Image-Turbo", dtype=torch.bfloat16)
pipe.to("cuda")  # or "mps", "xpu", "cpu"
# If you are running low on GPU VRAM, you can enable offloading
pipe.enable_model_cpu_offload()

prompt = "一只黑白相间的中华田园犬"
images = pipe(
    prompt=prompt,
    height=1024,
    width=1024,
    num_inference_steps=8,
    guidance_scale=1.0,
    generator=torch.Generator("cuda").manual_seed(42),
    use_pe=True,
).images
images[0].save("ernie-image-turbo-output.png")
```

