見出し画像

StreamDiffusionをローカル環境で動かす方法を丁寧に解説


更新履歴

  • 2023/12/31

    • StreamDiffusion の導入準備
      Git のインストール手順を追加

    • Node.js のインストール
      インストールパッケージを nodejs から nodejs-lts に変更

    • StreamDiffusion インストール手順
      Python 仮想環境の作成コマンドにバージョン指定を追加
      demo/realtime-img2img の動作に必要な手順を追加
      各コマンドに簡単な説明を追加

  • 2023/12/28

    • StreamDiffusionとは
      公式 GitHub から引用する形で説明文を追加

    • 導入準備
      Python3.10 のインストール手順を追加

    • Node.js のインストール
      PowerShell に環境変数を読み込ませる手順を追加
      インストール後のバージョン確認手順を追加

    • reaktime-text2img の使い方
      動作中画面のスクショを追加

    • FAQ
      項目だけ追加 ( まだ中身はありません )

    • その他
      文中に登場するワードの一部について、解説サイトや公式サイトへのリンクを追加

  • 2023/12/24

    • 初版 ( 殴り書きレベル ) 公開

はじめに

こんにちは、JAPと申します。
今回は 2023年12月 に公開された StreamDiffusion をローカル環境に導入する手順を紹介します。

StreamDiffusionとは

一言でいうと「爆速画像生成AIツール」です。公式 GitHub では以下の様に説明されています。

StreamDiffusion is an innovative diffusion pipeline designed for real-time interactive generation. It introduces significant performance enhancements to current diffusion-based image generation techniques.
StreamDiffusionは、リアルタイム画像生成を実現するために最適化されたパイプラインです。従来の画像生成パイプラインと比べて飛躍的な速度向上を実現しました。

StreamDiffusion 公式 GitHub

StreamDiffusion の導入準備

StreamDiffusion を動作させるには、最低でも Python3.10 環境が必要です。また、一部の Demo を動作させるためには Node.js のインストールも必要になります。
この章では Python3.10 と Node.js のインストール手順を説明します。どちらも導入済みの方は読み飛ばしてください。

パッケージ管理システム Chocolatey 導入

Chocolatey は Windows 用のパッケージ管理システムです。Linux ( Debian系 ) の APT や MacOS の Homebrew みたいなものと考えてください。
Windows 用のパッケージ管理システムとしては、Microsoft 公式の Winget もありますが、この記事では実績面で Winget に勝っている Chocolatey を使用します。

Windows PowerShell を管理者権限で起動して、以下のコマンドを実行するだけでインストールできます。

Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))

インストールが完了したら exit コマンドで WindowsPowerShell を閉じておきましょう。

exit

Git のインストール ( Chocolatey 使用 )

Git は分散型バージョン管理システムの一つです。Linux カーネルのソースコード管理を行うために開発され、現在では多くの OSS の管理に用いられています。
Chocolatey を導入済みであれば、Windows PowerShell を管理者権限で起動して、以下のコマンドを実行するだけでインストールできます。

choco install -y git

続けて PowerShell に環境変数を再読み込みさせます。この手順は「おまじない」程度に考えてください。

Import-Module $env:ChocolateyInstall\helpers\chocolateyProfile.psm1
refreshenv

インストールされた Git のバージョンを確認しましょう。

git -v

上記コマンドの実行結果として、version 2.43.0 以上のバージョン番号が表示されればOKです。
Git は現在も活発に開発が行われていますので、インストールしたタイミングによっては、表示されるバージョンが異なる場合があります。

git version 2.43.0.windows.1

Python3.10 のインストール ( Chocolatey 使用 )

Python は「インタプリタ言語」に分類されるプログラミング言語の一つです。機械学習、データサイエンス、AIなどの分野で必要とされるライブラリが充実していることから、AI界隈では事実上のデファクト・スタンダードになっています。
Chocolatey を導入済みであれば、Windows PowerShell を管理者権限で起動して、以下のコマンドを実行するだけでインストールできます。

choco install -y python --version=3.10.11

続けて PowerShell に環境変数を再読み込みさせます。この手順は「おまじない」程度に考えてください。

Import-Module $env:ChocolateyInstall\helpers\chocolateyProfile.psm1
refreshenv

インストールされた Python のバージョンを確認しましょう。

python -V

上記コマンドの実行結果として、以下のように表示されればOKです。

Python 3.10.11

Node.js のインストール ( Chocolatey 使用 )

Node.js は、Google が開発した V8 JavaScript エンジンを使用してサーバーサイドの JavaScript アプリケーションを実行するためのランタイム環境です。Chocolatey を導入済みであれば、Windows PowerShell を管理者権限で起動して、以下のコマンドを実行するだけでインストールできます。

choco install -y nodejs-lts

続けて PowerShell に環境変数を再読み込みさせます。この手順は「おまじない」程度に考えてください。

Import-Module $env:ChocolateyInstall\helpers\chocolateyProfile.psm1
refreshenv

インストールされた Node.js のバージョンを確認しましょう。

node -v

上記コマンドの実行結果として、v20.10.0 以上のバージョン番号が表示されればOKです。
Node.js は今でも活発に開発が行われていますので、インストールしたタイミングによっては、表示されるバージョンが異なる場合があります。

v20.10.0

pnpm パッケージマネージャーをインストールします。

npm install -g pnpm

最後に

exit コマンドで WindowsPowerShell を閉じて完了です。

exit

StreamDiffusion インストール手順

Windows PowerShell を起動して、以下のコマンドを順に実行します。この手順通りに実行した場合、インストール先は c:\StreamDiffusion となります。

ソースファイルを GitHub からクローン ( コピー )

カレントディレクトリを ホームディレクトリ から c:\ に変更

cd c:\

StreamDiffusion リポジトリを c ドライブ直下にクローン ( コピー )

git clone https://github.com/cumulo-autumn/StreamDiffusion.git

Python 仮想環境の作成とアクティベート

カレントディレクトリを c:\StreamDiffusion に変更

cd ./StreamDiffusion

Python3.10 の仮想環境を作成

py -3.10 -m venv .venv

作成した仮想環境をアクティベート ( 有効化 )

./.venv/Scripts/activate

仮想環境内の pip パッケージを最新版にアップデート

python -m pip install --upgrade pip

PyTorch のインストール

pip install torch==2.1.0 torchvision==0.16.0 xformers --index-url https://download.pytorch.org/whl/cu121

StreamDiffusion 本体のインストール

pip install pywin32 accelerate
pip install git+https://github.com/cumulo-autumn/StreamDiffusion.git@main#egg=streamdiffusion[tensorrt]
python -m streamdiffusion.tools.install-tensorrt

demo / example を使いたい場合に必要な追加手順

demo/realtime-txt2img を動作させたい場合のみ必要

pip install -r ./demo/realtime-txt2img/requirements.txt

demo/realtime-img2img を動作させたい場合のみ必要

pip install -r ./demo/realtime-img2img/requirements.txt

examples/screen を動作させたい場合のみ必要

pip install -r ./examples/screen/requirements.txt

exit コマンドで WindowsPowerShell を閉じて完了です。

exit

実行方法

StreamDiffusion には Stable Diffusion webui の様な GUI ( グラフィカル・ユーザー・インターフェース ) はありません。自分で Python プログラムを書いて実行するのが基本となりますが、プログラミングが苦手な方でも簡単に試すことが出来る demoexamples が用意されています。

準備

Windows PowerShell を起動して、以下のコマンドを順に実行します。

cd c:/StreamDiffusion
./.venv/Scripts/activate

Windows PowerShell が以下のような表示になれば準備完了です。

(.venv) PS C:\StreamDiffusion>

realtime-txt2img

準備の手順を実施した後に、以下のコマンドを順に実行。

cd ./demo/realtime-txt2img/frontend
pnpm i
pnpm run build
cd ..
python main.py

Windows PowerShell の表示が以下の様になれば demo プログラムの起動は成功しています。
http://127.0.0.1:9090 部分を Ctrl キーを押しながらクリックすることでブラウザ画面が表示されます。

INFO:     Started server process [22268]
INFO:     Waiting for application startup.
INFO:     Application startup complete.
INFO:     Uvicorn running on http://127.0.0.1:9090 (Press CTRL+C to quit)

画面下部のフォームに好きなキーワードをどんどん入れていくだけ。入力されたキーワードに反応して、次々にイラストが描き変わっていきます!素晴らしい!

reaktime-text2img 画面

生成中画面 ( MP4版 )

text2image

準備の手順を実施した後に、以下のコマンドを実行。
3枚のイラストが c:\StreamDiffusion\output に出力されます。

python ./examples/txt2img/multi.py --output ./output --prompt "a girl with cat ears"

生成結果

a girl with cat ears : 1/3
a girl with cat ears : 2/3
a girl with cat ears : 3/3


FAQ

T.B.D.

この記事が気に入ったらサポートをしてみませんか?