Spaces:
Sleeping
Sleeping
| import requests | |
| import io | |
| import os | |
| from PIL import Image | |
| import gradio as gr | |
| from transformers import MarianMTModel, MarianTokenizer | |
| model_name = "Helsinki-NLP/opus-mt-mul-en" | |
| model = MarianMTModel.from_pretrained(model_name) | |
| tokenizer = MarianTokenizer.from_pretrained(model_name) | |
| gemini_api_key = os.getenv("GEMINI_API_KEY") | |
| huggingface_api_key = os.getenv("HUGGINGFACE_API_KEY") | |
| def translate_text(tamil_text): | |
| inputs = tokenizer(tamil_text, return_tensors="pt") | |
| translated_tokens = model.generate(**inputs) | |
| translation = tokenizer.decode(translated_tokens[0], skip_special_tokens=True) | |
| return translation | |
| def query_gemini_api(translated_text, gemini_api_key, max_output_tokens=300): | |
| url = f"https://generativelanguage.googleapis.com/v1beta2/models/gemini-1.5:generateText?key={gemini_api_key}" | |
| headers = {"Content-Type": "application/json"} | |
| payload = { | |
| "prompt": {"text": translated_text}, | |
| "temperature": 0.7, | |
| "max_output_tokens": max_output_tokens | |
| } | |
| response = requests.post(url, headers=headers, json=payload) | |
| if response.status_code == 200: | |
| result = response.json() | |
| creative_text = result['candidates'][0]['output'] | |
| return creative_text | |
| else: | |
| return f"Error: {response.status_code} - {response.text}" | |
| def query_image(payload): | |
| API_URL = "https://api-inference.huggingface.co/models/black-forest-labs/FLUX.1-dev" | |
| headers = {"Authorization": f"Bearer {huggingface_api_key}"} | |
| response = requests.post(API_URL, headers=headers, json=payload) | |
| return response.content | |
| def process_input(tamil_input): | |
| translated_output = translate_text(tamil_input) | |
| creative_output = query_gemini_api(translated_output) | |
| image_bytes = query_image({"inputs": translated_output}) | |
| image = Image.open(io.BytesIO(image_bytes)) | |
| return translated_output, creative_output, image | |
| iface = gr.Interface( | |
| fn=process_input, | |
| inputs=gr.Textbox(label="Input Tamil Text"), | |
| outputs=[ | |
| gr.Textbox(label="Translated Text"), | |
| gr.Textbox(label="Creative Text"), | |
| gr.Image(label="Generated Image") | |
| ], | |
| title="TRANSART🎨 BY Sakthi", | |
| description="Enter Tamil text to translate to English and generate an image based on the translated text." | |
| ) | |
| iface.launch() | |