🚀 Stable Diffusion 3.5 Large Controlnet - Canny
本項目為圖像生成模型,提供了基於Stable Diffusion 3.5 Large的Canny ControlNet,可用於生成高質量的圖像,滿足科研、個人創作等多種需求。
🚀 快速開始
使用SD3.5獨立倉庫中的Controlnets
安裝倉庫:
git clone git@github.com:Stability-AI/sd3.5.git
pip install -r requirements.txt
然後,按如下方式下載模型和示例圖像:
input/sample_cond.png
models/clip_g.safetensors
models/clip_l.safetensors
models/t5xxl.safetensors
models/sd3.5_large.safetensors
models/canny_8b.safetensors
接著,你可以運行以下命令:
python sd3_infer.py --controlnet_ckpt models/canny_8b.safetensors --controlnet_cond_image input/sample_cond.png --prompt "An adorable fluffy pastel creature"
運行後你會得到如下類似的圖像:

在Diffusers中使用Controlnets
確保你將diffusers升級到最新版本:pip install -U diffusers
。然後你可以運行以下代碼:
import torch
from diffusers import StableDiffusion3ControlNetPipeline, SD3ControlNetModel
from diffusers.utils import load_image
from diffusers.image_processor import VaeImageProcessor
class SD3CannyImageProcessor(VaeImageProcessor):
def __init__(self):
super().__init__(do_normalize=False)
def preprocess(self, image, **kwargs):
image = super().preprocess(image, **kwargs)
image = image * 255 * 0.5 + 0.5
return image
def postprocess(self, image, do_denormalize=True, **kwargs):
do_denormalize = [True] * image.shape[0]
image = super().postprocess(image, **kwargs, do_denormalize=do_denormalize)
return image
controlnet = SD3ControlNetModel.from_pretrained("stabilityai/stable-diffusion-3.5-large-controlnet-canny", torch_dtype=torch.float16)
pipe = StableDiffusion3ControlNetPipeline.from_pretrained(
"stabilityai/stable-diffusion-3.5-large",
controlnet=controlnet,
torch_dtype=torch.float16
).to("cuda")
pipe.image_processor = SD3CannyImageProcessor()
control_image = load_image("https://huggingface.co/datasets/diffusers/diffusers-images-docs/resolve/main/canny.png")
prompt = "A Night time photo taken by Leica M11, portrait of a Japanese woman in a kimono, looking at the camera, Cherry blossoms"
generator = torch.Generator(device="cpu").manual_seed(0)
image = pipe(
prompt,
control_image=control_image,
controlnet_conditioning_scale=1.0,
guidance_scale=3.5,
num_inference_steps=60,
generator=generator,
max_sequence_length=77,
).images[0]
image.save(f'canny-8b.jpg')
預處理
可以按照以下代碼片段對輸入圖像進行預處理以用於控制。SD3.5未實現此行為,因此我們建議事先在外部腳本中進行處理。
import torchvision.transforms.functional as F
img = F.to_tensor(img)
img = cv2.cvtColor(img.transpose(1, 2, 0), cv2.COLOR_RGB2GRAY)
img = cv2.Canny(img, 100, 200)
提示
⚠️ 重要提示
所有模型的使用都必須符合我們的可接受使用政策。
💡 使用建議
- 建議從ControlNet強度0.8開始,根據需要進行調整。
- 使用Euler採樣器和稍高的步數(50 - 60)可獲得最佳效果。
- 傳遞
--text_encoder_device <device_name>
參數可將文本編碼器直接加載到VRAM中,這可以加快整個推理循環,但會增加VRAM的使用量。
✨ 主要特性
本倉庫為Stable Diffusion 3.5 Large提供了Canny ControlNet。
📄 許可證
本模型根據Stability社區許可證發佈。訪問Stability AI瞭解詳情,或聯繫我們獲取商業許可詳情。
許可證的關鍵內容如下:
- 非商業使用免費:個人和組織可以免費將該模型用於非商業用途,包括科學研究。
- 商業使用免費(年收入不超過100萬美元):初創企業、中小型企業和創作者可以免費將該模型用於商業目的,只要其年總收入低於100萬美元。
- 輸出所有權:保留生成媒體的所有權,且無限制性許可影響。
對於年收入超過100萬美元的組織,請點擊此處諮詢企業許可證。
📚 詳細文檔
使用範圍
該模型並非用於生成真實或準確反映人物或事件的內容。因此,使用該模型生成此類內容超出了其能力範圍。
訓練數據和策略
這些模型在多種數據上進行訓練,包括合成數據和經過篩選的公開可用數據。
🔧 技術細節
安全性
我們秉持安全、負責任的人工智能實踐理念,並採取了深思熟慮的措施,確保在開發的早期階段就注重模型的完整性。這意味著我們已經並將繼續採取合理措施,防止不良行為者濫用Stable Diffusion 3.5。有關我們的安全方法的更多信息,請訪問我們的安全頁面。
完整性評估
我們的完整性評估方法包括結構化評估和針對某些危害的紅隊測試。測試主要以英語進行,可能無法涵蓋所有可能的危害。
已識別的風險及緩解措施:
- 有害內容:我們在訓練模型時使用了經過篩選的數據集,並實施了保障措施,試圖在實用性和防止危害之間取得平衡。然而,這並不能保證所有可能的有害內容都已被清除。所有開發者和部署者應謹慎行事,並根據其特定的產品政策和應用用例實施內容安全防護措施。
- 濫用:技術限制以及對開發者和最終用戶的教育有助於減輕模型的惡意應用。所有用戶都必須遵守我們的可接受使用政策,包括在應用微調和平提示工程機制時。請參考Stability AI可接受使用政策,瞭解我們產品的違規使用信息。
- 隱私侵犯:鼓勵開發者和部署者採用尊重數據隱私的技術,遵守隱私法規。
致謝
聯繫我們
請報告模型的任何問題或聯繫我們:
- 安全問題:safety@stability.ai
- 安全漏洞:security@stability.ai
- 隱私問題:privacy@stability.ai
- 許可證及一般問題:https://stability.ai/license