オーディオリアクティブマスク拡張 | 驚異的なアニメーション
このComfyUIオーディオリアクティブマスク拡張ワークフローは、ビデオの被写体を創造的に変身させる力を提供します。個人やグループのパフォーマーに、音楽のリズムに完璧に同期して拡大および収縮する動的で反応の良いオーラを包み込むことができます。この効果は、ビデオに魅力的な視覚的次元を追加し、全体的なインパクトとエンゲージメントを向上させます。ComfyUI Audioreactive Mask Dilation ワークフロー
ComfyUI Audioreactive Mask Dilation 例
ComfyUI Audioreactive Mask Dilation 説明
ダンサーなどの被写体を動的なオーラでリズムに合わせて拡大および収縮させることで、驚異的なビデオアニメーションを作成します。このワークフローを使用して、単一の被写体または複数の被写体を処理することができます。
オーディオリアクティブマスク拡張ワークフローの使用方法:
- インプットセクションに被写体のビデオをアップロードします。
- 最終ビデオの幅と高さを選択し、'every_nth'で入力ビデオのフレームをスキップする頻度を設定します。'frame_load_cap'でレンダリングするフレーム数を制限することもできます。
- ポジティブおよびネガティブプロンプトを入力します。シーンの切り替えタイミングに合わせてバッチフレームタイムを設定します。
- デフォルトのIPアダプターマスクカラーごとに画像をアップロードします:
- 赤 = 被写体(ダンサー)
- 黒 = 背景
- 白 = 白のオーディオリアクティブ拡張マスク
- 'Models'セクションで良好なLCMチェックポイント(私はMachine DelusionsのParadigmLCMを使用します)を読み込みます。
- モデルローダーの下のLoraスタッカーを使用して任意のLoraを追加します。
- キュープロンプトをクリックします。
入力

- Load Video (Upload) ノードに希望する被写体ビデオをアップロードします。
- 左上の2つの入力を使用して出力の幅と高さを調整します。
- every_nth はフレームをどの程度の頻度で使用するかを設定します(2 = 2フレームごとに)。デフォルトでは1に設定されています。
- skip_frames はビデオの最初のフレームをスキップするために使用されます。(100 = 入力ビデオの最初の100フレームをスキップ)。デフォルトでは0に設定されています。
- frame_load_cap は入力ビデオから読み込む総フレーム数を指定するために使用されます。設定をテストする際には低く保つのが最善です(例: 30 - 60)そして最終ビデオをレンダリングする際には増やすか0(フレームキャップなし)に設定します。
- 右下の数値フィールドは、アップロードされた入力ビデオに関する情報を表示します: 総フレーム数、幅、高さ、およびFPS(上から下へ)。
- すでに生成された被写体マスクビデオがある場合は、'Upload Subject Mask'セクションをミュート解除してマスクビデオをアップロードします。処理時間を節約するためにオプションで'Segment Dancer'セクションをミュートすることができます。
- 時々、セグメント化された被写体が完璧でない場合があります。その場合は、右下のプレビューボックスを使用してマスクの品質を確認します。その場合、'Florence2Run'ノードでプロンプトを調整して、'head'、'chest'、'legs'などの異なる体の部分をターゲットにして、より良い結果が得られるか確認します。
プロンプト

- バッチフォーマットを使用してポジティブプロンプトを設定します:
- 例: '0': '4k, masterpiece, 1girl standing on the beach, absurdres', '25': 'HDR, sunset scene, 1girl with black hair and a white jacket, absurdres', …
- ネガティブプロンプトは通常のフォーマットで、必要に応じてエンベディングを追加します。
オーディオ処理

- このセクションでは、入力ビデオからオーディオを取り込み、ステム(ベース、ドラム、ボーカルなど)を抽出し、入力ビデオフレームと同期した正規化された振幅に変換します。
- amp_control = 振幅が移動できる総範囲。
- amp_offset = 振幅が取ることができる最小値。
- 例: amp_control = 0.8 および amp_offset = 0.2 は、信号が0.2から1.0の間で移動することを意味します。
- 時々、ドラムステムには実際のベースノートが含まれている場合があります。各ステムをプレビューして、マスクに最適なものを確認します。
- グラフを使用して、そのステムの信号がビデオの期間中にどのように変化するかを明確に理解します。
マスク拡張

- 各色のグループは、それによって生成されるマスクの色に対応します。
- 次のノードを使用して、拡張マスクの最小半径および最大半径、ならびにその形状を設定します:

- 形状: 'circle' は最も正確ですが、生成に時間がかかります。最終レンダリングを行う準備ができたらこれを設定します。'square' は計算が速いですが、精度が低く、ワークフローをテストする際やIPアダプター画像を決定する際に最適です。
- max_radius: 振幅値が最大(1.0)の場合のマスク半径(ピクセル単位)。
- min_radius: 振幅値が最小(0.0)の場合のマスク半径(ピクセル単位)。
- すでに生成された合成マスクビデオがある場合は、'Override Composite Mask' グループをミュート解除してアップロードします。処理時間を節約するために、上書きする場合は拡張マスクグループをバイパスすることをお勧めします。
モデル

- チェックポイントには良好なLCMモデルを使用します。私はMachine DelusionsのParadigmLCMをお勧めします。
- モデルマージスタックを使用して複数のモデルを組み合わせ、さまざまな興味深い効果を得ることができます。有効なモデルの重みが1.0になるようにしてください。
- 最終結果をさらに強化するために、AnimateLCM_sd15_t2v_lora.safetensorsを低い重み(0.18)で指定することもできます。
- モデルローダーの下のLoraスタッカーを使用して追加のLoraをモデルに追加します。
AnimateDiff

- 私が使用したもの(LiquidAF-0-1.safetensors)の代わりに異なるMotion Loraを設定します。
- 出力の動きの量を増減するためにScaleおよびEffectのフロートを増減します。
IPアダプター

- ここでは、拡張マスクごとに背景をレンダリングするために使用される参照画像を指定できます。また、ビデオの被写体のための参照画像も指定できます。
- 各グループの色は、それがターゲットとするマスクを表します:
赤、緑、青:
- 被写体マスクの参照画像。
黒:
- 背景マスク画像、背景の参照画像をアップロードします。
白、黄、マゼンタ、シアン:
- 拡張マスクの参照画像、それぞれの色の拡張マスクに使用する参照画像をアップロードします。
ControlNet

- このワークフローでは、AD、Lineart、QR Code、Depth、OpenPoseを含む5つの異なるcontrolnetを使用します。
- controlnetへのすべての入力は自動的に生成されます。
- 必要に応じて、Lineart、Depth、およびOpenpose controlnetの入力ビデオを上書きすることができます。以下のように'Override 'グループをミュート解除します:

- 上書きする場合、処理時間を節約するために'Generate'グループもミュートすることをお勧めします。
ヒント:
- Ksamplerをバイパスし、フル入力ビデオでレンダリングを開始します。すべてのプリプロセッサービデオが生成されたら、それらを保存してそれぞれの上書きにアップロードします。これにより、ワークフローをテストする際に各プリプロセッサービデオを個別に生成する必要がなくなります。
サンプラー

- デフォルトでは、テスト中に処理時間を節約するためにHiRes Fixサンプラーグループがミュートされています。
- 拡張マスク設定を試す際には時間を節約するためにサンプラーグループもバイパスすることをお勧めします。
- 最終レンダリングでは、HiRes Fixグループのミュートを解除し、最終結果をアップスケールして詳細を追加します。
出力

- 出力グループは2つあります: 左は標準サンプラー出力用、右はHiRes Fixサンプラー出力用です。
著者について
Akatz AI:
- ウェブサイト:
- http://patreon.com/Akatz
- https://civitai.com/user/akatz
- https://www.youtube.com/@akatz_ai
- https://www.instagram.com/akatz.ai/
- https://www.tiktok.com/@akatz_ai
- https://x.com/akatz_ai
- https://github.com/akatz-ai
連絡先:
- Email: akatz.hello@gmail.com