feat: support new frontend!
This commit is contained in:
parent
f6ea252652
commit
10268825d9
@ -17,12 +17,13 @@ from urllib.parse import quote
|
||||
import threading
|
||||
import hashlib
|
||||
import aiohttp
|
||||
from aiohttp import ClientSession, web
|
||||
import aiofiles
|
||||
from typing import Dict, List, Union, Any, Optional
|
||||
from PIL import Image
|
||||
import copy
|
||||
import struct
|
||||
from aiohttp import ClientError
|
||||
from aiohttp import web, ClientSession, ClientError
|
||||
import atexit
|
||||
|
||||
# Global session
|
||||
@ -835,7 +836,51 @@ async def send(event, data, sid=None):
|
||||
except Exception as e:
|
||||
logger.info(f"Exception: {e}")
|
||||
traceback.print_exc()
|
||||
|
||||
@server.PromptServer.instance.routes.get('/comfydeploy/{tail:.*}')
|
||||
@server.PromptServer.instance.routes.post('/comfydeploy/{tail:.*}')
|
||||
async def proxy_to_comfydeploy(request):
|
||||
# Get the base URL
|
||||
base_url = f'https://www.comfydeploy.com/{request.match_info["tail"]}'
|
||||
|
||||
# Get all query parameters
|
||||
query_params = request.query_string
|
||||
|
||||
# Construct the full target URL with query parameters
|
||||
target_url = f"{base_url}?{query_params}" if query_params else base_url
|
||||
|
||||
print(f"Proxying request to: {target_url}")
|
||||
|
||||
try:
|
||||
# Create a new ClientSession for each request
|
||||
async with ClientSession() as client_session:
|
||||
# Forward the request
|
||||
client_req = await client_session.request(
|
||||
method=request.method,
|
||||
url=target_url,
|
||||
headers={k: v for k, v in request.headers.items() if k.lower() not in ('host', 'content-length')},
|
||||
data=await request.read(),
|
||||
allow_redirects=False,
|
||||
)
|
||||
|
||||
# Read the entire response content
|
||||
content = await client_req.read()
|
||||
|
||||
# Try to decode the content as JSON
|
||||
try:
|
||||
json_data = json.loads(content)
|
||||
# If successful, return a JSON response
|
||||
return web.json_response(json_data, status=client_req.status)
|
||||
except json.JSONDecodeError:
|
||||
# If it's not valid JSON, return the content as-is
|
||||
return web.Response(body=content, status=client_req.status, headers=client_req.headers)
|
||||
|
||||
except ClientError as e:
|
||||
print(f"Client error occurred while proxying request: {str(e)}")
|
||||
return web.Response(status=502, text=f"Bad Gateway: {str(e)}")
|
||||
except Exception as e:
|
||||
print(f"Error occurred while proxying request: {str(e)}")
|
||||
return web.Response(status=500, text=f"Internal Server Error: {str(e)}")
|
||||
|
||||
|
||||
prompt_server = server.PromptServer.instance
|
||||
|
@ -2,4 +2,5 @@ aiofiles
|
||||
pydantic
|
||||
opencv-python
|
||||
imageio-ffmpeg
|
||||
brotli
|
||||
# logfire
|
2196
web-plugin/index.js
2196
web-plugin/index.js
File diff suppressed because it is too large
Load Diff
Loading…
x
Reference in New Issue
Block a user