このリポジトリは主に、Kohya の Stable Diffusion トレーナー用の Gradio GUI を提供します。ただし、Linux OS のサポートはコミュニティの貢献によっても提供されます。 macOS のサポートは現時点では最適ではありませんが、条件がよければ機能する可能性があります。
GUI を使用すると、トレーニング パラメーターを設定し、モデルをトレーニングするために必要な CLI コマンドを生成して実行できます。
KohyaのGUI
ページファイルの制限
tkinterというモジュールはありません
TESLA V100 に関する LORA トレーニング - GPU 使用率の問題
問題の概要
潜在的な解決策
Windows での GUI の起動
Linux および macOS での GUI の起動
Windowsのアップグレード
Linux および macOS のアップグレード
窓
Linux と macOS
ランポッド
ドッカー
Windows の前提条件
セットアップウィンドウ
オプション: CUDNN 8.9.6.50
Linux の前提条件
Linuxのセットアップ
設置場所
手動インストール
事前に構築された Runpod テンプレート
窓
Linux、OSX
Docker を GPU サポートに対応できるように準備する
Dockerfile の設計
事前に構築された Docker イメージを使用する
ローカルの Docker ビルド
Ashleykleynhans runpod docker ビルド
目次
?コラボ
インストール
アップグレード中
GUIサービスの開始
カスタムパスのデフォルト
LoRA
トレーニング中のサンプル画像生成
トラブルシューティング
SDXLトレーニング
仮面喪失
変更履歴
この Colab ノートブックは私によって作成または管理されたものではありません。ただし、効果的に機能しているようです。ソースは https://github.com/camenduru/kohya_ss-colab で見つけることができます。
Camendutu の貴重な貢献に感謝の意を表したいと思います。 Colab ノートブックで問題が発生した場合は、リポジトリに報告してください。
コラボ | 情報 |
---|---|
kohya_ss_gui_colab |
必要な依存関係を Windows システムにインストールするには、次の手順に従います。
Python 3.10.11 をインストールします。
インストールプロセス中に、Python を「PATH」環境変数に追加するオプションを必ず選択してください。
CUDA 11.8 ツールキットをインストールします。
Gitをインストールします。
Visual Studio 2015、2017、2019、および 2022 再頒布可能パッケージをインストールします。
プロジェクトを設定するには、次の手順に従います。
ターミナルを開き、目的のインストール ディレクトリに移動します。
次のコマンドを実行して、リポジトリのクローンを作成します。
git clone --recursive https://github.com/bmaltais/kohya_ss.git
kohya_ss
ディレクトリに移動します。
cd kohya_ss
次のコマンドを実行して、次のセットアップ スクリプトのいずれかを実行します。
Python 3.10.11 のみがインストールされているシステムの場合:
.setup.bat
複数の Python リリースのみがインストールされているシステムの場合:
.setup-3.10.bat
ハードウェアの要件が不明な場合を除き、構成の高速化ステップでは、構成中に提案されたデフォルト値を使用します。 GPU 上の VRAM の量は、使用される値には影響しません。
次の手順はオプションですが、NVIDIA 30X0/40X0 GPU の所有者の学習速度が向上します。これらの手順により、トレーニング バッチ サイズが大きくなり、トレーニング速度が向上します。
.setup.bat
を実行し、 2. (Optional) Install cudnn files (if you want to use the latest supported cudnn version)
。
Linux システムに必要な依存関係をインストールするには、次の要件を満たしていることを確認してください。
venv
サポートがプリインストールされていることを確認してください。次のコマンドを使用して、Ubuntu 22.04 にインストールできます。
apt インストール python3.10-venv
このリンクに記載されている手順に従って、CUDA 11.8 ツールキットをインストールします。
システムに Python バージョン 3.10.9 以降 (ただし 3.11.0 未満) がインストールされていることを確認してください。
Linux または macOS でプロジェクトをセットアップするには、次の手順を実行します。
ターミナルを開き、目的のインストール ディレクトリに移動します。
次のコマンドを実行して、リポジトリのクローンを作成します。
git clone --recursive https://github.com/bmaltais/kohya_ss.git
kohya_ss
ディレクトリに移動します。
cd kohya_ss
権限の問題が発生した場合は、次のコマンドを実行してsetup.sh
スクリプトを実行可能にします。
chmod +x ./setup.sh
次のコマンドを実行してセットアップ スクリプトを実行します。
./setup.sh
注: runpod 環境に関する追加のオプションまたは情報が必要な場合は、 setup.sh -h
またはsetup.sh --help
を使用してヘルプ メッセージを表示できます。
Linux のデフォルトのインストール場所は、スクリプトが配置されているディレクトリです。その場所で以前のインストールが検出された場合、セットアップはそこで続行されます。それ以外の場合、インストールは/opt/kohya_ss
に戻ります。 /opt
書き込み可能でない場合、フォールバックの場所は$HOME/kohya_ss
になります。最後に、前のオプションがどれも実行できない場合、インストールは現在のディレクトリで実行されます。
macOS およびその他の Linux 以外のシステムの場合、インストール プロセスは、スクリプトが実行された場所に基づいて、以前のインストール ディレクトリを検出しようとします。以前のインストールが見つからない場合、デフォルトの場所は$HOME/kohya_ss
になります。セットアップ スクリプトの実行時に-d
または--dir
オプションを使用してカスタム インストール ディレクトリを指定することで、この動作をオーバーライドできます。
対話型モードの使用を選択した場合、アクセラレーション設定画面のデフォルト値は、「このマシン」、「なし」、残りの質問については「いいえ」になります。これらのデフォルトの回答は、Windows インストールの場合と同じです。
Runpod に必要なコンポーネントをインストールして kohya_ss を実行するには、次の手順に従います。
Runpod pytorch 2.0.1 テンプレートを選択します。これは重要です。他のテンプレートは機能しない可能性があります。
Runpod に SSH で接続します。
次のコマンドを実行して、リポジトリのクローンを作成します。
cd /ワークスペース git clone --recursive https://github.com/bmaltais/kohya_ss.git
セットアップ スクリプトを実行します。
cd kohya_ss ./setup-runpod.sh
次のコマンドを使用して GUI を実行します。
./gui.sh --share --headless
または、runpod 設定を介して 7860 を直接公開する場合は、次のようにします。
./gui.sh --listen=0.0.0.0 --headless
インストールプロセスの完了後に表示されるパブリック URL に接続します。
事前に構築された Runpod テンプレートから実行するには、次のことができます。
https://runpod.io/gsc?template=ya6013lj5a&ref=w18gds2n をクリックして、Runpod テンプレートを開きます。
テンプレートを目的のホストにデプロイします。
デプロイしたら、HTTP 3010 で Runpod に接続し、kohya_ss GUI にアクセスします。 HTTP 3000 で auto1111 に接続することもできます。
Docker Desktop 、 CUDA Toolkit 、 NVIDIA Windows Driverをインストールし、Docker がWSL2で実行されていることを確認したら、準備完了です。
詳細については、公式ドキュメントを参照してください。
https://docs.nvidia.com/cuda/wsl-user-guide/index.html#nvidia-compute-software-support-on-wsl-2 https://docs.docker.com/desktop/wsl/use -wsl/#gpu-サポート
NVIDIA GPU ドライバーがまだインストールされていない場合は、インストールします。
https://docs.nvidia.com/datacenter/tesla/tesla-installation-notes/index.html
このガイドに従って NVIDIA Container Toolkit をインストールします。
https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html
すべてのトレーニング データは、 /dataset
のコンテナーにマウントされるdataset
サブディレクトリに保存する必要があります。
ファイルピッカー機能は利用できないことに注意してください。代わりに、フォルダー パスと構成ファイル パスを手動で入力する必要があります。
TensorBoard はプロジェクトから分離されました。
TensorBoard は Docker イメージには含まれていません。
「Start TensorBoard」ボタンが非表示になりました。
TensorBoard は、ここに示すように別のコンテナから起動されます。
ブラウザは自動的には起動しません。ブラウザを手動で開き、http://localhost:7860/ および http://localhost:6006/ に移動する必要があります。
この Dockerfile は簡単に処分できるように設計されています。いつでもコンテナを破棄し、新しいコード バージョンで再起動できます。
git clone --recursive https://github.com/bmaltais/kohya_ss.gitcd kohya_ss ドッカー構成 -d
システムを更新するには、 docker compose down && docker compose up -d --pull always
を実行します。
重要
Git リポジトリを再帰的にクローンして、サブモジュールを含めます。
git clone --recursive https://github.com/bmaltais/kohya_ss.git
git clone --recursive https://github.com/bmaltais/kohya_ss.gitcd kohya_ss docker 構成 -d --build
注記
イメージの構築が完了するまでに最大 20 分かかる場合があります。
システムを更新するには、新しいコード バージョンにチェックアウトし、 docker compose down && docker compose up -d --build --pull always
を使用して再構築します。
Linux で実行している場合は、制限の少ない代替 Docker コンテナ ポートをここで利用できます。
runpod で実行する場合は、次のリポジトリを使用するとよいでしょう。
スタンドアロン Kohya_ss テンプレート: https://github.com/ashleykleynhans/kohya-docker
Auto1111 + Kohya_ss GUI テンプレート: https://github.com/ashleykleynhans/stable-diffusion-docker
インストールを新しいバージョンにアップグレードするには、以下の手順に従ってください。
新しいリリースが利用可能になった場合は、プロジェクトのルート ディレクトリから次のコマンドを実行してリポジトリをアップグレードできます。
最新の変更をリポジトリから取得します。
git プル
セットアップ スクリプトを実行します。
.setup.bat
Linux または macOS でインストールをアップグレードするには、次の手順に従います。
ターミナルを開き、プロジェクトのルート ディレクトリに移動します。
最新の変更をリポジトリから取得します。
git プル
すべてを更新して更新します。
./setup.sh
GUI サービスを起動するには、提供されたスクリプトを使用するか、 kohya_gui.py
スクリプトを直接実行します。以下にリストされているコマンド ライン引数を使用して、基盤となるサービスを構成します。
--listen: Specify the IP address to listen on for connections to Gradio.
--username: Set a username for authentication.
--password: Set a password for authentication.
--server_port: Define the port to run the server listener on.
--inbrowser: Open the Gradio UI in a web browser.
--share: Share the Gradio UI.
--language: Set custom language
Windows では、ルート ディレクトリにあるgui.ps1
またはgui.bat
スクリプトを使用できます。好みに合ったスクリプトを選択し、必要なコマンド ライン引数を指定してターミナルで実行します。以下に例を示します。
gui.ps1 --listen 127.0.0.1 --server_port 7860 --inbrowser --share
または
gui.bat --listen 127.0.0.1 --server_port 7860 --inbrowser --share
Linux または macOS で GUI を起動するには、ルート ディレクトリにあるgui.sh
スクリプトを実行します。次のように、必要なコマンド ライン引数を指定します。
gui.sh --listen 127.0.0.1 --server_port 7860 --inbrowser --share
リポジトリは、 config.toml
という名前のデフォルト構成ファイルを提供するようになりました。このファイルは、ニーズに合わせてカスタマイズできるテンプレートです。
デフォルトの構成ファイルを使用するには、次の手順に従います。
config example.toml
ファイルをリポジトリのルート ディレクトリからconfig.toml
にコピーします。
テキスト エディタでconfig.toml
ファイルを開きます。
要件に応じてパスと設定を変更します。
このアプローチにより、特定のニーズに合わせて構成を簡単に調整し、GUI でサポートされているフォルダー/ファイル入力の各タイプに必要なデフォルト フォルダーを開くことができます。
GUI の実行時に、config.toml へのパス (または他の任意の名前) を指定できます。例: ./gui.bat --config c:my_config.toml
LoRA をトレーニングするには、現時点ではtrain_network.py
コードを使用できます。オールインワン GUI を使用して LoRA ネットワークを作成できます。
LoRA ネットワークを作成したら、この拡張機能をインストールすることで auto1111 を使用してイメージを生成できます。
プロンプト ファイルは、たとえば次のようになります。
# プロンプト 1 傑作、最高の品質、(女の子 1 人)、白いシャツを着て、上半身、ビューアを見ている、シンプルな背景 --n 低品質、最悪の品質、悪い解剖学、悪い構成、貧弱、低労力 --w 768 --h 768 --d 1 --l 7.5 --s 28# プロンプト 2傑作、最高の品質、少年 1 人、ビジネス スーツを着て、通りに立って、振り返って --n (低品質、最悪の品質)、悪い解剖学、悪い構成、悪い、低労力 --w 576 --h 832 --d 2 --l 5.5 --s 40
#
で始まる行はコメントです。プロンプトの後に--n
などのオプションを使用して、生成されたイメージのオプションを指定できます。次のオプションを使用できます。
--n
: 次のオプションまでの否定プロンプト。
--w
: 生成される画像の幅を指定します。
--h
: 生成される画像の高さを指定します。
--d
: 生成されるイメージのシードを指定します。
--l
: 生成されるイメージの CFG スケールを指定します。
--s
: 生成のステップ数を指定します。
( )
や[ ]
などのプロンプトの重み付けが機能しています。
問題が発生した場合は、以下のトラブルシューティング手順を参照してください。
ページ ファイルに関連する X エラーが発生した場合は、Windows のページ ファイル サイズ制限を増やす必要がある場合があります。
モジュールtkinter
が見つからないことを示すエラーが発生した場合は、システムに Python 3.10 を再インストールしてみてください。
TESLA V100 で LORA をトレーニングすると、ユーザーは GPU 使用率が低いと報告しました。さらに、トレーニング用にデフォルト以外の GPU を指定することも困難でした。
GPU の選択:ユーザーはセットアップ構成で GPU ID を指定して、トレーニングに必要な GPU を選択できます。
GPU 負荷の改善: adamW8bit
オプティマイザーを利用し、バッチ サイズを増やすと、GPU メモリ制限を超えることなく 70 ~ 80% の GPU 使用率を達成できます。
このセクションのドキュメントは、後で別のドキュメントに移動されます。
マスクされた損失は各トレーニング スクリプトでサポートされています。マスクされた損失を有効にするには、 --masked_loss
オプションを指定します。
この機能は完全にテストされていないため、バグが存在する可能性があります。問題が見つかった場合は、問題を開いてください。
ControlNet データセットはマスクを指定するために使用されます。マスク画像はRGB画像である必要があります。 R チャネルの画素値 255 はマスクとして扱われ (損失はマスクのある画素についてのみ計算されます)、0 は非マスクとして扱われます。ピクセル値 0 ~ 255 は 0 ~ 1 に変換されます (つまり、ピクセル値 128 は損失の半分の重みとして扱われます)。データセット仕様の詳細については、LLLite ドキュメントを参照してください。
リリース情報を参照してください。