smthemex/ComfyUI_Sonic
Sonic is a method about ' Shifting Focus to Global Audio Perception in Portrait Animation',you can use it in comfyUI
ComfyUI Sonic – ComfyUIのための音声駆動型ポートレートアニメーション
概要
Sonicは、音声トラックから静止画のポートレートをアニメーション化し、顔を「喋らせる」あるいは音に合わせた感情を表現させる研究手法です。このフォークでは、生成AIワークフローを構築するための視覚的なノードベースインターフェースである ComfyUI 用のカスタムノードとしてSonicパイプラインをパッケージ化しています。
主要コンポーネント
- 音声から潜在空間への変換モデル (
audio2bucket.pth,audio2token.pth):波形をビデオモデルが理解できるトークンシーケンスに変換します。 - UNetビデオ拡散モデル (
unet.pth):音声トークンを条件としてフレームを生成します。 - 顔検出器 (
yoloface_v5m.pt):ポートレート領域を特定します。 - OpenAI Whisper-tiny:音声の文字起こしに使用します(オリジナルのSonicパイプラインで使用)。
- RIFEオプティカルフローモデル (
flownet.pkl):時間的な平滑化に使用します。 - オプションの Stable Video Diffusion (SVD) チェックポイント (
svd_xt*.safetensors):より高品質な動画生成に使用します。
使用方法
- リポジトリを
ComfyUI/custom_nodeにクローンします。 pip install -r requirements.txtでPythonの依存関係をインストールします。- READMEに記載されているモデルファイルをダウンロードし、
ComfyUI/models/sonic/に配置します(SVDチェックポイントはComfyUI/models/checkpointsに配置)。 - ComfyUIのグラフエディタで Sonic ノードを追加します。
- 音声ファイル(またはWhisperで生成したトランスクリプト)を入力します。
- duration(秒)を設定して出力動画の長さを制御します。
- GPUメモリが不足する場合は image_size を調整してください。値を小さくすると解像度が下がります。
- ノードは音声と同期して動くポートレートの短い動画を出力します。
このフォークの変更点
torchaudio.saveをsoundfile.writeに置き換え、新しいPyTorchビルドでのABI不一致を回避しました。cuda:0を明示的に使用する必要があるマシンへの修正を行いました。- BF16サポート、初回実行時の12GB GPU OOM、およびApple-MPS (Mac) 互換性への回避策を追加しました。
- UIの調整:「frame number」を duration に名称変更、25 fps以外の入力に対するバッチサイズ処理、非正方形の出力画像のサポートを追加しました。
典型的なワークフロー例
READMEには3つのワークフローのスクリーンショット例が掲載されています。ユーザーはポートレート画像を読み込み、音声ファイルを接続し、希望の時間を設定してグラフを実行することで、短いアニメーションクリップを取得できます。
対象ユーザー
- コードを書かずに、AI駆動のリップシンクや表情豊かなアバター動画を素早く作成したいクリエイター。
- コマンドラインスクリプトよりも視覚的なUIを好み、音声駆動型ビデオ拡散を実験している研究者。
- ComfyUIで他の拡散タスクを行っており、音声駆動型アニメーションノードをパイプラインに追加したい愛好家。
引用
このノードを使用した作品を公開する場合は、オリジナルのSonic論文 (arXiv:2411.16331) および関連するRealTalk論文 (arXiv:2406.18284) を引用してください。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト