模型概述
模型特點
模型能力
使用案例
🚀 Stable Diffusion 3.5 Large Controlnet - Depth
本項目提供了用於圖像生成的深度控制網絡(Depth ControlNet),結合Stable Diffusion 3.5 Large模型,能夠根據輸入的深度信息生成高質量的圖像,廣泛應用於創意設計、研究等領域。
🚀 快速開始
本倉庫提供了適用於 Stable Diffusion 3.5 Large 的深度控制網絡(Depth ControlNet)。
請注意:此模型遵循 Stability Community License 發佈。訪問 Stability AI 瞭解更多信息,或 聯繫我們 獲取商業許可詳情。
📄 許可證
以下是許可證的關鍵內容:
- 非商業使用免費:個人和組織可免費將該模型用於非商業用途,包括科學研究。
- 年收入低於100萬美元的商業使用免費:初創公司、中小型企業和創作者在其年收入低於100萬美元的情況下,可免費將該模型用於商業目的。
- 輸出內容所有權:保留所生成媒體的所有權,且無限制性許可影響。
對於年收入超過100萬美元的組織,請 點擊此處 諮詢企業許可證。
📦 安裝指南
在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/depth_8b.safetensors --controlnet_cond_image input/sample_cond.png --prompt "A girl sitting in a cafe, cozy interior, HDR photograph"
運行上述命令後,你將得到類似下面的圖像:
在Diffusers中使用Controlnets
確保你已將Diffusers升級到最新版本:pip install -U diffusers
。然後,你可以運行以下代碼:
import torch
from diffusers import StableDiffusion3ControlNetPipeline, SD3ControlNetModel
from diffusers.utils import load_image
controlnet = SD3ControlNetModel.from_pretrained("stabilityai/stable-diffusion-3.5-large-controlnet-depth", torch_dtype=torch.float16)
pipe = StableDiffusion3ControlNetPipeline.from_pretrained(
"stabilityai/stable-diffusion-3.5-large",
controlnet=controlnet,
torch_dtype=torch.float16,
).to("cuda")
control_image = load_image("https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/marigold/marigold_einstein_lcm_depth.png")
generator = torch.Generator(device="cpu").manual_seed(0)
image = pipe(
prompt = "a photo of a man",
control_image=control_image,
guidance_scale=4.5,
num_inference_steps=40,
generator=generator,
max_sequence_length=77,
).images[0]
image.save('depth-8b.jpg')
你可以使用 image_gen_aux
提取 depth_image
,其中包含了在Diffusers管道中使用所需的所有預處理器。
# install image_gen_aux with: pip install git+https://github.com/huggingface/image_gen_aux.git
from image_gen_aux import DepthPreprocessor
image = load_image("path to image")
depth_preprocessor = DepthPreprocessor.from_pretrained("depth-anything/Depth-Anything-V2-Large-hf").to("cuda")
depth_image = depth_preprocessor(image, invert=True)[0].convert("RGB")
預處理
可以按照以下代碼片段對輸入圖像進行預處理以用於控制。SD3.5未實現此行為,因此我們建議事先在外部腳本中進行處理。
# install depthfm from https://github.com/CompVis/depth-fm
import torchvision.transforms as transforms
from depthfm.dfm import DepthFM
depthfm_model = DepthFM(ckpt_path=checkpoint_path)
depthfm_model.eval()
# assuming img is a PIL image
img = F.to_tensor(img)
c, h, w = img.shape
img = F.interpolate(img, (512, 512), mode='bilinear', align_corners=False)
with torch.no_grad():
img = self.depthfm_model(img, num_steps=2, ensemble_size=4)
img = F.interpolate(img, (h, w), mode='bilinear', align_corners=False)
💻 使用示例
基礎用法
在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/depth_8b.safetensors --controlnet_cond_image input/sample_cond.png --prompt "A girl sitting in a cafe, cozy interior, HDR photograph"
高級用法
在Diffusers中使用Controlnets的示例:
import torch
from diffusers import StableDiffusion3ControlNetPipeline, SD3ControlNetModel
from diffusers.utils import load_image
# 加載ControlNet模型
controlnet = SD3ControlNetModel.from_pretrained("stabilityai/stable-diffusion-3.5-large-controlnet-depth", torch_dtype=torch.float16)
# 加載Stable Diffusion 3.5 Large模型
pipe = StableDiffusion3ControlNetPipeline.from_pretrained(
"stabilityai/stable-diffusion-3.5-large",
controlnet=controlnet,
torch_dtype=torch.float16,
).to("cuda")
# 加載控制圖像
control_image = load_image("https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/marigold/marigold_einstein_lcm_depth.png")
# 設置隨機種子
generator = torch.Generator(device="cpu").manual_seed(0)
# 生成圖像
image = pipe(
prompt = "a photo of a man",
control_image=control_image,
guidance_scale=4.5,
num_inference_steps=40,
generator=generator,
max_sequence_length=77,
).images[0]
# 保存圖像
image.save('depth-8b.jpg')
📚 詳細文檔
使用提示
- 建議初始ControlNet強度設置為0.7,然後根據需要進行調整。
- 使用Euler採樣器和稍高的步數(50 - 60)可獲得最佳效果。
- 傳遞
--text_encoder_device <device_name>
可將文本編碼器直接加載到VRAM中,這可以加快整個推理循環,但會增加VRAM的使用量。
使用範圍
模型的所有使用必須符合我們的 可接受使用政策。
超出範圍的使用
該模型並非用於生成對人物或事件的事實性或真實表述。因此,使用該模型生成此類內容超出了該模型的能力範圍。
訓練數據和策略
這些模型在多種數據上進行了訓練,包括合成數據和經過篩選的公開可用數據。
🔧 技術細節
安全性
我們堅信安全、負責任的人工智能實踐,並採取了深思熟慮的措施,以確保在開發的早期階段就保證模型的完整性。這意味著我們已經並將繼續採取合理的步驟,以防止不良行為者濫用Stable Diffusion 3.5。有關我們的安全方法的更多信息,請訪問我們的 安全頁面。
完整性評估
我們的完整性評估方法包括結構化評估和針對某些危害的紅隊測試。測試主要以英語進行,可能無法涵蓋所有可能的危害。
已識別的風險和緩解措施:
- 有害內容:我們在訓練模型時使用了經過篩選的數據集,並實施了保障措施,試圖在實用性和防止危害之間取得適當的平衡。然而,這並不能保證所有可能的有害內容都已被移除。所有開發者和部署者都應謹慎行事,並根據其特定的產品政策和應用用例實施內容安全防護措施。
- 濫用:技術限制以及開發者和最終用戶的教育可以幫助減輕模型的惡意應用。所有用戶都必須遵守我們的可接受使用政策,包括在應用微調和平提示工程機制時。有關我們產品違規使用的信息,請參考Stability AI可接受使用政策。
- 隱私侵犯:鼓勵開發者和部署者採用尊重數據隱私的技術,遵守隱私法規。
致謝
- Lvmin Zhang、Anyi Rao和Maneesh Agrawala,原始 ControlNet論文 的作者。
- Lvmin Zhang,他還開發了 Tile ControlNet,啟發了模糊控制網絡。
- Diffusers 庫的作者,開發過程中參考了他們的代碼。
- InstantX 團隊,訓練過程中也參考了他們的Flux和SD3 ControlNets。
- 所有模型的早期測試者和評估者,以及Stability AI團隊。
聯繫我們
請報告模型的任何問題或聯繫我們:
- 安全問題:safety@stability.ai
- 安全漏洞:security@stability.ai
- 隱私問題:privacy@stability.ai
- 許可證和一般問題:https://stability.ai/license
- 企業許可證:https://stability.ai/enterprise

