Остання активність 1728853903

Diffusers-5.py Неформатований
1from diffusers import DDPMScheduler, UNet2DModel
2from PIL import Image
3import torch
4
5scheduler = DDPMScheduler.from_pretrained("google/ddpm-cat-256")
6model = UNet2DModel.from_pretrained("google/ddpm-cat-256").to("cuda")
7scheduler.set_timesteps(50)
8
9sample_size = model.config.sample_size
10noise = torch.randn((1, 3, sample_size, sample_size), device="cuda")
11input = noise
12
13for 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
19image = (input / 2 + 0.5).clamp(0, 1)
20image = image.cpu().permute(0, 2, 3, 1).numpy()[0]
21image = Image.fromarray((image * 255).round().astype("uint8"))
22image