🚀 Controlnet - v1.1 - normalbae Version
Controlnet v1.1は、拡散モデルに追加条件を加えることで制御するニューラルネットワーク構造です。このモデルは、Stable Diffusionと組み合わせて使用することができ、画像生成における条件付き入力を可能にします。
🚀 クイックスタート
Controlnet v1.1は、Controlnet v1.0の後継モデルで、Lvmin Zhangによってlllyasviel/ControlNet-v1-1で公開されました。
このチェックポイントは、元のチェックポイントをdiffusers
形式に変換したもので、Stable Diffusion v1-5などのStable Diffusionと組み合わせて使用することができます。
詳細については、🧨 Diffusers docsも参照してください。

このチェックポイントは、normalbae画像を条件としたControlNetに対応しています。
✨ 主な機能
ControlNetは、事前学習された大規模拡散モデルを制御して、追加の入力条件をサポートするニューラルネットワーク構造です。ControlNetは、エンドツーエンドでタスク固有の条件を学習し、訓練データセットが小さい場合でも(< 50k)ロバストな学習が可能です。また、ControlNetの訓練は、拡散モデルの微調整と同じくらい速く、パーソナルデバイスで訓練することもできます。
📦 インストール
外部依存関係のインストール
画像を処理して補助条件を作成する場合は、以下の外部依存関係が必要です。
$ pip install controlnet_aux==0.3.0
diffusersと関連パッケージのインストール
$ pip install diffusers transformers accelerate
💻 使用例
基本的な使用法
import torch
import os
from huggingface_hub import HfApi
from pathlib import Path
from diffusers.utils import load_image
from PIL import Image
import numpy as np
from controlnet_aux import NormalBaeDetector
from diffusers import (
ControlNetModel,
StableDiffusionControlNetPipeline,
UniPCMultistepScheduler,
)
checkpoint = "lllyasviel/control_v11p_sd15_normalbae"
image = load_image(
"https://huggingface.co/lllyasviel/control_v11p_sd15_normalbae/resolve/main/images/input.png"
)
prompt = "A head full of roses"
processor = NormalBaeDetector.from_pretrained("lllyasviel/Annotators")
control_image = processor(image)
control_image.save("./images/control.png")
controlnet = ControlNetModel.from_pretrained(checkpoint, torch_dtype=torch.float16)
pipe = StableDiffusionControlNetPipeline.from_pretrained(
"runwayml/stable-diffusion-v1-5", controlnet=controlnet, torch_dtype=torch.float16
)
pipe.scheduler = UniPCMultistepScheduler.from_config(pipe.scheduler.config)
pipe.enable_model_cpu_offload()
generator = torch.manual_seed(33)
image = pipe(prompt, num_inference_steps=30, generator=generator, image=control_image).images[0]
image.save('images/image_out.png')
高度な使用法
このチェックポイントは、Stable Diffusion v1-5で訓練されているため、これとの組み合わせが推奨されます。実験的には、dreamboothed stable diffusionなどの他の拡散モデルとも使用できます。

📚 ドキュメント
モデルの詳細
概要
Controlnetは、Lvmin ZhangとManeesh AgrawalaによるAdding Conditional Control to Text-to-Image Diffusion Modelsで提案されました。
概要は以下の通りです。
我々は、事前学習された大規模拡散モデルを制御して、追加の入力条件をサポートするニューラルネットワーク構造であるControlNetを提案します。ControlNetは、エンドツーエンドでタスク固有の条件を学習し、訓練データセットが小さい場合でも(< 50k)ロバストな学習が可能です。また、ControlNetの訓練は、拡散モデルの微調整と同じくらい速く、パーソナルデバイスで訓練することもできます。あるいは、強力な計算クラスターが利用可能な場合は、モデルを大量(数百万から数十億)のデータにスケールさせることができます。我々は、Stable Diffusionのような大規模拡散モデルにControlNetを追加することで、エッジマップ、セグメンテーションマップ、キーポイントなどの条件付き入力を可能にできることを報告します。これにより、大規模拡散モデルを制御する方法が豊富になり、関連するアプリケーションがさらに促進される可能性があります。
他の公開されたチェックポイントv1-1
著者らは、Stable Diffusion v1-5でそれぞれ異なるタイプの条件付きで訓練された14種類の異なるチェックポイントを公開しています。
📄 ライセンス
このモデルは、The CreativeML OpenRAIL M licenseの下で提供されています。これは、Open RAIL M licenseであり、BigScienceとthe RAIL Initiativeが共同で行っている責任あるAIライセンスの分野での作業から適応されています。