AIGCコラム5 - EasyPhoto AI写真ジェネレーターsd-webuiプラグインの紹介、インストール、使い方

研究の序文

AIGC のビジュアル分野では、AI 写真は信頼性と実績のあるソリューションです。StableDiffusion 分野のオープンソース コミュニティの急速な発展に伴い、ディフューザーと組み合わせた Modelscope オープンソース コミュニティに基づいた FaceChain のようなオープンソース プロジェクトが登場しました。指導のためのコミュニティ ユーザーは個人的なポートレートを迅速に作成します。

ただし、SDWebUI を頻繁に使用する AIGC の学生にとって、現実のポートレートの機能に短期間で適応するのに十分な機能を備えたオープンソース プラグインはありません。

AI ポートレートでは、ユーザーに似ていることと、本物であることの2 つの重要な点に注意を払う必要があります

最近、私は EasyPhoto プロジェクトに参加しました, テンプレート画像に基づいて対応するユーザーのポートレートを生成できます. 安定した拡散と Lora の強力な生成機能の助けを借りて, 生成された画像は比較的似ていて現実的になります, そしてそれは最近オープンソース化されました
ここに画像の説明を挿入

ソースコードのダウンロードアドレス

https://github.com/aigc-apps/sd-webui-EasyPhoto

友達にスターを注文してください。これは私にとって今でも非常に重要です。

技術原則リザーブ (SD/コントロール/ローラ)

安定した拡散

Stability-AI オープンソース画像生成モデルとして、StableDiffusion は通常、SD1.5/SD2.1/SDXL とその他のバージョンに分かれており、大規模な画像とテキストのペアに対するテキストガイド付きトレーニングと組み合わせた拡散モデルです。入力テキストは特徴抽出の対象となり、拡散モデルは複数回の反復で入力セマンティクスに準拠する高品質の画像を生成するように誘導されます。下の画像はStable Diffusionの公式サイトに掲載されている効果です。

EasyPhoto AI は、StableDiffusion の豊富なオープンソース コミュニティと、リアルで自然な AI ポートレートを生成する強力な生成機能に基づいています。
ここに画像の説明を挿入

コントロールネット

ControlNet は、「テキストから画像への拡散モデルへの条件付き制御の追加」によって提案されており、スケルトン マップ/エッジ マップ/深度マップ/人体ポーズ マップなどの追加の入力信号を処理するためにいくつかのトレーニング済みパラメーターを追加することで StableDiffsion モデルを拡張します。これらの追加の入力信号を使用して拡散モデルをガイドし、信号に関連する画像コンテンツを生成します。たとえば、公式リポジトリにあるように、Canny エッジを信号として使用して、子犬の出力を制御します。

EasyPhoto は、複数のコントロールネットの強力な制御機能に基づいて、元のテンプレートの特性 (色、照明、輪郭など) を保持しながら、非常に自然な写真画像を生成します。
ここに画像の説明を挿入

ローラ

「LoRA: Low-Rank Adaptation of Large Language Models」によって提案された、低ランク行列に基づいて大規模パラメータ モデルの少数のパラメータを微調整する方法は、さまざまな大規模モデルのダウンストリーム利用で広く引用されています。AI の現実のポートレートでは、最終的に生成された画像が生成したい人物に似ていることを確認する必要があります。そのためには、Lora テクノロジーを使用して少数の入力画像に対して簡単なトレーニングを実行する必要があります。指定された人物の顔(Face id)モデル。

EasyPhoto プラグインの紹介

EasyPhoto は AI ポートレートを生成するための Webui UI プラグインであり、コードを使用してユーザーに関連付けられたデジタル ツインをトレーニングできます。トレーニングには 5 ~ 20 枚のポートレート画像を使用することをお勧めします。できればハーフレングスで眼鏡なしのポートレート画像を使用します (少数でも許容されます)。トレーニング後、EasyPhoto は推論部分で画像を生成できます。EasyPhoto は、プリセットのテンプレート画像の使用と、推論用の独自の画像のアップロードをサポートしています。

これらはプラグインによって生成された結果です。生成された結果から判断すると、プラグインによって生成された効果は依然として非常に良好です。
ここに画像の説明を挿入
ここに画像の説明を挿入
各画像の背後にはテンプレートがあり、EasyPhoto は画像の特性に一致するようにテンプレートを変更します。ユーザー。
EasyPhoto プラグインでは、いくつかのテンプレートが Inference 側にプリセットされており、プラグインにプリセットされているテンプレートを使用して体験することができます。また、EasyPhoto はテンプレートをカスタマイズすることもでき、Inference には別のタブ ページがありますサイド。カスタム テンプレートのアップロードに使用できます。以下に示すように。
ここに画像の説明を挿入
推論予測の前に、一定数のユーザーの個人写真をアップロードする必要があるトレーニングを実施する必要があります。トレーニング出力は Lora モデルです。Lora モデルは推論予測に使用されます。

要約すると、EasyPhoto の実行プロセスは非常に簡単です:
1. ユーザーの写真をアップロードし、ユーザーに関連する Lora モデルをトレーニングします;
2. 予測用のテンプレートを選択し、予測結果を取得します。

EasyPhotoプラグインのインストール

インストール方法 1: Webui インターフェースのインストール (良好なネットワークが必要です)

インストールプロセスは比較的簡単で、ネットワークが良好な場合は、[拡張機能] に移動し、[URL からインストール] を選択します。
https://github.com/aigc-apps/sd-webui-EasyPhoto と入力し、下の [インストール] をクリックしてインストールします。インストール プロセス中に、依存関係パッケージが自動的にインストールされます。辛抱強く待つ必要があります。インストール後、WebUI を再起動する必要があります。
ここに画像の説明を挿入

インストール方法 2: Git クローンのダウンロードとインストール (クローン プロセス中にインストールの進行状況を確認するメッセージが表示されます)

Webui の拡張機能フォルダーに直接移動し、git ツールを開き、git clone を実行します。
ダウンロードが完了したら、WebUI を再起動すると、必要な環境ライブラリがチェックされてインストールされます。
ここに画像の説明を挿入

その他のプラグインのインストール: Controlnet のインストール

推論には Controlnet を使用する必要があります。関連するソフトウェア ソースは、ikubill/sd-webui-controlnetです。EasyPhoto を使用する前に、このソフトウェア ソースをインストールする必要があります。

また、推論には少なくとも 3 つのコントロールネットが必要です。したがって、 Multi ControlNet: Max models amount (required restart)を設定する必要があります
ここに画像の説明を挿入

イージーフォトトレーニング

EasyPhoto トレーニング インターフェイスは次のとおりです。

  • 左側にはトレーニング画像があり、[写真を直接アップロード] をクリックして画像をアップロードし、[写真をクリア] をクリックしてアップロードした画像を削除します。
  • 右側は学習パラメータであり、初期学習ではパラメータの調整は必要ありません。

ここに画像の説明を挿入

画像をアップロードする

[写真をアップロード] をクリックした後、写真のアップロードを開始できます。ここでは、さまざまな角度やさまざまな照明条件を含む 5 ~ 15 枚の写真をアップロードすることをお勧めします。ここでは 7 枚の写真を使用しました。眼鏡が含まれていない写真がいくつかあるほうがよいでしょう。がすべてガラスである場合、生成された結果でガラスを生成するのは簡単です
ここに画像の説明を挿入
アップロードが完了すると、インターフェースにアップロードされた画像が表示されます。
ここに画像の説明を挿入

パラメータ設定

次に、右側のパラメータ設定セクションを見てみましょう。ここでは調整できるパラメータがまだたくさんあります。初期トレーニングには調整はありません。各パラメータの分析は次のとおりです:

パラメータ名 意味
解決 トレーニング中にネットワークに供給される画像サイズ。デフォルト値は 512 です。
検証とステップの保存 イメージを検証して中間ウェイトを保存するステップ数。デフォルト値は 100 です。これは、100 ステップごとにイメージを検証し、ウェイトを保存することを意味します。
最大列車歩数 トレーニング ステップの最大数。デフォルト値は 800 です。
写真あたりの最大ステップ数 画像ごとのトレーニングの最大数。デフォルトは 200 です。
列車のバッチサイズ トレーニングのバッチ サイズ、デフォルト値は 1
勾配累積ステップ 勾配累積を実行するかどうか。デフォルト値は 4 で、トレインのバッチ サイズと組み合わせると、各ステップは 4 枚の画像をフィードするのと同等になります。
データローダーのワーカー数 データロードの作品数はWindowsでは設定してもエラーが報告されるため反映されず、Linuxの通常の設定では反映されません。
学習率 Lora をトレーニングするための学習率、デフォルトは 1e-4
ローラのランク 重みの特徴長。デフォルトは 128 です。
ネットワークアルファ Lora トレーニングの正則化パラメーターは通常ランクの 2 分の 1 であり、デフォルトは 64 です。

最終的なトレーニング ステップ数を計算する式も比較的単純で、最終トレーニング ステップ = Min(photo_num * max_steps_per_photos, max_train_steps) です。

簡単に理解すると、
写真の数が少ない場合、トレーニング ステップの数は photo_num * max_steps_per_photos になります。
ピクチャの数が多い場合、トレーニング ステップ数は max_train_steps になります。

トレーニングを開始する

次に、下部の「トレーニング開始」をクリックします。このとき、上部にユーザー名などのユーザー ID を入力する必要があり、トレーニングを開始できます。
ここに画像の説明を挿入
初期トレーニングを開始するとき、いくつかの重みが oss からダウンロードされます。辛抱強く待つ必要があります。ダウンロードの進行状況には端末に注意する必要があります。
ここに画像の説明を挿入
自動前処理が完了すると、Lora モデルはトレーニングを開始します。トレーニングが完了するまで辛抱強く待つ必要があります。
ここに画像の説明を挿入
端末にこのように表示されたら、トレーニングは完了です。最後のステップは、Lora 融合を実現し、Lora が完全なデジタル クローンであることを確認するために、検証画像とユーザー画像の間の顔 ID のギャップを計算することです。ユーザー。
ここに画像の説明を挿入

イージーフォト予報

モデルの選択

トレーニング後、タブページを推論に転送する必要があります。Gradio の特性上、新しくトレーニングされたモデルは自動的に更新されませんが、使用 ID の横にある青いスピン ボタンをクリックしてモデルを更新できます。
ここに画像の説明を挿入

テンプレートの選択

更新後、トレーニングしたモデルを選択し、対応するテンプレートを選択して予測を開始します。最初の予測では、モデルスコープ モデルをいくつかダウンロードする必要があります。辛抱強く待ちます。プリセットの男の子の写真はまあまあなので、アップロード画像に切り替えて、予測用のテンプレートを直接アップロードします。

その後、予測結果を取得できます。
ここに画像の説明を挿入

パラメータ名 意味
顔融合後の比率 2 番目の顔のフュージョンの割合。表現が大きいほど、より類似します。
最初の拡散ステップ 最初の安定拡散のステップ数
第一拡散ノイズ除去強度 最初の Stable Diffusion 再構築の規模
第 2 拡散ステップ 2回目の安定拡散のステップ数
第 2 拡散ノイズ除去強度 2 番目の安定拡散再構成の比率
トリミング面の前処理 顔をトリミングしてから処理するかどうか、大きな画像に適しています
前にフェイス フュージョンを適用する 最初の顔のフュージョンを実行するかどうか
フェイス フュージョンを適用した後 最初の顔のフュージョンを実行するかどうか

おすすめ

転載: blog.csdn.net/weixin_44791964/article/details/132646955