Commit Graph
66 Commits
Author SHA1 Message Date
snomiao 667115eb19 chore(publish): update GitHub Actions workflow for node publishing
- Add permissions for issue writing
- Restrict job execution to specific repository owner
- Update action version to v1 for stability
- Ensure proper token usage for registry access
2025-01-25 17:27:43 +00:00
John Pollock bb2b08efc8 docs: Update README to clarify device selection and model offloading features for ComfyUI 2025-01-15 09:35:32 -06:00
John Pollock ff7329298c feat: Releasing Hunyuan Video UNet device split support. Update project description and bump version to 1.4.0 2025-01-15 09:26:42 -06:00
John Pollock e73c8bd5e3 Add experimental DiffSynth block-swapping support via new GPU offload device
- Adds HyVideoModelLoaderDiffSynthMultiGPU node implementing DiffSynth block-swapping
- Introduces offload_device selection for secondary GPU utilization
- Updates documentation with known behaviors and expected OOM patterns
- Adds example workflow demonstrating higher resolution/longer duration video generation
- Maintains backwards compatibility with existing MultiGPU workflows
2025-01-15 06:53:59 -06:00
John Pollock 3ade69a38e Merge branch 'main' into dev
give new dev branch proper start
2025-01-14 22:12:25 -06:00
John Pollock 54157b59b6 adding animated icon 2025-01-14 15:32:12 -06:00
John Pollock a19bf2755b modified aspect ratio of icon 2025-01-12 13:24:38 -06:00
John Pollock 20ba9d099c fix: Bump version to 1.3.1 and update icon URL to raw GitHub link 2025-01-12 11:17:47 -06:00
John Pollock 92652cf816 feat: Update project description to include CPU device selection and bump version to 1.3.0; add icon URL for ComfyUI-MultiGPU 2025-01-12 11:08:41 -06:00
John Pollock 4e253c5d9a docs: Update README to reflect hunyuanvideowrapper examples and additional example for DeviceSelectorMultiGPU usage 2025-01-12 11:00:18 -06:00
John Pollock 5c6b55c61c added icon for comfy registry 2025-01-12 10:36:14 -06:00
John Pollock 2447586cf4 Added examples of device_selector node, include use with kijai's hunyuanvideowrapper custom_node showing both methods of usage 2025-01-11 17:58:15 -06:00
John Pollock 3814340e45 added test inpaint image from https://github.com/alimama-creative/FLUX-Controlnet-Inpainting 2025-01-11 10:36:50 -06:00
John Pollock ba24f572ee feat: Add DeviceSelectorMultiGPU node and device selection functionality - allowing the linking of one or more MultiGPU nodes to the same cuda device in cases where this would prevent accidental errors if should there be a device mismatch futher along in the pipeline due to non-loader nodes performing device-specific tasks or logic. 2025-01-11 10:03:40 -06:00
John Pollock 5c3c1a7f3b feat: Implement MultiGPU support for Hunyuan models and add module existence checks
Nodes work, investating how determinisitically we MultiGPU can play nice with these nodes.
2025-01-07 12:18:03 -06:00
John Pollock 61c9204207 Merge branch 'dev' of https://github.com/pollockjj/ComfyUI-MultiGPU into dev
sync with upstream
2025-01-07 07:51:43 -06:00
John Pollock 6faebe85d7 syncing with latest release from :main: 2025-01-07 06:51:01 -06:00
John Pollock 116dd935f2 chore: Rename publish workflow file and update version to 1.2.1 in pyproject.toml 2025-01-05 16:03:53 -06:00
John Pollock 4611332d12 chore: Bump version to 1.2.0 in pyproject.toml 2025-01-04 19:44:05 -06:00
John Pollock 3ce3598a5d feat: Add initial MultiGPU support for Pulid model, added module existence checks before creating MultiGPU node variant 2025-01-02 22:11:28 -06:00
John Pollock edcd5cc612 Merge branch 'main' of https://github.com/pollockjj/ComfyUI-MultiGPU 2025-01-02 21:15:08 -06:00
John Pollock 4aec967384 fix: hard coded all supported nodes. If the parent custom_node is installed then it will inherit the needed functionality at run-time, fully eliminating any load depenencies. No outside custom_nodes need to be pre-loaded and no python is inspected. New MultiGPU variants are created in a self-contained manner. 2025-01-02 21:09:39 -06:00
John Pollock 26771e4b94 intermediate commit - code to constuct nodes from working example (e.g. when a custom_node loads before MultiGPU and we have the registered data. 2025-01-02 15:06:14 -06:00
John Pollock fb522a4d97 Fix inheritance issues in register_module_new by using shared namespace for node definitions
Still broken, WIP
2025-01-02 07:18:01 -06:00
John Pollock 1d12e2ee1f feat(multigpu): generalize LTX module registration for custom nodes
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.
2024-12-31 15:51:43 -06:00
John Pollock 3f57e7fe83 intermediate step 2024-12-31 05:04:41 -06:00
John Pollock a725a7bc03 Add new module registration function to extract and log node definitions 2024-12-31 03:30:00 -06:00
John Pollock 1d020adbdb feat: Add hard-coded registration for LTX and Florence2 nodes with module existence checks 2024-12-30 22:22:52 -06:00
John Pollock 1e553cfe22 Add utility function to check module existence before registration for hard-coded MultiGPU nodes 2024-12-30 21:00:48 -06:00
John Pollock 198365dfbe Add hard-coded registration for LTX and Florence2 nodes in MultiGPU setup for debug purposes.
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.
2024-12-30 20:48:41 -06:00
John Pollock 9464cf6cc1 fix: Enhance error handling during module execution in MultiGPU registration 2024-12-30 15:13:12 -06:00
John Pollock 4ac8d33270 fix: Use local module dictionary instead of global for custom node registration
- Added a local_map_name ("NODE_CLASS_MAPPINGS") and retrieve it from the module
  immediately after loading.
- If the local dictionary exists, wrap the target nodes from there, rather than
  relying on the global dictionary.
- Removed references to GLOBAL_NODE_CLASS_MAPPINGS for custom nodes and replaced
  them with the local module mapping lookup.
2024-12-30 11:17:31 -06:00
John Pollock fcf054006d Mew method merged in with old code base so less of a shock. 2024-12-30 11:03:55 -06:00
John Pollock 46941e936d Resolved merge conflicts 2024-12-30 10:15:34 -06:00
John Pollock 14758b1985 changed methodology (again) to run their code and then scan their LOCAL dict, not the global dict. This will work and be robust I strongly believe
Still too much new code, but we'll slim it down later
2024-12-30 10:12:28 -06:00
John Pollock caee8716b6 Refactor - intermediate step of Implementing MultiGPU node registration and class definition retrieval for custom nodes 2024-12-30 07:54:57 -06:00
John Pollock 1fe269e8d6 Update README to clarify NF4 Checkpoint Format Loader requirements 2024-12-29 23:16:02 -06:00
John Pollock 58cb0ab59a Officially adding CheckpointLoaderNF4 support from ComfyUI_bitsandbytes_NF4 2024-12-29 23:14:11 -06:00
John Pollock 2c6fb487d3 editing for clarity 2024-12-28 14:49:02 -06:00
John Pollock 0b3ba045c4 Change loading to a determinsitc process by querying each node. This relies upon each node's idempotency that will need to get checked. 2024-12-28 13:39:23 -06:00
John Pollock e4b570de43 contunued NF4, working towards general solution. 2024-12-28 12:13:21 -06:00
John Pollock d9f7ab23e5 debugging NF4 loader issue and sequence loading in general.
Have a method that works, broke it, so re-assembling it slowly.

This is the initial commit where N4 is importint correctly.
2024-12-28 12:03:07 -06:00
John Pollock 67c1641ab2 Update to examples to include CPU offloads, as well as update readme.md with new examples and their requirements to run. 2024-12-27 13:22:16 -06:00
John Pollock 4a45737583 Update README for clarity on multi-GPU and CPU offloading capabilities; correct example JSON link 2024-12-27 04:59:32 -06:00
John Pollock d13f821547 Bump version to 1.1.0 and update README to reflect CPU offloading capabilities; rename example JSON for clarity 2024-12-27 04:54:21 -06:00
John Pollock d099ecd497 Enhance device selection in get_torch_device_patched and override_class to include 'cpu' as a valid option for multi-GPU support 2024-12-27 03:06:50 -06:00
John Pollock dead358227 Add MMAudioSampler to experimental audio model loaders in __init__.py so it stays in sync with the Model and FeatureUtils Loaders. I suspect this is because it is querying the cuda device directly. This would give the wrong answer half the time depending on how the other loaders were ran via the sequencing logic.
This will sync up those cuda device queries with the patched version from MultiGPU.
2024-12-26 14:59:16 -06:00
John Pollock 94cf7d9779 Update project description and version in pyproject.toml; add experimental audio model loaders in __init__.py 2024-12-26 08:30:27 -06:00
John Pollock a58fb9258b Refactor README.md for improved clarity and for compliance to markdown format 2024-12-25 08:54:16 -06:00
John Pollock 38e476e8da Update project description and version in pyproject.toml 2024-12-25 08:40:41 -06:00