コピー機学習法による絵柄LoRAの検証(8種類の絵柄で)
実はここ数週間ほど、月須和さんにとりにく絵LoRAの作成とその学習ノウハウのまとめを有償依頼していました。
月須和さんが作られたとりにく絵LoRAの成果はこちら。
人力で描いたとりにく絵
AIが描いたとりにく絵
うおおおお!私の絵の特徴を取り入れつつ、破綻を抑えてくれています。
純粋にとりにく絵を学習させるだけだと(絵が伸びしろがありすぎて)崩れていたから助かる……!
しかしこれ、とりにく絵を構成する要素が単純だから再現できたのでは?
もっと美麗な塗や繊細なストロークの持ち主がやったらどうなるのか??
という疑問がわきましたので、Twitterで協力者を募りました。
以下、協力していただいた結果です。
ベース画像
こちらを皆さんに自分の絵柄で描いてもらう試みでした。
考えてみれば学習のベースモデルにするSDHKで出力すればよかったですね。以下は各LoRAなしで生成したイラストです。
猫黒夏躯様(@NatsukuPhoto)
ケロリビドー様(@keroribido)
SHINTARO(@Shintar98306319)様
三明(@miake02)様
夜は行く(@norvulingkha)様
ZubaE(@zubae)様
ちゅんちゅん亭すがさ(@LuvTeaLatin)様
かれこのぎ(karny)@karekonogi様
まとめ
う、ううううーん!トレスイラスト1枚で簡単に絵柄LoRAが作れる!!と断言できる感じではないですが、なんらかの特徴はつかんでいるっぽいですね。
やっぱり品質の高い絵柄LoRAを作るには細かい微調整が必要になりそうです。
なお、1つのLoRAを学習するのにRTX3090で20分位かかります。
簡単レシピ
以下は上記のLoRA群を作るのに作った環境メモです(月須和さんPDFのように細かい微調整はしていません)
git clone -b sdxl https://github.com/kohya-ss/sd-scripts.git
cd sd-scripts
python -m venv venv
.\venv\Scripts\activate
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu117
pip install -U xformers
pip install --upgrade -r requirements.txt
python -m pip install bitsandbytes==0.41.1 --prefer-binary --extra-index-url=https://jllllll.github.io/bitsandbytes-windows-webui
accelerate config
- This machine
- No distributed training
- NO
- NO
- NO
- all
- fp16
フォルダ名は適当(繰り返し数は適当に10000とかでOK、step数指定なので)
256,384,512にそれぞれリサイズして保存。キャプションは適当につけておく。
copi-ki.toml(GPUによってtrain_batch_sizeは変えること)
pretrained_model_name_or_path = "C:/stable-diffusion-webui/models/Stable-diffusion/SDHK04.safetensors"
network_module = "networks.lora"
xformers = true
persistent_data_loader_workers = true
max_data_loader_n_workers = 12
enable_bucket = true
save_model_as = "safetensors"
lr_scheduler_num_cycles = 4
mixed_precision = "fp16"
learning_rate = 0.0001
resolution = "512,512"
train_batch_size = 12
network_dim = 128
network_alpha = 128
optimizer_type = "AdamW8bit"
bucket_no_upscale = true
clip_skip = 2
save_precision = "fp16"
lr_scheduler = "linear"
min_bucket_reso = 64
max_bucket_reso = 1024
caption_extension = ".txt"
seed = 42
network_train_unet_only = true
コマンド一覧
#baseの絵柄LORA学習
accelerate launch ^
--num_cpu_threads_per_process 12 ^
train_network.py ^
--config_file="C:\sd-scripts\user_config\style\copi-ki.toml" ^
--train_data_dir="C:\sd-scripts\user_config\style\base" ^
--output_dir="C:\sd-scripts\user_config\output\style" ^
--output_name=copi-ki-base ^
--max_train_steps 1500
#学習させたい絵柄LORA学習
accelerate launch ^
--num_cpu_threads_per_process 12 ^
train_network.py ^
--config_file="C:\sd-scripts\user_config\style\copi-ki.toml" ^
--train_data_dir="C:\sd-scripts\user_config\style\〇〇" ^
--output_dir="C:\sd-scripts\user_config\output\style" ^
--output_name=copi-ki-〇〇 ^
--max_train_steps 1500
#絵柄の差分抽出
python .\networks\merge_lora.py ^
--save_to "C:\sd-scripts\user_config\output\style\〇〇.safetensors" ^
--models "C:\sd-scripts\user_config\output\style\copi-ki-〇〇.safetensors" "C:\sd-scripts\user_config\output\style\copi-ki-base.safetensors" ^
--ratios 1.4 -1.4 ^
--concat ^
--shuffle ^
--save_precision fp16
#LoRAのリサイズ
python .\networks\svd_merge_lora.pyy ^
--save_to "C:\sd-scripts\user_config\output\style\〇〇_128.safetensors" ^
--models "C:\sd-scripts\user_config\output\style\〇〇.safetensors"
--ratios 1
--new_rank 128
--device cuda
--save_precision fp16
この記事が気に入ったらサポートをしてみませんか?