Spaces:
Runtime error
Runtime error
| import gradio as gr | |
| import modules.images | |
| from modules import scripts_postprocessing | |
| class ScriptPostprocessingUpscale(scripts_postprocessing.ScriptPostprocessing): | |
| name = "Video" | |
| def ui(self): | |
| def video_type_change(video_type): | |
| return [ | |
| gr.update(visible=video_type != 'None'), | |
| gr.update(visible=video_type == 'GIF' or video_type == 'PNG'), | |
| gr.update(visible=video_type == 'MP4'), | |
| gr.update(visible=video_type == 'MP4'), | |
| gr.update(visible=video_type == 'MP4'), | |
| gr.update(visible=video_type == 'MP4'), | |
| ] | |
| with gr.Row(): | |
| gr.HTML("<span>  Video</span><br>") | |
| with gr.Row(): | |
| video_type = gr.Dropdown(label='Video file', choices=['None', 'GIF', 'PNG', 'MP4'], value='None') | |
| duration = gr.Slider(label='Duration', minimum=0.25, maximum=10, step=0.25, value=2, visible=False) | |
| with gr.Row(): | |
| loop = gr.Checkbox(label='Loop', value=True, visible=False) | |
| pad = gr.Slider(label='Pad frames', minimum=0, maximum=24, step=1, value=1, visible=False) | |
| interpolate = gr.Slider(label='Interpolate frames', minimum=0, maximum=24, step=1, value=0, visible=False) | |
| scale = gr.Slider(label='Rescale', minimum=0.5, maximum=2, step=0.05, value=1, visible=False) | |
| change = gr.Slider(label='Frame change sensitivity', minimum=0, maximum=1, step=0.05, value=0.3, visible=False) | |
| with gr.Row(): | |
| filename = gr.Textbox(label='Filename', placeholder='enter filename', lines=1) | |
| video_type.change(fn=video_type_change, inputs=[video_type], outputs=[duration, loop, pad, interpolate, scale, change]) | |
| return { | |
| "filename": filename, | |
| "video_type": video_type, | |
| "duration": duration, | |
| "loop": loop, | |
| "pad": pad, | |
| "interpolate": interpolate, | |
| "scale": scale, | |
| "change": change, | |
| } | |
| def postprocess(self, images, filename, video_type, duration, loop, pad, interpolate, scale, change): # pylint: disable=arguments-differ | |
| filename = filename.strip() if filename is not None else '' | |
| if video_type == 'None' or len(filename) == 0 or images is None or len(images) < 2: | |
| return | |
| modules.images.save_video(p=None, filename=filename, images=images, video_type=video_type, duration=duration, loop=loop, pad=pad, interpolate=interpolate, scale=scale, change=change) | |