🚀 Controlnet - HED Boundary Version
ControlNetは、追加の条件を加えることで拡散モデルを制御するニューラルネットワーク構造です。このチェックポイントは、HED境界を条件としたControlNetに対応しています。Stable Diffusionと組み合わせて使用することができます。

📚 ドキュメント
モデルの詳細
概要
Controlnetは、Lvmin ZhangとManeesh Agrawalaによる Adding Conditional Control to Text-to-Image Diffusion Models で提案されました。
概要は以下の通りです。
事前学習された大規模拡散モデルを制御し、追加の入力条件をサポートするためのニューラルネットワーク構造であるControlNetを提案します。ControlNetは、タスク固有の条件をエンドツーエンドで学習し、学習データセットが小さい場合(< 50k)でもロバストな学習が可能です。さらに、ControlNetの学習は拡散モデルの微調整と同じくらい速く、個人のデバイスでも学習できます。あるいは、強力な計算クラスターが利用可能な場合、モデルは大量(数百万から数十億)のデータにスケールできます。Stable Diffusionのような大規模拡散モデルにControlNetを追加することで、エッジマップ、セグメンテーションマップ、キーポイントなどの条件入力を可能にできることを報告します。これにより、大規模拡散モデルを制御する方法が豊富になり、関連するアプリケーションがさらに促進される可能性があります。
公開されたチェックポイント
著者らは、Stable Diffusion v1 - 5 をベースに、異なるタイプの条件付けで学習された8つの異なるチェックポイントを公開しました。
💻 使用例
基本的な使用法
このチェックポイントは Stable Diffusion v1 - 5 で学習されているため、同モデルと組み合わせて使用することを推奨します。実験的には、dreamboothed stable diffusionなどの他の拡散モデルとも使用できます。
⚠️ 重要提示
画像を処理して補助条件を作成する場合は、以下に示すように外部依存関係が必要です。
- https://github.com/patrickvonplaten/controlnet_aux をインストールします。
$ pip install controlnet_aux
diffusers
と関連パッケージをインストールします。
$ pip install diffusers transformers accelerate
- コードを実行します。
from PIL import Image
from diffusers import StableDiffusionControlNetPipeline, ControlNetModel, UniPCMultistepScheduler
import torch
from controlnet_aux import HEDdetector
from diffusers.utils import load_image
hed = HEDdetector.from_pretrained('lllyasviel/ControlNet')
image = load_image("https://huggingface.co/lllyasviel/sd-controlnet-hed/resolve/main/images/man.png")
image = hed(image)
controlnet = ControlNetModel.from_pretrained(
"lllyasviel/sd-controlnet-hed", torch_dtype=torch.float16
)
pipe = StableDiffusionControlNetPipeline.from_pretrained(
"runwayml/stable-diffusion-v1-5", controlnet=controlnet, safety_checker=None, torch_dtype=torch.float16
)
pipe.scheduler = UniPCMultistepScheduler.from_config(pipe.scheduler.config)
pipe.enable_xformers_memory_efficient_attention()
pipe.enable_model_cpu_offload()
image = pipe("oil painting of handsome old man, masterpiece", image, num_inference_steps=20).images[0]
image.save('images/man_hed_out.png')



学習
HEDエッジモデルは、300万のエッジ画像とキャプションのペアで学習されました。Stable Diffusion 1.5をベースモデルとして、Nvidia A100 80Gを使用して600GPU時間学習されました。
ブログ記事
詳細については、公式ControlNetブログ記事 も参照してください。
📄 ライセンス
このモデルは The CreativeML OpenRAIL M license の下で提供されています。