【FaceFusion 3.4.1】高品質フェイススワップ完全ガイド|GUI設定まで解説【RunPod対応】

FaceFusion v3.4.1

FaceFusion v3.4.1

画像上の顔をそのままコピペするのではなく、顔の角度・骨格・目の距離・輪郭などを解析し、3D的な座標変換とマスク生成し、色補正や質感調整をリアルタイムで行う高精度なスワップ処理で、被写体の表情や照明、カメラアングルが多少異なっていても、自然で破綻の少ない顔入れ替えが可能になった、
最新の v3.4.1 では、処理エンジンが刷新され、マスクの滑らかさ・輪郭の馴染み方が大幅に改善されました。

未来

この記事では、AI補正と実写合成の中間にある“自然なフェイススワップが可能なFaceFusion v3.4.1について解説しています。

目次

高品質スワップ

FaceFusion swapper
元画像
元画像
Facefusion出力画像
Facefusion出力画像
アップスケール後
さらに他ツールでアップスケールしてみた
  • リリース時期:2024年10月頃
  • 開発元@facefusion(GitHub上のオープンソースプロジェクト)
  • 主目的:高品質な**顔スワップ(Face Swap)**を、オフライン環境でも実行可能にする。
  • 対応OS:Windows / macOS / Linux
  • 推奨GPU:NVIDIA系(CUDAサポート)
  • 実行モード
    • CLI(コマンドライン)
    • GUI(ブラウザ上で操作可能なUI)
    • Headless(サーバーやクラウド向け)

FaceFusionの仕組み

FaceFusionは「DeepFake」ではなく、顔の特徴量マッピング+ブレンド合成を行う設計。

  • 顔の骨格や角度が近いほど自然(でも変化が小さい)
  • 顔の骨格が違うほど変化が大きい(でも破綻しやすい)
    というトレードオフがあります。

v3.4.1 の主な変更点(v3.3以前との違い)

項目内容
モデル構造新しい InsightFace ベースの顔認識を標準採用。
以前より自然なマッピングと輪郭補正が可能に。
顔マスク「adaptive mask」機能が改善され、髪や輪郭の繋がりが自然に。
設定UIGUIモードでリアルタイムプレビューが追加(ブラウザ上でマスク確認可能)。
パフォーマンスマルチスレッド処理が最適化され、処理速度が約20〜30%向上。
実行プロバイダーONNXRuntime 1.18対応。CUDA 12.3でも安定動作。
出力“enhancer”(補正モジュール)の品質調整が細分化。4段階選択可能。

【クラウド環境】クラウドならFaceFusionはRunPodが使いやすい

クラウドなら、FaceFusionみたいな「重い処理を繰り返す系」は、RunPodのようなGPUが実用的です。

RunDiffusionも手軽にFaceFusionが試せますが、FaceFusion 3.4.x 系は構造自体がかなり軽量化・最適化されてるので、
RunPodとの相性がとてもいいです。

比較項目RunDiffusionRunPod
環境変更の自由度ほぼなしかなり自由
GPU選択自動手動で最適化できる
ファイル永続化なし(都度DL)あり(workspace保持)
コマンド利用不可JupyterLabやTerminalで可
学習・自動化向け
RunPod上のFaceFusion 3.4.1起動ログ。

先日は起動開始から、わずか約1分でコンテナがREADYに。2分の時もありましたが、比較的起動がスムーズです。
Jupyter Lab、code-server、FaceFusion本体が同時に立ち上がるため、すぐに作業を開始できまました。

RunpodのFacefusionテンプレート
Runpodのテンプレート
RunpodのFacefusionおすすめテンプレート
最新版:FaceFusion 3.4.1

【ローカル環境】インストール手順(Windows向け)

※Python 3.10 〜 3.11 を推奨
※VRAM 6GB以上推奨(動画スワップ時は12GB以上)
STEP
依存ツールを準備
  1. Python公式サイト から Python 3.10 をインストール。
    インストール時に「Add Python to PATH」にチェックを入れる。
  2. NVIDIA GPUを使う場合は CUDA Toolkit 12.1cuDNN を導入。
STEP
FaceFusionを入手
git clone https://github.com/facefusion/facefusion.git
cd facefusion
STEP
必要なライブラリをインストール
pip install -r requirements.txt

(環境によっては以下を追加)

pip install onnxruntime-gpu
STEP
起動

GUIモード(ブラウザUIを開く)で起動するには

python run.py gui

起動後、ブラウザが自動で開く

 http://127.0.0.1:7860/

GUIの使い方(v3.4.1)

FaceFusion 3.4.1の基本構成

項目役割
Source「入れ替えたい顔」=入れる側の顔(顔の提供元)
Target「置き換えたい画像」=入れられる側(背景や身体など)
Modelどの顔変換アルゴリズムを使うか(品質・速度に影響)
Face Enhancer変換後の顔を修正(ぼけ防止・補正)する
Segmentation Mask / Blending境界の自然さを制御(顔の繋ぎ目など)

設定

FaceFusoin UI
FaceFusoin UI

Processors

1️⃣ face_swapper

  • 役割:基本の顔置き換え。
  • 特徴
    • 入れ替えたい顔(Source)を対象画像(Target)にマッピング
    • 誰の顔かハッキリわかるように置き換える
  • 備考:一番最初に実行するといい

2️⃣ age_modifier

  • 役割:顔の年齢調整
  • 特徴
    • 若返らせる/老けさせるなどの変化が可能
    • 顔特徴は保ったまま年齢感を調整
  • 使いどころ
    • キャラクターや人物を年齢差でバリエーション生成したい時

3️⃣ deep_swapper

  • 役割:DeepFake寄りの顔スワップ
  • 特徴
    • 滑らかで自然な合成が可能
    • 顔特徴が少し弱まる場合あり
  • 備考:face_swapperより後に置くと自然さが増す

4️⃣ expression_restorer

  • 役割:表情補正
  • 特徴
    • 元の表情や笑顔・口の動きなどを復元
    • 顔の違和感を減らす
  • 使いどころ
    • 動画や表情差分で自然さを重視したい時

5️⃣ face_debugger

  • 役割:デバッグ用
  • 特徴
    • 顔検出や置換の過程を可視化
    • マスクや検出ポイントを確認可能
  • 使いどころ
    • 初めての顔や難しい角度の画像を処理するとき
  • 備考:最終生成には通常OFF

6️⃣ face_editor

  • 役割:手動または自動で顔の微調整
  • 特徴
    • 顔の位置や輪郭を微調整
    • 不自然な部分を補正できる

7️⃣ face_enhancer

  • 役割:顔ディテール補正
  • 特徴
    • 目・口・肌のディテールを強化
    • Real-ESRGANなどの補正と同等の役割
  • 使いどころ
    • 最終出力を高画質にしたいとき

8️⃣ frame_colorizer

  • 役割:動画のフレームや静止画を着色
  • 特徴
    • 白黒や淡い画像に色をつける
  • 使いどころ
    • 古い動画やモノクロ素材のカラー化

9️⃣ frame_enhancer

  • 役割:フレーム全体の画質向上
  • 特徴
    • シャープネスや解像度改善
    • 背景や顔以外の部分も鮮明に

🔟 lip_syncer

  • 役割:口パク同期
  • 特徴
    • 音声に合わせて口の動きを調整
  • 使いどころ
    • 動画の声に合わせた自然な口の動きを作りたい時

補足

  • 順番が大事
    • 基本は face_swapper → deep_swapper → expression_restorer → face_enhancer
    • デバッグ系や補助系は最後または必要時に挟む
  • 処理が多いほど時間がかかる
    • 特に deep_swapper / frame_enhancer / lip_syncer は重め

1. FACE SWAPPER WEIGHT(顔の置き換え強度)

  • 0.5→ これは「半分だけ入れ替える」状態です。
    値を 0.7~1.0 に上げると、よりしっかりと入れ替わります。

おすすめ:
まず 0.8位 に設定して試していく。


2. FACE SELECTOR MODE

  • reference→ このモードでは、REFERENCE FACE に指定した画像をもとに入れ替える。
    ただし REFERENCE FACE が未設定 or 検出失敗すると効果が薄くなる。

確認方法:

  • 「REFERENCE FACE」欄にきちんと参照画像が読み込まれているか?
  • その画像で顔が認識されているか?(face_debugger をONにして確認)

3. FACE DETECTOR SCORE

  • 0.5→ 顔検出のしきい値。高すぎると顔を認識できず、処理がスキップされることがあり。
  • 0.3〜0.4 に下げてみると改善する場合があり。

4. REFERENCE FACE DISTANCE

  • 0.3
  • → 顔が似ていない場合、この値が低いと「別人」と判断され、入れ替えが弱まる。
  • 顔の骨格が違う場合は 0.4〜0.6 に上げてみる。

5. FACE MASK BLUR / PADDING

  • FACE MASK BLUR 0.3
  • 境界が自然に見える
    ぼかしすぎると「元の顔が残る」ように見えることも。

対策:
FACE MASK BLUR 0.0 くらいを試してみると、どの範囲が置き換わっているか確認しやすい。


6. PROCESSORS の優先度

  • face_swapper の後に face_enhancer を有効にしてみる。
    ただし、deep_swapper と併用すると干渉する場合もあり。

おすすめ構成:

face_swapper
face_enhancer
expression_restorer(必要なら)

→まずはシンプルに確認するのがおすすめです。


7. VIDEO MEMORY STRATEGY

  • strict→ VRAMが少ないGPUでは、強制的にメモリ制限がかかって処理が軽減される。
  • VRAM に余裕があるなら moderate に変更すると安定度と精度が上がる。

手順(静止画のFace Swap)

STEP
Source画像をアップロード
  • はっきり顔が映っている正面のものが最適。
  • 顔が小さかったり角度が大きいと、認識されないことがあります。
STEP
Target画像をアップロード

ここに「Sourceの顔」が置き換わります。

STEP
Modelを選ぶ
  • 例:
    • inswapper_128.onnx → 最も自然で高品質(推奨)
    • simswap.onnx → 少し古いが速い
  • v3.4.1では inswapper_128 がデフォルトで最も安定しています。
STEP
Face Detection & Alignment をオン
  • 「顔を検出して正しい向きに合わせる」設定。
  • 自然な結果を得たいときは RetinaFace + Face Alignment を有効にします。
STEP
Run / Generate

「Process」ボタンを押して結果を確認。


おすすめ設定

項目おすすめ値
FACE SWAPPER WEIGHT0.8〜1.0
FACE DETECTOR SCORE0.35
REFERENCE FACE DISTANCE0.5
FACE MASK BLUR0.0〜0.1
VIDEO MEMORY STRATEGYmoderate

出力フォルダ構造(デフォルト)

facefusion/
├── input/
│   ├── source.jpg
│   └── target.jpg
├── output/
│   ├── result_001.jpg
│   └── result_001_log.txt
└── models/
    ├── detection/
    ├── swap/
    └── enhancement/

Tips

  • 動画を扱う場合
    フレームごとにスワップするため、非常に時間がかかる。
    --batch-size 2 などで並列数を増やすと高速化可能(VRAMに余裕があれば)。
  • 顔を選択して限定的にスワップ
    GUIの「Face Selector」でターゲットを選ぶと、複数人写っている画像でも1人だけ置換できる。
  • 出力補正(Postprocess)
    “Face enhancer” を併用することで、肌質や解像度を補正できます(Real-ESRGANに近い効果)。
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次