为Stable Diffusion XL提供手绘草图条件控制,通过PidiNet边缘检测处理黑白线稿,实现文本引导的精准图像生成,参数仅77/79M,轻量高效。【此简介由AI生成】
license: apache-2.0 base_model: stabilityai/stable-diffusion-xl-base-1.0 tags:
- art
- t2i-adapter
- image-to-image
- stable-diffusion-xl-diffusers
- stable-diffusion-xl
T2I-Adapter-SDXL - 草图版
T2I Adapter 是一种为稳定扩散模型提供额外条件控制的网络。每个 t2i 检查点接收不同类型的条件输入,并与特定的基础稳定扩散检查点配合使用。
本检查点专为 StableDiffusionXL 检查点提供草图条件控制功能。该项目由腾讯 ARC 与 Hugging Face 联合研发。
模型详情
-
开发机构: T2I-Adapter:通过学习适配器挖掘文本到图像扩散模型的更多可控能力
-
模型类型: 基于扩散的文本生成图像模型
-
支持语言: 英语
-
许可证: Apache 2.0
-
更多信息: GitHub 代码库、论文
-
模型复杂度: | | SD-V1.4/1.5 | SD-XL | T2I-Adapter | T2I-Adapter-SDXL | | --- | --- |--- |--- |--- | | 参数量 | 8.6亿 | 26亿 |7700万 | 7700/7900万 | |
-
引用格式:
@misc{ title={T2I-Adapter: Learning Adapters to Dig out More Controllable Ability for Text-to-Image Diffusion Models}, author={Chong Mou, Xintao Wang, Liangbin Xie, Yanze Wu, Jian Zhang, Zhongang Qi, Ying Shan, Xiaohu Qie}, year={2023}, eprint={2302.08453}, archivePrefix={arXiv}, primaryClass={cs.CV} }
检查点列表
| 模型名称 | 控制图像概述 | 控制图像示例 | 生成图像示例 |
|---|---|---|---|
| TencentARC/t2i-adapter-canny-sdxl-1.0 基于Canny边缘检测训练 |
黑白边缘图像,黑色背景上呈现白色边缘线 | ![]() |
![]() |
| TencentARC/t2i-adapter-sketch-sdxl-1.0 基于PidiNet边缘检测训练 |
手绘黑白草图,黑色背景上呈现白色轮廓线 | ![]() |
![]() |
| TencentARC/t2i-adapter-lineart-sdxl-1.0 基于线稿边缘检测训练 |
手绘黑白线稿,黑色背景上呈现白色轮廓线 | ![]() |
![]() |
| TencentARC/t2i-adapter-depth-midas-sdxl-1.0 基于Midas深度估计训练 |
灰度深度图,黑色代表深远区域,白色代表浅近区域 | ![]() |
![]() |
| TencentARC/t2i-adapter-depth-zoe-sdxl-1.0 基于Zoe深度估计训练 |
灰度深度图,黑色代表深远区域,白色代表浅近区域 | ![]() |
![]() |
| TencentARC/t2i-adapter-openpose-sdxl-1.0 基于OpenPose骨骼图像训练 |
OpenPose骨骼图像 | ![]() |
![]() |
演示:
在Doodly Space中尝试使用您自己的手绘草图/涂鸦来体验该模型!

示例
开始之前,请先安装所需的依赖项:
pip install -U git+https://github.com/huggingface/diffusers.git
pip install -U controlnet_aux==0.0.7 # for conditioning models and detectors
pip install transformers accelerate safetensors
- 图像首先会被下载并转换为适当的控制图像格式。
- 控制图像和提示词将被传入
StableDiffusionXLAdapterPipeline。
让我们通过一个使用Canny适配器的简单示例来了解这个过程。
- 依赖项
from diffusers import StableDiffusionXLAdapterPipeline, T2IAdapter, EulerAncestralDiscreteScheduler, AutoencoderKL
from diffusers.utils import load_image, make_image_grid
from controlnet_aux.pidi import PidiNetDetector
import torch
# load adapter
adapter = T2IAdapter.from_pretrained(
"TencentARC/t2i-adapter-sketch-sdxl-1.0", torch_dtype=torch.float16, varient="fp16"
).to("cuda")
# load euler_a scheduler
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)
pipe = StableDiffusionXLAdapterPipeline.from_pretrained(
model_id, vae=vae, adapter=adapter, scheduler=euler_a, torch_dtype=torch.float16, variant="fp16",
).to("cuda")
pipe.enable_xformers_memory_efficient_attention()
pidinet = PidiNetDetector.from_pretrained("lllyasviel/Annotators").to("cuda")
- 条件图像
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
)
- 图像生成
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"
gen_images = pipe(
prompt=prompt,
negative_prompt=negative_prompt,
image=image,
num_inference_steps=30,
adapter_conditioning_scale=0.9,
guidance_scale=7.5,
).images[0]
gen_images.save('out_sketch.png')
训练流程
我们的训练脚本基于官方提供的训练方案构建。
该模型在LAION-Aesthetics V2数据集的300万张高分辨率图文配对样本上进行训练,关键参数如下:
- 训练步数:20000步
- 批量大小:采用数据并行策略,单GPU批量大小为
16,总批量大小为256 - 学习率:恒定学习率
1e-5 - 混合精度:fp16模式











