Spaces:
Sleeping
Sleeping
File size: 2,872 Bytes
5e5fd54 72398d0 c95b55d efe7cca 72398d0 efe7cca c95b55d 6f46247 c95b55d 07880ed c95b55d febdcdd c95b55d 72398d0 febdcdd 72398d0 c95b55d 72398d0 febdcdd c95b55d febdcdd c95b55d febdcdd c95b55d febdcdd c95b55d 69e1613 c95b55d febdcdd c95b55d febdcdd c95b55d dd21441 febdcdd c95b55d d4ff792 c95b55d febdcdd c95b55d 72398d0 5e5fd54 c95b55d febdcdd |
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 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 |
import gradio as gr
import requests
from io import BytesIO
from PIL import Image
import os
# HARDCODED_URL = "" # Replace with your desired URL
GLIF_API_TOKEN = os.getenv("GLIF_API_TOKEN1")
GLIF_API_URL = "https://simple-api.glif.app"
glif_token_id = 1
glif_tokens_tried = 0
no_of_accounts = 3
import gradio as gr
from PIL import Image
from io import BytesIO
import requests
import os
def get_image_from_url(url):
"""
Fetches and returns an image from a given URL.
"""
try:
response = requests.get(url, stream=True)
response.raise_for_status()
image = Image.open(BytesIO(response.content))
return image
except requests.exceptions.RequestException as e:
return f"Error fetching image: {e}"
except Exception as e:
return f"Error processing image: {e}"
def generate_image(prompt, aspect_ratio, realism):
global glif_token_id
global GLIF_API_TOKEN
global glif_tokens_tried
global no_of_accounts
payload = {
"id": "cm3ugmzv2002gnckiosrwk6xi", # Replace with appropriate ID if necessary
"inputs": [prompt, aspect_ratio, str(realism).lower()],
}
headers = {"Authorization": f"Bearer {GLIF_API_TOKEN}"}
try:
response_data = requests.post(GLIF_API_URL, json=payload, headers=headers).json()
if "error" in response_data:
if 'error 429' in response_data['error']:
if glif_tokens_tried < no_of_accounts:
glif_token_id = (glif_token_id + 1) % no_of_accounts
glif_tokens_tried += 1
GLIF_API_TOKEN = os.getenv(f"GLIF_API_TOKEN{glif_token_id}")
response_data = generate_image(prompt, aspect_ratio, realism)
glif_tokens_tried = 0
return response_data
return "No credits available"
return response_data
elif "output" in response_data:
url = response_data['output']
return get_image_from_url(url) # Return the image directly
else:
return "Error: Unexpected response from server"
except Exception as e:
return f"Error: {e}"
# Define the Gradio interface
interface = gr.Interface(
fn=generate_image,
inputs=[
gr.Textbox(label="Prompt", placeholder="Describe the image you want to generate"),
gr.Radio(
choices=["1:1", "3:4", "4:3", "9:16", "16:9", "9:21", "21:9"],
label="Aspect Ratio",
value="16:9" # Default value
),
gr.Checkbox(label="Realism", value=True), # Checkbox for realism (True/False)
],
outputs=gr.Image(type="pil"), # Output image
title="Image Generator",
description="Provide a prompt, select an aspect ratio, and set realism to generate an image.",
)
# Launch the interface
interface.launch()
|