HuggingFace Diffusers 0.14 : リリースノート – ControlNet, 8K VAE デコーディング (翻訳/解説)
翻訳 : (株)クラスキャット セールスインフォメーション
作成日時 : 04/01/2023 (v0.14.0 – 2/E 2023)
* 本ページは、HuggingFace Diffusers の以下のドキュメントを翻訳した上で適宜、補足説明したものです:
* サンプルコードの動作確認はしておりますが、必要な場合には適宜、追加改変しています。
* ご自由にリンクを張って頂いてかまいませんが、sales-info@classcat.com までご一報いただけると嬉しいです。
- 人工知能研究開発支援
- 人工知能研修サービス(経営者層向けオンサイト研修)
- テクニカルコンサルティングサービス
- 実証実験(プロトタイプ構築)
- アプリケーションへの実装
- 人工知能研修サービス
- PoC(概念実証)を失敗させないための支援
- お住まいの地域に関係なく 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")
以上