リアルな美少女を生成させて話題になっているStable Diffusion。
自分も好きな画像を生成させて遊んでみたいなと思いました。
環境
Google Colabで実行。
Colab Proだとメモリ不足になってまったので、Colab+ Proに入りました。
ソース
Hugging Faceの学習済みモデルを使用し、「Dream Booth」という数枚の画像でファインチューニングして、画像を生成できる技術を用いました。
参考にした記事・ソース
流れ
以下のように一部のソースコードを編集し学習させました。
学習させたい画像をGoogle Driveのフォルダに入れる
↓
https://www.12-technology.com/2022/10/dreambooth-stable-diffusion.html より
https://colab.research.google.com/github/kaz12tech/ai_demos/blob/master/Dreambooth_demo.ipynb を開く
↓ソースコード編集
Google Driveをマウントさせて、フォルダのパスを設定
↓
手動で保存するのがめんどいので、Google Driveのフォルダに生成画像のGridを保存
生成画像が真っ暗になる問題
この記事で解決できた。
推論のコードを以下のように変える。
pipe = StableDiffusionPipeline.from_pretrained(
"<学習モデル>",
torch_dtype=torch.float16,
)
# 以下追加↓
def dummy(images, **kwargs): return images, False
pipe.safety_checker = dummy
pipe = pipe.to("cuda")
求めている画像を生成させるポイント
- ディープラーニングのようにたくさん画像を用意する必要はない。求めているような画像を数枚用意すればOK
たくさん画像を用意した場合...
いろんな種類の画像が生成されてしまい、求めている画像が生成される頻度が少ないです
ホラー漫画の美少女「富江」で
— あんはる@エンジニアFlutter Go React Rust (@_anharu) April 4, 2023
Stable Diffusionのファインチューニングをさせてみた結果、、 pic.twitter.com/U0In72k4WN
好きな画像だけピックアップして学習させて場合...
求めているような美しい美少女が生成されました
ホラー漫画の美少女「富江」でStable Diffusionのファインチューニングをしてみた結果、、Part2!!
— あんはる@エンジニアFlutter Go React Rust (@_anharu) April 4, 2023
富江だ、、、、、 pic.twitter.com/GDOrVdIG9G
生成された画像集