File size: 1,734 Bytes
0b71c1e
9013c8f
314f998
0b71c1e
9013c8f
0b71c1e
314f998
 
0b71c1e
1742a42
0b71c1e
 
 
 
 
1742a42
0b71c1e
 
 
 
 
 
 
 
 
 
 
 
 
 
1742a42
0b71c1e
 
1742a42
 
 
 
 
 
 
 
 
 
0b71c1e
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
314f998
0b71c1e
 
 
 
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
import gradio as gr

def infer(text_prompt, action_prompt, login):
    from huggingface_hub import InferenceClient

    inf_client = InferenceClient(
        provider="fal-ai",
        api_key=login
    )

    # output is a PIL.Image object
    image = inf_client.text_to_image(
        text_prompt,
        model="multimodalart/isometric-skeumorphic-3d-bnb",
    )

    import tempfile

    # Create a temporary PNG file
    with tempfile.NamedTemporaryFile(suffix=".png", delete=False) as tmp_file:
        temp_image_path = tmp_file.name
        image.save(temp_image_path, format="PNG")

    print(f"✅ Image saved temporarily at: {temp_image_path}")

    from gradio_client import Client, handle_file

    gr_client = Client("Lightricks/ltx-video-distilled")
    result = gr_client.predict(
		prompt=action_prompt,
		negative_prompt="worst quality, inconsistent motion, blurry, jittery, distorted",
		input_image_filepath=handle_file(temp_image_path),
		input_video_filepath=None,
		height_ui=512,
		width_ui=704,
		mode="image-to-video",
		duration_ui=2,
		ui_frames_to_use=9,
		seed_ui=42,
		randomize_seed=True,
		ui_guidance_scale=1,
		improve_texture_flag=True,
		api_name="/image_to_video"
    )
    print(result)

    return temp_image_path, result

with gr.Blocks() as demo:

    with gr.Column():

        login = gr.LoginButton()

        text_prompt = gr.Textbox(label="Icon label")
        action_prompt = gr.Textbox(label="Action label")
        submit_btn = gr.Button("Submit")
        image_out = gr.Image()
        video_out = gr.Video()

    submit_btn.click(
        fn = infer,
        inputs = [text_prompt, action_prompt, login],
        outputs = [image_out, video_out]
    )

demo.launch(show_error=True)