2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

初学者向けGoogleColab上でのJapanese Stable Diffusion XL(JapaneseSDXL) with LCM LoRA 実行環境爆速構築

Last updated at Posted at 2023-12-06

この投稿はKDDIテクノロジーアドベントカレンダーの7日目の記事となります。

前回の記事に引き続きGoogleColabo上でLCM LoRAを試します。

LCM LoRA(Latent Consistency LoRAs)とは?

SDXL in 4 steps with Latent Consistency LoRAsによると

Latent Consistency Models (LCM) are a way to decrease the number of steps required to generate an image with Stable Diffusion (or SDXL) ~

「Latent Consistency Models(LCM)は、Stable Diffusion(またはSDXL)を使って画像を生成するために必要なステップ数を減らす手法です」とのことです。
今回はこの手法を使って画像生成の高速化を図ります。

実行手順

前回の記事にある「実行手順」項の④まで進めてください。

⑤下記コマンドを実行し日本語版SDXLをダウンロードする。

model_id = "stabilityai/japanese-stable-diffusion-xl"
lcm_lora_id = "latent-consistency/lcm-lora-sdxl"

pipeline = DiffusionPipeline.from_pretrained(model_id, trust_remote_code=True, variant="fp16")

pipeline.load_lora_weights(lcm_lora_id)
pipeline.scheduler = LCMScheduler.from_config(pipeline.scheduler.config)
pipeline.to(device="cuda", dtype=torch.float16)

※HTTPError: 401となり「OSError: Cannot load model stabilityai/japanese-stable-diffusion-xl: model is not cached locally and an error occured while trying to fetch metadata from the Hub. Please check out the root cause in the stacktrace above.」と出た場合はHuggingFace Hubにログイン出来ていないため再度前回記事の④にあるHuggingFace Hubへのログインコマンドを実行すること。

⑥下記コマンドを実行し画像を出力する。
※promptの部分を出力したい任意の文字列に変更する。

prompt = "水たまり 写真"
image = pipeline(prompt=prompt).images[0]
image

実行結果

LCM LoRAを使った場合と使っていない場合で比較します。
結果の比較には実行手順⑥に示したコードの代わりに以下のコードを使用しています。

prompt = "水たまり 写真"
images = []
for steps in range(0, 16, 5):
    generator = torch.Generator(device=pipeline.device).manual_seed(2345)
    image = pipeline(
        prompt=prompt,
        num_inference_steps=steps+1,
        guidance_scale=1,
        generator=generator,
    ).images[0]
    images.append(image)
images[15] 
# 数字はStep数を指します。
# 低Step時の挙動が見たい場合はimages[0]、images[5]、images[10]に置き換えて実行してください。

◎LCM LoRAを使っていない場合

raw_c.png

◎LCM LoRAを使った場合

lcm_c.png

使っていない場合はそもそも水たまりが生成されないので比較出来ないですが、
使った場合はStep5辺りから鮮明な画像が生成されており高速生成に成功しているであろうことが確認出来ました。

以上です。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?