t2i-adapter-sketch-sdxl-1.0:基于手绘草图的Stable Diffusion XL可控文本到图像生成适配器

为Stable Diffusion XL提供手绘草图条件控制,通过PidiNet边缘检测处理黑白线稿,实现文本引导的精准图像生成,参数仅77/79M,轻量高效。【此简介由AI生成】

分支1Tags0

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 检查点提供草图条件控制功能。该项目由腾讯 ARCHugging 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
  1. 图像首先会被下载并转换为适当的控制图像格式。
  2. 控制图像提示词将被传入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模式

项目介绍

为Stable Diffusion XL提供手绘草图条件控制,通过PidiNet边缘检测处理黑白线稿,实现文本引导的精准图像生成,参数仅77/79M,轻量高效。【此简介由AI生成】

定制我的领域

下载使用量

0

项目总下载次数(含Clone、Pull、 zip 包及 release 下载),每日凌晨更新