NumberVideo_Bot / app.py
Eyuvaraj
heygen api video gen, dynamic clipping
2266c59
raw
history blame
2.37 kB
import streamlit as st
from utils import *
st.set_page_config(
page_title="Number to Video",
page_icon="🎥",
initial_sidebar_state="auto",
)
# Input number
number = st.text_input("Enter a number between 1 and 9999999", "24")
number = int(number)
if number:
col1, col2 = st.columns(2)
with col1:
with st.container(border=True):
st.subheader("Settings")
st.divider()
# Generate clip sequence based on the number
clips = generate_clip_sequence(number)
if clips:
st.write("Generated Clips Sequence:")
for i, clip in enumerate(clips):
st.write(f"Clip {i + 1}: {clip}")
submit = st.button("Create Video", use_container_width=True)
if clips:
with st.sidebar:
st.title("Advanced Settings")
trim_settings = []
for i, clip in enumerate(clips):
with st.container(border=True):
st.write(f"Adjust settings for {clip}:")
length = get_clip_duration(clip)
default_trim_start = 0.10
default_trim_end = length - 0.10
# trim_bounds = st.slider(
# f"Trim bounds for {clip}",
# 0.0, length,
# (default_trim_start, default_trim_end),
# 0.01,
# key=f"bounds_{i}"
# )
# trim_bounds = tuple([round(b, 2) for b in trim_bounds])
# print(trim_bounds)
# trim_settings.append(trim_bounds)
trim_start = st.slider(f"Trim start for {clip}", 0.0, length, 0.00, 0.01, key=f"start_{i}")
trim_end = st.slider(f"Trim end for {clip}", 0.0, length, 0.00, 0.01, key=f"end_{i}")
trim_settings.append((trim_start, trim_end))
print(trim_settings)
with col2:
with st.container(border=True):
st.subheader("Output")
output_file = "output.mp4"
if submit:
pass
# Create the video with individual clip settings
create_advanced_video(number, trim_settings, output_file)
st.video(output_file, autoplay=True)