SandaAbhishekSagar commited on
Commit
e8e9699
1 Parent(s): 378e05f

changed the whole code

Browse files
Files changed (3) hide show
  1. app.py +38 -5
  2. image_generator.py +31 -12
  3. translate.py +23 -9
app.py CHANGED
@@ -1,25 +1,58 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  import gradio as gr
2
  from translate import translate_text
3
  from image_generator import generate_image
4
 
5
  def chatbot(input_text, src_lang="auto"):
 
6
  # Translate input to English
7
  translated_text = translate_text(input_text, src_lang, "en")
8
- # Generate image based on translated text
 
9
  image_path = generate_image(f"A scene depicting: {translated_text}")
 
10
  return translated_text, image_path
11
 
 
12
  interface = gr.Interface(
13
  fn=chatbot,
14
  inputs=[
15
- gr.Textbox(label="Input Text"),
16
- gr.Dropdown(choices=["auto", "es", "fr", "de"], label="Source Language")
17
  ],
18
  outputs=[
19
  gr.Textbox(label="Translated Text"),
20
- gr.Image(label="Generated Image")
21
  ],
22
- title="English Language Learning Chatbot"
 
23
  )
24
 
25
  if __name__ == "__main__":
 
1
+ # import gradio as gr
2
+ # from translate import translate_text
3
+ # from image_generator import generate_image
4
+
5
+ # def chatbot(input_text, src_lang="auto"):
6
+ # # Translate input to English
7
+ # translated_text = translate_text(input_text, src_lang, "en")
8
+ # # Generate image based on translated text
9
+ # image_path = generate_image(f"A scene depicting: {translated_text}")
10
+ # return translated_text, image_path
11
+
12
+ # interface = gr.Interface(
13
+ # fn=chatbot,
14
+ # inputs=[
15
+ # gr.Textbox(label="Input Text"),
16
+ # gr.Dropdown(choices=["auto", "es", "fr", "de"], label="Source Language")
17
+ # ],
18
+ # outputs=[
19
+ # gr.Textbox(label="Translated Text"),
20
+ # gr.Image(label="Generated Image")
21
+ # ],
22
+ # title="English Language Learning Chatbot"
23
+ # )
24
+
25
+ # if __name__ == "__main__":
26
+ # interface.launch()
27
+
28
+
29
  import gradio as gr
30
  from translate import translate_text
31
  from image_generator import generate_image
32
 
33
  def chatbot(input_text, src_lang="auto"):
34
+ """Process user input, translate it, and generate an image."""
35
  # Translate input to English
36
  translated_text = translate_text(input_text, src_lang, "en")
37
+
38
+ # Generate an image based on the translated text
39
  image_path = generate_image(f"A scene depicting: {translated_text}")
40
+
41
  return translated_text, image_path
42
 
43
+ # Gradio Interface
44
  interface = gr.Interface(
45
  fn=chatbot,
46
  inputs=[
47
+ gr.Textbox(label="Enter text in any language"),
48
+ gr.Textbox(label="Source Language (optional, e.g., 'es' for Spanish)", value="auto"),
49
  ],
50
  outputs=[
51
  gr.Textbox(label="Translated Text"),
52
+ gr.Image(label="Generated Image"),
53
  ],
54
+ title="Multilingual Chatbot with Image Generation",
55
+ description="Enter text in any language to translate it into English and generate an image based on the text.",
56
  )
57
 
58
  if __name__ == "__main__":
image_generator.py CHANGED
@@ -12,20 +12,39 @@
12
  # print("Generated Image Path:", generate_image(prompt))
13
 
14
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
15
  from diffusers import StableDiffusionPipeline
16
  import torch
17
 
 
 
 
 
 
 
 
 
18
  def generate_image(prompt):
19
- model = StableDiffusionPipeline.from_pretrained("runwayml/stable-diffusion-v1-5")
20
-
21
- # Use GPU if available, otherwise fallback to CPU
22
- device = "cuda" if torch.cuda.is_available() else "cpu"
23
- model.to(device)
24
-
25
  image = model(prompt).images[0]
26
- image.save("output.png")
27
- return "output.png"
28
-
29
- if __name__ == "__main__":
30
- prompt = "A friendly person saying 'How are you?'"
31
- print("Generated Image Path:", generate_image(prompt))
 
12
  # print("Generated Image Path:", generate_image(prompt))
13
 
14
 
15
+ # from diffusers import StableDiffusionPipeline
16
+ # import torch
17
+
18
+ # def generate_image(prompt):
19
+ # model = StableDiffusionPipeline.from_pretrained("runwayml/stable-diffusion-v1-5")
20
+
21
+ # # Use GPU if available, otherwise fallback to CPU
22
+ # device = "cuda" if torch.cuda.is_available() else "cpu"
23
+ # model.to(device)
24
+
25
+ # image = model(prompt).images[0]
26
+ # image.save("output.png")
27
+ # return "output.png"
28
+
29
+ # if __name__ == "__main__":
30
+ # prompt = "A friendly person saying 'How are you?'"
31
+ # print("Generated Image Path:", generate_image(prompt))
32
+
33
+
34
  from diffusers import StableDiffusionPipeline
35
  import torch
36
 
37
+ # Preload the model globally
38
+ device = "cuda" if torch.cuda.is_available() else "cpu"
39
+ model = StableDiffusionPipeline.from_pretrained(
40
+ "stabilityai/stable-diffusion-2-1-base",
41
+ torch_dtype=torch.float16 if torch.cuda.is_available() else torch.float32
42
+ )
43
+ model.to(device)
44
+
45
  def generate_image(prompt):
46
+ """Generate an image from a text prompt."""
 
 
 
 
 
47
  image = model(prompt).images[0]
48
+ output_path = "output.png"
49
+ image.save(output_path)
50
+ return output_path
 
 
 
translate.py CHANGED
@@ -1,13 +1,27 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  from transformers import MarianMTModel, MarianTokenizer
2
 
3
- def translate_text(text, src_lang="es", tgt_lang="en"):
4
- model_name = f"Helsinki-NLP/opus-mt-{src_lang}-{tgt_lang}"
5
- tokenizer = MarianTokenizer.from_pretrained(model_name)
6
- model = MarianMTModel.from_pretrained(model_name)
 
 
 
7
  inputs = tokenizer(text, return_tensors="pt", padding=True)
8
- translated = model.generate(**inputs)
9
  return tokenizer.decode(translated[0], skip_special_tokens=True)
10
-
11
- if __name__ == "__main__":
12
- input_text = "驴C贸mo est谩s?"
13
- print("Translated Text:", translate_text(input_text, src_lang="es", tgt_lang="en"))
 
1
+ # from transformers import MarianMTModel, MarianTokenizer
2
+
3
+ # def translate_text(text, src_lang="es", tgt_lang="en"):
4
+ # model_name = f"Helsinki-NLP/opus-mt-{src_lang}-{tgt_lang}"
5
+ # tokenizer = MarianTokenizer.from_pretrained(model_name)
6
+ # model = MarianMTModel.from_pretrained(model_name)
7
+ # inputs = tokenizer(text, return_tensors="pt", padding=True)
8
+ # translated = model.generate(**inputs)
9
+ # return tokenizer.decode(translated[0], skip_special_tokens=True)
10
+
11
+ # if __name__ == "__main__":
12
+ # input_text = "驴C贸mo est谩s?"
13
+ # print("Translated Text:", translate_text(input_text, src_lang="es", tgt_lang="en"))
14
+
15
+
16
  from transformers import MarianMTModel, MarianTokenizer
17
 
18
+ # Preload the translation model globally
19
+ model_name = "Helsinki-NLP/opus-mt-mul-en"
20
+ tokenizer = MarianTokenizer.from_pretrained(model_name)
21
+ translation_model = MarianMTModel.from_pretrained(model_name)
22
+
23
+ def translate_text(text, src_lang="auto", tgt_lang="en"):
24
+ """Translate text from any language to English."""
25
  inputs = tokenizer(text, return_tensors="pt", padding=True)
26
+ translated = translation_model.generate(**inputs)
27
  return tokenizer.decode(translated[0], skip_special_tokens=True)