🚀 SDXL-controlnet: Canny
このプロジェクトは、Cannyコンディショニングを用いてstabilityai/stable-diffusion-xl-base-1.0上で学習されたControlNetの重みを提供します。以下にいくつかのサンプル画像を示します。
サンプル画像
- プロンプト: a couple watching a romantic sunset, 4k photo

- プロンプト: ultrarealistic shot of a furry blue bird

- プロンプト: a woman, close up, detailed, beautiful, street photography, photorealistic, detailed, Kodak ektar 100, natural, candid shot

- プロンプト: Cinematic, neoclassical table in the living room, cinematic, contour, lighting, highly detailed, winter, golden hour

- プロンプト: a tornado hitting grass field, 1980's film grain. overcast, muted colors.

🚀 クイックスタート
まずは必要なライブラリをインストールしましょう。
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",
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
の公式ドキュメントを参照してください。
🔧 技術詳細
学習
この学習スクリプトは、こちらで提供されている公式の学習スクリプトをベースに構築されています。
学習データ
このチェックポイントは、まず最大最小寸法が384にリサイズされたlaion 6aで20,000ステップ学習されました。その後、最大最小寸法が1024にリサイズされ、最小1024の画像のみを含むようにフィルタリングされたlaion 6aでさらに20,000ステップ学習されました。高解像度での微調整は画像品質に必要であることがわかりました。
コンピューティング環境
1台の8xA100マシン
バッチサイズ
データ並列で、単一GPUのバッチサイズは8、合計バッチサイズは64です。
ハイパーパラメータ
学習率は1e-4で一定で、バッチサイズでスケーリングされ、合計学習率は64e-4です。
混合精度
fp16
📄 ライセンス
ライセンスはopenrail++です。
属性 |
详情 |
モデルタイプ |
SDXL-controlnet: Canny |
学習データ |
まず最大最小寸法が384にリサイズされたlaion 6aで20,000ステップ学習。その後、最大最小寸法が1024にリサイズされ、最小1024の画像のみを含むようにフィルタリングされたlaion 6aでさらに20,000ステップ学習。 |