- Add 10 ComfyUI nodes for multi-shot video storytelling - Integrate StoryMem repository via git submodule - Implement memory-conditioned video generation (T2V, M2V, MI2V, MM2V) - Add sliding window memory buffer system - Include comprehensive documentation (README, INTEGRATION, EXAMPLES) - Add model download script and configuration - Support VRAM optimization with model offloading - Provide tensor format conversion utilities - Include test suite for memory buffer Features: - Shot-level node architecture for maximum flexibility - Memory management with sliding window strategy - Three generation modes (M2V, MI2V, MM2V) - Automatic keyframe extraction - Scene cut detection and handling - Configurable quality settings - Fallback mode without full integration Documentation: - README.md: User guide with installation and usage - INTEGRATION.md: Technical integration guide - EXAMPLES.md: Workflow examples and best practices - CHANGELOG.md: Version history Requirements: - Models: ~40-60GB storage, 80GB VRAM (or 24GB+ with offloading) - Python 3.10+, PyTorch 2.4.0+, ComfyUI See CHANGELOG.md for complete details.
59 lines
1.8 KiB
Python
59 lines
1.8 KiB
Python
"""
|
|
ComfyUI StoryMem Custom Nodes
|
|
|
|
Multi-shot long video storytelling with memory-conditioned video diffusion models.
|
|
Wraps the StoryMem repository (https://github.com/Kevin-thu/StoryMem) for use in ComfyUI.
|
|
"""
|
|
|
|
from .nodes.loader_nodes import StoryMemModelLoader
|
|
from .nodes.memory_nodes import StoryMemMemoryBuffer, StoryMemUpdateMemory
|
|
from .nodes.shot_nodes import StoryMemFirstShot, StoryMemContinuationShot
|
|
from .nodes.utility_nodes import (
|
|
StoryMemMemoryVisualizer,
|
|
StoryMemVideoCombine,
|
|
StoryMemGetMotionFrames,
|
|
StoryMemInfo,
|
|
)
|
|
|
|
# Node class mappings for ComfyUI registration
|
|
NODE_CLASS_MAPPINGS = {
|
|
# Model loading
|
|
"StoryMemModelLoader": StoryMemModelLoader,
|
|
|
|
# Memory management
|
|
"StoryMemMemoryBuffer": StoryMemMemoryBuffer,
|
|
"StoryMemUpdateMemory": StoryMemUpdateMemory,
|
|
|
|
# Shot generation
|
|
"StoryMemFirstShot": StoryMemFirstShot,
|
|
"StoryMemContinuationShot": StoryMemContinuationShot,
|
|
|
|
# Utilities
|
|
"StoryMemMemoryVisualizer": StoryMemMemoryVisualizer,
|
|
"StoryMemVideoCombine": StoryMemVideoCombine,
|
|
"StoryMemGetMotionFrames": StoryMemGetMotionFrames,
|
|
"StoryMemInfo": StoryMemInfo,
|
|
}
|
|
|
|
# Display names for nodes in ComfyUI
|
|
NODE_DISPLAY_NAME_MAPPINGS = {
|
|
# Model loading
|
|
"StoryMemModelLoader": "StoryMem Model Loader",
|
|
|
|
# Memory management
|
|
"StoryMemMemoryBuffer": "StoryMem Memory Buffer",
|
|
"StoryMemUpdateMemory": "StoryMem Update Memory",
|
|
|
|
# Shot generation
|
|
"StoryMemFirstShot": "StoryMem First Shot",
|
|
"StoryMemContinuationShot": "StoryMem Continuation Shot",
|
|
|
|
# Utilities
|
|
"StoryMemMemoryVisualizer": "StoryMem Memory Visualizer",
|
|
"StoryMemVideoCombine": "StoryMem Video Combine",
|
|
"StoryMemGetMotionFrames": "StoryMem Get Motion Frames",
|
|
"StoryMemInfo": "StoryMem Info",
|
|
}
|
|
|
|
__all__ = ['NODE_CLASS_MAPPINGS', 'NODE_DISPLAY_NAME_MAPPINGS']
|