* feat!: collapse pipeline — Resolver emits a flat prompt, drop categories (v1.1) BREAKING CHANGE: the Category Splitter and Prompt Builder stages and nodes are removed. The Resolver is now the translator from Scene JSON to prompt: it resolves concepts to Knowledge Base tags and joins them into one flat comma-separated prompt string, in resolution order (which naturally leads with character concepts). Resolver node outputs are now (prompt, warnings, errors, json) — the json being the traceable resolved tags so a translation problem is inspectable. Node count drops from 8 to 6. The CategoryMap/PromptOutput models and their schemas are removed; the `category` field remains on entries and resolved tags for traceability only. Debug Viewer simplified to scene/warnings/errors. Goldens, example scenes/workflow, integration/performance/repo-layout/release tests, benchmark script, and the docs (README + wiki) are updated to the flat prompt. Version bumped to 1.1.0. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> * build: drop removed splitter/builder packages from pyproject Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> --------- Co-authored-by: kunail0804 <kunail0804@gmail.com> Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
66 lines
2.0 KiB
TOML
66 lines
2.0 KiB
TOML
[build-system]
|
|
requires = ["setuptools>=68"]
|
|
build-backend = "setuptools.build_meta"
|
|
|
|
[project]
|
|
name = "comfyui-scene-compiler"
|
|
version = "1.1.0"
|
|
description = "Deterministic natural-language-to-prompt compiler for ComfyUI (Illustrious)."
|
|
readme = "README.md"
|
|
requires-python = ">=3.11"
|
|
license = { file = "LICENSE" }
|
|
authors = [{ name = "kunail0804" }]
|
|
|
|
# Runtime dependencies are kept minimal; prefer the standard library (MASTER_SPEC §25.9).
|
|
# jsonschema is the single validation dependency, used by the schema layer (issue #2 onward).
|
|
dependencies = [
|
|
"jsonschema>=4.18",
|
|
]
|
|
|
|
[project.optional-dependencies]
|
|
dev = [
|
|
"pytest>=8.0",
|
|
"ruff>=0.6",
|
|
]
|
|
|
|
[project.urls]
|
|
Homepage = "https://github.com/kunail0804/ComfyUI-Scene-Compiler"
|
|
Wiki = "https://github.com/kunail0804/ComfyUI-Scene-Compiler/wiki"
|
|
|
|
# The repository root is a ComfyUI custom node; its subdirectories are the importable
|
|
# packages. We enumerate them explicitly so packaging does not treat data directories
|
|
# (knowledge_base/, prompts/, ...) as Python packages.
|
|
[tool.setuptools]
|
|
packages = [
|
|
"nodes",
|
|
"compiler",
|
|
"compiler.analyzer",
|
|
"compiler.validator",
|
|
"compiler.resolver",
|
|
"compiler.common",
|
|
"schemas",
|
|
]
|
|
# The JSON Schemas ship inside the importable `schemas` package. The remaining
|
|
# data directories (knowledge_base/, prompts/, config/, examples/) are not Python
|
|
# packages and are included in the sdist via MANIFEST.in; in a ComfyUI install the
|
|
# whole repository is present on disk.
|
|
include-package-data = true
|
|
|
|
[tool.setuptools.package-data]
|
|
schemas = ["json/*.schema.json"]
|
|
|
|
[tool.ruff]
|
|
target-version = "py311"
|
|
line-length = 100
|
|
|
|
[tool.ruff.lint]
|
|
# E/W pycodestyle, F pyflakes, I import sorting, UP pyupgrade, B bugbear.
|
|
select = ["E", "W", "F", "I", "UP", "B"]
|
|
|
|
[tool.pytest.ini_options]
|
|
testpaths = ["tests"]
|
|
# Put the repository root on sys.path so `import compiler`, `import schemas`, etc.
|
|
# resolve as top-level packages during tests (the root itself is loaded by ComfyUI
|
|
# by path, not by name).
|
|
pythonpath = ["."]
|