Lightricksは動画生成モデルLTX-2の1.6.2を公開し、参照画像を動画区間の前後に配置する機能を追加した。複数の区間に分けて動画を作る場合、この画像を該当区間を担当するチャンクだけに適用するか、すべてのチャンクに繰り返し適用できる。

長い動画を分割生成する開発者は、シーンの基準画像をどこに反映するか、より細かく調整できる。クリップの開始と終了を担当するチャンクだけにガイドを送る標準の選択肢と、各チャンクに同じ相対位置のガイドを提供する選択肢が用意された。

1. 画像ガイドをクリップの前後に配置

今回の変更は画像ガイドの位置制限を緩和する。フレーム番号が負なら最初のフレームの前に、クリップのフレーム数以上なら最後のフレームの後に、時間上の特定地点を示すキーフレームとして配置される。リリースノートでは、最初の画面の雰囲気を定めるために-1を使う例を挙げている。

ガイドは画像によって生成過程を誘導する入力である。シーンの前に基準写真を置き、その写真を参照してシーンを作る仕組みと理解できる。ユーザーは最初のシーンの参照画像を、動画開始前の位置に指定できる。

2. チャンク単位で選ぶ標準動作と反復動作

チャンク分割生成のデフォルトはONCEである。クリップ前方のガイドは最初のフレームを含むチャンクに、後方のガイドは最後のフレームを含むチャンクに一度だけ渡される。ガイドの位置は、そのチャンクが処理するフレーム区間の開始点からの実際の距離を維持する。

PER_CHUNKを選ぶと、すべてのチャンクが同じ相対位置でガイドを受け取る。例えば-1は、各チャンクが処理する区間の直前に配置される。クリップ終端を超える位置も、各区間の終端から同じ距離を維持する。基準写真を動画全体の前に一度置く代わりに、分割生成する各シーンの前に繰り返し置く方式である。

3. APIとコマンドラインで指定

Pythonでは、ガイドの反復動作をout_of_clip_guidesで渡し、画像条件をチャンク別に作成する関数やICLoraPipelineの実行に使用できる。

コマンドラインでは、--out-of-clip-guidesオプションで同じ反復方式を選択する。反復を明示的に選ばなければ、境界を担当するチャンクに一度だけ渡す標準動作を使う。

リポジトリのドキュメントには、画像置換とガイド入力を作成する例がある。

opening = ImageConditioningInput.replace("opening.png", frame_idx=0, strength=1.0)
later_replacement = ImageConditioningInput.replace("later.png", frame_idx=9, strength=1.0)
guide = ImageConditioningInput.guide("guide.png", frame_idx=80, strength=0.8)

ドキュメントの例では、replace()はクリップのフレームを画像で置換し、guide()は指定位置に画像ガイドを置く。クリップ外のインデックス指定は、後者の配置範囲を拡張するものである。

4. 反復適用の利点と処理コスト

PER_CHUNKは、分割された各区間に同じ基準画像を提供したい場合に役立つ。特定のチャンクだけに適用されるデフォルトとは異なり、各区間がガイドを受け取る。ただし、その分、画像条件をモデルの入力形式に変換するエンコード処理も複数のチャンクで実行される。

実装では、実行中に入力画像を一度読み込み、その画像を必要とするチャンクごとに、チャンクの解像度に合わせて条件をエンコードする。反復適用の負荷は、画像ファイルを毎回読み直すことではなく、より多くのチャンクに条件を作成する過程で生じる。

既存の画面を画像で置換する入力は、引き続きクリップ内に配置する必要がある。チャンクを一つだけ生成する場合、反復の選択による効果はない。

今回の変更の要点は、クリップ前後のガイドを許可し、分割生成でその基準画像を一つのチャンクに置くか、すべてのチャンクに繰り返すかを選べるようにしたことである。