OpenVINO GenAIで画像生成(Ubuntu編)

Uncategorized
スポンサーリンク

Amazonのアソシエイトとして、当ブログは適格販売により収入を得ています。

OpenVINOなので、今回もIntel GPUのみの対応です。
自分の環境は「Intel Arc A750」です。

前回の記事「OpenVINO GenAIでローカルLLMチャット(Ubuntu編)」を書きました。
vulkanで動かすよりずっと速くローカルLLMを動かせるようになりました。
現在テストで「Open-Claw」と連携して動かすテストをしています、がそれはまた別の機会に。

今回はOpenVINO GenAIを使って画像生成もしてみようという記事です。

現在ComfyUIでは、一応対応していますが既存のモデルファイルをOpenVINO用にコンパイルして動かすというもののようです。
ちょっと動かしてみましたが、コンパイルに非常に時間がかかりエラーも頻発することから、個人的にはまだ安心して使えそうにないという印象でした。

comfyui_openvino公式から。こんな感じでモデルロード後にコンパイルする仕組みみたいです。

ちょっと生成条件を変更しただけで再コンパイルが走ってしまい、とても快適には使えません。

もうちょっと快適にならないものか?そもそもモデルを都度コンパイルする必要があるのか?疑問に思いましたのでOpenVINO GenAIについて調べてみると、専用のパイプラインでの画像生成の手順が書いてありました。

とはいえ、自力でこれを理解してソースが書けるわけではないので、いつものようにGeminiに助けてもらいます。

この方法を使えば、モデルを都度コンパイルする必要はありません。
最初にOpenVINOで使う「IR形式」とやらに変換する必要はありますが、以降はそのままロードできます。
これを利用して、ComfyUIでカスタムノードを実装してもらいました。
以下のような感じです。

公式のOpenVINO GenAIの画像生成パイプラインは、最初から全部が用意されているため、ノードが一つで済んでしまうとのこと。逆に言えばComfyUI特有の、ノードを組み合わて使うといったことができないのだとか。
もちろん、pytorchが要求しているtensorに変換すれば使えるらしいのですが、非常にメンドイことになりそうなので。

というか、ノード一個で済んでしまうとComfyUI使う必要ないです。
なのでいっそgradioで作り直すことにしました。

gradioのUIは、こういうやつですね。

それでは、いってみましょうか。

環境構築

  • ドライバのインストール
  • uvのインストール

ドライバは以下をターミナルで実行することでインストールできます。
「Ubuntu24.04.4」で実行しています。
「25.10」でも同じですが、「(2026/4/29現在)26.04」ではこの方法は使えません。

#!/bin/bash

sudo apt-get update
sudo apt-get install -y software-properties-common
sudo add-apt-repository -y ppa:kobuk-team/intel-graphics
sudo apt-get install -y libze-intel-gpu1 libze1 intel-metrics-discovery intel-opencl-icd clinfo intel-gsc
sudo apt-get install -y intel-media-va-driver-non-free libmfx-gen1 libvpl2 libvpl-tools libva-glx2 va-driver-all vainfo
sudo apt-get install -y libze-dev intel-ocloc
sudo apt-get install -y libze-intel-gpu-raytracing

sudo usermod -aG render $USER
sudo usermod -aG video $USER

「26.04」の場合は別の記事に書きたいと思います。

uvのインストール方法はこちらを参考にしてください。

OpenVINO_GenAI_Image_generationのダウンロード

GitHub – toaru-ubuntu/OpenVINO_GenAI_Image_generation
Contribute to toaru-ubuntu/OpenVINO_GenAI_Image_generation development by creating an account on GitHub.

こちらからダウンロードします。

#!/bin/bash

sudo apt install git

mkdir -p ~/install
cd ~/install

git clone https://github.com/toaru-ubuntu/OpenVINO_GenAI_Image_generation.git
cd OpenVINO_GenAI_Image_generation

uv venv .venv --python 3.12
source .venv/bin/activate

uv pip install openvino-genai optimum[openvino] datasets diffusers omegaconf accelerate transformers gradio sentencepiece protobuf

一括でインストールできるスクリプトです。

モデルファイルの変換

こういったsafetensorsファイルをOpenVINOで使える形式(IR形式とかいうそうです)に変換してきます。

変換スクリプトがあるので特に悩む必要はありません。
それではやっていきましょう。

source .venv/bin/activate
python safetensors_converter_gui.py

全てのモデルファイルの変換を試したわけではありません。
もし、変換できないものがあったら報告お願いします。
余裕があったら対応します。

画像生成

そのままターミナルで以下のコマンドを実行。

OV_image_generation.py
そのまま再実行。速くなりました。

「int4」で出来栄えは大きく劣化するのか

モデルファイルがかなり小さくなりましたが、これによって生成結果が劣悪なものになるのか?ということですが、

ふたつは全く同じプロンプト、seed値、CFGです。

以前も書きましたが、自分はクリエイターの才能は皆無なのでそのあたり判断つきません。
もし、このリポジトリを使う場合は好きな方を使ってください。

ちなみにfp16の方は完全にVRAMから溢れています。
メインメモリに退避しながらの生成になりますが、「クラッシュしない」という点は利点かと思います。
OpenVINO GenAIを使うとローカルLLMチャットでもそうですが、このあたりが安定しています。

SD3.5系について

ただし、

Hugging Faceのアクセストークン
SD3.5 Largeの公式ページでのライセンスへの同意
以上2点が必要になります。

どうしてもSD3.5系が必要というならチャレンジしてみてください。
ただ、変換に必要なファイルがものすごく大きいみたいで、そのへんのダウンロードで時間がかかります。

最後に

OpenVINO GenAIを使って画像生成やっていきました。
次は動画生成だろうと予測がつくかと思いますが、現在(2026/4/29)のOpenVINO GenAIでは「LTX-Video」でしか生成に成功していません。
「WAN2.2」や「LTX2.3(2.0も)」はモデルファイルの変換で躓きます。
このあたりはIntelの対応次第といったところです。

今回は以上です。


B580だとどんな感じなんだろう?

ASRock Intel Arc B580 12GB GDDR6 PCIe 4.0
ASRock Intel Arc B580 Steel legend PCIe 4.0対応 2.8GHz 12GB OC GDDR6搭載 ビデオカード 国内正規代理店品 B580 SL 12GOがグラフィックボードストアでいつでもお買い得。...
SPARKLE Intel Arc B580 TITAN OC 12GB GPU
SPARKLE Intel Arc B580 グラフィックカードOC版 トリプルファン「TITAN」シリーズ がグラフィックボードストアでいつでもお買い得。当日お急ぎ便対象商品は、当日お届け可能です。アマゾン配送商品は、通常配送無料(一部除...

B50ちょっと高くなりました。

Amazon | Intel 33P6PEB0BB Arc Pro B50 16GB ビデオカード。 | インテル | グラフィックボード 通販
Intel 33P6PEB0BB Arc Pro B50 16GB ビデオカード。がグラフィックボードストアでいつでもお買い得。当日お急ぎ便対象商品は、当日お届け可能です。アマゾン配送商品は、通常配送無料(一部除く)。

A750でも動いたんでB570でも大丈夫だと思いますが、環境構築が全く同じかはわからないです。
試した方がいたら報告お願いします。

コメント

タイトルとURLをコピーしました