StreamDiffusion の使用例です。
README.md に書いてある手順で StreamDiffusion 環境構築及びインストールを行ってください。
TensorRT を用いることで最大パフォーマンスとなります。使用する際は TensorRT を使用した上でコマンドに--acceleration tensorrt
を付けてください。
xformers
がデフォルトで使用されていますが、これは最速ではありません。
※※ その他、各種コマンドは最下部のコマンドオプションを参考にしてください。
スクリーンキャプチャをリアルタイムで img2img します。Windows でのみ動作します。
スクリプトを実行すると、半透明のウィンドウが出現します。それをキャプチャしたい位置に合わせてエンターキーを押し、キャプチャ範囲を決定してください。
事前に以下のコマンドを実行して依存関係をインストールする必要があります。
pip install -r screen/requirements.txt
python screen/main.py
StreamDiffusion のパフォーマンス測定を行います。
benchmark/multi.py
は並列処理を行いますが、benchmark/single.py
は行いません。
python benchmark/multi.py
python benchmark/multi.py --acceleration tensorrt
TensorRT で最適化された SD-Turbo を用いて txt2img を実行します。
optimal-performance/multi.py
では RTX4090 に最適化されたバッチ処理を行いますが、optimal-performance/single.py
は単一バッヂでの処理を行います。
python optimal-performance/multi.py
python optimal-performance/single.py
img2img を実行します。
img2img/multi.py
は複数の画像が入っているディレクトリを引数として取り、別のディレクトリに img2img の結果を出力します。
img2img/single.py
は画像一枚の img2img を行います。
画像 1 枚の img2img:
python img2img/single.py --input path/to/input.png --output path/to/output.png
画像複数枚の img2img(ディレクトリを引数に取ります):
python img2img/multi.py --input ./input --output-dir ./output
txt2img/multi.py
はプロンプトから複数の画像を生成し、txt2img/single.py
は一枚の画像を生成します。
一枚だけ生成する場合:
python txt2img/single.py --output output.png --prompt "A cat with a hat"
複数の画像を生成する場合:
python txt2img/multi.py --output ./output --prompt "A cat with a hat"
vid2vid を実行します。
事前に以下のコマンドを実行して依存関係をインストールする必要があります。
pip install -r vid2vid/requirements.txt
python vid2vid/main.py --input path/to/input.mp4 --output path/to/output.mp4
--model_id_or_path
引数で使用するモデルを指定できる。
Hugging Face のモデル id を指定することで実行時に Hugging Face からモデルをロードすることができる。
また、ローカルのモデルのパスを指定することでローカルフォルダ内のモデルを使用することも可能である。
例 (Hugging Face) : --model_id_or_path "KBlueLeaf/kohaku-v2.1"
例 (ローカル) : --model_id_or_path "C:/stable-diffusion-webui/models/Stable-diffusion/ModelName.safetensor"
--lora_dict
引数で使用するLoRAを複数指定できる。
--lora_dict
は "{'LoRA_1 のファイルパス' : LoRA_1 のスケール ,'LoRA_2 のファイルパス' : LoRA_2 のスケール}"
という形式で指定する。
例 :
--lora_dict "{'C:/stable-diffusion-webui/models/Stable-diffusion/LoRA_1.safetensor' : 0.5 ,'E:/ComfyUI/models/LoRA_2.safetensor' : 0.7}"
--prompt
引数で Prompt を文字列で指定する。
例 : --prompt "A cat with a hat"
--negative_prompt
引数で Negative Prompt を文字列で指定する。
※※ ただし、txt2img ,optimal-performance, vid2vid では使用できない。
例 : --negative_prompt "Bad quality"