60 lines
1.8 KiB
Python
60 lines
1.8 KiB
Python
#!/usr/bin/env python
|
|
|
|
import http.server
|
|
import socketserver
|
|
import argparse
|
|
|
|
parser = argparse.ArgumentParser()
|
|
parser.add_argument("-l", "--listen", type=str, default="localhost", help="Listen address for ComfyBox server")
|
|
parser.add_argument("-p", "--port", type=int, default=8000, help="Port for ComfyBox server")
|
|
args = parser.parse_args()
|
|
|
|
message = f"""Starting ComfyBox.
|
|
Be sure you've started ComfyUI already using this command:
|
|
|
|
python main.py --enable-cors-header
|
|
|
|
Serving at http://{args.listen}:{args.port}...
|
|
"""
|
|
|
|
# python -m http.server will sometimes send incorrect MIME types.
|
|
# But most people have a system python already installed so this method is most convenient.
|
|
# So here is a list of MIME types for the server to send back per file extension.
|
|
# Hopefully this will cover everything.
|
|
class HttpRequestHandler(http.server.SimpleHTTPRequestHandler):
|
|
extensions_map = {
|
|
"": "application/octet-stream",
|
|
".manifest": "text/cache-manifest",
|
|
".html": "text/html",
|
|
".png": "image/png",
|
|
".jpg": "image/jpg",
|
|
".jpeg": "image/jpeg",
|
|
".gif": "image/gif",
|
|
".svg": "image/svg+xml",
|
|
".css": "text/css",
|
|
".js": "application/x-javascript",
|
|
".mjs": "application/x-javascript",
|
|
".cjs": "application/x-javascript",
|
|
".wasm": "application/wasm",
|
|
".json": "application/json",
|
|
".xml": "application/xml",
|
|
".xml": "application/xml",
|
|
".pdf": "application/pdf",
|
|
".webp": "image/webp",
|
|
".avif": "image/avif",
|
|
".heic": "image/heic",
|
|
".heif": "image/heif",
|
|
".mp3": "audio/mpeg",
|
|
".mp4": "video/mp4",
|
|
".m4v": "video/mp4",
|
|
}
|
|
|
|
|
|
httpd = socketserver.TCPServer((args.listen, args.port), HttpRequestHandler)
|
|
|
|
try:
|
|
print(message)
|
|
httpd.serve_forever()
|
|
except KeyboardInterrupt:
|
|
pass
|