StabilityAIがまた新しいの出してきました。
その名もSDXL turbo。
昨今LCMの登場により飛躍的に画像生成の速度が上がって話題ですが、こちらのモデルを使うことでもプロンプトを入れたら即画像が生成されるリアルタイム画像生成ができるようです。プロンプトを入れるのでもちろんtext2imgです。
手元のデバイスでもできるか試して見ます。
目次
①やること
前回JetsonにインストールしたComfyUIを使ってリアルタイム画像生成を行います。ComfyUIを管理しやすくなるカスタムノードの拡張機能も入れていきます。
- ComfyUI Managerをインストール
- SDXL turboモデルの設置
- リアルタイム画像生成の実行
スペック
Jetson AGX Orin 32GB CPU:8-core Arm® Cortex®-A78AE v8.2 64-bit GPU:1792-core NVIDIA Ampere architecture GPU with 56 Tensor Cores メモリ:32GB 256-bit LPDDR5
今回は以下を参考にさせていただきました。
Beginner’s Guide to ComfyUI – Stable Diffusion Art
ComfyUI is a node-based GUI for Stable Diffusion. This tutorial is for someone who hasn’t used ComfyUI before. I will covers
SDXL Turbo: Real-time Prompting – Stable Diffusion Art
The SDXL Turbo model is a fine-tuned SDXL model that generates sharp images in 1 sampling step. In this post, you will learn:
②ComfyUIのセットアップ
②-01. ComfyUI Managerのセットアップ
まずはComfyUI Managerをインストールしていきます。この機能は拡張機能のインストールなどを補助したり、モデルの入手を用意にしてくれるもののようです。参考記事ではComfyUI自体のアップデートのために使用しています。自分の環境ではComfyUIを入れたのが12/6頃なのでアップデートは不要かもしれませんが、今後も使っていく上では使いやすくなりそうなので入れておきます。 まずはComfyUIフォルダ内のcustom_nodesフォルダに移動し、ComfyUI Managerをクローンします。
cd /ComfyUI/custom_nodes
git clone https://github.com/ltdrdata/ComfyUI-Manager
クローンが終わったらComfyUIを普通に起動するだけです。 起動前後の画面変化はこんなふうになっています。
右下のノードにManagerの項目が増えています。これでComfyUI Managerのインストールは完了です。
②-02. ComfyUIのアップデート
不要かもしれませんが念のためComfyUIのアップデートをかけます。 右下のManagerを押します。するとメニューが表示されるのでUpdate ComfyUIを押します。
アップデートが完了するとSuccessの表示が出ます。非常に簡単ですね。
②-03. ワークフローの設定
ComfyUIでは様々な設定内容(ワークフロー)をjsonで保存しておいたり、生成済みの画像から使用したワークフローを設定することができます。今回のSDXL turboのワークフローも参考記事の方で用意してくださっている物があるので使わせていただきます。
リンク先からDowonloadボタンを押すとsdxl_turbo_txt2img.jsonのファイルが入手できます。このファイルをComfyUIの画面上にドラッグ&ドロップすることで適用されます。適用後、画面が少し変化します。
②-04. モデルのダウンロード
huggingfaceでモデルが配布されていますのでダウンロードします。 無印とfp16のモデルがありますが、参考記事ではfp16のモデルを使用しています。とりあえず両方使ってみましたがあまり差は感じなかったので容量が少ないfp16モデルの方がいいと思います。
stabilityai/sdxl-turbo at main
We’re on a journey to advance and democratize artificial intelligence through open source and open science.
ダウンロードしたモデルは以下には置きます。
/ComfyUI/models/checkpoints
③SDXL turboでリアルタイム生成を実行
③-01. 普通に生成してみる
とりあえず1回普通に生成を行ってみます。プロンプトは適当に入れてみます。
mountain, river, blue sky, canoe
ネガティブプロンプトも入っているのですがそちらは変えないままにします。
text, watermark
初回はモデルのロードが入っているようで数十秒待たされます。その後画像が生成されます。モデルロードの時間で分からなかったので、改めて生成を行ったところ1秒で画像が生成されました。。。めちゃくちゃ速いです。
生成結果もキレイに仕上がっています。
③-02. リアルタイム生成の実行
いよいよリアルタイム生成を実行していきます。自動でプロンプトを拾ってくれるように設定を変えます。Extra Promptにチェックを入れ、拡張されるメニューからAuto Queueをチェックします。 そしてQueue Promptを押すとリアルタイム生成が実行されるようになります。
実行結果がこちらです。
プロンプトは以下を入れました。英語得意ではないのでもたついてしまっているのと、最適化があまりできていないせいか2秒に1枚程度の生成になっていますが、プロンプトを実行ボタン押さずにどんどん生成してもらえるのはなんだか気持ちいいです。
winter, stone bridge, cross the river, fog, night, orange lamp
最終的に生成された画像は以下になります。
④まとめ
リアルタイム生成は面白いです。画像生成において生成を待つ間に別のことをやってて生成している事自体を忘れてしまっていることとかあったのですが、ここまで早ければ全然困りません。 ただし、プロンプトが同じだと同じ画像が生成されます。そのため、今までのStable Diffusionのように同じプロンプトでガチャでいいものを引き当てるような使い方はできなさそうです。今のところは速度を重視したモデルという感じでした。しばらくはLCMで画像生成するほうが候補から選ぶような使い方ができ実用に近いのかなと思いました。 それでも、数ヶ月前までは画像が出てくるまで3分とか普通に待っていたのでそれを考えると1/100以下で生成できるようになったというのは凄まじい進歩です。まだこのAIの進化の流れから目が離せないです。
コメント