许可协议:openrail++
基础模型:runwayml/stable-diffusion-v1-5
标签:
- stable-diffusion-xl
- stable-diffusion-xl-diffusers
- 文生图
- diffusers
推理:不支持
SDXL-controlnet:Canny边缘检测版
本模型是基于stabilityai/stable-diffusion-xl-base-1.0训练的控制网络权重,采用canny边缘检测条件控制。下方展示部分生成效果示例。
提示词:一对情侣观赏浪漫日落,4K照片

提示词:毛茸茸蓝色鸟类的超现实特写

提示词:女性近景,精致细节,唯美街拍,照片级真实,柯达ektar100胶片,自然抓拍

提示词:电影感客厅新古典主义餐桌,轮廓光效,极致细节,冬季黄金时刻

提示词:龙卷风袭击草场,1980年代胶片颗粒感,阴天色调整体

使用指南
首先安装必要库:
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 = "鸟瞰视角,明亮雾霭丛林中的未来主义科研基地,强光照射"
negative_prompt = '低质量,劣质,草图'
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",
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
训练过程
训练脚本基于我们官方提供的控制网络SDXL训练方案开发。
训练数据
- 第一阶段:在laion 6a数据集(长边缩放到384像素)上训练20,000步
- 第二阶段:在laion 6a数据集(长边缩放到1024像素,并筛选最小尺寸≥1024的图片)上继续训练20,000步
(高分辨率微调对提升画质至关重要)
硬件配置
8卡A100服务器
批处理
数据并行,单GPU批处理量8,总批处理量64
超参数
恒定学习率1e-4,根据总批处理量调整为64e-4
精度
fp16混合精度训练