from fastapi import FastAPI,Body import uvicorn import json from PIL import Image import time from constants import DESCRIPTION, LOGO from model import get_pipeline from utils import replace_background from diffusers.utils import load_image import base64 import io from datetime import datetime app = FastAPI(name="mutilParam") pipeline = get_pipeline() #Endpoints #Root endpoints @app.get("/") def root(): return {"API": "Sum of 2 Squares"} @app.post("/img2img") async def predict(prompt=Body(...),imgbase64data=Body(...)): MAX_QUEUE_SIZE = 4 start = time.time() print("参数",imgbase64data,prompt) image_data = base64.b64decode(imgbase64data) image1 = Image.open(io.BytesIO(image_data)) w, h = image1.size newW = 256 newH = int(h * newW / w) img = image1.resize((newW, newH)) end1 = time.time() now = datetime.now() print(now) print("图像:", img.size) print("加载管道:", end1 - start) result = pipeline( prompt=prompt, image=image1, strength=0.6, seed=10, width=256, height=256, guidance_scale=1, num_inference_steps=4, ) output_image = result.images[0] end2 = time.time() print("测试",output_image) print("s生成完成:", end2 - end1) # 将图片对象转换为bytes output_image_base64 = base64.b64encode(output_image.tobytes()).decode() print("完成的图片:", output_image_base64) return output_image_base64 @app.post("/predict") async def predict(prompt=Body(...)): return f"您好,{prompt}"