vilarin commited on
Commit
3f75e66
·
verified ·
1 Parent(s): 54411e8

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +15 -16
app.py CHANGED
@@ -93,19 +93,18 @@ if torch.cuda.is_available():
93
  smoother = RIFESmoother.from_model_manager(model_manager2)
94
 
95
 
96
- def change_media(image_in, video_in, media, selected):
97
  if selected == "ExVideo":
98
- media = image_in
99
- return gr.update(visible=True), gr.update(visible=False), media, gr.update(visible=False)
100
  elif selected == "Diffutoon":
101
- media = video_in
102
- return gr.update(visible=False), gr.update(visible=True), media, gr.update(visible=True)
103
 
104
 
105
 
106
  @spaces.GPU(duration=120)
107
  def generate(
108
- media,
 
109
  selected,
110
  prompt: str = "best quality",
111
  seed: Optional[int] = -1,
@@ -117,8 +116,6 @@ def generate(
117
  num_frames: int = 50,
118
  output_folder: str = "outputs",
119
  progress=gr.Progress(track_tqdm=True)):
120
-
121
- print(media)
122
 
123
  if seed == -1:
124
  seed = random.randint(0, MAX_SEED)
@@ -129,8 +126,8 @@ def generate(
129
  base_count = len(glob(os.path.join(output_folder, "*.mp4")))
130
  video_path = os.path.join(output_folder, f"{base_count:06d}.mp4")
131
 
132
- if selected == "ExVideo":
133
- image = Image.open(media)
134
  video = pipe(
135
  input_image=image.resize((512, 512)),
136
  num_frames=num_frames,
@@ -144,9 +141,9 @@ def generate(
144
  contrast_enhance_scale=1.2
145
  )
146
  model_manager.to("cpu")
147
- elif selected == "Diffutoon":
148
  up_video = VideoData(
149
- video_file=media,
150
  height=512, width=512)
151
  input_video = [up_video[i] for i in range(1, 30)]
152
 
@@ -189,7 +186,6 @@ with gr.Blocks(css=CSS, js=JS, theme="soft") as demo:
189
  with gr.Row():
190
  video_in = gr.Video(label='Upload Video', height=600, scale=2)
191
  image_in = gr.Image(label='Upload Image', height=600, scale=2, image_mode="RGB", type="filepath", visible=False)
192
- media = video_in
193
  video = gr.Video(label="Generated Video", height=600, scale=2)
194
  with gr.Column(scale=1):
195
  selected = gr.Radio(
@@ -256,15 +252,18 @@ with gr.Blocks(css=CSS, js=JS, theme="soft") as demo:
256
  with gr.Row():
257
  submit_btn = gr.Button(value="Generate")
258
  #stop_btn = gr.Button(value="Stop", variant="stop")
259
- clear_btn = gr.ClearButton([media, seed, video])
260
 
261
  gr.Examples(
262
  examples=examples,
 
263
  inputs=[video_in, image_in, selected, prompt],
 
 
264
  examples_per_page=4,
265
  )
266
- selected.change(change_media, inputs=[image_in, video_in, media, selected], outputs=[image_in, video_in, media, prompt])
267
- submit_event = submit_btn.click(fn=generate, inputs=[media, selected, prompt, seed, num_inference_steps, animatediff_batch_size, animatediff_stride, motion_bucket_id, fps_id, num_frames], outputs=[video, seed], api_name="video")
268
  #stop_btn.click(fn=None, inputs=None, outputs=None, cancels=[submit_event])
269
 
270
  demo.queue().launch()
 
93
  smoother = RIFESmoother.from_model_manager(model_manager2)
94
 
95
 
96
+ def change_media(image_in, video_in, selected):
97
  if selected == "ExVideo":
98
+ return gr.update(visible=True), gr.update(visible=False), gr.update(visible=False)
 
99
  elif selected == "Diffutoon":
100
+ return gr.update(visible=False), gr.update(visible=True), gr.update(visible=True)
 
101
 
102
 
103
 
104
  @spaces.GPU(duration=120)
105
  def generate(
106
+ video_in,
107
+ image_in,
108
  selected,
109
  prompt: str = "best quality",
110
  seed: Optional[int] = -1,
 
116
  num_frames: int = 50,
117
  output_folder: str = "outputs",
118
  progress=gr.Progress(track_tqdm=True)):
 
 
119
 
120
  if seed == -1:
121
  seed = random.randint(0, MAX_SEED)
 
126
  base_count = len(glob(os.path.join(output_folder, "*.mp4")))
127
  video_path = os.path.join(output_folder, f"{base_count:06d}.mp4")
128
 
129
+ if selected == "ExVideo" and image_in:
130
+ image = Image.open(image_in)
131
  video = pipe(
132
  input_image=image.resize((512, 512)),
133
  num_frames=num_frames,
 
141
  contrast_enhance_scale=1.2
142
  )
143
  model_manager.to("cpu")
144
+ elif selected == "Diffutoon" and video_in:
145
  up_video = VideoData(
146
+ video_file=video_in,
147
  height=512, width=512)
148
  input_video = [up_video[i] for i in range(1, 30)]
149
 
 
186
  with gr.Row():
187
  video_in = gr.Video(label='Upload Video', height=600, scale=2)
188
  image_in = gr.Image(label='Upload Image', height=600, scale=2, image_mode="RGB", type="filepath", visible=False)
 
189
  video = gr.Video(label="Generated Video", height=600, scale=2)
190
  with gr.Column(scale=1):
191
  selected = gr.Radio(
 
252
  with gr.Row():
253
  submit_btn = gr.Button(value="Generate")
254
  #stop_btn = gr.Button(value="Stop", variant="stop")
255
+ clear_btn = gr.ClearButton([video_in, image_in,, seed, video])
256
 
257
  gr.Examples(
258
  examples=examples,
259
+ fn=generate,
260
  inputs=[video_in, image_in, selected, prompt],
261
+ outputs=[video, seed],
262
+ cache_examples="lazy",
263
  examples_per_page=4,
264
  )
265
+ selected.change(change_media, inputs=[image_in, video_in, selected], outputs=[image_in, video_in, prompt])
266
+ submit_event = submit_btn.click(fn=generate, inputs=[video_in, image_in, selected, prompt, seed, num_inference_steps, animatediff_batch_size, animatediff_stride, motion_bucket_id, fps_id, num_frames], outputs=[video, seed], api_name="video")
267
  #stop_btn.click(fn=None, inputs=None, outputs=None, cancels=[submit_event])
268
 
269
  demo.queue().launch()