グラフィックボードなしでAIによる画像生成を試しているので、その備忘録です。一般的には画像生成に高価なグラフィックボードが必要になりますが、今回使用しているのはグラフィックボードなし(CPU内蔵)のモバイルPCです。
そうすると、Google Colabやその他のGPUレンタルなどの外部サービスを利用するのか?と思われますが、ローカルのみです。
これまでローカルのCPUのみで画像生成は、グラフィックボードを使用する時に比べ大幅に時間がかかっていましたが、FastSD CPUではLCM(Latent Consistency Model)やIntel社のOpenVINOを採用する事で高速生成を実現しています。
LCMとOpenVINOの詳しい説明については今回省略します。
検証に使用したマシンスペック
CPU:Core Ultra 7 155H
メモリ:32GB
GPU:Intel Arc Graphics(CPU内蔵)
OS:Windows11 23H2
OpenVINOを利用するにはIntel社製の対応したCPUが必要です
詳しくはIntel社のシステム要件をご覧ください
https://docs.openvino.ai/2024/about-openvino/release-notes-openvino/system-requirements.html
FastSD CPUとは?
FastSD CPUはCPU版のStable Diffusionの高速版です。2024年8月7日現在のバージョンはv1.0.0-beta.35です。CPU版といってもOpenVINOに対応しているのでCPU+GPUで生成出来ます。
ライセンスはMITとなっています。
FastSD CPUのページ
https://github.com/rupeshs/fastsdcpu
FastSD CPUでの画像生成時間
CPUの性能によりますが、性能が高ければ1秒未満でも生成できるようです。
1回目は時間がかかりますが、2回目以降は早くなります。
私の場合は1枚あたりの画像生成時間は1.2秒〜1.3秒程度でしたが、FastSD CPUのGithubによると0.82秒で生成できたようです。
FastSD CPUの画面
「a small cute cat」でGenerate
生成時間は1.36秒でした。
生成された画像がこちら。
複数枚の画像生成
続いて4枚の画像を生成してみました。
生成時間は4枚で5.01秒
1枚あたりの生成時間は約1.25秒
生成された画像がこちら
FastSD CPUのインストール方法
・Python3.10か3.11が推奨
・Git
PythonとGitの詳しいインストール方法は省略します。
インストールを行うディレクトリに移動してfastSD CPUをCloneします。
git clone https://github.com/rupeshs/fastsdcpu.git
Cloneが完了したら、fastsdcpuのフォルダの中に移動して、install.batを実行します。インストールは結構時間がかかります。
インストールが完了したら、start-webui.batを実行して、http://127.0.0.1:7860 にアクセスします。
start-webui.batを実行してもすぐにバッチの画面が閉じる(落ちる)場合はVisual Studio CommunityのC++デスクトップ開発をインストールしてみてください。個人利用なら無償で利用できます。
エラーのメモ
OSError: [WinError 126]指定されたモジュールが見つかりません。
Pytorch側の問題?fbgemm.dllが読み込めずコケている。
現状としてはVisual Studio CommunityのC++デスクトップ開発をインストールすることで上記の問題は回避できるようですが、将来的には改善する可能性があります。またVisual Studio CommunityのC++デスクトップ開発をインストールするより簡単に回避する方法をご存じの方おられましたら、ご教授いただけると嬉しいです。
FastSD CPUの使い方
基本的な使い方の紹介です。
Modeは当初LCMになっていますが、 OpenVINO対応の環境でしたら、LCM-OpenVINOの方が高速に生成できるかもしれません。ただしメモリはたくさん使います。
fantasy land scapeと書かれた場所がプロンプト入力エリアです。
練習なのでなんでもいいんですが、プロンプトエリアに「a small cute cat」と入力してGenerateを押してみてください。
1回目の生成は時間がかかりますが、2回目以降は早くなります。
ちなみに1秒台での画像生成に使ったモードはLCM-OpenVINO
使用したモデルが /rupeshs/sdxs-512-09-openvino
Generation Settingsタブの設定でUse tiny auto encoder for SDにチェックを入れて生成を行いました
プロンプトについては詳しく解説しているサイトを調べるか、ChatGPTなどのAIを使って生成してもらってください。
お疲れ様でした。
おまけ
FastSD CPUで他のモデルを試してみました。
LCM-dreamshaper V7 OpenVINOを利用しました。
ステップ数:4
画像サイズ:512x768
生成時間は13.53秒でした。
生成した画像
画像生成を本格的に使いたいという方には、グラフィックボード搭載のPCをお勧めしますが、趣味やお試し程度で生成AIを使う分には十分遊べる気がします。
最後までお読みいただきありがとうございます!