🌐

OpenVINO™ を使用してインテル® GPU で Stable Diffusion を実行する方法

2023/07/02に公開

この記事は、medium.com に公開されている「How to run Stable Diffusion on Intel GPUs with OpenVINO」https://medium.com/openvino-toolkit/how-to-run-stable-diffusion-on-intel-gpus-with-openvino-840714f122b4 の日本語参考訳です。原文は更新される可能性があります。原文と翻訳文の内容が異なる場合は原文を優先してください。
*****************************************

この記事のPDF版は下記からご利用になれます。
https://www.isus.jp/wp-content/uploads/pdf/openvino_01_how-to-run-stable-diffusion-on-intel-gpus-with-openvino.pdf
※この方法は CPU 上でも実行できます。

OpenVINO™ ノートブックには、いくつかの AI サンプルが用意されています。では、Stable Diffusion を実行してモデルを OpenVINO™ 中間表現 (IR) 形式に変換し、CPU や GPU で効率的に実行できることはご存知ですか? FP32 モデルを FP16 に圧縮することにより、モデルのサイズがほぼ半分に減り、実行に必要な RAM/VRAM の量も大幅に減ります。最も重要なのは、インテル® Xe マトリクス・エクステンション (インテル® XMX – シストリック・アレイ (英語)https://www.anandtech.com/show/16895/a-sneak-peek-at-intels-xe-hpg-gpu-architecture) が有効になると、GPU 処理が大幅に高速化されることです。

以下に、ノートブックを実行して得られた結果をいくつか示します。インテル® Arc™ A770m では、(デバッグモードなしで) 1 秒あたり約 6.0 回の反復を実行できます。以下のような高品質のイメージを生成するのに、通常は約 10 秒もかかりません。

まず、OpenVINO™ ノートブックのリポジトリー (英語)https://github.com/openvinotoolkit/openvino_notebooks/tree/main/notebooks にアクセスします。このリポジトリーに、このデモを完了するために必要なものがすべて含まれています。

このフォルダーには、有名な Text-to-image パイプラインだけでなく、Image-to-Image 生成パイプラインも含まれています。では、実際にパイプラインを実行してみましょう。

インストール方法
最初に、OpenVINO™ ノートブックをインストールします。Windows* を使用している場合は、https://github.com/openvinotoolkit/openvino_notebooks/wiki/Windows (英語) の手順に従ってください。

Linux* を使用している場合は、https://github.com/openvinotoolkit/openvino_notebooks/wiki/Ubuntu (英語) の手順に従ってください。

具体的に説明します。

Python* 3.10.x (またはそれ以前) をインストールして仮想環境を作成します。

python3 -m venv openvino_env
source openvino_env/bin/activate #for linux
git clone コマンドを実行してリポジトリーのクローンを作成します。

git clone --depth=1 https://github.com/openvinotoolkit/openvino_notebooks.git
cd openvino_notebooks
すべてのライブラリーと依存ファイルをインストールします。

pip install -r requirements.txt
Jupyter* Notebook を実行します。

jupyter lab notebooks

コードを見てみましょう。ここでは、PyTorch* パイプラインを実際に最適化し、OpenVINO™ を使用してコードを実行します。

初回のダウンロードと変換には少し時間がかかります。完了すると、IR ファイルのセットが得られます。事前トレーニング済みの、最適化されたモデルを huggingface (英語) から入手することもできます。

インテル® Arc™ GPU を利用可能な場合は、コードを「GPU」に変更できます。デフォルトは「AUTO」で、GPU を検出すると自動的に GPU に切り替わります。

ここでは、ステップを 30 に設定しました。見栄えの良い結果を得るには 50 に設定します。ここで入力テキストを変更すると、さまざまなシーンを生成できます。とてもクールな、素晴らしいイメージを生成したい場合は、コミュニティーがまとめたプロンプトをいくつか試してみてください。https://mpost.io/best-100-stable-diffusion-prompts-the-most-beautiful-ai-text-to-image-prompts/ (英語)

最後に、各ステップで何が起こったかを視覚化する GIF ファイルも生成しました。

Image-to-Image パイプライン
ノートブックで作業を続けると、プロンプトを使用して最終イメージの外観に「影響を与える」こともできることがわかります。ここでは写真を水彩画に変換する例を示しました。

最新情報: Stable Diffusion v2 が OpenVINO™ ノートブックで利用できるようになりました (英語)。https://github.com/openvinotoolkit/openvino_notebooks/tree/main/notebooks/236-stable-diffusion-v2

まとめ
Stable Diffusion の動作を確認したい場合、およびインテルのハードウェアにおけるハードウェア・アクセラレーションの動作を確認したい場合は、OpenVINO™ ノートブックを使用するのが最適です。質問がある場合や、得られた結果を披露したい場合は、GitHub* のディスカッション・ボード (英語) https://github.com/openvinotoolkit/openvino_notebooks/discussionsにコメントしてください。コーディングを楽しみましょう!

<OpenVINO™ ツールキットとは>
AI を加速する無償のツールである OpenVINO™ ツールキットは、インテルが無償で提供しているインテル製の CPU や GPU、VPU、FPGA などのパフォーマンスを最大限に活用して、コンピューター・ビジョン、画像関係をはじめ、自然言語処理や音声処理など、幅広いディープラーニング・モデルで推論を最適化し高速化する推論エンジン / ツールスイートです。

OpenVINO™ ツールキットページでは、ツールの概要、利用方法、導入事例、トレーニング、ツール・ダウンロードまで様々な情報を提供しています。ぜひ特設サイトにアクセスしてみてください。
https://www.intel.co.jp/content/www/jp/ja/internet-of-things/openvino-toolkit.html

◆法務上の注意書き

インテルのテクノロジーを使用するには、対応したハードウェア、ソフトウェア、またはサービスの有効化が必要となる場合があります。

絶対的なセキュリティーを提供できる製品またはコンポーネントはありません。

実際の費用と結果は異なる場合があります。

インテルは、サードパーティーのデータについて管理や監査を行っていません。ほかの情報も参考にして、正確かどうかを評価してください。

インテルは、明示されているか否かにかかわらず、いかなる保証もいたしません。ここにいう保証には、商品適格性、特定目的への適合性、および非侵害性の黙示の保証、ならびに履行の過程、取引の過程、または取引での使用から生じるあらゆる保証を含みますが、これらに限定されるわけではありません。

本資料は、(明示されているか否かにかかわらず、また禁反言によるとよらずにかかわらず) いかなる知的財産権のライセンスも許諾するものではありません。

© Intel Corporation. Intel、インテル、Intel ロゴ、その他のインテルの名称やロゴは、Intel Corporation またはその子会社の商標です。

その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

Discussion