import gradio as gr # Bahasa-bahasa yang tersedia languages = { "English": "en", "Indonesian": "id", "Spanish": "es", "French": "fr", "German": "de", "Italian": "it", "Portuguese": "pt", "Russian": "ru", "Japanese": "ja", "Korean": "ko", "Chinese (Simplified)": "zh-CN", "Arabic": "ar", "Turkish": "tr", "Hindi": "hi", "Thai": "th" } # Genre, visual style, mood, etc. genres = ["Horror", "Romance", "Fantasy", "Sci-Fi", "Mystery", "Absurd Comedy"] styles = ["Realistic", "Semi-Realistic", "Cartoon", "Anime", "Noir", "Pixar-like"] moods = ["Funny", "Sad", "Mysterious", "Emotional", "Light-hearted", "Dark"] rations = ["9:16 (Vertical)", "16:9 (Landscape)", "1:1 (Square)"] audio = ["Rain Sound", "Glitch Effect", "Heartbeat", "Footsteps", "Silence"] # Prompt generation function def generate_prompt(language, genre, style, mood, ratio, setting, character, object, audio_fx, translation): prompt = f"Scene in {setting} with a {character} interacting with {object}. Genre: {genre}. Visual style: {style}. Mood: {mood}. Format: {ratio}. Background audio: {audio_fx}." if translation: try: from googletrans import Translator translator = Translator() translated = translator.translate(prompt, dest=language) return translated.text except: return "Translation failed. Please install googletrans library." return prompt # UI with gr.Blocks() as app: gr.Markdown("""# 🎬 Gemini Veo 3 Prompt Generator (15 Languages) Buat prompt untuk video AI-mu dengan gaya dan bahasa yang kamu inginkan. """) lang = gr.Dropdown(list(languages.keys()), label="Bahasa Output") genre = gr.Dropdown(genres, label="Genre Cerita") style = gr.Dropdown(styles, label="Gaya Visual") mood = gr.Dropdown(moods, label="Mood Cerita") ratio = gr.Dropdown(rations, label="Rasio Layar") setting = gr.Textbox(label="Lokasi/Tempat Adegan") character = gr.Textbox(label="Karakter Utama") object = gr.Textbox(label="Objek atau Makhluk yang Ditemui") audio_fx = gr.Dropdown(audio, label="Efek Audio") translate = gr.Checkbox(label="Terjemahkan prompt ke bahasa yang dipilih") output = gr.Textbox(label="Prompt Final", lines=5) generate = gr.Button("🔮 Generate Prompt") generate.click(fn=generate_prompt, inputs=[lang, genre, style, mood, ratio, setting, character, object, audio_fx, translate], outputs=output) app.launch()