Spaces:
Runtime error
Runtime error
File size: 3,684 Bytes
3da52d6 60931f6 3da52d6 e876014 3da52d6 a16f34f 60931f6 3da52d6 60931f6 a16f34f 60931f6 3da52d6 60931f6 3da52d6 60931f6 3da52d6 60931f6 3da52d6 60931f6 e4e75af 60931f6 e4e75af 3da52d6 e4e75af 3da52d6 60931f6 98417d5 408c5c6 98417d5 e4e75af 98417d5 60931f6 |
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 |
import os
import gradio as gr
from modelscope.pipelines import pipeline
from modelscope.outputs import OutputKeys
image_to_video_pipe = pipeline(task="image-to-video", model='damo/i2vgen-xl', model_revision='v1.1.4', device='cuda:0')
# Get the current working directory
current_directory = os.getcwd()
print("Current Working Directory:", current_directory)
def upload_file(file):
return file.name
def image_to_video(image_in, text_in):
print("Current Working Directory:", current_directory)
if image_in is None:
raise gr.Error('请上传图片或等待图片上传完成')
print(image_in)
output_video_path = image_to_video_pipe(image_in, caption=text_in)[OutputKeys.OUTPUT_VIDEO]
print(output_video_path)
return output_video_path
with gr.Blocks() as demo:
gr.Markdown(
"""<center><font size=7>I2VGen-XL</center>
<left><font size=3>I2VGen-XL可以根据用户输入的静态图像和文本生成目标接近、语义相同的视频,生成的视频具高清(1280 * 720)、宽屏(16:9)、时序连贯、质感好等特点。</left>
<left><font size=3>I2VGen-XL can generate videos with similar contents and semantics based on user input static images and text. The generated videos have characteristics such as high-definition (1280 * 720), widescreen (16:9), coherent timing, and good texture.</left>
"""
)
with gr.Box():
gr.Markdown(
"""<left><font size=3>选择合适的图片进行上传,并补充对视频内容的英文文本描述,然后点击“生成视频”。</left>
<left><font size=3>Please choose the image to upload (we recommend the image size be 1280 * 720), provide the English text description of the video you wish to create, and then click on "Generate Video" to receive the generated video.</left>"""
)
with gr.Row():
with gr.Column():
text_in = gr.Textbox(label="文本描述", lines=2, elem_id="text-in")
image_in = gr.Image(label="Image Input/图片输入", type="filepath", interactive=False, elem_id="image-in", height=300)
with gr.Row():
upload_image = gr.UploadButton("Upload Image/上传图片", file_types=["image"], file_count="single")
image_submit = gr.Button("Generate video/生成视频🎬")
with gr.Column():
video_out_1 = gr.Video(label='Generated Video/生成的视频', elem_id='video-out_1', interactive=False, height=300)
gr.Markdown("""<left><font size=2>注:如果生成的视频无法播放,请尝试升级浏览器或使用chrome浏览器。</left>
<left><font size=2>Note: If the generated video cannot be played, please try to upgrade your browser or use the Chrome browser.</left>"""
)
upload_image.upload(upload_file, upload_image, image_in, queue=False)
image_submit.click(fn=image_to_video, inputs=[image_in, text_in], outputs=[video_out_1])
with gr.Row(variant="panel"):
gr.Examples(examples=[
#['example_images/sample2.png', 'A girl with yellow hair and black clothes stood in front of the camera'],
[os.path.join(current_directory, 'sample13.png'), 'A girl in hat and glasses']
],
inputs=[image_in, text_in],
outputs=[video_out_1],
fn=image_to_video,
cache_examples=True,
examples_per_page=5,
label='Examples',
)
demo.queue(status_update_rate=1, api_open=False).launch(share=False, show_error=True)
|