24Sureshkumar commited on
Commit
b8ece2f
·
verified ·
1 Parent(s): fdc8b17

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +38 -35
app.py CHANGED
@@ -1,58 +1,61 @@
 
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()
 
1
+ # app.py
2
  import streamlit as st
3
  from transformers import M2M100ForConditionalGeneration, M2M100Tokenizer, pipeline
4
+ from diffusers import DiffusionPipeline
5
  import torch
6
 
7
+ @st.cache_resource(show_spinner=False)
8
+ def load_all_models():
9
+ # Load translation model
10
+ model_name = "facebook/m2m100_418M"
11
  tokenizer = M2M100Tokenizer.from_pretrained(model_name)
12
  model = M2M100ForConditionalGeneration.from_pretrained(model_name)
13
 
14
+ # Load creative text model (smaller GPT-2)
15
+ textgen = pipeline("text-generation", model="gpt2", device=-1)
16
 
17
+ # Load lightweight image generation pipeline
18
+ img_pipe = DiffusionPipeline.from_pretrained(
19
+ "stabilityai/sdxl-lite", torch_dtype=torch.float32
20
  ).to("cpu")
21
 
22
+ return tokenizer, model, textgen, img_pipe
23
 
24
+ def translate(text, tokenizer, model):
25
  tokenizer.src_lang = "ta"
26
+ inputs = tokenizer(text, return_tensors="pt")
27
+ output = model.generate(inputs["input_ids"], forced_bos_token_id=tokenizer.get_lang_id("en"), max_length=100)
28
+ return tokenizer.decode(output[0], skip_special_tokens=True)
29
 
30
+ def generate_text(prompt, pipe):
31
+ output = pipe(prompt, max_length=60, do_sample=True)[0]
32
+ return output["generated_text"]
33
 
34
  def main():
35
+ st.set_page_config(page_title="Tamil to English → Creative Image", layout="centered")
36
+ st.title("🌐 தமிழ் English ➝ Creative Text + Image")
37
+
38
+ tokenizer, model, textgen, img_pipe = load_all_models()
39
+
40
+ tamil_text = st.text_area("தமிழ் உரையை உள்ளிடவும்:", height=130)
41
+
42
+ if st.button("உருவாக்கு"):
43
+ if not tamil_text.strip():
44
+ st.warning("தயவுசெய்து உரையை உள்ளிடவும்.")
45
  return
46
 
47
+ with st.spinner("மொழிபெயர்ப்பு..."):
48
+ english_text = translate(tamil_text, tokenizer, model)
49
+ st.success(f"🔁 Translated: {english_text}")
 
50
 
51
+ with st.spinner("உரையாக்கம்..."):
52
+ creative_text = generate_text(english_text, textgen)
53
+ st.info("📝 Creative Output:")
54
+ st.write(creative_text)
55
 
56
  with st.spinner("படம் உருவாக்கப்படுகிறது..."):
57
+ image = img_pipe(english_text).images[0]
58
+ st.image(image, caption="🎨 Generated Image", use_column_width=True)
59
 
60
  if __name__ == "__main__":
61
  main()