# Ernie-Image

  

[ERNIE-Image] est un modèle de génération d’images puissant et très efficace, doté de 8 milliards de paramètres. Actuellement, seuls deux modèles sont prévus pour être publiés :

|Modèle|Hugging Face|
|---|---|
|ERNIE-Image|https://huggingface.co/baidu/ERNIE-Image|
|ERNIE-Image-Turbo|https://huggingface.co/baidu/ERNIE-Image-Turbo|

## ERNIE-Image

ERNIE-Image est conçu avec une architecture relativement compacte et une solide capacité de suivi des instructions, en mettant l'accent sur l'efficacité des paramètres. Basé sur un backbone DiT de 8B, il offre des performances comparables, dans certains scénarios, à celles de modèles plus volumineux (20B+), tout en maintenant une efficacité paramétrique raisonnable. Il assure un niveau de performance relativement stable en matière de compréhension et d'exécution des instructions, de génération de texte (par exemple, anglais / chinois / japonais) et de stabilité globale.

## ERNIE-Image-Turbo

ERNIE-Image-Turbo est une variante distillée d'ERNIE-Image, nécessitant seulement 8 NFEs (Number of Function Evaluations) et offrant une alternative plus efficace avec des performances relativement comparables à celles du modèle complet dans certains cas.

## ErnieImagePipeline

Utilisez [ErnieImagePipeline] pour générer des images à partir de prompts texte. Le pipeline prend en charge le Prompt Enhancer (PE) par défaut, qui améliore le prompt brut de l’utilisateur afin d’augmenter la qualité de la sortie, bien que cela puisse réduire la précision du respect des instructions.

Nous fournissons un modèle PE pré-entraîné de 3 milliards de paramètres ; toutefois, l'utilisation de modèles de langage plus grands (par exemple Gemini ou ChatGPT) pour l'amélioration des prompts peut donner de meilleurs résultats. Le modèle de prompt système est disponible à l'adresse suivante : https://huggingface.co/baidu/ERNIE-Image/blob/main/pe/chat_template.jinja.

Si vous préférez ne pas utiliser PE, définissez 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")
```

