西川和久の不定期コラム

ローカル動画生成をSora 2っぽく使う――LLMシナリオ生成を組み込もう

 2026年3月5日にリリースされた「LTX-2.3」により、セリフ/ナレーション/BGM/音楽も同時に生成、解像度はHD/フルHD対応、長さは最大20秒……など、ローカルAI生成動画環境がまた一歩先に進んだように思う。

 ここまで来れば「Sora 2」っぽいのが作れるのでは?と、その試行錯誤の結果が今回のお題となる。

 そもそもSora 2の本質は「ざっくりしたプロンプトから複数シーン/セリフ/音楽を自動で組み立てる」点にある。つまり単なる動画生成ではなく、シナリオを考える部分も含めて自動化されているからこそ、あの使い勝手が生まれるのだ。これをローカルで再現するには、LTX-2.3の前段にシナリオ生成の仕組みが必要だ。それをLLMのパイプラインで実現するのが本記事のテーマである。

まずはシステムプロンプト(System Prompt)を理解しておこう

 本題に入る前に、関係する重要なポイントについて先に触れたい。「LM Studio」などチャット系アプリを使うとき、単にそのままチャットを始める人が多いのではないだろうか?意識してシステムプロンプト(System Prompt)を設定しない限り、システムプロンプトは空のままLLMが作動する。

 たとえば、

今日はいい天気ですね!

を英訳したいとき、

今日はいい天気ですね! を英語へ

と、プロンプトで入力するのが一般的だ。すると、

It's a nice day today!

と答えが出るのではないだろうか。

 しかし、常に英語への翻訳を依頼する場合、「を英語へ」を毎回書くのが面倒だ。こんなとき、システムプロンプトへ以下のような内容を入れると、翻訳系を楽に行なえる。

Translate the input text according to these rules:

- If the input is in Japanese→translate to English

- If the input is in any other language→translate to Japanese

Output only the translation. No explanations, notes, or additional text.

 このシステムプロンプトは、簡単な英語なので説明は不要かも知れないが、入力したテキストに対して、ルールが2つ自動的に適用される。

  1. 日本語なら英語へ
  2. そのほかの言語なら日本語へ

となっている。ちなみに最後の一文は、不要な解説を排除するための命令だ。尋ねていることに対して(AIが)いろいろと余計な説明を加えてくるケースがよくあるが、この一文でそれを防ぐことができる。

 これをLM Studioのシステムプロンプトへ入れ、「翻訳」など名前を付けて保存しておけば、必要なときに呼び出してすぐに使うことができるる。筆者の場合、ほかにもいくつか登録してあるが、このケースが一番多いだろうか。

翻訳用システムプロンプトをセットして作動中のLM Studio

 つまり、システムプロンプトとは、AIとの会話が始まる前に設定される「事前指示」であり、ユーザーのメッセージとは別に、AIの振る舞いや役割をあらかじめ定義するものだ。簡単な例だと、

  • 画像生成プロンプトエンジニアとして答える
  • 日本語のみで回答
  • 医療アドバイスはしない

といった形で、AIの応答のトーン/制約/役割/出力形式などを制御するのに使う。以下にちょっと複雑な例として、後で解説するSora 2化用システムプロンプトの1つを紹介する。

 これは、セリフの部分が日本語のままだとLTX-2.3が妙な発音になってしまうため、ローマ字に変換するシステムプロンプトだ。

You are a Japanese-to-romaji converter.

Your only job is to find all Japanese dialogue in the text and convert it to romaji (Hepburn romanization).

RULES:

- Convert ALL Japanese characters (kanji, hiragana, katakana) in dialogue to romaji

- Keep all English text exactly as-is

- Do NOT translate Japanese to English

- Do NOT add parentheses, English translations, or explanations after romaji

- Do NOT remove, add, or modify any other part of the text

- Output the complete text without truncation

EXAMPLES:

"かっこいいでしょ!"→"Kakkoii desho!"

"これすき!"→"Kore suki!"

"さいこうね"→"Saikou ne"

"めっちゃたのしい!"→"Meccha tanoshii!"

"またあしたね!"→"Mata ashita ne!"

 筆者の指示でClaudeが考えたものだが、ある意味、緩いプログラミングをしている感じだ。

 このシステムプロンプトの指示は複雑なため、どのレベルのLLMで正常に作動するかを確認した。その結果、Qwen3.5 9BはOKだったが、4Bは場合によって変換できないケースがあった。従ってある程度大きい規模のLLMを使わないとうまく動かないことがあるため要注意だ。

LTX-2.3のT2VとI2Vにシナリオ生成機能を付けるには?その1

 さてここからが本題。冒頭にも述べたが、実際Sora 2を使ってみると、T2V(テキストからビデオへ)の場合、簡単なプロンプトからいくつかのシーン、セリフ、音楽などを自動的に考え、それを映像に反映させている。もちろん、時間指定やストーリーボードで細かく指示もできるが、何よりこの「ザックリ書いてそれなりの映像を出せること」こそがSora 2らしさといえるだろう。

 これをローカルで動画生成するLTX-2.3で実現しようとすると、T2VとI2V(画像からビデオを生成する)とでは、生成されるべきシナリオはまったく異なる。

 T2Vの場合は、限られた尺の中でなるべく多くのシーン、異なるファッションなどを詰め込んだ方が面白い映像になる。もちろんユーザーから場所や季節、衣装の指定があればそれに従う。

 対して、リファレンス画像(1枚目のフレーム)が存在するI2V場合、T2Vとは真逆のアプローチ。背景や衣装などはリファレンス画像のままを維持し。カメラの寄り引き、アングルの変更などによって尺を埋めることになる。こうしないとリファレンス画像を指定した意味がなくなり、急に背景が違う場所に変わるなど、映像的にも違和感が生じるためだ。

 つまり流れ的には、以下の2パターンとなる。

  1. T2V用シナリオ生成→セリフ/ローマ字変換→T2V用LTX-2.3が理解しやすいプロンプトへ変換
  2. I2V用シナリオ生成→セリフ/ローマ字変換→I2V用LTX-2.3が理解しやすいプロンプトへ変換

 LTX-2.3が理解しやすいプロンプトへ変換とは?これに関しては、ComfyUIのここに、LTX-2.3用プロンプト拡張、TextGenerateLTX2Promptノードが標準対応で入っており、このノードを開くと、「LTX2_T2V_SYSTEM_PROMPT」と「LTX2_I2V_SYSTEM_PROMPT」と2つに分かれているのが分かる。これをそのまま使ってもいいし、必要に応じて追記/変更する。

 書かれている内容をザックリ紹介すると、

T2V

テキストのみを入力として受け取り、動画生成モデル向けの詳細なプロンプトに拡張

  • 入力が曖昧でも、照明・質感・服装・表情などを自分で補完して具体化
  • スタイル指定がなければ「cinematic-realistic」をデフォルトとする
  • 音響も映像と同期して時系列で記述(BGM・環境音・SFXなど)
  • 台詞は要求された場合のみ、声の特徴付きで正確に記述
I2V

画像(リファレンス画像)+テキストを入力として受け取り、その画像から続く動画のプロンプトを生成

  • 画像を分析してシーン・スタイル・ムードを把握
  • 画像からの変化点のみを記述(既存の視覚情報を繰り返さない)
  • ユーザー指示と画像が矛盾する場合はユーザー指示を優先
  • 音響はプロンプト全体に分散して記述(末尾まとめは禁止)
共通
  • カメラワーク・台詞は指示なしに勝手に追加しない
  • タイムスタンプ・シーンカット記述は原則禁止
  • 大げさな表現を避け、控えめで自然な言葉を使う
  • マークダウン・見出し等の書式は一切使わない(LTX-2.3固有?)

と、こんな感じだ。一覧を見るだけでも、それなりに細かい指示をしているのが分かる。また内容的にLTX-2.3専用というわけでもなく、動画生成用全般にも使えそうだ。

LTX-2.3のT2VとI2Vにシナリオ生成機能を付けるには?その2

 さて、ここまで来れば、上記のパイプライン、残りはシナリオ生成部分だけ。これもシステムプロンプトで記述できる。長くなるので、T2V用をここ、I2V用をここに置いた。やっていることは、

T2Vシナリオ生成

ユーザーがテーマや概念を入力すると、4〜6シーンの動画プロンプトを1段落の連続した英文で出力

主な特徴:

・出力は英語のみ(台詞・歌・ナレーションは日本語必須)

・シーンごとに場所・衣装・カメラワーク・音響が全て異なる

・全シーンに日本語の台詞/ナレーション/歌を必ず含む

・「1シーン指定」があれば厳密に1シーン・1場所のみ生成

・ユーザー指定の内容を検閲・軟化せずそのまま再現

I2Vシナリオ生成

基本的な役割はT2Vと同じ。画像(リファレンス画像)を受け取る点が異なる

T2V版との主な違い:

・提供された画像を分析し、キャラクター・衣装・場所の視覚的一貫性を維持

・指示がない限り、全シーンで画像と同じキャラクター・衣装・場所を使用

・ユーザーが明示的に変更を指示した場合のみ衣装・場所の変更が許可

・ユーザーが台詞を指定した場合は一字一句そのまま使用(改変禁止)

これからも分かるように、T2Vは「自由にシーンを作る」のに対し、I2V版は「リファレンス画像の世界観を起点にシーンを展開する」と、先に説明した内容と一致している。

 ComfyUIやLTX-2.3が作動しない環境でも有効で、LM Studioのシステムプロンプトへセット、何かプロンプトを入力して、出力された英文をGrok Imagineやその他動画生成サービスへコピペすれば、それっぽい映像が出来上がる。前々回、

春、桜の花が咲く季節。

週末明けの月曜日、職場にタイプのイケメン。今週も彼に会えるとワクワクな若い日本人美女OLの一日。もちろんファッションは可愛い系

 この映像がまさにこのパターンでGrok Imagineを使いT2V生成したものとなる。同じくGrok Imagineを使ったI2V。

若くて可愛い日本人モデルを使った口紅のCM

## 尺

-10秒

## コンセプト

- 春、桜、可愛い

## ロケーション

-満開に咲くおおきな桜の木の下

## ナレーション

-日本語で春と口紅をキーワードとしたセリフ

## 構成

- アップのままアングルを変える

- 最後、大量の桜の上に置いた口紅のアップ

- BGMあり

リファレンス画像
I2V用シーン用システムプロンプトをLM Studioにセット、上記のプロンプトで映像用プロンプトを生成、Grok Imagineを使い、生成された映像

いかがだろうか?T2V/I2Vのどちらであっても、LM Studioなどシステムプロンプトが設定できるチャットアプリと、外部の動画生成サービスを組み合わせることで、Sora 2のような映像を生成できることがお分かりいただけただろうか。

LTX-2.3のT2VとI2Vにシナリオ生成機能を付けるには?その3。ワークフロー公開!

 以下、今回のシステムプロンプト関連のみ独立したワークフローで掲載/公開する。なぜなら、LTX-2.3本体のワークフローはユーザーの好みによってさまざまだからだ。ComfyUIのテンプレートそのまま使ったり、アップスケールなし、x2アップスケールあり、裏技?でx2x2アップスケールありなど、いろいろ考えられる。なお、シナリオT2V/I2V、ローマ字変換、LTX-2.3用プロンプト変換T2V/I2Vも一式入っている。

 基本、このワークフローの最終テキスト出力を、LTX-2.3のCLIP Text Encode (Positive プロンプト)ノードのテキスト入力に接続すればOKということもあり、LTX-2.3のワークフローと分離した。

 もちろんこの最終テキスト出力を有料APIノードのGrokやVeoに接続してもいいし、Web版のGrok ImagineやSora 2にコピペしても良い。ある意味、汎用版というわけだ。

 まず背景グリーンの部分がこのSora 2化システムプロンプト一式。先に書いたように、シナリオ生成、日本語/ローマ字変換、LTX-2.3が理解しやすいプロンプトへ変換の順に並んでいる。

 中央上、紫の小さいノードが2つあるのは生成されたプロンプトに

cinematic, film photography aesthetic, natural color grading,

subtle film grain, muted and desaturated colors,

warm shadows, soft highlights, anamorphic lens flare,

shallow depth of field, organic texture, non-CGI look

を加えている。これがない状態だと非常にクリアな映像となり、フィルムで撮った映画っぽい雰囲気を加えるためのプロンプトだ。Sora 2もこんな感じの映像を出すことが多い。不要なときは外せば良い。

LTX-2.3 Sora 2化ワークフロー全貌
シナリオ生成→日本語/ローマ字変換→LTX-2.3が理解しやすいプロンプトへ変換

 次はT2V/I2Vのシステムプロンプトとその切り替えロジック。赤いノードが切り替え。オンのときにT2V用、オフのときにI2V用となる。

 この指定により、上にあるシナリオ生成用の2組と、下にあるLTX-2.3用プロンプトへ変換する2組が、T2V/I2Vでそれぞれ切り替わる。なお日本語/ローマ字変換はT2V/I2V同じなので2段目LLMのシステムプロンプト項目へ固定で入っている。

 またI2V作動のときに限り、1段目LLMのimage1入力へリファレンス画像を接続する必要があり、左下の黒いグループはその切り替えロジックになっている。

 つまりI2Vを使うとき、LLMはVision対応の必要がある。ここではQwen3.5-9bになっているが、シナリオの質が映像の出来栄えを大きく左右するため、可能であれば大きいモデルを使いたいところ。

システムプロンプト群。上2つがT2V/I2Vシナリオ生成、下2つがT2V/I2V LTX-2.3が理解しやすいプロンプトへ変換
T2V/I2V画像切り替えロジック。赤いボタンがオンのときT2V。I2Vのときのみ1段目のLLMのimage1へリファレンス画像を入れる

 おまけでLTX-2.3が使用しているgemma-3-12b-itをLLMとして流用したワークフローも公開。これを使えば外部のLLMを頼る事なく、すべてがLTX-2.3内で完結し省リソースになる。

 実際このSora 2化ワークフローを使いLTX-2.3で生成した動画4本掲載する。何も記述がないものはHDで生成、後からツールでフルHDにアップスケールしている。

桜満開の卒業式
目黒川のお花見(リファレンス画像実写のI2V)
人気アイドルの一日(フルHD生成)
## K-popアイドルのMV - 春 - アップテンポで明るいダンスナンバー - 衣装は春っぽくカラフル(フルHD生成)

 なお、T2Vしか使わない場合は、gpt-oss-20b(120b)も利用できる。ちょっと試したが、結構シナリオに特徴が出る。Qwen3.5と比較してgpt-ossの方がより魅せようとするし、よりSora 2っぽい雰囲気もある。同じプロンプトでモデルによる個性を楽しむのもありだろう(笑)。以下、Qwen3.5-122b-a10b vs gpt-oss-120b。

日本人美女が遊園地で大はしゃぎ

Qwen3.5-122b-a10b版
gpt-oss-120b版

 いかがだろうか?これらがGPU搭載ローカルPCで100%生成できるのだから、Sora 2まであと半歩?というのもあながち嘘ではないことがお分かり頂けたかと思う。


 おまけ。これはシナリオ生成を通さず、日本語プロンプトからLTX-2.3が理解しやすいプロンプトへ変換→ローマ字変換した例(順序が逆になっているのは、こうすれば日本語プロンプトが英文に変わるため)。もちろんプロンプトを考えたのはClaude(笑)。最大のフルHD 20秒をダイレクトに生成。さすがに迫力の映像になっている。

SFっぽいのもそれらしく生成!

 以上がノウハウだ。特殊なシステムプロンプトを使い、キーワードからシナリオ生成→日本語/ローマ字変換→LTX-2.3が理解しやすいプロンプト……と、3段のパイプラインをLLMで構成し、LTX-2.3で動画生成、まるでSora 2!? 的な映像を実現している。

 LTX-2.3の標準ワークフローでは、指定解像度の半分で8 steps生成、その後2xアップスケール3stepsとし元の解像度へ戻している仕掛け上、どうしても引きの顔など描写が甘くなる。

 もちろん半分にせず指定解像度のままでも生成可能であるが、この場合、より時間とリソースがかかり、一長一短。さらに日本語/ローマ字変換している関係上、発音がちょっとたどたどしい……とはいえ、これだけの映像がローカルだけで作れる意味は非常に大きい。

 まだ今年(2026年)は第1四半期。第4四半期までに本当にSora 2ができるかも!?と期待が持てる進歩ではないだろうか?