KJNodes/imagegenerated

デコードしてビデオを保存(DecodeAndSaveVideo)

潜在表現からビデオフレームとオーディオをデコードし、結合してビデオファイルとして保存します。中間画像をメモリに保持しません。

Decode And Save Video

video_latent
audio_latent
video_vae
audio_vae
tiling
fps
25.00
filename_prefix
video/ComfyUI
format
auto
codec
auto
tile_size
512
overlap
64
temporal_size
4096
temporal_overlap
16
KJNodes

説明

デコードしてビデオを保存ノードは、潜在表現からビデオフレームとオプションのオーディオをデコードし、結合して結果のビデオをファイルに直接保存します。メモリ効率を考慮して設計されており、デコードされたフレームは生成と同時にディスクに書き込まれ、すべての中間画像をRAMに保持することはありません。これにより、長尺や高解像度のビデオでも、メモリ不足になることなく処理できます。

このノードは、ビデオフレームの潜在表現(通常はビデオ拡散モデルによって生成される)と、オプションでオーディオの潜在表現を受け取ります。ビデオ潜在をデコードするためのVAEモデル(video_vae)と、オーディオ潜在をデコードするためのVAEモデル(audio_vaeaudio_latentが指定された場合のみ必須)の2つを別々に提供する必要があります。また、タイルデコード(空間的および時間的)をサポートしており、メモリ使用量をさらに削減できます(タイルパラメータで設定可能)。

このノードをビデオ生成パイプラインの最終ステップとして使用し、結果を一般的なビデオコンテナ形式でエクスポートします。

入力

入力タイプ必須デフォルト備考
video_latentLATENTはいビデオフレームの潜在表現。通常、互換性のあるビデオ拡散モデルから取得されます。
audio_latentLATENTいいえオーディオフレームの潜在表現。指定する場合は、audio_vaeも接続する必要があります。無音のビデオ出力の場合は切断されたままにします。
fpsFLOATはい25.0出力ビデオのフレームレート。範囲:0~999(ステップ0.01)。
filename_prefixSTRINGはいvideo/ComfyUI保存されるビデオファイルのプレフィックス。%date:yyyy-MM-dd%などの書式トークンや、%Empty Latent Image.width%のようなノード値参照を含めることができます。ノードは上書きを防ぐために自動的に一意のサフィックスを追加します。
formatCOMBOはいauto出力コンテナ形式。選択肢はシステムで利用可能なエンコーダに依存します(例:mp4avimkvwebm)。autoは最も広くサポートされている形式(通常はMP4)を選択します。
codecCOMBOはいauto使用するビデオコーデック。選択肢はシステムにインストールされているエンコーダに依存します(例:libx264libx265libvpxlibaom-av1)。autoは一般的に利用可能なコーデック(通常はH.264)を選択します。
video_vaeVAEはいvideo_latentをピクセルフレームにデコードするために使用するVAEモデル。潜在表現と互換性がある必要があります。
audio_vaeVAEいいえaudio_latentをオーディオサンプルにデコードするために使用するVAEモデル。audio_latentが接続されている場合は必須です。
tilingDYNAMICCOMBOはいビデオデコードのタイルモード。動的な選択肢には、disable(フルフレームデコード)、spatial(空間のみタイル)、temporal(時間のみタイル)、both(両方)などがあります。正確な選択肢はノードの実装と接続されたVAEに依存します。
tile_sizeINTはい512各空間タイルの幅/高さ。値を小さくするとピークメモリ使用量は減りますが、デコード時間が増加します。範囲:64~4096(ステップ32)。空間タイルが有効な場合のみ使用されます。
overlapINTはい64隣接する空間タイル間のオーバーラップ(ピクセル単位)。オーバーラップを大きくすると、タイル境界のシームが目立ちにくくなりますが、メモリと処理時間が増加します。範囲:0~4096(ステップ32)。
temporal_sizeINTはい4096時間タイルが有効な場合に一度にデコードするフレーム数。総フレーム数より大きい値を設定すると、実質的に時間タイルが無効になります。時間タイルをサポートするビデオVAEにのみ関係します。範囲:8~4096(ステップ4)。
temporal_overlapINTはい16連続する時間チャンク間のオーバーラップフレーム数。オーバーラップを大きくすると時間的なシームをスムーズにできますが、メモリ使用量とデコード時間が増加します。範囲:4~4096(ステップ4)。

タイルの動作

  • tilingが無効の場合、フレーム全体が一度にデコードされます – これが最もメモリを消費します。
  • 空間タイル(tiling = "spatial"または"both")は、各フレームをtile_size×tile_sizeの小さなタイルに分割し、それぞれ独立してデコードし、オーバーラップ領域をブレンドします。
  • 時間タイル(tiling = "temporal"または"both")は、フレームシーケンスをtemporal_sizeフレームのチャンクに分割し、各チャンクはtemporal_overlapフレームだけオーバーラップします。時間分解能をサポートするVAE(一部のビデオVAEなど)にのみ適用可能です。
  • ノードはオーバーラップ領域とタイル境界のブレンドを自動的に処理します。

出力

このノードには出力コネクションはありません。デコードされたビデオは、filename_prefixから構築されたパスを使用して直接ディスクに書き込まれます。ノードはワークフローにデータを返しません。

使用上の注意

  • メモリ管理: ノードはデコードされたフレームを生成と同時にディスクにストリーミングします。タイルを無効にしても、すべてのフレームが同時にメモリに蓄積されることはありません。タイルはさらにピークメモリを削減しますが、デコード速度は低下します。
  • オーディオ: オーディオを含めるには、audio_latentaudio_vaeの両方を指定します。オーディオVAEはオーディオ潜在空間(例:オーディオ拡散モデルからのもの)と一致している必要があります。オーディオ潜在が接続されていない場合、出力ビデオは無音になります。
  • フォーマットとコーデックのサポート: 利用可能なフォーマットとコーデックは、システムのFFmpeg(またはその他のエンコーダ)のインストール状況に依存します。手間をかけずに使うにはautoを使用してください。特定のコーデックやコンテナが必要な場合は、必要なエンコーダがインストールされていることを確認してください。
  • ファイル名プレフィックストークン: ComfyUIの書式構文を使用して、日付、時刻、ノード値を含めることができます。例:
    video/ComfyUI_%empty_latent_image.width%x%empty_latent_image.height%_%date:yyyy-MM-dd%
    とすると、video/ComfyUI_512x512_2025-01-15_0001.mp4のようなファイル名が生成されます。
  • タイルサイズの調整: ほとんどのユースケースでは、tile_sizeを512、overlapを64に設定すると、メモリと速度のバランスが良好です。メモリに余裕があればtile_sizeを大きく、VRAMが不足する場合は小さくしてください。
  • 時間タイル: これは、時間タイルをネイティブでサポートするVAEでのみ有効です。VAEがサポートしていない場合、時間パラメータを設定しても効果はありません。
  • ステップ刻み: すべての整数タイルパラメータは、ノードで定義されたステップサイズ(空間は32、時間は4)を強制します。ステップに一致しない値は自動的に丸められます。

コメント

GitHubでサインインしてディスカッションに参加しましょう。

コメントを読み込み中…
デコードしてビデオを保存 (DecodeAndSaveVideo) - ComfyUI-KJNodes | ComfyUI Wiki