Open2

Stable Diffusionの画像生成の時に類似度を計算してくれる拡張機能を使ってみた

FBD TechFBD Tech

Similarity Sifterを使います。詳しい使い方は以下の記事。
https://note.com/ai_biz_master/n/n423756e5abec

広瀬すずさんとの類似度を計算してみる

20枚適当に生成してみた(ちょっと適当すぎたかも)

類似度ごとにこんな感じ。
50%以下は別人って感じですね。60%だとちょっと似てるかな?くらい。

類似度66%

類似度55%

類似度43%

FBD TechFBD Tech

参考

https://github.com/emposy/sd-webui-similarity-sifter

README和訳

Stable Diffusion WebUI用SimilaritySifterの紹介

SimilaritySifterは、AUTOMATIC1111氏のStable Diffusion WebUI用の拡張機能です。face_recognitionライブラリを使用して、生成された画像を顔の類似度でフィルタリングすることができます。

特徴

  • 生成された画像を、指定した参照画像の顔との類似度でフィルタリングできます
  • txt2imgとimg2imgの両方の生成方式に対応しています
  • WebUI内でシンプルで直感的なユーザーインターフェースを提供します
  • 高精度な顔比較のために、強力なface_recognitionライブラリを活用しています

前提条件

Windowsへのインストール

Windowsに SimilaritySifter をインストールする前に、以下のソフトウェアをインストールする必要があります:

  • Visual Studio 2022 または Visual Studio 2022 用のビルドツール
    • Visual Studio のビルドツール以外の機能を使用する予定の場合、または不明な場合は、別ページ「Windows への Visual Studio Community 2022 のインストール」を参照してください。Visual Studio にはビルドツールが含まれていることに注意してください。
    • Visual Studio のビルドツール機能のみを使用する予定の場合は、別ページ「Windows への Visual Studio 2022 用ビルドツールのインストール」を参照してください。
  • CMake

MacまたはLinuxへのインストール

まず、Python バインディングを使用して dlib が既にインストールされていることを確認します:

  • macOS または Ubuntu で dlib をソースからインストールする方法

次に、CMake がインストールされていることを確認します:

  • macOS では、Homebrew を使用してインストールできます:
    brew install cmake
    
  • Linux では、ディストリビューションのパッケージマネージャーを使用してインストールできます。たとえば、Ubuntu の場合:
    sudo apt-get install cmake
    

インストール方法

  1. Stable Diffusion WebUI の「Extensions」タブを開きます。
  2. 「Install from URL」サブタブに移動します。
  3. 「URL for extension's git repository」欄に以下の URL を貼り付けます:https://github.com/emposy/sd-webui-similarity-sifter.git
  4. 「Install」ボタンをクリックします。
  5. インストールが完了するのを待ちます。「Installed into stable-diffusion-webui\extensions\sd-webui-similarity-sifter. Use Installed tab to restart」というメッセージが表示されます。
  6. 「Installed」サブタブに移動し、「Check for updates」をクリックしてから「Apply and restart UI」をクリックして拡張機能を有効にします。

前提条件

SimilaritySifter には以下の依存関係が必要です:

  • Python 3.10.6以上
  • Python バインディングを使用した dlib(インストール手順を参照)
  • cmake(macOS では brew install cmake でインストール)

これらの依存関係は、拡張機能のインストールプロセス中に自動的にインストールされます。

使用方法

  1. WebUI で「SimilaritySifter」タブに移動します。
  2. 「Enable SimilaritySifter」チェックボックスをオンにします。
  3. 「Upload Image」ボタンをクリックし、参照として使用したい顔が含まれる画像を選択します。
  4. (オプション)「Remove Low Similarity Images」チェックボックスをオンにし、「Similarity Threshold」スライダーを調整して、指定した類似度以下の画像を削除します。
  5. 通常通り、txt2img または img2img を使用して画像を生成します。
  6. 生成された画像は、参照画像との顔の類似度に基づいてソートされ、最も類似している画像が最初に表示されます。

制限事項

  • face_recognition ライブラリは大人の顔で学習されているため、子供の顔ではうまく機能しない可能性があります。
  • 民族グループによって精度が異なる場合があります。詳細については、face_recognition の wiki を参照してください。
  • 顔の類似度フィルターなしで画像を生成する場合と比較して、パフォーマンスが低下する可能性があります。

謝辞

SimilaritySifter は、以下のライブラリとプロジェクトを基に構築されています:

  • AUTOMATIC1111 氏の Stable Diffusion WebUI
  • Adam Geitgey 氏の face_recognition

これらの素晴らしいプロジェクトの開発者と貢献者の皆様に特別な感謝を申し上げます!

ライセンス

SimilaritySifter は MIT ライセンスの下でリリースされています。