File size: 2,479 Bytes
bf4f410
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
from gradio_client import Client
import gradio as gr

# Initialize the client with your API key and the CogVideoX-5B-Space endpoint
api_key = ""
client = Client("THUDM/CogVideoX-5B-Space", hf_token=api_key)

def generate_video(prompt, seed_value, scale_status, rife_status):
    result = client.predict(
        prompt=prompt,
        seed_value=seed_value,
        scale_status=scale_status,
        rife_status=rife_status,
        api_name="/generate"
    )
    
    video_url = result[0]['video']
    subtitles = result[0]['subtitles']
    video_file = result[1]
    gif_file = result[2]
    seed_used = result[3]
    
    # Save video file locally
    video_file_path = "generated_video.mp4"
    with open(video_file_path, "wb") as f:
        f.write(client.download_file(video_file))
    
    # Save GIF file locally
    gif_file_path = "generated_video.gif"
    with open(gif_file_path, "wb") as f:
        f.write(client.download_file(gif_file))
    
    return video_url, gif_file_path, seed_used

def enhance_prompt(prompt):
    enhanced_prompt = client.predict(
        prompt=prompt,
        api_name="/enhance_prompt_func"
    )
    return enhanced_prompt

def video_interface(prompt, seed_value=-1, scale_status=False, rife_status=False):
    video_url, gif_file_path, seed_used = generate_video(prompt, seed_value, scale_status, rife_status)
    return video_url, gif_file_path, seed_used

video_gen_interface = gr.Interface(
    fn=video_interface,
    inputs=[
        gr.Textbox(lines=2, placeholder="Enter your prompt here..."),
        gr.Number(value=-1, label="Inference Seed (-1 for random)"),
        gr.Checkbox(label="Super-Resolution (720 × 480 -> 1440 × 960)"),
        gr.Checkbox(label="Frame Interpolation (8fps -> 16fps)")
    ],
    outputs=[
        gr.Video(label="Generated Video"),
        gr.File(label="Download GIF"),
        gr.Number(label="Seed Used for Video Generation")
    ],
    title="Pettah AI: VideoGenX"
)

def enhance_interface(prompt):
    enhanced_prompt = enhance_prompt(prompt)
    return enhanced_prompt

enhance_prompt_interface = gr.Interface(
    fn=enhance_interface,
    inputs=gr.Textbox(lines=2, placeholder="Enter your prompt here..."),
    outputs=gr.Textbox(lines=2),
    title="Enhance Prompt with CogVideoX-5B"
)

if __name__ == "__main__":
    video_gen_interface.launch(share=True)
    enhance_prompt_interface.launch(share=True)