AI動画でBGVを作る(2)|MacBook Air M5 32GBでComfyUI+Wan2.2が動…かない

AI動画でBGVを作る(2)|MacBook Air M5 32GBでComfyUI+Wan2.2が動…かない — MacBook Air M5, ComfyUI, Wan2.2 AI動画

こんにちは、パレイド技術部です。

前回までに Windows + RTX4070 環境で Wan2.2 5B で ComfyUI テンプレートを試しました。今回は、同じワークフローが MacBook Air M5(Unified Memory 32GB)で動作するかを検証します。結論から言うと、現時点では ComfyUI の MPS 対応が不十分で、まともな動画は生成できませんでした

(2026年3月 MacBook Air M5 32GBでの検証結果を基に追記

MacでのAI動画生成の現状

Apple Silicon 搭載 Mac での AI 動画生成は、まだ発展途上です。主な選択肢は以下の通りです。

方式概要Wan2.2対応
ComfyUI (MPS)PyTorchのMPSバックエンドを利用× 後述
MLXApple純正の機械学習フレームワーク○ コミュニティ実装あり
diffusers (MPS)HuggingFace diffusersライブラリ△ 実験的

CUDA が使えないため、ComfyUI のノードによっては Mac 非対応のものがあります。Wan2.2 関連のカスタムノードは基本的に CUDA 前提で作られており、MPS バックエンドでの動作保証はありません。

なお、MLX については Wan2.2 のネイティブポートがコミュニティから公開されています。今回は Windows 環境で構築済みの ComfyUI ワークフローをそのまま Mac で動かせるかという検証のため、まずは ComfyUI + MPS を試しています。ComfyUI でダメだった場合の代替として、MLX 版の検証は別途行う予定です。

ComfyUI Desktop on Mac

ComfyUI Desktop は Mac 版も提供されています。Apple Silicon 対応の PyTorch が組み込まれており、MPS バックエンドで動作します。インストール自体は Windows 版と同じく簡単です。

デフォルト設定での実行:即座にエラー

Windows 環境で作成したワークフローをそのまま読み込んで実行したところ、推論の開始直後にエラーで停止しました。WanVideoWrapper のカスタムノードが内部で CUDA 前提のオペレーション(torch.cuda 系の呼び出し)を使用しており、MPS バックエンドでは未実装のオペレーターに遭遇してクラッシュします。

標準的な Wan2.2 ノードも同様で、bf16 演算が MPS で一部未対応のため、テンソル計算の段階で失敗します。

GGUF モデルでの試行:ノイズしか出ない

GGUF 量子化モデル(Q5_K_S)なら内部の演算が軽量化されており、MPS でも動作する可能性があると考えて試しました。

結果、エラーは出なくなり推論は完走するものの、出力は全面がノイズの動画でした。色のついた砂嵐のような映像で、プロンプトの内容はまったく反映されていません。

GGUF のデシリアライズ処理や量子化テンソルの演算が MPS バックエンド上で正しく動作していないと考えられます。エラーにならない分、かえって原因の特定が難しい状態です。

Mac + ComfyUI で、ggufを利用してWan2.2で生成した例。ノイズというかなんというか。

fp32 フォールバックでの試行:やはりノイズ

bf16 の MPS 非対応が原因なら、fp32 に強制すれば動くのではないかと考え、--force-fp32 オプションと環境変数(PYTORCH_ENABLE_MPS_FALLBACK=1)を設定して再試行しました。

結果、メモリ使用量は 28GB まで膨らみ生成時間も大幅に伸びましたが、出力はやはりノイズでした。GGUF 試行時とは異なるパターンのノイズで、部分的に構造らしきものが見える瞬間はあるものの、映像としては使い物になりません。

fp32 化により精度の問題は回避できても、MPS バックエンド上の Attention 演算やカスタムカーネルの互換性が根本的に不足しているようです。

MacでComfyUI + Wan2.2の失敗例。gguf+fp32で無理やり生成してもうまくいかない。

原因の考察

今回の検証結果から、Mac + MPS 環境で Wan2.2 が動作しない原因は複合的です。

  1. カスタムノードの CUDA 依存: WanVideoWrapper をはじめとする主要なカスタムノードが torch.cuda 前提で書かれている
  2. MPS の演算子カバレッジ不足: Wan2.2 が内部で使用する一部の Attention 実装や Transformer 演算が MPS で未実装
  3. GGUF デシリアライズの非互換: 量子化テンソルの展開処理が MPS テンソルに正しく変換されていない
  4. BlockSwap の非対応: GPU ↔ CPU スワップ機構は CUDA のメモリ管理 API に依存しており、MPS には対応していない

Stable Diffusion(SDXL 等)の画像生成は MPS で問題なく動作するため、動画生成モデル特有の処理(時間方向の Attention、3D VAE 等)に MPS 未対応の演算が集中していると推測されます。

まとめ

  • MacBook Air M5 32GB の ComfyUI + MPS 環境では Wan2.2 は現時点では実用不可
  • デフォルト設定ではエラーで停止、GGUF・fp32 でもノイズしか出力されない
  • 原因はカスタムノードの CUDA 依存と MPS バックエンドの演算子カバレッジ不足と推測
  • Unified Memory 32GB のメモリ容量自体は十分だが、ComfyUI 経由では演算互換性の壁が大きい

ComfyUI のワークフローをそのまま Mac に持ち込むアプローチは現状では厳しいという結論です。一方で、MLX ネイティブの Wan2.2 ポートがコミュニティから公開されており、PyTorch/MPS を経由しない分、Apple Silicon との相性は良い可能性があります。こちらの検証は改めて行う予定です。

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