mirror of
https://git.datalinker.icu/comfyanonymous/ComfyUI
synced 2026-09-06 13:47:08 +08:00
feat: add uv package
This commit is contained in:
parent
99885f4ae8
commit
bc1cd25462
122
cli.py
Normal file
122
cli.py
Normal file
@ -0,0 +1,122 @@
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
ComfyUI Command Line Interface
|
||||
"""
|
||||
|
||||
import os
|
||||
import sys
|
||||
import argparse
|
||||
from pathlib import Path
|
||||
|
||||
|
||||
def add_comfyui_to_path():
|
||||
"""Add the ComfyUI package directory to the Python path."""
|
||||
# In development mode, running from source directory
|
||||
if os.path.exists(os.path.join(os.path.dirname(__file__), "main.py")):
|
||||
comfyui_path = os.path.dirname(__file__)
|
||||
else:
|
||||
# In installed mode, comfyui module path
|
||||
comfyui_path = os.path.dirname(os.path.abspath(__file__))
|
||||
|
||||
if comfyui_path not in sys.path:
|
||||
sys.path.insert(0, comfyui_path)
|
||||
|
||||
|
||||
def get_parser():
|
||||
"""Create and return the argument parser for ComfyUI."""
|
||||
parser = argparse.ArgumentParser(
|
||||
description="ComfyUI - A Stable Diffusion GUI with a graph/nodes interface"
|
||||
)
|
||||
|
||||
parser.add_argument(
|
||||
"--host", type=str, default="127.0.0.1",
|
||||
help="The host to listen on (default: 127.0.0.1)"
|
||||
)
|
||||
parser.add_argument(
|
||||
"--port", type=int, default=8188,
|
||||
help="The port to listen on (default: 8188)"
|
||||
)
|
||||
parser.add_argument(
|
||||
"--enable-cors-header", type=str, default=None,
|
||||
help="Enable CORS by setting the Access-Control-Allow-Origin header (default: disabled)"
|
||||
)
|
||||
parser.add_argument(
|
||||
"--cuda-device", type=int, default=None,
|
||||
help="The CUDA device to use for inference (default: auto)"
|
||||
)
|
||||
parser.add_argument(
|
||||
"--disable-cuda-malloc", action="store_true",
|
||||
help="Force PyTorch to use standard memory allocator instead of cudaMallocAsync"
|
||||
)
|
||||
parser.add_argument(
|
||||
"--auto-launch", action="store_true",
|
||||
help="Open the UI in default browser at startup"
|
||||
)
|
||||
parser.add_argument(
|
||||
"--output-directory", type=str, default=None,
|
||||
help="Override the default output directory"
|
||||
)
|
||||
parser.add_argument(
|
||||
"--input-directory", type=str, default=None,
|
||||
help="Override the default input directory"
|
||||
)
|
||||
parser.add_argument(
|
||||
"--verbose", action="store_true",
|
||||
help="Enable verbose logging"
|
||||
)
|
||||
|
||||
return parser
|
||||
|
||||
|
||||
def main():
|
||||
"""Main entry point for the ComfyUI application."""
|
||||
add_comfyui_to_path()
|
||||
|
||||
parser = get_parser()
|
||||
args, unknown = parser.parse_known_args()
|
||||
|
||||
# Pass arguments to the original ComfyUI entry point
|
||||
sys.argv = [sys.argv[0]] + unknown
|
||||
|
||||
# Set environment variables based on arguments
|
||||
if args.cuda_device is not None:
|
||||
os.environ['CUDA_VISIBLE_DEVICES'] = str(args.cuda_device)
|
||||
os.environ['HIP_VISIBLE_DEVICES'] = str(args.cuda_device)
|
||||
|
||||
if args.disable_cuda_malloc:
|
||||
os.environ['PYTORCH_CUDA_ALLOC_CONF'] = 'backend:cudaMalloc'
|
||||
|
||||
# Import and run the main ComfyUI entry point
|
||||
import main
|
||||
|
||||
# Override command line arguments with the ones from our parser
|
||||
import comfy.cli_args
|
||||
comfy_args = comfy.cli_args.args
|
||||
|
||||
# Set args from our parser to the ComfyUI args object
|
||||
comfy_args.listen = args.host
|
||||
comfy_args.port = args.port
|
||||
comfy_args.enable_cors_header = args.enable_cors_header
|
||||
comfy_args.cuda_device = args.cuda_device
|
||||
comfy_args.disable_cuda_malloc = args.disable_cuda_malloc
|
||||
comfy_args.auto_launch = args.auto_launch
|
||||
|
||||
if args.output_directory:
|
||||
comfy_args.output_directory = args.output_directory
|
||||
if args.input_directory:
|
||||
comfy_args.input_directory = args.input_directory
|
||||
comfy_args.verbose = args.verbose
|
||||
|
||||
# Start ComfyUI
|
||||
asyncio_loop, _, start_all_func = main.start_comfyui()
|
||||
try:
|
||||
x = start_all_func()
|
||||
asyncio_loop.run_until_complete(x)
|
||||
except KeyboardInterrupt:
|
||||
print("\nStopped server")
|
||||
|
||||
main.cleanup_temp()
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Loading…
x
Reference in New Issue
Block a user