Refactored node registration to handle any custom node type by extracting class definitions from source files and injecting wrapper code with proper indentation. Replaces hardcoded LTX module registration while maintaining identical functionality. Successfully tested with LTXVLoader node.
Actual nodes pick up the underlying structure at runtime now that the global NODE_CLASS_MAPPINGS has been updated with their information, I pull it directly from there.
A work-around for the loading sequencing problems, but hopefully one that requrires little upkeep as any changes to the underlying structure is picked-up at runtime.
Code Changes (__init__.py):
- Switches from deepcopy to standard copy for better efficiency
- Initializes current_device from model_management instead of hardcoded "cuda:0"
- Simplifies node class mapping by removing intermediate TARGET_NODE_CLASS_MAPPINGS
- Updates node naming convention: removes underscore from MultiGPU suffix
- Adds new supported nodes: "CheckpointLoaderSimple", "ControlNetLoader", "LoadFluxControlNet"
- Improves code organization with better comment clarity
COMPATIBILITY NOTE: This version restores backward compatibility with workflows
using the previous node naming scheme. Both old and new node names will work.
Documentation Changes (README.md):
- Updates node list to reflect automatic detection system
- Adds proper attribution links for required dependencies (ComfyUI-GGUF, x-flux-comfy)
- Links to example quantized models like flux1-dev-gguf
- Reorganizes loader sections with clear dependency requirements
- Updates support links to new maintainer
- Removes business/commercial references
- Updates credits section to reflect current project status
BREAKING CHANGE: This replaces the existing MultiGPU implementation with a new system
designed by City96 (https://v100s.net/). Users with existing workflows using the older
MultiGPU nodes will need to update their workflows.
The new implementation by City96 significantly improves the codebase:
- Replaces manual class definitions with a dynamic class override system
- Reduces code from 400+ lines to ~50 through smart use of inheritance
- Handles all loader types via TARGET_NODE_NAMES configuration
- Provides consistent behavior across standard and GGUF loaders
- Creates a unified "multigpu" category for better organization
The system creates MultiGPU versions of nodes by wrapping original classes through
an override mechanism, maintaining functionality while adding device selection.
Migration:
- Replace old MultiGPU nodes with new versions (same names with "_MultiGPU" suffix)
- Node functionality remains the same, only the implementation has changed