見出し画像

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のインストールでした。