Draw boxes on a canvas and say what goes in each one: a thing, or words to write in the picture. Wire elements to MOSS-Image Layout Prompt and the picture puts each thing where its box is. It gives what ComfyUI's own Create Bounding Boxes gives (preview, bboxes, elements; same types, same order, same values from the same boxes), so it can take that node's place, and its canvas also draws in the classic node look. The boxes are kept as parts of the canvas in a hidden socketless string, so a wired size never moves them.
65 lines
2.1 KiB
YAML
65 lines
2.1 KiB
YAML
name: Validate release candidate
|
|
|
|
on:
|
|
pull_request:
|
|
branches: [main]
|
|
push:
|
|
branches: [main]
|
|
workflow_dispatch:
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
jobs:
|
|
offline-checks:
|
|
runs-on: ubuntu-latest
|
|
timeout-minutes: 10
|
|
steps:
|
|
- uses: actions/checkout@v7
|
|
with:
|
|
persist-credentials: false
|
|
- uses: actions/setup-python@v7
|
|
with:
|
|
python-version: "3.12"
|
|
- uses: actions/setup-node@v7
|
|
with:
|
|
node-version: "24"
|
|
- run: python scripts/validate_nodes.py
|
|
- run: python scripts/release_preflight.py
|
|
# The test files that need only the standard library. The rest import
|
|
# torch, NumPy or PyAV and run in ComfyUI's own Python environment.
|
|
- name: Standard-library Python tests
|
|
run: >-
|
|
python scripts/run_python_tests.py
|
|
tests/test_changelog_notes.py
|
|
tests/test_execution_helpers.py
|
|
tests/test_layout_boxes_helpers.py
|
|
tests/test_lora_helpers.py
|
|
tests/test_math_helpers.py
|
|
tests/test_media_paths.py
|
|
tests/test_memory_helpers.py
|
|
tests/test_node_api.py
|
|
tests/test_registry_contract.py
|
|
tests/test_registry_status.py
|
|
tests/test_resolution.py
|
|
tests/test_status_helpers.py
|
|
tests/test_utility_nodes.py
|
|
tests/test_validate_inputs.py
|
|
tests/test_workflow_contract.py
|
|
tests/test_comfy_core_contract.py
|
|
# `node --check file.js` passes a broken file that uses import or
|
|
# export when no package.json marks it as a module, so each file goes
|
|
# in on stdin with the module type stated.
|
|
- name: JavaScript syntax
|
|
run: |
|
|
status=0
|
|
while IFS= read -r -d '' file; do
|
|
node --input-type=module --check < "$file" || { echo "::error file=$file::syntax error"; status=1; }
|
|
done < <(git ls-files -z -- 'js/*.js' '*.mjs')
|
|
exit "$status"
|
|
- run: node --test --test-isolation=none tests/*.test.mjs
|
|
- name: Ruff (pyflakes and syntax errors)
|
|
run: |
|
|
python -m pip install ruff==0.16.3
|
|
ruff check --select F,E9 .
|