こんにちは、たねやつです。
ComfyUIで生成した動画に、プロンプトから音声を付けられたら最高ですよね。今回は、カスタムノード「ComfyUI-AudioX」を使って、動画の内容に合わせた効果音やBGMを自動で生成し、動画と合成するまでの手順を解説します。
前の記事
この記事でできること
- ComfyUIに「ComfyUI-AudioX」カスタムノードを導入できる。
- プロンプトに基づいて、動画に合わせた効果音やBGMを生成できる。
- 生成した音声と元の動画を合成して、音付きの動画を完成させることができる。
必要なもの
ソフトウェア・ツール
カスタムノード
ComfyUI-AudioX(lum3on作)
モデル
手順
1. インストール
まずは必要なツールとカスタムノードをインストールします。
- ComfyUI-Managerを開く: ComfyUIのサイドメニューから「Manager」をクリックします。
- カスタムノードをインストール:
「Install Custom Nodes」ボタンを押し、
ComfyUI-AudioX(作者: lum3on) を検索してインストールします。 - 依存関係のインストール:
ComfyUI-AudioXは内部でffmpegとC++ Build Toolsに依存しています。もし環境にない場合は、上記「必要なもの」のリンクから事前にインストールしておいてください。- インストール後、ComfyUIを再起動し、ターミナルで
pip install decordを実行します。
2. モデルのダウンロードと配置
次に、音声生成に必要なモデルをダウンロードします。
- Hugging Faceから以下の2つのファイルをダウンロードします。
model.ckptconfig.json
- ダウンロードしたファイルを、それぞれ以下の場所にリネームして保存します。
model.ckpt→ComfyUI/models/diffusion_models/AudioX.ckptconfig.json→ComfyUI/models/diffusion_models/config.json
3. バグの修正(必要な場合)
現在のバージョンでは、処理完了時にcan't convert cuda:0 device type tensor to numpyというエラーが発生することがあります。音声ファイル自体は出力されるため、手動で動画と結合することも可能ですが、以下の修正でエラーを解消できます。
custom_nodes\comfyui-videohelpersuite\videohelpersuite\nodes.pyをテキストエディタで開きます。- 590行目と716行目にある以下の2行を探します。
# audio_data = audio['waveform'].squeeze(0).transpose(0,1) # .numpy().tobytes()
- 上記の2行をコメントアウトするか削除し、以下の1行に書き換えます。
audio_data = audio['waveform'].squeeze(0).transpose(0, 1).detach().cpu().numpy().tobytes()
これでエラーが出なくなるはずです。
4. ワークフローの使い方
ComfyUI-AudioXには、主に2つのワークフロー(ノード)があります。
- Txt2MusicAudio: テキストから音楽を生成します。
- VideoToAudio: 動画の内容に合わせた効果音や背景音を生成します。
今回はVideoToAudioを使って、既存の動画に音を付けてみます。
- 動画のロード:
ワークフローの一番左にある
VHS_LoadVideoノードで、音を付けたい動画ファイルをアップロードします。 プロンプトの入力:
Prompt Helperノードに、生成したい音声のイメージを詳細なプロンプトとして記述します。今回は「蜂のいる場所でキーボードをタイピングする」動画なので、以下のように入力しました。ポジティブプロンプト:
ASMR keyboard typing sound with honeybee flying
- 生成の実行: キューを実行すると、音声生成と動画との合成処理が始まります。
5. 生成結果
生成された動画は、ComfyUIのoutputフォルダに出力されます。
実際に生成した動画がこちらです。
今回はタイピング音が少し控えめな印象でしたが、プロンプトを調整することで、よりイメージに近い音声を生成できるはずです。
最後に
今回は、ComfyUI-AudioXを使って動画に音声を付与する方法を紹介しました。プロンプト一つで動画の世界観に合った音を生成できるのは、非常に強力で面白い機能ですね。
皆さんもぜひ、自分の生成した動画に様々な音を付けて遊んでみてください。