diff --git a/bin/run.bat b/bin/run.bat index c46f9e3..e715560 100644 --- a/bin/run.bat +++ b/bin/run.bat @@ -1,11 +1,4 @@ @echo off -echo Starting ComfyBox. -echo Be sure you've started ComfyUI already using this command: -echo[ -echo python main.py --enable-cors-header -echo[ -echo Serving at http://localhost:8000 -echo[ - -python -m http.server 8000 +cd /D "%~dp0" +python serve.py diff --git a/bin/run.sh b/bin/run.sh index c121467..cc89916 100644 --- a/bin/run.sh +++ b/bin/run.sh @@ -1,11 +1,4 @@ #!/usr/bin/env sh -echo "Starting ComfyBox." -echo "Be sure you've started ComfyUI already using this command:" -echo "" -echo " python main.py --enable-cors-header" -echo "" -echo "Serving at http://localhost:8000" -echo "" - -python -m http.server 8000 +cd "${0%/*}" +python serve.py diff --git a/bin/serve.py b/bin/serve.py new file mode 100644 index 0000000..4bcb5ca --- /dev/null +++ b/bin/serve.py @@ -0,0 +1,52 @@ +#!/usr/bin/env python + +import http.server +import socketserver + +PORT = 8000 + +message = f"""Starting ComfyBox. +Be sure you've started ComfyUI already using this command: + + python main.py --enable-cors-header + +Serving at http://localhost:{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', + '.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(("localhost", PORT), HttpRequestHandler) + +try: + print(message) + httpd.serve_forever() +except KeyboardInterrupt: + pass diff --git a/vite.config.ts b/vite.config.ts index e90ec15..4a7cb9f 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -22,6 +22,10 @@ export default defineConfig({ svelte(), viteStaticCopy({ targets: [ + { + src: 'bin/serve.py', + dest: './' + }, { src: 'bin/run.sh', dest: './'