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

このチェックポイントは、深度画像 を条件としたControlNetに対応しています。
✨ 主な機能
ControlNetは、追加の条件を加えることで拡散モデルを制御するニューラルネットワーク構造です。これにより、深度画像などの追加情報を利用して、Stable Diffusionなどの画像生成モデルを制御することができます。
📦 インストール
必要なパッケージのインストール
$ 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 transformers import pipeline
from diffusers import (
ControlNetModel,
StableDiffusionControlNetPipeline,
UniPCMultistepScheduler,
)
checkpoint = "lllyasviel/control_v11p_sd15_depth"
image = load_image(
"https://huggingface.co/lllyasviel/control_v11p_sd15_depth/resolve/main/images/input.png"
)
prompt = "Stormtrooper's lecture in beautiful lecture hall"
depth_estimator = pipeline('depth-estimation')
image = depth_estimator(image)['depth']
image = np.array(image)
image = image[:, :, None]
image = np.concatenate([image, image, image], axis=2)
control_image = Image.fromarray(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(0)
image = pipe(prompt, num_inference_steps=30, generator=generator, image=control_image).images[0]
image.save('images/image_out.png')



📚 ドキュメント
モデルの詳細
論文情報
ControlNetは、Lvmin ZhangとManeesh Agrawalaによる Adding Conditional Control to Text-to-Image Diffusion Models で提案されました。
論文の概要は以下の通りです。
我々は、事前学習された大規模拡散モデルを制御して追加の入力条件をサポートするニューラルネットワーク構造であるControlNetを提案します。ControlNetは、タスク固有の条件をエンドツーエンドで学習し、学習データセットが小さい場合(< 50k)でもロバストな学習が可能です。また、ControlNetの学習は拡散モデルの微調整と同じくらい速く、個人のデバイスでも学習できます。あるいは、強力な計算クラスタが利用可能な場合は、大量(数百万から数十億)のデータにスケーリングすることもできます。我々は、Stable Diffusionのような大規模拡散モデルにControlNetを追加することで、エッジマップ、深度マップ、キーポイントなどの条件付き入力を可能にすることを報告しています。これにより、大規模拡散モデルを制御する方法が豊富になり、関連するアプリケーションがさらに促進される可能性があります。
引用情報
@misc{zhang2023adding,
title={Adding Conditional Control to Text-to-Image Diffusion Models},
author={Lvmin Zhang and Maneesh Agrawala},
year={2023},
eprint={2302.05543},
archivePrefix={arXiv},
primaryClass={cs.CV}
}
📄 ライセンス
このモデルは The CreativeML OpenRAIL M license の下で公開されています。
その他のv1-1チェックポイント
著者は、Stable Diffusion v1-5 を用いて、異なるタイプの条件付きで学習された14種類のチェックポイントを公開しています。