24Sureshkumar commited on
Commit
d7164de
·
verified ·
1 Parent(s): 7b5d90b

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +36 -44
app.py CHANGED
@@ -1,60 +1,52 @@
1
- # app.py
2
  import streamlit as st
3
- from transformers import AutoTokenizer, AutoModelForSeq2SeqLM, pipeline
4
  from diffusers import StableDiffusionPipeline
5
  import torch
6
 
7
- @st.cache_resource
8
- def load_models():
9
- # Load translation model
10
- translation_model_name = "Helsinki-NLP/opus-mt-ta-en"
11
- translator_tokenizer = AutoTokenizer.from_pretrained(translation_model_name)
12
- translator_model = AutoModelForSeq2SeqLM.from_pretrained(translation_model_name)
13
-
14
- # Load text generation model
15
- textgen = pipeline("text-generation", model="gpt2")
16
-
17
- # Load stable diffusion (light version)
18
- image_model_name = "CompVis/stable-diffusion-v1-4"
19
- image_pipe = StableDiffusionPipeline.from_pretrained(
20
- image_model_name,
21
- torch_dtype=torch.float16 if torch.cuda.is_available() else torch.float32
 
 
22
  )
23
- if torch.cuda.is_available():
24
- image_pipe = image_pipe.to("cuda")
25
-
26
- return translator_tokenizer, translator_model, textgen, image_pipe
27
-
28
- def translate(text, tokenizer, model):
29
- inputs = tokenizer.encode(text, return_tensors="pt", truncation=True, max_length=512)
30
- outputs = model.generate(inputs, max_length=512, num_beams=4)
31
- return tokenizer.decode(outputs[0], skip_special_tokens=True)
32
 
33
  def main():
34
- st.set_page_config(page_title="Tamil Text to English + Image + Text", layout="centered")
35
- st.title("🌐 தமிழ் உரையை ஆங்கிலம் + படம் + உரை ஆக மாற்றவும்")
36
 
37
- tamil_input = st.text_area("தமிழ் உரையை உள்ளிடவும்", height=150)
 
38
 
39
- if st.button("உரையை மொழிபெயர்த்து உருவாக்கவும்"):
40
- if not tamil_input.strip():
41
- st.warning("உரையை உள்ளிடவும்.")
42
  return
43
 
44
- with st.spinner("மாடல்கள் ஏற்றப்படுகிறது..."):
45
- tokenizer, model, textgen, image_pipe = load_models()
46
-
47
- with st.spinner("மொழிபெயர்ப்பு நடைபெறுகிறது..."):
48
- english_text = translate(tamil_input, tokenizer, model)
49
- st.success(f"🔤 மொழிபெயர்ப்பு: {english_text}")
50
 
51
- with st.spinner("படம் உருவாக்கப்படுகிறது..."):
52
- image = image_pipe(english_text).images[0]
53
- st.image(image, caption="உருவாக்கப்பட்ட படம்", use_column_width=True)
 
54
 
55
- with st.spinner("உரையை உருவாக்கப்படுகிறது..."):
56
- story = textgen(english_text, max_length=100, num_return_sequences=1)[0]["generated_text"]
57
- st.text_area("✍️ உருவாக்கப்பட்ட உரை", value=story, height=200)
58
 
59
  if __name__ == "__main__":
60
  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(show_spinner=False)
7
+ def load_all_models():
8
+ tokenizer = M2M100Tokenizer.from_pretrained("facebook/m2m100_418M")
9
+ model = M2M100ForConditionalGeneration.from_pretrained("facebook/m2m100_418M")
10
+ text_gen = pipeline("text-generation", model="gpt2", device=-1)
11
+ img_pipe = StableDiffusionPipeline.from_pretrained(
12
+ "stabilityai/stable-diffusion-2-base", torch_dtype=torch.float32
13
+ ).to("cpu")
14
+ return tokenizer, model, text_gen, img_pipe
15
+
16
+ def translate_tamil(text, tokenizer, model):
17
+ tokenizer.src_lang = "ta"
18
+ inputs = tokenizer(text, return_tensors="pt", padding=True, truncation=True)
19
+ generated = model.generate(
20
+ **inputs,
21
+ forced_bos_token_id=tokenizer.get_lang_id("en"),
22
+ max_length=128
23
  )
24
+ return tokenizer.decode(generated[0], skip_special_tokens=True)
 
 
 
 
 
 
 
 
25
 
26
  def main():
27
+ st.set_page_config(page_title="Tamil→EN→Image/Text", layout="centered")
28
+ st.title("🌐 தமிழ் English Creative Text & Image")
29
 
30
+ tokenizer, model, text_gen, img_pipe = load_all_models()
31
+ tamil_text = st.text_area("தமிழ் உரை:", height=150)
32
 
33
+ if st.button("உருவாக்கு"):
34
+ if not tamil_text.strip():
35
+ st.warning("தயவு செய்து உரையை உள்ளிடவும்.")
36
  return
37
 
38
+ with st.spinner("Translating…"):
39
+ eng = translate_tamil(tamil_text, tokenizer, model)
40
+ st.success(f"🔤 Translation: {eng}")
 
 
 
41
 
42
+ with st.spinner("Creating creative text…"):
43
+ creative = text_gen(f"Write a creative description of: {eng}", max_length=60, num_return_sequences=1)[0]["generated_text"]
44
+ st.info("📝 Creative Text:")
45
+ st.write(creative)
46
 
47
+ with st.spinner("Generating image…"):
48
+ img = img_pipe(eng, num_inference_steps=25, guidance_scale=7.5).images[0]
49
+ st.image(img, caption="🎨 Generated Image")
50
 
51
  if __name__ == "__main__":
52
  main()