Spaces:
Sleeping
Sleeping
File size: 2,255 Bytes
c420f36 a70b44b c0770f4 c0c9cfb 1d416b9 a70b44b 03b6378 c420f36 64cdf13 a70b44b c0c9cfb 1d416b9 c420f36 1d416b9 e4a7911 c0c9cfb e4a7911 c0c9cfb 1d416b9 c0c9cfb 1d416b9 c0c9cfb 1d416b9 c0c9cfb 1d416b9 c0c9cfb 1d416b9 e4a7911 c0c9cfb 1d416b9 a70b44b 1d416b9 a70b44b c0c9cfb |
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 |
import requests
import gradio as gr
import os
import json
import base64
from PIL import Image
import io
API_KEY = os.getenv("NVIDIA_API_KEY")
invoke_url = "https://ai.api.nvidia.com/v1/genai/stabilityai/sdxl-turbo"
headers = {
"Authorization": f"Bearer {API_KEY}",
"Accept": "application/json",
}
def generate_kindle_cover(prompt):
print(f"Generating cover for prompt: {prompt}")
print(f"API Key (first 5 characters): {API_KEY[:5]}..." if API_KEY else "API Key is not set")
payload = {
"text_prompts": [{"text": prompt}],
"seed": 0,
"sampler": "K_EULER_ANCESTRAL",
"steps": 2
}
try:
print("Sending request to NVIDIA API...")
response = requests.post(invoke_url, headers=headers, json=payload)
print(f"Received response with status code: {response.status_code}")
print(f"Response headers: {json.dumps(dict(response.headers), indent=2)}")
if response.status_code == 401:
return "Error: Unauthorized access (401). Please check your API key.", None
elif response.status_code != 200:
return f"Error: Received status code {response.status_code} from API. Response: {response.text}", None
try:
response_body = response.json()
print("Response Body:", json.dumps(response_body, indent=2))
# Extract and decode the image data
image_data = base64.b64decode(response_body['results'][0]['image'])
image = Image.open(io.BytesIO(image_data))
return "Success: Image generated successfully.", image
except json.JSONDecodeError:
return f"Error: Failed to parse JSON response. Raw response: {response.text}", None
except KeyError:
return "Error: Expected image data not found in the response.", None
except Exception as e:
print(f"An error occurred: {str(e)}")
return f"Error: {str(e)}", None
iface = gr.Interface(
fn=generate_kindle_cover,
inputs="text",
outputs=["text", gr.Image()],
title="Kindle Cover Generator",
description="Generate high-quality covers for Amazon Kindle books using the NVIDIA SDXL-Turbo model."
)
iface.launch(debug=True) |