MS-Image2Video / app.py
fffiloni's picture
fix variable name typo
5c3bd86
raw
history blame
No virus
2.14 kB
import gradio as gr
from modelscope.pipelines import pipeline
from modelscope.outputs import OutputKeys
pipe = pipeline(task='image-to-video', model='damo/Image-to-Video', model_revision='v1.1.0')
def infer (image_in):
# IMG_PATH: your image path (url or local file)
IMG_PATH = image_in
output_video_path = pipe(IMG_PATH, output_video='output.mp4')[OutputKeys.OUTPUT_VIDEO]
print(output_video_path)
return output_video_path
css="""
#col-container {
max-width: 780px;
margin-left: auto;
margin-right: auto;
}
img[src*='#center'] {
display: block;
margin: auto;
}
.footer {
margin-bottom: 45px;
margin-top: 10px;
text-align: center;
border-bottom: 1px solid #e5e5e5;
}
.footer > p {
font-size: .8rem;
display: inline-block;
padding: 0 10px;
transform: translateY(10px);
background: white;
}
.dark .footer {
border-color: #303030;
}
.dark .footer > p {
background: #0b0f19;
}
"""
with gr.Blocks(css=css) as demo:
with gr.Column(elem_id="col-container"):
gr.Markdown("""
<h1 style="text-align: center;">
MS Image2Video
</h1>
[![Duplicate this Space](https://huggingface.co/datasets/huggingface/badges/raw/main/duplicate-this-space-sm.svg#center)](https://huggingface.co/spaces/fffiloni/MS-Image2Video-cloning?duplicate=true)
""")
image_in = gr.Image(
label = "Source Image",
source = "upload",
type = "filepath"
)
submit_btn = gr.Button(
"Submit"
)
video_out = gr.Video(
label = "Video Result"
)
gr.HTML("""
<div class="footer">
<p>
MS-Image2Video Demo by 🤗 <a href="https://twitter.com/fffiloni" target="_blank">Sylvain Filoni</a>
</p>
</div>
""")
submit_btn.click(
fn = infer,
inputs = [
image_in
],
outputs = [
video_out
]
)
demo.queue(max_size=20).launch()