【Intel Arc A770】【Diffusers】IPEX-LLM を使えば StableDiffusion による Text2Image が簡単にできました

Python環境構築

pip install --pre --upgrade ipex-llm[xpu] --extra-index-url https://pytorch-extension.intel.com/release-whl/stable/xpu/cn/
pip install diffusers[torch]
pip install transformers peft

Pythonスクリプト

「torch.float16」でなく「torch.bfloat16」を使うのがポイントです。
「import ipex_llm」を忘れるとエラーが出ました。

from diffusers import AutoPipelineForText2Image
import torch
import ipex_llm

pipeline = AutoPipelineForText2Image.from_pretrained(
    "stabilityai/stable-diffusion-xl-base-1.0",
    variant="fp16",
    torch_dtype=torch.bfloat16
).to("xpu")

prompt = "an insect robot preparing a delicious meal, anime style"

generator = torch.Generator(device="cpu").manual_seed(0)
image = pipeline(
    prompt=prompt,
    num_inference_steps=25,
    guidance_scale=7.0,
    generator=generator,
).images[0]
image.save("result.jpg")

結果

実行前に以下が必要です。

source /opt/intel/oneapi/setvars.sh
export USE_XETLA=OFF
export SYCL_PI_LEVEL_ZERO_USE_IMMEDIATE_COMMANDLISTS=1
export SYCL_CACHE_PERSISTENT=1






このエントリーをはてなブックマークに追加