import streamlit as st import os VIDEO_FOLDER = "./src/synthda_falling_realreal/" # Page config optimized for screen recording st.set_page_config(layout="wide", initial_sidebar_state="collapsed") # Custom CSS to center and reduce spacing st.markdown(""" """, unsafe_allow_html=True) # Compact title and description st.markdown("""

Project SynthDa

AutoSynthDa generates synthetic action videos by interpolating between two input motions.
Move the slider to explore the effect of blending.

github.com/nvidia/synthda

""", unsafe_allow_html=True) # Slider with default at midpoint weight = st.slider("Interpolation Weight (0 = Left Video, 1 = Right Video)", 0.1, 0.9, 0.5, step=0.1) # Interpolation text 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) # File 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") # 2 columns only col1, col2 = st.columns([1, 1]) with col1: st.markdown("
Input Video 1
", unsafe_allow_html=True) if os.path.exists(video_input1): st.video(video_input1) else: st.error("Video 1 not found") with col2: st.markdown("
Input Video 2
", unsafe_allow_html=True) if os.path.exists(video_input2): st.video(video_input2) else: st.error("Video 2 not found") # Below the two main inputs, show the interpolated video centered st.markdown("
Interpolated Output
", unsafe_allow_html=True) if os.path.exists(video_interp): st.video(video_interp) else: st.error("Interpolated video not found")