結論

LTX-2で「見れる」動画を安定して出すには、プロンプトの構造化が鍵になる。 単発のショットを綺麗に出す段階と、36シーンを繋いで一本の物語にする段階では、必要な設計が根本的に異なる。ここでは実運用で固まった3つの仕様を統合して記録する。

  1. 36シーン・ホラーシナリオ生成テンプレート — LLMにシナリオを書かせるためのシステムプロンプト
  2. シネマティック・プロンプト設計原則 — 個々のショットの品質を上げるための構造
  3. マルチシーン連結の継続性制御 — クリップ間の破綻を防ぐパイプライン設計

前提

  • 動画生成エンジン: LTX-2(5秒クリップ単位で生成)
  • 解像度: 3840x2160(4K)、24fps
  • シナリオ生成: ローカルLLM(Mixtral等)でSTORY→SCENES→LTX2_PROMPTSを一括生成
  • パイプライン: シーン単位で生成→ffmpegで連結→音声は後段で合成

1. 36シーン・ホラーシナリオ生成テンプレート

設計意図

背景:Monstral-123B(NVFP4量子化)でホラーシナリオの生成を試みたとき、以下の問題が発生した:

  • シーン数が20〜50でばらつき、36固定が実現できない
  • ナラティブ構造が崩れ、序破急が不明確
  • 台詞が途中で消滅し、無音シーンが大量に出現
  • エンディングが曖昧か、唐突な「妄想落ち」に陥る

これらは単なるLLMの性能問題ではなく、出力フォーマットを明示的に制約しないことが原因だった。

LLMに「ホラー動画のシナリオを書いて」と投げるだけでは、モデルの自由度が高すぎて、生成結果が不安定になる。そこで、出力スキーマとルールを厳格に固定したシステムプロンプトを設計することで、Monstral-123Bのような中規模モデルでも安定した36シーン構成のシナリオを生成できるようにした。

出力スキーマ(固定)

LLMの出力は以下の5セクションのみ。余計な説明は禁止。

  1. STORY_PROMPT — 物語の骨格(1段落)
  2. LABELS — ジャンル、トーン、モチーフ
  3. OUTLINE — 5段階構成のあらすじ
  4. SCENES_36 — Scene 01〜Scene 36(各1〜3文)
  5. LTX2_PROMPTS_36 — Shot 01〜Shot 36(各ショットの生成プロンプト一式)

シーン配分

  • 01〜08: 日常と小さな違和感(最初の囁き、微妙なズレ)
  • 09〜20: 異常の増幅と反復(声が繰り返す、反射が語りかける)
  • 21〜28: 調査と対峙(原因の手がかり、真相の明確化)
  • 29〜36: 解決と結末(原因特定→具体的行動→安全回復)

夢オチ、「全部妄想でした」、未解決の曖昧な結末は禁止。

各シーンの必須要素

  Scene 04:
Visual: 鏡の前に立つ女性。カメラは反射にゆっくりズームイン。
Whisper: 「あなたも、見えているんでしょ?」
Sound: 蛍光灯がチカチカと鳴り、低いハム音。
  
  • Visual: 画面に映るもの
  • Camera: フレーミングまたはカメラワーク
  • Dialogue: 最低1つの台詞(Dialogue / Whisper / Voice(V.O.) / Heard Voice / Inner Voice)

「台詞のないシーン」は存在しない。自然に台詞が入らない場面では、囁き、歪んだ声、内的独白、反射越しの声、記憶のフレーズを使う。

舞台設定ルール

  • 舞台は日本(都市部または郊外)
  • 具体的な実在地名は避ける
  • 使える文化要素:静かな住宅街、小さな家、鏡、神社、廊下、引き戸、夕方のテレビ音、蝉、風、蛍光灯
  • ゴア描写・過度な暴力は禁止。恐怖は心理的手段(囁き、影、反射、反復、孤立感)で構築する

Story Flavors(プリセット)

ユーザー入力が曖昧な場合、LLMが自動選択するプリセット群。

  • trapped_room_mummy: 夏休み前に閉じ込められ、痕跡だけが残る
  • water_reflection: 水面の反射が現実を少しずつ書き換える
  • station_beep_phrase: 駅の電子音が言葉になり、人を誘導する
  • fox_shrine_wrath: 小さな祠の撤去が静かな異変を呼ぶ

LTX2_PROMPTS_36 のショット定義

  Shot 01:
  DURATION=5s FPS=24 RES=3840x2160
  PROMPT: <映像指示中心の具体的短文>
  NEGATIVE: low quality, blurry, distorted hands, deformed face, gore, blood
  CAMERA: handheld POV / slow push-in / over-the-shoulder
  LIGHTING: low-key, streetlight, fluorescent hum
  AUDIO_CUE: <環境音、台詞、沈黙>
  CONTINUITY: prev=none next=shared_object:mirror
  SEED_HINT: episode_seed+01
  

顔のアップは回避し、手・背中・シルエットを優先する。テロップは後段ffmpegで合成する前提。

2. シネマティック・プロンプト設計原則

Shot-First Thinking(ショット優先思考)

プロンプトの最初に「カメラがどこにあるか」を確定させる。抽象的な「カメラが〜を表示する」は禁止。具体的な撮影用語で書く。

  • static camera / slow pan / close framing / wide interior shot / shallow depth
  • カメラの位置、視界、空間の圧縮感を明示する

環境のアンカリング(Visual Mood)

ライティング、カラーパレット、表面テクスチャを各プロンプトに共通パラメータとして埋め込む。

  • 照明: 暖色、フリッカー、蛍光灯、自然光、曇天
  • 色: くすんだパステル、暖かいゴールド、病的なグリーン
  • テクスチャ: 曇ったガラス、磨耗した金属、光の中の埃

これにより拡散モデルの生成プロセスが安定(アンカー)し、シーン間での結果が一貫する。

アクションは連続する物理シーケンスとして記述

箇条書きではなく、動作の自然な推移として書く。

  Leaning into frame → Hesitating near the handle → Exhaling slowly to fog the glass
  

矢印(→)で段階的な動きを明示する。これがないとLTX-2は「瞬間移動(テレポート)」を起こす。身体がどのように空間を移動したかを執拗に書くことが、滑らかな映像化への有効なアプローチ。

振る舞いによるキャラクター定義

長い説明文ではなく、姿勢、微細な表情、タイミング、小さな癖で定義する。年齢、服装、動きに現れる感情状態を含める。

カメラワークはナラティブツール

  • スローパン: 観察と緊張の構築
  • 固定ショット: 緊張感やコメディの「間」
  • 連続クリップ間ではパンの方向と速度を一貫させる
  • 前シーンから継続する場合は Continue the same pan と明記

オーディオは必須

音声は飾りではなく、タイミングを規定するツール。

  • Ambient Sound: オーブンのハミング、蒸気の音、遠くの騒音
  • Dialogue Beats: 引用符(" “)を用いたセリフ、[Beat] [Silence] による沈黙の挿入
  • 音楽は明示的に含めるか除外するかを宣言する

プロンプト構造テンプレート

  1. Shot Establishment(ショットの確立)
  2. Environment & Lighting(環境と照明)
  3. Character Position & Emotion(キャラクターの配置と感情)
  4. Core Action Sequence(主要アクションシーケンス)
  5. Camera Movement(カメラワーク+タイミング)
  6. Audio & Dialogue(オーディオとセリフ)
  7. Ending Visual Beat(終わりの視覚的間)

3. マルチシーン連結の継続性制御

課題

単発のショットを美しく出す段階から、複数シーンを繋いで物語にする段階へ進むと、以下の問題が発生する。

  • ビジュアル・ドリフト: ショットが変わるたびにライティングやテクスチャが微変する
  • カメラの断絶: パンの速度や方向がクリップ間で一致しない
  • タイミングの喪失: 演技の「間」や「溜め」を制御できない

Last-frame Continuity(ラストフレーム連結)

  1. 継続指示: 次のシーンの冒頭で Continue the same pan と明記
  2. シード値のインクリメント: 同一シード値をベースにショットインデックスを加算(episode_seed + shot_idx)。微細な変動は許容しつつ大枠の一貫性を維持
  3. テクスチャの共有: 前のショットで発生した視覚的状態(ガラスの曇り等)を、次のショットの前提条件として引き継ぐ

CONTINUITY フィールドの運用

各ショットの CONTINUITYprev=next= を明記し、共有物・共有音・継続動作・場所遷移のいずれかで隣接シーンと接続する。

  CONTINUITY: prev=shared_sound:fluorescent_hum next=location_transition:hallway_to_kitchen
  

この明示的な接続指示がないと、LTX-2は各ショットを独立した画像として生成し、連結時に違和感が出る。

テレポート現象の回避

動作を端折ると、AIは中間フレームを予測できず「瞬間移動」を起こす。物理的な身体の動き(どのように空間を移動したか)を執拗に記述することが最も有効な対策。

感想

LTX-2のプロンプトエンジニアリングは、結局「映画の絵コンテを自然言語で書く」行為そのものだ。 ホラーシナリオのテンプレートは、LLMに構造化出力を強制するための仕様書であり、シネマティック原則は個々のショットの品質を上げるための知見であり、継続性制御は複数ショットを物語として繋ぐための実装ノウハウ。この3層が揃って初めて「使える」パイプラインになる。 動画生成AIの未来は、単発の美しさではなく、連続するショットの間に宿る知性の制御にかかっている。

再現方法

最小構成

  1. LTX-2の動画生成環境(ComfyUIまたはAPI)
  2. シナリオ生成用LLM(ローカルでもAPI経由でも可)
  3. ffmpeg(クリップ連結・テロップ合成)

ホラーシナリオ生成の手順

  1. Story Flavorを選択(または自由入力)
  2. システムプロンプト(本記事のテンプレート)をLLMに投入
  3. 出力のSCENES_36とLTX2_PROMPTS_36を取得
  4. 各ショットのPROMPTをLTX-2に順次投入
  5. 生成されたクリップをffmpegで連結
  6. 音声・テロップは後段で合成

シネマティック品質のチェックリスト

  • 各プロンプトの先頭にカメラ位置が明記されているか
  • ライティングとカラーパレットが一貫しているか
  • アクションが矢印(→)で段階的に記述されているか
  • 隣接ショット間でCONTINUITYが定義されているか
  • オーディオ指示が含まれているか
  • 顔のアップを避け、手・背中・シルエットを優先しているか