「M4 Maxでリアルな動画を生成できる」
そんな噂を聞いて、実際に試してみた。結論から言うと、動くことは動く。ただし、品質は商用モデルに及ばない。
この記事では、Apple Silicon(M4 Max)で動作するオープンソースの動画生成モデルLTX-2を、mlx-videoフレームワークを使って実際に動かした結果を、良い点も悪い点も含めて正直にレポートする。
なお、今回の検証はインストールから動画生成、この記事の執筆まで、すべてClaude Code(AIコーディングアシスタント)で実行した。その体験についても後述する。
目次
- mlx-video と LTX-2 とは
- M4 Max で動画生成を試す
- 実際のターミナルログを解説
- 生成した動画(実際の出力)
- 正直な品質評価
- 技術的な詳細データ
- トラブルシューティング
- 商用モデルとの比較
- Claude Codeで全自動化した話
- どんな人に向いているか
- まとめ
1. mlx-video と LTX-2 とは
MLXフレームワーク
MLXは、Appleが開発したApple Silicon専用の機械学習フレームワークだ。PyTorchやTensorFlowとは異なり、Apple Siliconの「ユニファイドメモリ」アーキテクチャに最適化されている。
CPUとGPUが同じメモリ空間を共有するため、データ転送のオーバーヘッドがなく、大規模モデルを効率的に実行できる。
LTX-2モデル
LTX-2は、Lightricks社が開発した19Bパラメータの動画生成モデルだ。オープンソースとして公開されており、テキストから動画を生成できる。
| 項目 | LTX-2 |
|---|---|
| パラメータ数 | 19B(190億) |
| モデルサイズ | 約273GB(63ファイル) |
| 対応解像度 | 256×256 〜 768×768 |
| フレーム数制約 | 1 + 8k(後述) |
| ライセンス | オープンソース |
| 開発元 | Lightricks |
mlx-video
mlx-videoは、LTX-2をMLXフレームワークで動かすためのPythonパッケージだ。Apple Silicon Mac上でテキストから動画を生成できる。
2. M4 Max で動画生成を試す
テスト環境
| 項目 | スペック |
|---|---|
| チップ | Apple M4 Max |
| メモリ | 128GB(ユニファイドメモリ) |
| GPUコア | 40コア |
| OS | macOS |
セットアップ手順
インストールは非常にシンプルだ。
# 作業ディレクトリを作成
mkdir mlx-video-test && cd mlx-video-test
# 仮想環境を作成
python3 -m venv venv
source venv/bin/activate
# mlx-videoをインストール
pip install git+https://github.com/Blaizzy/mlx-video.git
動画生成コマンド
# 512x512で生成
python -m mlx_video.generate \
--prompt "A golden retriever dog running through a sunny meadow with flowers" \
--height 512 --width 512 \
--num-frames 49 \
--output-path output.mp4 \
--verbose
# 768x768(高品質)で生成
python -m mlx_video.generate \
--prompt "A golden retriever dog running through a sunny meadow with colorful wildflowers, golden hour sunlight, cinematic depth of field, photorealistic, 8K quality" \
--height 768 --width 768 \
--num-frames 97 \
--output-path output-hq.mp4 \
--verbose
重要:フレーム数の制約
LTX-2のフレーム数は「1 + 8k」(k=1,2,3…)の値でなければならない。つまり、有効な値は 9, 17, 25, 33, 41, 49, 57, 65, 73, 81, 89, 97… となる。
無効な値(例:50)を指定すると、自動的に最も近い有効な値(49)に調整される。
初回実行時の注意:モデルのダウンロード(約273GB、63ファイル)に約2時間かかる。2回目以降はキャッシュが効くため、生成のみで済む。
3. 実際のターミナルログを解説
実際の生成時に出力されるログを解説する。これを理解しておくと、処理の進捗状況を正確に把握できる。
初回実行時のログ
⚠️ Number of frames must be 1 + 8*k. Using nearest valid value: 49
🎬 [T2V] Generating 512x512 video with 49 frames
Prompt: A golden retriever dog running through a sunny meadow...
Downloading LTX-2 model weights...
Fetching 63 files: 100%|██████████| 63/63 [2:14:53<00:00, 128.46s/it]
解説:
⚠️ Number of frames must be 1 + 8*k– フレーム数が制約に合わない場合の警告🎬 [T2V]– Text-to-Video モードで生成開始Fetching 63 files– モデルは63個のファイルに分割されている
モデル読み込みのログ
📝 Loading text encoder...
Text encoder loaded successfully
🤖 Loading transformer...
解説:
text encoder– プロンプトをベクトルに変換するモデルtransformer– 動画生成の本体(19Bパラメータ)
2段階生成パイプラインのログ
⚡ Stage 1: Generating at 256x256 (8 steps)...
Denoising: 100%|██████████| 8/8 [00:09<00:00, 1.17s/it]
🔍 Upsampling latents 2x...
Loading spatial upsampler from ~/.cache/huggingface/hub/models--Lightricks--LTX-2/...
Detected mid_channels: 1024
Loaded 73 weights
⚡ Stage 2: Refining at 512x512 (3 steps)...
Denoising: 100%|██████████| 3/3 [00:11<00:00, 3.75s/it]
解説:
- Stage 1:まず低解像度(256×256)で8ステップのデノイジング(ノイズ除去)を実行
- Upsampling:空間アップスケーラー(73 weights)で潜在空間を2倍に拡大
- Stage 2:目標解像度(512×512)で3ステップの精製処理
VAEデコードと完了のログ
🎞️ Decoding video...
Tiling: disabled
Loading VAE decoder from ~/.cache/huggingface/hub/models--Lightricks--LTX-2/...
Auto-detected timestep_conditioning=False from weights
Loaded latent mean: shape (128,)
Loaded latent std: shape (128,)
Found 90 decoder weights
✅ Saved video to /Users/shinji/Desktop/mlx-dog.mp4
🎉 Done! Generated in 8144.5s (166.22s/frame)
✨ Peak memory: 37.60GB
解説:
- VAE decoder:潜在空間(latent space)から実際の動画ピクセルにデコード
latent mean/std:正規化パラメータ(128次元)90 decoder weights:VAEデコーダーの重み数Peak memory: 37.60GB:生成中の最大メモリ使用量
4. 生成した動画(実際の出力)
実際に生成した動画を見てほしい。
512×512版(49フレーム)
プロンプト: “A golden retriever dog running through a sunny meadow with flowers, cinematic lighting”
768×768版(97フレーム・高品質設定)
プロンプト: “A golden retriever dog running through a sunny meadow with colorful wildflowers, golden hour sunlight, cinematic depth of field, photorealistic, 8K quality”
5. 正直な品質評価
率直に言う。品質は商用モデルに及ばない。
良い点
- 完全にローカルで動作 – クラウド不要、データがデバイス外に出ない
- 無料 – API料金なし、従量課金なし
- Apple Silicon対応 – M1/M2/M3/M4で動作
- オープンソース – カスタマイズ可能
- プライバシー保護 – 機密データを含むプロンプトでも安心
限界・課題
- 品質は初期Soraレベル以下 – 商用モデルと比較すると見劣りする
- モーションの不自然さ – 動きがぎこちない場合がある
- ディテールの甘さ – 細部の描写が粗い
- 初回ダウンロードに2時間以上 – 273GBのモデルサイズ
- 生成時間が長い – 初回は2時間以上かかることも
体感品質の比較
| モデル | 品質イメージ | 料金 |
|---|---|---|
| Sora 2 | 映画レベル | 有料(ChatGPT Pro) |
| Gemini veo 3.1 | 映画レベル | 有料(Google AI) |
| Sora(初期) | 十分実用的 | – |
| LTX-2(今回) | 初期Sora以下 | 無料 |
6. 技術的な詳細データ
実際の生成で得られた技術データを公開する。
512×512版の生成データ
| 項目 | 値 |
|---|---|
| 解像度 | 512 x 512 |
| フレーム数 | 49(指定値50から自動調整) |
| 生成時間(初回) | 8144.5秒(約2時間16分) |
| ピークメモリ使用量 | 37.60GB |
| 1フレームあたりの生成時間 | 166.22秒 |
| 出力ファイルサイズ | 136KB |
| Stage 1 ステップ数 | 8 |
| Stage 2 ステップ数 | 3 |
768×768版の生成データ
| 項目 | 値 |
|---|---|
| 解像度 | 768 x 768 |
| フレーム数 | 97 |
| 生成時間(2回目) | 約2分(モデルキャッシュ済み) |
| メモリ使用量 | 約26GB |
| 出力ファイルサイズ | 1.8MB |
重要なポイント:初回はモデルダウンロード(273GB)で時間がかかるが、2回目以降はキャッシュが効くため、生成時間は約2時間 → 約2分と劇的に短縮される。
生成パイプラインの詳細
LTX-2は効率的な2段階パイプラインで動画を生成する:
| ステージ | 処理内容 | 詳細 |
|---|---|---|
| Stage 1 | 低解像度生成 | 256×256で8ステップのデノイジング |
| Upsampler | 空間拡大 | 73 weightsで潜在空間を2x拡大 |
| Stage 2 | 高解像度精製 | 目標解像度で3ステップの精製 |
| VAE Decode | デコード | 90 weightsで潜在空間から動画へ変換 |
7. トラブルシューティング
フレーム数のエラー
⚠️ Number of frames must be 1 + 8*k. Using nearest valid value: 49
原因:LTX-2はフレーム数に「1 + 8k」の制約がある。
解決策:有効なフレーム数を指定する。
| k | 有効なフレーム数 | 動画長(24fps換算) |
|---|---|---|
| 1 | 9 | 0.4秒 |
| 3 | 25 | 1.0秒 |
| 6 | 49 | 2.0秒 |
| 12 | 97 | 4.0秒 |
| 18 | 145 | 6.0秒 |
モデルダウンロードが止まって見える
273GBのダウンロードは時間がかかる。進捗バーが動かないように見えても、実際はダウンロード中の場合がある。
進捗確認コマンド:
# キャッシュディレクトリのサイズを確認
du -sh ~/.cache/huggingface/hub/models--Lightricks--LTX-2
# ダウンロード済みファイル数を確認
ls ~/.cache/huggingface/hub/models--Lightricks--LTX-2/blobs/ | wc -l
ファイル数が63に達し、サイズが約273GBになればダウンロード完了。
メモリ不足エラー
推奨メモリ量:
| 解像度 | 推奨メモリ |
|---|---|
| 256×256 | 16GB以上 |
| 512×512 | 32GB以上(実測37.60GB使用) |
| 768×768 | 32GB以上(実測26GB使用) |
deprecation warning
FutureWarning: `resume_download` is deprecated and will be removed in version 1.0.0.
対処:無視して問題ない。huggingface_hubの内部警告で、動作に影響はない。
8. 商用モデルとの比較
なぜ品質差があるのか
商用モデル(Sora 2、Gemini veo 3.1など)とオープンソースモデル(LTX-2)の品質差には、明確な理由がある。
| 要素 | 商用モデル | LTX-2 |
|---|---|---|
| 学習データ量 | 数千万〜数億動画 | 公開データセット |
| 計算リソース | 数千GPU × 数ヶ月 | 限られたリソース |
| モデルサイズ | 非公開(おそらく100B+) | 19B |
| 後処理 | 多段階の品質向上 | 基本的なパイプライン |
| 開発予算 | 数十億円〜 | オープンソース |
オープンソースの価値
品質では劣るが、オープンソースには独自の価値がある:
- 透明性 – モデルの仕組みが公開されている
- カスタマイズ性 – 自分のユースケースに合わせて調整可能
- プライバシー – データがローカルに留まる
- コスト – 初期投資(高性能Mac)以外は無料
- 学習教材 – 動画生成AIの仕組みを学べる
9. Claude Codeで全自動化した話
今回の検証で特筆すべきは、インストールから動画生成、この記事の執筆まで、すべてClaude Code(AIコーディングアシスタント)で実行したことだ。
Claude Codeとは
Claude Codeは、Anthropic社が開発したAIコーディングアシスタントだ。ターミナルコマンドの実行、ファイルの読み書き、Web検索など、開発作業を自然言語で指示できる。
実際のワークフロー
今回のワークフローは以下の通り:
- 調査フェーズ:「M4 Maxで動くオープンソースの動画生成モデルを探して」と指示。Claude CodeがWeb検索でmlx-videoとLTX-2を発見。
- 環境構築:「インストールして」と指示。仮想環境の作成からpipインストールまで自動実行。
- 動画生成:「犬が走る動画を生成して」と指示。プロンプト作成からコマンド実行まで自動。
- モニタリング:273GBのダウンロード中、進捗確認コマンドを定期実行して状況を報告。
- 品質評価:生成された動画について率直な評価をフィードバック。
- 記事作成:技術的なログを解析し、この記事を自動生成。
- WordPress投稿:WP-CLIで記事を投稿し、アイキャッチ画像やSEO設定も自動化。
Claude Codeの強み
- 長時間タスクの監視 – 2時間のダウンロードを定期的にチェック
- エラーへの対応 – フレーム数の制約など、ログから問題を自動検出
- 技術ドキュメント作成 – 複雑なログを人間が理解しやすい形に整理
- マルチタスク – コマンド実行、ファイル編集、Web検索を組み合わせ
「AIがAI動画生成ツールをセットアップし、動画を生成し、その体験記事を書く」という、なかなかメタな体験だった。
10. どんな人に向いているか
向いている人
- 研究者・学生 – 動画生成AIの仕組みを学びたい人
- プライバシー重視 – データをクラウドに送りたくない人
- プロトタイピング – アイデアを素早く試したい人
- コスト重視 – API料金を払いたくない人
- オフライン環境 – インターネット接続なしで動画生成したい人
向いていない人
- 商用コンテンツ制作 – クライアントワークには品質が不足
- SNS映え重視 – 高品質な動画が必要な場合
- 即座に結果が欲しい – 初回のセットアップに時間がかかる
- 低スペックMac – 最低でもM1 + 16GB以上が必要
11. まとめ
M4 MaxでLTX-2を使った動画生成を試した結果をまとめる。
結論
動く。ただし、品質は商用モデルに及ばない。
「ローカルで無料でAI動画生成ができる」という点では価値がある。しかし、「高品質な動画を作りたい」という目的であれば、現時点ではSora 2やGemini veo 3.1などの最新商用サービスを選ぶべきだ。
数字で見る今回の検証
| 項目 | 値 |
|---|---|
| モデルサイズ | 273GB(63ファイル) |
| 初回ダウンロード時間 | 約2時間14分 |
| 初回生成時間(512×512) | 8144.5秒(約2時間16分) |
| 2回目生成時間(768×768) | 約2分 |
| ピークメモリ使用量 | 37.60GB |
| 生成パイプライン | 2段階(8+3ステップ) |
今後の期待
オープンソースの動画生成モデルは急速に進化している。LTX-2も定期的にアップデートされており、今後の品質向上に期待したい。
Apple Siliconの性能向上と相まって、「ローカルで商用レベルの動画生成」が実現する日もそう遠くないかもしれない。