Carry only the code, tests, and user-facing docs that matter to end users; drop the modernization scaffolding accumulated while building it. - Remove the bench harness, results, and environment captures (bench/). - Remove internal docs and research spikes (docs/). - Remove the Makefile; tests run via uv / pytest directly. - Strip the bench harness and quantization-matrix steps from the Tier 2 workflow. The golden-image test drives conversion through the Core ML Converter node at runtime, so no separate convert step is needed. - Replace phase/handoff annotations across code, tests, and config with neutral docstrings and comments.
95 lines
3.4 KiB
TOML
95 lines
3.4 KiB
TOML
[project]
|
|
name = "comfyui-coremlsuite"
|
|
description = "This extension contains a set of custom nodes for ComfyUI that allow you to use Core ML models in your ComfyUI workflows."
|
|
version = "1.0.1"
|
|
license = "MIT"
|
|
requires-python = ">=3.12,<3.13"
|
|
packages = [{ include = "coreml_suite" }]
|
|
dependencies = [
|
|
# Python 3.12, coremltools 9, torch 2.7.
|
|
# numpy stays in the 1.24..1.x range — none of our modules need
|
|
# numpy 2, and coremltools + ml-stable-diffusion's SD UNet trace
|
|
# hit hard bugs under numpy 2 (`_cast` int(ndarray) strictness and
|
|
# `view` mixed-Var shape lists).
|
|
# torch 2.7 is the latest version coremltools 9's PyTorch frontend
|
|
# has been tested against.
|
|
"python-coreml-stable-diffusion @ git+https://github.com/apple/ml-stable-diffusion.git@e5d960c41a6a4ab200b8db379194127607b1c590",
|
|
"torch>=2.7,<2.8",
|
|
"coremltools>=9,<10",
|
|
"numpy>=1.24,<2",
|
|
"overrides",
|
|
"diffusers>=0.22",
|
|
"peft>=0.6.2",
|
|
"omegaconf>=2.3",
|
|
]
|
|
|
|
[project.urls]
|
|
Repository = "https://github.com/aszc-dev/ComfyUI-CoreMLSuite"
|
|
# Used by Comfy Registry https://comfyregistry.org
|
|
|
|
[tool.comfy]
|
|
PublisherId = "aszc-dev"
|
|
DisplayName = "ComfyUI-CoreMLSuite"
|
|
Icon = ""
|
|
# Pinned to the ComfyUI commit this toolchain was validated against.
|
|
requires-comfyui = "==ab5413351eee61f3d7f10c74e75286df0058bb18"
|
|
|
|
[dependency-groups]
|
|
dev = [
|
|
"pillow>=12.2.0",
|
|
"psutil>=7.2.2",
|
|
]
|
|
# ComfyUI runtime deps that aren't part of our package's runtime contract
|
|
# but are needed to spin up the ComfyUI server for Tier 2 integration tests.
|
|
# Kept in a uv group so `uv sync --group comfy` brings them in without
|
|
# polluting the published metadata (and without re-bumping our torch pin
|
|
# via `uv pip install -r ComfyUI/requirements.txt`, which would float to
|
|
# the latest torch and break the coremltools 9 compatibility ceiling).
|
|
comfy = [
|
|
"comfyui-frontend-package==1.14.6",
|
|
"torchvision",
|
|
"torchaudio",
|
|
"torchsde",
|
|
"einops",
|
|
"tokenizers>=0.13.3",
|
|
"safetensors>=0.4.2",
|
|
"aiohttp>=3.11.8",
|
|
"yarl>=1.18.0",
|
|
"kornia>=0.7.1",
|
|
"spandrel",
|
|
"soundfile",
|
|
"sentencepiece",
|
|
]
|
|
|
|
[tool.uv]
|
|
# ml-stable-diffusion's setup.py hard-pins numpy<1.24, diffusers==0.30.2
|
|
# and transformers==4.44.2, which blocks the modern torch / coremltools
|
|
# combo on Python 3.12. Override the four blocking pins; the .unet /
|
|
# .coreml_model symbols we actually import are stable across the bumped
|
|
# versions.
|
|
override-dependencies = [
|
|
"numpy>=1.24,<2",
|
|
"diffusers>=0.30",
|
|
"transformers>=4.44",
|
|
"huggingface-hub>=0.24",
|
|
]
|
|
|
|
[tool.pytest.ini_options]
|
|
# Tier markers gate which environment a test needs.
|
|
# - unit: framework-free pure-logic tests (Tier 0; run without ComfyUI on
|
|
# Linux).
|
|
# - m2: needs an Apple Silicon Mac with the Neural Engine (Tier 2),
|
|
# typically a self-hosted runner or local M-series box.
|
|
# - smoke: lightweight checks that need Apple Silicon + coremltools but no
|
|
# ANE/real model (Tier 1).
|
|
markers = [
|
|
"unit: framework-free unit test (Tier 0)",
|
|
"m2: requires Apple Silicon + Neural Engine (Tier 2)",
|
|
"smoke: macOS-ARM smoke test on a synthetic micro-model (Tier 1)",
|
|
]
|
|
testpaths = ["tests"]
|
|
# importlib mode keeps pytest from importing the repo-root __init__.py
|
|
# (which is the ComfyUI custom-node entry and pulls in comfy + nodes).
|
|
# Without this Tier-0 leaks the entire ComfyUI runtime on collection.
|
|
addopts = ["--import-mode=importlib", "--confcutdir=tests"]
|