Spaces:
Runtime error
Runtime error
File size: 2,266 Bytes
cfefca9 d06af8a 874da76 1fb31cc 5c7e9d3 cfefca9 874da76 cfefca9 5c7e9d3 a481fbd cfefca9 01fec03 cfefca9 874da76 5d29ce0 874da76 5c7e9d3 cfefca9 1fb31cc 5c7e9d3 874da76 fe37c2f 874da76 047cb5b 1fb31cc cfefca9 874da76 1fb31cc 874da76 cfefca9 ff04f46 |
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 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 |
import gradio as gr
import fal_client
import requests
from PIL import Image
from io import BytesIO
import traceback
import os
def generate_image(api_key, prompt, image_size='landscape_4_3', num_images=1):
try:
# Set the API key as an environment variable
os.environ['FAL_KEY'] = api_key
handler = fal_client.submit(
"fal-ai/flux-pro/v1.1",
arguments={
"prompt": prompt,
"image_size": image_size,
"num_images": num_images,
},
)
result = handler.get()
images = []
for img_info in result['images']:
img_url = img_info['url']
# Download the image
response = requests.get(img_url)
img = Image.open(BytesIO(response.content))
images.append(img)
return [gr.update(value=images, visible=True), gr.update(visible=False)]
except Exception as e:
error_msg = f"Error: {str(e)}\n\nTraceback:\n{traceback.format_exc()}"
print(error_msg)
return [gr.update(visible=False), gr.update(value=error_msg, visible=True)]
with gr.Blocks() as demo:
gr.Markdown("# FLUX1.1 [pro] Text-to-Image Generator")
gr.Markdown("get your api key at https://fal.ai/dashboard/keys")
with gr.Row():
api_key = gr.Textbox(label="API Key", type="password", placeholder="Enter your API key here")
with gr.Row():
prompt = gr.Textbox(label="Prompt", lines=2, placeholder="Enter your prompt here")
with gr.Row():
image_size = gr.Dropdown(
label="Image Size",
choices=["square_hd", "square", "portrait_4_3", "portrait_16_9", "landscape_4_3", "landscape_16_9"],
value="landscape_4_3"
)
num_images = gr.Slider(label="Number of Images", minimum=1, maximum=4, step=1, value=1)
generate_btn = gr.Button("Generate Image")
output_gallery = gr.Gallery(label="Generated Images", columns=2, rows=2)
error_output = gr.Textbox(label="Error Message", visible=False)
generate_btn.click(
fn=generate_image,
inputs=[api_key, prompt, image_size, num_images],
outputs=[output_gallery, error_output]
)
if __name__ == "__main__":
demo.launch() |