app / app.py
michaelpiro1's picture
Rename app_streamlit.py to app.py
2fcfe7b verified
import streamlit as st
page_bg_img = f"""
<style>
[data-testid="stAppViewContainer"] > .main {{
background-image: url("https://i.postimg.cc/4xgNnkfX/Untitled-design.png");
background-size: cover;
background-position: center center;
background-repeat: no-repeat;
background-attachment: local;
}}
[data-testid="stHeader"] {{
background: rgba(0,0,0,0);
}}
.stTitle {{
color: #ffffff;
text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.5);
}}
.stSubheader {{
color: #ffffff;
text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.5);
}}
.link-icon {{
display: flex;
align-items: center;
margin-bottom: 10px;
}}
.link-icon img {{
margin-right: 10px;
}}
.footer {{
text-align: center;
padding: 20px;
background: rgba(0, 0, 0, 0.7);
color: white;
border-top: 1px solid #ddd;
margin-top: 30px;
}}
</style>
"""
st.markdown(page_bg_img, unsafe_allow_html=True)
audioldm_exmples_input_paths = []
audioldm_exmples_original_paths = []
exmples_prompts = ["wiwi", "pipi", "wifi"]
st.title('Drums Generation in Different Models')
st.subheader('Upload your audio file to process with AudioLDM2 or StableAudio')
uploaded_file = st.file_uploader("Choose an audio file", type=["wav", "mp3", "ogg"])
model_choice = st.selectbox('Choose a model for processing', ('AudioLDM2', 'StableAudio'))
prompt_text = st.text_input('Enter a prompt for the audio processing')
start_point = st.slider('Choose a starting point for the audio (seconds)', 0.0, 60.0, 0.0)
output_length = st.slider('Choose the length of the output audio (seconds)', 1.0, 60.0, 10.0)
st.markdown('**Note:** Longer audio takes more time to generate.')
if uploaded_file is not None and prompt_text:
st.audio(uploaded_file, format="audio/mpeg")
# Dummy processing function to demonstrate functionality
def process_audio(file, model, prompt, start, length):
# Replace this with actual audio processing code
processed_audio_path = "processed_audio.wav"
return processed_audio_path
if st.button('Process Audio'):
processed_audio = process_audio(uploaded_file, model_choice, prompt_text, start_point, output_length)
st.audio(processed_audio, format="audio/mpeg", loop=False)
st.download_button(label="Download Processed Audio", data=processed_audio, file_name="processed_audio.wav", mime="audio/wav")
st.markdown("---")
st.header("Examples")
example_columns = st.columns(4)
example_titles = ["Original Audio", "Separated Audio", "AudioLDM2", "StableAudio"]
for col, title in zip(example_columns, example_titles):
col.subheader(title)
for p in exmples_prompts:
with st.container():
st.write(f"Prompt: {p}")
audio_columns = st.columns(4)
for col in audio_columns:
col.audio("goodres.wav", format="audio/mpeg", loop=False)
st.markdown("<hr style='border: 1px solid #ddd;'>", unsafe_allow_html=True)
# Links Section
st.markdown("## Useful Links")
links = [
{"url": "https://example.com", "type": "Regular Website", "text": "This is a regular website"},
{"url": "https://github.com/example", "type": "GitHub", "text": "This is a GitHub repository"},
{"url": "https://colab.research.google.com", "type": "Google Colab", "text": "This is a Google Colab link"}
]
# Dictionary to hold logo URLs
logo_urls = {
"GitHub": "https://github.githubassets.com/images/modules/logos_page/GitHub-Mark.png",
"Google Colab": "https://colab.research.google.com/img/colab_favicon_256px.png"
}
# Render links with icons
for link in links:
if link["type"] in logo_urls:
st.markdown(f"""
<div class="link-icon">
<img src="{logo_urls[link['type']]}" alt="{link['type']} logo" width="24">
<a href="{link['url']}" target="_blank">{link['text']}</a> - *{link['type']}*
</div>
""", unsafe_allow_html=True)
else:
st.markdown(f"[{link['text']}]({link['url']}) - *{link['type']}*")
# Footer
st.markdown("""
<div class="footer">
Made with ❤️ using Streamlit
</div>
""", unsafe_allow_html=True)