Spaces:
Running
Running
import gradio as gr | |
import requests | |
from PIL import Image | |
from io import BytesIO | |
API_KEY = '980ec5edcf1070c6022f28762a504bc7c4d1cf5d3aa45a5d0a8cf5134a3a381da0b2fa967f82e69426fca77db5f4924e' | |
API_URL = 'https://clipdrop-api.co/text-to-image/v1' | |
def api_integration_function(prompt): | |
# Make API request | |
headers = {'x-api-key': API_KEY} | |
files = {'prompt': (None, prompt, 'text/plain')} | |
response = requests.post(API_URL, headers=headers, files=files) | |
# Process the response | |
if response.ok: | |
image_bytes = response.content | |
image = Image.open(BytesIO(image_bytes)) | |
return image | |
else: | |
return None | |
def generate_image(): | |
image = api_integration_function(inp.value) | |
if image is not None: | |
out.image(image) | |
else: | |
out.image("placeholder.png") | |
with gr.Blocks() as demo: | |
gr.Markdown( | |
""" | |
# Text-to-Image Demo | |
Enter your text prompt below to generate an image. | |
""") | |
inp = gr.Textbox(placeholder="Enter your text prompt") | |
out = gr.Image() | |
button = gr.Button(label="Generate", action=generate_image) | |
inp.change(api_integration_function,inp, out) | |
demo.launch() |