import streamlit as st import os VIDEO_FOLDER = "./src/synthda_falling_realreal/" # Page layout settings st.set_page_config(layout="wide", initial_sidebar_state="collapsed") # Custom styles for centering and reducing video size st.markdown(""" """, unsafe_allow_html=True) # Title and description st.markdown("""

Project SynthDa

SynthDa Interpolation Demo Viewer

AutoSynthDa blends two input motion videos to generate kinematically coherent, synthetic action videos.
Use the slider below to explore how the system interpolates motion from one video to another.
github.com/nvidia/synthda

""", unsafe_allow_html=True) # Slider weight = st.slider("Interpolation Weight (0 = Left Video, 1 = Right Video)", 0.1, 0.9, 0.5, step=0.1) # Interpolation status if weight == 0.0: interp_text = "Showing Input Video 1 (no interpolation)" elif weight == 1.0: interp_text = "Showing Input Video 2 (no interpolation)" else: w2 = round(1.0 - weight, 1) interp_text = f"{weight:.1f} from Input 1 + {w2:.1f} from Input 2" st.markdown(f"

{interp_text}

", unsafe_allow_html=True) # Video paths filename_interp = f"videos_generated_{weight:.1f}.mp4" video_interp = os.path.join(VIDEO_FOLDER, filename_interp) video_input1 = os.path.join(VIDEO_FOLDER, "videos_generated_0.0.mp4") video_input2 = os.path.join(VIDEO_FOLDER, "videos_generated_1.0.mp4") # 3 videos in row col1, col2, col3 = st.columns([1, 1, 1]) with col1: st.markdown("
Input Video 1
", unsafe_allow_html=True) if os.path.exists(video_input1): st.markdown(f"""
""", unsafe_allow_html=True) else: st.error("Video 1 not found") with col2: st.markdown("
Interpolated Video
", unsafe_allow_html=True) if os.path.exists(video_interp): st.markdown(f"""
""", unsafe_allow_html=True) else: st.error("Interpolated video not found") with col3: st.markdown("
Input Video 2
", unsafe_allow_html=True) if os.path.exists(video_input2): st.markdown(f"""
""", unsafe_allow_html=True) else: st.error("Video 2 not found")