Spaces:
Runtime error
Runtime error
Commit
·
536f1c7
1
Parent(s):
8c6a211
Update app.py
Browse files
app.py
CHANGED
|
@@ -108,7 +108,23 @@ def prep(config):
|
|
| 108 |
|
| 109 |
|
| 110 |
return frames, latents, total_inverted_latents, rgb_reconstruction
|
| 111 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 112 |
def preprocess_and_invert(input_video,
|
| 113 |
frames,
|
| 114 |
latents,
|
|
@@ -141,21 +157,27 @@ def preprocess_and_invert(input_video,
|
|
| 141 |
#preprocess_config['n_frames'] = n_frames
|
| 142 |
preprocess_config['seed'] = seed
|
| 143 |
preprocess_config['inversion_prompt'] = inversion_prompt
|
| 144 |
-
|
|
|
|
|
|
|
|
|
|
| 145 |
preprocess_config['data_path'] = input_video.split(".")[0]
|
| 146 |
|
| 147 |
-
|
| 148 |
-
|
| 149 |
-
|
| 150 |
-
|
| 151 |
-
|
| 152 |
-
|
| 153 |
-
|
| 154 |
-
|
| 155 |
-
|
| 156 |
-
preprocess_config['
|
|
|
|
| 157 |
|
| 158 |
print("Running with batch size of ", preprocess_config['batch_size'])
|
|
|
|
|
|
|
| 159 |
if randomize_seed:
|
| 160 |
seed = randomize_seed_fn()
|
| 161 |
seed_everything(seed)
|
|
@@ -205,7 +227,9 @@ def edit_with_pnp(input_video,
|
|
| 205 |
config["pnp_attn_t"] = pnp_attn_t
|
| 206 |
config["pnp_f_t"] = pnp_f_t
|
| 207 |
config["pnp_inversion_prompt"] = inversion_prompt
|
| 208 |
-
|
|
|
|
|
|
|
| 209 |
|
| 210 |
if do_inversion:
|
| 211 |
frames, latents, inverted_latents, do_inversion, batch_size, n_frames = preprocess_and_invert(
|
|
@@ -345,7 +369,7 @@ with gr.Blocks(css="style.css") as demo:
|
|
| 345 |
input_video.upload(
|
| 346 |
fn = reset_do_inversion,
|
| 347 |
outputs = [do_inversion],
|
| 348 |
-
queue = False).then(fn = preprocess_and_invert,
|
| 349 |
inputs = [input_video,
|
| 350 |
frames,
|
| 351 |
latents,
|
|
@@ -367,6 +391,7 @@ with gr.Blocks(css="style.css") as demo:
|
|
| 367 |
batch_size,
|
| 368 |
n_frames
|
| 369 |
])
|
|
|
|
| 370 |
|
| 371 |
run_button.click(fn = edit_with_pnp,
|
| 372 |
inputs = [input_video,
|
|
|
|
| 108 |
|
| 109 |
|
| 110 |
return frames, latents, total_inverted_latents, rgb_reconstruction
|
| 111 |
+
|
| 112 |
+
|
| 113 |
+
def calculate_fps(input_video, batch_size):
|
| 114 |
+
frames, frames_per_second = video_to_frames(input_video)
|
| 115 |
+
total_vid_frames = len(frames)
|
| 116 |
+
total_vid_duration = total_vid_frames/frames_per_second
|
| 117 |
+
|
| 118 |
+
if(total_vid_duration < 1):
|
| 119 |
+
frames_to_process = total_vid_frames
|
| 120 |
+
else:
|
| 121 |
+
frames_to_process = int(frames_per_second/n_seconds)
|
| 122 |
+
|
| 123 |
+
if frames_to_process % batch_size != 0:
|
| 124 |
+
batch_size = largest_divisor(batch_size)
|
| 125 |
+
|
| 126 |
+
return frames, batch_size, frames_to_process
|
| 127 |
+
|
| 128 |
def preprocess_and_invert(input_video,
|
| 129 |
frames,
|
| 130 |
latents,
|
|
|
|
| 157 |
#preprocess_config['n_frames'] = n_frames
|
| 158 |
preprocess_config['seed'] = seed
|
| 159 |
preprocess_config['inversion_prompt'] = inversion_prompt
|
| 160 |
+
not_processed = False
|
| 161 |
+
if(not frames):
|
| 162 |
+
preprocess_config['frames'],frames_per_second = video_to_frames(input_video)
|
| 163 |
+
not_processed = True
|
| 164 |
preprocess_config['data_path'] = input_video.split(".")[0]
|
| 165 |
|
| 166 |
+
if(not_processed):
|
| 167 |
+
total_vid_frames = len(preprocess_config['frames'])
|
| 168 |
+
total_vid_duration = total_vid_frames/frames_per_second
|
| 169 |
+
|
| 170 |
+
if(total_vid_duration < 1):
|
| 171 |
+
preprocess_config['n_frames'] = total_vid_frames
|
| 172 |
+
else:
|
| 173 |
+
preprocess_config['n_frames'] = int(frames_per_second/n_seconds)
|
| 174 |
+
|
| 175 |
+
if preprocess_config['n_frames'] % batch_size != 0:
|
| 176 |
+
preprocess_config['batch_size'] = largest_divisor(batch_size)
|
| 177 |
|
| 178 |
print("Running with batch size of ", preprocess_config['batch_size'])
|
| 179 |
+
print("Total vid frames", preprocess_config['n_frames'])
|
| 180 |
+
|
| 181 |
if randomize_seed:
|
| 182 |
seed = randomize_seed_fn()
|
| 183 |
seed_everything(seed)
|
|
|
|
| 227 |
config["pnp_attn_t"] = pnp_attn_t
|
| 228 |
config["pnp_f_t"] = pnp_f_t
|
| 229 |
config["pnp_inversion_prompt"] = inversion_prompt
|
| 230 |
+
|
| 231 |
+
print("Running with batch size of ", config['batch_size'])
|
| 232 |
+
print("Total vid frames", config['n_frames'])
|
| 233 |
|
| 234 |
if do_inversion:
|
| 235 |
frames, latents, inverted_latents, do_inversion, batch_size, n_frames = preprocess_and_invert(
|
|
|
|
| 369 |
input_video.upload(
|
| 370 |
fn = reset_do_inversion,
|
| 371 |
outputs = [do_inversion],
|
| 372 |
+
queue = False).then(fn = calculate_fps, inputs=[input_video], outputs=[frames, batch_size, n_frames], queue=False).then(fn = preprocess_and_invert,
|
| 373 |
inputs = [input_video,
|
| 374 |
frames,
|
| 375 |
latents,
|
|
|
|
| 391 |
batch_size,
|
| 392 |
n_frames
|
| 393 |
])
|
| 394 |
+
input_video.change(fn = calculate_fps, inputs=[input_video], outputs=[batch_size, n_frames], queue=False)
|
| 395 |
|
| 396 |
run_button.click(fn = edit_with_pnp,
|
| 397 |
inputs = [input_video,
|