facefusionはとても手軽に動画の顔を写真を入れ替えることのできるツールです。
とても簡単に設定できるのですが、いくつかエラーが出た時の対応を解説します!
Contents
- 1 インストールと起動
- 2 ModuleNotFoundError: No module named 'onnxruntime'
- 3 ModuleNotFoundError: No module named 'cv2.typing'
- 4 [FACEFUSION.CORE] FFMpeg is not installed
- 5 DeprecationWarning: concurrency_count has been deprecated. Set the concurrency_limit directly on event listeners e.g. btn.click(fn, ..., concurrency_limit=10) or gr.Interface(concurrency_limit=10). If necessary, the total number of workers can be configured via max_threads in launch()
インストールと起動
1 2 3 |
git clone https://github.com/facefusion/facefusion // 実行 python run.py |
やることはシンプルで、cloneしてきて、スクリプトを実行するだけです。
Python環境によっては細々したエラーが出ますが、大きめの問題はなく割とすんなり起動します。
エラーに関しては下記に記載しておきます。
起動が完了して、指定されたページにアクセスすると、以下のようになります。
ModuleNotFoundError: No module named 'onnxruntime'
モジュールがない系のエラーなので、インストールすれば一発で解決します
1 |
conda install conda-forge::onnxruntime |
ModuleNotFoundError: No module named 'cv2.typing'
フラットに考えると、conda install enriquesmarquez::cv2なんですが、これだと解決しません。
open-cvのエラーのようで、4opencv-python==4.9.0.80をインストールすることで解決します。
requirements.txtに書いてあるのですが、すでにインストール済みの人はバージョンを変える必要があります。
1 |
pip install opencv-python==4.9.0.80 |
[FACEFUSION.CORE] FFMpeg is not installed
ffmpegがないというエラーです。
brewでインストールしてあげることで解決します。
1 |
brew install ffmpeg |
DeprecationWarning: concurrency_count has been deprecated. Set the concurrency_limit directly on event listeners e.g. btn.click(fn, ..., concurrency_limit=10) or gr.Interface(concurrency_limit=10). If necessary, the total number of workers can be configured via max_threads in launch()
gradioのバージョンが上がったことによって、非推奨の関数が使われていることが原因です。
concurrency_count が使われている箇所を見つけ、全部concurrency_limit に置き換えることでも解決できますが、、影響範囲が大きかったので、gradioのバージョンを下げて解決しました。
バージョンを下げても特に問題はおきませんよ。
1 |
pip install gradio==3.50.2 |