HuggingFace Diffusers 0.14 : リリースノート – ControlNet, 8K VAE デコーディング

HuggingFace Diffusers 0.14 : リリースノート – ControlNet, 8K VAE デコーディング (翻訳/解説)

翻訳 : (株)クラスキャット セールスインフォメーション
作成日時 : 04/01/2023 (v0.14.0 – 2/E 2023)

* 本ページは、HuggingFace Diffusers の以下のドキュメントを翻訳した上で適宜、補足説明したものです:

* サンプルコードの動作確認はしておりますが、必要な場合には適宜、追加改変しています。
* ご自由にリンクを張って頂いてかまいませんが、sales-info@classcat.com までご一報いただけると嬉しいです。

 

クラスキャット 人工知能 研究開発支援サービス

クラスキャット は人工知能・テレワークに関する各種サービスを提供しています。お気軽にご相談ください :

◆ 人工知能とビジネスをテーマに WEB セミナーを定期的に開催しています。スケジュール
  • お住まいの地域に関係なく Web ブラウザからご参加頂けます。事前登録 が必要ですのでご注意ください。

お問合せ : 本件に関するお問い合わせ先は下記までお願いいたします。

  • 株式会社クラスキャット セールス・マーケティング本部 セールス・インフォメーション
  • sales-info@classcat.com  ;  Web: www.classcat.com  ;   ClassCatJP

 

 

HuggingFace Diffusers 0.14 : リリースノート – ControlNet, 8K VAE デコーディング

🚀 ControlNet comes to 🧨 Diffusers!

Thanks to an amazing collaboration with community member @takuma104 🙌, diffusers fully supports ControlNet! 論文からの 8 つすべての制御モデルが利用可能です : 深度, 走り描き, エッジ, 等々。特に、Diffusers が提供する他の利点や最適化をそのまま活用できて、ControlNet の超高速な実装を実現しています。Take it for a spin to see for yourself.

ControlNet はオリジナルの Stable Diffusion モデルの幾つかの層のコピーを (深度マップや走り描きのような) 追加の信号上で訓練することで動作します。訓練後には、実現したい構成の強力なヒントとして深度マップを提供することができて、Stable Diffusion に詳細を埋めさせることができます。例えば :

Before

After

現在、8 つの公開制御モデルがあり、それらのすべては runwayml/stable-diffusion-v1-5 (i.e., Stable Diffusion version 1.5) で訓練されました。This is an example that uses the scribble controlnet model:

Before

After

Or you can turn a cartoon into a realistic photo with incredible coherence:

diffusers で ControlNet をどのように使うのでしょう?このようにです (canny エッジ制御モデルのサンプル) :

from diffusers import StableDiffusionControlNetPipeline, ControlNetModel
import torch

controlnet = ControlNetModel.from_pretrained("lllyasviel/sd-controlnet-canny", torch_dtype=torch.float16)
pipe = StableDiffusionControlNetPipeline.from_pretrained(
    "runwayml/stable-diffusion-v1-5", controlnet=controlnet, torch_dtype=torch.float16
)

通常のように、diffusers ツールボックスのすべての機能を利用できます : 超高速スケジューラ, メモリ効率的アテンション, モデルオフローディング, 等。We think 🧨 Diffusers is the best way to iterate on your ControlNet experiments!

詳細は ブログ投稿ドキュメント を参照してください。

(And, coming soon, ControlNet training – stay tuned!)

 

💠 超高解像度生成のための VAE タイリング

別のコミュニティメンバー @kig は素晴らしい PR を思いつき、提案し、完全に実装しました、それはメモリが膨らむことなく、超高解像度画像の生成を可能にします 🤯。それらはプロセスの画像デコーディング・フェイズの間タイリングアプローチに従い、画像のピースを一度に生成してから、それらを一緒に縫い合わせます。タイルはそれらの間の visible seems (訳注: 原文ママ) を回避するために注意深く混合 (blend) され、最終的な結果は素晴らしいものです。This is the additional code you need to use to enjoy high-resolution generations:

pipe.vae.enable_tiling()

That’s it!

For a complete example, refer to the PR or the code snippet we reproduce here for your convenience:

import torch
from diffusers import StableDiffusionPipeline

pipe = StableDiffusionPipeline.from_pretrained("runwayml/stable-diffusion-v1-5", revision="fp16", torch_dtype=torch.float16)
pipe = pipe.to("cuda")
pipe.enable_xformers_memory_efficient_attention()
pipe.vae.enable_tiling()

prompt = "a beautiful landscape photo"
image = pipe(prompt, width=4096, height=2048, num_inference_steps=10).images[0]

image.save("4k_landscape.jpg")

 

以上