Spaces:
Sleeping
Sleeping
File size: 2,690 Bytes
5e5fd54 72398d0 9c51543 72398d0 d4bdcdb 31520f0 d4bdcdb 9c51543 683915d f94dc93 c95b55d 9c51543 72398d0 c95b55d 72398d0 febdcdd c95b55d d4bdcdb 9c51543 89dc556 9c51543 d4bdcdb 9c51543 d4bdcdb febdcdd 9c51543 d4bdcdb 9c51543 d4bdcdb 89dc556 d4bdcdb 9c51543 d4bdcdb 9c51543 d4bdcdb f94dc93 9c51543 c95b55d 9c51543 c95b55d 4c8d63a c95b55d 9c51543 72398d0 5e5fd54 9c51543 |
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 |
import gradio as gr
import requests
from io import BytesIO
from PIL import Image
import os
# HARDCODED_URL = "" # Replace with your desired URL
TOKEN = os.getenv("TOKEN1")
API_URL = os.getenv("API_URL")
token_id = 1
tokens_tried = 0
no_of_accounts = 3
model_id = os.getenv("MODEL_ID")
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 token_id
global TOKEN
global tokens_tried
global no_of_accounts
global model_id
payload = {
"id": model_id, # Replace with appropriate ID if necessary
"inputs": [prompt, aspect_ratio, str(realism).lower()],
}
headers = {"Authorization": f"Bearer {TOKEN}"}
try:
response_data = requests.post(API_URL, json=payload, headers=headers).json()
if "error" in response_data:
if 'error 429' in response_data['error']:
if tokens_tried < no_of_accounts:
token_id = (token_id + 1) % (no_of_accounts+1)
tokens_tried += 1
TOKEN = os.getenv(f"TOKEN{token_id}")
response_data = generate_image(prompt, aspect_ratio, realism)
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"
# 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=False), # 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()
|