Compare commits

...

5 Commits

Author SHA1 Message Date
Gwangwon Jung
dd15653b2a
Merge 8dc9d9e812 into ff838657fa 2025-01-09 09:12:29 -05:00
Gwangwon Jung
8dc9d9e812
Merge branch 'comfyanonymous:master' into main 2025-01-09 18:54:35 +09:00
Pupbani
eeb20ac9d8 import location change, to shorter code 2025-01-02 09:21:13 +09:00
Pupbani
fa2c56ac60 delete-file endpoint remove 2024-12-30 16:01:10 +09:00
Pupbani
59844491b1 ### Title
Add image upload and delete endpoints in server.py

### Description
This pull request introduces new endpoints in `server.py` for uploading images in byte stream format and for deleting files.

### Changes Made
- Added an endpoint for uploading images: `POST /upload/image_stream`
- Added an endpoint for deleting files: `DELETE /delete-file`

### Notes
Please review the changes and let me know if any modifications are needed.
2024-12-30 15:40:16 +09:00

View File

@ -14,6 +14,7 @@ import struct
import ssl import ssl
import socket import socket
import ipaddress import ipaddress
import io,base64
from PIL import Image, ImageOps from PIL import Image, ImageOps
from PIL.PngImagePlugin import PngInfo from PIL.PngImagePlugin import PngInfo
from io import BytesIO from io import BytesIO
@ -329,11 +330,45 @@ class PromptServer():
else: else:
return web.Response(status=400) return web.Response(status=400)
def str2pil(img_str:str)->Image.Image:
"""
Convert Image Byte Stream to PIL Image
"""
img_data = base64.b64decode(img_str)
img_io = io.BytesIO(img_data)
img = Image.open(img_io)
return img
@routes.post("/upload/image") @routes.post("/upload/image")
async def upload_image(request): async def upload_image(request):
post = await request.post() post = await request.post()
return image_upload(post) return image_upload(post)
@routes.post("/upload/image_stream")
async def upload_image(request):
post = await request.post()
# Get Image Byte Stream
image = str2pil(post.get("img_str"))
file_name = post.get("file_name")
if not file_name.endswith((".png",".jpg")):
return web.Response(text="The file name must end in .jpg or .png.", status=400)
# PATH
if post.get("subfolder","") =="":
UPLOAD_PATH = os.path.join(os.getcwd(),post.get("type"),file_name)
else:
sub = post.get("subfolder")
sub_dir_path = os.path.join(os.getcwd(),post.get("type"),post.get("subfolder"))
os.makedirs(sub_dir_path,exist_ok=True)
UPLOAD_PATH = os.path.join(sub_dir_path,file_name)
image.save(UPLOAD_PATH)
return web.Response(status=200,text=f"Success Save Image PATH :{UPLOAD_PATH}")
@routes.post("/upload/mask") @routes.post("/upload/mask")
async def upload_mask(request): async def upload_mask(request):