学習データの作成・編集を得意としたプログラムの1種。
概要
- sd-scriptsとは、kohya-ss氏*1及びそのcontributorsが作成したプログラムの1つ。
https://github.com/kohya-ss/sd-scripts
LoRAツールとしての知名度
- LoRAの学習用ツールとして有名。
sd-scriptsのリリース当時*2において、それ以外の学習環境といえばStable Diffusion web UIに実装された、embeddings(Textual Inversion)やHyperNetworkくらいだった。それらもそれなりに盛り上がりを見せたが、学習精度がやや低めであり、当時DreamBoothと呼ばれる高品質かつVRAM消費大の方式が存在したため、今一つ学習に対する敷居が高い状態だった。 - 一方、LoRAはそのVRAM消費量の少なさ*3と学習品質の高さ、データ容量の小ささから、2023/3月頃、スレ住人達が注目し始めた。「学習のことはまだよくわからんけど、なんか凄い技術があるぞ」みたいな雰囲気だった*4。
- sd-scriptsの導入自体は、Pythonに不慣れな多くのとしあきにとって辛いものがあったが、国内外の有志によるインストーラや解説動画によって敷居が低くなり、利用者人口が増えていった。
- 利用者人口が増えた要因は、学習品質の高さがあってこそ、多くのブログにて学習結果とともに紹介されるきっかけになったと考えられる*5。
- データが軽量であったことが、CIVIT AIでの配布を促し、学習データ利用するだけの人にとっても恩恵があったことも普及促進に繋がったと考えられる。
- KohakuBlueleaf氏による、Stable Diffusion web UIでLoRA学習データを使うための各種Extentionの整備や、より潜在的な学習品質を高めたLyCORIS(LoCon,LoHa等)の誕生といった状況も後押しになっている。もちろん、それに高い感度で対応して、コード実装を行ったkohya-ss氏の功績も大きい。
- 以上、さまざまな要因が奇跡的に重なって、LoRAツールとして広く認知されるに至っている。(2023/8/23現在)
その他の機能(ざっくり)
- sd-scriptsはLoRA学習用ツールとしてだけでなく、それ以外の利用方法が豊富である。
下記で紹介する。(旧機能含めた紹介)
コード名 概要 備考 解説ページ train_network.py 学習ツール。LoRAのDreamBooth方式 ■ gen_img_diffusers.py 画像生成ツール fine_tune.py 学習ツール。ファインチューン方式 ※LoRAではない train_textual_inversion.py 学習ツール。Textual inversion ■ merge_lora.py 編集ツール。Loraマージ用
SDXL対応は開発中のdev版、SDXL版ではあるが、着実に進んでおり、学習完了の報告もいくつか上がってきている。
→SDXLの対応完了
機能紹介
- sd-scriptsの各moduleの機能を簡単に解説する。
なお、並び順等はsd-scripts公式に準拠。 - あまり知られていない機能を紹介するのが目的。
最上位の階層
| module | 概要 | 当wiki 解説ページ |
| XTI_hijack.py | ||
| fine_tune.py | fine tuning学習 | |
| gen_img_diffusers.py | 画像生成スクリプト | ■ |
| sdxl_gen_img.py | ||
| sdxl_minimal_inference.py | ||
| sdxl_train.py | ||
| sdxl_train_control_net_lllite.py | ||
| sdxl_train_network.py | LoRA学習:SDXL専用 | ■ |
| sdxl_train_textual_inversion.py | ||
| train_controlnet.py | ||
| train_db.py | DB学習 | |
| train_network.py | LoRA学習:SD1専用 | ■ |
| train_textual_inversion.py | TI学習:SD1専用 | ■ |
| train_textual_inversion_XTI.py |
finetuneフォルダ
| module | 概要 | 当wiki 解説ページ |
| clean_captions_and_tags.py | キャプションのクリーニング | ■、◆ |
| hypernetwork_nai.py | ||
| make_captions.py | 自動キャプショニング | ■ |
| make_captions_by_git.py | 自動キャプショニング | ■ |
| merge_captions_to_metadata.py | メタデータ作成 | ■ |
| merge_dd_tags_to_metadata.py | ||
| prepare_buckets_latents.py | npz生成。学習前に画像をキャッシュ及びlatent込みのメタデータ作成 | |
| tag_images_by_wd14_tagger.py | 自動タグ生成 |
toolsフォルダ
| module | 概要 | 当wiki 解説ページ |
| cache_latents.py | npz生成。学習前に画像をキャッシュ | |
| cache_text_encoder_outputs.py | ||
| canny.py | ||
| convert_diffusers20_original_sd.py | ||
| detect_face_rotate.py | ||
| latent_upscaler.py | ||
| merge_models.py | ||
| original_control_net.py | ||
| resize_images_to_resolution.py | ||
| show_metadata.py |