Diffusers documentation
ERNIE-Image
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는 상대적으로 컴팩트한 아키텍처와 견고한 지시 따르기(instruction-following) 능력을 갖추고 있으며, 파라미터 효율성을 강조합니다. 8B DiT 백본을 기반으로 하여, 일부 시나리오에서 더 큰(20B+) 모델과 비교할 만한 성능을 제공하면서도 합리적인 파라미터 효율성을 유지합니다. 지시 이해 및 실행, 텍스트 생성(예: 영어/중국어/일본어), 전반적인 안정성에서 상대적으로 안정적인 수준의 성능을 제공합니다.
ERNIE-Image-Turbo
ERNIE-Image-Turbo는 ERNIE-Image의 증류된 변형으로, NFE(함수 평가 횟수)가 8회만 필요하며, 특정 경우 전체 모델과 상대적으로 유사한 성능을 제공하면서 더 효율적인 대안을 제시합니다.
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를 설정하세요.
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")