许可协议:Apache-2.0
基础模型:stabilityai/stable-diffusion-xl-base-1.0
标签:
- 艺术
- t2i-adapter
- 图像生成图像
- 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 |
| --- | --- |--- |--- |--- |
| 参数量 | 860M | 2.6B |77 M | 77/79 M |
-
引用格式:
@misc{
title={T2I-Adapter: 通过适配器挖掘文本到图像扩散模型的更多可控能力},
author={牟冲, 王新涛, 谢良彬, 吴彦泽, 张健, 齐中阳, 单瀛, 邱晓虎},
year={2023},
eprint={2302.08453},
archivePrefix={arXiv},
primaryClass={cs.CV}
}
检查点概览
使用示例
环境配置
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
from diffusers.utils import load_image
from controlnet_aux.lineart import LineartDetector
import torch
adapter = T2IAdapter.from_pretrained(
"TencentARC/t2i-adapter-lineart-sdxl-1.0",
torch_dtype=torch.float16,
variant="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()
line_detector = LineartDetector.from_pretrained("lllyasviel/Annotators").to("cuda")
- 准备条件图像
url = "https://huggingface.co/Adapter/t2iadapter/resolve/main/figs_SDXLV1.0/org_lin.jpg"
input_image = load_image(url)
condition_image = line_detector(input_image, detect_resolution=384, image_resolution=1024)
- 生成图像
prompt = "冰龙咆哮,4K高清照片"
negative_prompt = "动漫, 卡通, 图形, 文字, 油画, 蜡笔, 抽象, 故障, 畸形, 丑陋"
output_image = pipe(
prompt=prompt,
negative_prompt=negative_prompt,
image=condition_image,
num_inference_steps=30,
adapter_conditioning_scale=0.8,
guidance_scale=7.5
).images[0]
output_image.save('output_lineart.png')
训练说明
本模型基于官方训练脚本开发(详见此处),使用LAION-Aesthetics V2数据集的300万高清图文对进行训练,关键参数:
- 训练步数:20000
- 批量大小:单GPU批大小16(总批大小256)
- 学习率:恒定1e-5
- 混合精度:fp16