mirror of
https://github.com/comfyanonymous/ComfyUI.git
synced 2026-01-10 06:10:50 +08:00
309 lines
8.2 KiB
TOML
309 lines
8.2 KiB
TOML
[project]
|
|
name = "comfyui"
|
|
version = "0.3.66"
|
|
description = "An installable version of ComfyUI"
|
|
readme = "README.md"
|
|
authors = [
|
|
{ name = "Contributors_of_ComfyUI" },
|
|
]
|
|
requires-python = ">=3.10"
|
|
license = { text = "GPL-3.0-or-later" }
|
|
classifiers = [
|
|
"Programming Language :: Python :: 3",
|
|
"Programming Language :: Python :: 3.10",
|
|
"Programming Language :: Python :: 3.11",
|
|
"Programming Language :: Python :: 3.12",
|
|
"Programming Language :: Python :: 3.13",
|
|
"Operating System :: OS Independent",
|
|
]
|
|
|
|
dependencies = [
|
|
"comfyui-frontend-package>=1.28.7",
|
|
"comfyui-workflow-templates>=0.1.95,<0.3.0",
|
|
"comfyui-embedded-docs>=0.3.0",
|
|
"torch",
|
|
"torchvision",
|
|
"torchdiffeq>=0.2.3",
|
|
"torchsde>=0.2.6",
|
|
"einops>=0.6.0",
|
|
"open-clip-torch>=2.24.0",
|
|
"transformers>=4.46.0,!=4.53.0,!=4.53.1,!=4.53.2,!=4.57.0",
|
|
"tokenizers>=0.13.3",
|
|
"sentencepiece",
|
|
"peft>=0.10.0",
|
|
"torchinfo",
|
|
"safetensors>=0.4.2",
|
|
"aiohttp>=3.11.8",
|
|
"yarl>=1.9.4",
|
|
"accelerate>=0.25.0",
|
|
"pyyaml>=6.0",
|
|
"scikit-image>=0.20.0",
|
|
"jsonmerge>=1.9.0",
|
|
"clean-fid>=0.1.35",
|
|
"resize-right>=0.0.2",
|
|
"opencv-python-headless>=4.9.0.80",
|
|
"albumentations>=1.3.0",
|
|
"aiofiles>=23.1.0",
|
|
"frozendict>=2.3.6",
|
|
"python-dateutil>=2.8.2",
|
|
"importlib_resources",
|
|
"Pillow",
|
|
"scipy",
|
|
"tqdm",
|
|
"protobuf>=3.20.0,<5.0.0",
|
|
"psutil",
|
|
"ConfigArgParse>=1.7.1",
|
|
"aio-pika",
|
|
"pyjwt[crypto]",
|
|
"kornia>=0.7.0",
|
|
"mpmath>=1.0,!=1.4.0a0",
|
|
"huggingface_hub[hf_xet]>=0.32.0",
|
|
"lazy-object-proxy",
|
|
"lazy_loader>=0.3",
|
|
"can_ada",
|
|
"fsspec",
|
|
"natsort",
|
|
"OpenEXR",
|
|
"opentelemetry-distro",
|
|
"opentelemetry-sdk",
|
|
"opentelemetry-exporter-otlp",
|
|
"opentelemetry-propagator-jaeger",
|
|
"opentelemetry-instrumentation",
|
|
"opentelemetry-util-http",
|
|
"opentelemetry-instrumentation-aio-pika",
|
|
"opentelemetry-instrumentation-requests",
|
|
"opentelemetry-instrumentation-aiohttp-server",
|
|
"opentelemetry-instrumentation-aiohttp-client",
|
|
"opentelemetry-instrumentation-asyncio",
|
|
"opentelemetry-instrumentation-urllib3",
|
|
"opentelemetry-processor-baggage",
|
|
"opentelemetry-semantic-conventions",
|
|
"wrapt>=1.16.0",
|
|
"certifi",
|
|
"spandrel>=0.3.4",
|
|
# https://github.com/conda-forge/numba-feedstock/issues/158 until numba is released with support for a later version of numpy
|
|
"numpy>=1.24.4,<2.3",
|
|
"soundfile",
|
|
"watchdog",
|
|
"PySoundFile",
|
|
"networkx>=2.6.3",
|
|
"joblib",
|
|
"jaxtyping",
|
|
"spandrel_extra_arches",
|
|
"ml_dtypes",
|
|
"diffusers>=0.30.1",
|
|
"vtracer",
|
|
"skia-python",
|
|
"pebble>=5.0.7",
|
|
"openai",
|
|
"anthropic",
|
|
"humanize",
|
|
"lightning",
|
|
"flax",
|
|
"jax",
|
|
"colour",
|
|
"av>=14.2.0,<16",
|
|
"pydantic~=2.0",
|
|
"pydantic-settings~=2.0",
|
|
"typer",
|
|
"ijson",
|
|
"scikit-learn>=1.4.1",
|
|
# everything that is a torch extension will need setuptools, so just include it
|
|
"setuptools",
|
|
"alembic",
|
|
"SQLAlchemy",
|
|
"gguf",
|
|
"trimesh",
|
|
# doesn't support linux correctly yet
|
|
"stringzilla<4.2.0",
|
|
"requests_cache",
|
|
"universal_pathlib",
|
|
# yanked propcache is omitted
|
|
"propcache!=0.4.0",
|
|
]
|
|
|
|
[build-system]
|
|
requires = ["hatchling"]
|
|
build-backend = "hatchling.build"
|
|
|
|
[tool.setuptools.packages.find]
|
|
where = ["."]
|
|
include = ["comfy*"]
|
|
namespaces = false
|
|
|
|
[project.optional-dependencies]
|
|
dev = [
|
|
"pytest",
|
|
"pytest-asyncio",
|
|
"pytest-mock",
|
|
"pytest-aiohttp",
|
|
"pytest-xdist",
|
|
"websocket-client>=1.6.1",
|
|
"PyInstaller",
|
|
"testcontainers",
|
|
"testcontainers-rabbitmq",
|
|
"mypy>=1.6.0",
|
|
"freezegun",
|
|
"coverage",
|
|
"pylint",
|
|
"astroid",
|
|
]
|
|
|
|
cpu = [
|
|
"torch",
|
|
"torchvision",
|
|
"torchaudio",
|
|
]
|
|
|
|
cu126 = [
|
|
"torch",
|
|
"torchvision",
|
|
"triton ; sys_platform == 'Linux'",
|
|
"triton-windows ; sys_platform == 'win32'",
|
|
# "torchaudio",
|
|
]
|
|
|
|
cu128 = [
|
|
"torch",
|
|
"torchvision",
|
|
"triton ; sys_platform == 'Linux'",
|
|
"triton-windows ; sys_platform == 'win32'",
|
|
# "torchaudio",
|
|
]
|
|
|
|
rocm = [
|
|
"torch",
|
|
"torchvision",
|
|
# "torchaudio",
|
|
"pytorch-triton-rocm",
|
|
]
|
|
|
|
# todo: wip for rocm libraries with Windows and better RDNA support when installing with uv
|
|
# you'll need to look at the github actions workflow to see how this is done for e.g. an RX 7600
|
|
# therock = [
|
|
# "rocm[libraries,devel] ; sys_platform != 'Darwin'",
|
|
# ]
|
|
|
|
mps = [
|
|
"torch",
|
|
"torchvision",
|
|
# "torchaudio",
|
|
]
|
|
|
|
attention = [
|
|
"sageattention==2.2.0 ; sys_platform == 'Linux' or sys_platform == 'win32'",
|
|
"flash_attn ; sys_platform == 'Linux'",
|
|
]
|
|
|
|
comfyui-manager = [
|
|
"GitPython",
|
|
"PyGithub",
|
|
"matrix-client==0.4.0",
|
|
"rich",
|
|
"typing-extensions",
|
|
"toml",
|
|
"uv",
|
|
"chardet",
|
|
"pip",
|
|
]
|
|
|
|
[project.scripts]
|
|
comfyui = "comfy.cmd.main:entrypoint"
|
|
comfyui-worker = "comfy.entrypoints.worker:entrypoint"
|
|
comfyui-workflow = "comfy.entrypoints.workflow:entrypoint"
|
|
|
|
[project.urls]
|
|
Homepage = "https://github.com/comfyanonymous/ComfyUI"
|
|
Repository = "https://github.com/comfyanonymous/ComfyUI"
|
|
|
|
[tool.uv]
|
|
conflicts = [
|
|
[{ extra = "cpu" }, { extra = "cu126" }, { extra = "cu128" }, { extra = "rocm" }, { extra = "mps" }],
|
|
]
|
|
no-build-isolation-package = [
|
|
"sageattention",
|
|
"sage-attention",
|
|
"flash_attn",
|
|
]
|
|
prerelease = "allow"
|
|
|
|
[[tool.uv.index]]
|
|
name = "pytorch-cpu"
|
|
url = "https://download.pytorch.org/whl/cpu"
|
|
explicit = true
|
|
|
|
[[tool.uv.index]]
|
|
name = "pytorch-cu126"
|
|
url = "https://download.pytorch.org/whl/cu126"
|
|
explicit = true
|
|
|
|
[[tool.uv.index]]
|
|
name = "pytorch-cu128"
|
|
url = "https://download.pytorch.org/whl/cu128"
|
|
explicit = true
|
|
|
|
[[tool.uv.index]]
|
|
name = "pytorch-rocm"
|
|
url = "https://repo.radeon.com/rocm/manylinux/rocm-rel-7.0/"
|
|
format = "flat"
|
|
explicit = false
|
|
|
|
[[tool.uv.index]]
|
|
name = "pytorch-nightly-cpu"
|
|
url = "https://download.pytorch.org/whl/nightly/cpu"
|
|
explicit = true
|
|
|
|
[tool.uv.sources]
|
|
torch = [
|
|
{ index = "pytorch-cpu", extra = "cpu" },
|
|
{ index = "pytorch-cu126", extra = "cu126", marker = "sys_platform == 'Linux' or sys_platform == 'win32'" },
|
|
{ index = "pytorch-cu128", extra = "cu128", marker = "sys_platform == 'Linux' or sys_platform == 'win32'" },
|
|
{ index = "pytorch-rocm", extra = "rocm", marker = "sys_platform == 'Linux'" },
|
|
{ index = "pytorch-nightly-cpu", extra = "mps", marker = "sys_platform == 'darwin'" },
|
|
]
|
|
torchvision = [
|
|
{ index = "pytorch-cpu", extra = "cpu" },
|
|
{ index = "pytorch-cu126", extra = "cu126", marker = "sys_platform == 'Linux' or sys_platform == 'win32'" },
|
|
{ index = "pytorch-cu128", extra = "cu128", marker = "sys_platform == 'Linux' or sys_platform == 'win32'" },
|
|
{ index = "pytorch-rocm", extra = "rocm", marker = "sys_platform == 'Linux'" },
|
|
{ index = "pytorch-nightly-cpu", extra = "mps", marker = "sys_platform == 'darwin'" },
|
|
]
|
|
torchaudio = [
|
|
{ index = "pytorch-cpu", extra = "cpu" },
|
|
# { index = "pytorch-cu126", extra = "cu126", marker = "sys_platform == 'Linux' or sys_platform == 'win32'" },
|
|
# { index = "pytorch-cu128", extra = "cu128", marker = "sys_platform == 'Linux' or sys_platform == 'win32'" },
|
|
# { index = "pytorch-rocm", extra = "rocm", marker = "sys_platform == 'Linux'" },
|
|
# { index = "pytorch-nightly-cpu", extra = "mps", marker = "sys_platform == 'darwin'" },
|
|
]
|
|
sageattention = [
|
|
{ git = "https://github.com/thu-ml/SageAttention.git", marker = "sys_platform == 'Linux'", extra = "attention" },
|
|
{ url = "https://github.com/woct0rdho/SageAttention/releases/download/v2.2.0-windows.post1/sageattention-2.2.0+cu128torch2.7.1.post1-cp39-abi3-win_amd64.whl", marker = "sys_platform == 'win32'", extra = "attention" },
|
|
]
|
|
|
|
[[tool.uv.dependency-metadata]]
|
|
name = "flash-attn"
|
|
version = "2.6.3"
|
|
requires-dist = ["torch", "einops"]
|
|
|
|
[[tool.uv.dependency-metadata]]
|
|
name = "sageattention"
|
|
version = "2.2.0"
|
|
requires-dist = ["torch"]
|
|
|
|
[tool.ruff]
|
|
lint.select = [
|
|
"N805", # invalid-first-argument-name-for-method
|
|
"S307", # suspicious-eval-usage
|
|
"S102", # exec
|
|
"T", # print-usage
|
|
"W", # pycodestyle Warnings
|
|
"F", # Pyflakes
|
|
]
|
|
exclude = ["*.ipynb", "**/generated/*.pyi"]
|
|
|
|
[tool.hatch.metadata]
|
|
allow-direct-references = true
|
|
|
|
[tool.hatch.build.targets.wheel]
|
|
packages = ["comfy/", "comfy_extras/", "comfy_api/", "comfy_api_nodes/", "comfy_config/", "comfy_execution/", "comfy_compatibility/"]
|