mirror of
https://github.com/comfyanonymous/ComfyUI.git
synced 2026-01-11 06:40:48 +08:00
PyInstaller
This commit is contained in:
parent
82edb2ff0e
commit
2400da51e5
@ -181,7 +181,7 @@ On macOS, install exactly Python 3.11 using `brew`, which you can download from
|
||||
|
||||
5. Then, run the following command to install `comfyui` into your current environment. This will correctly select the version of pytorch that matches the GPU on your machine (NVIDIA or CPU on Windows, NVIDIA AMD or CPU on Linux):
|
||||
```shell
|
||||
pip install -e .[test]
|
||||
pip install -e .[dev]
|
||||
```
|
||||
6. To run the web server:
|
||||
```shell
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
import argparse
|
||||
import configargparse as argparse
|
||||
import enum
|
||||
from . import options
|
||||
|
||||
@ -31,13 +31,14 @@ class EnumAction(argparse.Action):
|
||||
setattr(namespace, self.dest, value)
|
||||
|
||||
|
||||
parser = argparse.ArgumentParser()
|
||||
parser = argparse.ArgumentParser(default_config_files=['config.yaml', 'config.json'], auto_env_var_prefix='COMFYUI_')
|
||||
|
||||
parser.add_argument("--listen", type=str, default="127.0.0.1", metavar="IP", nargs="?", const="0.0.0.0", help="Specify the IP address to listen on (default: 127.0.0.1). If --listen is provided without an argument, it defaults to 0.0.0.0. (listens on all)")
|
||||
parser.add_argument('-c', '--config', required=False, default=None, is_config_file=True, help='Specify additional configuration files.')
|
||||
parser.add_argument('-w', "--cwd", type=str, default=None, help="Specify the working directory. If not set, this is the current working directory. models/, input/, output/ and other directories will be located here by default.")
|
||||
parser.add_argument('-H', "--listen", type=str, default="127.0.0.1", metavar="IP", nargs="?", const="0.0.0.0", help="Specify the IP address to listen on (default: 127.0.0.1). If --listen is provided without an argument, it defaults to 0.0.0.0. (listens on all)")
|
||||
parser.add_argument("--port", type=int, default=8188, help="Set the listen port.")
|
||||
parser.add_argument("--enable-cors-header", type=str, default=None, metavar="ORIGIN", nargs="?", const="*", help="Enable CORS (Cross-Origin Resource Sharing) with optional origin or allow all with default '*'.")
|
||||
parser.add_argument("--max-upload-size", type=float, default=100, help="Set the maximum upload size in MB.")
|
||||
|
||||
parser.add_argument("--extra-model-paths-config", type=str, default=None, metavar="PATH", nargs='+', action='append', help="Load one or more extra_model_paths.yaml files.")
|
||||
parser.add_argument("--output-directory", type=str, default=None, help="Set the ComfyUI output directory.")
|
||||
parser.add_argument("--temp-directory", type=str, default=None, help="Set the ComfyUI temp directory (default is in the ComfyUI directory).")
|
||||
|
||||
@ -2,12 +2,21 @@ import os
|
||||
import sys
|
||||
import time
|
||||
|
||||
from ..cli_args import args
|
||||
|
||||
supported_pt_extensions = set(['.ckpt', '.pt', '.bin', '.pth', '.safetensors'])
|
||||
|
||||
folder_names_and_paths = {}
|
||||
|
||||
if 'main.py' in sys.argv:
|
||||
base_path = os.path.realpath(os.path.join(os.path.dirname(os.path.realpath(__file__)), "../.."))
|
||||
elif args.cwd:
|
||||
if not os.path.exists(args.cwd):
|
||||
try:
|
||||
os.makedirs(args.cwd)
|
||||
except:
|
||||
print("Failed to create custom working directory")
|
||||
base_path = args.cwd
|
||||
else:
|
||||
base_path = os.getcwd()
|
||||
models_dir = os.path.join(base_path, "models")
|
||||
@ -21,24 +30,18 @@ folder_names_and_paths["style_models"] = ([os.path.join(models_dir, "style_model
|
||||
folder_names_and_paths["embeddings"] = ([os.path.join(models_dir, "embeddings")], supported_pt_extensions)
|
||||
folder_names_and_paths["diffusers"] = ([os.path.join(models_dir, "diffusers")], ["folder"])
|
||||
folder_names_and_paths["vae_approx"] = ([os.path.join(models_dir, "vae_approx")], supported_pt_extensions)
|
||||
|
||||
folder_names_and_paths["controlnet"] = ([os.path.join(models_dir, "controlnet"), os.path.join(models_dir, "t2i_adapter")], supported_pt_extensions)
|
||||
folder_names_and_paths["gligen"] = ([os.path.join(models_dir, "gligen")], supported_pt_extensions)
|
||||
|
||||
folder_names_and_paths["upscale_models"] = ([os.path.join(models_dir, "upscale_models")], supported_pt_extensions)
|
||||
|
||||
folder_names_and_paths["custom_nodes"] = ([os.path.join(base_path, "custom_nodes")], [])
|
||||
|
||||
folder_names_and_paths["hypernetworks"] = ([os.path.join(models_dir, "hypernetworks")], supported_pt_extensions)
|
||||
|
||||
folder_names_and_paths["photomaker"] = ([os.path.join(models_dir, "photomaker")], supported_pt_extensions)
|
||||
|
||||
folder_names_and_paths["classifiers"] = ([os.path.join(models_dir, "classifiers")], {""})
|
||||
|
||||
output_directory = os.path.join(base_path, "output")
|
||||
temp_directory = os.path.join(base_path, "temp")
|
||||
input_directory = os.path.join(base_path, "input")
|
||||
user_directory = os.path.join(os.path.dirname(os.path.realpath(__file__)), "user")
|
||||
user_directory = os.path.join(base_path, "user")
|
||||
|
||||
filename_list_cache = {}
|
||||
|
||||
@ -250,7 +253,7 @@ def get_save_image_path(filename_prefix, output_dir, image_width=0, image_height
|
||||
err = "**** ERROR: Saving image outside the output folder is not allowed." + \
|
||||
"\n full_output_folder: " + os.path.abspath(full_output_folder) + \
|
||||
"\n output_dir: " + output_dir + \
|
||||
"\n commonpath: " + os.path.commonpath((output_dir, os.path.abspath(full_output_folder)))
|
||||
"\n commonpath: " + os.path.commonpath((output_dir, os.path.abspath(full_output_folder)))
|
||||
print(err)
|
||||
raise Exception(err)
|
||||
|
||||
|
||||
3
requirements-dev.txt
Normal file
3
requirements-dev.txt
Normal file
@ -0,0 +1,3 @@
|
||||
pytest
|
||||
websocket-client==1.6.1
|
||||
PyInstaller
|
||||
@ -1,2 +0,0 @@
|
||||
pytest
|
||||
websocket-client==1.6.1
|
||||
@ -28,4 +28,5 @@ scipy
|
||||
tqdm
|
||||
protobuf==3.20.3
|
||||
psutil
|
||||
mypy>=1.6.0
|
||||
mypy>=1.6.0
|
||||
ConfigArgParse
|
||||
6
setup.py
6
setup.py
@ -151,7 +151,7 @@ def dependencies() -> List[str]:
|
||||
package_data = ['sd1_tokenizer/*', '**/*.json', '**/*.yaml']
|
||||
if not is_editable:
|
||||
package_data.append('comfy/web/**/*')
|
||||
test_dependencies = open(os.path.join(os.path.dirname(__file__), "requirements-tests.txt")).readlines()
|
||||
dev_dependencies = open(os.path.join(os.path.dirname(__file__), "requirements-dev.txt")).readlines()
|
||||
setup(
|
||||
name=package_name,
|
||||
description="",
|
||||
@ -173,8 +173,8 @@ setup(
|
||||
package_data={
|
||||
'comfy': package_data
|
||||
},
|
||||
tests_require=test_dependencies,
|
||||
tests_require=dev_dependencies,
|
||||
extras_require={
|
||||
'test': test_dependencies
|
||||
'dev': dev_dependencies
|
||||
},
|
||||
)
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
|
||||
Additional requirements for running tests:
|
||||
```
|
||||
pip install .[test]
|
||||
pip install .[dev]
|
||||
```
|
||||
Run inference tests:
|
||||
```
|
||||
|
||||
Loading…
Reference in New Issue
Block a user