メインコンテンツへスキップ
見出し画像

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. 関連



     
     

    npaka

     
     
    プログラマー。iPhone / Android / Unity / ROS / AI / AR / VR / RasPi / ロボット / ガジェット。年2冊ペースで技術書を執筆。アニソン / カラオケ / ギター / 猫 twitter : @npaka123

    あなたへのおすすめ