Views
No views yet
1import torch
2from diffusers import DDIMPipeline,DDIMScheduler
3import torch
4import torchvision
5from diffusers import DDIMScheduler
6from matplotlib import pyplot as plt
7from tqdm.auto import tqdm
8device='cuda:1'
9x=torch.randn(8,3,128,128).to(device)
10path='your_model_path'
11# path='/data_disk/dyy/python_projects/diffusers/0.My_model/butterfly_generate'
12image_pipe = DDIMPipeline.from_pretrained(path).to(device)
13#这里要填一个DDPM或者DDIMbased模型,,高手可以自己构造一个timestep
14scheduler=DDIMScheduler.from_pretrained('/data_disk/dyy/models/google-ddpm')
15scheduler.set_timesteps(30)
16
17for idx , t in tqdm(enumerate(scheduler.timesteps)):
18 model_input=scheduler.scale_model_input(x,t)
19 with torch.no_grad():
20 noise_pred=image_pipe.unet(model_input,t)['sample']
21 x=scheduler.step(noise_pred,t,x).prev_sample.to(device)
22grid=torchvision.utils.make_grid(x,nrow=4)
23plt.imshow(grid.permute(1,2,0).cpu().clip(-1,1)*0.5+0.5)