import requests import gradio as gr from PIL import Image import io from transformers import utils utils.move_cache() import os hf_token = os.getenv('HF_TOKEN') API_URL = "https://api-inference.huggingface.co/models/stabilityai/stable-diffusion-xl-base-1.0" headers = {"Authorization": f"Bearer {hf_token}"} def query(payload): response = requests.post(API_URL, headers=headers, json=payload) if response.status_code != 200: # If the response is not successful, return None or handle it accordingly print("Error from the API:", response.text) # For debugging return None return response.content def generate_image(prompt): image_bytes = query({"inputs": prompt}) if image_bytes is None: # Handle the case where the API did not return image data return "The API call was unsuccessful. Check the logs for details." try: image = Image.open(io.BytesIO(image_bytes)) return image except IOError: # Handle cases where PIL cannot open the bytes received return "The returned data could not be recognized as an image." iface = gr.Interface( fn=generate_image, inputs="text", outputs="image", title="Stable-Diffusion-XL for high quality image generation" ) iface.launch()