miltonc commited on
Commit
3f152b0
·
verified ·
1 Parent(s): 885aabb

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +15 -14
app.py CHANGED
@@ -7,18 +7,19 @@ from PIL import Image
7
  # Load models
8
  def load_models():
9
  image_to_text = pipeline("image-to-text", model="Salesforce/blip-image-captioning-base")
10
- summarizer = pipeline("summarization", model="facebook/bart-large-cnn")
11
- return image_to_text, summarizer
12
 
13
  # Process image to text
14
  def generate_caption(image, image_to_text):
15
  result = image_to_text(image)
16
  return result[0]["generated_text"] if result else "No caption generated."
17
 
18
- # Summarize text
19
- def summarize_text(text, summarizer):
20
- summary = summarizer(text, max_length=30, min_length=10, do_sample=False)
21
- return summary[0]["summary_text"] if summary else "No summary generated."
 
22
 
23
  # Convert text to speech
24
  def text_to_speech(text, filename="output.mp3"):
@@ -28,9 +29,9 @@ def text_to_speech(text, filename="output.mp3"):
28
 
29
  # Main Streamlit app
30
  def main():
31
- st.title("AI-Powered Image Captioning, Summarization, and Speech")
32
-
33
- image_to_text, summarizer = load_models()
34
 
35
  uploaded_file = st.file_uploader("Upload an image...", type=["jpg", "png", "jpeg"])
36
 
@@ -46,13 +47,13 @@ def main():
46
  st.write("### Image Caption:")
47
  st.write(caption)
48
 
49
- with st.spinner("Summarizing caption..."):
50
- summary = summarize_text(caption, summarizer)
51
- st.write("### Summary:")
52
- st.write(summary)
53
 
54
  with st.spinner("Generating speech..."):
55
- audio_file = text_to_speech(summary)
56
  st.audio(audio_file, format="audio/mp3")
57
 
58
  if __name__ == "__main__":
 
7
  # Load models
8
  def load_models():
9
  image_to_text = pipeline("image-to-text", model="Salesforce/blip-image-captioning-base")
10
+ storyteller = pipeline("text-generation", model="mistralai/Mistral-7B-Instruct-v0.1", max_new_tokens=200)
11
+ return image_to_text, storyteller
12
 
13
  # Process image to text
14
  def generate_caption(image, image_to_text):
15
  result = image_to_text(image)
16
  return result[0]["generated_text"] if result else "No caption generated."
17
 
18
+ # Generate a narrative story
19
+ def generate_story(text, storyteller):
20
+ prompt = f"Write a short, engaging story based on the following description: {text}"
21
+ story = storyteller(prompt)
22
+ return story[0]["generated_text"] if story else "No story generated."
23
 
24
  # Convert text to speech
25
  def text_to_speech(text, filename="output.mp3"):
 
29
 
30
  # Main Streamlit app
31
  def main():
32
+ st.title("AI-Powered Image Captioning and Storytelling")
33
+
34
+ image_to_text, storyteller = load_models()
35
 
36
  uploaded_file = st.file_uploader("Upload an image...", type=["jpg", "png", "jpeg"])
37
 
 
47
  st.write("### Image Caption:")
48
  st.write(caption)
49
 
50
+ with st.spinner("Generating story..."):
51
+ story = generate_story(caption, storyteller)
52
+ st.write("### Generated Story:")
53
+ st.write(story)
54
 
55
  with st.spinner("Generating speech..."):
56
+ audio_file = text_to_speech(story)
57
  st.audio(audio_file, format="audio/mp3")
58
 
59
  if __name__ == "__main__":