【上級編】ReActor徹底解説!
顔交換(フェイススワップ)でAI変身動画の表現力を極める
ReActorとは?
ReActorは、画像生成AI「Stable Diffusion」の拡張機能の一つで、主に画像や動画内の顔を、指定した別の顔と高精度に入れ替える(フェイススワップする)ために使用されます。
元々は「Roop」という別の拡張機能から派生・発展したもので、より多くの機能、高い安定性、そして使いやすいインターフェースを提供しています。生成する画像全体の品質を保ちつつ、自然な顔の入れ替えを実現できるため、AIアートや画像編集の分野で広く活用されています。
ReActorの基本的な使い方
ReActorを使い始めるための基本的なステップを紹介します。
- ReActorの有効化:Stable Diffusion WebUIのtxt2imgまたはimg2imgタブを開き、下部にある「ReActor」のセクションを展開(▼をクリック)します。そして、「Enable」のチェックボックスをオンにします。これでReActorが有効になります。
- ソース顔の準備:入れ替えたい人物の顔がはっきりと写っている画像(ソース画像)を用意します。
- ソース画像のアップロード:ReActorの「Main」タブ内にある「Select Source」で「Image(s)」が選択されていることを確認します。次に、その下にある「Single Source Image」のエリアに、用意したソース画像をドラッグ・アンド・ドロップするか、クリックしてファイルを選択しアップロードします。
- 顔の修復設定(推奨):「Restore Face」の項目で「CodeFormer」または「GFPGAN」を選択します。これにより、入れ替え後の顔の品質が向上し、より自然な仕上がりになります。どちらが良いかは元画像や好みによりますので、試してみてください。「Restore Face Visibility」スライダーで修復の強度を調整できます(通常は0.8〜1.0程度)。
- その他の設定(必要に応じて):「Source Image Face Index(es)」や「Target Image Face Index(es)」で、画像内に複数の顔がある場合に処理対象の顔を指定できます。通常はデフォルトの「0」のままで問題ありません。
- 画像生成の実行:Stable Diffusionの通常の画像生成と同様に、プロンプトなどを設定し、「Generate」ボタンを押します。生成された画像には、ソース画像の顔が適用されているはずです。
これがReActorの最も基本的な使い方です。まずはこの流れで、手軽に顔交換を試してみてください。
ReActorの便利な使い方と応用
基本操作に慣れたら、さらにReActorを便利に使いこなすための応用的な機能も活用してみましょう。
フェイスモデルの事前登録と活用
毎回同じ人物の画像をアップロードするのは手間がかかります。そこで便利なのが「フェイスモデル」機能です。
フェイスモデルの作成:
- ReActorの「Tools」タブを開きます。
- 「Face Models」セクションで「Single」が選択されていることを確認します。
- 「Load an image to build -Face Model-」と書かれたエリアに、モデル化したい人物の顔がはっきりと写っている画像をドラッグ・アンド・ドロップするか、クリックしてアップロードします。
- 「Face Model Name」の入力欄に、作成するモデルを識別するための任意の名前(例:my_character_face)を入力します。
- 「Build and Save」ボタンをクリックします。これで顔モデルが作成され、指定した場所に保存されます(通常は models/reactor/faces フォルダ内)。
フェイスモデルの使用:
- ReActorの「Main」タブに戻ります。
- 「Select Source」の選択肢の中から「Face Model」を選びます。
- すると、その右隣に「Choose Face Model」というドロップダウンメニューが表示されます。このメニューをクリックし、先ほど作成・保存した顔モデルの名前を選択します。
- これで、アップロードした画像の代わりに、保存済みの顔モデルがソース顔として使用されるようになります。
これにより、同じ顔を繰り返し使用する際の効率が大幅に向上し、一貫性のある顔交換が可能になります。
複数画像からより高品質なフェイスモデルを作成(ブレンド機能)
ReActorの「Blend」機能は、複数の顔画像の特徴を組み合わせて、より高度なフェイスモデルを作成するための強力なツールです。この機能は、主に以下の二通りの活用方法があります。
- 同一人物の多様な表現を捉えたモデル作成:同じ人物でも、異なる表情、角度、照明条件の画像を複数使用することで、より汎用性が高く、様々なターゲット画像に対して自然に馴染みやすいフェイスモデルを作成できます。また、特定の表情のニュアンスをモデルに反映させることも可能です。
- 異なる人物の特徴を組み合わせた新しい顔の生成:複数の異なる人物の顔画像をブレンドすることで、それぞれの特徴を部分的に受け継いだ、全く新しい架空の人物のフェイスモデルを創り出すこともできます。これにより、独創的なキャラクターを生み出すといったクリエイティブな用途にも活用できます。
ブレンドモデルの作成手順:
- ReActorの「Tools」タブを開きます。
- 「Face Models」セクションで「Blend」を選択します。
- 「Load Images to build -Blended Face Model-」と書かれたエリアに、ブレンドしたい複数の顔画像(同一人物の異なるバリエーション、または異なる人物の画像)をドラッグ・アンド・ドロップするか、クリックしてアップロードします。
- 「Compute Method」で、アップロードした複数の顔画像をどのようにブレンドするかの計算方法を選択します:選択肢には「Mean(平均)」、「Median(中央値)」、「Mode(最頻値)」などがあります。一般的には「Mean」が推奨され、バランスの取れた特徴を持つモデルが作成されやすいです。異なる人物をブレンドする際は、どの手法が意図した結果に近いか試行錯誤が必要になる場合があります。
- (オプション)「Check -Embedding Shape- on Similarity」:実験的な機能で、これをオンにすると、最初にリストされた顔の形状と大きく異なる顔をブレンド処理から除外しようと試み、形状の不一致による不自然さを軽減する可能性があります。
- 「Face Model Name」の入力欄に、作成するブレンドモデルを識別するための任意の名前を入力します。
- 「Build and Save」ボタンをクリックします。これで複数の画像から特徴がブレンドされた顔モデルが作成・保存されます。
期待できる効果:
- 同一人物の場合:単一画像から作成したモデルよりも、様々なターゲット画像に対して自然に馴染みやすくなったり、特定の表情のニュアンスをモデルに反映させたりすることができます。
- 異なる人物をブレンドした場合:それぞれの人物の特徴を組み合わせた、ユニークで新しい顔立ちのモデルを生成できます。
ソース顔画像のフォルダ指定で効率化
多数のソース顔画像を管理・使用したい場合には、個別にアップロードする代わりにフォルダを指定する方法が便利です。
フォルダ指定の方法:
- 「Main」タブの「Select Source」で「Folder」を選択します。
- 「Source Folder」の入力欄に、ソース顔画像が保存されているフォルダのフルパスを貼り付けます。
- ランダム選択オプション:「Randomly select an image from the path」にチェックを入れると、指定したフォルダ内の画像からランダムに1枚がソース顔として使用されます。これにより、手軽に多様なバリエーションの顔交換を試すことができます。
- ハッシュのクリア:「Folder」オプション使用時にも「Clear Source Images Hash」ボタンが表示されることがあります。新しい画像を追加したり、設定を変更したりした際に、以前のキャッシュが影響して意図しない顔が使われる場合は、このボタンでハッシュをクリアしてください。
これらの応用機能を使いこなすことで、ReActorでの顔交換作業がよりスムーズでクリエイティブなものになるでしょう。
ReActor 設定詳細
ReActorの各設定項目について、タブごとに詳しく解説します。バージョンによって若干の差異がある可能性がある点はご了承ください。
Main(メイン)タブ
顔交換の基本的な操作と、最も頻繁に使用する設定が集約されています。
- Enable(有効化):このチェックボックスをオンにすることで、ReActorの機能が有効になります。顔交換を行いたい場合は必ずオンにしてください。
- Select Source(ソースの選択):入れ替える顔の元を指定します。
- Single ・ Multiple(単一 ・ 複数):主にソース画像が「Image(s)」の場合に、単一の画像を使用するか、複数の画像を扱うかを選択します。
- Source Image(ソース画像 表示エリア):「Image(s)」を選択した場合、ここにソース顔となる画像をドラッグ・アンド・ドロップするか、クリックしてアップロードします。
- Target Image(ターゲット画像 表示エリア):(この項目は明示的に存在しない場合もありますが、Stable Diffusionの txt2img や img2img で生成される画像が実質的なターゲットとなります。)
- Save the original image(s) made before swapping(スワップ前に元画像を保存):
- Apply this option if you see some pixelation around face contours (顔の輪郭周辺にピクセレーションが見られる場合にこのオプションを適用):
- Source Image (above) Face Index(es)(ソース画像の顔番号):
- Target Image (result) Face Index(es)(ターゲット画像の顔番号):
- Gender Detection (Source)(性別検出 - ソース):
- Gender Detection (Target)(性別検出 - ターゲット):生成された画像(ターゲット画像)内の顔に対して、同様に性別を指定して入れ替え対象をフィルタリングします。
- Restore Face(顔の修復):入れ替えた顔の品質を向上させるための後処理機能です。
- Restore Face Visibility(顔修復の可視性・強度):スライダーで顔修復処理の強度(影響度)を調整します。値が高いほど修復効果が強く適用されます。1.0に近いほど効果が最大になります。
- CodeFormer Weight (Fidelity)(CodeFormer ウェイト - 忠実度):「Restore Face」で CodeFormer を選択した場合に表示されます。0(元から遠い、最大修復)から1(元に近い、最小修復)の範囲で調整し、0に近いほどオリジナルの顔から離れた大胆な修復を行い(元の特徴が失われやすい)、1に近いほどオリジナルの顔の特徴を維持しようとします(修復効果は控えめになるが、元顔のニュアンスは残りやすい)。デフォルトは 0.5。
Detection(検出)タブ
画像内から顔をどのように検出するかの詳細設定です。
- Detection Model(検出モデル):顔検出に使用するAIモデルを選択します。通常はデフォルトで問題ありませんが、検出精度に問題がある場合に他のモデルを試す価値があります。
- Threshold(しきい値):顔として認識するための確信度の最小値を設定します。値を高くすると、より明確に顔と判断できるものだけを検出し、誤検出を減らせますが、検出漏れも増える可能性があります。値を低くすると、より多くの顔候補を検出しますが、顔ではないものを顔として誤検出する可能性も高まります。デフォルトは 0.5 前後。
- Max Faces(最大顔数):1枚の画像から検出する顔の最大数を設定します。「0」を入力すると無制限になります。
- Face Area (Min・Max)(顔面積 - 最小・最大):検出する顔の画像の総面積に対する相対的な最小サイズと最大サイズを指定できます。非常に小さい顔や大きすぎる顔を除外したい場合に調整します。
- Confidence(信頼度 - 複数顔の場合のソート基準):(この項目はUIに直接ない場合もありますが、内部的な処理順に関連します)複数の顔が検出された場合に、どの顔を優先的に処理するか(例えば、顔の検出信頼度が高い順など)の基準です。
- Hashed images get processed with previously set detection parameters...:一度処理した画像の検出パラメータはハッシュ(キャッシュ)として保存され、次回同じ画像を処理する際の速度を向上させます。検出設定を変更した場合は、このハッシュをクリアする必要があります。
- Clear Source Images Hash (Single ・ Multiple)(ソース画像ハッシュをクリア):ソース画像のキャッシュをクリアします。(MainタブのFolder選択時にも同様のボタンが表示されることがあります)
- Clear Target Image Hash(ターゲット画像ハッシュをクリア):ターゲット画像のキャッシュをクリアします。
- Clear All Hash(全てのハッシュをクリア):全てのキャッシュをクリアします。
Upscale(アップスケール)タブ
顔交換処理後の顔、または画像全体の解像度を向上させるための設定です。
- Postprocessing Order(後処理の順序):顔修復(Restore Face)とアップスケール処理の順番を選択します。
- Upscale anyway - even if no face found(顔が見つからなくてもアップスケール):
- Upscaler(アップスケーラー):画像の解像度を向上させるために使用するアルゴリズム(モデル)を選択します。Stable Diffusion 本体で利用可能なアップスケーラーがリストに表示されることが多いです(例:R-ESRGAN 4x+, SwinIR, LDSRなど)。「None」を選択するとアップスケール処理は行われません。※注釈:img2imgの「Source」経由でスワップする場合、ここでのアップスケーラーはスケーリング自体には影響せず、テクスチャリング、ノイズ除去、再描画などの後処理のみに影響することがあります。
- Scale by(スケール倍率):画像を何倍に拡大するかを指定します。例えば「2」なら解像度が2倍になります。選択したアップスケーラーによっては固定倍率のものもあります。
- Upscaler Visibility (if scale = 1)(アップスケーラーの可視性 - スケール=1の場合):スケール倍率が1(つまり実質的な拡大はしない)の場合でも、アップスケーラーが持つディテール強調やノイズ除去などの効果をどの程度適用するかを調整する場合があります。
Tools(ツール)タブ
顔モデルの作成や管理に関連する機能があります。
- Face Models(顔モデル):顔モデルの作成方法を選択します。
- Compute Method(計算方法):ブレンドの計算方法を選択します。
- Check -Embedding Shape- on Similarity(類似性における埋め込み形状のチェック):(実験的機能)これをオンにすると、リストの最初の顔と大きく異なる顔をスキップして、起こりうる「形状の不一致」を防ぎます。
- Face Model Name(顔モデル名):作成する顔モデルに任意の名前を付けます(例:Elena)。
- Build and Save(構築して保存):アップロードされた画像(単一または複数)から顔の特徴を抽出し、指定された名前で顔モデルファイル(通常は .safetensors 形式)として保存します。保存先は通常、Stable Diffusionの models/reactor/faces フォルダなどです。
- You can find saved models in 'models/reactor/faces':保存された顔モデルが格納されるデフォルトのパスを示しています。
Settings(設定)タブ
ReActorの全体的な動作や、より技術的な設定を行います。
- Execution Provider(実行プロバイダー):顔交換処理を実行するために使用するハードウェアアクセラレーションを選択します。
- Model(モデル - ONNXモデル):顔交換処理のコアとなる ONNX (Open Neural Network Exchange) モデルファイルを選択します。
- Console Log Level(コンソールログレベル):ReActorの動作状況を Stable Diffusion WebUI のコンソール(コマンドプロンプト画面)に出力するログの詳細度を設定します。
- Source Image Hash Check(ソース画像ハッシュチェック):オンにすると、同じソース画像を繰り返し使用する際に、前回処理時のハッシュ(キャッシュ)を利用して顔検出などの前処理をスキップし、処理を高速化します。通常はオンにしておくことが推奨されます。
- Target Image Hash Check(ターゲット画像ハッシュチェック):Extras タブや img2img で「Swap in source image(ソース画像内でスワップ)」オプションのみを使用する場合に、ターゲット画像のハッシュチェックに影響する可能性があります。
- Swap in source image(ソース画像内でスワップ):主に img2img で、入力画像(ソース画像)そのものに対して顔交換を適用する場合にオンにします。
- Swap in generated image(生成画像内でスワップ):txt2img や img2img で新しく生成された画像に対して顔交換を適用する場合にオンにします。これが最も一般的な使い方です。
- Save(設定を保存):このタブで行った設定変更を保存します。
おすすめの高画質な画像生成の設定(ReActor利用時)
基本方針
高画質な顔交換画像を得るためには、ReActorの設定だけでなく、Stable Diffusion側での生成設定や、元となるソース画像の品質も非常に重要です。
高品質なソース顔画像を用意する:
- 入れ替えたい人物の顔が、高解像度で、鮮明に、正面に近い角度で、影が少なく均一な光で照らされているものを選びます。
- 表情もターゲット画像と近いものを選ぶと、より自然な仕上がりになります。
- 背景はシンプルな方が、顔の切り出し精度が上がる傾向があります。
Stable Diffusion での元画像を高画質で生成する:
- 顔交換を行う前の、Stable Diffusion で生成する画像自体の品質が高いことが【結論】大前提です。
- 適切なプロンプト、ネガティブプロンプト、高品質なチェックポイントモデル(例:chilloutmix、Anything、DreamShaper など、目的に合わせて)を使用します。
- Sampling method(例:DPM++ 2M Karras、Euler a)や Sampling steps(20~40程度)も画質に影響します。
- Hires. fix を使用して高解像度化を行うのも有効です。
ReActor おすすめ設定(高画質化向け)
Main タブ:
- Enable:オン
- Source Image・Face Model:上記「高品質なソース顔画像」またはそれから作成した高品質なフェイスモデルを使用。
- Face Mask Correction:オンにすることを推奨。特に顔の境界が不自然になりやすい場合に効果的です。
- Source Image Face Index(es):正しい顔が選択されるように確認。
- Target Image Face Index(es):複数人いる場合は適切に指定。
- Restore Face:
- Restore Face Visibility:0.8 ~ 1.0 の範囲で調整。顔の修復効果をしっかり効かせたい場合は高めに設定します。下げすぎると効果が薄れます。
- CodeFormer Weight (Fidelity):(CodeFormer選択時)0.5 ~ 0.75 あたりから試すのがおすすめです。
Detection タブ:
- Detection Model:デフォルトで問題ないことが多いですが、顔がうまく検出されない場合は他のモデル(例:YOLOv5l-Face)を試してみてください。
- Threshold:デフォルト(0.5程度)から始め、顔が検出されにくい場合は少し下げ(例:0.4)、誤検出が多い場合は少し上げ(例:0.6)て調整します。【警告】上げすぎると必要な顔まで検出されなくなるので注意。
- Max Faces:意図した数だけ検出されるように設定。
Upscale タブ(より高画質を目指す場合):
- Postprocessing Order:1. Restore Face -> 2. Upscale(デフォルト)を推奨。
- Upscaler:高品質なアップスケーラーを選択します。
- Scale by:1.5 ~ 2.0 程度。あまり大きくしすぎると不自然になることもあります。まずは 1.5 倍から試すと良いでしょう。※注意:ReActorのアップスケール機能は顔周辺に適用されることが多いです。画像全体のアップスケールは Stable Diffusion 本体の Hires. fix や Extras タブで行うのが一般的です。ReActor のアップスケールは、顔のディテールをさらに詰めるための仕上げと考えると良いでしょう。
- Upscale anyway - even if no face found:通常はオフで良いでしょう。
Settings タブ:
- Execution Provider:CUDA(NVIDIA GPU の場合)または DirectML(対応する AMD・Intel GPU の場合)を選択して高速化。
- Model (ONNXモデル):inswapper_128.onnx(標準)または inswapper_128_fp16.onnx(速度重視の場合)。品質を最優先するなら標準モデルが良いでしょう。
- Source Image Hash Check:オン(推奨)。
試行錯誤のポイント
- Restore Face のモデルとパラメータ:CodeFormer と GFPGAN、そしてそれぞれの Visibility や Weight は、生成結果に大きく影響します。いくつかの組み合わせを試して、好みの結果を探してください。
- Face Mask Correction:オン・オフで比較し、境界が自然になる方を選びます。
- プロンプトによる調整:ターゲットとなる人物の年齢、顔の形、肌質などをプロンプトで指定することで、顔交換後の馴染みが良くなることがあります。
- ソース顔の品質:【結論】結局のところ、ソースとなる顔画像の品質が最終的な出力品質に最も大きく影響します。できるだけクリアで適切な照明のソース画像を選びましょう。
これらの設定や使い方を参考に、ご自身の環境や目的に合わせて調整してみてください。高画質な顔交換画像の生成には、ある程度の試行錯誤が伴うことが多いですが、上記がその助けになれば幸いです。