LinuxにLoRA作成アプリkohya_ssをインストールw/sd-scripts
Stable-DiffusionのLoRA作成をLinux上で使おうとしたところ、インストールが上手くできず困ったので解決方法をメモ。(記憶をたどっているので所々怪しいですが、困っている方はこの記事を参考に試行錯誤して試してください)。なお、途中でsd-scriptsをインストールするので、そのままsd-scriptsでLoRAの学習が可能です。
kohya_ssはWindowsでは良く使われる、有名なLoRA作成アプリです。GUIで操作できるようになっています。GUIが必ずしも必要だったわけではないのですが、環境構築を兼ねて動かしました。Linuxへのインストールの詳細は情報が少なくて、筆者のPCではRead.me通りでは動きませんでした。エラーメッセージとWindows版のインストール過程を見ながら、セットアップ過程を順次実行し、動かすことができました。
環境の準備
Pythonが3.10指定なので、
apt install python3.10-venv
で仮想環境を作成するように書いてあります。筆者の環境はcondaなので、専用のconda環境を先に準備して進めることにします。なお、CUDA-Toolkitは事前にインストールされているものとします。筆者のPCは nvcc -Vで調べると
Cuda compilation tools, release 12.2, V12.2.91
となっています。
conda create -n py310
conda activate py310
で環境作成します。py310は環境名ですが、何でも構いません。
以下のコマンドで事前にvenvが使えるように準備をします。
apt install python3.10-venv
kohya_ssをgithubからクローンし、ディレクトリを移動
git clone https://github.com/bmaltais/kohya_ss.git
cd kohya_ss
setup.shでセットアップします。
bash setup.sh
ここでエラーが出てしまいます。
エラーの内容
1)accelerate
最初に目につくエラーです。自動でインストールできないので手動でやるように、とメッセージが出ています。
2)CUDAのバージョン
GPUに合わないという、いつものメッセージ
1)の解決
指示に従い手動でインストールします。
sd-scriptのインストールとaccelerateの設定
以下のwebサイトに詳しく出ています。
git clone https://github.com/kohya-ss/sd-scripts.git
cd sd-scripts
PyTorchのインストール
上記の記事ではTorch1.13 ,CUDA11.7となっていますが、GPUがRTX4060なので最新をインストールします。2.1.1、Linux,pip、Python,CUDA12.1を選択すると以下のインストールコマンドが表示されます。
pip3 install torch torchvision torchaudio
引き続きインストール
pip install --upgrade -r requirements.txt
pip install -U --pre triton
pip install xformers==0.0.16rc425
accelerate configの設定
accelerate config
起動したら順次答えます。
Windows版と同じになるように回答します。
上記記事に記載されているとおりです。
- This machine
- No distributed training
- NO
- NO
- NO
- all
- fp16
引き続きkohya_ssのインストール
kohya_ssはインストールの過程で自動的にVENV環境を作成しそこへ各種のモジュールをインストールする仕組みになっています。事前にVENV環境のインストールを求められたものそのためです。ここ、わかりにくいですが、セットアップメッセージを見ると確かにVENV環境の作成と有効化が実行されています。1)のエラーが解消されると、さらにインストールが進みます。この過程で筆者の環境ではいくつかimportエラーが出ていました。
新たなモジュールをVENV環境へ手動インストール
setup.shが作成した仮想環境を手動で有効化します。
source venv/bin/activate
kohya_ssの仮想環境にもCUDAに合ったPyTorchのインストールが必要です。
pip3 install torch torchvision torchaudio
これで2)のエラーは解消されます。
この後、順次importエラーになっているモジュールをインストールします。
エラーメッセジを注意深く見てください。
bitsandbytesのインストール
多分、必要(このあたりが曖昧、ごめんなさい)
pip install -U bitsandbytes
これで全てのセットアップが完了するはずです。あとはGUI起動コマンドを入力してサーバを起動すれば、GUI内でLoRAの学習ができるようになります。
bash gui.sh
まとめ
今回苦労したのはsetup中にVENV環境の中でインストールが進み、ベースのconda環境で手動インストールをしてもCUDAとPyTorchのバージョンやその他のモジュールが反映さないこと。accelerate の手動設定の方法がわからず手間取りました。重要なポイントはVENV環境を手動で有効化することとsd-scriptsのインストールでした。