Spaces:
Sleeping
Sleeping
File size: 3,359 Bytes
47454a7 0791989 f34d5e4 122e2c3 75c37a0 f34d5e4 47454a7 75c37a0 47454a7 f34d5e4 122e2c3 f34d5e4 122e2c3 73c5b23 122e2c3 47454a7 75c37a0 122e2c3 75c37a0 122e2c3 47454a7 f34d5e4 73c5b23 f34d5e4 122e2c3 f34d5e4 47454a7 122e2c3 47454a7 122e2c3 f34d5e4 47454a7 122e2c3 73c5b23 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 |
# -*- coding: utf-8 -*-
"""gen ai project f.ipynb
Automatically generated by Colab.
Original file is located at
https://colab.research.google.com/drive/1iF7hdOjWNeFUtGvUYdaFsBErJGnY1h5J
"""
import os
from transformers import MarianMTModel, MarianTokenizer, GPTNeoForCausalLM, AutoTokenizer
import gradio as gr
from PIL import Image, UnidentifiedImageError
import requests
import io
# Load translation model
model_name = "Helsinki-NLP/opus-mt-mul-en"
tokenizer = MarianTokenizer.from_pretrained(model_name)
model = MarianMTModel.from_pretrained(model_name)
# Load GPT-Neo model for creative text generation
gpt_neo_model = GPTNeoForCausalLM.from_pretrained("EleutherAI/gpt-neo-1.3B")
gpt_neo_tokenizer = AutoTokenizer.from_pretrained("EleutherAI/gpt-neo-1.3B")
# Define language map (including new languages)
language_map = {
"Tamil": "ta",
"Russian": "rus",
"Arabic": "ar",
"Portuguese": "pt"
}
def translate_text(input_text, selected_languages):
if not selected_languages:
return "Please select at least one language."
selected_language = selected_languages[0] # Pick the first selected language
lang_code = language_map[selected_language]
lang_prefix = f">>{lang_code}<< "
text_with_lang = lang_prefix + input_text
inputs = tokenizer(text_with_lang, return_tensors="pt", padding=True)
translated_tokens = model.generate(**inputs)
translation = tokenizer.decode(translated_tokens[0], skip_special_tokens=True)
return translation
def generate_image(prompt):
API_URL = "https://api-inference.huggingface.co/models/black-forest-labs/FLUX.1-dev"
hf_token = os.getenv("HF_TOKEN")
headers = {"Authorization": f"Bearer {hf_token}"}
response = requests.post(API_URL, headers=headers, json={"inputs": prompt})
if response.status_code == 200:
image_bytes = response.content
try:
image = Image.open(io.BytesIO(image_bytes))
return image
except UnidentifiedImageError:
return None
else:
return None
def generate_creative_text(translated_text):
prompt = f"Create a creative text based on the following sentence: {translated_text}"
inputs = gpt_neo_tokenizer(prompt, return_tensors="pt", padding=True, truncation=True, max_length=100)
output = gpt_neo_model.generate(inputs["input_ids"], max_length=100, do_sample=True, temperature=0.7)
creative_text = gpt_neo_tokenizer.decode(output[0], skip_special_tokens=True)
return creative_text
def process_input(text_input, selected_languages):
translated_output = translate_text(text_input, selected_languages)
creative_text = generate_creative_text(translated_output)
image = generate_image(translated_output)
return translated_output, creative_text, image
# Gradio interface
interface = gr.Interface(
fn=process_input,
inputs=[gr.Textbox(label="Input Text"), gr.CheckboxGroup(choices=["Tamil", "Russian", "Arabic", "Portuguese"], label="Select Language")],
outputs=[gr.Textbox(label="Translated Text"), gr.Textbox(label="Creative Text"), gr.Image(label="Generated Image")],
title="Multilingual Translation, Creative Text, and Image Generation",
description="Translate Tamil, Russian, Arabic, or Portuguese text to English, generate creative text, and generate an image."
)
interface.launch()
|