项目介绍:control_v11p_sd15s2_lineart_anime
项目概述
control_v11p_sd15s2_lineart_anime项目是一个基于ControlNet技术开发的图像生成模型,旨在通过增加附加条件控制图像生成过程。此项目主要用于生成动漫风格的线条画,能够有效地增强生成图像的多样性和可控性。这一项目由Lvmin Zhang和Maneesh Agrawala共同开发,并以开源的方式发布。
模型背景
ControlNet是一种为扩散模型增加条件控制的神经网络结构。该技术能够在学习任务特定的条件下进行端到端训练,即使训练数据集较小(少于5万张)也具有较强的训练能力。训练过程能够在个人设备上进行,也可以在大型计算集群上扩展处理大量的数据(数百万到数十亿)。
技术核心
ControlNet技术通过增加条件输入,如边缘图、分割图和关键点等,丰富了大规模扩散模型的控制方式,进一步促进相关应用的发展。在这个项目中,ControlNet被用于特定的动漫线条画生成。
模型详情
- 开发者: Lvmin Zhang, Maneesh Agrawala
- 模型类型: 基于扩散的文本生成图像模型
- 语言: 英文
- 许可证: CreativeML OpenRAIL M许可证
- 相关资源:
使用示例
模型结合了Stable Diffusion v1-5,可以通过给定的动漫线条画图像与文本提示生成新图像。以下是基本的使用步骤:
-
安装必要的包和依赖:
$ pip install controlnet_aux==0.3.0 $ pip install diffusers transformers accelerate
-
使用Python代码生成图像:
import torch from diffusers import ControlNetModel, StableDiffusionControlNetPipeline, UniPCMultistepScheduler from controlnet_aux import LineartAnimeDetector from transformers import CLIPTextModel from diffusers.utils import load_image from PIL import Image # 加载模型 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) # 文本编码器和ControlNet模型初始化 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) 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 v1-1还包括其他13个不同条件训练的检查点,如使用边缘检测、像素到像素指令、图像修复等方法进行训练。
结语
对于任何对影像生成、动漫创作和扩散模型控制感兴趣的个人或团队,control_v11p_sd15s2_lineart_anime提供了一种强大而灵活的工具。更多信息可以访问ControlNet的官方文档。