WebUIの見方から顔スワップの実行手順まで。
画像・動画それぞれのやり方をステップごとに解説します。
// 01. WebUIを知る
FaceFusionのWebUIはブラウザで操作します(デフォルト: http://localhost:7860)。主なパネルは以下のとおりです。
スワップ元の顔画像をアップロードするエリア。自分の顔や任意の顔写真を指定します。
顔を差し替えたい対象の画像・動画をアップロード。ここで指定した顔がSourceに置き換わります。
Frame Processor(処理方法)・Enhancer・顔認識の設定など各種オプションを指定します。
出力先パスの指定と実行ボタン。プレビューで結果を確認してからの保存も可能です。
Source に顔写真、Target に別の写真をドラッグ&ドロップするだけで、すぐに顔スワップを試せます。まずは設定をいじらずデフォルトで試してみましょう。
// 02. 顔スワップの手順
最も基本的な「画像→画像」の顔スワップ手順です。
「Source」エリアに顔写真をアップロード。正面顔・明るい照明・高解像度のものが最もよい結果になります。顔が1人だけ写っているものが理想です。
「Target」エリアに顔を差し替えたい画像をアップロード。複数人が写っている場合は全員の顔が対象になります(設定で変更可能)。
Options内の「Frame Processors」で face_swapper にチェックが入っているか確認。必要に応じて face_enhancer も有効にしましょう。
「Preview」ボタンを押すと、出力せずに結果を確認できます。品質・自然さを確認してから本出力するのがおすすめです。
「Output Path」に保存先フォルダ・ファイル名を指定し、「Start」ボタンで処理開始。完了後に指定フォルダに画像が保存されます。
Source = 「この顔にしたい」という"顔のデータ元"。
Target = 「この写真の顔を変えたい」という"加工対象"。
混乱しやすいので覚えておきましょう。
// 03. ソース画像の選び方
スワップ品質はSource画像の質に大きく依存します。以下を参考に選びましょう。
| 条件 | おすすめ | 避けるべき |
|---|---|---|
| 顔の向き | 正面向き | 真横・斜め45度以上 |
| 解像度 | 512px以上の顔サイズ | 小さすぎる・ぼやけた顔 |
| 照明 | 均一で明るい照明 | 逆光・強い影 |
| 表情 | 自然な表情・無表情 | 極端な歪み・変顔 |
| 遮蔽物 | 顔全体が見えている | サングラス・マスク・前髪で隠れている |
FaceFusionは複数のSource画像を指定できます。正面・斜め・笑顔など異なるカットを2〜5枚用意すると、顔認識精度と合成品質が向上します。
// 04. 動画への顔スワップ
Targetに動画ファイル(.mp4、.movなど)をアップロードするだけで、動画版の顔スワップも可能です。ただし画像より大幅に処理時間がかかります。
MP4、MOV、AVI、MKVなど主要な動画形式に対応。出力もMP4で書き出されます。
入力動画のFPSを維持して出力。音声もそのまま保持されます。
動画処理にはffmpegが必要です。インストールされていない場合はエラーが出ます。
動画出力クオリティはOptions内の output-video-quality で1〜100で指定。85〜95が品質とファイルサイズのバランスの良い設定です。
GPUを使う場合は h264_nvenc(NVIDIA)や h264_videotoolbox(Mac)を選ぶと速度が大幅向上します。対応していない場合は libx264(CPU)を選択。
| 動画の長さ・解像度 | NVIDIA GPU(8GB) | CPU のみ |
|---|---|---|
| 10秒 / 720p / 30fps | 約30〜60秒 | 約10〜20分 |
| 1分 / 1080p / 30fps | 約5〜10分 | 約1〜3時間 |
| 5分 / 1080p / 30fps | 約20〜40分 | 数時間〜 |
最初は短い動画(5秒程度)で設定を確認してから長い動画を処理しましょう。設定ミスで数十分無駄にするのを防げます。
// 05. 出力設定
設定が多くて迷ったときのために、最初に押さえるべき項目をまとめました。
保存先フォルダとファイル名を指定。指定しない場合はFaceFusionフォルダ内のoutputsに保存されます。
動画を処理する際に中間フレームを保持するか。ディスク容量と相談しながら設定。
many(全員の顔)/ one(最初に検出した1人)/ specific(特定の顔のみ)から選択。
顔として認識する信頼度のしきい値(0〜1)。低すぎると誤検出、高すぎると顔を見逃します。デフォルト0.5が安定。