Update app.py
Browse files
app.py
CHANGED
@@ -1,6 +1,22 @@
|
|
1 |
-
from diffusers import
|
|
|
|
|
2 |
|
3 |
-
|
|
|
|
|
4 |
|
5 |
-
|
6 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
from diffusers import DDPMScheduler, UNet2DModel
|
2 |
+
from PIL import Image
|
3 |
+
import torch
|
4 |
|
5 |
+
scheduler = DDPMScheduler.from_pretrained("google/ddpm-cat-256")
|
6 |
+
model = UNet2DModel.from_pretrained("google/ddpm-cat-256").to("cuda")
|
7 |
+
scheduler.set_timesteps(50)
|
8 |
|
9 |
+
sample_size = model.config.sample_size
|
10 |
+
noise = torch.randn((1, 3, sample_size, sample_size), device="cuda")
|
11 |
+
input = noise
|
12 |
+
|
13 |
+
for t in scheduler.timesteps:
|
14 |
+
with torch.no_grad():
|
15 |
+
noisy_residual = model(input, t).sample
|
16 |
+
prev_noisy_sample = scheduler.step(noisy_residual, t, input).prev_sample
|
17 |
+
input = prev_noisy_sample
|
18 |
+
|
19 |
+
image = (input / 2 + 0.5).clamp(0, 1)
|
20 |
+
image = image.cpu().permute(0, 2, 3, 1).numpy()[0]
|
21 |
+
image = Image.fromarray((image * 255).round().astype("uint8"))
|
22 |
+
image
|