Add measured-audio, timed-lyrics, H3 lane planning, identity relay, upload-song routing, model-specific camera contracts, LTX long-horizon planning, workflow migrations, the validated V6 example, regression coverage, and an Unreleased changelog.
6.1 KiB
GitHub and Comfy Registry Release Checklist
Use this checklist from the standalone ComfyUI-DiffusionGemmaPromptBuilder repository before pushing or publishing a release.
Product Boundary
- Keep the exported surface at thirty-three node ids:
- eleven stable Director nodes: Model Loader, Context Hub, H3 Reference Context, Grounding Guard Settings, CoT Generator, JSON Splitter, Generation Gate, Branch Generation Gate, and the LTX-2.5, MiniMax-H3, and Ideogram 4 target profiles
- one deprecated universal Target Profile retained for saved-workflow compatibility
- two optional reference-preparation helpers: Reference Prep and H3 Reference Pair Prep
- two experimental SplatStage planners
- eleven audio/music-video controls: ten decoded-audio, source-routing, ACE, performance, and production-concept nodes plus Timed Lyrics Analyzer
- six production-planning controls: Project Master, Audio-Aware H3 Multi-Shot Planner, H3 Relay Reference Gate, Multi-Format Delivery Planner, H3 Shot Seed Fanout, and H3 Shot Assembler
- Keep the two SplatStage planners visibly experimental. Their mapping ids stay compatible, their display names end in
(Experimental), and their category isprompt/diffusiongemma/experimental-motion-planning. - Confirm
NODE_CLASS_MAPPINGSandNODE_DISPLAY_NAME_MAPPINGScontain the same thirty-three ids. - Treat
ltx_reframe.pyand the reframe workflows as unexported prototypes. Do not describe them as installed nodes unless the package entry point and frontend are deliberately restored together. - Do not bundle model weights or generated tensor dumps. The NVFP4 bridge remains source code in
nodes.py.
Repository Preflight
- Run
git rev-parse --show-topleveland confirm it resolves to this package directory, not the parent ComfyUI checkout. - Confirm
originishttps://github.com/exportAnything/ComfyUI-DiffusionGemmaPromptBuilderand that the branch is based on the public repository history. - Confirm the worktree is clean and the intended release commit is pushed.
- Confirm the repository URLs in
pyproject.tomlare current. - Keep
[tool.comfy].PublisherIdexactlyexportanything; this is the immutable Registry id, whileexportAnythingis its display name. - Confirm
project.versionis newer than the latest Registry version. Version0.1.0is already published, so this release begins at0.2.0. - Confirm
requires-comfyui = ">=0.30.1"and record ComfyUI0.30.1as the tested baseline. The Registry field is a compatibility range, not a test-report field. - Confirm
LICENSEand the Python copyright headers match the intended release policy.
Automated Gates
Run the same three gates enforced by .github/workflows/ci.yml:
python -m unittest discover -s tests -p "test_*.py" -v
python scripts/smoke_prompt_builder.py
node --check web/js/model_loader.js
node --test tests/*.mjs
- The unit suite must validate the exact thirty-three-node surface, the dedicated target-node boundaries, the Director/optional/experimental/audio/production-planning category split, both bundled SplatStage schemas, and retained reframe helpers.
- The readiness/schema smoke must finish with
Prompt Builder readiness/schema smoke passed. - The JavaScript suite must exercise the shipped
model_loader.js. No test may import the retiredltx_reframe_layout.js. - The default release suite validates checked-in artifacts only. Set
DG_VERIFY_DEPLOYED_V5_ARTIFACTS=1solely when intentionally auditing the superseded, mutable V5 Desktop and ComfyUI copies; divergence there is deployment evidence to reconcile, not a hermetic release gate. - Require all three CI jobs to pass on the release commit.
Manual Runtime Gates
-
Run the NVFP4 proof gate on a CUDA workstation with the real model:
python proof_gates.py --model-path C:\ComfyUI\models\LLM\diffusiongemma-26B-A4B-it-NVFP4 -
Fresh-install the repository in a clean ComfyUI
0.30.1custom-nodes folder and confirm all thirty-three nodes appear: eleven stable Director nodes, one legacy compatibility target, two optional reference-preparation nodes, two SplatStage planners only under the experimental motion-planning category, eleven audio/music-video controls, and six production-planning controls. -
Copy
examples/assets/character_motion_transfertoComfyUI/input/character_motion_transferand loadexamples/07_ltx23_character_motion_transfer.json. -
Load the MiniMax H3 T2VA and Ref2VA examples and confirm the Generation Gate blocks invalid or empty prompt packets.
-
Load
examples/15_minimax_h3_ref2va_music_video_v6.json, replace both unbundled identity-image choices, and verify the default ACE source remains lazy with a blank upload. Exercise Upload song, Natural, Dance, Lyrics, and optional relay as separate branch tests; do not infer a successful media render from graph validation alone. -
Treat longer experimental SplatStage and reframe workflows as separate opt-in validation, not as evidence for the stable Director compatibility promise.
Files Tracked on GitHub
- Package entry point and source:
__init__.py,nodes.py,audio_production_nodes.py,production_planning_nodes.py,timed_lyrics_nodes.py,ltx25_contract.py,ltx_reframe.py,proof_gates.py - Metadata and policy:
README.md,LICENSE,requirements.txt,pyproject.toml,.gitignore,.comfyignore, this checklist - Runtime contracts:
schemas/,web/,scripts/ - Verification:
tests/,.github/workflows/ci.yml - Publishing:
.github/workflows/publish_action.yml - Documentation, current examples, workflow migrations, offline benchmarks, and GitHub demo assets:
docs/,examples/,tools/,benchmarks/
Registry Archive
- Keep
.github/,docs/,tests/,tools/,benchmarks/, runtime artifacts, caches, temporary files, and large demo video/GIF files out of the Registry archive through.comfyignore. - Confirm both SplatStage schemas remain in the Registry archive because the experimental planners load them at runtime.
- Inspect the archive before publishing and confirm it contains no model weights, migration-only local paths, logs, caches, or generated outputs.
- Publish only after the GitHub release commit and version metadata agree.