AIGCコラム5 - EasyPhoto AI写真生成プラグインのインストールと使い方
研究の序文
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 番目の安定拡散再構成の比率 |
トリミング面の前処理 | 顔をトリミングしてから処理するかどうか、大きな画像に適しています |
前にフェイス フュージョンを適用する | 最初の顔のフュージョンを実行するかどうか |
フェイス フュージョンを適用した後 | 最初の顔のフュージョンを実行するかどうか |