docs: fix 4 bugs in resolution series plan

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-04-03 00:21:32 +02:00
parent 4f31d792df
commit d3becdc598
@@ -8,6 +8,56 @@
**Tech Stack:** Python (ComfyUI node), NiceGUI (UI), JavaScript (ComfyUI frontend extension), pytest
**Branch:** Create and work on `feat/resolution-series` branched from `main`:
```bash
git checkout main && git checkout -b feat/resolution-series
```
---
### Task 0: Fix pre-existing test failures on `main`
When `file_name` was added as a second output to `ProjectSource`, two tests were not updated.
They fail on `main` before any new code is written.
**Files:**
- Modify: `tests/test_project_loader.py` (`TestProjectSource` class, lines ~216-231)
**Step 1: Update the two broken tests**
```python
def test_outputs_sequence_number(self):
from project_loader import ProjectSource
assert ProjectSource.RETURN_TYPES == ("INT", "STRING",)
assert ProjectSource.RETURN_NAMES == ("sequence_number", "file_name",)
def test_hold_config_returns_sequence_number(self):
from project_loader import ProjectSource
node = ProjectSource()
result = node.hold_config(
manager_url="http://localhost:8080",
project_name="proj1",
file_name="batch_i2v",
sequence_number=42,
label="my_source"
)
assert result == (42, "batch_i2v")
```
**Step 2: Verify they now pass**
```bash
pytest tests/test_project_loader.py::TestProjectSource -v
```
Expected: all 4 PASS
**Step 3: Commit**
```bash
git add tests/test_project_loader.py
git commit -m "fix: update ProjectSource tests for file_name output"
```
---
### Task 1: Python node — `ProjectResolution`
@@ -248,7 +298,7 @@ The resolution series editor goes inside `splitter.before`, directly after the "
Add this function near the other helper functions at the top of the render section (before `_render_sequence_card`):
```python
def _is_resolution_series(val: Any) -> bool:
def _is_resolution_series(val) -> bool:
"""Return True if val is a list of [width, height] int pairs."""
if not isinstance(val, list) or len(val) == 0:
return False
@@ -259,6 +309,8 @@ def _is_resolution_series(val: Any) -> bool:
)
```
Note: `Any` is intentionally omitted — `tab_batch_ng.py` does not import `typing.Any`.
**Step 2: Add the resolution series render section**
After the "Specific Negative" textarea in `splitter.before` (after line ~553), add:
@@ -328,7 +380,17 @@ After the "Specific Negative" textarea in `splitter.before` (after line ~553), a
```bash
pytest tests/ -q
```
Expected: all 104 tests PASS (no Python tests cover the NiceGUI render path, but no regressions)
Expected: all tests PASS (no Python tests cover the NiceGUI render path, but no regressions)
**Important:** Also update the `custom_keys` filter in `_render_sequence_card` (line ~648) to exclude
resolution series keys — otherwise they'd render in both the resolution editor AND "Custom Parameters":
```python
# Find this line:
custom_keys = [k for k in seq.keys() if k not in standard_keys]
# Replace with:
custom_keys = [k for k in seq.keys() if k not in standard_keys and not _is_resolution_series(seq.get(k))]
```
**Step 4: Commit**