File size: 2,237 Bytes
eea6ac5 4deb4b5 5a89df8 9607ff2 eea6ac5 4deb4b5 5a89df8 9607ff2 5a89df8 9607ff2 5a89df8 9607ff2 5a89df8 9607ff2 5a89df8 c8086b7 9607ff2 5a89df8 9607ff2 5a89df8 9607ff2 5a89df8 9607ff2 5a89df8 9607ff2 5a89df8 9607ff2 5a89df8 9607ff2 5a89df8 9607ff2 5a89df8 9607ff2 |
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 |
# 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()
|