はじめに
本記事では、Apple Silicon搭載のMacBook Proで次世代動画生成AI FramePack をローカル環境で動かす方法をわかりやすく解説します。
FramePackは1枚の画像とシンプルなテキストプロンプトから、アニメのような高品質な動画を生成可能な革新的ツールです。特に動画の長さに関わらず一定のメモリ消費で動作するため、ノートPCでも安定した処理が可能。ただし、Macでの導入は公式にサポートされておらず、特別な手順が必要になります。
以下、Python環境の構築からPyTorch(MPS対応)のインストール、FramePackの実行までを詳しく説明します。
💻 検証環境
- 機種: MacBook Pro M4(2024年モデル)
- メモリ: 24GB
- Python: 3.10.13(pyenv管理)
- 仮想環境: venv
- GPU利用: Apple GPU(MPS: Metal Performance Shaders)
💡 メモリ注意:MPSバックエンドは最低14.55GB以上のメモリを要求します。24GB以上搭載のMac推奨。
🔧 インストール手順
① Python 3.10 のセットアップ(pyenv)
pyenv install 3.10.13
pyenv local 3.10.13
② 仮想環境の作成と有効化
python -m venv .venv
source .venv/bin/activate
③ FramePackのApple対応Forkをクローン
git clone https://github.com/brandon929/FramePack.git
cd FramePack
💡 このFork版は、Apple Silicon(M1/M2/M3/M4チップ)向けに一部調整された非公式のバージョンです。公式版ではMPS対応が不完全なため、Macでの実行にはこちらのForkを推奨します。
④ PyTorch(MPS対応)をインストール
pip install --upgrade pip
pip install --pre torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/nightly/cpu
⑤ その他依存パッケージのインストール
pip install -r requirements.txt
⑥ Gradio GUIの起動
以下のコマンドでGradioベースのGUIが起動します。
python demo_gradio.py
⚙️ 実行オプション
メモリ制限対策として以下のオプションが使えます。
python demo_gradio.py --fp32 --chunk-size 2
オプション | 説明 |
---|---|
--fp32 |
精度を float32 に設定。品質は向上するが、メモリ消費が大きくクラッシュしやすい。 |
--chunk-size 2 |
チャンク処理サイズを小さくして、一度に処理するデータ量を抑える。クラッシュ回避に有効。 |
初回実行はオプションなしを推奨。
🎬 実際に試してみた
MacBook Pro M4(24GB)での動作検証結果:
- 最大約20GBのメモリ消費を確認
- MPS制限超えの処理も安定
入力画像とプロンプト例
ジブリ風ポートレート画像(男性)を入力し、女性的な動きを試しました。
使用プロンプト:
"The girl dances gracefully, with clear movements, full of charm."
入力画像:
🎬 生成された動画
1秒間の生成動画 (.gif変換済み):
-
⏱️ 処理時間: 約30分
-
顔の特徴維持、滑らかな動き、自然な表現が秀逸
✨ 所感
- 高負荷だが、Apple Silicon搭載Mac(24GB以上)で実用的
- 将来的な処理速度向上やComfyUI連携による利便性アップに期待
🔗 参考リンク
📌 実行コマンドまとめ
pyenv install 3.10.13
pyenv local 3.10.13
python -m venv .venv
source .venv/bin/activate
git clone https://github.com/brandon929/FramePack.git
cd FramePack
pip install --upgrade pip
pip install --pre torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/nightly/cpu
pip install -r requirements.txt
python demo_gradio.py