|
import streamlit as st |
|
import requests |
|
|
|
|
|
PEXELS_API_KEY = "5woz23MGx1QrSY0WHFb0BRi29JvbXPu97Hg0xnklYgHUI8G0w23FKH62" |
|
|
|
def search_image(keyword): |
|
"""μ΄λ―Έμ§ κ²μ ν¨μ""" |
|
url = f"https://api.pexels.com/v1/search?query={keyword}+query&per_page=1" |
|
headers = {"Authorization": PEXELS_API_KEY} |
|
response = requests.get(url, headers=headers).json() |
|
if response["photos"]: |
|
|
|
return response["photos"][0]["src"]["original"] |
|
return "" |
|
|
|
def search_video(keyword): |
|
"""λΉλμ€ κ²μ ν¨μ""" |
|
url = f"https://api.pexels.com/videos/search?query={keyword}+query&per_page=1" |
|
headers = {"Authorization": PEXELS_API_KEY} |
|
response = requests.get(url, headers=headers).json() |
|
if response["videos"]: |
|
|
|
return response["videos"][0]["video_files"][0]["link"] |
|
return "" |
|
|
|
|
|
if selected_menu == "Free Stock" and st.session_state['current_sub_menu'] == "Search Image": |
|
keyword = st.text_input("Enter a keyword to search for images") |
|
if keyword: |
|
image_url = search_image(keyword) |
|
if image_url: |
|
st.image(image_url) |
|
else: |
|
st.write("No results found.") |
|
|
|
|
|
if selected_menu == "Free Stock" and st.session_state['current_sub_menu'] == "Search Video": |
|
keyword = st.text_input("Enter a keyword to search for videos") |
|
if keyword: |
|
video_url = search_video(keyword) |
|
if video_url: |
|
st.video(video_url) |
|
else: |
|
st.write("No results found.") |
|
|
|
|
|
|
|
|
|
|
|
st.set_page_config(page_title="ViDraft", layout="wide") |
|
|
|
|
|
st.sidebar.title("ViDraft") |
|
|
|
|
|
menus = { |
|
"Home": [], |
|
"Free Stock": ["Template Video", "Template Image", "Search Video", "Search Image"], |
|
"Image": ["Generation", "Face ID", "Inpainting", "Remove Background", "Studio"], |
|
"Video": ["Generation", "Talking Face", "Remove Background", "Studio"], |
|
"Sound": ["Video SFX", "Video Music", "TTS(Voice)", "Image SFX", "Image Music"], |
|
"Scripts": [] |
|
} |
|
|
|
|
|
if 'current_menu' not in st.session_state: |
|
st.session_state['current_menu'] = 'Home' |
|
if 'current_sub_menu' not in st.session_state: |
|
st.session_state['current_sub_menu'] = '' |
|
|
|
|
|
selected_menu = st.sidebar.selectbox("Menu", list(menus.keys())) |
|
st.session_state['current_menu'] = selected_menu |
|
|
|
|
|
if selected_menu in menus: |
|
selected_sub_menu = st.sidebar.selectbox("Sub Menu", [""] + menus[selected_menu]) |
|
st.session_state['current_sub_menu'] = selected_sub_menu |
|
else: |
|
st.session_state['current_sub_menu'] = '' |
|
|
|
|
|
if selected_menu == "Home": |
|
st.header("Welcome to ViDraft") |
|
st.write("Choose an option from the sidebar to get started.") |
|
elif selected_menu == "Free Stock": |
|
|
|
if st.session_state['current_sub_menu'] == "Template Video": |
|
st.header("Template Videos") |
|
st.write("Explore a variety of video templates.") |
|
|
|
video_files = ["ex1.mp4", "ex2.mp4", "ex3.mp4", "ex4.mp4", "ex5.mp4", "ex6.mp4", "ex7.mp4", "ex8.mp4", "ex9.mp4", "ex10.mp4", "ex11.mp4", "ex12.mp4", "ex13.mp4", "ex14.mp4", "ex15.mp4", "ex16.mp4", "ex17.mp4", "ex18.mp4"] |
|
|
|
cols = st.columns(2) |
|
for index, video_file in enumerate(video_files): |
|
with cols[index % 2]: |
|
st.video(video_file) |
|
elif st.session_state['current_sub_menu'] == "Template Image": |
|
st.header("Template Images") |
|
st.write("Find the perfect image template for your project.") |
|
elif st.session_state['current_sub_menu'] == "Search Video": |
|
st.header("Search Videos") |
|
st.write("Search through our extensive video library to find exactly what you need.") |
|
elif st.session_state['current_sub_menu'] == "Search Image": |
|
st.header("Search Images") |
|
st.write("Discover images that fit your project's needs with our powerful search tool.") |
|
|
|
|
|
elif st.session_state['current_sub_menu'] == "Search Image": |
|
st.header("Search Images") |
|
st.write("Discover images that fit your project's needs with our powerful search tool.") |
|
|
|
|
|
elif selected_menu == "Image": |
|
if st.session_state['current_sub_menu'] == "Generation": |
|
st.header("Image Generation") |
|
st.write("Generate images using AI.") |
|
elif st.session_state['current_sub_menu'] == "Face ID": |
|
st.header("Face ID") |
|
st.write("Identify and analyze faces in images.") |
|
elif st.session_state['current_sub_menu'] == "Inpainting": |
|
st.header("Inpainting") |
|
st.write("Fill in missing parts of images.") |
|
elif st.session_state['current_sub_menu'] == "Remove Background": |
|
st.header("Remove Background") |
|
st.write("Easily remove backgrounds from images.") |
|
elif st.session_state['current_sub_menu'] == "Studio": |
|
st.header("Image Studio") |
|
st.write("Access a suite of image editing tools.") |
|
|
|
|
|
elif selected_menu == "Video": |
|
if st.session_state['current_sub_menu'] == "Generation": |
|
st.header("Video Generation") |
|
st.write("Create videos with our generation tools.") |
|
elif st.session_state['current_sub_menu'] == "Talking Face": |
|
st.header("Talking Face Videos") |
|
st.write("Generate talking face videos from images.") |
|
elif st.session_state['current_sub_menu'] == "Remove Background": |
|
st.header("Video Background Removal") |
|
st.write("Remove backgrounds from your videos effortlessly.") |
|
elif st.session_state['current_sub_menu'] == "Studio": |
|
st.header("Video Studio") |
|
st.write("Explore our video editing studio for advanced editing.") |
|
|
|
|
|
elif selected_menu == "Sound": |
|
if st.session_state['current_sub_menu'] == "Video SFX": |
|
st.header("Video Sound Effects") |
|
st.write("Enhance your videos with sound effects.") |
|
elif st.session_state['current_sub_menu'] == "Video Music": |
|
st.header("Video Music") |
|
st.write("Find the perfect music for your video content.") |
|
elif st.session_state['current_sub_menu'] == "TTS(Voice)": |
|
st.header("Text-to-Speech") |
|
st.write("Convert your text into natural-sounding voice.") |
|
elif st.session_state['current_sub_menu'] == "Image SFX": |
|
st.header("Image Sound Effects") |
|
st.write("Add sound effects to your images.") |
|
elif st.session_state['current_sub_menu'] == "Image Music": |
|
st.header("Image Music") |
|
st.write("Associate music tracks with your images.") |
|
|
|
|
|
elif selected_menu == "Scripts": |
|
st.header("Scripts") |
|
st.write("Script writing tools and resources.") |