zjuJish commited on
Commit
6f2622e
·
verified ·
1 Parent(s): a642850

Upload layer_diff_dataset/test_inp_sd_3 copy 7.py with huggingface_hub

Browse files
layer_diff_dataset/test_inp_sd_3 copy 7.py ADDED
@@ -0,0 +1,110 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from diffusers import AutoPipelineForInpainting
2
+ from diffusers.utils import load_image
3
+ import torch
4
+ import os
5
+ from tqdm import tqdm
6
+ import cv2
7
+ from PIL import Image
8
+ import imageio
9
+ import numpy as np
10
+
11
+ pipe = AutoPipelineForInpainting.from_pretrained("../alpha_work/diffusers/stable-diffusion-xl-1.0-inpainting_", torch_dtype=torch.float16, variant="fp16").to("cuda:3")
12
+ # print('pipe',pipe)
13
+ # StableDiffusionXLInpaintPipeline
14
+
15
+ preprocessed_root_path = '../data/video_dataset/YoutubeVOS/train/impainting_256'
16
+ # folder_path_0 = '../codes/Inpaint-Anything/results/0b6f9105fc'
17
+ mask_root_path = '../data/video_dataset/YoutubeVOS/train/mask'
18
+ output_root_path = '../data/video_dataset/YoutubeVOS/train/inp_preprocess_sd_0.9_base_ppt_w'
19
+ os.makedirs(output_root_path,exist_ok=True)
20
+ # img_url = "https://raw.githubusercontent.com/CompVis/latent-diffusion/main/data/inpainting_examples/overture-creations-5sI6fQgYIuo.png"
21
+ # mask_url = "https://raw.githubusercontent.com/CompVis/latent-diffusion/main/data/inpainting_examples/overture-creations-5sI6fQgYIuo_mask.png"
22
+
23
+
24
+ prompt = "hazy background with nothing on"
25
+ generator = torch.Generator(device="cuda:3").manual_seed(22)
26
+ # base_image = Image.open(base_image_path).resize((1024, 1024))
27
+
28
+ vid_list = os.listdir(preprocessed_root_path)
29
+ pbar = tqdm(enumerate(vid_list),total=len(vid_list))
30
+ for i, vid_name in pbar:
31
+ # if not vid_name=='7d18074fef':
32
+ # continue
33
+ if i<=3000:
34
+ continue
35
+ # if i>3000:
36
+ # break
37
+
38
+ output_folder = os.path.join(output_root_path, vid_name)
39
+ output_gif = os.path.join(output_folder, f'{vid_name}.gif') # 输出GIF的文件名
40
+ if os.path.exists(output_gif):
41
+ continue
42
+ os.makedirs(output_folder,exist_ok=True)
43
+ # if i>2400:
44
+ # break
45
+ # print(vid_name)
46
+ # if idx < 800:
47
+ # continue
48
+ # if i>=800:
49
+ # break
50
+ # if i%100==0:
51
+ # print('i: ',i)
52
+ img_folder = os.path.join(preprocessed_root_path, vid_name)
53
+ img_list = os.listdir(img_folder)
54
+ img_list = [i for i in img_list if i.endswith('.jpg')]
55
+ img_list.sort()
56
+ # print(len(img_list))
57
+ mask_folder = os.path.join(mask_root_path, vid_name)
58
+
59
+
60
+ frames = []
61
+ for i,image_name in enumerate(img_list):
62
+
63
+ # print('i',i)
64
+ # if not i%2 == 0:
65
+ # continue
66
+ image_path = os.path.join(img_folder,image_name)
67
+ mask_path = os.path.join(mask_folder,image_name.split('.')[0]+'.png')
68
+ image = Image.open(image_path).resize((1024, 1024))
69
+ mask_image = Image.open(mask_path).resize((1024, 1024))
70
+ # image = cv2.resize(cv2.imread(image_path),(1024,1024))
71
+ # mask_image = cv2.resize(cv2.imread(mask_path,cv2.IMREAD_GRAYSCALE),(1024,1024))
72
+ # image = load_image(img_url).resize((1024, 1024))
73
+ # mask_image = load_image(mask_url).resize((1024, 1024))
74
+ if i==0:
75
+ base_image_1 = image
76
+ base_image = base_image_1
77
+ strength = 0.99
78
+ else:
79
+ strength = 0.5
80
+ if i==1:
81
+ base_image_2 = base_image_1
82
+ base_image_1 = image_out
83
+ image_array_1 = np.array(base_image_1.convert('RGB'))
84
+ image_array_2 = np.array(base_image_2.convert('RGB'))
85
+ base_image = (image_array_1*0.8+image_array_2*0.2).astype(np.uint8)
86
+ base_image = Image.fromarray(base_image)
87
+ else:
88
+ base_image_3 = base_image_2
89
+ base_image_2 = base_image_1
90
+ base_image_1 = image_out
91
+ image_array_1 = np.array(base_image_1.convert('RGB'))
92
+ image_array_2 = np.array(base_image_2.convert('RGB'))
93
+ image_array_3 = np.array(base_image_3.convert('RGB'))
94
+ base_image = (image_array_1*0.7+image_array_2*0.2+image_array_3*0.1).astype(np.uint8)
95
+ base_image = Image.fromarray(base_image)
96
+
97
+ image_out = pipe(
98
+ prompt=prompt,
99
+ image=image,
100
+ base_image=base_image,
101
+ mask_image=mask_image,
102
+ guidance_scale=8.0,
103
+ num_inference_steps=20, # steps between 15 and 30 work well for us
104
+ strength=strength, # make sure to use `strength` below 1.0
105
+ generator=generator,
106
+ ).images[0]
107
+ image_out.save(os.path.join(output_folder,image_name))
108
+ frames.append(imageio.imread(os.path.join(output_folder,image_name)))
109
+ imageio.mimsave(output_gif, frames, fps=8, loop=0)
110
+ # exit(0)