Dayem121's picture
Update app.py
4f0fe3f verified
Raw
History Blame Contribute Delete
3.19 kB
import streamlit as st
from text_generation import generate_text_content
from image_generation import generate_images
from tts_generation import generate_tts
from file_utils import package_content
st.set_page_config(page_title="AI Content Creator Studio", layout="wide")
st.title("๐ŸŽจ AI Content Creator Studio")
st.write("Generate complete content packages (text, images, audio) from your ideas.")
# Sidebar settings
st.sidebar.header("โš™๏ธ Content Settings")
topic = st.sidebar.text_input("Enter your content idea/topic", "Write a motivational quote about AI.")
content_format = st.sidebar.selectbox(
"Choose Content Format",
["Blog Post", "Short Video Script", "Instagram Carousel", "LinkedIn Post", "YouTube Short"]
)
tone = st.sidebar.selectbox("Select Tone", ["Professional", "Casual", "Funny", "Inspirational", "Educational"])
audience = st.sidebar.text_input("Target Audience (optional)", "")
# Session state for generated content
if "generated_content" not in st.session_state:
st.session_state.generated_content = None
if "generated_images" not in st.session_state:
st.session_state.generated_images = []
if "generated_audio" not in st.session_state:
st.session_state.generated_audio = None
# Generate button
if st.sidebar.button("๐Ÿš€ Generate Content"):
st.info("โณ Generating content... please wait.")
try:
st.session_state.generated_content = generate_text_content(topic, content_format, tone, audience)
except Exception as e:
st.session_state.generated_content = f"โš ๏ธ Failed to generate text: {str(e)}"
try:
st.session_state.generated_images = generate_images(topic, num_images=3)
except Exception as e:
st.session_state.generated_images = []
st.warning(f"โš ๏ธ Image generation failed: {str(e)}")
try:
st.session_state.generated_audio = generate_tts(st.session_state.generated_content)
except Exception as e:
st.session_state.generated_audio = None
st.warning(f"โš ๏ธ TTS generation failed: {str(e)}")
# Display results
if st.session_state.generated_content:
st.subheader("๐Ÿ“ Generated Content")
st.write(st.session_state.generated_content)
if st.session_state.generated_images:
st.subheader("๐Ÿ–ผ๏ธ Generated Images")
cols = st.columns(len(st.session_state.generated_images))
for idx, img in enumerate(st.session_state.generated_images):
with cols[idx]:
st.image(img, caption=f"Image {idx+1}")
if st.session_state.generated_audio:
st.subheader("๐Ÿ”Š Generated Audio")
st.audio(st.session_state.generated_audio, format="audio/wav")
# Download packaged content
if st.session_state.generated_content:
if st.button("๐Ÿ“ฆ Download Full Package"):
zip_file = package_content(
st.session_state.generated_content,
st.session_state.generated_images,
st.session_state.generated_audio
)
with open(zip_file, "rb") as f:
st.download_button(
label="โฌ‡๏ธ Download Content Package",
data=f,
file_name="content_package.zip",
mime="application/zip"
)