🚀 SDXL-controlnet: OpenPose (v2)
這是一個基於StableDiffusionXL的ControlNet模型,使用OpenPose (v2)條件進行訓練,可用於文本到圖像的生成。
🚀 快速開始
此項目是 thibaud/controlnet-openpose-sdxl-1.0 的副本,允許通過 diffusers
庫直接使用其 safetensors
版本。
✨ 主要特性
- 基於
stabilityai/stable-diffusion-xl-base-1.0
訓練,使用OpenPose (v2) 條件。
- 可通過
diffusers
庫方便地集成和使用。
- 提供了訓練腳本和相關參數說明。
📦 安裝指南
首先,安裝所有必要的庫:
pip install -q controlnet_aux transformers accelerate
pip install -q git+https://github.com/huggingface/diffusers
💻 使用示例
基礎用法
現在,我們可以讓達斯·維達跳舞啦:
from diffusers import AutoencoderKL, StableDiffusionXLControlNetPipeline, ControlNetModel, UniPCMultistepScheduler
import torch
from controlnet_aux import OpenposeDetector
from diffusers.utils import load_image
openpose = OpenposeDetector.from_pretrained("lllyasviel/ControlNet")
image = load_image(
"https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/diffusers/person.png"
)
openpose_image = openpose(image)
controlnet = ControlNetModel.from_pretrained("dimitribarbot/controlnet-openpose-sdxl-1.0-safetensors", torch_dtype=torch.float16)
pipe = StableDiffusionXLControlNetPipeline.from_pretrained(
"stabilityai/stable-diffusion-xl-base-1.0", controlnet=controlnet, torch_dtype=torch.float16
)
pipe.enable_model_cpu_offload()
prompt = "Darth vader dancing in a desert, high quality"
negative_prompt = "low quality, bad quality"
images = pipe(
prompt,
negative_prompt=negative_prompt,
num_inference_steps=25,
num_images_per_prompt=4,
image=openpose_image.resize((1024, 1024)),
generator=torch.manual_seed(97),
).images
images[0]
以下是一些生成的示例:

示例圖片
提示詞:a ballerina, romantic sunset, 4k photo

Comfy工作流
(圖片來自ComfyUI,你可以將其拖放到Comfy中作為工作流使用)
🔧 技術細節
訓練
使用HF🤗 的訓練腳本 點擊此處查看。
訓練數據
此檢查點首先在調整為最大最小尺寸為768的laion 6a上訓練了15,000步。
計算資源
一臺1xA100機器 (非常感謝HF🤗 提供計算資源!)
批量大小
數據並行,單GPU批量大小為2,梯度累積為8。
超參數
恆定學習率為8e-5
混合精度
fp16
📄 許可證
許可證:參考OpenPose的許可證。