b7cb2e07dfc8df539e25784fea81b0d98b3d40c6
M2 milestone: Layer 2 validator + CLI + skill pack. - 5 semantic rules (R1 page_index, R2 panel_index, R3 layout fits, R4 panel width fits, R5 page_template vs explicit dims) - Standalone CLI: python -m tk_comfyui_batch_image.validate, with --json / --max-errors and exit codes 0/1/2/3 - schema_export: core/schema.py → schema.json + drift test - Skill pack at docs/skills/comic-script-authoring/: SKILL.md, PROMPT_TEMPLATE.md, README.md, 5 screenplay+output.json examples - ComicScriptLoader now runs Layer 1 + Layer 2 validation Final: 117 tests pass, ruff clean, all 5 examples validate.
tk_comfyui_batch_image
ComfyUI custom node set for batch comic-page generation from a JSON script.
Status: M1 — Rectangle vertical-stack. See docs/superpowers/specs/2026-04-23-comfyui-comic-batch-node-design.md for the full design; docs/superpowers/plans/ for milestones.
Install
Clone this repo into ComfyUI/custom_nodes/, then:
pip install -e .[dev]
Restart ComfyUI.
Nodes
| Node | Purpose |
|---|---|
Comic Script Loader |
Load + validate JSON; emits COMIC_SCRIPT. Modes: file / path / inline. |
Comic Batch Generator |
Inner for-loop over panels. Connect MODEL / CLIP / VAE; no KSampler needed. Supports resume via panel-hash cache. |
Comic Page Composer |
Assemble panels into full pages. Outputs composed IMAGE batch + bbox metadata + pass-through panels. |
Example workflow
Drop examples/workflows/m1_basic_vertical_stack.json into ComfyUI.
Place basic.json (see tests/fixtures/scripts/) at ComfyUI/input/comics/basic.json.
Running tests
pytest tk_comfyui_batch_image/tests/ -v
ruff check tk_comfyui_batch_image
Current limitations (M1)
- Shapes: rectangle only (no
split/polygonyet → M3/M4) - Layout modes:
vertical_stackonly (nocustom_gridyet → M3) - No debug overlay (→ M5)
- No standalone JSON-validation CLI (→ M2)
- No SKILL.md skill package for AI script generation (→ M2)
Languages
Python
100%