🚀 T2I-Adapter-SDXL - Sketch
T2I Adapter是一个为稳定扩散模型提供额外条件的网络。每个T2I检查点接收不同类型的条件作为输入,并与特定的基础稳定扩散检查点一起使用。
此检查点为StableDiffusionXL检查点提供草图条件。这是腾讯ARC和Hugging Face的合作成果。
📚 详细文档
模型详情
-
开发者:T2I-Adapter: Learning Adapters to Dig out More Controllable Ability for Text-to-Image Diffusion Models
-
模型类型:基于扩散的文本到图像生成模型
-
语言:英语
-
许可证: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}
}
检查点
演示
在Doodly Space中使用你自己的手绘草图/涂鸦来试用该模型!

💻 使用示例
基础用法
首先,安装所需的依赖项:
pip install -U git+https://github.com/huggingface/diffusers.git
pip install -U controlnet_aux==0.0.7
pip install transformers accelerate safetensors
操作步骤如下:
- 首先将图像下载为合适的控制图像格式。
- 将控制图像和提示词传递给
StableDiffusionXLAdapterPipeline
。
让我们来看一个使用Canny Adapter的简单示例。
依赖项
from diffusers import StableDiffusionXLAdapterPipeline, T2IAdapter, EulerAncestralDiscreteScheduler, AutoencoderKL
from diffusers.utils import load_image, make_image_grid
from controlnet_aux.pidi import PidiNetDetector
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)
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
📄 许可证
本模型使用的许可证为Apache 2.0。