abdelrhman-mahmoud commited on
Commit
268de2e
1 Parent(s): f62ba28

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +49 -0
app.py ADDED
@@ -0,0 +1,49 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import streamlit as st
2
+ from transformers import pipeline
3
+ from PIL import Image
4
+ import requests
5
+ import torch
6
+ from diffusers import DiffusionPipeline
7
+
8
+
9
+ def generate_text(prompt, text_generator):
10
+ generated_text = text_generator(prompt, max_length=200, num_return_sequences=1, temperature=0.7)[0]['generated_text']
11
+ return generated_text
12
+
13
+ def generate_image(prompt, img_gen):
14
+ generated_image = img_gen(prompt)[0]
15
+ return generated_image
16
+
17
+ def generate_blog_post(keywords, text_generator, img_gen):
18
+ # Text generation
19
+ generated_text = generate_text(f"Write about {keywords}", text_generator)
20
+
21
+ # Image generation
22
+ generated_image = generate_image(keywords, img_gen)
23
+
24
+ return f"# {keywords}\n\n## Introduction\n{generated_text}\n\n## Body\n{generated_text}\n\n## Conclusion\n{generated_text}\n\nGenerated Image: {generated_image}"
25
+
26
+ def main():
27
+
28
+
29
+ # Load models
30
+ text_model_name = "EleutherAI/gpt-neo-1.3B"
31
+ text_generator = pipeline("text-generation", model=text_model_name, tokenizer=text_model_name)
32
+
33
+ img_gen = DiffusionPipeline.from_pretrained("kandinsky-community/kandinsky-2-2-decoder")
34
+ # Title of the app
35
+ st.title("AI Blog Post Generator")
36
+
37
+ # User input for keywords
38
+ user_keywords = st.text_input("Enter keywords for the blog post:")
39
+
40
+ # Button to generate blog post
41
+ if st.button("Generate Blog Post"):
42
+ # Generate blog post
43
+ blog_post = generate_blog_post(user_keywords, text_generator, img_gen)
44
+
45
+ # Display the generated blog post
46
+ st.markdown(blog_post, unsafe_allow_html=True)
47
+
48
+ if __name__ == "__main__":
49
+ main()