Diffusion Model(拡散モデル)の追加学習をColabでやる方法_ver2
こんにちは、kizamimiです。今回はDream BoothやHyper Networkではない純粋なDiffusion Modelの追加学習をColabで実行できるプログラムを大幅改修したのでその記録と共有になります。可能な限り、プログラムを直接触らなくても動かせるように作りました。ver2ではプレミアムGPUでなくても動かせるようになりました。つまりgoogle colabで無料で使用可能なGPUでも動きます。リンクはこちらから↓↓↓
こちらはコードの作成にかかり大きな助けになった記事です。追加学習部分の実装はKohya S.さんのスクリプトとなっています。
Diffusion Modelの追加学習を始める
前提知識
google colabの使い方が分かる
google driveの使い方が分かる
追加学習までの流れ
画像データセットを用意する
データセットのキャプションを作成する
追加学習する
学習モデルを使って生成
Part0. データセットを用意する
まず、画像を沢山用意します。v2ではサイズ条件を緩和し、縦横500px程度の画像を用意してください。(私の場合は少なくても200枚程度用意しました)
次に、"Part0 データセットフォルダの作成"にてPart0-1でgoogle driveと接続し、Part0-2を実行してください。Part0-2実行後、指定されたgoogle driveの場所に用意したデータセットを入れてください。
上の図だとMyDrive/My_Finetuing/1/datasetにデータセットを入れることになります。データセットのアップロードには少し時間がかかると思うので待ちます。
Part1. 用意したデータセットを使って追加学習する
最初にPart1-1でgoogle colabと接続した後、Part1-2で追加学習を行うための初期設定を行います。要求される入力項目は以下になります。
次にPart1-3とPart1-4を順に実行し、学習したモデルが今回だとMyDrive/My_Finetuing/1/result/でlast.ckptファイルとして出力されます。
学習した後は
ckptファイルはWebUIで使用できるためautomatic1111さんのWebUIが動くPCを持っている方はそちらをお勧めします。
WebUIを利用できない方のため、colabでdiffusersを使用して画像生成する機能も用意しました。Part2に進みます。
Part2. ckptファイルをdiffusersに変換
Part3での画像生成を実行するため、ckptファイルをdiffusersに変換していきましょう。Part2-1から順に実行していきます。
またcolabの説明にもあるように、実行一回目RESTART RUNTIMEのボタンが出るのでクリックしてください。再起動されます。
Part3. 画像生成
diffusers用の学習したモデルで実際の生成はPart3を実行することで行えます。
最初にPart3-1とPart3-2の実行後、、Part3-3画像生成を行います。実行で生成画像を得ることができます。
最後に
今回は前回に引き続き、Dream BoothやHyper Networkなどの軽量追加手法でない純粋な追加学習を行いました。Discordサーバーでフィードバックをいただきながら改善したver2の紹介になりました。最後に私が運営のお手伝いしている Discord サーバーを載せます。このサーバーでは Novel AIやniji・journeyなど を使用した作品共有、研究やwaifu diffusionなどの追加学習の情報共有など行っています。
こちらは今回作成したcolabのフィードバックをいただいたときお世話になったサーバーです。参加してお絵描きAIの世界をのぞいてみてはいかがでしょうか。(kizamimi)
この記事が気に入ったらサポートをしてみませんか?