Diffusers
Safetensors
File size: 2,604 Bytes
6af4871
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
---
datasets:
- eurecom-ds/shapes3d
library_name: diffusers
---

```python
# !pip install diffusers
from diffusers import DiffusionPipeline
import torch

from PIL import Image

device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
model_id = "eurecom-ds/scoresdeve-conditional-ema-shapes3d-64"

# load model and scheduler
pipe = DiffusionPipeline.from_pretrained(model_id, trust_remote_code=True)
pipe.to(device)


# run pipeline in inference (sample random noise and denoise)
generator = torch.Generator(device=device).manual_seed(46)
class_labels = torch.tensor([[0, 0, 0, 0, 1, 0], # condition on shape cube
                                  [0, 0, 0, 0, 2, 0], # condition on shape cylinder
                                  [0, 0, 0, 0, 3, 0], # condition on shape sphere
                                  [0, 0, 0, 0, 4, 0], # condition on shape capsule
                                  [0, 0, 0, 0, 0, 0], # unconditional
                                  [1, 1, 1, 1, 1, 1], # condition on red floor, object red, orientation right, small scale, shape cube, wall red
                                  [0, 0, 0, 0, 0, 0], # unconditional
                                  [0, 0, 0, 0, 0, 0], # uncondtional
                                  [0, 0, 0, 0, 1, 0], # condition on shape cube
                                  [0, 0, 0, 0, 1, 0], # condition on shape cube
                                  [0, 0, 0, 0, 1, 0], # condition on shape cube
                                  [0, 0, 0, 0, 1, 0], # condition on shape cube
                                  [0, 0, 0, 0, 1, 0], # condition on shape cube
                                  [0, 0, 0, 0, 1, 0], # condition on shape cube
                                  [0, 0, 0, 0, 1, 0], # condition on shape cube
                                  [0, 0, 0, 0, 1, 0] # condition on shape cube
                                  ]).to(device=pipe.device)
image = pipe(
  generator=generator,
  batch_size=16,
  class_labels=class_labels,
  num_inference_steps=1000
).images
width, height = image[0].size

# Create a new image with enough space for 2 rows x 8 columns
grid = Image.new('RGB', (width * 8, height * 2))

for index, img in enumerate(image):
    x = index % 8 * width  # Column index (0-7) times width of one image
    y = index // 8 * height  # Row index (0-1) times height of one image
    grid.paste(img, (x, y))

# Save the final grid image
grid.save("sde_ve_conditional_generated_grid.png")
```
![image/png](https://cdn-uploads.huggingface.co/production/uploads/62c88e75a5ac2974c0a5c8ea/9hqCBwJe0dO4v9H67ZMMK.png)