Diffusers documentation

Habana Gaudi에서 Stable Diffusion을 사용하는 방법

You are viewing v0.23.1 version. A newer version v0.31.0 is available.
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Habana Gaudi에서 Stable Diffusion을 사용하는 방법

🤗 Diffusers는 🤗 Optimum Habana를 통해서 Habana Gaudi와 호환됩니다.

요구 사항

  • Optimum Habana 1.4 또는 이후, 여기에 설치하는 방법이 있습니다.
  • SynapseAI 1.8.

추론 파이프라인

Gaudi에서 Stable Diffusion 1 및 2로 이미지를 생성하려면 두 인스턴스를 인스턴스화해야 합니다:

  • GaudiStableDiffusionPipeline이 포함된 파이프라인. 이 파이프라인은 텍스트-이미지 생성을 지원합니다.
  • GaudiDDIMScheduler이 포함된 스케줄러. 이 스케줄러는 Habana Gaudi에 최적화되어 있습니다.

파이프라인을 초기화할 때, HPU에 배포하기 위해 use_habana=True를 지정해야 합니다. 또한 가능한 가장 빠른 생성을 위해 use_hpu_graphs=TrueHPU 그래프를 활성화해야 합니다. 마지막으로, Hugging Face Hub에서 다운로드할 수 있는 Gaudi configuration을 지정해야 합니다.

from optimum.habana import GaudiConfig
from optimum.habana.diffusers import GaudiDDIMScheduler, GaudiStableDiffusionPipeline

model_name = "stabilityai/stable-diffusion-2-base"
scheduler = GaudiDDIMScheduler.from_pretrained(model_name, subfolder="scheduler")
pipeline = GaudiStableDiffusionPipeline.from_pretrained(
    model_name,
    scheduler=scheduler,
    use_habana=True,
    use_hpu_graphs=True,
    gaudi_config="Habana/stable-diffusion",
)

파이프라인을 호출하여 하나 이상의 프롬프트에서 배치별로 이미지를 생성할 수 있습니다.

outputs = pipeline(
    prompt=[
        "High quality photo of an astronaut riding a horse in space",
        "Face of a yellow cat, high resolution, sitting on a park bench",
    ],
    num_images_per_prompt=10,
    batch_size=4,
)

더 많은 정보를 얻기 위해, Optimum Habana의 문서와 공식 Github 저장소에 제공된 예시를 확인하세요.

벤치마크

다음은 Habana/stable-diffusion Gaudi 구성(혼합 정밀도 bf16/fp32)을 사용하는 Habana first-generation Gaudi 및 Gaudi2의 지연 시간입니다:

Latency (배치 크기 = 1) Throughput (배치 크기 = 8)
first-generation Gaudi 4.29s 0.283 images/s
Gaudi2 1.54s 0.904 images/s