====== Stable Diffusion WebUI (Automatic1111) ====== ===== コードリーディング ===== ==== 構成 ==== ==== APIが呼び出されてから ==== - /modules/api/api.py Api.text2imgapi() - /modules/processing.py process_images() process_images_inner() modules.sd_hijack.model_hijack = modules/sd_hijack.py class StableDiffusionModelHijack ''modules/rng.py'' random generator。ネットワークの初期値を作成する? === クラスについて === * ''StableDiffusionProcessing'' : 工程とか定義されているやつ。これのメソッドを呼び出して処理を進める。 * ''modules/processing.py - class StableDiffusionProcessing'' * prop ''scripts'' = prop ''scripts_value'' * ''Processed'' : 実行結果を格納する構造体。 * ''modules/processing.py - class Processed'' * ''ScriptRunner'' : 何個かのスクリプトをまとめてある。 * ''modules/scripts.py - ScriptRunner'' * スクリプト何種か * scripts * selectable_scripts * alwayson_scripts ==== 拡張機能 ==== - /modules/launch_utils.py : L428 prepare_environment() run_extensions_installers run_extension_installer animatediff 拡張機能にはリポジトリ直下に ''install.py'' が存在していないので特にインストールの処理は行われない。 ''/extensions/hogehoge/scripts/fugafuga.py'' について ''scripts.Script'' を 継承したクラスを定義しているモジュールについてはスクリプトとして認識されている。 ===== TODO ===== * AnimateDiff がどのような動作でアニメを生成しているか確認 * KeyFrameInterpolation における ControlNet の入れ方についても確認 * とりあえず AnimateDiff が動くところまでやっていく * SparseCtrl は一旦無視する。