ltx2 について
ltx2は、テキストプロンプトや静止画像からLTX-2.3で短い動画を生成するコマンドラインスキルです。長さ、解像度、スタイル、再現性を調整でき、Modalエンドポイント経由で実行します。
主な機能
- 01テキストからの動画生成
- 02静止画像のアニメーション化
- 03長さと解像度の設定
- 04品質・ステップ数・シードの選択
- 05crt-terminal LoRAの適用
活用シーン
- 01短いBロール映像の作成
- 02スライド背景への動きの追加
- 03肖像やイラストキャラクターのアニメーション化
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ digitalsamba/ claude-code-video-toolkit --skill ltx2インストール後、Claude Code で/ltx2を入力して読み込まれたか確認します。
詳細
LTX-2.3 動画生成
LTX-2.3 22B DiT モデルを使って、テキストプロンプトまたは画像から約5秒の動画クリップを生成します。
Modal(A100-80GB)上で実行します。.env に MODAL_LTX2_ENDPOINT_URL が必要です。
LTX-2.5 は同じエンドポイントでデプロイ時にオプトインできます。LTX-2.5(オプトイン)をご覧ください。
クイックリファレンス
# Text-to-video
uv run tools/ltx2.py --prompt "A sunset over the ocean, golden light on waves, cinematic" --output sunset.mp4
# Image-to-video (animate a still image)
uv run tools/ltx2.py --prompt "Gentle camera drift, soft ambient motion" --input photo.jpg --output animated.mp4
# Custom resolution and duration
uv run tools/ltx2.py --prompt "..." --width 1024 --height 576 --num-frames 161 --output wide.mp4
# Fast mode (fewer steps, quicker)
uv run tools/ltx2.py --prompt "..." --quality fast --output quick.mp4
# Reproducible output
uv run tools/ltx2.py --prompt "..." --seed 42 --output reproducible.mp4
パラメーター
| パラメーター | デフォルト | 説明 |
|---|---|---|
--prompt | (必須) | 動画のテキスト説明 |
--input | - | 画像から動画を生成する場合の入力画像 |
--width | 768 | 動画の幅(64で割り切れる値) |
--height | 512 | 動画の高さ(64で割り切れる値) |
--num-frames | 121 | フレーム数。(n-1) % 8 == 0 を満たす必要があります |
--fps | 24 | フレームレート |
--quality | standard | standard(30ステップ)または fast(15ステップ) |
--steps | 30 | 推論ステップ数を直接指定して上書きします |
--seed | random | 再現性を確保するためのシード |
--output | auto | 出力ファイルのパス |
--negative-prompt | 適切なデフォルト値 | 避ける要素 |
--lora | none | スタイル LoRA プリセット。現在は crt-terminal です。 |
スタイル LoRA
スタイル LoRA は、出力を特定のビジュアル表現に寄せます。Modal イメージに組み込まれており、リクエストごとに選択します。LoRA を切り替えると、サーバーパイプラインが再構築されます。
LTX2_VERSION=2.5 のデプロイ環境では: 以下のプリセットは LTX-2.3 で学習されています。crt-terminal は 2.5 で確認済みですが(2026-10-12)、CRT の見た目は再現されません。出力には変化があるものの、緑色のテキストが表示されたフォトリアリスティックなシーンになります。crt-terminal を使うには、2.3 のデプロイ環境を使用してください。一致しないキーはエラーなしでスキップされるため、ほかの 2.3 用 LoRA についても、使用する前に 2.3 で比較してください。
crt-terminal — CRT/ピクセルアートのターミナル
ベース:LTX-2.3 22B。@lovis93 が学習(Apache 2.0)。
# Trigger word is auto-prepended — write the prompt normally
uv run tools/ltx2.py --lora crt-terminal \
--prompt "a terminal typing out \"\\$ claude --continue\" character by character in glowing green pixel font, scanlines, phosphor glow, low choppy frame rate, hacker mood" \
--output crt_claude.mp4
このプリセットによる変更:
- プロンプトの先頭に
crtanim,(LoRA のトリガーワード)を追加します - デフォルトを1024×1024、121フレーム(学習時の比率)に設定します
- 画面上のテキストが除外されないよう、デフォルトのネガティブプロンプトを緩和します
プロンプトのパターン: <CRT の美的表現> → <カラーパレット> → <アニメーションスタイル> → <被写体> → <引用符で囲んだ文字列> → <雰囲気>。画面上のテキストは1~3語にしてください。モデルは長い文字列を安定して描画できません。この LoRA は固定フレーミングを好みます。カメラを動かしたい場合は、明示的に指定してください。
有効なフレーム数
(n - 1) % 8 == 0:25(約1秒)、49(約2秒)、73(約3秒)、97(約4秒)、121(約5秒、デフォルト)、161(約6.7秒)、193(実用上の最大値、約8秒)。
よく使われる解像度
| 解像度 | 比率 | 備考 |
|---|---|---|
| 768x512 | 3:2 | デフォルト。バランスが良好です |
| 512x512 | 1:1 | 正方形。最速です |
| 1024x576 | 16:9 | ワイドスクリーン |
| 576x1024 | 9:16 | ポートレート/縦向き |
プロンプトガイド
LTX-2 は、映画的な描写にうまく応答します。次の要素を組み合わせてください。
- カメラ:「ゆっくり前進するドリー撮影」、「空撮ドローンショット」、「トラッキングショット」、「固定の広角ショット」
- 照明:「ゴールデンアワー」、「映画的な照明」、「ネオン照明」、「柔らかな拡散光」
- 動き:「……のタイムラプス」、「スローモーション」、「カメラがゆっくり漂う」、「徐々に変化する」
- スタイル:「35mmフィルムで撮影」、「ドキュメンタリー調」、「すっきりとしたミニマルな美的表現」
- ネガティブ:「最低品質、ぼやけ、揺れ、ウォーターマーク、テキスト、ロゴ」は常に暗黙的に回避されます
プロンプトは200語以内にしてください。シーンを具体的に指定します。
良いプロンプト
# Atmospheric b-roll
"Aerial drone shot slowly flying over turquoise ocean waves breaking on white sand, golden hour sunlight, cinematic"
# Product/tech scene
"Close-up of hands typing on a mechanical keyboard, shallow depth of field, soft desk lamp lighting, cozy atmosphere"
# Abstract background
"Dark moody abstract background with flowing blue light streaks, subtle geometric grid, bokeh particles floating, cinematic tech atmosphere"
# Animate a portrait
"Professional headshot, subtle natural head movement, confident warm expression, studio lighting, shallow depth of field"
# Animate a slide/screenshot
"Gentle subtle particle effects floating across a presentation slide, soft ambient light shifts, very slight camera drift"
悪いプロンプト
# Too vague
"A cool video"
# Too many competing ideas
"A cat riding a skateboard while juggling fire on the moon during a thunderstorm"
# Describing text/UI (model can't render text reliably)
"A website showing the text 'Welcome to our platform'"
動画制作での用途
Bロールクリップ
ナレーションのあるシーンの合間に挿入する、雰囲気のある5秒のショットを生成します。
uv run tools/ltx2.py --prompt "Futuristic holographic interface, glowing data visualizations, clean workspace, cinematic" --output broll_tech.mp4
uv run tools/ltx2.py --prompt "Aerial view of European city at golden hour, modern architecture" --output broll_europe.mp4
アニメーション付きスライド背景
スライドのスクリーンショットを入力し、さりげない動きを加えます。
uv run tools/ltx2.py --prompt "Gentle particle effects, soft ambient light shifts, very slight camera drift" --input slide.png --output animated_slide.mp4
アニメーション付きポートレート
静止した顔写真に動きを加えます。
uv run tools/ltx2.py --prompt "Subtle natural head movement, warm expression, professional lighting" --input headshot.png --output animated_portrait.mp4
スタイライズされたキャラクターのカメオ(SadTalkerの代替)
非写実的な顔(ファンタジーキャラクター、仮面を付けた人物、濃いひげ、ヘルメット、イラストなど)では、SadTalkerは写実的な人物で学習されているため、不自然なリップシンクや崩れたリップシンクが生じることがよくあります。リップシンクの精度が重要でない場合は、LTX-2の画像から動画を生成する方法が適していることがよくあります(動きさえあれば、見る人の脳が足りない部分を補ってくれます)。音素ではなく、動き+雰囲気をプロンプトで指定してください:
uv run tools/ltx2.py \
--input character_portrait.png \
--prompt "Ancient warrior speaks slowly with gravitas, beard shifts subtly, glowing aura pulses, embers drift past, slow head movement, cinematic close-up, mystical atmosphere" \
--width 768 --height 768 \
--output character_speaking.mp4
LTX-2がSadTalkerより適している場合:
- スタイライズされたキャラクター/イラスト/ファンタジーキャラクター
- 口元を覆う濃いひげやアクセサリー
- 仮面やヘルメットを着用した人物
- 精度よりも雰囲気が重要な短いカメオのセリフ
- 会話ではなく、ドラマチックなナレーション
SadTalkerが引き続き適している場合:
- 写実的な人物のプレゼンター
- 口の形を音素に合わせる必要がある全文
- 見る人が実質的に唇を読んでいるチュートリアル/トーキングヘッド形式の解説
ブランド付きイントロ/アウトロ
タイトルカード用の抽象的な動きのある背景を生成します:
uv run tools/ltx2.py --prompt "Dark moody background with flowing blue and coral light streaks, bokeh particles, cinematic tech atmosphere, no text" --output intro_bg.mp4
他のツールとの組み合わせ
LTX-2は未加工のクリップを生成します。ツールキットの他のツールと組み合わせてください:
| ワークフロー | ツール |
|---|---|
| クリップを生成 → アップスケール | ltx2.py → upscale.py |
| クリップを生成 → Remotionに追加 | ltx2.py → コンポジションで<OffthreadVideo>として使用 |
| 画像を生成 → アニメーション化 | flux2.py → ltx2.py --input |
| クリップを生成 → 音声を抽出 | ltx2.py → ffmpeg -i clip.mp4 -vn audio.wav |
| クリップを生成 → ボイスオーバーを追加 | ltx2.py → qwen3_tts.pyの出力とミックス |
技術的な詳細
- モデル: LTX-2.3 22B DiT(Lightricks)、bf16
- GPU: ModalのA100-80GB(約$2.50/時間)
- 推論: クリップあたり約2.5分(768x512、121フレーム、30ステップ)
- コスト: $2.50/時間の場合、5秒のクリップあたりウォーム時は約$0.07、コールド時は約$0.12(ベンチマークはdocs/ltx2.mdを参照)
- 重み: 約80GBがイメージに組み込まれています。リクエスト間でVRAMに保持されません。ウォーム/コールドを問わず、リクエストごとに各ステージのテキストエンコーダーとトランスフォーマーを読み込み、その後解放します
- 出力: アンビエント音声を同期したH.264 MP4(24fps)
- 最大長: クリップあたり約8秒(193フレーム)
既知の制限事項
- 学習データ由来のアーティファクト: 生成の約30%で、学習データに由来する不要なロゴやテキストが含まれることがあります。別の
--seedで再実行してください。 - テキスト描画: 動画内に読み取れるテキストを安定して生成できません。代わりにRemotionのオーバーレイを使用してください。
- 最大長: クリップあたり約8秒です。より長いコンテンツにはクリップの結合が必要です。
- 音声: 生成される音声はアンビエント/環境音のみです。音声や音楽にはボイスオーバー/音楽ツールを使用してください。
- ライセンス: Community License。収益が1,000万ドル未満の場合は無料で、それを超える場合は商用ライセンスが必要です。
セットアップ
# 1. Create Modal secret for HuggingFace (one-time)
uv run modal secret create huggingface-token HF_TOKEN=hf_your_token
# 2. Deploy (downloads ~80GB of weights, takes ~10 min)
uv run modal deploy docker/modal-ltx2/app.py
# 3. Save endpoint URL to .env
echo "MODAL_LTX2_ENDPOINT_URL=https://yourname--video-toolkit-ltx2-ltx2-generate.modal.run" >> .env
# 4. Test
uv run tools/ltx2.py --prompt "A candle flickering on a dark table, cinematic" --output test.mp4
重要: HuggingFaceトークンには読み取りアクセスのスコープが必要です。また、アカウントでGoogleのゲート付きGemma 3テキストエンコーダーへのアクセスが必要です。Googleはこれらのリクエストを手動で承認するため、デプロイ前に申請してください。認証なしのダウンロードは厳しくレート制限されています。
LTX-2.5(オプトイン)
デプロイ時に LTX2_VERSION=2.5 を設定すると、同じエンドポイント、リクエスト形式、ツールのまま、LTX-2.3 が LTX-2.5 に切り替わります。デフォルトは引き続き LTX-2.3 です。LTX-2.3 と比較したベンチマークでは、2.5 はクリップあたり約25~45%遅く、crt-terminal LoRA は2.3でのみ動作します(docs/ltx2.md を参照)。
# Git Bash / macOS / Linux. In PowerShell: $env:LTX2_VERSION='2.5' first, and
# Remove-Item Env:LTX2_VERSION before deploying 2.3 again.
LTX2_VERSION=2.5 uv run modal deploy --strategy recreate docker/modal-ltx2/app.py
# Back to 2.3 (its cached image is reused, nothing rebuilds)
uv run modal deploy --strategy recreate docker/modal-ltx2/app.py
- アクセス:
Lightricks/LTX-2.5はアクセス制限付きです。まず、トークンのアカウントでモデルのページにアクセスし、「Agree and Access」をクリックしてください(自動的に承認されます。連絡先情報が共有されます)。Gemma 4 テキストエンコーダーが含まれているため、2.5 では Gemma 3 へのアクセスは必要ありません。 - ライセンス: LTX-2.x Community License。年間収益が1,000万ドル未満であれば無料で、商用利用も含まれます。ウォーターマークや来歴機能を削除しないでください。
- 確認方法: クリップごとに、ツールが
Model: Lightricks/LTX-2.5(またはLightricks/LTX-2.3)と出力します。 - LoRA:
crt-terminalは2.5ではその見た目を維持できません。上記のスタイル LoRA を参照してください。 - 速度: 2.3よりクリップあたり約25~45%遅くなります(ベンチマークは
docs/ltx2.mdを参照)。
詳細、相違点、ベンチマーク計画については、docs/ltx2.md を参照してください。