🚀 SDXL-controlnet: OpenPose (v2)
SDXL-controlnet: OpenPose (v2) 是基於 stabilityai/stable-diffusion-xl-base-1.0 訓練得到的 ControlNet 權重,使用 OpenPose (v2) 進行條件控制。它可以實現文本到圖像的轉換,通過輸入特定的文本描述,生成相應的圖像。
✨ 主要特性
- 基於 Stable Diffusion XL 基礎模型,結合 OpenPose (v2) 條件控制,能夠生成具有特定姿態的圖像。
- 支持在 🧨 diffusers 庫中使用,方便開發者進行集成和調用。
📦 安裝指南
首先,安裝所有必要的庫:
pip install -q controlnet_aux transformers accelerate
pip install -q git+https://github.com/huggingface/diffusers
💻 使用示例
基礎用法
以下是一個使用該模型生成圖像的示例代碼,讓 Darth Vader 在沙漠中跳舞:
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("thibaud/controlnet-openpose-sdxl-1.0", 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🤗 的訓練腳本,可參考 此處。
- 訓練數據:該檢查點首先在 laion 6a 上進行了 15,000 步的訓練,數據被調整為最大最小尺寸為 768。
- 計算資源:使用一臺 1xA100 機器(非常感謝 HF🤗 提供計算資源!)。
- 批量大小:數據並行,單 GPU 批量大小為 2,梯度累積為 8。
- 超參數:恆定學習率為 8e-5。
- 混合精度:fp16
📄 許可證
許可證參考 OpenPose 的許可證。