学習データの作成・編集を得意としたプログラムの1種。

#contents

*概要 [#ce50cb80]
-sd-scriptsとは、kohya-ss氏((GitHubでの活動ネーム))及びその[[contributors]]が作成したプログラムの1つ。
https://github.com/kohya-ss/sd-scripts

**LoRAツールとしての知名度 [#k37cc80d]
-LoRAの学習用ツールとして有名。
sd-scriptsのリリース当時((Ver.0.1.0。2022/12/18。[[引用URL>https://github.com/kohya-ss/sd-scripts/releases/tag/v0.1.0]]))において、それ以外の学習環境といえば[[Stable Diffusion web UI]]に実装された、embeddings(Textual Inversion)やHyperNetworkくらいだった。それらもそれなりに盛り上がりを見せたが、学習精度がやや低めであり、当時DreamBoothと呼ばれる高品質かつVRAM消費大の方式が存在したため、今一つ学習に対する敷居が高い状態だった。
-一方、LoRAはそのVRAM消費量の少なさ((当時、市販のGPUのVRAM量は、かなりハイエンドなグラボでも12GB程度であり、それこそクリエイター向け(CAD,3Dモデリング用)の超高額なモデルを選択しない限り、学習すら困難なユーザーに溢れていた))と学習品質の高さ、データ容量の小ささから、2023/3月頃、スレ住人達が注目し始めた。「学習のことはまだよくわからんけど、なんか凄い技術があるぞ」みたいな雰囲気だった((まとめスレで色々立っている))。
-sd-scriptsの導入自体は、Pythonに不慣れな多くのとしあきにとって辛いものがあったが、国内外の有志によるインストーラや解説動画によって敷居が低くなり、利用者人口が増えていった。
-利用者人口が増えた要因は、学習品質の高さがあってこそ、多くのブログにて学習結果とともに紹介されるきっかけになったと考えられる((その一端として、今もネット上に当時の日付のLoRA紹介記事が多数存在している))。
-データが軽量であったことが、CIVIT AIでの配布を促し、学習データ利用するだけの人にとっても恩恵があったことも普及促進に繋がったと考えられる。
-KohakuBlueleaf氏による、[[Stable Diffusion web UI]]でLoRA学習データを使うための各種Extentionの整備や、より潜在的な学習品質を高めたLyCORIS(LoCon,LoHa等)の誕生といった状況も後押しになっている。もちろん、それに高い感度で対応して、コード実装を行ったkohya-ss氏の功績も大きい。
-以上、さまざまな要因が奇跡的に重なって、LoRAツールとして広く認知されるに至っている。(2023/8/23現在)

**その他の機能(ざっくり) [#z18366ea]
-sd-scriptsはLoRA学習用ツールとしてだけでなく、それ以外の利用方法が豊富である。
~下記で紹介する。(旧機能含めた紹介)
|コード名|概要|備考|解説ページ|h
|train_network.py|学習ツール。LoRAのDreamBooth方式||[[■>LoRA]]|
|gen_img_diffusers.py|画像生成ツール|||
|fine_tune.py|学習ツール。ファインチューン方式 ※LoRAではない|||
|train_textual_inversion.py|学習ツール。Textual inversion||[[■>Textual Inversion#he5614b2]]|
|merge_lora.py|編集ツール。Loraマージ用|||

-%%SDXL対応は開発中のdev版、SDXL版ではあるが、着実に進んでおり、学習完了の報告もいくつか上がってきている。%%
→SDXLの対応完了

*機能紹介 [#re9e1834]
-sd-scriptsの各moduleの機能を簡単に解説する。
なお、並び順等は[[sd-scripts公式>https://github.com/kohya-ss/sd-scripts]]に準拠。
-あまり知られていない機能を紹介するのが目的。

#shadowheader(3,最上位の階層)
|module|概要|当wiki&br;解説ページ|h
|XTI_hijack.py|||
|fine_tune.py|fine tuning学習||
|gen_img_diffusers.py|画像生成スクリプト|[[■>gen_img_diffusers]]|
|sdxl_gen_img.py|||
|sdxl_minimal_inference.py|||
|sdxl_train.py|||
|sdxl_train_control_net_lllite.py|||
|sdxl_train_network.py|LoRA学習:SDXL専用|[[■>LoRA/学習方法/SDXL]]|
|sdxl_train_textual_inversion.py|||
|train_controlnet.py|||
|train_db.py|[[DB]]学習||
|train_network.py|LoRA学習:SD1専用|[[■>LoRA/学習方法]]|
|train_textual_inversion.py|[[TI]]学習:SD1専用|[[■>Textual Inversion]]|
|train_textual_inversion_XTI.py|||

#shadowheader(3,finetuneフォルダ)
|module|概要|当wiki&br;解説ページ|h
|clean_captions_and_tags.py|キャプションのクリーニング|[[■>LoRA/学習方法#metadeta]]、[[◆>キャプション・タグ編集#sd_caption]]|
|hypernetwork_nai.py|||
|make_captions.py|自動キャプショニング|[[■>キャプション・タグ編集]]|
|make_captions_by_git.py|自動キャプショニング|[[■>キャプション・タグ編集]]|
|merge_captions_to_metadata.py|メタデータ作成|[[■>LoRA/学習方法#metadeta]]|
|merge_dd_tags_to_metadata.py|||
|prepare_buckets_latents.py|npz生成。学習前に画像をキャッシュ及びlatent込みのメタデータ作成||
|tag_images_by_wd14_tagger.py|自動タグ生成||



#shadowheader(3,toolsフォルダ)
|module|概要|当wiki&br;解説ページ|h
|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|||


*関連リンク [#x18a8245]
-[[LoRA]]