見出し画像

Stable Diffusion Concepts Libraryに独自のファインチューニングモデルを登録する

「Stable Diffusion Concepts Library」に独自のファインチューニングモデルを登録してみたので、まとめました。

・Stable Diffusion v1.4
・Diffusers v0.3.0

登録したファインチューニングモデルは、以下で参照できます。

・<sorami-style>

@sehiraさんの絵柄をAIが似せようとがんばってるのは感じられますが、まだまだなので、パラメータチューニングできたら更新したい。

1. Stable Diffusion Concepts Library

「Stable Diffusion Concepts Library」は、世界中の人がファインチューニングで追加学習したStable Diffusionモデルをお手軽に試すことができるサイトです。

使い方は前回紹介したので、今回は独自のファインチューニングモデルの学習とConcepts Libraryへの登録の手順を紹介します。

2. 独自のファインチューニングモデルの学習

独自のファインチューニングモデルの学習と「Concepts Library」への登録は、以下のColabノートブックを使います。

・Textual-inversion fine-tuning for Stable Diffusion using d🧨ffusers

(1) 「Initial setup」のセルを実行。

HuggingFaceのログイン時に、学習のみはRead権限のみのトークンで大丈夫ですが、Concepts Libraryへの登録はWrite権限のトークンを指定します。Write権限のトークンがない場合は、「New Token」で生成できます。

(2) 「Settings for teaching your new concept」のセルで、学習する画像 (3〜5枚) を指定して実行。
2つ目のセルで、学習する画像のURLを指定します。

Googleドライブから画像ファイル ("/content/drive/My Drive/work/inputs/image0〜4.png") を直接読み込みたい場合は、次のコードを追加して実行します。

# Googleドライブのマウントと作業フォルダへの移動
from google.colab import drive
drive.mount('/content/drive')
%cd '/content/drive/My Drive/work'
# 追加画像の準備
import requests
import glob
from io import BytesIO

images = [
    Image.open("./inputs/image0.png"),
    Image.open("./inputs/image1.png"),
    Image.open("./inputs/image2.png"),
    Image.open("./inputs/image3.png"),
    Image.open("./inputs/image4.png"),
]
save_path = "./my_concept"
if not os.path.exists(save_path):
  os.mkdir(save_path)
[image.save(f"{save_path}/{i}.jpeg") for i, image in enumerate(images)]
image_grid(images, 1, len(images))

読み込んだ画像が表示されます。

(3) 「Settings for your newly created concept」のセルで、コンセプト関連の設定して実行。 

・what_to_teach : オブジェクト (object) or 画風 (style)
・placeholder_token : 新しい概念を意味する新単語 (他と衝突しないように<>で囲む)
・initializer_token : 学習開始時の新しい概念の初期値となる単語

(4) 「Teach the model a new concept」のセルを実行。
学習を実行します。1〜4時間かかります。

3. 学習済みモデルの動作確認

「Save your newly created concept to the library of concepts?」は「Concepts Library」に登録するセルなので、「Set up the pipeline」「Run the Stable Diffusion pipeline」のセルを実行して、学習済みのモデルの動作確認します。

・prompt : 生成する画像を説明するテキスト
・num_samples : 1バッチで生成する画像枚数
・num_rows : 実行するバッチ回数

4. 学習済みモデルのConcepts Libraryへの登録

「Save your newly created concept to the library of concepts?」のセルを実行して、学習済みモデルを「Concepts Library」に登録します。

・save_concept_to_public_library : Concepts Libraryに登録するかどうか
・name_of_your_concept : コンセプト名 (Rep IDにも使われます)
・hf_token_write : 書き込み権限のあるトークンでログインしている時は空白。 そうでない場合は、書き込み権限のあるトークンを指定。

5. HuggingFaceのサイトでモデル公開

HuggingFaceのサイトにログインすると、登録したモデルが表示されます。まだPrivateで公開されていません。
公開手順は、次のとおりです。

(1) HuggingFaceのサイトにログイン。
(2) 登録した学習済みモデルを選択し、「Settings」で「Make this model public」を押す。
非公開に戻したい場合は「Make this model private」を押します。

(3) 「Concepts Library」のサイトで公開されていることを確認。

6. 推論用のColabノートブック

「Concepts Library」の学習済みモデルを実行するには、以下の推論用のColabノートブックを利用できます。

・Stable Conceptualizer - Stable Diffusion using learned concepts

7. 関連



この記事が気に入ったらサポートをしてみませんか?