このページの本文へ

前へ 1 2 3 次へ

Stable Diffusion入門 from Thailand 第7回

秒100枚の画像生成ができるという「Stream Diffusion」を動かそうとしたらたいへんだったお話

2024年01月03日 10時00分更新

文● 田口和裕

  • この記事をはてなブックマークに追加
  • 本文印刷

 美少女画像を生成しようと思い立ち7月にゲーミングPCを購入してからはや半年、当初の目標であった画像生成にはなんとか成功したものの、とにかくこのジャンルは進化が早い。苦労して新しい技術を使えるようになったと思ったらすぐに次のとんでもない技術が登場し、以前のものは古くなっていく。なんとか振り落とされないようについていくのがやっとだが、それでも猛烈におもしろく刺激的な半年間だった。

「Stream Diffusion」爆誕

 さて、前回はStable Diffusionを爆速化するLCM系ツールについて解説したのだが、実はその執筆中となる12月6日に上記のツイートが投下された。

 内容は気になったものの、この時点ではまだソースも公開されていなかったため連載には取り上げなかった。

 だが、それからわずか2週間後、12月21日にはStable Diffusionがオープンソースで全公開された。さっそく速報記事を執筆、試してみようとしたのだが環境構築がちょっと大変そうだなと数日グズグズしていたら……。

 なんと開発者のひとり「あき先生」による懇切丁寧なインストールガイドが12月23日深夜に生配信されたのだ。これにガッツリ参加してアドバイスもいただきつつそれでもかなり苦労したがようやくなんとか動かすことができた。さっそく見ていこう。なお、筆者の環境はグラフィックボードがNVIDIA GeForce RTX4070(12GB)、CPUがCore i7-13700、内蔵メモリーは48GBだ。

まずはGit clone

 ここからしばらく環境構築およびインストールの話しが続くので、興味のない方は2ページ目の実行編へ。

 まずはGitHubのStream Diffusionレポジトリにアクセス。

 日本語で書かれた詳細なREADMEが用意されているのでインストールも敷居が低そうだ(と、最初は思った)。

 まずは、下記コマンドでローカルに環境をクローンする。

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

 Dドライブのルートにレポジトリをクローンしているところ。

仮想環境の構築

 次にAnaconda、pip、Dockerのいずれかで仮想環境を構築する。

conda create -n streamdiffusion python=3.10 conda activate streamdiffusion

 筆者はAnacondaを利用しているので上記コマンドで仮想環境を作成。

 作成したら忘れずにアクティベートも。

VSCode

 なお、あき先生の配信にならい、ターミナルでの作業はすべてVSCodeを使用している。

PyTorchのインストール

 次はメタが開発した機械学習ライブラリー「PyTorch」のインストールだが、ここで問題が発生。StreamDiffusionではPyTorchをGPUで動作させるために、あらかじめNVIDIAの「CUDA」プラットフォームおよび「cuDNN」ライブラリーのインストールが必要なのだ。

 CUDAはGPUの種類によって11.8系と12.1系が存在する。ここではCUDA Toolkit Archiveから12.1.1をインストールした。

 続けてcuDNNをダウンロード。CUDAのバージョンによってファイルが異なるので注意が必要だ。

 準備ができたらPytorchのインストールだ。こちらもCUDAのバージョンによってインストールコマンドが異なる。

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

 CUDA 12.1系のインストールコマンドは上記。

 無事PyTorchのインストールが完了した。あと少しだ!!

StreamDiffusionのインストール

pip install streamdiffusion[tensorrt]

 最後にStream Diffusion本体をインストール。

python -m streamdiffusion.tools.install-tensorrt
pip install pywin32

 続けてTensorRT拡張およびpywin32モジュールをインストール。これで準備はすべて完了だ。

 以上、比較的スムーズに進んでいるように読めただろうが、実はめちゃくちゃ苦労している。特にCUDA、cuDNNまわりは情報収集をサボっていたため理解するのが難しく、主にChatGPTでいろいろ質問しながらなんとか準備を完了した。4時間くらいはかかっただろうか。

 もちろんこれはひとえに筆者の乏しい知識のせいだ。プログラムに慣れている人ならものの30分で上記工程をスムーズに終えることができるだろう。とはいえ初心者にとって環境設定は本当にハードルが高い。ChatGPTがなければたぶん投げ出していただろう。

前へ 1 2 3 次へ

カテゴリートップへ

この連載の記事
ピックアップ