File size: 1,280 Bytes
0bf575a
 
 
 
 
 
 
 
86bf6fd
a3c6d7b
86bf6fd
 
 
 
 
 
 
 
c2e6d2c
 
 
 
 
 
 
 
5c5d04a
 
c2e6d2c
 
 
 
 
 
 
6931598
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
from transformers import pipeline
#Create Image Captioning Pipeline
imagecaptioningpipe = pipeline("image-to-text",model="Salesforce/blip-image-captioning-base")

from diffusers import DiffusionPipeline
#Create Image Generation Pipeline
imagegenpipe = DiffusionPipeline.from_pretrained("runwayml/stable-diffusion-v1-5")

#Define Image Captioner and Image Generate Functions
from helper import image_to_base64_str, base64_to_pil
def captioner(image):
    base64_image = image_to_base64_str(image)
    result = imagecaptioningpipe(base64_image)
    return result[0]['generated_text']

def generate(prompt):
    return imagegenpipe(prompt).images[0]
    
#Build Image Caption and Generate Image Game App.
import gradio as gr
def caption_and_generate(image):
    caption = captioner(image)
    image = generate(caption)
    return [caption, image]

with gr.Blocks() as demo:
    gr.Markdown("# Caption Image-and-Generate Image🖍️")
    image_upload = gr.Image(label="Upload Your image",type="pil")
    btn_all = gr.Button("Caption and generate")
    caption = gr.Textbox(label="Generated caption")
    image_output = gr.Image(label="Generated Image")

    btn_all.click(fn=caption_and_generate, inputs=[image_upload], outputs=[caption, image_output])

gr.close_all()
demo.launch()