comfy-cli 1.3.2__tar.gz → 1.3.4__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {comfy_cli-1.3.2 → comfy_cli-1.3.4}/PKG-INFO +2 -1
- {comfy_cli-1.3.2 → comfy_cli-1.3.4}/comfy_cli/cmdline.py +1 -1
- {comfy_cli-1.3.2 → comfy_cli-1.3.4}/comfy_cli/command/custom_nodes/command.py +7 -3
- {comfy_cli-1.3.2 → comfy_cli-1.3.4}/comfy_cli/command/install.py +7 -2
- {comfy_cli-1.3.2 → comfy_cli-1.3.4}/comfy_cli/constants.py +1 -0
- {comfy_cli-1.3.2 → comfy_cli-1.3.4}/comfy_cli/file_utils.py +21 -12
- {comfy_cli-1.3.2 → comfy_cli-1.3.4}/comfy_cli.egg-info/PKG-INFO +2 -1
- {comfy_cli-1.3.2 → comfy_cli-1.3.4}/comfy_cli.egg-info/requires.txt +1 -0
- {comfy_cli-1.3.2 → comfy_cli-1.3.4}/pyproject.toml +3 -3
- {comfy_cli-1.3.2 → comfy_cli-1.3.4}/LICENSE +0 -0
- {comfy_cli-1.3.2 → comfy_cli-1.3.4}/README.md +0 -0
- {comfy_cli-1.3.2 → comfy_cli-1.3.4}/comfy_cli/__init__.py +0 -0
- {comfy_cli-1.3.2 → comfy_cli-1.3.4}/comfy_cli/__main__.py +0 -0
- {comfy_cli-1.3.2 → comfy_cli-1.3.4}/comfy_cli/command/__init__.py +0 -0
- {comfy_cli-1.3.2 → comfy_cli-1.3.4}/comfy_cli/command/custom_nodes/__init__.py +0 -0
- {comfy_cli-1.3.2 → comfy_cli-1.3.4}/comfy_cli/command/custom_nodes/bisect_custom_nodes.py +0 -0
- {comfy_cli-1.3.2 → comfy_cli-1.3.4}/comfy_cli/command/custom_nodes/cm_cli_util.py +0 -0
- {comfy_cli-1.3.2 → comfy_cli-1.3.4}/comfy_cli/command/launch.py +0 -0
- {comfy_cli-1.3.2 → comfy_cli-1.3.4}/comfy_cli/command/models/models.py +0 -0
- {comfy_cli-1.3.2 → comfy_cli-1.3.4}/comfy_cli/command/run.py +0 -0
- {comfy_cli-1.3.2 → comfy_cli-1.3.4}/comfy_cli/config_manager.py +0 -0
- {comfy_cli-1.3.2 → comfy_cli-1.3.4}/comfy_cli/env_checker.py +0 -0
- {comfy_cli-1.3.2 → comfy_cli-1.3.4}/comfy_cli/git_utils.py +0 -0
- {comfy_cli-1.3.2 → comfy_cli-1.3.4}/comfy_cli/logging.py +0 -0
- {comfy_cli-1.3.2 → comfy_cli-1.3.4}/comfy_cli/registry/__init__.py +0 -0
- {comfy_cli-1.3.2 → comfy_cli-1.3.4}/comfy_cli/registry/api.py +0 -0
- {comfy_cli-1.3.2 → comfy_cli-1.3.4}/comfy_cli/registry/config_parser.py +0 -0
- {comfy_cli-1.3.2 → comfy_cli-1.3.4}/comfy_cli/registry/types.py +0 -0
- {comfy_cli-1.3.2 → comfy_cli-1.3.4}/comfy_cli/standalone.py +0 -0
- {comfy_cli-1.3.2 → comfy_cli-1.3.4}/comfy_cli/tracking.py +0 -0
- {comfy_cli-1.3.2 → comfy_cli-1.3.4}/comfy_cli/typing.py +0 -0
- {comfy_cli-1.3.2 → comfy_cli-1.3.4}/comfy_cli/ui.py +0 -0
- {comfy_cli-1.3.2 → comfy_cli-1.3.4}/comfy_cli/update.py +0 -0
- {comfy_cli-1.3.2 → comfy_cli-1.3.4}/comfy_cli/utils.py +0 -0
- {comfy_cli-1.3.2 → comfy_cli-1.3.4}/comfy_cli/uv.py +0 -0
- {comfy_cli-1.3.2 → comfy_cli-1.3.4}/comfy_cli/workspace_manager.py +0 -0
- {comfy_cli-1.3.2 → comfy_cli-1.3.4}/comfy_cli.egg-info/SOURCES.txt +0 -0
- {comfy_cli-1.3.2 → comfy_cli-1.3.4}/comfy_cli.egg-info/dependency_links.txt +0 -0
- {comfy_cli-1.3.2 → comfy_cli-1.3.4}/comfy_cli.egg-info/entry_points.txt +0 -0
- {comfy_cli-1.3.2 → comfy_cli-1.3.4}/comfy_cli.egg-info/top_level.txt +0 -0
- {comfy_cli-1.3.2 → comfy_cli-1.3.4}/setup.cfg +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: comfy-cli
|
|
3
|
-
Version: 1.3.
|
|
3
|
+
Version: 1.3.4
|
|
4
4
|
Summary: A CLI tool for installing and using ComfyUI.
|
|
5
5
|
Maintainer-email: Yoland Yan <yoland@drip.art>, James Kwon <hongilkwon316@gmail.com>, Robin Huang <robin@drip.art>, "Dr.Lt.Data" <dr.lt.data@gmail.com>
|
|
6
6
|
License: GPL-3.0-only
|
|
@@ -34,6 +34,7 @@ Provides-Extra: dev
|
|
|
34
34
|
Requires-Dist: pre-commit; extra == "dev"
|
|
35
35
|
Requires-Dist: pytest; extra == "dev"
|
|
36
36
|
Requires-Dist: ruff; extra == "dev"
|
|
37
|
+
Requires-Dist: pytest-cov; extra == "dev"
|
|
37
38
|
|
|
38
39
|
# Comfy-Cli: A Command Line Tool for ComfyUI
|
|
39
40
|
|
|
@@ -198,7 +198,7 @@ def install(
|
|
|
198
198
|
callback=g_gpu_exclusivity.validate,
|
|
199
199
|
),
|
|
200
200
|
] = None,
|
|
201
|
-
cuda_version: Annotated[CUDAVersion, typer.Option(show_default=True)] = CUDAVersion.
|
|
201
|
+
cuda_version: Annotated[CUDAVersion, typer.Option(show_default=True)] = CUDAVersion.v12_4,
|
|
202
202
|
amd: Annotated[
|
|
203
203
|
Optional[bool],
|
|
204
204
|
typer.Option(
|
|
@@ -706,13 +706,17 @@ def validate_node_for_publishing():
|
|
|
706
706
|
typer.echo("Running security checks...")
|
|
707
707
|
try:
|
|
708
708
|
# Run ruff check with security rules and --exit-zero to only warn
|
|
709
|
-
cmd = ["ruff", "check", ".", "-q", "--select", "S102,S307", "--exit-zero"]
|
|
709
|
+
cmd = ["ruff", "check", ".", "-q", "--select", "S102,S307,E702", "--exit-zero"]
|
|
710
710
|
result = subprocess.run(cmd, capture_output=True, text=True)
|
|
711
711
|
|
|
712
712
|
if result.stdout:
|
|
713
713
|
print("[yellow]Security warnings found:[/yellow]")
|
|
714
714
|
print(result.stdout)
|
|
715
|
-
print(
|
|
715
|
+
print(
|
|
716
|
+
"[bold yellow]We will soon disable exec and eval, and multiple statements in a single line, so this will be an error soon.[/bold yellow]"
|
|
717
|
+
)
|
|
718
|
+
else:
|
|
719
|
+
print("[green]✓ All validation checks passed successfully[/green]")
|
|
716
720
|
|
|
717
721
|
except FileNotFoundError:
|
|
718
722
|
print("[red]Ruff is not installed. Please install it with 'pip install ruff'[/red]")
|
|
@@ -731,7 +735,7 @@ def validate():
|
|
|
731
735
|
Run validation checks that would be performed during publishing.
|
|
732
736
|
"""
|
|
733
737
|
validate_node_for_publishing()
|
|
734
|
-
print("[green]✓ All validation checks passed successfully[/green]")
|
|
738
|
+
# print("[green]✓ All validation checks passed successfully[/green]")
|
|
735
739
|
|
|
736
740
|
|
|
737
741
|
@app.command("publish", help="Publish node to registry")
|
|
@@ -68,7 +68,12 @@ def pip_install_comfyui_dependencies(
|
|
|
68
68
|
"torchvision",
|
|
69
69
|
"torchaudio",
|
|
70
70
|
]
|
|
71
|
-
if plat == constants.OS.WINDOWS and cuda_version == constants.CUDAVersion.
|
|
71
|
+
if plat == constants.OS.WINDOWS and cuda_version == constants.CUDAVersion.v12_4:
|
|
72
|
+
base_command += [
|
|
73
|
+
"--extra-index-url",
|
|
74
|
+
"https://download.pytorch.org/whl/cu124",
|
|
75
|
+
]
|
|
76
|
+
elif plat == constants.OS.WINDOWS and cuda_version == constants.CUDAVersion.v12_1:
|
|
72
77
|
base_command += [
|
|
73
78
|
"--extra-index-url",
|
|
74
79
|
"https://download.pytorch.org/whl/cu121",
|
|
@@ -159,7 +164,7 @@ def execute(
|
|
|
159
164
|
commit: Optional[str] = None,
|
|
160
165
|
manager_commit: Optional[str] = None,
|
|
161
166
|
gpu: constants.GPU_OPTION = None,
|
|
162
|
-
cuda_version: constants.CUDAVersion = constants.CUDAVersion.
|
|
167
|
+
cuda_version: constants.CUDAVersion = constants.CUDAVersion.v12_4,
|
|
163
168
|
plat: constants.OS = None,
|
|
164
169
|
skip_torch_or_directml: bool = False,
|
|
165
170
|
skip_requirement: bool = False,
|
|
@@ -6,7 +6,6 @@ from typing import Optional
|
|
|
6
6
|
|
|
7
7
|
import httpx
|
|
8
8
|
import requests
|
|
9
|
-
from pathspec import pathspec
|
|
10
9
|
|
|
11
10
|
from comfy_cli import ui
|
|
12
11
|
|
|
@@ -90,15 +89,26 @@ def download_file(url: str, local_filepath: pathlib.Path, headers: Optional[dict
|
|
|
90
89
|
|
|
91
90
|
|
|
92
91
|
def zip_files(zip_filename):
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
gitignore = file.read()
|
|
92
|
+
"""
|
|
93
|
+
Zip all files in the current directory that are tracked by git.
|
|
94
|
+
"""
|
|
95
|
+
try:
|
|
96
|
+
# Get list of git-tracked files using git ls-files
|
|
97
|
+
import subprocess
|
|
100
98
|
|
|
101
|
-
|
|
99
|
+
git_files = subprocess.check_output(["git", "ls-files"], text=True).splitlines()
|
|
100
|
+
# Zip only git-tracked files
|
|
101
|
+
with zipfile.ZipFile(zip_filename, "w", zipfile.ZIP_DEFLATED) as zipf:
|
|
102
|
+
for file_path in git_files:
|
|
103
|
+
if zip_filename in file_path:
|
|
104
|
+
continue
|
|
105
|
+
if os.path.exists(file_path):
|
|
106
|
+
zipf.write(file_path)
|
|
107
|
+
else:
|
|
108
|
+
print(f"File not found. Not including in zip: {file_path}")
|
|
109
|
+
return
|
|
110
|
+
except (subprocess.SubprocessError, FileNotFoundError):
|
|
111
|
+
print("Warning: Not in a git repository or git not installed. Zipping all files.")
|
|
102
112
|
|
|
103
113
|
with zipfile.ZipFile(zip_filename, "w", zipfile.ZIP_DEFLATED) as zipf:
|
|
104
114
|
for root, dirs, files in os.walk("."):
|
|
@@ -110,14 +120,13 @@ def zip_files(zip_filename):
|
|
|
110
120
|
if zip_filename in file_path:
|
|
111
121
|
continue
|
|
112
122
|
relative_path = os.path.relpath(file_path, start=".")
|
|
113
|
-
|
|
114
|
-
zipf.write(file_path, relative_path)
|
|
123
|
+
zipf.write(file_path, relative_path)
|
|
115
124
|
|
|
116
125
|
|
|
117
126
|
def upload_file_to_signed_url(signed_url: str, file_path: str):
|
|
118
127
|
try:
|
|
119
128
|
with open(file_path, "rb") as f:
|
|
120
|
-
headers = {"Content-Type": "application/
|
|
129
|
+
headers = {"Content-Type": "application/zip"}
|
|
121
130
|
response = requests.put(signed_url, data=f, headers=headers)
|
|
122
131
|
|
|
123
132
|
# Simple success check
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: comfy-cli
|
|
3
|
-
Version: 1.3.
|
|
3
|
+
Version: 1.3.4
|
|
4
4
|
Summary: A CLI tool for installing and using ComfyUI.
|
|
5
5
|
Maintainer-email: Yoland Yan <yoland@drip.art>, James Kwon <hongilkwon316@gmail.com>, Robin Huang <robin@drip.art>, "Dr.Lt.Data" <dr.lt.data@gmail.com>
|
|
6
6
|
License: GPL-3.0-only
|
|
@@ -34,6 +34,7 @@ Provides-Extra: dev
|
|
|
34
34
|
Requires-Dist: pre-commit; extra == "dev"
|
|
35
35
|
Requires-Dist: pytest; extra == "dev"
|
|
36
36
|
Requires-Dist: ruff; extra == "dev"
|
|
37
|
+
Requires-Dist: pytest-cov; extra == "dev"
|
|
37
38
|
|
|
38
39
|
# Comfy-Cli: A Command Line Tool for ComfyUI
|
|
39
40
|
|
|
@@ -5,7 +5,7 @@ build-backend = "setuptools.build_meta"
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "comfy-cli"
|
|
7
7
|
license = { text = "GPL-3.0-only" }
|
|
8
|
-
version = "v1.3.
|
|
8
|
+
version = "v1.3.4" # Will be filled in by the CI/CD pipeline. Check publish_package.py.
|
|
9
9
|
requires-python = ">= 3.9"
|
|
10
10
|
description = "A CLI tool for installing and using ComfyUI."
|
|
11
11
|
readme = "README.md"
|
|
@@ -46,7 +46,7 @@ dependencies = [
|
|
|
46
46
|
]
|
|
47
47
|
|
|
48
48
|
[project.optional-dependencies]
|
|
49
|
-
dev = ["pre-commit", "pytest", "ruff"]
|
|
49
|
+
dev = ["pre-commit", "pytest", "ruff", "pytest-cov"]
|
|
50
50
|
|
|
51
51
|
[project.scripts]
|
|
52
52
|
comfy = "comfy_cli.__main__:main"
|
|
@@ -62,7 +62,7 @@ include = ["comfy_cli*"]
|
|
|
62
62
|
|
|
63
63
|
[tool.ruff]
|
|
64
64
|
line-length = 120
|
|
65
|
-
target-version = "v1.3.
|
|
65
|
+
target-version = "v1.3.4"
|
|
66
66
|
|
|
67
67
|
[tool.ruff.lint]
|
|
68
68
|
select = [
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|