콘텐츠로 이동

SDXL-Turbo (이미지 생성)

Overview

Stable Diffusion XL Turbo (SDXL-Turbo)는 StabilityAI에서 제공하는 고속, 고품질의 텍스트-이미지 생성 모델입니다. 다른 여러 디퓨전 모델과 달리, SDXL-Turbo는 단일 추론 단계(single inference step)만으로 고품질 이미지를 생성할 수 있어 속도가 크게 향상되었습니다. 이 튜토리얼에서는 optimum-rbln을 사용하여 sdxl-turbo 모델을 컴파일하고 이미지를 생성하는 방법을 보여줍니다.

Setup & Installation

시작하기 전에 시스템 환경이 올바르게 구성되어 있으며, 필요한 모든 필수 패키지가 설치되어 있는지 확인하십시오. 다음 항목이 포함됩니다:

Note

rebel-compiler를 사용하려면 RBLN 포털 계정이 필요하니 참고하십시오.

Optimum RBLN 라이브러리 사용하기

모델 컴파일

먼저 optimum-rbln 라이브러리에서 제공하는 RBLNStableDiffusionXLPipeline 클래스를 사용하여 SDXL-Turbo 모델을 컴파일합니다. 모델을 컴파일하려면 export 인수를 True로 설정해야 합니다. 이렇게 설정하면 파이프라인이 HuggingFace 허브에서 원본 모델을 다운로드한 다음, RBLN Compiler를 사용하여 컴파일합니다. exportFalse 컴파일 후에는 save_pretrained() 메서드를 사용하여 모델 아티팩트(artifacts)를 디스크에 저장합니다. 이 과정은 컴파일된 모델을 포함하는 디렉터리(예: rbln-sdxl-turbo)를 생성합니다.

from optimum.rbln import RBLNStableDiffusionXLPipeline

model_id = "stabilityai/sdxl-turbo"
pipe = RBLNStableDiffusionXLPipeline.from_pretrained(
    model_id=model_id,
    rbln_guidance_scale=0.0,
    export=True,
)

pipe.save_pretrained("rbln-sdxl-turbo")

컴파일된 모델 불러오기

이미지를 생성하려면, 먼저 이전 단계에서 저장한 컴파일된 모델을 불러옵니다. 이번에는 export 인수를 False로 설정하여 로컬 경로에서 사전 컴파일된 모델을 불러오도록 지정합니다. SDXL-Turbo는 Classifier-Free Guidance 없이 실행되도록 설계되었으므로, 컴파일 시 rbln_guidance_scale=0.0으로 설정했습니다. 최적의 성능을 위해서는 이 값이 추론 시 사용되는 guidance_scale 매개변수와 일치하는 것이 중요합니다.

1
2
3
4
5
6
from optimum.rbln import RBLNStableDiffusionXLPipeline

pipe = RBLNStableDiffusionXLPipeline.from_pretrained(
    model_id="rbln-sdxl-turbo",
    export=False,
)

이미지 생성

컴파일된 파이프라인이 로드되었으므로, 이제 이미지를 생성할 준비가 되었습니다. 프롬프트와 함께 파이프라인을 호출하고, num_inference_steps와 같은 표준 인수를 사용합니다. 최상의 결과를 얻으려면 guidance_scale이 컴파일 시 설정한 rbln_guidance_scale과 일치하는지 확인하십시오 (이 경우 0.0).

1
2
3
prompt = "A cinematic shot of a baby racoon wearing an intricate italian priest robe."
image = pipe(prompt, num_inference_steps=1, guidance_scale=0.0).images[0]
image.save("generated_image.png")

결과는 다음과 같이 표시됩니다:

Summary and References

이 튜토리얼에서는 optimum-rbln을 사용하여 stabilityai/sdxl-turbo 모델을 컴파일하고, 컴파일된 파이프라인으로 이미지를 생성하는 방법을 다루었습니다. export=True로 설정하여 모델을 RBLN NPU용으로 컴파일하고, 이후 저장된 아티팩트를 export=False로 로드하여 빠르고 단일 단계의 이미지 생성을 수행할 수 있습니다.

References: