kohya_ssでエラーが出て動かなかったので何とかした話

英語が読めたら秒で解決した問題だったんですが、
git cloneしてkohya_ssをダウンロード。
setup.batを起動。
ここまではいくらでもhow toサイトがあったので困らず。
ここからの手順が参考にしたサイトと違った。
4以外の全てのオプションを上から全部対応した。

1. Install kohya_ss gui
これが終わると自動で4を選択した場合の設定が始まる。
This machine、No distributed training、no、no、no、all
私はRTX3080tiを利用しているので最後の問いはbf16を選択

2. (Optional) Install cudann files (avoid unless you really need it)
これは選択する前にkohya_ssのgitのページOptional: CUDNN 8.6の項目にある青字のhereからダウンロードしたzipファイルを解凍。
出てきたcudnn_windowsフォルダをkohya_ssフォルダ直下にコピー。
最後にこのオプションを選択することで導入完了。

3. (Optional) Install specific bitsandbytes versions
参考にしたサイトではこの項目を飛ばしている場所が多かった。
『ModuleNotFoundError: No module named 'bitsandbytes.cuda_setup.paths'.』

『bitsandbytesがインストールされていないようです』
等と表示されたらこれが原因。
GUI setup menuで3を押しこのオプションに入ると導入するbitsandbytesを選択する画面が出ると思うので3の0.41.1を選択。
しかしこれだけでは上記のエラーは解消されず、更に調べるとkohya_ss\venv\scriptsでcmdでpip install bitsandbytes-windowsしてactivateを実行すれば直ると英語で書かれていた。
英語もプログラミングも全く分からなかったが以下の方法で合っていたようだ。
コマンドプロンプトを開き以下を一つずつ実行した。
cd c:\kohya_ss\venv\scripts\(私はC直下にインストールしている)
pip install bitsandbytes-windows
activate
以上の3つだ。
これで上手くいかない場合、一度kohya_ssフォルダを削除して手順を最初からやり直す必要があるかもしれない
また、上記手順はsetup.batで開いたウィンドウを閉じて行った。

4. (Optional) Manually configure accelerate
この選択肢はfp16とbf16を見間違えた時に使うかもしれない。
私は間違えたので一度kohya_ssフォルダを削除して再度git cloneしました。

5. (Optional) Start Kohya_ss GUI in browser
これを選択することでGUIが起動します。
次回からはkohya_ss内gui.batから起動できます。

しかし導入完了、めでたしめでたしでは終わらなかった。

いざ学習を開始すると
『subprocess.CalledProcessError: Command (中略) returned non-zero exit status 1.』
なるエラーが発生。ググるとデータセットの置かれているフォルダが悪いみたいな話を見かけたので取り合えずoutput_dirをデータセットと同じ階層から全く別のフォルダに変えることで学習に成功した。
その後再起動を挟んで再度学習を行おうとした際上記のエラーが再発したが、コマンドプロンプトからcd c:\kohya_ss\venv\scripts\とactivateを行う事で無事エラーが解消された。

今回備忘録として初めてnoteを書いたが同じエラーに悩んでいる人の助けになれば幸いである。


2024年3月14日追記
思いの外スキが沢山きてこんな拙い記事でも役に立っていたら幸いである。

筆者は自作PC初心者で、PCを分解した拍子にマザーボードを破損させてしまった。
原因がわからない内にクリーンインストール等試した末にWindowsが立ち上がらなくなる等のやらかしの結果、修理に出し明日まっさらな状態のPCが届く予定だ。
再度web UIやkohya、KakikomiPlus等をインストールする予定なのでまた気付いたら事があれば加筆予定である。
結果の前に記事に加筆したのは、再インストールを試そうと思った時「SDXL」や「Forge」、ひいては「LECO」等知らない単語ばかりでAIの進歩に着いていけていない事に気付いた為、他のAIユーザーの皆さんはどうやって最新情報を集めているか知りたかった為である。
XやDiscordのサーバー等交流して下さる方がいたら是非コメントをいただきたい。


2024年3月15日追記
StabilityMatrixを試したところ、煩雑な手順なしでkohya_ssが導入できた。
もうこの記事いらないじゃん…
クリーンなPCにpythonすら入れずにstable diffusionで遊ぶ環境が整ってしまった。
もしStabilityMatrixをご存じない方はこれを機にそちらからの導入をおすすめする。


2024年3月18日追記
Forgeを使用していたところ「TypeError: 'NoneType' object is not iterable」というエラーに遭遇。
controlnetを使っていたりCheckpointに間違ってLoraを読み込むと起こるエラーらしいが、私が遭遇したものはSuperMergerやMergeBlockWeight製のマージモデルが悉く動かないというものだった。
結論だけ記すと設定のディレクトリへの保存のフォルダ名を[prompt_words]に変えたところこのエラーは表示されなくなった。

また、KakikomiPlusを導入するにあたりPythonを導入したが「Python .\venv\Scripts\activate : 用語 '.\venv\Scripts\activate' は、コマンドレット、関数、スクリプト ファイル、または操 作可能なプログラムの名前として認識されません。名前が正しく記述されていることを確認し、パスが含まれている場合はそのパスが正しいことを確認してから、再試行してください。」や「pip : 用語 'pip' は、コマンドレット、関数、スクリプト ファイル、または操作可能なプログラムの名前として認識されません。
名前が正しく記述されていることを確認し、パスが含まれている場合はそのパスが正しいことを確認してから、再試行してください。」に悩まされたが、Pathが通っていないことが原因だった。
管理者権限のパワーシェルでSet-ExecutionPolicy RemoteSigned -Scope CurrentUserもお忘れなく。

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