DreamBooth を使用してアートを作成するために顔で安定した拡散 AI をトレーニングする方法

公開: 2022-10-10

Tarunabh Duttaによるゲスト投稿。

2021 年が単語ベースの AI 言語モデルの年だった場合、2022 年は Text-to-Image AI モデルに飛躍しました。 現在、高品質の画像を生成できるテキストから画像への AI モデルが多数あります。 Stable Diffusion は、最も一般的でよく知られているオプションの 1 つです。 これは、一貫した結果を生成する高速で安定したモデルです。

how to train stable diffusion

画像生成のプロセスはまだ謎に包まれていますが、Stable Diffusion が優れた結果をもたらすことは明らかです。 テキストから画像を生成したり、既存の画像を変更したりするために使用できます。 利用可能なオプションとパラメーターを使用すると、最終的なイメージを大幅にカスタマイズおよび制御できます。

有名人や人気のある人物の画像を処理するのは比較的簡単ですが、純粋に既に利用可能な画像セットがあるため、AI に自分の顔を処理させるのはそれほど簡単ではありません. ロジックでは、AI モデルに画像をフィードし、その魔法を実行させるように指示されていますが、それを正確に行うにはどうすればよいでしょうか?

この記事では、画像参照で DreamBooth テキスト反転を使用して Stable Diffusion モデルをトレーニングし、自分の顔やその他のオブジェクトの AI 表現を構築し、信じられないほどの結果、精度、および一貫性を備えた結果写真を生成する方法を示します。 技術的すぎると思われる場合は、ぶらぶらしてください。できる限り初心者に優しいものにするよう努めます。

目次

安定拡散とは?

基本を離れましょう。 Stable Diffusion モデルは、大規模な画像セットでトレーニングされた最先端のテキストから画像への機械学習モデルです。 トレーニングには費用がかかり、約 660,000 ドルかかります。 ただし、安定拡散モデルは、自然言語を使用してアートを生成するために使用できます。

ディープ ラーニングの Text-to-Image AI モデルは、テキストを正確に画像に変換できるため、ますます人気が高まっています。 このモデルは無料で使用でき、Hugging Face Spaces と DreamStudio で見つけることができます。 モデルの重みはダウンロードしてローカルで使用することもできます。

Stable Diffusion は、「拡散」と呼ばれるプロセスを使用して、テキスト プロンプトに似た画像を生成します。

つまり、Stable Diffusion アルゴリズムは、テキストの説明を受け取り、その説明に基づいて画像を生成します。 生成された画像はテキストに似ていますが、正確な複製にはなりません。 Stable Diffusion の代替には、OpenAI の Dall-E および Google の Imagen モデルが含まれます。

DreamBooth を使用して画像を作成するために、顔で安定した拡散 AI をトレーニングするためのガイド

今日は、独自性と新鮮さを兼ね備えた非常に一貫性のある正確なスタイルの画像を生成するために、最初の参照として私の顔を使用して Stable Diffusion モデルをトレーニングする方法を紹介します。

したがって、この目的のために、DreamBooth と呼ばれるGoogle Colab使用して Stable Diffusion をトレーニングします。

この Google Colab を開始する前に、特定のコンテンツ アセットを準備する必要があります。

ステージ 1: 十分な空き容量のある Google ドライブ

このためには、少なくとも 9 GB の空き容量がある Google ドライブ アカウントが必要です。

無料の Google ドライブ アカウントには 15 GB の空き容量があり、このタスクには十分です。 したがって、この目的のためだけに、まったく新しい (使い捨ての) Gmail アカウントを作成できます。

google drive

ステージ 2: AI をトレーニングするための参照画像

次に、リファレンスとして使用できるように、自分の顔またはターゲット オブジェクトのポートレートを少なくとも 12 枚用意する必要があります。

  • キャプチャした画像で顔の特徴が見え、十分に照らされていることを確認してください。 特に顔に強い影を使用しないでください。
  • さらに、被写体はカメラの方を向いているか、両目とすべての顔の特徴がはっきりと見える横顔を持っている必要があります。
  • カメラは、高品質の顔の特徴をキャプチャできる必要があります。 最適なオプションは、プロ レベルのデジタル一眼レフ カメラまたはミラーレス カメラです。 優れた品質のスマートフォンカメラでも十分です。
  • コンポジションは、フレームの中央に配置し、ヘッドスペースを少し空ける必要があります。
  • 入力画像としては、顔のクローズアップ写真が最低 12 枚、頭から腰までの中間写真が 5 枚、全身写真が 3 枚程度で十分です。
  • この目的には、最低 20 枚の参照写真で十分です。

birme faces

私の場合、約 50 枚の自画像のコレクションを撮影して収集し、オンライン ツールの Birme を使用して 512 x 512 ピクセルにトリミングしました。 この目的のために、別の画像エディタを使用することもできます。

最終的な出力画像は Web 用に最適化し、品質の低下を最小限に抑えてファイル サイズを縮小する必要があることに注意してください。

ステージ 3: Google Colab

Google Colab ランタイムを実行できるようになりました。

Google Colab プラットフォームには無料版と有料版の両方があります。 Dreambooth は無料版でも実行できますが、高速 GPU の使用を優先し、目の前のタスクに少なくとも 15 GB の VRAM を割り当てる Colab Pro (有料) バージョンでは、パフォーマンスが大幅に高速で安定しています。

数ドルの出費を気にしないのであれば、毎月 100 コンピューティング ユニットを含む 10 ドルの Colab Pro サブスクリプションで、このセッションには十分すぎるほどです。

google colab signup

また、比較的強力で高速な追加のメモリ RAM と GPU にもアクセスできます。

繰り返しますが、この Colab を実行するのに技術専門家である必要はありません。 また、以前のコーディング経験も必要ありません。

Google Colab (無料版または有料版) にサインアップしたら、資格情報を使用してサインインし、このリンクにアクセスしてDreamBooth Stable Diffusionを開きます。

Google Colab には、左側にクリック可能な再生ボタンを備えた「ランタイム」セクションまたはセルが順番に配置されています。 ランタイムを上から再生するには、再生ボタンを 1 つずつクリックします。 各セグメントは、実行する必要があるランタイムで構成されています。 再生ボタンをクリックすると、対応するセクションがランタイムとして実行されます。 しばらくすると、再生ボタンの左側に緑色のチェック マークが表示され、ランタイムが正常に実行されたことを示します。

一度に 1 つのランタイムのみを手動で実行し、現在のランタイムが終了してから次の「ランタイム」セクションに進むようにしてください。

上部のメニュー バーのランタイム部分には、すべてのランタイムを同時に実行するオプションがあります。 ただし、これはお勧めできません。

change runtime type dreambooth

その下には、「ランタイム タイプの変更」というラベルの付いたオプションがあります。 プロ サブスクリプションに加入している場合は、実行用に「プレミアム」GPU と高 RAM を選択して保存できます。

choose high ram

これで、DreamBooth Colab を開始する準備が整いました。

run dream booth

DreamBooth でトレーニング済み AI モデルを正常に完成させるための 10 のステップ

STEP1:GPUとVRAMを決める

最初のステップは、利用可能な GPU と VRAM のタイプを決定することです。 プロ ユーザーは、高速 GPU とより安定した拡張 VRAM にアクセスできます。

determine GPU VRAM

再生ボタンをクリックすると、開発者のソース Web サイトである GitHub にアクセスしているため、警告が表示されます。 「とにかく実行」をクリックするだけで続行できます。

choose vram

ステップ 2: DreamBooth を実行する

次のステップでは、特定の要件と依存関係をインストールする必要があります。 再生ボタンをクリックして実行するだけです。

dreambooth play

STEP3:ハグフェイスにログインする

再生ボタンをクリックした後、次のステップでは、Hugging Face アカウントにログインする必要があります。 まだアカウントを持っていない場合は、無料のアカウントを作成できます。 ログインしたら、右上隅から [設定] ページに移動します。

hugging face settings

次に、[アクセス トークン] セクションと [新規作成] ボタンをクリックして、新しい「アクセス トークン」を生成し、必要に応じて名前を変更します。

access tokens

アクセス トークンをコピーし、[Colab] タブに戻り、表示されたフィールドにそれを入力して、[ログイン] をクリックします。

login to huggingface

ステップ 4: xformers をインストールする

このステップでは、再生ボタンを押すだけで、ランタイムをクリックしてxformersをインストールできます。

install xformers

STEP 5: Google ドライブを接続する

再生ボタンをクリックすると、新しいポップアップ ウィンドウで、Google ドライブ アカウントへのアクセス許可を求められます。 許可を求められるので、「許可」をクリックします。

access google drive folder

権限を付与したら、「 Google ドライブに保存」が選択されていることを確認する必要があります。 また、' CLASS NAME ' 変数に新しい名前を設定する必要があります。 人物の参考画像を提出したい場合は、単に「人物」、「男性」、または「女性」と入力してください。 参照イメージが犬の場合は、「犬」などと入力します。 残りのフィールドはそのままにしておくことができます。 または、入力ディレクトリの名前を「INSTANCE DIR」または出力ディレクトリの名前を「OUTPUT DIR」に変更することもできます。

dreambooth settings

STEP6:参考写真のアップロード

前の手順で再生ボタンをクリックすると、すべての参照写真をアップロードして追加するオプションが表示されます。

upload images

最低6枚、最高20枚の写真をお勧めします。 被写体の捉え方に基づいて最適な参照画像を選択する方法の簡潔な説明については、上記の「STAGE 2」を参照してください。

select images

すべての画像がアップロードされると、左側の列に表示されます。 フォルダアイコンがあります。 クリックすると、現在データが保存されているフォルダーとサブフォルダーを表示できます。

データ ディレクトリの下に、アップロードしたすべての写真が保存されている入力ディレクトリが表示されます。 私の場合、それは「sks」(デフォルト名)として知られています。

さらに、このコンテンツは一時的に Google Colab ストレージに保存されるだけで、Google ドライブには保存されないことに注意してください。

input directory

start training

STEP 7: DreamBooth で AI モデルをトレーニングする

DreamBooth を使用して、アップロードしたすべての参照写真に基づいて新しい AI モデルをトレーニングするため、これは最も重要なステップです。

train images dreambooth

2 つの入力フィールドだけに注目する必要があります。 最初のパラメーターは「—インスタンス プロンプト」です。 ここでは、非常にユニークな名前を入力する必要があります。 私の場合は、名の後にイニシャルを付けて使用します。 全体的な考え方は、完全な名前を一意かつ正確に保つことです。

2 番目に重要な入力フィールドは、'—class prompt' パラメータです。 「STEP 4」で使用したものと一致するように名前を変更する必要があります。 私の場合、「男」という言葉を使いました。 したがって、このフィールドに再入力して、以前のエントリを上書きします。

dreambooth parameters

残りのフィールドはそのままにしておくことができます。 「—num class images」などのフィールドを 12 に、「—max train steps」を 1000、2000、またはそれ以上に変更して実験しているユーザーを観察しました。 ただし、これらのフィールドを変更すると、Colab のメモリが不足してクラッシュし、最初からやり直す必要がある場合があることに注意してください。 したがって、最初の試行では編集しないことをお勧めします。 十分な経験を積んだ後、将来それらを試すことができます。

再生ボタンをクリックしてこのランタイムを実行すると、Colab は必要な実行可能ファイルのダウンロードを開始し、参照画像を使用してトレーニングできるようになります。

モデルのトレーニングには、15 分から 1 時間以上かかります。 ランタイムが完了するまで、辛抱強く進行状況を追跡する必要があります。 Google Colab のアイドル状態が長すぎると、リセットされる可能性があります。 そのため、進行状況を確認し、時々タブをクリックしてください。

colab executing

execution complete

STEP 8: AI モデルを ckpt 形式に変換する

トレーニングが完了すると、トレーニング済みのモデルを Stable Diffusion と直接互換性のある ckpt 形式のファイルに変換するオプションが表示されます。

変換は、2 つの実行時フェーズで実行できます。 1 つ目は「スクリプトのダウンロード」、2 つ目は「変換の実行」で、トレーニング済みモデルのダウンロード サイズを縮小するオプションがあります。 ただし、これを行うと、結果の画質が大幅に低下します。

したがって、元のサイズを維持するには、' fp16 ' オプションをオフのままにしておく必要があります。

run conversion

この特定のランタイムの最後に、「 model.ckpt 」というファイルが接続された Google ドライブに保存されます。

model ckpt

DreamBooth Colab ブラウザ タブを閉じると、ランタイムがすぐに削除されるため、このファイルを保存しておいて、後で使用できるようにします。 後で DreamBooth の Colab バージョンを再度開くと、最初からやり直す必要があります。

トレーニング済みのモデル ファイルを Google ドライブに保存するとします。 その場合、後でそれを取得して、ローカルにインストールされた Stable Diffusion GUI、DreamBooth、またはランタイムが効果的に動作するために「model.ckpt」ファイルをロードする必要がある Stable Diffusion Colab ノートブックで使用できます。 後で使用するために、ローカル ハード ディスクに保存することもできます。

ステップ 9: テキストプロンプトの準備

「推論」カテゴリの次の 2 つのランタイム プロセスは、画像生成に使用されるテキスト プロンプト用に新しくトレーニングされたモデルを準備します。 各ランタイムの再生ボタンを押すだけで、数分で終了します。

inference

STEP 10: AI 画像を生成する

これは、テキスト プロンプトを入力できる最後のステップであり、AI 画像が生成されます。

テキスト プロンプトの先頭で、STEP 6 の「instance_prompt」と「–class_prompt」の正確な名前を一緒に使用する必要があります。 たとえば、私の場合、「tarunabhtd man のポートレート、デジタル ペインティング」を使用して、自分に似た新しい AI 画像を生成しました。

image prompt

image generation

以下に、DreamBooth のトレーニング済みモデルで生成された画像結果をいくつか示します。

sample generated images

最良の結果を得るためにプロンプ​​トをいじる

上記の手順に注意深く従うと、参照画像の顔の特徴によく似た AI 画像を生成できます。 この方法では、オンラインの Google Colab プラットフォームで、テキスト反転用の AI テクノロジのアップグレード バージョンを実行する必要があります。

テキストプロンプトのより良いアイデアについては、次のようなサイトをチェックしてください –

  • OpenArt AI
  • クレア・アイ
  • レキシカアート

また、さまざまな芸術的なスタイルとさまざまな組み合わせを使用して、より優れた効果的なテキスト プロンプトを作成する技術も学ぶ必要があります。 適切な出発点は、Stable Diffusion SubReddit です。

Reddit には、Stable Diffusion に特化した巨大なコミュニティがあります。 また、多くの Facebook グループや Discord コミュニティが活発に議論し、共有し、Stable Diffusion の新しい道を模索しています。

以下では、YouTube で視聴できる DreamBooth チュートリアル ビデオへのリンクも共有しています。

このガイドがお役に立てば幸いです。 ご不明な点がございましたら、お気軽に以下にコメントしてください。

著者:
Tarunabh Dutta は受賞歴のある映画製作者であり、過去 16 年間に、長編映画、短編映画、ミュージック ビデオ、ドキュメンタリー、コマーシャル広告など、45 以上のプロジェクトを彼の独立した旗「TD Film Studio」の下で完成させました。