File size: 2,428 Bytes
b8ece2f 4deb4b5 c1732d5 b8ece2f eea6ac5 4deb4b5 b8ece2f c1732d5 b8ece2f c1732d5 b8ece2f 5a89df8 9607ff2 b8ece2f 9607ff2 b8ece2f c1732d5 b8ece2f 9607ff2 b8ece2f 9607ff2 c1732d5 b8ece2f 9607ff2 c1732d5 b8ece2f c1732d5 b8ece2f c1732d5 b8ece2f 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 55 56 57 58 59 60 61 62 |
# app.py
import streamlit as st
from transformers import M2M100ForConditionalGeneration, M2M100Tokenizer, pipeline
from diffusers import DiffusionPipeline
import torch
@st.cache_resource(show_spinner=False)
def load_all_models():
# Load translation model
model_name = "facebook/m2m100_418M"
tokenizer = M2M100Tokenizer.from_pretrained(model_name)
model = M2M100ForConditionalGeneration.from_pretrained(model_name)
# Load creative text model (smaller GPT-2)
textgen = pipeline("text-generation", model="gpt2", device=-1)
# Load lightweight image generation pipeline
img_pipe = DiffusionPipeline.from_pretrained(
"stabilityai/sdxl-lite", torch_dtype=torch.float32
).to("cpu")
return tokenizer, model, textgen, img_pipe
def translate(text, tokenizer, model):
tokenizer.src_lang = "ta"
inputs = tokenizer(text, return_tensors="pt")
output = model.generate(inputs["input_ids"], forced_bos_token_id=tokenizer.get_lang_id("en"), max_length=100)
return tokenizer.decode(output[0], skip_special_tokens=True)
def generate_text(prompt, pipe):
output = pipe(prompt, max_length=60, do_sample=True)[0]
return output["generated_text"]
def main():
st.set_page_config(page_title="Tamil to English → Creative → Image", layout="centered")
st.title("🌐 தமிழ் ➝ English ➝ Creative Text + Image")
tokenizer, model, textgen, img_pipe = load_all_models()
tamil_text = st.text_area("தமிழ் உரையை உள்ளிடவும்:", height=130)
if st.button("உருவாக்கு"):
if not tamil_text.strip():
st.warning("தயவுசெய்து உரையை உள்ளிடவும்.")
return
with st.spinner("மொழிபெயர்ப்பு..."):
english_text = translate(tamil_text, tokenizer, model)
st.success(f"🔁 Translated: {english_text}")
with st.spinner("உரையாக்கம்..."):
creative_text = generate_text(english_text, textgen)
st.info("📝 Creative Output:")
st.write(creative_text)
with st.spinner("படம் உருவாக்கப்படுகிறது..."):
image = img_pipe(english_text).images[0]
st.image(image, caption="🎨 Generated Image", use_column_width=True)
if __name__ == "__main__":
main()
|