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>
203 lines
4.1 KiB
JSON
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"]
|
|
}
|
|
}
|