Download app.py from kneth02/aaff: direct link, hf CLI and curl.
- Browser
- Download file 3.04 kB
-
https://huggingface.co/spaces/kneth02/aaff/resolve/main/app.py
- Command line
-
hf download hf://spaces/kneth02/aaff/app.py
-
curl -L -o app.py https://huggingface.co/spaces/kneth02/aaff/resolve/main/app.py
3.04 kB
| import gradio as gr | |
| import requests | |
| # 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", | |
| "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"] | |
| # Argos Translate API (lebih cepat) | |
| def translate_text(text, target_lang): | |
| try: | |
| response = requests.post( | |
| "https://translate.argosopentech.com/translate", | |
| data={ | |
| "q": text, | |
| "source": "en", | |
| "target": target_lang, | |
| "format": "text" | |
| }, | |
| headers={"Content-Type": "application/x-www-form-urlencoded"} | |
| ) | |
| if response.status_code == 200: | |
| return response.json()["translatedText"] | |
| else: | |
| return "Translation error: " + response.text | |
| except Exception as e: | |
| return "Translation failed." | |
| # Prompt generation function | |
| def generate_prompt(lang_key, genre, style, mood, ratio, setting, character, object, audio_fx, translation): | |
| language = languages.get(lang_key, "en") | |
| 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 and language != "en": | |
| return translate_text(prompt, language) | |
| 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() | |