import gradio as gr from gradio_client import Client, handle_file # Function to handle video-to-image extraction and return the extracted frames as a ZIP def extract_frames_from_video(video_file): # Initialize the client for Video-To-Image API client = Client("Abu1998/Video-To-Image") # Upload the video file to the API video_url = handle_file(video_file.name) # Send the video file to the API for processing result = client.predict( video_path={"video": video_url}, api_name="/predict" ) # The result should contain the link to the ZIP file with extracted frames return result['filepath'] # Gradio Interface setup def create_gradio_interface(): with gr.Blocks() as app: gr.Markdown("# Video to Image Frame Extractor") # Input component for video upload video_file = gr.File(type="filepath", label="Upload Video") # Output component for the extracted frames (ZIP file) zip_output = gr.File(label="Download Extracted Frames as ZIP") # Button to trigger video-to-image extraction process_button = gr.Button("Extract Frames") # Action for button click process_button.click(fn=extract_frames_from_video, inputs=video_file, outputs=zip_output) app.launch(share=True) # Run the application if __name__ == "__main__": create_gradio_interface()