🚀 Controlnet - v1.1 - Tile Version
Controlnet v1.1は、Lvmin Zhangによってlllyasviel/ControlNet-v1-1でリリースされました。
このチェックポイントは、元のチェックポイントをdiffusers
形式に変換したものです。
Stable Diffusion、例えばrunwayml/stable-diffusion-v1-5と組み合わせて使用することができます。
詳細については、🧨 Diffusers docsもご覧ください。
ControlNetは、追加の条件を加えることで拡散モデルを制御するニューラルネットワーク構造です。

このチェックポイントは、タイル画像を条件とするControlNetに対応しています。概念的には、超解像モデルに似ていますが、それに限定されることなく使用できます。入力(条件)画像と同じサイズの詳細を生成することも可能です。
このモデルはtakuma104によって提供されました
📚 ドキュメント
モデルの詳細
導入
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種類の異なるチェックポイントをリリースしました。
📦 インストール
このチェックポイントはStable Diffusion v1-5で学習されているため、これと組み合わせて使用することをお勧めします。
実験的には、このチェックポイントはdreamboothed stable diffusionなどの他の拡散モデルとも使用できます。
diffusers
と関連パッケージをインストールしましょう。
$ pip install diffusers transformers accelerate
💻 使用例
基本的な使用法
import torch
from PIL import Image
from diffusers import ControlNetModel, DiffusionPipeline
from diffusers.utils import load_image
def resize_for_condition_image(input_image: Image, resolution: int):
input_image = input_image.convert("RGB")
W, H = input_image.size
k = float(resolution) / min(H, W)
H *= k
W *= k
H = int(round(H / 64.0)) * 64
W = int(round(W / 64.0)) * 64
img = input_image.resize((W, H), resample=Image.LANCZOS)
return img
controlnet = ControlNetModel.from_pretrained('lllyasviel/control_v11f1e_sd15_tile',
torch_dtype=torch.float16)
pipe = DiffusionPipeline.from_pretrained("runwayml/stable-diffusion-v1-5",
custom_pipeline="stable_diffusion_controlnet_img2img",
controlnet=controlnet,
torch_dtype=torch.float16).to('cuda')
pipe.enable_xformers_memory_efficient_attention()
source_image = load_image('https://huggingface.co/lllyasviel/control_v11f1e_sd15_tile/resolve/main/images/original.png')
condition_image = resize_for_condition_image(source_image, 1024)
image = pipe(prompt="best quality",
negative_prompt="blur, lowres, bad anatomy, bad hands, cropped, worst quality",
image=condition_image,
controlnet_conditioning_image=condition_image,
width=condition_image.size[0],
height=condition_image.size[1],
strength=1.0,
generator=torch.manual_seed(0),
num_inference_steps=32,
).images[0]
image.save('output.png')

📄 ライセンス
このモデルはThe CreativeML OpenRAIL M licenseの下で提供されています。