đ Controlnet - v1.1 - instruct pix2pix Version
ControlNet is a neural network structure that enables the control of diffusion models by incorporating additional conditions. This specific checkpoint, converted from the original into the diffusers
format, can be used in conjunction with Stable Diffusion to generate images based on various conditional inputs.
đ Quick Start
Installation
- Let's install
diffusers
and related packages:
$ pip install diffusers transformers accelerate
Usage
- Run code:
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 diffusers import (
ControlNetModel,
StableDiffusionControlNetPipeline,
UniPCMultistepScheduler,
)
checkpoint = "lllyasviel/control_v11e_sd15_ip2p"
image = load_image("https://huggingface.co/lllyasviel/control_v11e_sd15_ip2p/resolve/main/images/input.png").convert('RGB')
prompt = "make it on fire"
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=image).images[0]
image.save('images/image_out.png')


⨠Features
- Conditional Control: ControlNet allows diffusion models like Stable Diffusion to accept conditional inputs such as edge maps, segmentation maps, keypoints, etc., enriching the control methods for large diffusion models.
- Fast Training: Training a ControlNet is as fast as fine - tuning a diffusion model and can be done on personal devices with small datasets or scaled to large amounts of data with powerful computation clusters.
đ Documentation
Model Details
Introduction
Controlnet was proposed in Adding Conditional Control to Text - to - Image Diffusion Models by Lvmin Zhang and Maneesh Agrawala.
The abstract reads as follows:
We present a neural network structure, ControlNet, to control pretrained large diffusion models to support additional input conditions. The ControlNet learns task - specific conditions in an end - to - end way, and the learning is robust even when the training dataset is small (< 50k). Moreover, training a ControlNet is as fast as fine - tuning a diffusion model, and the model can be trained on a personal devices. Alternatively, if powerful computation clusters are available, the model can scale to large amounts (millions to billions) of data. We report that large diffusion models like Stable Diffusion can be augmented with ControlNets to enable conditional inputs like edge maps, segmentation maps, keypoints, etc. This may enrich the methods to control large diffusion models and further facilitate related applications.
Other released checkpoints v1 - 1
The authors released 14 different checkpoints, each trained with Stable Diffusion v1 - 5 on a different type of conditioning:
đ License
This project is licensed under The CreativeML OpenRAIL M license.