
本仓库提供了适用于Stable Diffusion 3.5 Large的Canny ControlNet。
请注意:本模型根据Stability社区许可协议发布。访问Stability AI了解详情,或联系我们获取商业许可信息。
许可协议的核心条款如下:
对于年收入超过100万美元的组织,请通过此处联系我们,咨询企业许可事宜。
安装仓库:
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: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
# assuming img is a PIL image
img = F.to_tensor(img)
img = cv2.cvtColor(img.transpose(1, 2, 0), cv2.COLOR_RGB2GRAY)
img = cv2.Canny(img, 100, 200)--text_encoder_device <device_name> 可将文本编码器直接加载到 VRAM,这能加快整个推理循环的速度,但会占用更多 VRAM。模型的所有使用都必须符合我们的可接受使用政策。
该模型并非为生成关于人物或事件的事实性或真实表征而训练。因此,使用该模型生成此类内容超出了本模型的能力范围。
这些模型是在多种数据上训练的,包括合成数据和经过筛选的公开可用数据。
我们秉持安全、负责任的 AI 实践理念,并采取审慎措施确保在开发的早期阶段就开始注重完整性。这意味着我们已经并将继续采取合理措施,防止不良行为者滥用 Stable Diffusion 3.5。有关我们安全方法的更多信息,请访问我们的安全页面。
我们的完整性评估方法包括结构化评估和针对特定危害的红队测试。测试主要以英语进行,可能未涵盖所有可能的危害。
如遇模型相关问题或需联系我们,请通过以下方式: