File size: 1,522 Bytes
c20cbe0
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# Import necessary libraries
import gradio as gr    # For building the web interface
from transformers import pipeline  # To use Hugging Face models

# Load the DALL-E Mini model from Hugging Face
# Using pipeline to handle the model. Note: 'dalle-mini' is lightweight and CPU-friendly
generator = pipeline("text-to-image-generation", model="flax-community/dalle-mini")

# Function to generate comic-style panels from a user's story description
def generate_comic_panels(story_description):
    # Break the story into key points (naive splitting; could use NLP techniques for better splitting)
    scenes = story_description.split(". ")
    
    images = []
    for scene in scenes:
        # Generate an image for each scene using the loaded model
        image = generator(scene)
        images.append(image[0]["generated_image"])  # Get the generated image from the response
    
    return images

# Set up the Gradio interface
# User inputs their story description, and we generate images as a comic-style series
demo = gr.Interface(
    fn=generate_comic_panels,  # Function to be called when the user interacts
    inputs=gr.Textbox(lines=5, placeholder="Enter your short story description here..."),  # User input
    outputs=gr.Gallery(label="Generated Comic Panels").style(grid=[2]),  # Display images in a gallery format
    title="GenArt Narrative",
    description="Enter a short story description, and we'll transform it into a comic strip!"
)

# Launch the app
if __name__ == "__main__":
    demo.launch()