File size: 3,765 Bytes
3ae60a4
 
 
b5ae5f0
 
31d4745
b5ae5f0
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3ae60a4
b5ae5f0
 
 
 
81dca1f
 
 
9013c77
 
 
 
b5ae5f0
fc7c4f5
b5ae5f0
 
 
 
 
9013c77
0cb815a
 
9013c77
b5ae5f0
 
 
 
9013c77
 
b5ae5f0
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
dbdbdbd
 
 
b5ae5f0
 
 
 
 
 
 
 
 
 
 
 
 
 
 
dbdbdbd
 
 
b5ae5f0
 
dbdbdbd
b5ae5f0
dbdbdbd
 
b5ae5f0
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
---
license: other
license_name: bria-2.0
license_link: LICENSE
library_name: diffusers
inference: false
    
tags:
- text-to-image
- controlnet model
- legal liability
- commercial use
extra_gated_prompt: This model weights by BRIA AI can be obtained after a commercial license is agreed upon. Fill in the form below and we reach out to you.
extra_gated_fields:
  Name: text
  Company/Org name: text
  Org Type (Early/Growth Startup, Enterprise, Academy): text
  Role: text
  Country: text
  Email: text
  By submitting this form, I agree to BRIA’s Privacy policy and Terms & conditions, see links below: checkbox
---

# BRIA 2.0 ControlNet Canny Model Card


[***Click here for Demo***](https://huggingface.co/spaces/briaai/BRIA-2.0-ControlNet-Canny-V1-DEMO)


BRIA 2.0 ControlNet-Canny, trained on the foundation of [BRIA 2.0 Text-to-Image](https://huggingface.co/briaai/BRIA-2.0), enables the generation of high-quality images guided by a textual prompt and the extracted edge map from an input image. This allows for the creation of different variations of an image, all sharing the same geometry. 


[BRIA 2.0](https://huggingface.co/briaai/BRIA-2.0) was trained from scratch exclusively on licensed data from our esteemed data partners. Therefore, they are safe for commercial use and provide full legal liability coverage for copyright and privacy infringement, as well as harmful content mitigation. That is, our dataset does not contain copyrighted materials, such as fictional characters, logos, trademarks, public figures, harmful content, or privacy-infringing content.

![photo-4426232_collage.png](https://cdn-uploads.huggingface.co/production/uploads/6571c468b622b6c62c1ac4da/VzUtWzN0KdT7B-xoBNEcB.png)


### Model Description

- **Developed by:** BRIA AI
- **Model type:** [ControlNet](https://huggingface.co/docs/diffusers/using-diffusers/controlnet) for Latent diffusion
- **License:** [bria-2.0](https://bria.ai/bria-huggingface-model-license-agreement/)

- **Model Description:** ControlNet Canny for BRIA 2.0  Text-to-Image model. The model generates images guided by text and the edge map of the conditioned image.
- **Resources for more information:** [BRIA AI](https://bria.ai/)


### Get Access
BRIA 2.0 ControlNet-Canny requires access to BRIA 2.0 Text-to-Image. For more information, [click here](https://huggingface.co/briaai/BRIA-2.0).






### Code example using Diffusers 


```
pip install diffusers
```


```py
from diffusers import ControlNetModel, StableDiffusionXLControlNetPipeline
import torch
import cv2
from PIL import Image
import numpy as np 
controlnet = ControlNetModel.from_pretrained(
    "briaai/ControlNet-Canny",
    torch_dtype=torch.float16
)

pipe = StableDiffusionXLControlNetPipeline.from_pretrained(
    "briaai/BRIA-2.0",
    controlnet=controlnet,
    torch_dtype=torch.float16,
)
pipe.to("cuda")

prompt = "A portrait of a Beautiful and playful ethereal singer, golden designs, highly detailed, blurry background"
negative_prompt = "Logo,Watermark,Text,Ugly,Morbid,Extra fingers,Poorly drawn hands,Mutation,Blurry,Extra limbs,Gross proportions,Missing arms,Mutated hands,Long neck,Duplicate,Mutilated,Mutilated hands,Poorly drawn face,Deformed,Bad anatomy,Cloned face,Malformed limbs,Missing legs,Too many fingers"


low_threshold=100
high_threshold=200
# Calculate Canny image
input_image = cv2.imread('pics/singer.png')
canny_image = cv2.Canny(input_image, low_threshold, high_threshold)
input_image = input_image[:, :, None]
input_image = np.concatenate([input_image, canny_image, input_image], axis=2)
canny_image = Image.fromarray(canny_image)

image = pipe(prompt=prompt, negative_prompt=negative_prompt, image=canny_image, controlnet_conditioning_scale=1.0, height=1024, width=1024).images[0]
```