File size: 1,292 Bytes
2fadb29
a4b8965
4b48512
a4b8965
4b48512
 
2fadb29
4b48512
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2fadb29
 
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
37
38
39
40
import gradio as gr
from transformers import pipeline
from diffusers import DiffusionPipeline

# ζ•…δΊ‹ζ–‡ε­—η”Ÿζˆζ¨‘εž‹
text_pipeline = pipeline("text-generation", model="isarth/distill_gpt2_story_generator")

# εœ–εƒη”Ÿζˆζ¨‘εž‹
image_pipeline = DiffusionPipeline.from_pretrained("prompthero/openjourney")

# ζ–‡ε­—η”Ÿζˆε‡½εΌ
def generate_story(input_text):
    result = text_pipeline(input_text, max_length=200, do_sample=True)
    story = result[0]["generated_text"]
    return story

# εœ–εƒη”Ÿζˆε‡½εΌ
def generate_image_from_story(story_text):
    image = image_pipeline(story_text).images[0]
    return image

# Gradio 介青
with gr.Blocks() as demo:
    gr.Markdown("## ✨ AI ζ•…δΊ‹θˆ‡εœ–η‰‡η”Ÿζˆε™¨")
    
    with gr.Row():
        input_text = gr.Textbox(label="θΌΈε…₯δ½ ηš„ζ•…δΊ‹ι–‹ι ­", placeholder="εΎžι€™θ£‘ι–‹ε§‹δ½ ηš„ε†’ιšͺ...")
        generate_btn = gr.Button("η”Ÿζˆζ•…δΊ‹")

    story_output = gr.Textbox(label="η”Ÿζˆηš„ζ•…δΊ‹")
    
    with gr.Row():
        image_btn = gr.Button("ζ Ήζ“šζ•…δΊ‹η”Ÿζˆεœ–η‰‡")
        image_output = gr.Image(label="η”Ÿζˆηš„εœ–η‰‡")

    generate_btn.click(fn=generate_story, inputs=input_text, outputs=story_output)
    image_btn.click(fn=generate_image_from_story, inputs=story_output, outputs=image_output)

demo.launch()