ホームページ > 記事 > テクノロジー周辺機器 > ディフューザー フレームワークを適応させるための完全なチュートリアル セットがここにあります。 T2I アダプターから人気の ControlNet まで
ChatGPT が世に出てから間もなく、ControlNet の出現により、英語と中国語のインターネット上で多くの開発者と一般ユーザーが急速に獲得しました。一部のユーザーは、ControlNet の出現が AI 創造の時代をもたらしたとさえ宣伝しました。直立歩行です。同時期の ControlNet、T2I-Adapter、Composer、LoRA トレーニング技術を含め、制御可能な世代は、AI 創造の最後の高い壁であると言っても過言ではなく、予見可能な時間内にさらなるブレークスルーをもたらす可能性が非常に高いです。したがって、ユーザーの作成コストが大幅に削減され、作成のプレイアビリティが向上します。 ControlNet がオープンソースになってからわずか 2 週間で、公式のスター数は 10,000 を超え、この人気は間違いなく前例のないものです。
同時に、オープンソース コミュニティもユーザーの敷居を大幅に下げました。たとえば、Hugging Face プラットフォームは、基本的なモデルの重みと一般的なモデル トレーニング フレームワークのディフューザー、安定したモデルを提供します。 diffusion-webui 完全なデモ プラットフォームが開発され、Civitai は多数の様式化された LoRA ウェイトを提供しました。
Webui が現在最も人気がありますが、このツールは、最近発表されたさまざまな生成モデルを迅速にサポートし、ユーザーが設定できる多くのオプションをサポートしています。フロントエンド インターフェイスの使いやすさに重点を置いているため、その背後にあるコード構造は実際には非常に複雑で、開発者にとって十分に使いやすいものではありません。たとえば、webui は複数のタイプの読み込みと推論をサポートしていますが、異なるフレームワークでの変換をサポートしたり、モデルの柔軟なトレーニングをサポートしたりすることはできません。コミュニティでの議論の中で、私たちは既存のオープンソース コードではまだ解決されていない多くの問題点を発見しました。
まず、コード フレームワークは互換性がありません. ControlNet や T2I-Adapter など、現在普及しているモデルは互換性がありません主流の Stable Diffusion トレーニング ライブラリとのディフューザーには互換性がないため、ControlNet の事前トレーニング済みモデルをディフューザー フレームワークで直接使用することはできません。
2 番目に、モデルの読み込みは制限されています 現在、モデルは .bin、.ckpt、.pth などのさまざまな形式で保存されています。 、.satetensors など、webui に加えて、ディフューザー フレームワークは現在、これらのモデル形式のサポートが限られています。ほとんどの LoRA モデルが主にセーフテンソルに保存されていることを考慮すると、ユーザーがベースでトレーニングされた既存のモデルに LoRA モデルを直接ロードすることは困難です。ディフューザーフレームワークについて。
3 番目、基本モデルは制限されています 現在、ControlNet と T2I-Adapter は Stable-Diffusion-1.5 に基づいてトレーニングされており、 SD1.5 でのモデルの重みのみがオープンソース化されている 特定のシナリオを考慮すると、anything-v4 や ChilloutMix などの高品質なアニメーション モデルがすでに存在している 制御可能な情報が導入されたとしても、最終的に生成される結果は UNet の機能によって制限されているSD1.5では。
最後に、モデル トレーニングには制限があります. 現在、LoRA はスタイル転送と特定の画像 IP の維持 1. ただし、ディフューザー フレームワークは現在、UNet の LoRA 埋め込みのみをサポートしており、テキスト エンコーダーの埋め込みをサポートできないため、LoRA トレーニングが制限されます。
オープンソース コミュニティと議論した結果、ディフューザー フレームワークが一般的なコード ライブラリとして、最近発売された世代モデルにも同時に適応する予定であることがわかりました。多くの基盤となるインターフェイスの書き換えが必要ですが、更新にはまだ時間がかかります。この目的を達成するために、私たちは上記の実際の問題から出発し、開発者がより簡単に開発できるよう、各問題に対して独自に開発したソリューションを率先して提案しました。
LoRA、ControlNet、T2I アダプターからディフューザーまでの完全な適応ソリューション##ディフューザー用 LoRA
このソリューションは、ディフューザー フレームワーク、つまりディフューザーのトレーニングに基づいて保存されたモデルに、LoRA ウェイトをさまざまな形式で柔軟に埋め込むことです。通常、LoRA のトレーニングではベース モデルがフリーズされるため、スタイルまたは IP 条件制約としてプラグイン可能なモジュールとして既存のモデルに簡単に埋め込むことができます。 LoRA 自体は一般的な学習手法であり、その基本原理は、低ランク分解によりモジュールのパラメータ数を大幅に削減できることです。現在、画像生成では、一般的に、画像生成において、モジュールに依存しないプラグイン可能なモジュールを学習するために使用されます。ベース モデル。実際の使用方法は、それを残差の形式でベース モデルの出力とマージすることです。1 つ目は LoRA ウェイトの埋め込みですが、現在 Civitai プラットフォームで提供されるウェイトは主に ckpt 形式またはセーフテンサー形式で保存されており、次の 2 つの状況に分けられます。 (1) フルモデル (ベースモデル LoRA モジュール) フルモデルがセーフテンサー形式の場合、次の方法で変換できます。次のディフューザー スクリプト 完全なモデルが ckpt 形式の場合は、次のディフューザー スクリプトを使用して変換できます 変換後完了したら、ディフューザーの API を使用してモデルを直接ロードできます。 (2) LoRA のみ (LoRA モジュールのみが含まれます) 現在、ディフューザーは正式に LoRA ウェイトのロードのみをサポートできません。オープンソース プラットフォームでは、LoRA ウェイトは基本的にこの形式で保存されます。基本的に、これにより LoRA 重みのキーと値の再マッピングが完了し、それがディフューザー モデルに適応されます。このため、私たちはこの機能を独自にサポートし、変換スクリプトを提供しています。 モデルをディフューザー形式で指定し、LoRA ウェイトをセーフテンサー形式で保存するだけです。変換例を示します。 さらに、LoRA 自体は軽量であるため、小さなデータでのトレーニングを迅速に完了でき、他のネットワークに埋め込むことができます。既存の LoRA ウェイトに限定されないように、ディフューザー フレームワークで LoRA のマルチモジュール (UNet テキスト エンコーダー) トレーニングをサポートし、公式コード ベース (https://github.com/huggingface/) で PR を提出しました。 diffusers/pull/ 2479)、ColossalAI での LoRA のトレーニングをサポートします。 コードはオープンソースです: https://github.com/haofanwang/Lora-for-Diffusers ##ディフューザー用の ControlNetpython ./scripts/convert_original_stable_diffusion_to_diffusers.py --checkpoint_path xxx.safetensors--dump_path save_dir --from_safetensors
python ./scripts/convert_original_stable_diffusion_to_diffusers.py --checkpoint_path xxx.ckpt--dump_path save_dir
from diffusers import StableDiffusionPipeline
pipeline = StableDiffusionPipeline.from_pretrained (save_dir,torch_dtype=torch.float32)
pipeline = StableDiffusionPipeline.from_pretrained (model_id,torch_dtype=torch.float32)
model_path = "onePieceWanoSagaStyle_v2Offset.safetensors"
state_dict = load_file (model_path)
# the default mergering ratio is 0.75, you can manually set it
python convert_lora_safetensor_to_diffusers.py
さらに、ControlNet Inpainting もサポートし、ディフューザーに適合したパイプラインを提供します。
および複数条件制御用の Multi-ControlNet。
コードはオープンソースです: https://github.com/haofanwang/ControlNet-for -ディフューザー
T2I-ディフューザー用アダプター
#ControlNet と同様に、オープンソース T2I アダプターのディフューザーへの適応も同時にサポートしています。
コードはオープンソースです: https://github.com/haofanwang/T2I-Adapter-for-Diffusers
現在、上記の 3 つの適応ソリューションはコミュニティにオープンソース化されており、それぞれ ControlNet と T2I-Adapter で正式に認められており、stable-diffusion-webui-colab の作者からも感謝を受けています。 。私たちはディフューザー関係者との協議を続けており、近い将来、上記のソリューションの公式コードベースへの統合を完了する予定です。事前に当社の作品を試していただくことも可能です。ご質問がございましたら、直接問題を提起していただければ、できるだけ早く返信させていただきます。
以上がディフューザー フレームワークを適応させるための完全なチュートリアル セットがここにあります。 T2I アダプターから人気の ControlNet までの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。