Spaces:
				
			
			
	
			
			
		Runtime error
		
	
	
	
			
			
	
	
	
	
		
		
		Runtime error
		
	Make it cleaner and error if not square (#5)
Browse files- Make it cleaner and error if not square (c79060a2bd0b10e589062cad295b3e8ea628954b)
Co-authored-by: Apolinário from multimodal AI art <[email protected]>
    	
        app.py
    CHANGED
    
    | @@ -13,6 +13,7 @@ from src.config.crop_config import CropConfig | |
| 13 | 
             
            from src.config.argument_config import ArgumentConfig
         | 
| 14 | 
             
            from src.config.inference_config import InferenceConfig
         | 
| 15 | 
             
            import spaces
         | 
|  | |
| 16 |  | 
| 17 | 
             
            # import gdown
         | 
| 18 | 
             
            # folder_url = f"https://drive.google.com/drive/folders/1UtKgzKjFAOmZkhNK-OYT0caJ_w2XAnib"
         | 
| @@ -43,6 +44,18 @@ def gpu_wrapped_execute_video(*args, **kwargs): | |
| 43 | 
             
            def gpu_wrapped_execute_image(*args, **kwargs):
         | 
| 44 | 
             
                return gradio_pipeline.execute_image(*args, **kwargs)
         | 
| 45 |  | 
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
| 46 | 
             
            # assets
         | 
| 47 | 
             
            title_md = "assets/gradio_title.md"
         | 
| 48 | 
             
            example_portrait_dir = "assets/examples/source"
         | 
| @@ -94,9 +107,9 @@ with gr.Blocks(theme=gr.themes.Soft()) as demo: | |
| 94 | 
             
                            inputs=[video_input],
         | 
| 95 | 
             
                            cache_examples=False,
         | 
| 96 | 
             
                        )
         | 
| 97 | 
            -
                gr.Markdown(load_description("assets/gradio_description_animation.md"))
         | 
| 98 | 
             
                with gr.Row():
         | 
| 99 | 
            -
                    with gr.Accordion(open=False, label="Animation Options"):
         | 
|  | |
| 100 | 
             
                        with gr.Row():
         | 
| 101 | 
             
                            flag_relative_input = gr.Checkbox(value=True, label="relative motion")
         | 
| 102 | 
             
                            flag_do_crop_input = gr.Checkbox(value=True, label="do crop")
         | 
| @@ -182,6 +195,11 @@ with gr.Blocks(theme=gr.themes.Soft()) as demo: | |
| 182 | 
             
                    inputs=image_input,
         | 
| 183 | 
             
                    outputs=[eye_retargeting_slider, lip_retargeting_slider, retargeting_input_image]
         | 
| 184 | 
             
                )
         | 
|  | |
|  | |
|  | |
|  | |
|  | |
| 185 |  | 
| 186 | 
             
            demo.launch(
         | 
| 187 | 
             
                server_port=args.server_port,
         | 
|  | |
| 13 | 
             
            from src.config.argument_config import ArgumentConfig
         | 
| 14 | 
             
            from src.config.inference_config import InferenceConfig
         | 
| 15 | 
             
            import spaces
         | 
| 16 | 
            +
            import cv2
         | 
| 17 |  | 
| 18 | 
             
            # import gdown
         | 
| 19 | 
             
            # folder_url = f"https://drive.google.com/drive/folders/1UtKgzKjFAOmZkhNK-OYT0caJ_w2XAnib"
         | 
|  | |
| 44 | 
             
            def gpu_wrapped_execute_image(*args, **kwargs):
         | 
| 45 | 
             
                return gradio_pipeline.execute_image(*args, **kwargs)
         | 
| 46 |  | 
| 47 | 
            +
            def is_square_video(video_path):
         | 
| 48 | 
            +
                video = cv2.VideoCapture(video_path)
         | 
| 49 | 
            +
                
         | 
| 50 | 
            +
                width = int(video.get(cv2.CAP_PROP_FRAME_WIDTH))
         | 
| 51 | 
            +
                height = int(video.get(cv2.CAP_PROP_FRAME_HEIGHT))
         | 
| 52 | 
            +
                
         | 
| 53 | 
            +
                video.release()
         | 
| 54 | 
            +
                if width != height:
         | 
| 55 | 
            +
                    raise gr.Error("Error: the video does not have a square aspect ratio. We currently only support square videos")
         | 
| 56 | 
            +
                
         | 
| 57 | 
            +
                return gr.update(visible=True)
         | 
| 58 | 
            +
             | 
| 59 | 
             
            # assets
         | 
| 60 | 
             
            title_md = "assets/gradio_title.md"
         | 
| 61 | 
             
            example_portrait_dir = "assets/examples/source"
         | 
|  | |
| 107 | 
             
                            inputs=[video_input],
         | 
| 108 | 
             
                            cache_examples=False,
         | 
| 109 | 
             
                        )
         | 
|  | |
| 110 | 
             
                with gr.Row():
         | 
| 111 | 
            +
                    with gr.Accordion(open=False, label="Animation Instructions and Options"):
         | 
| 112 | 
            +
                        gr.Markdown(load_description("assets/gradio_description_animation.md"))
         | 
| 113 | 
             
                        with gr.Row():
         | 
| 114 | 
             
                            flag_relative_input = gr.Checkbox(value=True, label="relative motion")
         | 
| 115 | 
             
                            flag_do_crop_input = gr.Checkbox(value=True, label="do crop")
         | 
|  | |
| 195 | 
             
                    inputs=image_input,
         | 
| 196 | 
             
                    outputs=[eye_retargeting_slider, lip_retargeting_slider, retargeting_input_image]
         | 
| 197 | 
             
                )
         | 
| 198 | 
            +
                video_input.upload(
         | 
| 199 | 
            +
                    fn=is_square_video,
         | 
| 200 | 
            +
                    inputs=video_input,
         | 
| 201 | 
            +
                    outputs=video_input
         | 
| 202 | 
            +
                )
         | 
| 203 |  | 
| 204 | 
             
            demo.launch(
         | 
| 205 | 
             
                server_port=args.server_port,
         | 
 
			

 
		