SameFaceの使い方|ComfyUIで画像編集の顔のずれを測って戻す

SameFace の修正の比較を背景にしたアイキャッチ ComfyUI

この記事について(広告・アフィリエイトリンクはありません)

紹介しているノードとモデルは、すべて無料で入手できます。この記事の人物の画像は AI で生成しました。リンカーンの画像はリポジトリの作例で、元の写真はパブリックドメインです。

SameFace は、画像編集で顔の形がどれだけ動いたかを数値にして、元の位置に戻す ComfyUI のカスタムノードです。

作者の例の数値は、手元でもほぼ同じ値になりました。わざと作ったずれもよく戻せました。背景や服だけの編集では、ずれはほとんど検出されません。戻す必要があるかどうかを確かめる道具としても使えます。 ただし、意図して変えた表情まで戻そうとして、顔が崩れることがありました。

背景や服だけの編集なら、顔の形はほぼ動かない(今回のテスト条件で)

測ったペア編集のずれ修正後
作者の作例(リンカーン)0.354%0.011%
合成で顔を局所的に動かす(強)0.389%0.006%
合成で顔を局所的に動かす(弱)0.061%0.006%
背景や服だけの編集(P-H3-Image、20 ペア)0.002〜0.009%0.002〜0.008%
「笑う」編集(4 シード)2.2〜4.4%0.04〜0.09%
「目を大きく」編集(4 シード)0.004〜0.006%0.003〜0.005%
縮小して戻しただけ(本来ずれなし)0.003%0.002%

値は SameFace Simple の中央値で、顔の大きさに対する%です。作者は測定の限界を 0.01% としています。

  • 背景や服だけの編集は、全部 0.01% 未満でした。この範囲の数字の差に、意味はありません。
  • 修正は、意図した変更も戻そうとします。 笑顔を「修正」すると、口元が崩れました。
  • 見た目で明らかに大きくなった目は、数字に出ません。作者の説明どおりです。

1回は約8秒、VRAM の増加は約2.4〜3.0GiB でした(多くの回は約2.4GiB、作者の例のリンカーンだけ約3.0GiB)。測るのは形で、肌の質感や表情の印象は測りません。

リンカーンの編集前、編集後、ずれの地図、修正後、編集後の点と矢印を並べた画像
リンカーンの編集前、編集後、ずれの地図、修正後、編集後の点と矢印を並べた画像

試した環境

項目内容
GPURTX 5090(32GB)
ComfyUIv0.44.0 2c75dc1b。入れたカスタムノードはこれだけ
ノードcomfyui-sameface d608d61(2026-10-30)
入力作者の作例、P-H3-Image の編集結果、合成のずれ
検証日2026年11月4日

話題性としては、確認時点で GitHub のスターは 9、フォークは 4 です。2026年10月に作られた小さなプロジェクトで、今後の保守は分かりません。

custom_nodes に入れるだけ、モデルは初回に自動で入る

カスタムノードの入れ方はこちらにまとめています。

cd ComfyUI/custom_nodes
git clone https://github.com/fixed-42/comfyui-sameface
pip install -r comfyui-sameface/requirements.txt

今回の環境には必要なパッケージがすでに入っていたので、pip は実行していません。

モデルは初回に自動でダウンロードされます。合計は約1.8GB で、今回は最初の実行が全部で約64秒でした。回線で変わります。場所は Hugging Face のキャッシュです。

モデル用途サイズ(作者の値)ライセンス
Grounding DINO base顔を見つける0.9GBApache-2.0
SAM 2.1 Hiera large輪郭を切り抜く0.9GBApache-2.0
RAFT(torchvision)点の動きを追う21MBBSD-3-Clause

ノードと SAM 2.1、Grounding DINO は配布ページの Apache-2.0 を、RAFT は torchvision と元のリポジトリの BSD 3-Clause を確かめました。ノードは Apache-2.0 です。

下の JSON は、SameFace Simple に編集前と編集後をつなぐだけの構成です。

  • sameface_simple_workflow.jsonComfyUI にドラッグして読み込みます(SameFace Simple。編集前と編集後の画像を選び直してください)
編集前と編集後の画像を SameFace Simple につないだワークフロー
編集前と編集後の画像を SameFace Simple につないだワークフロー

画面から実行して、成功を確かめました。

どの出力を見ればいい?

SameFace Simple に編集前と編集後をつなぐと、次の出力が得られます。

出力内容
median編集のずれ(顔の大きさに対する%)
repaired_median修正後のずれ
repaired修正した画像
shift_map顔のどこがずれたかの地図
before_view、after_view測った点と、10倍の長さの矢印

作者の説明では、修正は顔の測った点を元の位置に動かすだけで、絵の残りは編集のままです。

作者の値はほぼ再現した

項目作者の値今回
Simple の編集のずれ約0.35%0.354%
Simple の修正後0.009%0.011%
VRAM ピーク約3.2GiB(README の VRAM peak)開始時からの増加 約3.0GiB(3,096MiB)。ピークは別のソフトの約1.7GB を含めて約4.7GiB

ほぼ再現しました。README の冒頭の 0.83%→0.010% は、頭全体を測った別の設定です。Simple の値とは比べられません。

さらに作者は、修正後の 0.010% という値は実際より低く出ると書いています。既知のずれで確かめた見積もりでは、実際に残るのは約0.03% だそうです。修正の数字は「効いた」ことの確認に使い、残りの量の正確な値とは読まないほうが安全です。私はこの見積もりを自分では確かめていません。

P-H3-Image の編集で顔はどれだけ動く?

P-H3-Image の編集結果を、編集前の画像と比べました。

顔を変えない編集のずれは 0.01% 未満

編集(顔は変えないよう依頼)ペア数編集のずれ
背景を海辺に50.005〜0.009%
エプロンを赤に60.004〜0.007%
帽子をかぶせる30.004〜0.007%
背景を図書館に(正面、横顔)60.002〜0.005%

どれも作者の測定の限界の 0.01% より小さい値です。 今回の編集では、顔の形はほとんど動いていません。修正も必要ありませんでした。

顔を変える編集は、値と見た目が一致しない

同じ人物の画像に、顔を変える依頼をしました。

依頼4 シードの編集のずれ修正後見た目
笑う2.2〜4.4%0.04〜0.09%どれも口を開けて笑った
頬を細く0.30〜0.60%0.004〜0.006%わずかな変化
30歳老ける0.004〜1.23%0.004〜0.018%シードで差。はっきりしわが出たのは1枚
目を大きく0.004〜0.006%0.003〜0.005%4枚とも大きくなった
編集前、笑う編集、修正後、ずれの地図、目を大きくした編集と修正後。笑顔の修正後は口元が崩れ、大きな目は修正後も大きいまま
編集前、笑う編集、修正後、ずれの地図、目を大きくした編集と修正後。笑顔の修正後は口元が崩れ、大きな目は修正後も大きいまま

見て分かったことが3つあります。

  • 笑顔を戻すと崩れます。 口元は閉じきらず、不自然な形になりました。数字は 0.086% まで下がっても、良い画像とは限りません。
  • 大きくした目は測れません。 作者の説明のとおり、描き直された部分は追跡できず、測定から外れます。ずれが小さいから変化がない、とは言えません。
  • しわは残ります。 修正は形を戻すだけなので、老けた肌の質感はそのままでした。

「笑う」の依頼なのに変化しなかった画像を測っても、当然ずれは出ません。 編集の成否を先に目で確かめてください。

決まった量のずれを作ると、値は量に応じて増えた

実際の編集には正解がありません。そこで、顔の一部を決まった量だけ動かす画像を自分で作りました。

動かした量(2048×2048、一番動く所)編集のずれ修正後
4ピクセル0.061%0.006%
16ピクセル0.389%0.006%
動かさない(縮小して戻すだけ)0.003%0.002%

量に応じて値が増え、修正で下がりました。動かさない場合は限界より小さい値でした。作者の説明どおり、修正は意図した変更と意図しない変更を区別しません。残したい変更がある画像には使わないでください。

中央値なので、局所的に動かすと値は小さめに出ます。動かしたピクセルの割合とは直接比べられません。

2人の写真は信頼度を下げる、正面と横顔の比較は測れない

場面結果
2人の写真、Simple動くが、1人しか測らない(作者の説明どおり)
2人の写真、Face Mask + Measure既定の信頼度 0.5 では「顔が見つからない」。0.25 に下げると、2人とも測れた
横顔どうし(向きを変えない編集)測れた(0.005%)
正面の写真と横顔の写真エラー(no point on the face passed the flow's round-trip check)

複数人では、Face Mask の index で人を選びます。今回は左の人が中央値 0.004%、右の人が 0.009% でした。

正面と横顔は、別々に生成した2枚の比較です。編集で首の向きが少しだけ変わる場合は、作者の説明では向きの変化がずれとして読まれます。この場合の数字は参考になりません。 そこは試せていません。

つまずいたところ

  • Measure の出力は、最初が drift、2番目が report です。文字で読むなら report をつなぎます。最初に順番を間違えました。
  • 2人の写真で顔が見つからず、最初は失敗かと思いました。confidence を下げると解決しました。
  • 最初の編集を1シードだけで試し、「顔を変える依頼が効かない」と思い込みました。別のシードでは効きました。編集の比較はシードを変えて確かめてください。

公式の作例のスライダーは、ComfyUI の Nodes 2.0 をオンにすると表示されると作者が書いています。今回は画像を保存して見たので、スライダーは試していません。

RTX 5090 以外の人へ

今回はこの GPU でしか測っていません。VRAM の増加は約2.4〜3.0GiB で、大きなモデルを同時に載せないなら、少ない VRAM でも余地はありそうです。ただし実際の 8GB・12GB 搭載 GPU での動作は確かめていません。 VRAM 不足の対処はこちらにまとめています。

よくある質問(FAQ)

Q. 顔が似ているかを判定しますか?

しません。作者の説明でも、測るのは形で、似ているかどうかではありません。

Q. 何秒かかりますか?

今回は 1 ペア約8秒でした。初回はモデルの取得で長くなります。

Q. 数値がいくつなら問題ですか?

作者の測定の限界は 0.01% です。それより小さければ差はほぼ読めません。それより大きい値をどこから問題にするかは、編集の目的で決めてください。今回の「笑う」編集は 2.2〜4.4% で、どれも口を開けて笑いました。

Q. 修正で画質は落ちますか?

今回は比べていません。顔の点を動かす処理なので、ごく細かい変形が入ります。

Q. キャラクターのイラストにも使えますか?

今回は写真風の画像だけです。イラストは試していません。

まとめ

  • 作者の例はほぼ再現し、合成のずれもよく戻りました。
  • 背景や服だけの編集では、形のずれはほぼ検出されませんでした。
  • 意図した変更も戻そうとするので、修正の結果は目で確かめてください。

この記事の検証環境

RTX 5090(32GB)/ Windows 11 / ComfyUI v0.44.0 / comfyui-sameface d608d61(2026-10-30)/ PyTorch 2.14.0+cu130 / 2026年11月4日
これまでの検証の一覧はこちら

検証メモ

  • 数値:SameFace Simple の中央値です。Simple は相似と affine の小さいほうを表示します。頭全体を測る設定の値とは比べられません。
  • 合成のずれ:私が作ったガウス状の上下の移動で、顔の中央付近に当てました。作者の既知のずれのテストとは別のものです。
  • 時間:モデルが読み込まれた後の値です。別のモデルと入れ替わると延びます。
  • サンプル数:同じ人物の入力からの編集が多く、一般化はできません。
  • 編集の依頼:「顔を変える編集」は 4 シードです。seed 101 では依頼が効かず肌の質感だけが変わったので、表から外しました。その場合の値は 0.003〜0.004% でした。
  • 未確認のこと:頭全体の測定、Repair ノード単体、作者の tools、首の向きがわずかに変わる編集、イラスト、実際の 8GB・12GB GPU、Manager からの導入。
  • VRAM の増加:開始時からの増加です。P-H3-Image の編集を測った回の多くは 2,403〜2,595MiB(中央値 2,494MiB)、リンカーンの例は 3,096MiB でした。1,149MiB と 2,048MiB の回が1回ずつあり、理由は確かめていません。

参考リンク

この記事を書いた人
こまたろ

画像生成 AI に興味を持ったのがきっかけで、3年ほど前から ComfyUI を触っています。始めたころは今ほど情報がそろっておらず、何時間もかけて整えた環境が翌日のアップデートで動かなくなったこともありました。

KOBO Lab は、自分の学び直しと、これから ComfyUI を始める人が同じところでつまずかないようにと思って始めたサイトです。初心者も中級者も、迷ったときに開くサイトを目指しています。

検証は、RTX 5090 を積んだ自作 PC 1台で、実際に動かして確かめています。作業を楽にするための自作ツールも作っています。

記事は、運営者自身の経験と検証をもとに、Claudeで下書きを作り、GrokボットとMuseでも添削や確認をして仕上げています。

KOBO Lab の新しい記事を受け取る
ComfyUIカスタムノード
KOBO Lab の新しい記事を受け取る
タイトルとURLをコピーしました