Spaces:
Running
on
A10G
Running
on
A10G
Linoy Tsaban
commited on
Commit
•
98c6b44
1
Parent(s):
001613c
Update app.py
Browse filesadd option for multiple warm-up steps
app.py
CHANGED
@@ -8,6 +8,7 @@ from utils import *
|
|
8 |
from inversion_utils import *
|
9 |
from modified_pipeline_semantic_stable_diffusion import SemanticStableDiffusionPipeline
|
10 |
from torch import autocast, inference_mode
|
|
|
11 |
|
12 |
def invert(x0, prompt_src="", num_diffusion_steps=100, cfg_scale_src = 3.5, eta = 1):
|
13 |
|
@@ -74,7 +75,7 @@ def edit(input_image,
|
|
74 |
tar_cfg_scale=15,
|
75 |
edit_concept="",
|
76 |
sega_edit_guidance=0,
|
77 |
-
|
78 |
# neg_guidance=False,
|
79 |
left = 0,
|
80 |
right = 0,
|
@@ -98,8 +99,11 @@ def edit(input_image,
|
|
98 |
|
99 |
if not edit_concept or not sega_edit_guidance:
|
100 |
return pure_ddpm_out, pure_ddpm_out
|
|
|
101 |
# SEGA
|
|
|
102 |
edit_concepts = edit_concept.split(",")
|
|
|
103 |
neg_guidance =[]
|
104 |
for edit_concept in edit_concepts:
|
105 |
if edit_concept.startswith("-"):
|
@@ -107,15 +111,25 @@ def edit(input_image,
|
|
107 |
else:
|
108 |
neg_guidance.append(False)
|
109 |
edit_concepts = [concept.strip("+|-") for concept in edit_concepts]
|
110 |
-
|
111 |
-
|
112 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
113 |
editing_args = dict(
|
114 |
editing_prompt = edit_concepts,
|
115 |
reverse_editing_direction = neg_guidance,
|
116 |
-
edit_warmup_steps=
|
117 |
-
edit_guidance_scale=[sega_edit_guidance],
|
118 |
-
edit_threshold=[.93],
|
119 |
edit_momentum_scale=0.5,
|
120 |
edit_mom_beta=0.6
|
121 |
)
|
|
|
8 |
from inversion_utils import *
|
9 |
from modified_pipeline_semantic_stable_diffusion import SemanticStableDiffusionPipeline
|
10 |
from torch import autocast, inference_mode
|
11 |
+
import re
|
12 |
|
13 |
def invert(x0, prompt_src="", num_diffusion_steps=100, cfg_scale_src = 3.5, eta = 1):
|
14 |
|
|
|
75 |
tar_cfg_scale=15,
|
76 |
edit_concept="",
|
77 |
sega_edit_guidance=0,
|
78 |
+
warm_up=None,
|
79 |
# neg_guidance=False,
|
80 |
left = 0,
|
81 |
right = 0,
|
|
|
99 |
|
100 |
if not edit_concept or not sega_edit_guidance:
|
101 |
return pure_ddpm_out, pure_ddpm_out
|
102 |
+
|
103 |
# SEGA
|
104 |
+
# parse concepts and neg guidance
|
105 |
edit_concepts = edit_concept.split(",")
|
106 |
+
num_concepts = len(edit_concepts)
|
107 |
neg_guidance =[]
|
108 |
for edit_concept in edit_concepts:
|
109 |
if edit_concept.startswith("-"):
|
|
|
111 |
else:
|
112 |
neg_guidance.append(False)
|
113 |
edit_concepts = [concept.strip("+|-") for concept in edit_concepts]
|
114 |
+
|
115 |
+
# parse warm-up steps
|
116 |
+
default_warm_up_steps = [1]*num_concepts
|
117 |
+
if warm_up:
|
118 |
+
digit_pattern = re.compile(r"^\d+$")
|
119 |
+
warm_up_steps_str = warm_up.split(",")
|
120 |
+
for i,num_steps in enumerate(warm_up_steps[:num_concepts]):
|
121 |
+
if not digit_pattern.match(num_steps):
|
122 |
+
raise gr.Error("Invalid value for warm-up steps, using 1 instead")
|
123 |
+
else:
|
124 |
+
default_warm_up_steps[i] = int(num_steps)
|
125 |
+
|
126 |
+
|
127 |
editing_args = dict(
|
128 |
editing_prompt = edit_concepts,
|
129 |
reverse_editing_direction = neg_guidance,
|
130 |
+
edit_warmup_steps=default_warm_up_steps,
|
131 |
+
edit_guidance_scale=[sega_edit_guidance]*num_concepts,
|
132 |
+
edit_threshold=[.93]*num_concepts,
|
133 |
edit_momentum_scale=0.5,
|
134 |
edit_mom_beta=0.6
|
135 |
)
|