特集・集中企画

画像生成AI「Stable Diffusion」を「Copilot+ PC」で動かしたらどうなる?

そもそもArmで動作するのか、NPUの実力は発揮できるのかを検証

「Surface Laptop 13.8インチ(第7世代)」

AIに強い「Copilot+PC」なら「Stable Diffusion」も快適?

 PCのAI機能を拡充する「Copilot+ PC」。弊誌でもAI機能を試す記事を掲載している。画像生成AIなどいくつかの機能が使えて、PCの未来を体感できる内容になっている。

 とはいえAIは「Copilot+ PC」の専売特許ではない。今回は画像生成AIが広く知られるのに大きな役割を果たした「Stable Diffusion」を、6月に発売されたばかりの「Copilot+ PC」で動かしたらどうなるのかを試してみることにした。

 使用するのはMicrosoftからお借りした「Surface Laptop 13.8インチ(第7世代)」だ。スペックは下記のとおり。

【Surface Laptop 13.8インチ(第7世代)スペック】
CPUSnapdragon X Elite(12コア)/Snapdragon X Plus(10コア)
GPUQualcomm Adreno GPU(CPU内蔵)
NPUQualcomm Hexagon NPU(45TOPs)
メモリ16GB/32GB LPDDR5
SSD256GB/512GB/1TB(PCIe Gen4)
ディスプレイ13.8型PixelSense Flow ディスプレイ(2,304×1,536ドット、120Hz、タッチ対応)
OSWindows 11 Home
汎用ポートUSB4×2、USB 3.1×1
無線機能Wi-Fi 7、Bluetooth 5.4
有線LANなし
その他1080pカメラ(Windows Hello 顔認証対応)、Surface Connect ポート、ヘッドフォン端子
本体サイズ301mm×220mm×17.5mm
重量1.34kg
価格207,680円~

 今回お借りした機材は、CPUがSnapdragon X Elite (12 Core)、メインメモリが16GB、SSDが512GBの構成で、価格は279,180円となる。

 ポイントは2点で、Windows 11がArm版であること。そしてCPUがQualcommの「Snapdragon X Elite」であることだ。そもそも「Stable Diffusion」が動作するのかどうか、からのスタートである。

「Stability Matrix」で実行環境を探る

「Stability Matrix」。複数のUI環境を簡単に共存できる

 「Stable Diffusion」の実行環境構築には、「Stability Matrix」を使用した。複数のWebUI実行環境がパッケージとしてまとめられており、使用したいパッケージを選ぶだけで、自動で実行環境を構築してくれる。Pythonの実行環境を構築する必要もなく、複数のパッケージの共存・管理も可能だ。

 まずはWeb UIとして最も有名な「Stable Diffusion WebUI(Automatic1111)」を試してみた。パッケージをインストールし、Web UIを起動するまでは順調に進んだのだが、いざプロンプトを入力して画像を生成しようとすると、エラーで実行できない。

 「Stability Matrix」では、実行時のオプションも設定できるので、あれこれ変更して再度実行してみたのだが、画像の生成には至らなかった。

「Stable Diffusion WebUI(Automatic1111)」。画像生成を実行するとエラーで止まる

 これで終わりにするのはもったいないので、他のパッケージも試してみた。「Stable Diffusion WebUI Forge」は、インストールして実行しようとすると、エラーを出して中断。しかしエラー内容に「Skip Torch CUDA Test」を追加せよというメッセージがあった。実行オプションで「Skip Torch CUDA Test」および「Always CPU」にチェックを入れたところ、無事に起動した。

実行時のオプションを変更できる

 続けて画像生成も実行でき、プロンプトに「cat」とだけ指定したところ、無事に512×512ドットの猫の画像が1枚生成された。かかった時間は約7分43秒。

 ちなみに同じオプション設定で、筆者所有のデスクトップPC(Core i5-13600K、GeForce RTX 4080)で実行したところ、約1分27秒で生成された。また「Always CPU」のオプションを外す(GPUで実行される)と約3秒となった。

無事に猫の画像が生成された。かかった時間は約7分43秒
デスクトップPCのCPUのみを利用して実行すると、約1分27秒
デスクトップPCでGPUを使って実行すると約3秒

 続いて「ComfyUI」。こちらも「Use CPU only」のオプションをチェックすることで動作する。標準で「beautiful scenery nature glass bottle landscape, , purple galaxy bottle,」というプロンプトが入力されているので、これを実行したところ、約10分39秒で画像が生成された。

 こちらも筆者のPCで同じオプション設定にして試すと、生成時間は約1分52秒。「Use CPU only」のオプションを外してGPU処理させた場合は約3秒だった。

「ComfyUI」でも画像生成に成功。しかし1枚に10分以上かかってしまった

 このほかにもいくつかのパッケージを試してみたが、うまく動作しなかった。これに関しては筆者所有のPCでもうまく動作しないパッケージは時々あるので、設定を詰めたり、パッケージのアップデートによって動作したりするものはあるかもしれない。とりあえずは「CPUのみの動作で設定すれば、動かせるものもある」ということはわかった。

現時点では不向きだが、いずれ改善していくはず

 ここまでの結果を見ると、CPU処理で実行はできるものの、エミュレーションの影響もあってかパフォーマンスはあまり良くない。内蔵GPUや、あるいは自慢のNPUが使えれば、もっと高速に処理できるはずなのだが。

 そこで、DirectX 12互換GPUで使えるはずの機械学習向けの低レベルAPI「DirectML」を使えば、もっと高速に処理できるのではないかと考えた。「SnapDragon X」に内蔵されるAdreno GPUはDirectX 12に対応している。

 「Stable Diffusion WebUI Forge」と「ComfyUI」には、どちらにもDirectMLを使用するオプションが用意されている。こちらを有効化してみると、パッケージの起動段階でエラーを出して止まってしまう。他のオプションを調整したり、他のDirectMLに対応するパッケージを試してたりもしてみたものの、1つも動作しなかった。

 DirectMLオプションに関しては、筆者のPCでも試してみたものの、やはり起動に失敗してしまう。筆者の勉強不足で何か方法があるのかもしれないが、少なくとも「Stability Matrix」でパッケージを入れれば動くという状態ではなかった。「Stability Matrix」を使わず環境構築する手もあるが、時間的都合もあり今回はここまでとさせていただく。

 DirectMLに関して調べてみたところ、Microsoftで情報が見つかった。それによると、「Qualcomm Snapdragon X Elite NPU の DirectMLは、まもなく利用可能になる予定」とされている。NPUに関しては、現時点では未対応と見てよさそうだ。

 その辺りも含めて、今のところは「Snapdragon X」で「Stable Diffusion」を使うのは難しい。とはいえ「Copilot+ PC」の機能としては既に画像生成も動作しているので、「Stable Diffusion」がより快適に動作するのもそう遠い時期ではないはずだ。