見出し画像

コピー機学習法による絵柄LoRAの検証(8種類の絵柄で)

実はここ数週間ほど、月須和さんにとりにく絵LoRAの作成とその学習ノウハウのまとめを有償依頼していました。
月須和さんが作られたとりにく絵LoRAの成果はこちら。

人力で描いたとりにく絵

AIが描いたとりにく絵

うおおおお!私の絵の特徴を取り入れつつ、破綻を抑えてくれています。
純粋にとりにく絵を学習させるだけだと(絵が伸びしろがありすぎて)崩れていたから助かる……!
しかしこれ、とりにく絵を構成する要素が単純だから再現できたのでは?
もっと美麗な塗や繊細なストロークの持ち主がやったらどうなるのか??
という疑問がわきましたので、Twitterで協力者を募りました。

以下、協力していただいた結果です。

ベース画像

anime screen cap, 1girl, solo, face, portrait, brown hair, brown eyes, smile, Mideam hair, casual wear, white background Steps: 20, Sampler: Euler a, CFG scale: 7, Seed: 42, Size: 1024x1024, Model hash: d59627b749, Model: blue_pencil-XL-v2.0.0, Version: v1.6.0-2-g4afaaf8a

こちらを皆さんに自分の絵柄で描いてもらう試みでした。
考えてみれば学習のベースモデルにするSDHKで出力すればよかったですね。以下は各LoRAなしで生成したイラストです。

formalwear 1girl, blonde hair, green eyes, long hair, standing,smile, hand on hip on white_background, simple_background, solo, teen age, (((upper body))) trending on pixiv, highly detailed beautiful face, (((from front))) Negative prompt: EasyNegative Steps: 20, Sampler: Euler a, CFG scale: 7, Seed: 760104935, Size: 512x512, Model hash: 1749adc5b4, Model: SDHK04, VAE hash: 538255c0d5, VAE: kl-f8-anime2.ckpt, TI hashes: "EasyNegative: c74b4e810b03", Version: v1.6.0-2-g4afaaf8a
casual wear 1boy, blue hair, black eyes, standing,hand in pocket, white_background, simple_background, solo, teen age, (((upper body))) trending on pixiv, highly detailed beautiful face, (((from front))) Negative prompt: EasyNegative Steps: 20, Sampler: Euler a, CFG scale: 7, Seed: 760104935, Size: 512x512, Model hash: 1749adc5b4, Model: SDHK04, VAE hash: 538255c0d5, VAE: kl-f8-anime2.ckpt, Version: v1.6.0-2-g4afaaf8a

猫黒夏躯様(@NatsukuPhoto)


ご提供イラスト
AI生成
AI生成
AI生成

ケロリビドー様(@keroribido)

ご提供イラスト
AI生成
AI生成
AI生成

SHINTARO(@Shintar98306319)様


ご提供イラスト(Krea.ai使用)


AI生成


AI生成
AI生成

三明(@miake02)様


ご提供イラスト
AI生成
AI生成
AI生成

夜は行く(@norvulingkha)様

ご提供イラスト
AI生成
AI生成
AI生成

ZubaE(@zubae)様

ご提供イラスト
AI生成
AI生成
AI生成

ちゅんちゅん亭すがさ(@LuvTeaLatin)様

ご提供イラスト
AI生成
AI生成
AI生成

かれこのぎ(karny)@karekonogi様

ご提供イラスト
AI生成
AI生成
AI生成

まとめ

う、ううううーん!トレスイラスト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






この記事が気に入ったらサポートをしてみませんか?