PythonでStable Diffusionを簡単実行!画像生成してみよう

PRについて
※このサイトはアフィリエイト広告(Amazonアソシエイト含む)を掲載しています。
スポンサーリンク
※このサイトはアフィリエイト広告(Amazonアソシエイト含む)を掲載しています。
PythonでStable Diffusionを簡単実行!画像生成してみよう Tips集
PythonでStable Diffusionを簡単実行!画像生成してみよう
Pythonプログラミング逆引き大全

Stable Diffusionは、テキストの入力(プロンプト)から高品質な画像を生成できるAIモデルです。

この記事では、Pythonを使ってStable Diffusionを実行する手順を解説します。

特に、Google Colabを活用して、GPU環境での高速な実行方法にフォーカスします。

ごまこ
ごまこ

Pythonで画像生成を行ってみたいです!
初心者でも分かりやすいように教えてください!

ごまお
ごまお

画像生成AIの中でも支持され続けるStable Diffusionを使ってみましょう!
また、Pythonで実行すれば繰り返し処理を用いて複数の画像を作成することもできます。
初心者でもわかるように使い方を説明した上で応用例も紹介します!

1. Stable Diffusionとは?

Stable Diffusionは、テキストから画像を生成する画像生成AIの一つで、オープンソースとして提供されています。

プロンプトと呼ばれる文章を入力するだけで、AIがその内容に合った画像を生成します。

例えば「桜の木と富士山」というプロンプトを入力すると、桜と富士山が描かれた画像を自動的に生成してくれます。

Stable Diffusionは、Hugging Face社のライブラリ「Diffusers」から簡単に利用することができます。

2. Google Colabでの実行環境の設定

Stable Diffusionは画像生成に多くの計算資源を必要とするため、Google ColabのGPUを使うと便利です。

以下の手順でGPUを有効化しましょう。

  1. Google Colabにアクセスします。
  2. 新しいノートブックを作成します。
  3. メニューから「ランタイム」 > 「ランタイムのタイプを変更」を選択します。
  4. ハードウェアアクセラレータを「GPU」に設定して「保存」をクリックします。

これで、GPUを使用した高速な処理が可能になります。

3. 必要なライブラリのインストール

Google Colabのセルに以下のコマンドを入力し、必要なライブラリをインストールします。

これにより、Stable Diffusionで必要なDiffusersライブラリとその依存関係がインストールされます。

!pip install diffusers transformers ftfy accelerate

このコマンドは、以下のライブラリをインストールします。

  • diffusers: Stable Diffusionモデルを含む、Hugging Faceの画像生成ライブラリ
  • transformers: テキスト処理とモデル操作をサポートするHugging Faceのライブラリ
  • ftfy: テキストをクリーンアップするためのライブラリ
  • accelerate: 分散処理やGPUの最適化のためのライブラリ

4. 画像生成のコード解説

次に、Stable Diffusionを使って画像を生成するコードを紹介します。

以下のコードをGoogle Colabのセルに貼り付けて実行してください。

import torch
from diffusers import StableDiffusionPipeline

# 生成したい画像の内容をテキストで指定
input_text = "桜の木と富士山"

# Stable Diffusionのパイプラインを設定
pipeline = StableDiffusionPipeline.from_pretrained(
    "CompVis/stable-diffusion-v1-4", revision="fp16"
).to("cuda")

# 画像生成の実行
generated_image = pipeline(input_text, guidance_scale=7.5).images[0]

# 画像の保存
generated_image.save(f"{input_text}.png")

コードの解説

  • input_text:
    生成したい画像の内容を指定するテキスト(プロンプト)を設定します。
    例えば、「桜の木と富士山」と入力すれば、その内容を反映した画像が生成されます。
  • StableDiffusionPipeline.from_pretrained:
    Hugging Faceのモデルライブラリから、事前学習済みのStable Diffusionモデルをロードします。
    fp16は半精度(float16)を指定しており、メモリ使用量を抑えながら高速処理が可能です。
  • .to("cuda"):
    GPUを使うための設定で、「cuda」を指定することで、モデルがGPUで動作するようになります。
  • pipeline(input_text, guidance_scale=7.5):
    プロンプトをもとに画像を生成します。
    guidance_scaleは生成画像のプロンプトへの忠実度を調整するパラメータで、値を大きくするとプロンプトに沿った画像が生成されやすくなります。
  • generated_image.save:
    生成した画像を指定したファイル名で保存します。

5. 応用例:異なるプロンプトで画像を生成する

Stable Diffusionはプロンプト次第で様々な画像を生成できます。

以下は異なるプロンプトを指定して画像を生成する例です。

import torch
from diffusers import StableDiffusionPipeline

# Stable Diffusionのパイプラインを設定
pipeline = StableDiffusionPipeline.from_pretrained(
    "CompVis/stable-diffusion-v1-4", revision="fp16"
).to("cuda")

# 異なるプロンプトでの画像生成例prompts = ["宇宙の景色", "美しい海の夕日", "未来的な都市"]

for prompt in prompts:
    generated_image = pipeline(prompt, guidance_scale=7.5).images[0]
    generated_image.save(f"{prompt}.png")

このコードでは、「宇宙の景色」「美しい海の夕日」「未来的な都市」という3つのプロンプトで画像を生成し、それぞれの画像をファイルに保存します。

このように、ループを使えば複数の画像を簡単に生成可能です。

パラメータの調整

  • guidance_scale:
    プロンプトに忠実に生成するために7.5を指定しましたが、値を変更して生成される画像の変化を確認してみましょう。
    一般に、7.0〜8.5の範囲が多く使われます。
  • seed:
    結果の再現性を持たせたい場合には、乱数のシード(例えば42)を固定することもできます。
    シードを固定すると、同じプロンプトで同じ画像が生成されます。

6. まとめ

今回は、PythonとGoogle Colabを使って、Stable Diffusionによる画像生成を行う方法を紹介しました。

必要なライブラリのインストールから、基本的なコード構成、プロンプトによる画像生成、パラメータの調整方法について詳しく解説しました。

Stable Diffusionを活用すれば、クリエイティブな画像生成が可能です。

今回はシンプルな例を紹介しましたが、プロンプトを工夫することで、さらに多様な画像生成が楽しめます。

Google Colabで簡単に試せるので、ぜひ色々なプロンプトでオリジナル画像を生成してみてください!

また、複数の画像を組み合わせたコラージュの作成や、生成画像の微調整、プロンプトエンジニアリングのコツなども興味があれば試してみましょう。

このサイトのトップページへは以下へアクセス!

Python自動処理の教科書
Tips集
ゴマフリーダムをフォローする

コメント

達人に学ぶDB設計 徹底指南書

最短コースでわかる ディープラーニングの数学

あたらしい機械学習の教科書 第3版

ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装

タイトルとURLをコピーしました