demo / app.py
abdelrhman-mahmoud's picture
Create app.py
268de2e
raw history blame
No virus
1.62 kB
import streamlit as st
from transformers import pipeline
from PIL import Image
import requests
import torch
from diffusers import DiffusionPipeline
def generate_text(prompt, text_generator):
generated_text = text_generator(prompt, max_length=200, num_return_sequences=1, temperature=0.7)[0]['generated_text']
return generated_text
def generate_image(prompt, img_gen):
generated_image = img_gen(prompt)[0]
return generated_image
def generate_blog_post(keywords, text_generator, img_gen):
# Text generation
generated_text = generate_text(f"Write about {keywords}", text_generator)
# Image generation
generated_image = generate_image(keywords, img_gen)
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}"
def main():
# Load models
text_model_name = "EleutherAI/gpt-neo-1.3B"
text_generator = pipeline("text-generation", model=text_model_name, tokenizer=text_model_name)
img_gen = DiffusionPipeline.from_pretrained("kandinsky-community/kandinsky-2-2-decoder")
# Title of the app
st.title("AI Blog Post Generator")
# User input for keywords
user_keywords = st.text_input("Enter keywords for the blog post:")
# Button to generate blog post
if st.button("Generate Blog Post"):
# Generate blog post
blog_post = generate_blog_post(user_keywords, text_generator, img_gen)
# Display the generated blog post
st.markdown(blog_post, unsafe_allow_html=True)
if __name__ == "__main__":
main()