Files
Bharat Shetty BarkurandClaude Sonnet 4.5 56a4314c44 Add comprehensive test suite and workflows
This commit adds testing infrastructure to verify the fixes for issue #3:

Test Infrastructure:
- Added pytest-based import tests (tests/test_imports.py)
- Added GitHub Actions CI workflow (.github/workflows/test.yml)
- Tests verify Dict/Any imports and WanTI2V class name fix

ComfyUI Test Workflows:
- test_workflow_simple.json: Single-shot generation test
- test_workflow_3shot_story.json: Multi-shot story with memory continuity
- Workflows test the complete node pipeline end-to-end

The test suite includes:
1. Import validation (no NameError from missing types)
2. Syntax checking for all Python files
3. Module structure verification
4. Support for testing with/without storymem_src

These tests run automatically on:
- Push to main/master branches
- Push to fix/** branches
- Pull requests

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-31 12:24:27 +05:30

203 lines
4.1 KiB
JSON

{
"last_node_id": 4,
"last_link_id": 5,
"nodes": [
{
"id": 1,
"type": "StoryMemModelLoader",
"pos": [50, 50],
"size": [400, 240],
"flags": {},
"order": 0,
"mode": 0,
"outputs": [
{
"name": "models",
"type": "STORYMEM_MODELS",
"links": [1],
"slot_index": 0
}
],
"properties": {
"Node name for S&R": "StoryMemModelLoader"
},
"widgets_values": [
"Wan2.2-T2V-A14B",
"Wan2.2-I2V-A14B",
"MI2V",
"auto",
true,
false
]
},
{
"id": 2,
"type": "StoryMemMemoryBuffer",
"pos": [50, 350],
"size": [350, 120],
"flags": {},
"order": 1,
"mode": 0,
"outputs": [
{
"name": "memory",
"type": "STORYMEM_MEMORY",
"links": [2],
"slot_index": 0
}
],
"properties": {
"Node name for S&R": "StoryMemMemoryBuffer"
},
"widgets_values": [
10,
3
]
},
{
"id": 3,
"type": "StoryMemFirstShot",
"pos": [500, 50],
"size": [400, 420],
"flags": {},
"order": 2,
"mode": 0,
"inputs": [
{
"name": "models",
"type": "STORYMEM_MODELS",
"link": 1
},
{
"name": "memory",
"type": "STORYMEM_MEMORY",
"link": 2
}
],
"outputs": [
{
"name": "video",
"type": "IMAGE",
"links": [3],
"slot_index": 0
},
{
"name": "memory",
"type": "STORYMEM_MEMORY",
"links": [4],
"slot_index": 1
},
{
"name": "last_frame",
"type": "IMAGE",
"links": [],
"slot_index": 2
}
],
"properties": {
"Node name for S&R": "StoryMemFirstShot"
},
"widgets_values": [
"A serene landscape with mountains and a lake at sunset, photorealistic, cinematic",
25,
832,
480,
42,
50,
7.5,
true,
3
]
},
{
"id": 4,
"type": "PreviewImage",
"pos": [1000, 50],
"size": [500, 550],
"flags": {},
"order": 3,
"mode": 0,
"inputs": [
{
"name": "images",
"type": "IMAGE",
"link": 3
}
],
"properties": {
"Node name for S&R": "PreviewImage"
}
},
{
"id": 5,
"type": "StoryMemMemoryVisualizer",
"pos": [500, 550],
"size": [400, 150],
"flags": {},
"order": 4,
"mode": 0,
"inputs": [
{
"name": "memory",
"type": "STORYMEM_MEMORY",
"link": 4
}
],
"outputs": [
{
"name": "visualization",
"type": "IMAGE",
"links": [5],
"slot_index": 0
}
],
"properties": {
"Node name for S&R": "StoryMemMemoryVisualizer"
}
},
{
"id": 6,
"type": "PreviewImage",
"pos": [1000, 650],
"size": [500, 400],
"flags": {},
"order": 5,
"mode": 0,
"inputs": [
{
"name": "images",
"type": "IMAGE",
"link": 5
}
],
"properties": {
"Node name for S&R": "PreviewImage"
},
"title": "Memory Visualization"
}
],
"links": [
[1, 1, 0, 3, 0, "STORYMEM_MODELS"],
[2, 2, 0, 3, 1, "STORYMEM_MEMORY"],
[3, 3, 0, 4, 0, "IMAGE"],
[4, 3, 1, 5, 0, "STORYMEM_MEMORY"],
[5, 5, 0, 6, 0, "IMAGE"]
],
"groups": [],
"config": {},
"extra": {
"ds": {
"scale": 0.9,
"offset": [0, 0]
}
},
"version": 0.4,
"workflow_metadata": {
"name": "StoryMem Simple Test - Single Shot",
"description": "Simple test workflow for issue #3 fix: Generates a single shot and visualizes memory",
"author": "ComfyUI StoryMem",
"version": "1.0.0",
"tags": ["storymem", "test", "simple", "single-shot"]
}
}