Spaces:
Sleeping
Sleeping
import gradio as gr | |
import requests | |
from PIL import Image | |
from io import BytesIO | |
import json | |
# Hugging Face API 資訊 | |
API_URL = "https://api-inference.huggingface.co/models/KappaNeuro/ukiyo-e-art" | |
headers = {"Authorization": "Bearer hf_MySpaceToken"} | |
# 呼叫模型的函數,並處理回應格式 | |
def query(payload): | |
response = requests.post(API_URL, headers=headers, json=payload) | |
if response.status_code != 200: | |
return f"Error {response.status_code}: {response.text}" # 顯示 API 回傳的錯誤訊息 | |
# 檢查回應格式,如果是 JSON 說明模型未回傳圖片 | |
if response.headers["Content-Type"] == "application/json": | |
response_data = response.json() | |
return f"API 回應錯誤: {response_data.get('error', '未知錯誤')}" | |
return response.content # 如果回傳的是圖片,回傳二進位資料 | |
# 定義 Gradio 的生成函數 | |
def generate_image(prompt): | |
result = query({"inputs": prompt}) | |
# 如果回應內容是字串(錯誤訊息),直接回傳 | |
if isinstance(result, str): | |
return result | |
try: | |
image = Image.open(BytesIO(result)) # 將二進位資料轉為圖片 | |
return image | |
except Exception as e: | |
return f"圖片解析失敗: {e}" | |
# 建立 Gradio 介面 | |
interface = gr.Interface( | |
fn=generate_image, | |
inputs="text", | |
outputs="image", | |
title="浮世繪生成器", | |
description="輸入一句話,生成浮世繪風格的藝術圖片。", | |
) | |
# 啟動應用程式,設定 share=True 以便測試 | |
interface.launch(share=True) | |