Stable Diffusionは文字や画像を元に新たな画像を生成してくれるAIですが、実行環境としてPythonが必要とされてきました。そんな中、ONNXモデルおよびONNX Runtimeの活用とC++での実装でPythonへの依存をなくし、Xbox上で動作させることに成功した猛者が登場しました。
Stable Diffusion running on Xbox Series X and S for the first time – YouTube
[embedded content]
左端の大きなアイコンが今回作成された「Unpaint」というアプリ。記事作成時点ではストアには存在せず、インストールするにはユーザーが自分でパッケージに署名する作業が必要になります。Xbox Series XおよびXbox Series Sのどちらでも動作可能とのこと。左の大きな画面にXbox Series Xの出力が表示されています。
起動するとこんな感じに。バーチャルキーボードを使って一文字ずつプロンプトを入力しています。
プロンプト入力後、約20秒程度で1枚の画像が生成されました。
その後も20~30秒ごとに1枚のペースで画像が生成されています。
Xbox上でStable Diffusionを実行するのに大きな役割を果たしたのが「ONNX」プロジェクトです。AIモデルを動作させるには実行環境やフレームワークに特定の環境を要求される場合が多くなっていますが、モデルが単一の環境でしか動作しない場合、複数のモデルが別の環境を要求すると途端にモデル同士を組み合わせるのが難しくなります。ONNXはそうした問題を解決するためにMicrosoft手動で進められているプロジェクトで、あらゆるモデルをあらゆるツール・プラットフォーム上で動作させて相互運用性を高めることが目的とされています。
ONNXプロジェクトの一つにONNX Runtimeがあり、これはONNX形式のモデルをNVIDIAのCUDA・AMDのROCm・AppleのCoreML・QualcommのQNN・MicrosoftのDirectMLなどあらゆるプラットフォーム上で動作させることが可能なツール。OSについてもWindows・Linux・macOS・Android・iOSなどなんでもOK。WebAssemblyにも対応しています。
今回はONNXモデルに変換したStable DiffusionのモデルをONNX Runtimeを利用してC++で動作させることでXboxでの動作を実現しています。画像生成のプロセス全体を1つのプロセスで行うため、シンプルかつ小規模にインストール可能とのこと。モデルの保存に2.5GBを利用するのを除くと30MB程度の容量しか利用していないそうです。
また、今回のXboxアプリ作者のGitHub上でStable DiffusionをC++で呼び出すコードが公開されています。文字や画像から画像を生成する「txt2img」や「img2img」はもちろん、画像の一部を修正する「inpainting」や安全性を確かめる「safety checker」の機能が利用可能。C++またはCの関数をインポートできるプロジェクトであればどんなプロジェクトからでもStable Diffusionを利用可能になるため、ゲーム開発などリアルタイムCGアプリケーションへの統合を考えている人にとって非常に役立つツールとなっているとのことです。
この記事のタイトルとURLをコピーする
・関連記事
画像生成AI「Stable Diffusion」でスマホでもわずか1枚2秒という爆速で画像生成ができる「SnapFusion」 – GIGAZINE
「画像の続き」をAIで描画できるPhotoshopの「ジェネレーティブ塗りつぶし」を試してみた – GIGAZINE
なぜAIは「手」を描くことを苦手としているのかをアートと工学の専門家が解説 – GIGAZINE
独自のチャットAI「Bard」を開発するGoogleが社員にチャットAIの利用について警告 – GIGAZINE
・関連コンテンツ