bmaltais/kohya_ssをPaperspace gradientで使ってSDXLモデルのLoRAを作るメモ

nextaltair.hatenablog.com

前回から時は経ち*1SDXLが登場してLoRAも出てきた

VRAM10GBじゃなかなか学習は進まないので今回もPaperspaceに頼る

カスタムコンテナ

UbuntuやCudaのVerがどうとか細かいことは置いといて前回と同じカスタムコンテナでとりあえずは動いた*2

cyberes/gradient-base-py3.10:latest

これでインストールのはcuda Ver11.6

ipynbで動かす

GitHub - bmaltais/kohya_ssにGoogle colab用のipynbへのリンクがあるので流用

!make CUDA_VERSION=116 !export PYTHONPATH=$PYTHONPATH:/usr/local/lib/python3.10/dist-packages

ここを書き換えコンテナでインストールされるcudaに合わせる必要がある

#@title Train with Kohya's Stable Diffusion Trainers
%cd /notebooks

!pip install dadaptation==3.1 diffusers[torch]==0.17.1 easygui==0.98.3 einops==0.6.0 fairscale==0.4.13 ftfy==6.1.1 gradio==3.36.1 huggingface-hub==0.14.1
!pip install lion-pytorch==0.0.6 lycoris_lora==1.8.0.dev6 open-clip-torch==2.20.0 prodigyopt==1.0 pytorch-lightning==1.9.0 safetensors==0.3.1 timm==0.6.12
!pip install tk==0.1.0 transformers==4.30.2 voluptuous==0.13.1 wandb==0.15.0 xformers==0.0.20 omegaconf

%cd /notebooks
!git clone https://github.com/TimDettmers/bitsandbytes.git
%cd /notebooks/bitsandbytes
!make CUDA_VERSION=116  #  116 117 118, 環境に合わせる
!export PYTHONPATH=$PYTHONPATH:/usr/local/lib/python3.10/dist-packages
!python setup.py install

%cd /notebooks
!git clone -b v1.0 https://github.com/camenduru/kohya_ss
!sudo apt-get update
!pip install -U albumentations
!sudo apt-get install -y python3.10-tk
!pip install toml
#accelerate config

accelerate configはあってもなくても良さそう 設定するときはターミナルから

import os

# 環境変数を設定
os.environ['BNB_CUDA_VERSION'] = '116'
os.environ['LD_LIBRARY_PATH'] = f"{os.environ.get('LD_LIBRARY_PATH', '')}:/usr/local/cuda-11.6/targets/x86_64-linux/lib/"

# ファイルを削除(注意: この操作は元に戻せません)
libcudart_path = "/usr/local/cuda-11.6/targets/x86_64-linux/lib/libcudart.so.11.0"

# ファイルが存在するかどうかを確認
if os.path.exists(libcudart_path):
    os.remove(libcudart_path)
    print(f"Removed {libcudart_path}")
else:
    print(f"{libcudart_path} does not exist")

libcudart.so.11.0を消してやらないとbitsandbytesでビルドされたlibcudart.so.11.〇〇と競合を起こすんだか何かでSDXLの学習が始まらない

ここは苦労した

%cd /notebooks/kohya_ss
!python kohya_gui.py --share --headless

コレで動く

学習の設定

わからん!

1.5系のパラメーターそのままってわけにはいかず全然上手くいかん

そのうちにカスタムコンテナ作る

最初はカスタムコンテナをローカルでビルドしてDockerHubにプッシュして動かそうとしたが無理だった

bmaltais/kohya_ssはUbuntu22.04推奨だったりでバージョンの食い違いもあるのでなんとか解決したカスタムコンテナ作りたいなとは思う

*1:早すぎるぐらいに早い

*2:学習成功してないので問題がある可能性も否めない