Warning: include(/home/xs567114/denshigomi.com/public_html/wp/wp-content/plugins/hcaptcha-for-forms-and-more/vendor/composer/../matthiasmullie/minify/src/Minify.php): failed to open stream: No such file or directory in /home/xs567114/denshigomi.com/public_html/wp/wp-content/plugins/hcaptcha-for-forms-and-more/vendor/composer/ClassLoader.php on line 576

Warning: include(): Failed opening '/home/xs567114/denshigomi.com/public_html/wp/wp-content/plugins/hcaptcha-for-forms-and-more/vendor/composer/../matthiasmullie/minify/src/Minify.php' for inclusion (include_path='.:/opt/php-7.4.33-2/data/pear') in /home/xs567114/denshigomi.com/public_html/wp/wp-content/plugins/hcaptcha-for-forms-and-more/vendor/composer/ClassLoader.php on line 576
【Stable Diffusion】RunPodを使ったDreamBoothのやり方 | 電子ゴミ屋敷

【Stable Diffusion】RunPodを使ったDreamBoothのやり方

StableDiffusion

本記事では、自分の好きなキャラを追加学習できる「DreamBooth」をRunPod上で行うやり方について紹介します。

DreamBoothの詳細については省きますのであしからず。

スポンサーリンク

アカウント作成

SignUpからRunPodアカウントを新規作成し、ログイン。

ログイン後、マイページを開く。

資金の追加

マイページのMANAGEからBillingをクリック。

追加したい金額を選択し(入力も可能)、支払い方法を選択後クリック。

支払い画面に飛ぶのでカード番号等を入力し支払い。

10$もあれば十分に学習出来ます。

学習画像の準備

DreamBoothの学習は5~6枚の画像でも十分ですが、50枚や100枚の方がいい結果が出たという話も聞きます。

ですので最適な枚数は分かりませんが、経験上10枚はあった方が良い気がします。

学習画像を用意したら、512×512にリサイズする必要があります。

手作業でリサイズしてもいいですが、キャラクターや人物画像であればIzumi SatoshiさんのColabがオススメです。

GPUの準備

マイページのCLOUDからSecure Cloudを選択。

RTX A5000を選択。

Unavailableとなっている場合は空きが無い状態です。しばらく待ちましょう。

コンテナディスクはそのまま、ボリュームディスクは多めにする。(今回は50GB)

テンプレートはRunPod Pytorchを選択しContinue。

設定を確認し、Deploy On-Demandをクリック。

これでGPUの準備は完了です。

My Podsを選択。

More Actionsアイコン(下画像参照)から、Edit Podを選択。

Docker Image Namerunpod/pytorchと入力し、Save。

Podの再起動後、Connect > Connect to Jupyter Labをクリック

Jupyter Labが起動したらOKです。

モデルの準備

Python3(Notebook)をクリック。

セルに下のコマンドを張り付けて実行。

Dreamboothのリポジトリがクローンされます。

!git clone https://github.com/JoePenna/Dreambooth-Stable-Diffusion.git

クローンされたリポジトリをクリックし、dreambooth_runpod_joepenna.ipynbに入る。

2番目のセルを実行

モデルをダウンロードする場合

現時点ではSD2.0以上のバージョンでは動かないようです(2023/01/25)

次にモデルのダウンロードを行います。(自前の.ckptファイルを使いたい人はこちら

HUGGING_FACE_API_TOKEN_HEREを自分のトークンに置き換え、セルを実行。

HuggingFaceへ未登録の方は登録後、トークンページからトークンが取得できます)

次のセルを実行し、HuggingFaceからダウンロード。

デフォルトではSD1.5がダウンロードされます。他モデルを使いたい場合はrepo_idをHuggingFace上のモデル名に、filenameをckptファイル名に変更してください。

例:WaifuDiffusion1.3を使用する場合はrepo_idをhakurei/waifu-diffusion-v1-3、filenameをwd-v1-3-full.ckptに変更。

自前のckptファイルを使う場合

ckptファイルをドラッグアンドドロップし、model.ckptにリネーム。

HuggingFace以降のセルは必要ないのでRegularization Imagesに進んでください。

学習の実行

Download pre-generated regularization imagesのセルを実行。

training_imagesフォルダを作成し、そこに用意しておいた学習用画像をアップロード。

Trainingセルに移動。

project_nameに好きなプロジェクト名。

max_training_stepsに学習させたいステップ数。(目安は学習画像 x 100~300)

tokenに好きなトークン名を入力。

ここに入力したトークン名+personで呼び出します。例えばsksを入れた場合

sks person, portrait photograph, 85mm medium format photo

などで生成することになります。

入力したらTrainingセルを実行。学習が開始されるので終わるまで待ちます。

Training complete.と表示されたら終了です。

学習したモデルのダウンロード

Copy and name the checkpoint fileを実行。

training_modelsフォルダに学習したモデルがコピーされるので、右クリック > Downloadでダウンロード。

GPUの終了

モデルのダウンロード完了後に行ってください。

マイページ > My PodsからGPUの停止ボタンを押す。

Stop Podをクリック。

この時点では完全に終了していないので注意。

ゴミ箱マークをクリック。

Terminate Podの表示が出るのでYes。

My Podsから表示が消えたら完了です。お疲れさまでした。

コメント

  1. れれれ より:

    はじめまして
    この記事を参考にトライさせていただいたのですが

    trainingを実行すると

    NameError: name ‘trainer’ is not defined
    と表示されてしまいます…

    • 電子ゴミ屋敷 より:

      コメントありがとうございます。

      モデルは何を使用されていますか?
      当記事で紹介しているプログラムは、SD1.4の頃に書かれたものであり、仕様が変更されたver2.0以上では実行できないようです。
      ファインチューンモデルについても、ベースが2.0以上であれば同様と思われます。
      Githubにも同じようなエラー報告があるため、その内修正されるかもしれません。
      1/23日時点でSD1.5で実行可能であることは確認済みです。参考になれば幸いです。

    • れれれ より:

      すみません解決しました!!
      学習させるためのモデルがfp16ではなかったため学習できなかったようです…

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