-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.py
103 lines (73 loc) · 4.78 KB
/
main.py
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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
from diffusion_runner import DiffusionRunner, ControlNetType
from image_utils import ImageUtils
from prompts import prompts
def run_diffusion_experiments(diffusion_runner, models_used, control_image_url, controlnet_conditioning_scale_vals, num_inference_steps_vals, guidance_scale_vals, seed):
all_experiments_count = len(prompts) * len(controlnet_conditioning_scale_vals) * len(num_inference_steps_vals) * len(guidance_scale_vals)
experiment_no = 1
for prompt in prompts:
for controlnet_conditioning_scale in controlnet_conditioning_scale_vals:
for num_inference_steps in num_inference_steps_vals:
for guidance_scale in guidance_scale_vals:
print("\033[33m" + f"Running experiment {experiment_no} from {all_experiments_count} experiments" + "\033[0m")
print(f"Model: {models_used}, Controlnet Conditioning Scale: {controlnet_conditioning_scale}, Num Inference Steps: {num_inference_steps}, Guidance Scale: {guidance_scale}, Prompt: {prompt[0]:.20}")
image, upscaled_image = diffusion_runner.run(
prompt[0],
control_image_url,
controlnet_conditioning_scale,
num_inference_steps,
guidance_scale,
seeds=[seed],
negative_prompt=prompt[1]
)
params = {
"model": models_used,
"controlnet_conditioning_scale": controlnet_conditioning_scale,
"num_inference_steps": num_inference_steps,
"guidance_scale": guidance_scale,
"prompt": prompt[0],
"negative_prompt": prompt[1],
"control_image_url": control_image_url,
"seed": seed
}
ImageUtils.save_image_with_timestamp(image, models_used, params)
if upscaled_image is not None:
ImageUtils.save_image_with_timestamp(upscaled_image, "upscaled")
experiment_no += 1
# if experiment_no == 10:
# exit()
if __name__ == "__main__":
# CONTROL_IMAGE_URL = "/home/raul/codelab/objs/obj4/4j.jpg"
CANNY_CONTROL_IMAGE_URL = "/home/raul/codelab/objs/input_imgs/a_edges.png"
DEPTH_CONTROL_IMAGE_URL = "/home/raul/codelab/objs/input_imgs/a_depth.png"
# controlnet_conditioning_scale_vals = [0.5, 1.0, 1.5]
# num_inference_steps_vals = [20, 30, 40]
# guidance_scale_vals = [1.0, 2.0, 4.0, 5.0]
controlnet_conditioning_scale_vals = [1.0]
num_inference_steps_vals = [25, 30]
guidance_scale_vals = [7.0]
negative_prompt = ""
prompt_2 = ""
negative_prompt_2 = ""
seed = 477162132
generate_sdxl = False
generate_with_depth = False
if(generate_sdxl):
diffusion_runner = DiffusionRunner(use_sdxl=True, controlnet_type=ControlNetType.CANNY)
run_diffusion_experiments(diffusion_runner, "sdxl-canny", CANNY_CONTROL_IMAGE_URL, controlnet_conditioning_scale_vals, num_inference_steps_vals, guidance_scale_vals, seed)
del diffusion_runner
diffusion_runner = DiffusionRunner(use_sdxl=True, controlnet_type=ControlNetType.DEPTH)
run_diffusion_experiments(diffusion_runner, "sdxl-depth", DEPTH_CONTROL_IMAGE_URL, controlnet_conditioning_scale_vals, num_inference_steps_vals, guidance_scale_vals, seed)
del diffusion_runner
diffusion_runner = DiffusionRunner(use_sdxl=True, controlnet_type=ControlNetType.MISTO)
run_diffusion_experiments(diffusion_runner, "sdxl-misto", CANNY_CONTROL_IMAGE_URL, controlnet_conditioning_scale_vals, num_inference_steps_vals, guidance_scale_vals, seed)
del diffusion_runner
diffusion_runner = DiffusionRunner(use_sdxl=False, controlnet_type=ControlNetType.CANNY)
run_diffusion_experiments(diffusion_runner, "juggernaut-canny", CANNY_CONTROL_IMAGE_URL, controlnet_conditioning_scale_vals, num_inference_steps_vals, guidance_scale_vals, seed)
del diffusion_runner
diffusion_runner = DiffusionRunner(use_sdxl=False, controlnet_type=ControlNetType.MISTO)
run_diffusion_experiments(diffusion_runner, "juggernaut-misto", CANNY_CONTROL_IMAGE_URL, controlnet_conditioning_scale_vals, num_inference_steps_vals, guidance_scale_vals, seed)
del diffusion_runner
if generate_with_depth:
diffusion_runner = DiffusionRunner(use_sdxl=False, controlnet_type=ControlNetType.DEPTH)
run_diffusion_experiments(diffusion_runner, "juggernaut-depth", DEPTH_CONTROL_IMAGE_URL, controlnet_conditioning_scale_vals, num_inference_steps_vals, guidance_scale_vals, seed)
del diffusion_runner