Commit Graph
136 Commits
Author SHA1 Message Date
John Pollock 79e9230f4c fix(gguf): correct missing type enum for CLIPLoaderGGUF and DualCLIPLoaderGGUF
Populate 'type' options by sourcing from core nodes to avoid drift:\n- CLIPLoaderGGUF now derives 'type' from nodes.CLIPLoader.INPUT_TYPES()\n- DualCLIPLoaderGGUF now derives 'type' from nodes.DualCLIPLoader.INPUT_TYPES()\nThis fixes missing or outdated 'type' options in GGUF Single and Dual CLIP loaders.\n\nchore: bump version to 1.8.2
2025-08-08 01:36:59 -05:00
John Pollock 7a08dd97d5 feat: Experimental XPU support
Add guarded Intel XPU support alongside CUDA:
- get_device_list now includes xpu:N when available
- device selection (model/text encoder) considers CUDA or XPU and validates devices
- DisTorch donor/offload selection includes xpu devices
Also: remove unused MergeFluxLoRAs node and mapping; delete tools/ and precompiled_binaries/; bump project version to 1.8.1.
2025-08-07 16:22:53 -05:00
John Pollock 34a15594e2 Merge pull request #48 from ComfyNodePRs/update-publish-yaml
Update Github Action for Publishing to Comfy Registry
2025-08-07 03:41:06 -05:00
John Pollock a6f13e5ff3 feat: update README and pyproject.toml for enhanced WanVideoWrapper integration and version bump to 1.8.0 2025-08-06 17:58:07 -05:00
John Pollock d4b930776e MultiGPU patches for WanVideoWrapper - took a slightly different approach on these nodes, as I my intention was always to play nice with Kijai's code.
Ideally this enables full MultiGPU capability for all of the WanVideoWrapper loader/block swap/sampler nodes.
2025-08-06 17:33:18 -05:00
John Pollock 657fdac13a Fix WanVideo multi-GPU device mismatch issue
Problem: WanVideoWrapper caches device at module load time, causing timesteps
and tensors to be created on wrong device when looping between models on
different GPUs.

Solution: WanVideoSamplerMultiGPU wrapper updates module-level device variable
to match current model's device before sampling.

Changes:
- Added comprehensive logging to trace device allocation through pipeline
- Identified module-level device caching as root cause
- Simplified WanVideoSamplerMultiGPU to only update device variable
- Verified fix works for multi-model workflows with looping
2025-08-06 04:30:03 -05:00
John Pollock 582ca6a247 WanVideoWrapper MultiGPU integration - custom wrapper nodes
- Created custom implementations for all WanVideo nodes with explicit device selection
- Added WanVideoBlockSwap with dual device control (swap_device and model_offload_device)
- Created WanVideoModelLoader_TWO for multi-model workflows to avoid race conditions
- Discovered core ComfyUI bug: safetensors loader ignores device index (uses device.type instead of str(device))
- All wrapper nodes use runtime module patching to override WanVideoWrapper's cached device variables
- Extensive logging added for debugging device assignments
2025-08-05 18:59:16 -05:00
John Pollock a05823ff0a feat: add CLIPVisionLoaderMultiGPU support and update version to 1.7.3 2025-04-17 18:43:01 -05:00
John Pollock 4ff9b80286 feat: add QuadrupleCLIPLoader / QuadrupleCLIPLoaderGGUF support and update version to 1.7.2 2025-04-17 17:00:20 -05:00
John Pollock b0159761e2 feat: add support for 'pixart' and 'wan' types in CLIPLoaderGGUF to match core class; update version to 1.7.1 2025-03-24 05:38:44 -05:00
John Pollock 2d81ef0a21 Support for kijai's ComfyUI-WanVideoWrapper 2025-03-23 13:40:05 -05:00
John Pollock 1bf9333fc7 chore: update version to 1.6.2 and fix description formatting in pyproject.toml 2025-02-12 12:18:13 -06:00
John Pollock a2093a4fc9 feat: add text encoder device handling, whereas CLIP can sometimes default to CPU, whereas using a DisTorch CLIP load you can load the layes on CPU buy use CUDA for processing. Especially helpful llava-llama 2025-02-12 11:51:58 -06:00
John Pollock 6500ca9a47 docs: enhance README for clarity on DisTorch Virtual VRAM features and usage based on user success stories and improved ease of use 2025-02-11 22:50:03 -06:00
John Pollock c431a7d870 Merge pull request #16 from eltociear/patch-1
docs: update README.md
2025-02-09 19:21:30 -06:00
Ikko Eltociear Ashimine e8be359b35 docs: update README.md
promot -> prompt
2025-02-10 03:25:20 +09:00
John Pollock 62646d3ca3 Push Distorch 2.0 Virtual VRAM release out to Comfy Registry 2025-02-07 22:00:48 -06:00
John Pollock 04882505cb Merge dev into main, taking dev version of __init__.py 2025-02-07 21:52:58 -06:00
John Pollock c01ef265a8 Update README to enhance clarity on manual allocation strings and installation instructions 2025-02-07 21:46:01 -06:00
John Pollock e36cec9fb7 Add new assets and update README for DisTorch 2.0 features 2025-02-07 21:45:41 -06:00
John Pollock 375276a485 Add files via upload
preparing for DisTorch 2.0 launch
2025-02-07 21:26:07 -06:00
John Pollock 1af932be16 Add files via upload
preparing for DisTorch 2.0 launch
2025-02-07 20:34:50 -06:00
John Pollock 8642f75a12 Add files via upload 2025-02-07 20:17:37 -06:00
John Pollock c8c4e74692 cleaning up experimental workflows 2025-02-07 19:17:06 -06:00
John Pollock 9bd984b420 Update default value for virtual VRAM GB to 4.0 in override_class_with_distorch 2025-02-07 18:27:14 -06:00
John Pollock de2219c974 Refactor virtual VRAM allocation logic and improve logging format 2025-02-07 18:24:28 -06:00
John Pollock c98a535435 Refactor logging in DisTorch analysis and update allocation handling for virtual VRAM 2025-02-07 16:09:35 -06:00
John Pollock 3a4c6d50c8 Virtual VRAM "automatic" mode for DisTorch, WIP but working 2025-02-07 15:05:08 -06:00
John Pollock 5a403e638c MergeFluxLoRAsQuantizeAndLoad, WIP 2025-02-07 04:43:45 -06:00
John Pollock 1ffa88f271 Benchmarking JSON for Reddit user 2025-02-06 14:29:26 -06:00
John Pollock 08e3bbfcb0 add example for reddit user 2025-02-06 11:53:05 -06:00
John Pollock d0d33a69ac Corrected Florence2 nodes and removed DiffSynth to remain consistent with emergency release to main 2025-02-06 03:09:00 -06:00
John Pollock 3679c268ac 🔧 BREAKING CHANGE: DiffSynth functionality has been temporarily removed while investigating device management issue (Having two GPUs with different amounts of VRAM leads to OOMs pollockjj/ComfyUI-MultiGPU#13).
If you were using nodes with DiffSynth in their name (like ...DiffSynthMultiGPU), please switch to the standard MultiGPU versions for now (e.g., ...MultiGPU). This change eliminates a device management issue that was affecting some Windows users.

See: https://github.com/pollockjj/ComfyUI-MultiGPU/issues/13

Most users won't be affected as this only impacts the DiffSynth variants of nodes.

If you need help modifying your workflows, please open an issue. Will revisit DiffSynth functionality once issue can be contained or worked-around

Update comfyregistry to 1.5.0 to reflect major change in functionality, in this case, a reduction.
2025-02-06 00:32:21 -06:00
John Pollock 4182275f85 Multiple LoRA DisTorch example 2025-02-05 10:55:17 -06:00
John Pollock 4a8d70a0d4 refactored to move stable wrapper nodes into nodes.py and remainder in init.py 2025-02-03 09:15:05 -06:00
John Pollock 262ceea716 Add precompiled llama-quantize binaries for flux Just-in-time GGUF quantization
These binaries are built from https://github.com/pollockjj/llama.cpp/tree/flux-quant-b3600

Linux binary (SHA256: 846c0bab3c7f7c6729f22b6229a2db5da2da63a4549ef8bf76546092f56fec15):
- Ubuntu 22.04
- gcc 13.3.0
- Debug build with flags: --config Debug -j10 --target llama-quantize

Windows binary (SHA256: 121c02184fcf30dc4ff3dcf4a69177e44aced9d7ba8c77f49cd138c2d73f7e6b):
- Windows 11
- MSVC 19.42.34436.0
- Debug build with flags: -G "Visual Studio 17 2022" -A x64 -DBUILD_SHARED_LIBS=OFF

Binaries are verified and released at:
https://github.com/pollockjj/llama.cpp/releases/tag/1.0.0
2025-02-03 00:15:18 -06:00
John Pollock df779bf820 Add new example JSON for Maleficent_End8551 workflow 2025-02-01 12:35:49 -06:00
John Pollock f5038d73bd bitsandbytes_NF4 example workflows 2025-02-01 08:00:00 -06:00
John Pollock 11d41b5192 Example of taking lowvram flow even lower 2025-02-01 06:19:40 -06:00
John Pollock 89ded6cc48 Added new ltxvideo example for lowvram, high dram - run ~5 minutes for a 5 second video on my 3090 2025-01-31 11:42:49 -06:00
John Pollock 3e130e3dfb Remove log_comfy_states function - no longer needed 2025-01-31 06:45:43 -06:00
John Pollock 005b5b1882 This release includes an embeddings adapter for the IP2V part of kijai's CLIP loader for HunyuanVideo. See examples. Bump version to 1.4.3 and update category for HunyuanVideoEmbeddingsAdapter to multigpu; enhance README with new workflow examples for HunyuanVideo GGUF-quantized models. 2025-01-29 11:55:16 -06:00
John Pollock 3260b7e38e Add HunyuanVideoEmbeddingsAdapter class for using kijai's IP2V conditioning video embeddings in the standard sampler, allowing it to be used with GGUF/DisTorch methods. 2025-01-29 09:25:19 -06:00
John Pollock 185ecc2ab5 Push fix to check_module_exists() to Comfy Registry, thanks @3dluvr 2025-01-29 05:16:45 -06:00
John Pollock fc4e2b2f12 Merge pull request #12 from 3dluvr/main
Fix check_module_exists() to use folder_paths
2025-01-29 05:12:49 -06:00
3dluvr 379ecce687 Fix check_module_exists() to use folder_paths
In Windows, module detection was failing because the method couldn't find the hard-coded custom_nodes/ folder in os.join.path.

We switch to using folder_paths which will return a correct path regardless of the platform.
2025-01-28 19:59:44 -05:00
John Pollock 41e974f086 1.40 -->1.4.1
Pop 1.4 (DisTorch) to Comfy Registry
2025-01-28 15:41:13 -06:00
John Pollock 369255ff8d Merge branch 'main' of https://github.com/pollockjj/ComfyUI-MultiGPU into dev 2025-01-28 06:26:25 -06:00
John Pollock 5ff6a90b17 preparing DisTorch for release to :main: 2025-01-28 06:06:53 -06:00
John Pollock 8f3ff06fa3 rename files for consistency, new DisTorch examples 2025-01-28 05:19:50 -06:00