24Sureshkumar commited on
Commit
c1732d5
·
verified ·
1 Parent(s): 8e37338

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +43 -38
app.py CHANGED
@@ -1,53 +1,58 @@
1
- # app.py
2
  import streamlit as st
3
- from transformers import T5Tokenizer, T5ForConditionalGeneration
4
  from diffusers import StableDiffusionPipeline
5
  import torch
6
 
7
- # Load translation model
8
  @st.cache_resource
9
- def load_translation_model():
10
- model_name = "nithalis/tamil_translation_t5"
11
- tokenizer = T5Tokenizer.from_pretrained(model_name)
12
- model = T5ForConditionalGeneration.from_pretrained(model_name)
13
- return tokenizer, model
14
-
15
- # Load faster image model
16
- @st.cache_resource
17
- def load_diffusion_model():
18
- pipe = StableDiffusionPipeline.from_pretrained(
19
- "stabilityai/stable-diffusion-2-base",
20
- torch_dtype=torch.float32
21
  ).to("cpu")
22
- return pipe
23
 
24
- # Translate Tamil to English
25
- def translate_tamil_to_english(text, tokenizer, model):
26
- prompt = f"translate Tamil to English: {text}"
27
- inputs = tokenizer(prompt, return_tensors="pt", padding=True, truncation=True)
28
- with torch.no_grad():
29
- output = model.generate(**inputs, max_length=128)
30
- return tokenizer.decode(output[0], skip_special_tokens=True)
31
 
32
- # Main Streamlit app
33
- def main():
34
- st.set_page_config(page_title="தமிழ்→Image", layout="centered")
35
- st.title("🌐 தமிழ் → ஆங்கிலம் → படம்")
 
36
 
37
- user_input = st.text_area("உங்கள் உரையை தமிழ் எழுத்துப்படியாக உள்ளிடவும்:", height=150)
 
 
38
 
39
- if st.button("உருவாக்கு"):
 
 
 
 
 
40
  if not user_input.strip():
41
- st.warning("உரை பதிவுசெய்யவும்")
42
  return
43
- with st.spinner("மொழிபெயர்ப்பு மற்றும் பட உருவாக்கம்..."):
44
- tok, mdl = load_translation_model()
45
- translation = translate_tamil_to_english(user_input, tok, mdl)
46
- st.success(f"ஆங்கில மொழிபெயர்ப்பு: {translation}")
47
-
48
- pipe = load_diffusion_model()
49
- img = pipe(translation, num_inference_steps=25, guidance_scale=7.5).images[0]
50
- st.image(img, caption="உருவாக்கப்பட்ட படம்", use_column_width=True)
 
 
 
 
 
 
51
 
52
  if __name__ == "__main__":
53
  main()
 
 
1
  import streamlit as st
2
+ from transformers import M2M100ForConditionalGeneration, M2M100Tokenizer, pipeline
3
  from diffusers import StableDiffusionPipeline
4
  import torch
5
 
 
6
  @st.cache_resource
7
+ def load_models():
8
+ # Translation model
9
+ model_name = "alirezamsh/small100"
10
+ tokenizer = M2M100Tokenizer.from_pretrained(model_name)
11
+ model = M2M100ForConditionalGeneration.from_pretrained(model_name)
12
+
13
+ # Creative text generation (GPT-2)
14
+ text_generator = pipeline("text-generation", model="gpt2-medium")
15
+
16
+ # Stable diffusion image generation (CPU-friendly)
17
+ image_pipe = StableDiffusionPipeline.from_pretrained(
18
+ "stabilityai/stable-diffusion-2-base", torch_dtype=torch.float32
19
  ).to("cpu")
 
20
 
21
+ return tokenizer, model, text_generator, image_pipe
 
 
 
 
 
 
22
 
23
+ def translate_tamil_to_english(text, tokenizer, model):
24
+ tokenizer.src_lang = "ta"
25
+ inputs = tokenizer(text, return_tensors="pt", truncation=True)
26
+ generated_tokens = model.generate(**inputs, forced_bos_token_id=tokenizer.get_lang_id("en"))
27
+ return tokenizer.decode(generated_tokens[0], skip_special_tokens=True)
28
 
29
+ def generate_creative_text(prompt, generator):
30
+ response = generator(f"Describe creatively: {prompt}", max_length=60, num_return_sequences=1)
31
+ return response[0]["generated_text"]
32
 
33
+ def main():
34
+ st.set_page_config(page_title="Tamil to English → Image & Text", layout="centered")
35
+ st.title("🪔 தமிழ் உரையை படமாக மாற்றவும்")
36
+
37
+ user_input = st.text_area("தமிழ் உரை உள்ளிடவும்:", height=150)
38
+ if st.button("உருவாக்கவும்"):
39
  if not user_input.strip():
40
+ st.warning("தயவுசெய்து ஒரு உரை உள்ளிடவும்.")
41
  return
42
+
43
+ with st.spinner("மொழிபெயர்ப்பு நடக்கிறது..."):
44
+ tokenizer, model, textgen, pipe = load_models()
45
+ english_text = translate_tamil_to_english(user_input, tokenizer, model)
46
+ st.success(f"Translated to English: {english_text}")
47
+
48
+ with st.spinner("சிறந்த உரையை உருவாக்குகிறது..."):
49
+ creative = generate_creative_text(english_text, textgen)
50
+ st.info("✍️ Creative Text:")
51
+ st.write(creative)
52
+
53
+ with st.spinner("படம் உருவாக்கப்படுகிறது..."):
54
+ image = pipe(english_text, num_inference_steps=25).images[0]
55
+ st.image(image, caption="🎨 Generated Image", use_column_width=True)
56
 
57
  if __name__ == "__main__":
58
  main()