今話題のkohya版LoRAの記事です。
少し前までキャラ学習ではDreamBoothを使うことが多かったですが、手軽に出来て配布にも向いているということで、最近ではkohya版のLoRAを用いることが多いようです。
LoRAは低VRAMでも出来るためローカルで行う人が多いようですが、中にはゲームをやりながら学習を進めたいという方もいるでしょう。というか私がそのタイプです。
なので今回はkohya版LoRAをpaperspaceで動かす方法を書いていきます。
この記事に来ている方のほとんどはpaperspaceは登録済みだと思いますが、登録していない方は以下のURLからpaperspaceのページに飛べるので登録してください。
paperspace
また、paperspaceでAUTOMATIC1111版web-uiを導入する方法は以下の記事で解説しています。
【Novel AI】stable diffusionの追加学習をpaperspaceで月額たった8ドルで行う為のweb-ui導入方法【DreamBooth】
それではpaperspaceで環境を構築していきましょう。
kohya版LoRAの環境をpaperspaceに構築する
使用リポジトリと参考ページ
今回使用するリポジトリはこの2つです。
https://github.com/kohya-ss/sd-scripts
https://github.com/derrian-distro/LoRA_Easy_Training_Scripts
また、環境構築の為に参考にしたページは以下になります。
LoRA導入参考(Twitter)
基本的にこの方が公開しているコードをコピペで良いのですが、paperspaceを初めて触る人や、触り始めて間もない方だと少し躓くポイントがあったため、この記事はその補足のようなものと考えてください。
プロジェクトの作成
まずはCREATE A PROJECTでプロジェクトを作成します。プロジェクト名は自由に決めてください。
プロジェクトを作成したらNotebooksを作成します。
次はNotebooksの設定です。
Select a runtimeは赤丸で囲ったStart from Scratchを選択します。
その下にあるSelect a machineは使用したいGPUを選択します。8ドルプランならVRAMが16GBあるA4000かRTX5000を選択しとけばOKです。P5000でもいけるかもしれませんが、前にP5000でDreamBoothしたら学習速度がものすごく遅かったので満足に学習できるかは分かりません。
Auto-shutdown timeoutは自動でランタイムが切断される時間です。どれでも良いですが、大は小を兼ねるとも言いますし6時間を選択しておきましょう。
スポンサーリンク
初回起動
それでは、初回起動で必要なデータを取得していきます。
前項の手順が終わった状態だと以下のような画面になっていると思います。
以下の画像のように、左側のアイコン一覧から赤枠で囲ったTerminalsをクリックし、青枠で囲った”+”ボタンをクリックします。
すると、以下のようにターミナルが追加され、赤枠で囲ったコンソールが開きます。(呼び方がコンソールで合ってるか分かりませんが、ここではコンソールと呼びます)
web-uiの導入ではJupyterLabを開きましたが、kohya版LoRAの導入はこのターミナルから実行していきます。たぶんここが一番の躓きポイントです。JupyterLabからノートブックを作ってやってみましたが、「accelerate config」で先に進むことが出来ませんでした。
あとは参考にしたTwitterで公開されているコードをコピペするだけですが、一応こちらにもコードを載せておきます。また最初のmkdirコマンドは参考Twitterでは”mk”と”dir”の間にスペースが空いていますが、そのままだとエラーが出るのでスペースを空けずに“mkdir”としてください。
もう1つ、最後辺りに”lora_train_command_line.py”というファイルをsd-scriptsフォルダへコピーするコード“LoRA_Easy_Training_Scripts\lora_train_command_line.py sd-scripts”ですが、こちらも参考Twitterのままコピペするとエラーが出るので以下のコードでは修正してあります。
mkdir LoRA
cd LoRA
apt update -y
apt upgrade -y
git clone https://github.com/kohya-ss/sd-scripts.git
git clone https://github.com/derrian-distro/LoRA_Easy_Training_Scripts.git
cd sd-scripts
apt -y install python3.10
pip install torch==1.12.1+cu116 torchvision==0.13.1+cu116 torchaudio==0.12.1 --extra-index-url https://download.pytorch.org/whl/cu116
pip install torch==1.12.1+cu116 torchvision==0.13.1+cu116 --extra-index-url https://download.pytorch.org/whl/cu116
pip install -U -r requirements.txt
pip install -U --pre triton
pip install -U -I --no-deps (xformers-0.0.14.dev0-cp310-cp310-linux_x86_64.whl)
cd ..
accelerate config
cp LoRA_Easy_Training_Scripts/lora_train_command_line.py sd-scripts
cd sd-scripts
上記のコードを以下のようにターミナルに打ち込んでいきます。
ちなみに、mkdirコマンドはフォルダ作成用のコマンドで、この場合は「LoRA」というフォルダを作成しています。フォルダ名を変えたい場合はLoRAの部分を編集してください。
また、次のコードの入力タイミングですが、コンソールに「root@~~~~~」と表示されていると思います。表示されている文の一番下にそれがあるときに入力してください。
それでは、あとは上記のコードをコピペしていくだけです。ここで注意点が2つあります。まず1つ目が一気にコピペではなく、1文ずつコピペしてくさださい。表示している端末によってはpipコマンドの一部が改行されていると思いますが、次のpipコマンドの前までが1文となります。
例 : pip install torch==1.12.1+cu116 torchvision==0.13.1+cu116 torchaudio==0.12.1 –extra-index-url https://download.pytorch.org/whl/cu116 ここまでが1文。
2つ目は“pip install -U -I –no-deps (xformers-0.0.14.dev0-cp310-cp310-linux_x86_64.whl)”のコード実行時、エラーが出てインストールできない可能性があります。私の環境ではインストール出来ませんでした。ですがそれでも動いたのでエラー出ても無視して進めてください。
時間がかかる部分もありますが、「root@~~~~~~」が表示されるまでは次のコードは入力しないようにしてください。
“accelerate config”で聞かれる問いに対してはkohyaさんのREADMEを参考にしてください。
これで環境構築は終了です。あとは必要素材を用意して“accelerate launch”とオプションを付けて実行すれば学習が始まります。
参考Twitterでは実行時のコードは以下のようになっています。
accelerate launch --num_cpu_threads_per_process 12 train_network.py --pretrained_model_name_or_path=/notebooks/stable-diffusion-webui/models/Stable-diffusion/Evt_M.ckpt --train_data_dir=/notebooks/LoRA/Training --reg_data_dir=/notebooks/LoRA/reg --output_dir=/notebooks/LoRA/testLoRA --resolution=320,960 --train_batch_size=4 --learning_rate=8e-5 --max_train_epochs=10 --save_every_n_epochs=1 --save_model_as=safetensors --clip_skip=2 --seed=42 --color_aug --network_module=networks.lora --keep_tokens=7 --enable_bucket
絶対に変更しなければならない部分は“–pretrained_model_name_or_path=”と “–train_data_dir=” と “–reg_data_dir=”と “–output_dir=” の4つです。
“–pretrained_model_name_or_path=”は使用するモデル名です。モデルファイルまでのパスを拡張子を含めて記入してください。
“–train_data_dir=” は学習用素材のフォルダを指定します。
“–reg_data_dir=” は正則化画像のフォルダを指定します。
“–output_dir=” は学習結果を保存するフォルダを指定します。
あとは必要に応じて変更してください。
学習用素材用フォルダの命名規則などは、作者であるkohyaさんのnoteを参考にしてください。
DiffusersベースのDreamBoothについて
これで初回起動時の説明は終わりです。
次の項では、2回目以降の起動について説明します。
スポンサーリンク
2回目以降の起動
2回目以降の起動でも、一部のデータは取得しなければなりません。
以下が必要なコードになるので、初回起動時と同じようにコピペしてください。
cd LoRA
apt update -y
apt upgrade -y
cd sd-scripts
apt -y install python3.10
pip install torch==1.12.1+cu116 torchvision==0.13.1+cu116 torchaudio==0.12.1 --extra-index-url https://download.pytorch.org/whl/cu116
pip install torch==1.12.1+cu116 torchvision==0.13.1+cu116 --extra-index-url https://download.pytorch.org/whl/cu116
pip install -U -r requirements.txt
pip install -U --pre triton
pip install -U -I --no-deps (xformers-0.0.14.dev0-cp310-cp310-linux_x86_64.whl)
cd ..
accelerate config
cd sd-scripts
私は上記のコード全てを実行して起動していますが、もしかするといらないコードもあるかもしれません。
あとは“accelerate launch”で学習開始するだけです。
最後に
いかがでしたか?
今回はpaperspaceでkohya版LoRAを動かす方法を記事にしてみました。
と言ってもほとんどコピペしたコードをコピペしろって内容でしたけどね。
それでは!
コメント