たねやつの木

Photographs, Keyboards and Programming

【ComfyUI】AudioXで動画にマッチするリアルな背景音を自動生成する方法

こんにちは、たねやつです。

ComfyUIで生成した動画に、プロンプトから音声を付けられたら最高ですよね。今回は、カスタムノード「ComfyUI-AudioX」を使って、動画の内容に合わせた効果音やBGMを自動で生成し、動画と合成するまでの手順を解説します。

前の記事

www.taneyats.com

この記事でできること

  • ComfyUIに「ComfyUI-AudioX」カスタムノードを導入できる。
  • プロンプトに基づいて、動画に合わせた効果音やBGMを生成できる。
  • 生成した音声と元の動画を合成して、音付きの動画を完成させることができる。

必要なもの

手順

1. インストール

まずは必要なツールとカスタムノードをインストールします。

  1. ComfyUI-Managerを開く: ComfyUIのサイドメニューから「Manager」をクリックします。
  2. カスタムノードをインストール: 「Install Custom Nodes」ボタンを押し、ComfyUI-AudioX (作者: lum3on) を検索してインストールします。
  3. 依存関係のインストール:
    • ComfyUI-AudioXは内部でffmpegC++ Build Toolsに依存しています。もし環境にない場合は、上記「必要なもの」のリンクから事前にインストールしておいてください。
    • インストール後、ComfyUIを再起動し、ターミナルでpip install decordを実行します。

2. モデルのダウンロードと配置

次に、音声生成に必要なモデルをダウンロードします。

  1. Hugging Faceから以下の2つのファイルをダウンロードします。
    • model.ckpt
    • config.json
  2. ダウンロードしたファイルを、それぞれ以下の場所にリネームして保存します。
    • model.ckptComfyUI/models/diffusion_models/AudioX.ckpt
    • config.jsonComfyUI/models/diffusion_models/config.json

3. バグの修正(必要な場合)

現在のバージョンでは、処理完了時にcan't convert cuda:0 device type tensor to numpyというエラーが発生することがあります。音声ファイル自体は出力されるため、手動で動画と結合することも可能ですが、以下の修正でエラーを解消できます。

  1. custom_nodes\comfyui-videohelpersuite\videohelpersuite\nodes.py をテキストエディタで開きます。
  2. 590行目と716行目にある以下の2行を探します。
    # audio_data = audio['waveform'].squeeze(0).transpose(0,1)  
    # .numpy().tobytes()
  1. 上記の2行をコメントアウトするか削除し、以下の1行に書き換えます。
    audio_data = audio['waveform'].squeeze(0).transpose(0, 1).detach().cpu().numpy().tobytes()

これでエラーが出なくなるはずです。

4. ワークフローの使い方

ComfyUI-AudioXには、主に2つのワークフロー(ノード)があります。 - Txt2MusicAudio: テキストから音楽を生成します。 - VideoToAudio: 動画の内容に合わせた効果音や背景音を生成します。

今回はVideoToAudioを使って、既存の動画に音を付けてみます。

  1. 動画のロード: ワークフローの一番左にあるVHS_LoadVideoノードで、音を付けたい動画ファイルをアップロードします。
  2. プロンプトの入力: Prompt Helperノードに、生成したい音声のイメージを詳細なプロンプトとして記述します。今回は「蜂のいる場所でキーボードをタイピングする」動画なので、以下のように入力しました。

    ポジティブプロンプト:

ASMR keyboard typing sound with honeybee flying
  1. 生成の実行: キューを実行すると、音声生成と動画との合成処理が始まります。

5. 生成結果

生成された動画は、ComfyUIのoutputフォルダに出力されます。

実際に生成した動画がこちらです。

www.youtube.com

今回はタイピング音が少し控えめな印象でしたが、プロンプトを調整することで、よりイメージに近い音声を生成できるはずです。

最後に

今回は、ComfyUI-AudioXを使って動画に音声を付与する方法を紹介しました。プロンプト一つで動画の世界観に合った音を生成できるのは、非常に強力で面白い機能ですね。

皆さんもぜひ、自分の生成した動画に様々な音を付けて遊んでみてください。

次の記事

引用・参考