Spaces:
Running
on
A10G
Running
on
A10G
Linoy Tsaban
commited on
Commit
·
8e8b324
1
Parent(s):
afb8388
Update app.py
Browse files
app.py
CHANGED
@@ -10,6 +10,11 @@ from inversion_utils import *
|
|
10 |
from torch import autocast, inference_mode
|
11 |
import re
|
12 |
|
|
|
|
|
|
|
|
|
|
|
13 |
|
14 |
def invert(x0, prompt_src="", num_diffusion_steps=100, cfg_scale_src = 3.5, eta = 1):
|
15 |
|
@@ -151,25 +156,20 @@ with gr.Blocks(css='style.css') as demo:
|
|
151 |
seed = 0,
|
152 |
randomized_seed = True):
|
153 |
|
154 |
-
if randomized_seed:
|
155 |
-
|
156 |
|
157 |
-
torch.manual_seed(seed)
|
158 |
-
|
159 |
x0 = load_512(input_image, device=device)
|
160 |
|
161 |
-
if do_inversion:
|
162 |
-
# invert and retrieve noise maps and latent
|
163 |
zs_tensor, wts_tensor = invert(x0 =x0 , prompt_src=src_prompt, num_diffusion_steps=steps, cfg_scale_src=cfg_scale_src)
|
164 |
-
# xt = gr.State(value=wts[skip])
|
165 |
-
# zs = gr.State(value=zs[skip:])
|
166 |
wts = gr.State(value=wts_tensor)
|
167 |
zs = gr.State(value=zs_tensor)
|
168 |
do_inversion = False
|
169 |
|
170 |
-
|
171 |
-
output = sample(zs.value, wts.value, prompt_tar=tar_prompt, skip=skip, cfg_scale_tar=cfg_scale_tar)
|
172 |
-
|
173 |
return output, wts, zs, do_inversion
|
174 |
|
175 |
gr.HTML(intro)
|
@@ -204,10 +204,13 @@ with gr.Blocks(css='style.css') as demo:
|
|
204 |
skip = gr.Slider(minimum=0, maximum=40, value=36, step = 1, label="Skip Steps", interactive=True)
|
205 |
cfg_scale_tar = gr.Slider(minimum=7, maximum=18,value=15, label=f"Target Guidance Scale", interactive=True)
|
206 |
seed = gr.Number(value=0, precision=0, label="Seed", interactive=True)
|
207 |
-
randomize_seed = gr.Checkbox(label='Randomize seed', value=
|
208 |
|
209 |
|
210 |
edit_button.click(
|
|
|
|
|
|
|
211 |
fn=edit,
|
212 |
inputs=[input_image,
|
213 |
do_inversion, wts, zs,
|
@@ -217,8 +220,7 @@ with gr.Blocks(css='style.css') as demo:
|
|
217 |
cfg_scale_src,
|
218 |
cfg_scale_tar,
|
219 |
skip,
|
220 |
-
seed,
|
221 |
-
randomize_seed
|
222 |
],
|
223 |
outputs=[output_image, wts, zs, do_inversion],
|
224 |
)
|
|
|
10 |
from torch import autocast, inference_mode
|
11 |
import re
|
12 |
|
13 |
+
def randomize_seed_fn(seed, randomize_seed):
|
14 |
+
if randomize_seed:
|
15 |
+
seed = random.randint(0, np.iinfo(np.int32).max)
|
16 |
+
torch.manual_seed(seed)
|
17 |
+
return seed
|
18 |
|
19 |
def invert(x0, prompt_src="", num_diffusion_steps=100, cfg_scale_src = 3.5, eta = 1):
|
20 |
|
|
|
156 |
seed = 0,
|
157 |
randomized_seed = True):
|
158 |
|
159 |
+
# if randomized_seed:
|
160 |
+
# seed = random.randint(0, np.iinfo(np.int32).max)
|
161 |
|
162 |
+
# torch.manual_seed(seed)
|
163 |
+
# # offsets=(0,0,0,0)
|
164 |
x0 = load_512(input_image, device=device)
|
165 |
|
166 |
+
if do_inversion or randomized_seed:
|
|
|
167 |
zs_tensor, wts_tensor = invert(x0 =x0 , prompt_src=src_prompt, num_diffusion_steps=steps, cfg_scale_src=cfg_scale_src)
|
|
|
|
|
168 |
wts = gr.State(value=wts_tensor)
|
169 |
zs = gr.State(value=zs_tensor)
|
170 |
do_inversion = False
|
171 |
|
172 |
+
output = sample(zs.value, wts.value, prompt_tar=tar_prompt, skip=skip, cfg_scale_tar=cfg_scale_tar)
|
|
|
|
|
173 |
return output, wts, zs, do_inversion
|
174 |
|
175 |
gr.HTML(intro)
|
|
|
204 |
skip = gr.Slider(minimum=0, maximum=40, value=36, step = 1, label="Skip Steps", interactive=True)
|
205 |
cfg_scale_tar = gr.Slider(minimum=7, maximum=18,value=15, label=f"Target Guidance Scale", interactive=True)
|
206 |
seed = gr.Number(value=0, precision=0, label="Seed", interactive=True)
|
207 |
+
randomize_seed = gr.Checkbox(label='Randomize seed', value=False)
|
208 |
|
209 |
|
210 |
edit_button.click(
|
211 |
+
fn = randomize_seed_fn,
|
212 |
+
inputs = [seed, randomize_seed],
|
213 |
+
outputs = [seed]).then(
|
214 |
fn=edit,
|
215 |
inputs=[input_image,
|
216 |
do_inversion, wts, zs,
|
|
|
220 |
cfg_scale_src,
|
221 |
cfg_scale_tar,
|
222 |
skip,
|
223 |
+
seed,randomized_seed
|
|
|
224 |
],
|
225 |
outputs=[output_image, wts, zs, do_inversion],
|
226 |
)
|