🚀 Controlnet - v1.1 - 線條動漫版本
Controlnet v1.1是一個基於擴散模型的圖像生成工具,通過添加額外條件來控制圖像生成過程,本版本專注於線條動漫風格的圖像生成。
🚀 快速開始
Controlnet v1.1由Lvmin Zhang在lllyasviel/ControlNet-v1-1中發佈。此檢查點是將原始檢查點轉換為diffusers
格式後的版本,可與Stable Diffusion結合使用,例如runwayml/stable-diffusion-v1-5。
更多詳細信息,請查看🧨 Diffusers文檔。
ControlNet是一種神經網絡結構,通過添加額外條件來控制擴散模型。

此檢查點對應於基於線條動漫圖像的ControlNet。
✨ 主要特性
- 可與Stable Diffusion結合,實現線條動漫風格的圖像生成。
- 支持多種額外條件輸入,豐富圖像生成的控制方式。
- 訓練速度快,可在個人設備上進行訓練。
📦 安裝指南
安裝依賴庫
若要處理圖像以創建輔助條件,需要安裝以下外部依賴:
- 安裝https://github.com/patrickvonplaten/controlnet_aux
$ pip install controlnet_aux==0.3.0
- 安裝
diffusers
及相關包:
$ pip install diffusers transformers accelerate
💻 使用示例
基礎用法
建議將此檢查點與Stable Diffusion v1-5配合使用,因為該檢查點是基於此進行訓練的。實驗表明,此檢查點也可與其他擴散模型(如經過微調的Stable Diffusion)一起使用。
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 LineartAnimeDetector
from transformers import CLIPTextModel
from diffusers import (
ControlNetModel,
StableDiffusionControlNetPipeline,
UniPCMultistepScheduler,
)
checkpoint = "lllyasviel/control_v11p_sd15s2_lineart_anime"
image = load_image(
"https://huggingface.co/lllyasviel/control_v11p_sd15s2_lineart_anime/resolve/main/images/input.png"
)
image = image.resize((512, 512))
prompt = "A warrior girl in the jungle"
processor = LineartAnimeDetector.from_pretrained("lllyasviel/Annotators")
control_image = processor(image)
control_image.save("./images/control.png")
text_encoder = CLIPTextModel.from_pretrained("runwayml/stable-diffusion-v1-5", subfolder="text_encoder", num_hidden_layers=11, torch_dtype=torch.float16)
controlnet = ControlNetModel.from_pretrained(checkpoint, torch_dtype=torch.float16)
pipe = StableDiffusionControlNetPipeline.from_pretrained(
"runwayml/stable-diffusion-v1-5", text_encoder=text_encoder, 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進行增強,以支持邊緣圖、分割圖、關鍵點等條件輸入。這可能會豐富控制大型擴散模型的方法,並進一步促進相關應用的發展。
其他已發佈的檢查點v1-1
作者發佈了14種不同的檢查點,每種都在Stable Diffusion v1-5上針對不同類型的條件進行了訓練:
更多信息
更多信息,請查看Diffusers ControlNet博客文章和官方文檔。
📄 許可證
本項目採用CreativeML OpenRAIL M許可證。
⚠️ 重要提示
若要處理圖像以創建輔助條件,需要安裝外部依賴。
💡 使用建議
建議將此檢查點與Stable Diffusion v1-5配合使用,因為該檢查點是基於此進行訓練的。