🚀 Small SDXL - controlnet: Canny
Small SDXL - controlnet: Canny 是基于 stabilityai/stable - diffusion - xl - base - 1.0 训练的控制网络权重,采用 Canny 条件。此检查点比原始的 XL 控制网络检查点小 7 倍。下面为你展示一些示例图片。
🚀 快速开始
安装依赖
确保首先安装所需的库:
pip install accelerate transformers safetensors opencv-python diffusers
运行示例代码
安装完成后,就可以运行以下代码:
from diffusers import ControlNetModel, StableDiffusionXLControlNetPipeline, AutoencoderKL
from diffusers.utils import load_image
from PIL import Image
import torch
import numpy as np
import cv2
prompt = "aerial view, a futuristic research complex in a bright foggy jungle, hard lighting"
negative_prompt = "low quality, bad quality, sketches"
image = load_image("https://huggingface.co/datasets/hf-internal-testing/diffusers-images/resolve/main/sd_controlnet/hf-logo.png")
controlnet_conditioning_scale = 0.5
controlnet = ControlNetModel.from_pretrained(
"diffusers/controlnet-canny-sdxl-1.0-small",
torch_dtype=torch.float16
)
vae = AutoencoderKL.from_pretrained("madebyollin/sdxl-vae-fp16-fix", torch_dtype=torch.float16)
pipe = StableDiffusionXLControlNetPipeline.from_pretrained(
"stabilityai/stable-diffusion-xl-base-1.0",
controlnet=controlnet,
vae=vae,
torch_dtype=torch.float16,
)
pipe.enable_model_cpu_offload()
image = np.array(image)
image = cv2.Canny(image, 100, 200)
image = image[:, :, None]
image = np.concatenate([image, image, image], axis=2)
image = Image.fromarray(image)
images = pipe(
prompt, negative_prompt=negative_prompt, image=image, controlnet_conditioning_scale=controlnet_conditioning_scale,
).images
images[0].save(f"hug_lab.png")

更多详细信息,请查看 StableDiffusionXLControlNetPipeline
的官方文档。
✨ 主要特性
- 体积小巧:此检查点比原始的 XL 控制网络检查点小 7 倍。
- 实验性:该检查点处于实验阶段,有很大的改进空间,欢迎社区在此基础上进行优化并提供反馈。
💻 使用示例
基础用法
from diffusers import ControlNetModel, StableDiffusionXLControlNetPipeline, AutoencoderKL
from diffusers.utils import load_image
from PIL import Image
import torch
import numpy as np
import cv2
prompt = "aerial view, a futuristic research complex in a bright foggy jungle, hard lighting"
negative_prompt = "low quality, bad quality, sketches"
image = load_image("https://huggingface.co/datasets/hf-internal-testing/diffusers-images/resolve/main/sd_controlnet/hf-logo.png")
controlnet_conditioning_scale = 0.5
controlnet = ControlNetModel.from_pretrained(
"diffusers/controlnet-canny-sdxl-1.0-small",
torch_dtype=torch.float16
)
vae = AutoencoderKL.from_pretrained("madebyollin/sdxl-vae-fp16-fix", torch_dtype=torch.float16)
pipe = StableDiffusionXLControlNetPipeline.from_pretrained(
"stabilityai/stable-diffusion-xl-base-1.0",
controlnet=controlnet,
vae=vae,
torch_dtype=torch.float16,
)
pipe.enable_model_cpu_offload()
image = np.array(image)
image = cv2.Canny(image, 100, 200)
image = image[:, :, None]
image = np.concatenate([image, image, image], axis=2)
image = Image.fromarray(image)
images = pipe(
prompt, negative_prompt=negative_prompt, image=image, controlnet_conditioning_scale=controlnet_conditioning_scale,
).images
images[0].save(f"hug_lab.png")
高级用法
目前文档未提及高级用法相关代码,可参考官方文档进行更多探索。
🔧 技术细节
训练脚本
训练脚本基于官方提供的脚本构建,可参考 此处。完整披露可参考 此脚本。
训练特点
- 未进行蒸馏:此检查点未执行蒸馏操作,仅使用从 SDXL UNet 初始化的较小 ControlNet。鼓励社区尝试进行蒸馏操作,可参考 此资源。
- ControlNet 初始化:关于 ControlNet 的初始化方式,可参考 此代码块。
- 无注意力块:该模型没有任何注意力块。
- 性能表现:模型在大多数条件图像上表现良好,但对于更复杂的条件,较大的检查点可能效果更好。目前正在努力改进此检查点的质量,并期待社区提供反馈。
- 参数建议:建议尝试调整
controlnet_conditioning_scale
和 guidance_scale
参数,以获得更好的图像生成质量。
训练数据
模型在 LAION aesthetic 6 加子集的 300 万张图像上进行训练,批次大小为 256,训练 50000 步,学习率恒定为 3e - 5。
计算资源
使用一台配备 8 个 A100 GPU 的机器进行训练。
混合精度
采用 FP16 混合精度。
📄 许可证
本项目采用 OpenRAIL++ 许可证。
属性 |
详情 |
模型类型 |
Small SDXL - controlnet: Canny |
训练数据 |
LAION aesthetic 6 加子集的 300 万张图像 |
⚠️ 重要提示
此检查点处于实验阶段,有很大的改进空间,鼓励社区在此基础上进行构建、改进并提供反馈。
💡 使用建议
建议尝试调整 controlnet_conditioning_scale
和 guidance_scale
参数,以获得更好的图像生成质量。
示例图片
示例 1
prompt: aerial view, a futuristic research complex in a bright foggy jungle, hard lighting

示例 2
prompt: a woman, close up, detailed, beautiful, street photography, photorealistic, detailed, Kodak ektar 100, natural, candid shot

示例 3
prompt: megatron in an apocalyptic world ground, runied city in the background, photorealistic

示例 4
prompt: a couple watching sunset, 4k photo
