项目介绍:T2I-Adapter-SDXL-1.0 - Sketch
T2I-Adapter-SDXL-1.0是一个在图像生成领域中创新的项目,由腾讯ARC和Hugging Face合作开发。这个项目旨在为稳定扩散模型提供额外的条件网络支持,使得模型在文本到图像生成过程中能够实现更强的可控性。
模型细节
- 开发团队: T2I-Adapter:学习适配器以挖掘文本到图像扩散模型的更多可控能力。
- 模型类型: 基于扩散的文本到图像生成模型。
- 开发语言: 英语。
- 许可证: Apache 2.0。
这个模型在基本稳定扩散模型的基础上,增加了一层针对草图的条件输入。其核心目的是增强模型从文本生成图像的能力,特别是在图像风格和细节上实现更精细的控制。
检查点
该项目提供了一系列不同的模型检查点,每个检查点是为特定的图像条件输入而训练的。这些条件包括线条画、深度图等。例如:
- TencentARC/t2i-adapter-sketch-sdxl-1.0:使用PidiNet边缘检测训练,支持手绘草图的生成。
- TencentARC/t2i-adapter-canny-sdxl-1.0:使用Canny边缘检测训练。
- TencentARC/t2i-adapter-lineart-sdxl-1.0:使用线条艺术边缘检测训练。
- TencentARC/t2i-adapter-depth-midas-sdxl-1.0:使用Midas深度估计训练。
使用教程
用户可以通过简单的安装步骤开始使用这款工具,用自己的手绘草图进行图像生成:
-
安装所需的Python依赖:
pip install -U git+https://github.com/huggingface/diffusers.git pip install -U controlnet_aux==0.0.7 pip install transformers accelerate safetensors
-
加载并配置模型:
from diffusers import StableDiffusionXLAdapterPipeline, T2IAdapter, EulerAncestralDiscreteScheduler, AutoencoderKL import torch # 加载适配器 adapter = T2IAdapter.from_pretrained( "TencentARC/t2i-adapter-sketch-sdxl-1.0", torch_dtype=torch.float16, varient="fp16" ).to("cuda") # 配置光线跟踪 model_id = 'stabilityai/stable-diffusion-xl-base-1.0' euler_a = EulerAncestralDiscreteScheduler.from_pretrained(model_id, subfolder="scheduler") vae = AutoencoderKL.from_pretrained("madebyollin/sdxl-vae-fp16-fix", torch_dtype=torch.float16)
-
条件生成并保存图像:
from controlnet_aux.pidi import PidiNetDetector pidinet = PidiNetDetector.from_pretrained("lllyasviel/Annotators").to("cuda") # 从URL加载并处理条件图像 url = "https://huggingface.co/Adapter/t2iadapter/resolve/main/figs_SDXLV1.0/org_sketch.png" image = load_image(url) image = pidinet(image, detect_resolution=1024, image_resolution=1024, apply_filter=True) # 执行生成过程 gen_images = pipe( prompt="a robot, mount fuji in the background, 4k photo, highly detailed", negative_prompt="extra digit, fewer digits, cropped, worst quality, low quality, glitch, deformed, mutated, ugly, disfigured", image=image, num_inference_steps=30, adapter_conditioning_scale=0.9, guidance_scale=7.5, ).images[0] gen_images.save('out_sketch.png')
训练
该模型是在大规模的高分辨率图像-文本对上进行训练,以实现高质量的生成体验:
- 训练步骤: 20000步
- 批处理大小: 单GPU批量大小为16,总批处理大小为256
- 学习率: 固定学习率为
1e-5
- 混合精度: fp16
T2I-Adapter-SDXL-1.0项目通过其创新的技术,为艺术家和开发者提供了一个更灵活工具,使得复杂的场景与图像风格可以通过简单的文本描述和基础草图生成。