Dreambooth-Stable-Diffusion - 安定した拡散(https://arxiv.org/abs/2208.12242)のためのテキスト反転(https://arxiv.org/abs/2208.01618)によるドリームブース(https://arxiv.org/abs/2112.10752)の実装。顔、オブジェクト、スタイルのトレーニングに焦点を当てた調整。

(Implementation of Dreambooth (https://arxiv.org/abs/2208.12242) by way of Textual Inversion (https://arxiv.org/abs/2208.01618) for Stable Diffusion (https://arxiv.org/abs/2112.10752). Tweaks focused on training faces, objects, and styles.)

Created at: 2022-09-18 06:05:03
Language: Jupyter Notebook
License: MIT

インデックス

以前は「ドリームブース」として知られていたレポ

画像

ジョー・ペナのメモ

紹介!

こんにちは!私の名前はジョー・ペナです。

あなたはミステリーギターマンの下で私のいくつかのYouTubeのビデオを見たことがあるかもしれません。今は長編映画監督です。あなたは北極やストワウェイを見たことがあるかもしれません。

私の映画では、特定の俳優、小道具、場所などを訓練できる必要があります。だから、私は人々の顔を訓練するために@XavierXiaoのレポにたくさんの変更を加えました。

私が取り組んでいる映画のすべてのテストをリリースすることはできませんが、自分の顔でテストするときは、Twitterページでリリースします - @MysteryGuitarM

これらのテストの多くは、私の友人、CorridorDigitalのNikoと一緒に行われました。このレポを見つけたきっかけかもしれませんね!

私は本当にコーダーではありません。私はただ頑固で、グーグルで検索することを恐れていません。それで、最終的に、何人かの本当に賢い人々が加わり、貢献してきました。このレポでは、具体的には:@djbielejeski@gammagec @MrSaad - しかし、私たちの不和で非常に多くの他の!

これはもはや私のレポではありません。これは、見たい人、ドリームブース・オン・SDのレポです!

さて、あなたがこれをやろうとしたいのなら...まず、以下の警告をお読みください。

警告!

  • これは最先端のものです...現在、これを実行する簡単な方法はありません。このレポは、別のレポに基づくレポに基づいています。

    • 現時点では、基本的にダクトテープとバブルガムであるものを作成するには多くの努力が必要ですが、最終的にはSUPERうまく機能します。
    • ぜひ足を踏み入れてください!その怖がらせないでください - しかし、あなたが松明なしで、夜にジャングルを歩いていることを知ってください...
  • モデルの凍結を解除するには、大量のジュースが必要です。

    • A6000 / A40 / A100(または同様の最高級の数千ドルのGPU)が必要になります。
    • これで、24GBのVRAM(例:3090)を搭載したGPUでこれを実行できるようになりました。トレーニングは遅くなり、これが実行中の唯一のプログラムであることを確認する必要があります。
    • 私のように、あなたがそれらのうちの1つを所有していない場合、私はあなたがレンタルされたクラウドコンピューティングプラットフォーム上でそれを実行するのを助けるためにJupyterノートブックをここに含めています。
    • 現在、runpod.io に合わせて調整されていますが、vast.ai/などで動作することができます。
  • この実装は、潜在的な空間を保存する方法に関するGoogleのアイデアを完全には実装していません。

    • あなたが訓練しているものに似たほとんどの画像は、それに向かってシフトされます。
    • 例えば、あなたが人を訓練しているなら、すべての人はあなたのように見えるでしょう。オブジェクトをトレーニングしている場合、そのクラスのものはすべてオブジェクトのように見えます。
  • 2つの科目を連続して訓練する簡単な方法はないようです。プルーニングの前にファイルが表示されます。

    11-12GB

    • 付属のノートブックには、それをクランチするプルーナーがあります
      ~2gb
  • ベストプラクティスは、トークンを有名人の名前に変更することです(注:クラスではなくトークン - したがって、プロンプトは次のようになります:)。ここに私の妻はトークンを除いて、まったく同じ設定で訓練されています

    Chris Evans person

セットアップ

簡単なランポッド命令

  • RunPodにサインアップしてください。私がそれを支払う必要がないように、ここで私の紹介リンクを自由に使用してください(しかし、あなたはそうします)。
  • [展開] をクリックします。
    SECURE CLOUD
    COMMUNITY CLOUD
  • ここでこれらのビデオの指示に従ってください:

ビデオの指示

Vast.AI 手順

  • Vast.AI にサインアップする
  • いくつかの資金を追加します(私は通常、$ 10単位で追加します)
  • [クライアント - 作成] ページに移動します。
    • あなたのドッカーイメージとしてpytorch / pytorchを選択し、ボタン "Jupyter Lab Interfaceを使用"と "Jupyter direct HTTPS"
    • イム.png
  • ディスク容量を増やし、GPU RAMでフィルタリングする必要があります(12gbチェックポイントファイル+ 4gbモデルファイル+正規化イメージ+他のものが速く加算されます)
    • 私は通常150GBを割り当てます
    • イム.png
    • また、アップロード/ダウンロード速度を十分な帯域幅で確認して、ダウンロードされるのを待っているすべてのお金を費やすのも良いでしょう。
  • 目的のインスタンスを選択し、 をクリックし、[インスタンス] ページに移動して
    Rent
    Open
    • イム.png
    • 安全でない証明書の警告が表示されます。警告を過ぎてクリックするか、Vast 証明書をインストールします。
  • クリックしてください(この次のステップはいくつかの方法で行うことができますが、私は通常これを行います)
    Notebook -> Python 3
    • イム.png
  • このコマンドでジョーのレポをクローンする
    • !git clone https://github.com/JoePenna/Dreambooth-Stable-Diffusion.git
    • クリック
      run
    • イム.png
  • 左側の新しいディレクトリに移動し、ファイルを開きます
    Dreambooth-Stable-Diffusion
    dreambooth_runpod_joepenna.ipynb
    • イム.png
  • ブックの指示に従ってトレーニングを開始します。

テキスト反転対ドリームブース

このリポジトリのコードの大部分は、Rinon Gal et によって書かれました。al、テキスト反転研究論文の著者。正規化画像と以前の損失保存に関するいくつかのアイデア(「Dreambooth」のアイデア)が追加されましたが、MITチームとGoogleの研究者の両方に敬意を表して、私はこのフォークを「以前は「ドリームブース」として知られていたレポ」に変更しています。

代替実装については、以下の「代替オプション」を参照してください。

生成されたモデルの使用

(実際の写真、注意:非常に美しい女性)

ground truth

以下のすべての画像に対して同じプロンプトが表示されます。

sks person
woman person
Natalie Portman person
Kate Mara person

結果のデバッグ

人々が犯す一番の間違い

トークンだけでプロンプトを表示します。すなわち、"joepenna"の代わりに"joepenna""

クラスの下でトレーニングした場合、モデルはあなたの顔を次のようにしか認識しないはずです。

joepenna
person

joepenna person

プロンプトの例:

🚫正しくない (以下が欠落している)

person
joepenna
)

portrait photograph of joepenna 35mm film vintage glass

これは正しいです( は後に含まれています

person
joepenna
)

portrait photograph of joepenna person 35mm film vintage glass

あなたは時々、joepennaであなたと似たような人を得るかもしれません(特にあなたがあまりにも多くのステップのために訓練した場合)が、それはDreamboothのこの現在の反復がそのトークンをオーバートレインするので、そのトークンに出血するからです。


トレーニングする画像の種類に注意する

トレーニング中、厩舎はあなたが人であることを知りません。それはただそれが見るものを模倣するつもりです。

したがって、これらがトレーニング画像の場合、次のようになります。

あなたは、白と灰色のシャツを着て、尖った木の隣に何世代ものあなたの世代を外に出すつもりです...まあ、自分撮り写真。

代わりに、このトレーニングセットははるかに優れています。

画像間で一貫しているのは被写体だけです。したがって、Tableは画像を見て、あなたの顔だけを学習し、他のスタイルに「編集」することができます。

ああ違います!あなたは良い世代を得ていません!

OPTION 1: They're not looking like you at all! (Train longer, or get better training images)

Are you sure you're prompting it right?

It should be , not just . For example:

<token> <class>
<token>

JoePenna person, portrait photograph, 85mm medium format photo

If it still doesn't look like you, you didn't train long enough.


オプション2:彼らはあなたのように見えますが、すべてあなたのトレーニング画像のように見えます。(より少ないステップでトレーニングし、より良いトレーニング画像を取得し、プロンプトで修正)

さて、いくつかの理由:あなたはあまりにも長い間訓練したかもしれません...またはあなたのイメージがあまりにも似ていた...または、十分な画像でトレーニングしなかった。

大丈夫。プロンプトでそれを修正できます。安定した拡散は、最初に入力するものに多くのメリットをもたらします。だから後でそれを保存してください:

an exquisite portrait photograph, 85mm medium format photo of JoePenna person with a classic haircut


オプション3:彼らはあなたのように見えますが、異なるスタイルを試してもそうではありません。(より長くトレーニングし、より良いトレーニング画像を得る)

あなたは十分に長く訓練していませんでした...

大丈夫。プロンプトでそれを修正することができます:

JoePenna person in a portrait photograph, JoePenna person in a 85mm medium format photo of JoePenna person

その他のヒントとヘルプはこちら: 安定した拡散ドリームブースの不和

ハグフェイスディフューザー - 代替オプション

Dreambooth は HuggingFace Diffusers でサポートされ、Stable Diffusion でのトレーニングができるようになりました。

ここで試してみてください:

コラボで開く