24Sureshkumar's picture
Update app.py
5a89df8 verified
raw
history blame
2.24 kB
# app.py
import streamlit as st
from transformers import T5Tokenizer, T5ForConditionalGeneration
from diffusers import StableDiffusionPipeline
import torch
# Load translation model
@st.cache_resource
def load_translation_model():
model_name = "nithalis/tamil_translation_t5"
tokenizer = T5Tokenizer.from_pretrained(model_name)
model = T5ForConditionalGeneration.from_pretrained(model_name)
return tokenizer, model
# Load faster image model
@st.cache_resource
def load_diffusion_model():
pipe = StableDiffusionPipeline.from_pretrained(
"stabilityai/stable-diffusion-2-base",
torch_dtype=torch.float32
).to("cpu")
return pipe
# Translate Tamil to English
def translate_tamil_to_english(text, tokenizer, model):
prompt = f"translate Tamil to English: {text}"
inputs = tokenizer(prompt, return_tensors="pt", padding=True, truncation=True)
with torch.no_grad():
output = model.generate(**inputs, max_length=128)
return tokenizer.decode(output[0], skip_special_tokens=True)
# Main Streamlit app
def main():
st.set_page_config(page_title="தமிழ்→Image", layout="centered")
st.title("🌐 தமிழ் → ஆங்கிலம் → படம்")
user_input = st.text_area("உங்கள் உரையை தமிழ் எழுத்துப்படியாக உள்ளிடவும்:", height=150)
if st.button("உருவாக்கு"):
if not user_input.strip():
st.warning("உரை பதிவுசெய்யவும்")
return
with st.spinner("மொழிபெயர்ப்பு மற்றும் பட உருவாக்கம்..."):
tok, mdl = load_translation_model()
translation = translate_tamil_to_english(user_input, tok, mdl)
st.success(f"ஆங்கில மொழிபெயர்ப்பு: {translation}")
pipe = load_diffusion_model()
img = pipe(translation, num_inference_steps=25, guidance_scale=7.5).images[0]
st.image(img, caption="உருவாக்கப்பட்ட படம்", use_column_width=True)
if __name__ == "__main__":
main()