# -*- coding: utf-8 -*- # @时间 : 2024/5/15 18:03 # @作者 : caishilong # @文件名 : main.py # @项目名 : ai-platform # @Software : PyCharm import io import gradio as gr import numpy as np import requests from PIL import Image from dotenv import load_dotenv import os load_dotenv() SECRET_TOKEN = os.getenv("SECRET_TOKEN") account = os.getenv('ACCOUNT') API_BASE_URL = f"https://api.cloudflare.com/client/v4/accounts/{account}/ai/run/" headers = {"Authorization": f"Bearer {SECRET_TOKEN}"} def run(model, inputs): input = inputs response = requests.post(f"{API_BASE_URL}{model}", headers=headers, json=input) # 返回的是"content-type": "image/png" try: print(response.json()) except: pass image = Image.open(io.BytesIO(response.content)) image_array = np.array(image) return image_array # output = run("@cf/stabilityai/stable-diffusion-xl-base-1.0", inputs) # # with open("output.png", "wb") as f: # f.write(output) def fake_diffusion(model, prompt, guidance, image: np.ndarray): # image = Image.fromarray(image) # # image = np.array(image) # print(image) # plt.plot(121) # plt.imshow(image) # plt.show() data = {"prompt": prompt, "guidance": guidance, # "image": image.tolist() } output = run(model, data) yield output demo = gr.Interface(fake_diffusion, [ gr.Dropdown(["@cf/stabilityai/stable-diffusion-xl-base-1.0", "@cf/lykon/dreamshaper-8-lcm", '@cf/bytedance/stable-diffusion-xl-lightning', '@cf/runwayml/stable-diffusion-v1-5-img2img'], label="Model", value='@cf/bytedance/stable-diffusion-xl-lightning'), gr.Textbox(label='prompt', value='human playing with a dog'), gr.Slider(1, 20, 20, label='guidance'), # gr.Image() ], outputs="image") if __name__ == "__main__": demo.launch(server_name='0.0.0.0',auth= ("admin", r'qwe[]\123'),)