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.
Example
It is recommended to use the checkpoint with
Stable Diffusion v1-5
as the checkpoint
has been trained on it.
Experimentally, the checkpoint can be used with other diffusion models such as dreamboothed stable diffusion.
Let's install
diffusers
and related packages:
$ pip install diffusers transformers accelerate
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')
Other released checkpoints v1-1
The authors released 14 different checkpoints, each trained with
Stable Diffusion v1-5
on a different type of conditioning:
control_v11e_sd15_ip2p huggingface.co is an AI model on huggingface.co that provides control_v11e_sd15_ip2p's model effect (), which can be used instantly with this lllyasviel control_v11e_sd15_ip2p model. huggingface.co supports a free trial of the control_v11e_sd15_ip2p model, and also provides paid use of the control_v11e_sd15_ip2p. Support call control_v11e_sd15_ip2p model through api, including Node.js, Python, http.
control_v11e_sd15_ip2p huggingface.co is an online trial and call api platform, which integrates control_v11e_sd15_ip2p's modeling effects, including api services, and provides a free online trial of control_v11e_sd15_ip2p, you can try control_v11e_sd15_ip2p online for free by clicking the link below.
lllyasviel control_v11e_sd15_ip2p online free url in huggingface.co:
control_v11e_sd15_ip2p is an open source model from GitHub that offers a free installation service, and any user can find control_v11e_sd15_ip2p on GitHub to install. At the same time, huggingface.co provides the effect of control_v11e_sd15_ip2p install, users can directly use control_v11e_sd15_ip2p installed effect in huggingface.co for debugging and trial. It also supports api for free installation.
control_v11e_sd15_ip2p install url in huggingface.co: