File size: 2,670 Bytes
105aaaa
 
 
 
dae306d
 
105aaaa
 
b7996d7
7a4a475
 
4cabd31
105aaaa
 
 
 
dae306d
 
 
 
 
 
 
 
105aaaa
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
dae306d
 
 
 
 
105aaaa
dae306d
105aaaa
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
# prompt: currently the image generation function starts after user give a single letter. but for user friendly reason it should start to process after user gives his entrie input. here generate button is big make it small

from transformers import pipeline
import gradio as gr
# from diffusers import DiffusionPipeline
# from diffusers import FluxPipeline
import torch
import time
import requests
import io
import os
from PIL import Image

# Load models
translator = pipeline("translation", model="Helsinki-NLP/opus-mt-dra-en")
summarizer = pipeline("summarization", model="Falconsai/text_summarization")
# image_pipe = FluxPipeline.from_pretrained("black-forest-labs/FLUX.1-schnell", torch_dtype=torch.float16).to("cpu")

API_URL = "https://api-inference.huggingface.co/models/ZB-Tech/Text-to-Image"
headers = {"Authorization": f"Bearer {os.getenv('HF_API_TOKEN')}"}

def query(payload):
	response = requests.post(API_URL, headers=headers, json=payload)
	return response.content


# Translate Tamil to English
def translate_tamil_to_english(text):
    time.sleep(2)
    result = translator(text)
    return result[0]['translation_text']


# Summarize English Paragraph
def summarize_english_text(paragraph):
    time.sleep(2)
    summary = summarizer(paragraph, max_length=100, min_length=25, do_sample=False)
    return summary[0]['summary_text']


# Generate image from English text
def english_text_to_image(prompt):
    image_bytes = query({
        "inputs": prompt,
    })
    image = Image.open(io.BytesIO(image_bytes))
    return image
  

with gr.Blocks() as app:
    gr.Markdown("# Multifunctional Gradio App")

    with gr.Row():
        tamil_input = gr.Textbox(lines=2, placeholder="Enter Tamil text here...")
        english_output = gr.Textbox(label="English Translation")
        translate_button = gr.Button("Translate")
        translate_button.click(translate_tamil_to_english, inputs=tamil_input, outputs=english_output)

    with gr.Row():
        english_paragraph_input = gr.Textbox(lines=5, placeholder="Enter English paragraph here...")
        summary_output = gr.Textbox(label="Summary")
        summarize_button = gr.Button("Summarize")
        summarize_button.click(summarize_english_text, inputs=english_paragraph_input, outputs=summary_output)


    with gr.Row():
        english_text_input = gr.Textbox(lines=2, placeholder="Enter English text for image generation...")
        image_output = gr.Image(label="Generated Image")
        generate_button = gr.Button("Generate Image", size="sm") # Make the button smaller
        generate_button.click(english_text_to_image, inputs=english_text_input, outputs=image_output)

app.launch()