File size: 1,770 Bytes
f966bca
6934dad
7015481
7bb3bd1
7015481
f966bca
7015481
3de574b
6934dad
 
 
 
3de574b
6934dad
 
18598ad
1daab31
3de574b
18598ad
 
 
3de574b
 
1daab31
7015481
18598ad
6934dad
1daab31
18598ad
3de574b
 
 
 
18598ad
 
 
1daab31
3de574b
6934dad
 
7015481
6934dad
 
7bb3bd1
6934dad
7bb3bd1
7015481
 
6934dad
f966bca
3de574b
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
import gradio as gr
import requests
from PIL import Image
import base64
from io import BytesIO

def query_hf_image_generation(api_key, prompt):
    API_URL = "https://api-inference.huggingface.co/models/stabilityai/stable-diffusion-xl-base-1.0"
    headers = {
        "Authorization": f"Bearer {api_key}",
        "Content-Type": "application/json"
    }
    data = {"inputs": prompt}

    response = requests.post(API_URL, headers=headers, json=data)

    if response.status_code != 200:
        return f"Error: Received HTTP {response.status_code} - {response.text}"

    try:
        result = response.json()
    except ValueError:
        return f"Error decoding JSON: Unexpected response format {response.text}"

    if 'error' in result:
        return f"Error: {result['error']}"

    if 'data' in result:
        try:
            base64_string = result['data'][0]
            base64_data = base64_string.split(",")[1] if "," in base64_string else base64_string
            image_data = base64.b64decode(base64_data)
            image = Image.open(BytesIO(image_data))
            return image
        except Exception as e:
            return f"Error processing image data: {e}"
    else:
        return "Error: Missing 'data' in the response."

iface = gr.Interface(
    fn=query_hf_image_generation,
    inputs=[
        gr.Textbox(label="Hugging Face API Key", placeholder="Enter your Hugging Face API Key here..."),
        gr.Textbox(lines=2, placeholder="Enter your prompt here...", label="Prompt")
    ],
    outputs=gr.Image(label="Generated Image"),
    title="Stable Diffusion XL Image Generator",
    description="Enter your API Key and a prompt to generate an image using the Stable Diffusion XL model from Hugging Face."
)

iface.launch(share=True)