File size: 1,948 Bytes
e97aebb
59921cd
803ddb4
 
59921cd
 
060cc15
 
 
 
c652e39
060cc15
59921cd
e5964e8
060cc15
 
 
 
 
 
e97aebb
060cc15
e97aebb
 
060cc15
e97aebb
 
59921cd
e97aebb
 
 
 
060cc15
e97aebb
060cc15
e97aebb
060cc15
 
e97aebb
060cc15
 
 
e97aebb
060cc15
e97aebb
 
060cc15
e97aebb
 
 
 
 
 
 
 
59921cd
060cc15
 
e97aebb
 
060cc15
e97aebb
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
import gradio as gr
from transformers import pipeline
from diffusers import StableDiffusionPipeline
import torch
import os

# 1. Check for HF_TOKEN
HF_TOKEN = os.getenv("HF_TOKEN")
if HF_TOKEN is None:
    raise ValueError("Please set the HF_TOKEN environment variable in Hugging Face repository secrets.")

# 2. Set device
device = "cuda" if torch.cuda.is_available() else "cpu"

# 3. Load translator with token
translator = pipeline(
    "translation",
    model="Helsinki-NLP/opus-mt-ta-en",
    use_auth_token=HF_TOKEN
)

# 4. Load text generator (GPT-2) — public, no token needed
generator = pipeline("text-generation", model="gpt2")

# 5. Load image generator (Stable Diffusion) with token
image_pipe = StableDiffusionPipeline.from_pretrained(
    "CompVis/stable-diffusion-v1-4",
    use_auth_token=HF_TOKEN,
    torch_dtype=torch.float16 if device == "cuda" else torch.float32
)
image_pipe = image_pipe.to(device)

# 6. Main function
def generate_image_from_tamil(tamil_input):
    # Translate Tamil to English
    translated = translator(tamil_input, max_length=100)[0]['translation_text']

    # Generate a prompt using GPT-2
    generated = generator(translated, max_length=50, num_return_sequences=1)[0]['generated_text']
    generated = generated.strip()

    # Generate image using Stable Diffusion
    image = image_pipe(generated).images[0]

    return translated, generated, image

# 7. Gradio Interface
iface = gr.Interface(
    fn=generate_image_from_tamil,
    inputs=gr.Textbox(lines=2, label="Enter Tamil Text"),
    outputs=[
        gr.Textbox(label="Translated English Text"),
        gr.Textbox(label="Generated English Prompt"),
        gr.Image(label="Generated Image")
    ],
    title="Tamil to Image Generator",
    description="This app translates Tamil text to English, generates creative English prompts, and visualizes them using Stable Diffusion.",
    allow_flagging="never"
)

# 8. Launch app
iface.launch()