par stabilityai
Open source · 54k downloads · 15 likes
Stable Diffusion 3.5 Large ControlNet Canny est un modèle d'IA spécialisé dans la génération d'images à partir de texte, avec une capacité avancée à contrôler précisément la structure et les contours des objets générés. Grâce à l'intégration de ControlNet, il permet de guider la création d'images en s'appuyant sur des contours détectés par l'algorithme Canny, offrant ainsi un contrôle accru sur la composition et les formes. Ce modèle excelle pour des usages créatifs comme la retouche d'images, la conception graphique ou la génération d'illustrations stylisées, où la fidélité aux contours initiaux est essentielle. Ce qui le distingue, c'est sa combinaison entre la puissance de Stable Diffusion 3.5 et la précision des ControlNets, permettant des résultats plus cohérents et adaptables à des besoins spécifiques. Il est conçu pour un usage non commercial gratuit, avec des options pour les entreprises selon leur taille.

This repository provides the Canny ControlNet for Stable Diffusion 3.5 Large..
Please note: This model is released under the Stability Community License. Visit Stability AI to learn or contact us for commercial licensing details.
Here are the key components of the license:
For organizations with annual revenue more than $1M, please contact us here to inquire about an Enterprise License.
Install the repo:
git clone [email protected]:Stability-AI/sd3.5.git
pip install -r requirements.txt
Then, download the models and sample images like so:
input/sample_cond.png
models/clip_g.safetensors
models/clip_l.safetensors
models/t5xxl.safetensors
models/sd3.5_large.safetensors
models/canny_8b.safetensors
and then you can run
python sd3_infer.py --controlnet_ckpt models/canny_8b.safetensors --controlnet_cond_image input/sample_cond.png --prompt "An adorable fluffy pastel creature"
Which should give you an image like below:

Make sure you upgrade to the latest version of diffusers: pip install -U diffusers. And then you can run:
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')
An input image can be preprocessed for control use following the code snippet below. SD3.5 does not implement this behavior, so we recommend doing so in an external script beforehand.
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> to load the text encoders directly to VRAM, which can speed up the full inference loop at the cost of extra VRAM usage.All uses of the model must be in accordance with our Acceptable Use Policy.
The model was not trained to be factual or true representations of people or events. As such, using the model to generate such content is out-of-scope of the abilities of this model.
These models were trained on a wide variety of data, including synthetic data and filtered publicly available data.
We believe in safe, responsible AI practices and take deliberate measures to ensure Integrity starts at the early stages of development. This means we have taken and continue to take reasonable steps to prevent the misuse of Stable Diffusion 3.5 by bad actors. For more information about our approach to Safety please visit our Safety page.
Our integrity evaluation methods include structured evaluations and red-teaming testing for certain harms. Testing was conducted primarily in English and may not cover all possible harms.
Please report any issues with the model or contact us: