rinong commited on
Commit
7a331ca
β€’
1 Parent(s): a3a7b2b

Updated to new blocks SDK, testing visibility

Browse files
Files changed (3) hide show
  1. README.md +1 -1
  2. app.py +48 -50
  3. generate_videos.py +1 -1
README.md CHANGED
@@ -4,7 +4,7 @@ emoji: πŸŒ–
4
  colorFrom: blue
5
  colorTo: gray
6
  sdk: gradio
7
- sdk_version: 3.0b8
8
  app_file: app.py
9
  pinned: false
10
  license: mit
 
4
  colorFrom: blue
5
  colorTo: gray
6
  sdk: gradio
7
+ sdk_version: 3.0.1
8
  app_file: app.py
9
  pinned: false
10
  license: mit
app.py CHANGED
@@ -236,17 +236,17 @@ class ImageEditor(object):
236
 
237
  editor = ImageEditor()
238
 
239
- # def change_component_visibility(component_types, invert_choices):
240
 
241
- # def visibility_impl(visible):
242
- # return [component_types[idx].update(visible=visible ^ invert_choices[idx]) for idx in range(len(component_types))]
243
 
244
- # return visibility_impl
245
 
246
- def group_visibility(visible):
247
- print("visible: ", visible)
248
 
249
- return gr.Group.update(visibile=visible)
250
 
251
  blocks = gr.Blocks()
252
 
@@ -259,61 +259,59 @@ with blocks:
259
  "For more information about the paper and code for training your own models (with examples OR text), see below."
260
  )
261
 
262
- # with gr.Row():
263
 
264
- # with gr.Column():
265
- # input_img = gr.inputs.Image(type="filepath", label="Input image")
266
- # style_choice = gr.inputs.CheckboxGroup(choices=editor.get_style_list(), type="value", label="Choose your styles!")
267
 
268
- # video_choice = gr.inputs.Checkbox(default=False, label="Generate Video?", optional=False)
269
-
270
- # video_options_group = gr.Group()
271
 
272
- # with video_options_group:
273
- # edit_choice = gr.inputs.Checkbox(default=False, label="With Editing?", optional=False)
274
- # vid_format_choice = gr.inputs.Radio(choices=["gif", "mp4"], type="value", default='mp4', label="Video Format")
275
 
276
- # # img_button = gr.Button("Edit Image")
277
- # # vid_button = gr.Button("Generate Video")
278
- # img_button = gr.Button("Edit Image")
279
- # vid_button = gr.Button("Generate Video")
280
 
281
- # with gr.Column():
282
- # img_output = gr.outputs.Image(type="file")
283
- # vid_output = gr.outputs.Video()
284
 
285
- # # visibility_fn = change_component_visibility(component_types=[gr.Checkbox, gr.Radio, gr.Video, gr.Button, gr.Image, gr.Button],
286
- # # invert_choices=[False, False, False, False, True, True])
287
 
288
- # # video_choice.change(fn=visibility_fn, inputs=video_choice, outputs=[edit_choice, vid_format_choice, vid_output, vid_button, img_output, img_button])
289
  # video_choice.change(fn=group_visibility, inputs=video_choice, outputs=video_options_group)
290
- # img_button.click(fn=editor.predict, inputs=[input_img, style_choice, video_choice, edit_choice, vid_format_choice], outputs=img_output)
291
- # vid_button.click(fn=editor.predict, inputs=[input_img, style_choice, video_choice, edit_choice, vid_format_choice], outputs=vid_output)
292
 
293
- with gr.Row():
294
- input_img = gr.inputs.Image(type="filepath", label="Input image")
295
- style_choice = gr.inputs.CheckboxGroup(choices=editor.get_style_list(), type="value", label="Choose your styles!")
296
-
297
- with gr.Tabs():
298
- with gr.TabItem("Edit Images"):
299
- with gr.Column():
300
- img_button = gr.Button("Edit Image")
301
- with gr.Column():
302
- img_output = gr.outputs.Image(type="file", label="Output Image")
303
 
304
- with gr.TabItem("Create Video"):
305
- with gr.Column():
306
- with gr.Row():
307
- vid_button = gr.Button("Generate Video")
308
- loop_styles = gr.inputs.Checkbox(default=True, label="Loop video back to the initial style?")
309
- edit_choice = gr.inputs.Checkbox(default=False, label="With latent space editing?")
310
- vid_format_choice = gr.inputs.Radio(choices=["gif", "mp4"], type="value", default='mp4', label="Video Format")
311
 
312
- with gr.Column():
313
- vid_output = gr.outputs.Video(label="Output Video")
314
 
315
- img_button.click(fn=editor.edit_image, inputs=[input_img, style_choice], outputs=img_output)
316
- vid_button.click(fn=editor.edit_video, inputs=[input_img, style_choice, edit_choice, vid_format_choice, loop_styles], outputs=vid_output)
317
 
318
  article = "<p style='text-align: center'><a href='https://arxiv.org/abs/2108.00946' target='_blank'>StyleGAN-NADA: CLIP-Guided Domain Adaptation of Image Generators</a> | <a href='https://stylegan-nada.github.io/' target='_blank'>Project Page</a> | <a href='https://github.com/rinongal/StyleGAN-nada' target='_blank'>Code</a></p> <center><img src='https://visitor-badge.glitch.me/badge?page_id=rinong_sgnada' alt='visitor badge'></center>"
319
  gr.Markdown(article)
 
236
 
237
  editor = ImageEditor()
238
 
239
+ def change_component_visibility(component_types, invert_choices):
240
 
241
+ def visibility_impl(visible):
242
+ return [component_types[idx].update(visible=visible ^ invert_choices[idx]) for idx in range(len(component_types))]
243
 
244
+ return visibility_impl
245
 
246
+ # def group_visibility(visible):
247
+ # print("visible: ", visible)
248
 
249
+ # return gr.Group.update(visibile=visible)
250
 
251
  blocks = gr.Blocks()
252
 
 
259
  "For more information about the paper and code for training your own models (with examples OR text), see below."
260
  )
261
 
262
+ with gr.Row():
263
 
264
+ with gr.Column():
265
+ input_img = gr.inputs.Image(type="filepath", label="Input image")
266
+ style_choice = gr.inputs.CheckboxGroup(choices=editor.get_style_list(), type="value", label="Choose your styles!")
267
 
268
+ video_choice = gr.inputs.Checkbox(default=False, label="Generate Video?", optional=False)
 
 
269
 
270
+ loop_styles = gr.inputs.Checkbox(default=True, label="Loop video back to the initial style?", visible=False)
271
+ edit_choice = gr.inputs.Checkbox(default=False, label="With Editing?", visible=False)
272
+ vid_format_choice = gr.inputs.Radio(choices=["gif", "mp4"], type="value", default='mp4', label="Video Format", visible=False)
273
 
274
+ # img_button = gr.Button("Edit Image")
275
+ # vid_button = gr.Button("Generate Video")
276
+ img_button = gr.Button("Edit Image")
277
+ vid_button = gr.Button("Generate Video", visible=False)
278
 
279
+ with gr.Column():
280
+ img_output = gr.outputs.Image(type="file")
281
+ vid_output = gr.outputs.Video(visible=False)
282
 
283
+ visibility_fn = change_component_visibility(component_types=[gr.Checkbox, gr.Radio, gr.Video, gr.Button, gr.Image, gr.Button, gr.Checkbox],
284
+ invert_choices=[False, False, False, False, True, True, False])
285
 
286
+ video_choice.change(fn=visibility_fn, inputs=video_choice, outputs=[edit_choice, vid_format_choice, vid_output, vid_button, img_output, img_button])
287
  # video_choice.change(fn=group_visibility, inputs=video_choice, outputs=video_options_group)
288
+ img_button.click(fn=editor.edit_image, inputs=[input_img, style_choice], outputs=img_output)
289
+ vid_button.click(fn=editor.edit_video, inputs=[input_img, style_choice, edit_choice, vid_format_choice, loop_styles], outputs=vid_output)
290
 
291
+ # with gr.Row():
292
+ # input_img = gr.inputs.Image(type="filepath", label="Input image")
293
+ # style_choice = gr.inputs.CheckboxGroup(choices=editor.get_style_list(), type="value", label="Choose your styles!")
294
+
295
+ # with gr.Tabs():
296
+ # with gr.TabItem("Edit Images"):
297
+ # with gr.Column():
298
+ # img_button = gr.Button("Edit Image")
299
+ # with gr.Column():
300
+ # img_output = gr.outputs.Image(type="file", label="Output Image")
301
 
302
+ # with gr.TabItem("Create Video"):
303
+ # with gr.Column():
304
+ # with gr.Row():
305
+ # vid_button = gr.Button("Generate Video")
306
+ # loop_styles = gr.inputs.Checkbox(default=True, label="Loop video back to the initial style?")
307
+ # edit_choice = gr.inputs.Checkbox(default=False, label="With latent space editing?")
308
+ # vid_format_choice = gr.inputs.Radio(choices=["gif", "mp4"], type="value", default='mp4', label="Video Format")
309
 
310
+ # with gr.Column():
311
+ # vid_output = gr.outputs.Video(label="Output Video")
312
 
313
+ # img_button.click(fn=editor.edit_image, inputs=[input_img, style_choice], outputs=img_output)
314
+ # vid_button.click(fn=editor.edit_video, inputs=[input_img, style_choice, edit_choice, vid_format_choice, loop_styles], outputs=vid_output)
315
 
316
  article = "<p style='text-align: center'><a href='https://arxiv.org/abs/2108.00946' target='_blank'>StyleGAN-NADA: CLIP-Guided Domain Adaptation of Image Generators</a> | <a href='https://stylegan-nada.github.io/' target='_blank'>Project Page</a> | <a href='https://github.com/rinongal/StyleGAN-nada' target='_blank'>Code</a></p> <center><img src='https://visitor-badge.glitch.me/badge?page_id=rinong_sgnada' alt='visitor badge'></center>"
317
  gr.Markdown(article)
generate_videos.py CHANGED
@@ -151,7 +151,7 @@ def video_from_interpolations(fps, output_dir):
151
  "-r", f"{fps}",
152
  "-i", f"{output_dir}/%03d.jpg",
153
  "-c:v", "libx264",
154
- "-vf", f"fps={fps}, loop=loop=-1",
155
  "-pix_fmt", "yuv420p",
156
  f"{output_dir}/out.mp4"]
157
 
 
151
  "-r", f"{fps}",
152
  "-i", f"{output_dir}/%03d.jpg",
153
  "-c:v", "libx264",
154
+ "-vf", f"fps={fps}",
155
  "-pix_fmt", "yuv420p",
156
  f"{output_dir}/out.mp4"]
157