Spaces:
Runtime error
Runtime error
import uuid | |
import gradio as gr | |
import boto3 | |
import os | |
from PIL import Image | |
hf_token = os.environ.get("HF_TOKEN") | |
tasomi_model = os.environ.get("TASOMI_MODEL") | |
s3_bucket = os.environ.get("IMCAPSULE_EXTERNAL_BUCKET") | |
m=gr.load(tasomi_model, src="models",hf_token=hf_token) | |
def detect_language(text): | |
# Initialize the Comprehend client | |
comprehend = boto3.client('comprehend') | |
# Call DetectDominantLanguage API | |
response = comprehend.detect_dominant_language(Text=text) | |
# Extract the detected language | |
detected_language = response['Languages'][0]['LanguageCode'] | |
return detected_language | |
def upload_file(file_path): | |
s3 = boto3.client('s3') | |
key='public/' + os.path.basename(file_path) | |
# Upload the file | |
s3.upload_file(file_path, s3_bucket, key) | |
s3_path = f"{s3.meta.endpoint_url}/{s3_bucket}/{key}" | |
print(f'File uploaded successfully. s3_path= {s3_path} ') | |
return s3_path | |
def translate_and_predict(text): | |
"""Translates text and generates an image using Stable Diffusion.""" | |
source_language_code=detect_language(text) | |
# Translate input text | |
translate = boto3.client('translate') | |
target_language_code="en" | |
print("source_language_code:" , source_language_code) | |
translation_result = translate.translate_text(Text=text, SourceLanguageCode=source_language_code, TargetLanguageCode=target_language_code) | |
translated_text = translation_result.get('TranslatedText') | |
print("translated_text:" , translated_text) | |
gen_image=m(translated_text) | |
webp_image = Image.open(gen_image) | |
converted_image_path = f"./tasomi-{uuid.uuid4().hex}.jpg" | |
webp_image.save(converted_image_path, "JPEG") | |
s3_path = upload_file(converted_image_path) | |
os.remove(converted_image_path) | |
return s3_path,s3_path | |
# Define the Gradio interface | |
iface = gr.Interface( | |
fn=translate_and_predict, # Since we're only displaying an image, there's no function to call | |
inputs=["text"], # Input: text, source language, target language | |
outputs=["image","text"], # Output: generated image | |
title="Tasomi Images", | |
) | |
# Launch the interface | |
iface.launch() | |