Spaces:
Sleeping
Sleeping
| # https://medium.com/@qacheampong/building-and-deploying-a-fastapi-app-with-hugging-face-9210e9b4a713 | |
| # https://huggingface.co/spaces/Queensly/FastAPI_in_Docker | |
| from fastapi import FastAPI,Request | |
| 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 | |
| app = FastAPI() | |
| #Endpoints | |
| #Root endpoints | |
| def root(): | |
| return {"API": "Sum of 2 Squares"} | |
| async def predict(url:str,prompt:str): | |
| MAX_QUEUE_SIZE = 4 | |
| start = time.time() | |
| pipeline = get_pipeline() | |
| url = "https://img2.baidu.com/it/u=1845675188,2679793929&fm=253&fmt=auto&app=138&f=JPEG?w=667&h=500" | |
| prompt = "a nice Comfortable and clean. According to Baidu Education Information, the adjectives for a room include: comfortable, clean, beautiful, spacious, warm, quiet, luxurious, pleasant, exquisite, and warm ,colorful, light room width sofa,8k" | |
| init_image = load_image(url).convert("RGB") | |
| # image1 = replace_background(init_image.resize((256, 256))) | |
| w, h = init_image.size | |
| newW = 512 | |
| newH = int(h * newW / w) | |
| img = init_image.resize((newW, newH)) | |
| end1 = time.time() | |
| print("加载管道:", end1 - start) | |
| result = pipeline( | |
| prompt=prompt, | |
| image=img, | |
| 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) | |
| output_image.save("./imageclm5.png") | |
| with open(output_image, 'rb') as image_file: | |
| encoded_string = base64.b64encode(image_file.read()).decode('utf-8') | |
| print(encoded_string) | |
| return encoded_string | |
| async def predict(request:Request): | |
| body = await request.body() | |
| data = json.loads(body) | |
| prompt = data.get("prompt") | |
| return f"您好,{prompt}" | |