Diffusers documentation
ERNIE-Image
Ernie-Image
[ERNIE-Image] es un modelo de generación de imágenes potente y altamente eficiente con 8B parámetros. Actualmente, solo se publicarán dos modelos:
| Modelo | 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á diseñado con una arquitectura relativamente compacta y una sólida capacidad de seguimiento de instrucciones, con énfasis en la eficiencia de parámetros. Basado en un backbone DiT de 8B, ofrece un rendimiento comparable en algunos escenarios al de modelos más grandes (20B+), manteniendo al mismo tiempo una eficiencia de parámetros razonable. Proporciona un nivel de rendimiento relativamente estable en la comprensión y ejecución de instrucciones, la generación de texto (p. ej., inglés / chino / japonés) y la estabilidad general.
ERNIE-Image-Turbo
ERNIE-Image-Turbo es una variante destilada de ERNIE-Image, que requiere solo 8 NFEs (Number of Function Evaluations) y ofrece una alternativa más eficiente con un rendimiento relativamente comparable al del modelo completo en ciertos casos.
ErnieImagePipeline
Use ErnieImagePipeline para generar imágenes a partir de prompts de texto. El pipeline admite Prompt Enhancer (PE) de forma predeterminada, lo que mejora el prompt original del usuario para aumentar la calidad de la salida, aunque puede reducir la precisión en el seguimiento de instrucciones.
Proporcionamos un modelo PE preentrenado con 3B parámetros; sin embargo, el uso de modelos de lenguaje más grandes (p. ej., Gemini o ChatGPT) para la mejora de prompts puede arrojar mejores resultados. La plantilla de prompt del sistema está disponible en: https://huggingface.co/baidu/ERNIE-Image/blob/main/pe/chat_template.jinja.
Si prefiere no usar PE, establezca use_pe=False.
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")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")