モデル概要
モデル特徴
モデル能力
使用事例
🚀 Controlnet - v1.1 - Canny Version
Controlnet v1.1は、Controlnet v1.0の後継モデルで、Lvmin Zhangによってlllyasviel/ControlNet-v1-1で公開されました。
このチェックポイントは、元のチェックポイントをdiffusers
形式に変換したものです。Stable Diffusion、例えばrunwayml/stable-diffusion-v1-5と組み合わせて使用することができます。
詳細については、🧨 Diffusers docsも参照してください。
ControlNetは、追加の条件を加えることで拡散モデルを制御するニューラルネットワーク構造です。
このチェックポイントは、Cannyエッジを条件としたControlNetに対応しています。
🚀 クイックスタート
このモデルを使用するには、以下の手順に従ってください。まず、必要な外部依存関係をインストールし、その後サンプルコードを実行します。
依存関係のインストール
- opencvをインストールします。
$ pip install opencv-contrib-python
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
import numpy as np
import cv2
from PIL import Image
from diffusers import (
ControlNetModel,
StableDiffusionControlNetPipeline,
UniPCMultistepScheduler,
)
checkpoint = "lllyasviel/control_v11p_sd15_canny"
image = load_image(
"https://huggingface.co/lllyasviel/control_v11p_sd15_canny/resolve/main/images/input.png"
)
image = np.array(image)
low_threshold = 100
high_threshold = 200
image = cv2.Canny(image, low_threshold, high_threshold)
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(33)
image = pipe("a blue paradise bird in the jungle", num_inference_steps=20, generator=generator, image=control_image).images[0]
image.save('images/image_out.png')
実行結果の確認
✨ 主な機能
ControlNetは、事前学習された大規模拡散モデルを制御して、追加の入力条件をサポートするニューラルネットワーク構造です。このモデルは、特定のタスク条件をエンドツーエンドで学習し、訓練データセットが小さい場合でもロバストに学習することができます。また、ControlNetの訓練は拡散モデルの微調整と同じくらい速く、個人のデバイスでも訓練することができます。
📦 インストール
このチェックポイントを使用するには、以下の依存関係をインストールする必要があります。
- opencvのインストール
$ pip install opencv-contrib-python
diffusers
と関連パッケージのインストール
$ pip install diffusers transformers accelerate
💻 使用例
基本的な使用法
このチェックポイントは、Stable Diffusion v1-5と一緒に使用することを推奨します。
import torch
import os
from huggingface_hub import HfApi
from pathlib import Path
from diffusers.utils import load_image
import numpy as np
import cv2
from PIL import Image
from diffusers import (
ControlNetModel,
StableDiffusionControlNetPipeline,
UniPCMultistepScheduler,
)
checkpoint = "lllyasviel/control_v11p_sd15_canny"
image = load_image(
"https://huggingface.co/lllyasviel/control_v11p_sd15_canny/resolve/main/images/input.png"
)
image = np.array(image)
low_threshold = 100
high_threshold = 200
image = cv2.Canny(image, low_threshold, high_threshold)
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(33)
image = pipe("a blue paradise bird in the jungle", num_inference_steps=20, generator=generator, image=control_image).images[0]
image.save('images/image_out.png')
高度な使用法
実験的に、このチェックポイントはdreamboothed stable diffusionなどの他の拡散モデルと一緒に使用することもできます。
📚 ドキュメント
モデルの詳細
属性 | 详情 |
---|---|
開発者 | Lvmin Zhang, Maneesh Agrawala |
モデルタイプ | 拡散ベースのテキストから画像への生成モデル |
言語 | 英語 |
ライセンス | The CreativeML OpenRAIL M licenseは、Open RAIL M licenseであり、BigScienceとthe RAIL Initiativeが共同で行っている責任あるAIライセンスの分野の作業から適応されています。詳細については、the article about the BLOOM Open RAIL licenseも参照してください。 |
詳細情報のリソース | GitHub Repository, Paper |
モデルの紹介
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種類の異なるチェックポイントを公開しています。
モデル名 | 制御画像の概要 | 条件画像 | 制御画像の例 | 生成画像の例 |
---|---|---|---|---|
lllyasviel/control_v11p_sd15_canny |
Cannyエッジ検出で訓練された | 黒い背景に白いエッジがあるモノクロ画像。 | ![]() |
![]() |
lllyasviel/control_v11e_sd15_ip2p |
ピクセルからピクセルへの指示で訓練された | 条件なし。 | ![]() |
![]() |
lllyasviel/control_v11p_sd15_inpaint |
画像のインペイントで訓練された | 条件なし。 | ![]() |
![]() |
lllyasviel/control_v11p_sd15_mlsd |
多レベルの線分検出で訓練された | 注釈付きの線分がある画像。 | ![]() |
![]() |
lllyasviel/control_v11f1p_sd15_depth |
深度推定で訓練された | 深度情報がある画像。通常はグレースケール画像として表されます。 | ![]() |
![]() |
lllyasviel/control_v11p_sd15_normalbae |
表面法線推定で訓練された | 表面法線情報がある画像。通常は色分けされた画像として表されます。 | ![]() |
![]() |
lllyasviel/control_v11p_sd15_seg |
画像のセグメンテーションで訓練された | セグメント化された領域がある画像。通常は色分けされた画像として表されます。 | ![]() |
![]() |
lllyasviel/control_v11p_sd15_lineart |
ラインアート生成で訓練された | 白い背景に黒い線があるラインアート画像。 | ![]() |
![]() |
lllyasviel/control_v11p_sd15s2_lineart_anime |
アニメスタイルのラインアート生成で訓練された | アニメスタイルのラインアートがある画像。 | ![]() |
![]() |
lllyasviel/control_v11p_sd15_openpose |
人間のポーズ推定で訓練された | 人間のポーズがある画像。通常はキーポイントまたはスケルトンのセットとして表されます。 | ![]() |
![]() |
lllyasviel/control_v11p_sd15_scribble |
スクリブルベースの画像生成で訓練された | スクリブルがある画像。通常はランダムまたはユーザーが描いたストロークです。 | ![]() |
![]() |
lllyasviel/control_v11p_sd15_softedge |
ソフトエッジ画像生成で訓練された | ソフトエッジがある画像。通常はより絵画的または芸術的な効果を作り出すために使用されます。 | ![]() |
![]() |
lllyasviel/control_v11e_sd15_shuffle |
画像のシャッフルで訓練された | パッチまたは領域がシャッフルされた画像。 | ![]() |
![]() |
lllyasviel/control_v11f1e_sd15_tile |
画像のタイリングで訓練された | ぼやけた画像または画像の一部。 | ![]() |
🔧 技術詳細
ControlNetは、事前学習された大規模拡散モデルを制御して、追加の入力条件をサポートするニューラルネットワーク構造です。このモデルは、特定のタスク条件をエンドツーエンドで学習し、訓練データセットが小さい場合でもロバストに学習することができます。また、ControlNetの訓練は拡散モデルの微調整と同じくらい速く、個人のデバイスでも訓練することができます。
📄 ライセンス
このモデルは、The CreativeML OpenRAIL M licenseの下で公開されています。
⚠️ 重要提示
画像を処理して補助条件を作成する場合は、以下に示すように外部依存関係が必要です。
💡 使用建议
このチェックポイントは、Stable Diffusion v1-5と一緒に使用することを推奨します。

