File size: 2,997 Bytes
4deb4b5 a1cf7cb d550533 eea6ac5 4deb4b5 d7164de a1cf7cb d7164de a1cf7cb d7164de a1cf7cb d7164de a1cf7cb d7164de a1cf7cb d550533 a1cf7cb 9607ff2 c1732d5 d7164de a1cf7cb d7164de a1cf7cb b8ece2f a1cf7cb d7164de 9607ff2 c1732d5 a1cf7cb d7164de a1cf7cb c1732d5 a1cf7cb d7164de d550533 a1cf7cb d7164de 9607ff2 a1cf7cb |
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 87 88 89 90 91 |
import streamlit as st
from transformers import AutoTokenizer, AutoModelForSeq2SeqLM, pipeline
from diffusers import StableDiffusionPipeline
import torch
@st.cache_resource(show_spinner=False)
def load_all_models():
# Load IndicTrans2 model for Tamil→English
indic_tokenizer = AutoTokenizer.from_pretrained("ai4bharat/indictrans2-ta-en-dist-200M")
indic_model = AutoModelForSeq2SeqLM.from_pretrained("ai4bharat/indictrans2-ta-en-dist-200M")
# Load other models
text_gen = pipeline("text-generation", model="gpt2", device=-1)
img_pipe = StableDiffusionPipeline.from_pretrained(
"stabilityai/stable-diffusion-2-base",
torch_dtype=torch.float32
).to("cpu")
return indic_tokenizer, indic_model, text_gen, img_pipe
def translate_tamil(text, tokenizer, model):
# Tokenize with batch processing
inputs = tokenizer(
text,
return_tensors="pt",
padding=True,
truncation=True,
max_length=128
)
# Generate translation
generated = model.generate(
**inputs,
max_length=150,
num_beams=5,
early_stopping=True
)
# Decode with normalization
return tokenizer.batch_decode(
generated,
skip_special_tokens=True,
clean_up_tokenization_spaces=True
)[0]
def main():
st.set_page_config(page_title="Tamil→EN→Image/Text", layout="centered")
st.title("🌐 தமிழ் → English → Creative Text & Image")
# Load models once
tokenizer, model, text_gen, img_pipe = load_all_models()
# Input with Tamil placeholder
tamil_text = st.text_area(
"தமிழ் உரை:",
height=150,
placeholder="உங்கள் உரையை இங்கே உள்ளிடவும்..."
)
if st.button("உருவாக்கு", type="primary"):
if not tamil_text.strip():
st.warning("தயவு செய்து உரையை உள்ளிடவும்.")
return
with st.spinner("மொழிபெயர்க்கிறது..."):
eng = translate_tamil(tamil_text, tokenizer, model)
with st.expander("🔤 Translation", expanded=True):
st.success(eng)
with st.spinner("உரை உருவாக்குதல்..."):
creative = text_gen(
f"Create a creative description about: {eng}",
max_length=80,
num_return_sequences=1
)[0]["generated_text"]
st.info("📝 Creative Text:")
st.write(creative)
with st.spinner("படத்தை உருவாக்குதல்..."):
img = img_pipe(
eng,
num_inference_steps=35,
guidance_scale=8.0
).images[0]
st.image(img, caption="🎨 Generated Image")
if __name__ == "__main__":
main() |