sd-scripts

Last-modified: 2025-05-27 (火) 16:20:46

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

概要

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.pyfine 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.pyLoRA学習:SDXL専用
sdxl_train_textual_inversion.py
train_controlnet.py
train_db.pyDB学習
train_network.pyLoRA学習:SD1専用
train_textual_inversion.pyTI学習: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.pynpz生成。学習前に画像をキャッシュ及びlatent込みのメタデータ作成
tag_images_by_wd14_tagger.py自動タグ生成

toolsフォルダ

module概要当wiki
解説ページ
cache_latents.pynpz生成。学習前に画像をキャッシュ
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

関連リンク


*1 GitHubでの活動ネーム
*2 Ver.0.1.0。2022/12/18。引用URL
*3 当時、市販のGPUのVRAM量は、かなりハイエンドなグラボでも12GB程度であり、それこそクリエイター向け(CAD,3Dモデリング用)の超高額なモデルを選択しない限り、学習すら困難なユーザーに溢れていた
*4 まとめスレで色々立っている
*5 その一端として、今もネット上に当時の日付のLoRA紹介記事が多数存在している