はじめに
最近、動画生成AI界隈が盛り上がってますね。Lightricks社から公開されたLTX-2もその一つです。
世間(主にXやReddit)ではComfyUIを使ったGUIでの生成情報が賑わっていますが、エンジニアとしてはやはりCLI(Command Line Interface)で動かしたいですよね?
サーバーサイドでの自動化や組み込みを考えると、黒い画面でコマンドを叩いて動く姿を確認しておきたいものです。
しかし、公式のリポジトリを見てもCLIでの具体的な動作報告、特にコンシューマー向けGPU(VRAM 16GBクラス)での検証記事が少なかったので、人柱覚悟でやってみました。
目的
- 一般的なPC(NVIDIA GeForce RTX 4060 Ti 16GB)で動くか確認したい
- 公式パイプライン(
TI2VidTwoStagesPipeline)をCLIから叩きたい - 必要なリソース(VRAM、メモリ、時間)を把握したい
方法
愚直に公式手順をなぞりつつ、VRAM 16GBに収まるようにパラメータを調整します。
動作環境
Windows 11上のWSL2 (Ubuntu 24.04 LTS) で検証しました。uv を使って環境構築しています。
| 項目 | スペック詳細 | 備考 |
|---|---|---|
| GPU | NVIDIA GeForce RTX 4060 Ti | VRAM 16GB (重要) |
| CPU | Intel Core i7-14700 | |
| Memory | 32 GB | WSL2割当: 24 GB |
| Python | 3.13.1 |
uv で管理 |
| CUDA | 12.8 |
WSL2の .wslconfig はメモリをケチらないように設定しておきます。
[wsl2]
memory=24GB
swap=32GB
processors=16
手順
基本的には git clone して uv sync するだけですが、モデルのダウンロードに少しコツがいります。
1. リポジトリの準備
# 作業用ディレクトリ
mkdir -p ~/video-generation-trial
cd ~/video-generation-trial
# clone
git clone https://github.com/Lightricks/LTX-2.git
cd LTX-2
# 依存関係のインストール (uv便利!)
uv sync --frozen
source .venv/bin/activate
2. モデルのダウンロード(ここが重要)
huggingface-cli で落とします。
特にテキストエンコーダーの Gemma 3 ですが、ComfyUI用の一枚岩の .safetensors ファイルではなく、Diffusers形式(フォルダ構成) で落とす必要があります。これに気づかずにハマりかけました。
cd ~/video-generation-trial
# 保存先作成
mkdir -p models/{checkpoints,latent_upscale_models,loras,text_encoders}
# ログイン (Gemma 3の利用規約同意が必要なのでトークン必須)
huggingface-cli login
# 1. 本体 (FP8版でないとVRAM 16GBは死にます)
huggingface-cli download Lightricks/LTX-2 ltx-2-19b-dev-fp8.safetensors \
--local-dir models/checkpoints
# 2. アップスケーラー
huggingface-cli download Lightricks/LTX-2 ltx-2-spatial-upscaler-x2-1.0.safetensors \
--local-dir models/latent_upscale_models
# 3. LoRA
huggingface-cli download Lightricks/LTX-2 ltx-2-19b-distilled-lora-384.safetensors \
--local-dir models/loras
# 4. テキストエンコーダー (Gemma 3)
# フォルダごと落とします
huggingface-cli download google/gemma-3-12b-it --local-dir models/text_encoders
3. 動画生成コマンド
VRAM 16GB環境向けの「妥協設定」です。
-
--enable-fp8: これがないとOOMで即死します。 -
--num-frames 81: デフォルト(121)だと落ちたので減らしました。 - 解像度: 512x512
cd LTX-2
source .venv/bin/activate
python -m ltx_pipelines.ti2vid_two_stages \
--checkpoint-path ../models/checkpoints/ltx-2-19b-dev-fp8.safetensors \
--distilled-lora ../models/loras/ltx-2-19b-distilled-lora-384.safetensors 0.8 \
--spatial-upsampler-path ../models/latent_upscale_models/ltx-2-spatial-upscaler-x2-1.0.safetensors \
--gemma-root ../models/text_encoders \
--prompt "A beautiful sunset over the ocean" \
--output-path ../output.mp4 \
--height 512 \
--width 512 \
--num-frames 81 \
--enable-fp8
結果
無事に生成できました〜。
プロンプト "A beautiful sunset over the ocean" 通りの夕日の動画が出てきました。
生成スペック
- 解像度: 512x512
- フレーム数: 81 (約3.3秒)
- ファイルサイズ: 119 KB
パフォーマンス
正直、少し重いです。コーヒーを飲んで待つレベルを超えて、お風呂に入って帰ってこれるレベルです。
| フェーズ | 時間 | 備考 |
|---|---|---|
| 推論 | 約67分 | 40step (100秒/step) |
| デコード等 | 約8分 | |
| 合計 | 約75分 |
GPU使用率は常にほぼ100%張り付き。VRAMも 15.9GB 使用で、まさにギリギリの戦いでした。
さらに、タスクマネージャーを確認すると 共有GPUメモリ(Shared GPU Memory) も 約14GB 使用されていました。
つまり、実質的には合計で約30GB近いメモリを消費しており、足りないVRAM分をメインメモリで肩代わりしている状態です。これが処理時間の長さ(75分)の主因と考えられます。
考察
- VRAM 16GBでも動くには動く: FP8量子化のおかげでなんとか動作しました。ただし解像度やフレーム数には制限がかかります。
-
Windows/WSL2ならではの挙動: 今回動作したのは、WindowsのGPUドライバが持つ「共有GPUメモリ」機能のおかげと言えます。VRAMから溢れたデータを自動的にメインメモリへ逃がしてくれるため、速度は犠牲になりますがOOMで落ちずに完走できました。
-
Native Linux(Ubuntu等)の場合: 通常、このような透過的なVRAM共有機能(OSレベルでの強力なオフロード)は働きにくいため、同じ16GB VRAMの環境でNative Linuxで実行した場合は、即座に CUDA Out of Memory で落ちる可能性が高いです。Linux環境で動かす場合は、明示的なCPUオフロード機能(Accelerateの
enable_sequential_cpu_offload等)を駆使する必要があるでしょう。
-
Native Linux(Ubuntu等)の場合: 通常、このような透過的なVRAM共有機能(OSレベルでの強力なオフロード)は働きにくいため、同じ16GB VRAMの環境でNative Linuxで実行した場合は、即座に CUDA Out of Memory で落ちる可能性が高いです。Linux環境で動かす場合は、明示的なCPUオフロード機能(Accelerateの
- 実用性は?: 1枚生成するのに75分は、試行錯誤するには辛いですね。本格的にやるなら素直にRTX 3090/4090 (VRAM 24GB) を買うか、クラウドGPUを使うのが幸せになれそうです。
- Gemma 3の罠: 前述しましたが、テキストエンコーダーのファイル構成には注意です。「モデルが見つかりません」エラーが出たら、まずはフォルダ構成を疑ってみてください。
まとめ
LTX-2の公式パイプラインをCLI/VRAM 16GB環境で動かしてみました。
ギリギリ動作確認はできましたが、快適な動画生成ライフを送るにはもう少し強いGPUが欲しくなりますね。
この記事が、同じように「とりあえずCLIで動かしたいんじゃ」という方の参考になれば幸いです。
