diff --git a/README.md b/README.md index 206505f..1ea0939 100644 --- a/README.md +++ b/README.md @@ -127,44 +127,154 @@ All workflows have been tested on a 2x 3090 + 1060ti linux setup, a 4070 win 11 ### DisTorch2 -- [Default DisTorch2 Workflow](https://github.com/pollockjj/ComfyUI-MultiGPU/blob/main/examples/distorch2/default_DisTorch2.json) -- [FLUX.1-dev Example](https://github.com/pollockjj/ComfyUI-MultiGPU/blob/main/examples/distorch2/flux_dev_example_DisTorch2.json) -- [Hunyuan GGUF Example](https://github.com/pollockjj/ComfyUI-MultiGPU/blob/main/examples/distorch2/hunyuan_gguf_DisTorch2.json) -- [LTX Video Text-to-Video](https://github.com/pollockjj/ComfyUI-MultiGPU/blob/main/examples/distorch2/ltxv_text_to_video_MultiGPU.json) -- [Qwen Image Basic Example](https://github.com/pollockjj/ComfyUI-MultiGPU/blob/main/examples/distorch2/qwen_image_basic_example_DisTorch2.json) -- [WanVideo 2.2 Example](https://github.com/pollockjj/ComfyUI-MultiGPU/blob/main/examples/distorch2/wan2_2_DisTorch2.json) + + + + + + + + + + + + + + + + +
+ + LTX Video + CheckpointLoaderSimple (DisTorch2) +
LTX Video + CheckpointLoaderSimple (DisTorch2)
+
+
+ + Mochi + CheckpointLoaderAdvanced (DisTorch2) +
Mochi + CheckpointLoaderAdvanced (DisTorch2)
+
+
+ + Qwen Image UNet + CLIP (DisTorch2) +
Qwen Image UNet + CLIP (DisTorch2)
+
+
+ + Qwen Image Edit UNet + CLIP (DisTorch2) +
Qwen Image Edit UNet + CLIP (DisTorch2)
+
+
+ + WanVideo 2.2 Double UNet, No CPU (DisTorch2) +
WanVideo 2.2 Double UNet, No CPU (DisTorch2)
+
+
+ + WanVideo 2.2 T2I LightX2V LoRA (DisTorch2) +
WanVideo 2.2 T2I LightX2V LoRA (DisTorch2)
+
+
+ + WanVideo 2.2 T2V LightX2V LoRA (DisTorch2) +
WanVideo 2.2 T2V LightX2V LoRA (DisTorch2)
+
+
### WanVideoWrapper -- [WanVideo T2V Example](https://github.com/pollockjj/ComfyUI-MultiGPU/blob/main/examples/wannvideowrapper/wanvideo_T2V_example_MultiGPU.json) -- [WanVideo 2.2 I2V Example](https://github.com/pollockjj/ComfyUI-MultiGPU/blob/main/examples/wannvideowrapper/wanvideo2_2_I2V_A14B_example_WIP_Multigpu.json) + + + + + + +
+ + WanVideoWrapper T2V +
WanVideoWrapper T2V
+
+
+ + WanVideoWrapper 1.3B Control LoRA +
WanVideoWrapper 1.3B Control LoRA
+
+
+ + WanVideoWrapper 2.2 I2V A14B GGUF +
WanVideoWrapper 2.2 I2V A14B GGUF
+
+
### MultiGPU -- [FLUX.1-dev Example](https://github.com/pollockjj/ComfyUI-MultiGPU/blob/main/examples/multiGPU/flux_dev_example_MultiGPU.json) -- [SDXL 2-GPU](https://github.com/pollockjj/ComfyUI-MultiGPU/blob/main/examples/multiGPU/sdxl_2gpu.json) + + + + + + +
+ + FLUX UNet + Dual CLIP + VAE Loaders (MultiGPU) +
FLUX UNet + Dual CLIP + VAE Loaders (MultiGPU)
+
+
+ + SD15 CheckpointLoaderSimple (MultiGPU) +
SD15 CheckpointLoaderSimple (MultiGPU)
+
+
+ + SDXL CheckpointLoaderAdvanced (MultiGPU) +
SDXL CheckpointLoaderAdvanced (MultiGPU)
+
+
### Florence2 -- [Florence2, FLUX.1-dev, LTX Video Pipeline](https://github.com/pollockjj/ComfyUI-MultiGPU/blob/main/examples/florence2/florence2_flux1dev_ltxv_cpu_2gpu.json) + + + + +
+ + Florence2 Detailed Caption to FLUX Pipeline +
Florence2 Detailed Caption to FLUX Pipeline
+
+
### GGUF -- [FLUX.1-dev 2-GPU GGUF](https://github.com/pollockjj/ComfyUI-MultiGPU/blob/main/examples/gguf/flux1dev_2gpu_gguf.json) -- [Hunyuan 2-GPU GGUF](https://github.com/pollockjj/ComfyUI-MultiGPU/blob/main/examples/gguf/hunyuan_2gpu_gguf.json) -- [Hunyuan CPU+GPU GGUF](https://github.com/pollockjj/ComfyUI-MultiGPU/blob/main/examples/gguf/hunyuan_cpu_1gpu_gguf.json) -- [Hunyuan GGUF DisTorch](https://github.com/pollockjj/ComfyUI-MultiGPU/blob/main/examples/gguf/hunyuan_gguf_distorch.json) -- [Hunyuan GGUF MultiGPU](https://github.com/pollockjj/ComfyUI-MultiGPU/blob/main/examples/gguf/hunyuan_gguf_MultiGPU.json) + + + + + + +
+ + FLUX UNet + Dual CLIP GGUF +
FLUX UNet + Dual CLIP GGUF
+
+
+ + Qwen Image UNet DisTorch2 GGUF +
Qwen Image UNet DisTorch2 GGUF
+
+
### HunyuanVideoWrapper -- [HunyuanVideoWrapper Native VAE](https://github.com/pollockjj/ComfyUI-MultiGPU/blob/main/examples/hunyuanvideowrapper/hunyuanvideowrapper_native_vae.json) -- [HunyuanVideoWrapper Select Device](https://github.com/pollockjj/ComfyUI-MultiGPU/blob/main/examples/hunyuanvideowrapper/hunyuanvideowrapper_select_device.json) - -### DisTorch (Legacy GGUF) - -- [FLUX.1-dev GGUF DisTorch](https://github.com/pollockjj/ComfyUI-MultiGPU/blob/main/examples/distorch/flux1dev_gguf_distorch.json) -- [Hunyuan IP2V GGUF DisTorch](https://github.com/pollockjj/ComfyUI-MultiGPU/blob/main/examples/distorch/hunyuan_ip2v_distorch_gguf.json) + + + + +
+ + HunyuanVideoWrapper DisTorch (Legacy, Deprecated) +
HunyuanVideoWrapper DisTorch (Legacy, Deprecated)
+
+
## Support diff --git a/example_workflows/ComfyUI-Florence2 detailed_caption to flux.jpg b/example_workflows/ComfyUI-Florence2 detailed_caption to flux.jpg new file mode 100755 index 0000000..4e01f36 Binary files /dev/null and b/example_workflows/ComfyUI-Florence2 detailed_caption to flux.jpg differ diff --git a/example_workflows/ComfyUI-Florence2 detailed_caption to flux.json b/example_workflows/ComfyUI-Florence2 detailed_caption to flux.json new file mode 100755 index 0000000..b1d5f76 --- /dev/null +++ b/example_workflows/ComfyUI-Florence2 detailed_caption to flux.json @@ -0,0 +1,1109 @@ +{ + "id": "4d231a10-da3b-4b12-8698-449accd4b87a", + "revision": 0, + "last_node_id": 47, + "last_link_id": 128, + "nodes": [ + { + "id": 17, + "type": "BasicScheduler", + "pos": [ + 480, + 1008 + ], + "size": [ + 315, + 106 + ], + "flags": {}, + "order": 13, + "mode": 0, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 55 + } + ], + "outputs": [ + { + "name": "SIGMAS", + "type": "SIGMAS", + "links": [ + 20 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.64", + "Node name for S&R": "BasicScheduler" + }, + "widgets_values": [ + "simple", + 20, + 1 + ] + }, + { + "id": 16, + "type": "KSamplerSelect", + "pos": [ + 480, + 912 + ], + "size": [ + 315, + 58 + ], + "flags": {}, + "order": 0, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "SAMPLER", + "type": "SAMPLER", + "links": [ + 19 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.64", + "Node name for S&R": "KSamplerSelect" + }, + "widgets_values": [ + "euler" + ] + }, + { + "id": 26, + "type": "FluxGuidance", + "pos": [ + 480, + 144 + ], + "size": [ + 317.4000244140625, + 58 + ], + "flags": {}, + "order": 16, + "mode": 0, + "inputs": [ + { + "name": "conditioning", + "type": "CONDITIONING", + "link": 41 + } + ], + "outputs": [ + { + "name": "CONDITIONING", + "type": "CONDITIONING", + "slot_index": 0, + "links": [ + 42 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.64", + "Node name for S&R": "FluxGuidance" + }, + "widgets_values": [ + 3.5 + ], + "color": "#233", + "bgcolor": "#355" + }, + { + "id": 22, + "type": "BasicGuider", + "pos": [ + 576, + 48 + ], + "size": [ + 222.3482666015625, + 46 + ], + "flags": {}, + "order": 17, + "mode": 0, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 54 + }, + { + "name": "conditioning", + "type": "CONDITIONING", + "link": 42 + } + ], + "outputs": [ + { + "name": "GUIDER", + "type": "GUIDER", + "slot_index": 0, + "links": [ + 30 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.64", + "Node name for S&R": "BasicGuider" + }, + "widgets_values": [] + }, + { + "id": 13, + "type": "SamplerCustomAdvanced", + "pos": [ + 864, + 192 + ], + "size": [ + 272.3617858886719, + 326 + ], + "flags": {}, + "order": 18, + "mode": 0, + "inputs": [ + { + "name": "noise", + "type": "NOISE", + "link": 37 + }, + { + "name": "guider", + "type": "GUIDER", + "link": 30 + }, + { + "name": "sampler", + "type": "SAMPLER", + "link": 19 + }, + { + "name": "sigmas", + "type": "SIGMAS", + "link": 20 + }, + { + "name": "latent_image", + "type": "LATENT", + "link": 116 + } + ], + "outputs": [ + { + "name": "output", + "type": "LATENT", + "slot_index": 0, + "links": [ + 24 + ] + }, + { + "name": "denoised_output", + "type": "LATENT", + "links": null + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.64", + "Node name for S&R": "SamplerCustomAdvanced" + }, + "widgets_values": [] + }, + { + "id": 25, + "type": "RandomNoise", + "pos": [ + 480, + 768 + ], + "size": [ + 315, + 82 + ], + "flags": {}, + "order": 1, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "NOISE", + "type": "NOISE", + "links": [ + 37 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.64", + "Node name for S&R": "RandomNoise" + }, + "widgets_values": [ + 66527593966288, + "randomize" + ], + "color": "#2a363b", + "bgcolor": "#3f5159" + }, + { + "id": 30, + "type": "ModelSamplingFlux", + "pos": [ + 480, + 1152 + ], + "size": [ + 315, + 130 + ], + "flags": {}, + "order": 11, + "mode": 0, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 117 + }, + { + "name": "width", + "type": "INT", + "widget": { + "name": "width" + }, + "link": 115 + }, + { + "name": "height", + "type": "INT", + "widget": { + "name": "height" + }, + "link": 114 + } + ], + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "slot_index": 0, + "links": [ + 54, + 55 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.64", + "Node name for S&R": "ModelSamplingFlux" + }, + "widgets_values": [ + 1.15, + 0.5, + 1024, + 1024 + ] + }, + { + "id": 27, + "type": "EmptySD3LatentImage", + "pos": [ + 480, + 624 + ], + "size": [ + 315, + 106 + ], + "flags": {}, + "order": 10, + "mode": 0, + "inputs": [ + { + "name": "width", + "type": "INT", + "widget": { + "name": "width" + }, + "link": 112 + }, + { + "name": "height", + "type": "INT", + "widget": { + "name": "height" + }, + "link": 113 + } + ], + "outputs": [ + { + "name": "LATENT", + "type": "LATENT", + "slot_index": 0, + "links": [ + 116 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.64", + "Node name for S&R": "EmptySD3LatentImage" + }, + "widgets_values": [ + 1024, + 1024, + 1 + ] + }, + { + "id": 34, + "type": "PrimitiveNode", + "pos": [ + 432, + 480 + ], + "size": [ + 210, + 82 + ], + "flags": {}, + "order": 2, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "INT", + "type": "INT", + "widget": { + "name": "width" + }, + "slot_index": 0, + "links": [ + 112, + 115 + ] + } + ], + "title": "width", + "properties": { + "Run widget replace on values": false + }, + "widgets_values": [ + 1024, + "fixed" + ], + "color": "#323", + "bgcolor": "#535" + }, + { + "id": 35, + "type": "PrimitiveNode", + "pos": [ + 672, + 480 + ], + "size": [ + 210, + 82 + ], + "flags": {}, + "order": 3, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "INT", + "type": "INT", + "widget": { + "name": "height" + }, + "slot_index": 0, + "links": [ + 113, + 114 + ] + } + ], + "title": "height", + "properties": { + "Run widget replace on values": false + }, + "widgets_values": [ + 1024, + "fixed" + ], + "color": "#323", + "bgcolor": "#535" + }, + { + "id": 8, + "type": "VAEDecode", + "pos": [ + 883.333251953125, + 602.3333129882812 + ], + "size": [ + 210, + 46 + ], + "flags": {}, + "order": 19, + "mode": 0, + "inputs": [ + { + "name": "samples", + "type": "LATENT", + "link": 24 + }, + { + "name": "vae", + "type": "VAE", + "link": 119 + } + ], + "outputs": [ + { + "name": "IMAGE", + "type": "IMAGE", + "slot_index": 0, + "links": [ + 9 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.64", + "Node name for S&R": "VAEDecode" + }, + "widgets_values": [] + }, + { + "id": 38, + "type": "UNETLoaderMultiGPU", + "pos": [ + 32.4267692565918, + 128.16644287109375 + ], + "size": [ + 252.71832275390625, + 106 + ], + "flags": {}, + "order": 4, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "links": [ + 117 + ] + } + ], + "properties": { + "cnr_id": "comfyui-multigpu", + "ver": "0d6dfc7524472943ba912a6ec3088757edba15c3", + "Node name for S&R": "UNETLoaderMultiGPU" + }, + "widgets_values": [ + "flux1-dev-fp8.safetensors", + "default", + "cuda:0" + ], + "color": "#008181", + "bgcolor": "rgba(24,24,27,.9)" + }, + { + "id": 40, + "type": "VAELoaderMultiGPU", + "pos": [ + 38.24152755737305, + 451.91839599609375 + ], + "size": [ + 250.19544982910156, + 83.10191345214844 + ], + "flags": {}, + "order": 5, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "VAE", + "type": "VAE", + "links": [ + 119 + ] + } + ], + "properties": { + "cnr_id": "comfyui-multigpu", + "ver": "0d6dfc7524472943ba912a6ec3088757edba15c3", + "Node name for S&R": "VAELoaderMultiGPU" + }, + "widgets_values": [ + "ae.safetensors", + "cuda:1" + ], + "color": "#008181", + "bgcolor": "rgba(24,24,27,.9)" + }, + { + "id": 39, + "type": "DualCLIPLoaderMultiGPU", + "pos": [ + 35.378475189208984, + 276.3390197753906 + ], + "size": [ + 252.36911010742188, + 130 + ], + "flags": {}, + "order": 6, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "CLIP", + "type": "CLIP", + "links": [ + 118 + ] + } + ], + "properties": { + "cnr_id": "comfyui-multigpu", + "ver": "0d6dfc7524472943ba912a6ec3088757edba15c3", + "Node name for S&R": "DualCLIPLoaderMultiGPU" + }, + "widgets_values": [ + "t5xxl_fp8_e4m3fn_scaled.safetensors", + "clip_l.safetensors", + "flux", + "cpu" + ], + "color": "#008181", + "bgcolor": "rgba(24,24,27,.9)" + }, + { + "id": 9, + "type": "SaveImage", + "pos": [ + 1155, + 196 + ], + "size": [ + 985.3012084960938, + 1060.3828125 + ], + "flags": {}, + "order": 20, + "mode": 0, + "inputs": [ + { + "name": "images", + "type": "IMAGE", + "link": 9 + } + ], + "outputs": [], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.64", + "Node name for S&R": "SaveImage" + }, + "widgets_values": [ + "MultiGPU" + ] + }, + { + "id": 45, + "type": "DownloadAndLoadFlorence2ModelMultiGPU", + "pos": [ + 25.58489990234375, + 607.4310302734375 + ], + "size": [ + 378.4986267089844, + 178 + ], + "flags": {}, + "order": 7, + "mode": 0, + "inputs": [ + { + "name": "lora", + "shape": 7, + "type": "PEFTLORA", + "link": null + } + ], + "outputs": [ + { + "name": "florence2_model", + "type": "FL2MODEL", + "links": [ + 122 + ] + } + ], + "properties": { + "cnr_id": "comfyui-multigpu", + "ver": "0d6dfc7524472943ba912a6ec3088757edba15c3", + "Node name for S&R": "DownloadAndLoadFlorence2ModelMultiGPU" + }, + "widgets_values": [ + "MiaoshouAI/Florence-2-large-PromptGen-v2.0", + "fp16", + "sdpa", + "cuda:1", + "cuda:1", + "cpu" + ], + "color": "#008181", + "bgcolor": "rgba(24,24,27,.9)" + }, + { + "id": 44, + "type": "LoadImage", + "pos": [ + -838.129638671875, + 851.3551025390625 + ], + "size": [ + 274.080078125, + 314.00006103515625 + ], + "flags": {}, + "order": 8, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "IMAGE", + "type": "IMAGE", + "links": [ + 121 + ] + }, + { + "name": "MASK", + "type": "MASK", + "links": null + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.64", + "Node name for S&R": "LoadImage" + }, + "widgets_values": [ + "ComfyUI-Florence2 detailed_caption to flux.jpg", + "image" + ] + }, + { + "id": 6, + "type": "CLIPTextEncode", + "pos": [ + 409.25079345703125, + 252.41845703125 + ], + "size": [ + 422.84503173828125, + 164.31304931640625 + ], + "flags": {}, + "order": 15, + "mode": 0, + "inputs": [ + { + "name": "clip", + "type": "CLIP", + "link": 118 + }, + { + "name": "text", + "type": "STRING", + "widget": { + "name": "text" + }, + "link": 128 + } + ], + "outputs": [ + { + "name": "CONDITIONING", + "type": "CONDITIONING", + "slot_index": 0, + "links": [ + 41 + ] + } + ], + "title": "CLIP Text Encode (Positive Prompt)", + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.64", + "Node name for S&R": "CLIPTextEncode" + }, + "widgets_values": [ + "A futuristic cityscape at night, with a neon sign that reads \"Florence 2\" prominently displayed in the center of the image. The cityscape is filled with tall buildings, illuminated by bright neon lights, and vehicles driving on a wet, rainy street. The sky is a deep blue with a few clouds, and an airplane is flying overhead. The image has a sci-fi aesthetic with a cyberpunk twist, featuring a combination of neon signs and urban elements." + ], + "color": "#232", + "bgcolor": "#353" + }, + { + "id": 47, + "type": "Florence2Run", + "pos": [ + -510.5350341796875, + 847.5802612304688 + ], + "size": [ + 400, + 364 + ], + "flags": {}, + "order": 12, + "mode": 0, + "inputs": [ + { + "name": "image", + "type": "IMAGE", + "link": 121 + }, + { + "name": "florence2_model", + "type": "FL2MODEL", + "link": 122 + } + ], + "outputs": [ + { + "name": "image", + "type": "IMAGE", + "links": null + }, + { + "name": "mask", + "type": "MASK", + "links": null + }, + { + "name": "caption", + "type": "STRING", + "links": [ + 125 + ] + }, + { + "name": "data", + "type": "JSON", + "links": null + } + ], + "properties": { + "cnr_id": "comfyui-florence2", + "ver": "00b63382966a444a9fefacb65b8deb188d12a458", + "Node name for S&R": "Florence2Run" + }, + "widgets_values": [ + "", + "detailed_caption", + true, + true, + 4096, + 3, + true, + "", + 61577449829591, + "randomize" + ] + }, + { + "id": 46, + "type": "ShowText|pysssss", + "pos": [ + -66.1690444946289, + 880.0821533203125 + ], + "size": [ + 364.72259521484375, + 207.80789184570312 + ], + "flags": {}, + "order": 14, + "mode": 4, + "inputs": [ + { + "name": "text", + "type": "STRING", + "link": 125 + } + ], + "outputs": [ + { + "name": "STRING", + "shape": 6, + "type": "STRING", + "links": [ + 128 + ] + } + ], + "properties": { + "cnr_id": "comfyui-custom-scripts", + "ver": "f2838ed5e59de4d73cde5c98354b87a8d3200190", + "Node name for S&R": "ShowText|pysssss" + }, + "widgets_values": [ + "A futuristic cityscape at night, with a neon sign that reads \"Florence 2\" prominently displayed in the center of the image. The cityscape is filled with tall buildings, illuminated by bright neon lights, and vehicles driving on a wet, rainy street. The sky is a deep blue with a few clouds, and an airplane is flying overhead. The image has a sci-fi aesthetic with a cyberpunk twist, featuring a combination of neon signs and urban elements." + ] + }, + { + "id": 42, + "type": "MarkdownNote", + "pos": [ + -492.1598205566406, + 96.541259765625 + ], + "size": [ + 499.7046203613281, + 699.9719848632812 + ], + "flags": {}, + "order": 9, + "mode": 0, + "inputs": [], + "outputs": [], + "title": "ComfyUI-MultiGPU Note - ComfyUI-Florence2", + "properties": {}, + "widgets_values": [ + "A basic implementation of a the DownloadandLoad node from ComfyUI-Florence2. Takes an input image and creates a natural language caption which is used to feed a standard FLUX.dev workflow.\n\n## Custom Node\n- [ComfyUI-Florence2](https://github.com/kijai/ComfyUI-Florence2)\n- [ComfyUI-MultiGPU](https://github.com/pollockjj/ComfyUI-MultiGPU)\n```\nšŸ“‚ ComfyUI/\nā”œā”€ā”€ šŸ“‚ custom_nodes/\n│ ā”œā”€ā”€ šŸ“‚ ComfyUI-Florence2/\n│ ā”œā”€ā”€ šŸ“‚ ComfyUI-MultiGPU/\n```\n## Model links\n\n**Diffusion model**\n- [flux1-dev-fp8.safetensors](https://huggingface.co/Comfy-Org/flux1-dev/resolve/main/flux1-dev-fp8.safetensors)\n\n**CLIP**\n- [t5xxl_fp8_e4m3fn_scaled.safetensors](https://huggingface.co/comfyanonymous/flux_text_encoders/resolve/main/t5xxl_fp8_e4m3fn_scaled.safetensors)\n- [clip_l.safetensors](https://huggingface.co/comfyanonymous/flux_text_encoders/resolve/main/clip_l.safetensors)\n\n**VAE**\n- [ae.safetensors](https://huggingface.co/black-forest-labs/FLUX.1-dev/resolve/main/ae.safetensors)\n\n```\nšŸ“‚ ComfyUI/\nā”œā”€ā”€ šŸ“‚ models/\n│ ā”œā”€ā”€ šŸ“‚ diffusion_models/\n│ │ ā”œā”€ā”€ flux1-dev-fp8.safetensors\n│ ā”œā”€ā”€ šŸ“‚ clip/\n│ │ └── t5xxl_fp8_e4m3fn_scaled.safetensors\n│ │ └── clip_l.safetensors \n│ ā”œā”€ā”€ šŸ“‚ vae/\n│ │ └── ae.safetensors\n```\n## Device Mapping (Example: Two GPUs, 1 CPU)\n```\nšŸ–„ļø system \nā”œā”€ā”€ 🟢 cuda:0\n│ └── flux1-dev-fp8.safetensors\nā”œā”€ā”€ 🟣 cuda:1\n│ └── ae.safetensors\n│ └── Florence-2-large-PromptGen-v2.0\nā”œā”€ā”€ āš™ļø cpu\n └── t5xxl_fp8_e4m3fn_scaled.safetensors\n └── clip_l.safetensors\n```" + ], + "color": "#008181", + "bgcolor": "rgba(24,24,27,.9)" + } + ], + "links": [ + [ + 9, + 8, + 0, + 9, + 0, + "IMAGE" + ], + [ + 19, + 16, + 0, + 13, + 2, + "SAMPLER" + ], + [ + 20, + 17, + 0, + 13, + 3, + "SIGMAS" + ], + [ + 24, + 13, + 0, + 8, + 0, + "LATENT" + ], + [ + 30, + 22, + 0, + 13, + 1, + "GUIDER" + ], + [ + 37, + 25, + 0, + 13, + 0, + "NOISE" + ], + [ + 41, + 6, + 0, + 26, + 0, + "CONDITIONING" + ], + [ + 42, + 26, + 0, + 22, + 1, + "CONDITIONING" + ], + [ + 54, + 30, + 0, + 22, + 0, + "MODEL" + ], + [ + 55, + 30, + 0, + 17, + 0, + "MODEL" + ], + [ + 112, + 34, + 0, + 27, + 0, + "INT" + ], + [ + 113, + 35, + 0, + 27, + 1, + "INT" + ], + [ + 114, + 35, + 0, + 30, + 2, + "INT" + ], + [ + 115, + 34, + 0, + 30, + 1, + "INT" + ], + [ + 116, + 27, + 0, + 13, + 4, + "LATENT" + ], + [ + 117, + 38, + 0, + 30, + 0, + "MODEL" + ], + [ + 118, + 39, + 0, + 6, + 0, + "CLIP" + ], + [ + 119, + 40, + 0, + 8, + 1, + "VAE" + ], + [ + 121, + 44, + 0, + 47, + 0, + "IMAGE" + ], + [ + 122, + 45, + 0, + 47, + 1, + "FL2MODEL" + ], + [ + 125, + 47, + 2, + 46, + 0, + "STRING" + ], + [ + 128, + 46, + 0, + 6, + 1, + "STRING" + ] + ], + "groups": [], + "config": {}, + "extra": { + "ds": { + "scale": 0.6830134553650707, + "offset": [ + 964.7884757012523, + 44.96235296741689 + ] + }, + "frontendVersion": "1.27.10", + "groupNodes": {}, + "VHS_latentpreview": false, + "VHS_latentpreviewrate": 0, + "VHS_MetadataImage": true, + "VHS_KeepIntermediate": true + }, + "version": 0.4 +} \ No newline at end of file diff --git a/example_workflows/ComfyUI-GGUF flux unet dual_clip loaders.jpg b/example_workflows/ComfyUI-GGUF flux unet dual_clip loaders.jpg new file mode 100755 index 0000000..1531415 Binary files /dev/null and b/example_workflows/ComfyUI-GGUF flux unet dual_clip loaders.jpg differ diff --git a/example_workflows/distorch2/flux_dev_DisTorch2.json b/example_workflows/ComfyUI-GGUF flux unet dual_clip loaders.json similarity index 54% rename from example_workflows/distorch2/flux_dev_DisTorch2.json rename to example_workflows/ComfyUI-GGUF flux unet dual_clip loaders.json index 085ffbe..daf597c 100755 --- a/example_workflows/distorch2/flux_dev_DisTorch2.json +++ b/example_workflows/ComfyUI-GGUF flux unet dual_clip loaders.json @@ -1,22 +1,97 @@ { - "id": "3c55bda9-d06f-4dc1-a571-cb6ea8f647e8", + "id": "4d231a10-da3b-4b12-8698-449accd4b87a", "revision": 0, - "last_node_id": 136, - "last_link_id": 295, + "last_node_id": 45, + "last_link_id": 121, "nodes": [ + { + "id": 16, + "type": "KSamplerSelect", + "pos": [ + 480, + 912 + ], + "size": [ + 315, + 58 + ], + "flags": {}, + "order": 0, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "SAMPLER", + "type": "SAMPLER", + "links": [ + 19 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.64", + "Node name for S&R": "KSamplerSelect" + }, + "widgets_values": [ + "euler" + ] + }, + { + "id": 26, + "type": "FluxGuidance", + "pos": [ + 480, + 144 + ], + "size": [ + 317.4000244140625, + 58 + ], + "flags": {}, + "order": 12, + "mode": 0, + "inputs": [ + { + "name": "conditioning", + "type": "CONDITIONING", + "link": 41 + } + ], + "outputs": [ + { + "name": "CONDITIONING", + "type": "CONDITIONING", + "slot_index": 0, + "links": [ + 42 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.64", + "Node name for S&R": "FluxGuidance" + }, + "widgets_values": [ + 3.5 + ], + "color": "#233", + "bgcolor": "#355" + }, { "id": 22, "type": "BasicGuider", "pos": [ - 852.2776489257812, - -113.5096435546875 + 576, + 48 ], "size": [ 222.3482666015625, 46 ], "flags": {}, - "order": 10, + "order": 13, "mode": 0, "inputs": [ { @@ -41,6 +116,8 @@ } ], "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.64", "Node name for S&R": "BasicGuider" }, "widgets_values": [] @@ -49,15 +126,15 @@ "id": 13, "type": "SamplerCustomAdvanced", "pos": [ - 1162.46533203125, - 79.54632568359375 + 864, + 192 ], "size": [ - 566.427001953125, - 688.7268676757812 + 272.3617858886719, + 326 ], "flags": {}, - "order": 11, + "order": 14, "mode": 0, "inputs": [ { @@ -83,7 +160,7 @@ { "name": "latent_image", "type": "LATENT", - "link": 178 + "link": 116 } ], "outputs": [ @@ -102,6 +179,8 @@ } ], "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.64", "Node name for S&R": "SamplerCustomAdvanced" }, "widgets_values": [] @@ -110,15 +189,15 @@ "id": 25, "type": "RandomNoise", "pos": [ - 470.26251220703125, - 444.5785827636719 + 480, + 768 ], "size": [ - 412.7810363769531, + 315, 82 ], "flags": {}, - "order": 0, + "order": 1, "mode": 0, "inputs": [], "outputs": [ @@ -131,55 +210,86 @@ } ], "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.64", "Node name for S&R": "RandomNoise" }, "widgets_values": [ - 36218255195780, + 411099137945992, "randomize" ], "color": "#2a363b", "bgcolor": "#3f5159" }, { - "id": 16, - "type": "KSamplerSelect", + "id": 30, + "type": "ModelSamplingFlux", "pos": [ - 484.6856689453125, - 587.7680053710938 + 480, + 1152 ], "size": [ - 394.4875793457031, - 58.668025970458984 + 315, + 130 ], "flags": {}, - "order": 1, + "order": 9, "mode": 0, - "inputs": [], + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 120 + }, + { + "name": "width", + "type": "INT", + "widget": { + "name": "width" + }, + "link": 115 + }, + { + "name": "height", + "type": "INT", + "widget": { + "name": "height" + }, + "link": 114 + } + ], "outputs": [ { - "name": "SAMPLER", - "type": "SAMPLER", + "name": "MODEL", + "type": "MODEL", + "slot_index": 0, "links": [ - 19 + 54, + 55 ] } ], "properties": { - "Node name for S&R": "KSamplerSelect" + "cnr_id": "comfy-core", + "ver": "0.3.64", + "Node name for S&R": "ModelSamplingFlux" }, "widgets_values": [ - "euler" + 1.15, + 0.5, + 1024, + 1024 ] }, { - "id": 17, - "type": "BasicScheduler", + "id": 27, + "type": "EmptySD3LatentImage", "pos": [ - 509.7876892089844, - 702.4910888671875 + 480, + 624 ], "size": [ - 398.4141845703125, + 315, 106 ], "flags": {}, @@ -187,71 +297,136 @@ "mode": 0, "inputs": [ { - "name": "model", - "type": "MODEL", - "link": 295 + "name": "width", + "type": "INT", + "widget": { + "name": "width" + }, + "link": 112 + }, + { + "name": "height", + "type": "INT", + "widget": { + "name": "height" + }, + "link": 113 } ], "outputs": [ { - "name": "SIGMAS", - "type": "SIGMAS", + "name": "LATENT", + "type": "LATENT", + "slot_index": 0, "links": [ - 20 + 116 ] } ], "properties": { - "Node name for S&R": "BasicScheduler" + "cnr_id": "comfy-core", + "ver": "0.3.64", + "Node name for S&R": "EmptySD3LatentImage" }, "widgets_values": [ - "normal", - 28, + 1024, + 1024, 1 ] }, { - "id": 9, - "type": "SaveImage", + "id": 34, + "type": "PrimitiveNode", "pos": [ - 1812.6654052734375, - -154.47837829589844 + 432, + 480 ], "size": [ - 1308.1181640625, - 1063.59521484375 + 210, + 82 ], "flags": {}, - "order": 13, + "order": 2, "mode": 0, - "inputs": [ + "inputs": [], + "outputs": [ { - "name": "images", - "type": "IMAGE", - "link": 9 + "name": "INT", + "type": "INT", + "widget": { + "name": "width" + }, + "slot_index": 0, + "links": [ + 112, + 115 + ] } ], - "outputs": [], + "title": "width", "properties": { - "Node name for S&R": "SaveImage" + "Run widget replace on values": false }, "widgets_values": [ - "ComfyUI" - ] + 1024, + "fixed" + ], + "color": "#323", + "bgcolor": "#535" + }, + { + "id": 35, + "type": "PrimitiveNode", + "pos": [ + 672, + 480 + ], + "size": [ + 210, + 82 + ], + "flags": {}, + "order": 3, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "INT", + "type": "INT", + "widget": { + "name": "height" + }, + "slot_index": 0, + "links": [ + 113, + 114 + ] + } + ], + "title": "height", + "properties": { + "Run widget replace on values": false + }, + "widgets_values": [ + 1024, + "fixed" + ], + "color": "#323", + "bgcolor": "#535" }, { "id": 8, "type": "VAEDecode", "pos": [ - 1500.7164306640625, - -139.140380859375 + 883.333251953125, + 602.3333129882812 ], "size": [ - 233.40155029296875, + 210, 46 ], "flags": {}, - "order": 12, + "order": 15, "mode": 0, "inputs": [ { @@ -262,7 +437,7 @@ { "name": "vae", "type": "VAE", - "link": 279 + "link": 119 } ], "outputs": [ @@ -276,105 +451,182 @@ } ], "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.64", "Node name for S&R": "VAEDecode" }, "widgets_values": [] }, { - "id": 71, - "type": "EmptySD3LatentImage", + "id": 40, + "type": "VAELoaderMultiGPU", "pos": [ - 781.7842407226562, - 174.56484985351562 + 38.24152755737305, + 451.91839599609375 ], "size": [ - 210, - 106 + 250.19544982910156, + 83.10191345214844 ], "flags": {}, - "order": 2, + "order": 4, "mode": 0, "inputs": [], "outputs": [ { - "name": "LATENT", - "type": "LATENT", - "slot_index": 0, + "name": "VAE", + "type": "VAE", "links": [ - 178 + 119 ] } ], "properties": { - "Node name for S&R": "EmptySD3LatentImage" + "cnr_id": "comfyui-multigpu", + "ver": "0d6dfc7524472943ba912a6ec3088757edba15c3", + "Node name for S&R": "VAELoaderMultiGPU" }, "widgets_values": [ - 1024, - 1024, - 1 + "ae.safetensors", + "cuda:1" ], - "color": "#222", - "bgcolor": "#000" + "color": "#008181", + "bgcolor": "rgba(24,24,27,.9)" }, { - "id": 26, - "type": "FluxGuidance", + "id": 17, + "type": "BasicScheduler", "pos": [ - 346.12701416015625, - -30.19463348388672 + 478.0481262207031, + 1008.0003662109375 ], "size": [ - 317.4000244140625, - 58 + 315, + 106 ], "flags": {}, - "order": 9, + "order": 11, "mode": 0, "inputs": [ { - "name": "conditioning", - "type": "CONDITIONING", - "link": 41 + "name": "model", + "type": "MODEL", + "link": 55 } ], "outputs": [ { - "name": "CONDITIONING", - "type": "CONDITIONING", - "slot_index": 0, + "name": "SIGMAS", + "type": "SIGMAS", "links": [ - 42 + 20 ] } ], "properties": { - "Node name for S&R": "FluxGuidance" + "cnr_id": "comfy-core", + "ver": "0.3.64", + "Node name for S&R": "BasicScheduler" }, "widgets_values": [ - 3.5 + "simple", + 20, + 1 + ] + }, + { + "id": 44, + "type": "UnetLoaderGGUFMultiGPU", + "pos": [ + 31.3530216217041, + 157.298828125 ], - "color": "#233", - "bgcolor": "#355" + "size": [ + 273.4029235839844, + 82 + ], + "flags": {}, + "order": 5, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "links": [ + 120 + ] + } + ], + "properties": { + "cnr_id": "comfyui-multigpu", + "ver": "0d6dfc7524472943ba912a6ec3088757edba15c3", + "Node name for S&R": "UnetLoaderGGUFMultiGPU" + }, + "widgets_values": [ + "flux1-dev-Q4_K_S.gguf", + "cuda:0" + ], + "color": "#008181", + "bgcolor": "rgba(24,24,27,.9)" + }, + { + "id": 45, + "type": "DualCLIPLoaderGGUFMultiGPU", + "pos": [ + 22.15631866455078, + 274.3656311035156 + ], + "size": [ + 303.7476501464844, + 130 + ], + "flags": {}, + "order": 6, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "CLIP", + "type": "CLIP", + "links": [ + 121 + ] + } + ], + "properties": { + "cnr_id": "comfyui-multigpu", + "ver": "0d6dfc7524472943ba912a6ec3088757edba15c3", + "Node name for S&R": "DualCLIPLoaderGGUFMultiGPU" + }, + "widgets_values": [ + "t5-v1_1-xxl-encoder-Q4_K_S.gguf", + "clip_l.safetensors", + "flux", + "cpu" + ], + "color": "#008181", + "bgcolor": "rgba(24,24,27,.9)" }, { "id": 6, "type": "CLIPTextEncode", "pos": [ - -81.70205688476562, - -33.01286315917969 + 384, + 240 ], "size": [ - 391.4284973144531, - 176.46835327148438 + 422.84503173828125, + 164.31304931640625 ], "flags": {}, - "order": 6, + "order": 10, "mode": 0, "inputs": [ { "name": "clip", "type": "CLIP", - "link": 293 + "link": 121 } ], "outputs": [ @@ -389,164 +641,70 @@ ], "title": "CLIP Text Encode (Positive Prompt)", "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.64", "Node name for S&R": "CLIPTextEncode" }, "widgets_values": [ - "A towering technological monolith in a cyberpunk cityscape at night, with \"DisTorch 2\" emblazoned across its surface in massive neon blue-green mixed with purple letters that illuminate the surrounding buildings. The text occupies the central third of the frame, crafted from glowing plasma tubes and crackling energy. The model file suffix \"now with .safetensors!\" in same stying but smaller font directly underneath. Rain-slicked streets below reflect the brilliant signage, while holographic advertisements and flying vehicles populate the background. Moody atmospheric lighting, heavy contrast, photorealistic textures, cinematic color grading. " + "A towering technological monolith in a cyberpunk cityscape at night, with \"GGUF\" emblazoned across its surface in massive neon blue-green mixed with purple letters that illuminate the surrounding buildings. The text occupies the central third of the frame, crafted from glowing plasma tubes and crackling energy. Rain-slicked streets below reflect the brilliant signage, while holographic advertisements and flying vehicles populate the background. Moody atmospheric lighting, heavy contrast, photorealistic textures, cinematic color grading. " ], "color": "#232", "bgcolor": "#353" }, { - "id": 136, - "type": "DualCLIPLoaderMultiGPU", + "id": 9, + "type": "SaveImage", "pos": [ - -558.3677978515625, - -36.014400482177734 + 1155, + 196 ], "size": [ - 420.4273376464844, - 130 + 528.3246459960938, + 705.4493408203125 ], "flags": {}, - "order": 3, + "order": 16, "mode": 0, - "inputs": [], - "outputs": [ + "inputs": [ { - "name": "CLIP", - "type": "CLIP", - "links": [ - 293 - ] + "name": "images", + "type": "IMAGE", + "link": 9 } ], + "outputs": [], "properties": { - "Node name for S&R": "DualCLIPLoaderMultiGPU" + "cnr_id": "comfy-core", + "ver": "0.3.64", + "Node name for S&R": "SaveImage" }, "widgets_values": [ - "t5xxl_fp8_e4m3fn.safetensors", - "clip_l.safetensors", - "flux", - "cuda:1" - ], - "color": "#233", - "bgcolor": "#355" + "MultiGPU" + ] }, { - "id": 133, - "type": "UNETLoaderDisTorch2MultiGPU", + "id": 42, + "type": "MarkdownNote", "pos": [ - -559.6673583984375, - -315.3926086425781 + -569.0946655273438, + 139.91355895996094 ], "size": [ - 381.215576171875, - 178 - ], - "flags": {}, - "order": 4, - "mode": 0, - "inputs": [], - "outputs": [ - { - "name": "MODEL", - "type": "MODEL", - "links": [ - 294, - 295 - ] - } - ], - "properties": { - "Node name for S&R": "UNETLoaderDisTorch2MultiGPU" - }, - "widgets_values": [ - "flux1-dev-fp8.safetensors", - "default", - "cuda:0", - 4, - "cpu", - "" - ], - "color": "#233", - "bgcolor": "#355" - }, - { - "id": 30, - "type": "ModelSamplingFlux", - "pos": [ - 363.7016906738281, - -309.4155578613281 - ], - "size": [ - 382.2674560546875, - 170 + 581.2379150390625, + 676.9735717773438 ], "flags": {}, "order": 7, "mode": 0, - "inputs": [ - { - "name": "model", - "type": "MODEL", - "link": 294 - } - ], - "outputs": [ - { - "name": "MODEL", - "type": "MODEL", - "slot_index": 0, - "links": [ - 54 - ] - } - ], - "properties": { - "Node name for S&R": "ModelSamplingFlux" - }, - "widgets_values": [ - 1.15, - 0.5, - 1024, - 1024 - ] - }, - { - "id": 60, - "type": "VAELoaderMultiGPU", - "pos": [ - -543.2852783203125, - 204.7698516845703 - ], - "size": [ - 230.01893615722656, - 85.27015686035156 - ], - "flags": {}, - "order": 5, - "mode": 0, "inputs": [], - "outputs": [ - { - "name": "VAE", - "type": "VAE", - "slot_index": 0, - "links": [ - 279 - ] - } - ], - "properties": { - "Node name for S&R": "VAELoaderMultiGPU" - }, + "outputs": [], + "title": "ComfyUI-MultiGPU Note - ComfyUI-GGUF UNETLoader, DualClipLoader Workflow", + "properties": {}, "widgets_values": [ - "ae.safetensors", - "cuda:1" + "A standard FLUX.dev workflow with GGUF UNet and CLIP to test ComfyUI-GGUF integration. In this case we are using standard MultiGPU-wrapped nodes to move model components to their own device.\n## Custom Node\n- [ComfyUI-GGUF](https://github.com/city96/ComfyUI-GGUF)\n- [ComfyUI-MultiGPU](https://github.com/pollockjj/ComfyUI-MultiGPU)\n```\nšŸ“‚ ComfyUI/\nā”œā”€ā”€ šŸ“‚ custom_nodes/\n│ ā”œā”€ā”€ šŸ“‚ ComfyUI-GGUF/\n│ ā”œā”€ā”€ šŸ“‚ ComfyUI-MultiGPU/\n```\n## Model links\n\n**Diffusion model**\n- [flux1-dev-Q4_K_S.gguf](https://huggingface.co/city96/FLUX.1-dev-gguf/resolve/main/flux1-dev-Q4_K_S.gguf)\n\n**CLIP**\n- [t5-v1_1-xxl-encoder-Q4_K_S.gguf](https://huggingface.co/city96/t5-v1_1-xxl-encoder-gguf/resolve/main/t5-v1_1-xxl-encoder-Q4_K_S.gguf)\n- [clip_l.safetensors](https://huggingface.co/comfyanonymous/flux_text_encoders/resolve/main/clip_l.safetensors)\n\n**VAE**\n- [ae.safetensors](https://huggingface.co/black-forest-labs/FLUX.1-dev/resolve/main/ae.safetensors)\n\nModel Storage Location\n\n```\nšŸ“‚ ComfyUI/\nā”œā”€ā”€ šŸ“‚ models/\n│ ā”œā”€ā”€ šŸ“‚ clip/\n│ │ └── t5-v1_1-xxl-encoder-Q4_K_S.gguf\n│ │ └── clip_l.safetensors\n│ ā”œā”€ā”€ šŸ“‚ unet/\n│ │ ā”œā”€ā”€ flux1-dev-Q4_K_S.gguf\n│ ā”œā”€ā”€ šŸ“‚ vae/\n│ │ └── ae.safetensors]\n```\n## Device Mapping (Example: Two GPUs, 1 CPU)\n```\nšŸ–„ļø system \nā”œā”€ā”€ 🟢 cuda:0\n│ └── flux1-dev-Q4_K_S.gguf\nā”œā”€ā”€ 🟣 cuda:1\n│ └── ae.safetensors\nā”œā”€ā”€ āš™ļø cpu\n └── t5-v1_1-xxl-encoder-Q4_K_S.gguf\n └── clip_l.safetensors\n```" ], - "color": "#233", - "bgcolor": "#355" + "color": "#008181", + "bgcolor": "rgba(24,24,27,.9)" } ], "links": [ @@ -623,68 +781,92 @@ "MODEL" ], [ - 178, - 71, + 55, + 30, + 0, + 17, + 0, + "MODEL" + ], + [ + 112, + 34, + 0, + 27, + 0, + "INT" + ], + [ + 113, + 35, + 0, + 27, + 1, + "INT" + ], + [ + 114, + 35, + 0, + 30, + 2, + "INT" + ], + [ + 115, + 34, + 0, + 30, + 1, + "INT" + ], + [ + 116, + 27, 0, 13, 4, "LATENT" ], [ - 279, - 60, + 119, + 40, 0, 8, 1, "VAE" ], [ - 293, - 136, - 0, - 6, - 0, - "CLIP" - ], - [ - 294, - 133, + 120, + 44, 0, 30, 0, "MODEL" ], [ - 295, - 133, + 121, + 45, 0, - 17, + 6, 0, - "MODEL" + "CLIP" ] ], "groups": [], "config": {}, "extra": { "ds": { - "scale": 0.6115909044841529, + "scale": 0.9090909090909091, "offset": [ - 1204.2248231557692, - 953.8392783594873 + 753.354087714039, + -35.46859036092216 ] }, - "frontendVersion": "1.24.4", + "frontendVersion": "1.27.10", "groupNodes": {}, - "node_versions": { - "comfy-core": "0.3.27", - "comfyui-kjnodes": "86b5453a5ca9ecb883eedc9d0a96bf942b9ca73e", - "ComfyUI-MultiGPU": "1bf9333fc7f1d230282a6bc9946cfeabb9801969", - "comfyui-art-venture": "50abaace756b96f5f5dc2c9d72826ef371afd45e", - "Comfy-WaveSpeed": "3db162bb7ad56b84a452a4778527da63793c0e87" - }, "VHS_latentpreview": false, "VHS_latentpreviewrate": 0, - "ue_links": [], "VHS_MetadataImage": true, "VHS_KeepIntermediate": true }, diff --git a/example_workflows/ComfyUI-GGUF qwen_image unet distorch2 cliploader.jpg b/example_workflows/ComfyUI-GGUF qwen_image unet distorch2 cliploader.jpg new file mode 100755 index 0000000..53d1cfe Binary files /dev/null and b/example_workflows/ComfyUI-GGUF qwen_image unet distorch2 cliploader.jpg differ diff --git a/example_workflows/distorch2/qwen_image_basic_DisTorch2.json b/example_workflows/ComfyUI-GGUF qwen_image unet distorch2 cliploader.json similarity index 61% rename from example_workflows/distorch2/qwen_image_basic_DisTorch2.json rename to example_workflows/ComfyUI-GGUF qwen_image unet distorch2 cliploader.json index 0b78419..4244a26 100755 --- a/example_workflows/distorch2/qwen_image_basic_DisTorch2.json +++ b/example_workflows/ComfyUI-GGUF qwen_image unet distorch2 cliploader.json @@ -1,153 +1,9 @@ { "id": "91f6bbe2-ed41-4fd6-bac7-71d5b5864ecb", "revision": 0, - "last_node_id": 74, - "last_link_id": 134, + "last_node_id": 77, + "last_link_id": 137, "nodes": [ - { - "id": 8, - "type": "VAEDecode", - "pos": [ - 1210, - 190 - ], - "size": [ - 210, - 46 - ], - "flags": {}, - "order": 10, - "mode": 0, - "inputs": [ - { - "name": "samples", - "type": "LATENT", - "link": 128 - }, - { - "name": "vae", - "type": "VAE", - "link": 130 - } - ], - "outputs": [ - { - "name": "IMAGE", - "type": "IMAGE", - "slot_index": 0, - "links": [ - 110 - ] - } - ], - "properties": { - "Node name for S&R": "VAEDecode" - }, - "widgets_values": [] - }, - { - "id": 60, - "type": "SaveImage", - "pos": [ - 1478.3486328125, - 190.30274963378906 - ], - "size": [ - 821.0496215820312, - 871.7067260742188 - ], - "flags": {}, - "order": 11, - "mode": 0, - "inputs": [ - { - "name": "images", - "type": "IMAGE", - "link": 110 - } - ], - "outputs": [], - "properties": { - "Node name for S&R": "SaveImage" - }, - "widgets_values": [ - "ComfyUI" - ] - }, - { - "id": 58, - "type": "EmptySD3LatentImage", - "pos": [ - 410.6574401855469, - 620.5468139648438 - ], - "size": [ - 270, - 106 - ], - "flags": {}, - "order": 0, - "mode": 0, - "inputs": [], - "outputs": [ - { - "name": "LATENT", - "type": "LATENT", - "links": [ - 107 - ] - } - ], - "properties": { - "Node name for S&R": "EmptySD3LatentImage" - }, - "widgets_values": [ - 1328, - 1328, - 1 - ] - }, - { - "id": 7, - "type": "CLIPTextEncode", - "pos": [ - 413, - 389 - ], - "size": [ - 425.27801513671875, - 180.6060791015625 - ], - "flags": {}, - "order": 7, - "mode": 0, - "inputs": [ - { - "name": "clip", - "type": "CLIP", - "link": 75 - } - ], - "outputs": [ - { - "name": "CONDITIONING", - "type": "CONDITIONING", - "slot_index": 0, - "links": [ - 52 - ] - } - ], - "title": "CLIP Text Encode (Negative Prompt)", - "properties": { - "Node name for S&R": "CLIPTextEncode" - }, - "widgets_values": [ - " " - ], - "color": "#322", - "bgcolor": "#533" - }, { "id": 3, "type": "KSampler", @@ -160,7 +16,7 @@ 474 ], "flags": {}, - "order": 9, + "order": 8, "mode": 0, "inputs": [ { @@ -195,10 +51,12 @@ } ], "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.64", "Node name for S&R": "KSampler" }, "widgets_values": [ - 460967899514521, + 174815108394042, "randomize", 20, 2.5, @@ -208,87 +66,117 @@ ] }, { - "id": 38, - "type": "CLIPLoader", + "id": 66, + "type": "ModelSamplingAuraFlow", "pos": [ - -38.50741195678711, - 203.00167846679688 + 459.40179443359375, + -35.1873779296875 ], "size": [ - 380, + 270, + 58 + ], + "flags": {}, + "order": 7, + "mode": 0, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 137 + } + ], + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "links": [ + 125 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.64", + "Node name for S&R": "ModelSamplingAuraFlow" + }, + "widgets_values": [ + 3.1000000000000005 + ] + }, + { + "id": 76, + "type": "CLIPLoaderGGUFMultiGPU", + "pos": [ + -28.469432830810547, + 225.77920532226562 + ], + "size": [ + 360.6989440917969, 106 ], "flags": {}, + "order": 0, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "CLIP", + "type": "CLIP", + "links": [ + 135, + 136 + ] + } + ], + "properties": { + "cnr_id": "comfyui-multigpu", + "ver": "0d6dfc7524472943ba912a6ec3088757edba15c3", + "Node name for S&R": "CLIPLoaderGGUFMultiGPU" + }, + "widgets_values": [ + "Qwen2.5-VL-7B-Instruct-Q4_K_S.gguf", + "qwen_image", + "cuda:1" + ], + "color": "#008181", + "bgcolor": "rgba(24,24,27,.9)" + }, + { + "id": 70, + "type": "VAELoaderMultiGPU", + "pos": [ + -30.621204376220703, + 408.86016845703125 + ], + "size": [ + 367.14569091796875, + 82 + ], + "flags": {}, "order": 1, "mode": 0, "inputs": [], "outputs": [ { - "name": "CLIP", - "type": "CLIP", - "slot_index": 0, + "name": "VAE", + "type": "VAE", "links": [ - 74, - 75 + 130 ] } ], "properties": { - "Node name for S&R": "CLIPLoader" + "cnr_id": "comfyui-multigpu", + "ver": "0d6dfc7524472943ba912a6ec3088757edba15c3", + "Node name for S&R": "VAELoaderMultiGPU" }, "widgets_values": [ - "qwen_2.5_vl_7b_fp8_scaled.safetensors", - "qwen_image", - "cpu" + "qwen_image_vae.safetensors", + "cuda:1" ], - "color": "#223", - "bgcolor": "#335" - }, - { - "id": 68, - "type": "Note", - "pos": [ - 913.0664672851562, - -0.3729564845561981 - ], - "size": [ - 261.87744140625, - 102.99000549316406 - ], - "flags": {}, - "order": 2, - "mode": 0, - "inputs": [], - "outputs": [], - "properties": {}, - "widgets_values": [ - "Increase the shift if you get too many blury/dark/bad images. Decrease if you want to try increasing detail." - ], - "color": "#432", - "bgcolor": "#653" - }, - { - "id": 67, - "type": "Note", - "pos": [ - 874.5732421875, - 755.3063354492188 - ], - "size": [ - 307.4002380371094, - 127.38092803955078 - ], - "flags": {}, - "order": 3, - "mode": 0, - "inputs": [], - "outputs": [], - "properties": {}, - "widgets_values": [ - "Set cfg to 1.0 for a speed boost at the cost of consistency. Samplers like res_multistep work pretty well at cfg 1.0\n\nThe official number of steps is 50 but I think that's too much. Even just 10 steps seems to work." - ], - "color": "#432", - "bgcolor": "#653" + "color": "#008181", + "bgcolor": "rgba(24,24,27,.9)" }, { "id": 6, @@ -308,7 +196,7 @@ { "name": "clip", "type": "CLIP", - "link": 74 + "link": 136 } ], "outputs": [ @@ -323,122 +211,233 @@ ], "title": "CLIP Text Encode (Positive Prompt)", "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.64", "Node name for S&R": "CLIPTextEncode" }, "widgets_values": [ - "A towering technological monolith in a cyberpunk cityscape at night, with \"DisTorch 2\" emblazoned across its surface in massive neon blue-green mixed with purple letters that illuminate the surrounding buildings. The text occupies the central third of the frame, crafted from glowing plasma tubes and crackling energy. \"now with .safetensors!\" in same styling but smaller, italic version of the font splashed in the lower right-hand corner of the image. Rain-slicked streets below reflect the brilliant signage, while holographic advertisements and flying vehicles populate the background. Moody atmospheric lighting, heavy contrast, photorealistic textures, cinematic color grading. " + "A towering technological monolith in a cyberpunk cityscape at night, with \"GGUF DisTorch 2\" emblazoned across its surface in massive neon blue-green mixed with purple letters that illuminate the surrounding buildings. The text occupies the central third of the frame, crafted from glowing plasma tubes and crackling energy. Rain-slicked streets below reflect the brilliant signage, while holographic advertisements and flying vehicles populate the background. Moody atmospheric lighting, heavy contrast, photorealistic textures, cinematic color grading. " ], "color": "#232", "bgcolor": "#353" }, { - "id": 70, - "type": "VAELoaderMultiGPU", + "id": 8, + "type": "VAEDecode", "pos": [ - -30.621204376220703, - 408.86016845703125 + 932.9422607421875, + 11.704089164733887 ], "size": [ - 337.2979431152344, - 82 + 210, + 46 + ], + "flags": {}, + "order": 9, + "mode": 0, + "inputs": [ + { + "name": "samples", + "type": "LATENT", + "link": 128 + }, + { + "name": "vae", + "type": "VAE", + "link": 130 + } + ], + "outputs": [ + { + "name": "IMAGE", + "type": "IMAGE", + "slot_index": 0, + "links": [ + 110 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.64", + "Node name for S&R": "VAEDecode" + }, + "widgets_values": [] + }, + { + "id": 7, + "type": "CLIPTextEncode", + "pos": [ + 422.6140441894531, + 397.7400207519531 + ], + "size": [ + 425.27801513671875, + 182.3540496826172 + ], + "flags": { + "collapsed": true + }, + "order": 5, + "mode": 0, + "inputs": [ + { + "name": "clip", + "type": "CLIP", + "link": 135 + } + ], + "outputs": [ + { + "name": "CONDITIONING", + "type": "CONDITIONING", + "slot_index": 0, + "links": [ + 52 + ] + } + ], + "title": "CLIP Text Encode (Negative Prompt)", + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.64", + "Node name for S&R": "CLIPTextEncode" + }, + "widgets_values": [ + " " + ], + "color": "#322", + "bgcolor": "#533" + }, + { + "id": 58, + "type": "EmptySD3LatentImage", + "pos": [ + 448.2394104003906, + 480.706787109375 + ], + "size": [ + 270, + 106 + ], + "flags": {}, + "order": 2, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "LATENT", + "type": "LATENT", + "links": [ + 107 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.64", + "Node name for S&R": "EmptySD3LatentImage" + }, + "widgets_values": [ + 1328, + 1328, + 1 + ] + }, + { + "id": 77, + "type": "UnetLoaderGGUFDisTorch2MultiGPU", + "pos": [ + -30.83705711364746, + -24.04859733581543 + ], + "size": [ + 363.6120910644531, + 185.86599731445312 + ], + "flags": {}, + "order": 3, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "links": [ + 137 + ] + } + ], + "properties": { + "cnr_id": "comfyui-multigpu", + "ver": "0d6dfc7524472943ba912a6ec3088757edba15c3", + "Node name for S&R": "UnetLoaderGGUFDisTorch2MultiGPU" + }, + "widgets_values": [ + "qwen-image-Q3_K_S.gguf", + "cuda:0", + 4.2, + "cpu", + "", + true + ], + "color": "#008181", + "bgcolor": "rgba(24,24,27,.9)" + }, + { + "id": 75, + "type": "MarkdownNote", + "pos": [ + -713.5603637695312, + -38.757911682128906 + ], + "size": [ + 648.826904296875, + 649.345947265625 ], "flags": {}, "order": 4, "mode": 0, "inputs": [], - "outputs": [ - { - "name": "VAE", - "type": "VAE", - "links": [ - 130 - ] - } - ], - "properties": { - "Node name for S&R": "VAELoaderMultiGPU" - }, + "outputs": [], + "title": "ComfyUI-MultiGPU Note - ComfyUI-GGUF UNETDisTorch2Loader, DualClipLoader Workflow", + "properties": {}, "widgets_values": [ - "qwen_image_vae.safetensors", - "cuda:1" + "A DisTorch2 FLUX.dev workflow with GGUF UNet DisTorch2 and CLIP to test ComfyUI-GGUF integration. In this case we are using the DisTorch2 node to statically allocate approximately half of the main UNet model to the cpu.\n\n## Custom Node\n- [ComfyUI-GGUF](https://github.com/city96/ComfyUI-GGUF)\n- [ComfyUI-MultiGPU](https://github.com/pollockjj/ComfyUI-MultiGPU)\n```\nšŸ“‚ ComfyUI/\nā”œā”€ā”€ šŸ“‚ custom_nodes/\n│ ā”œā”€ā”€ šŸ“‚ ComfyUI-GGUF/\n│ ā”œā”€ā”€ šŸ“‚ ComfyUI-MultiGPU/\n```\n## Model links\n\n**Diffusion model**\n- [qwen-image-Q3_K_S.gguf](https://huggingface.co/city96/Qwen-Image-gguf/resolve/main/qwen-image-Q3_K_S.gguf)\n\n**CLIP**\n- [Qwen2.5-VL-7B-Instruct-Q4_K_S.gguf](https://huggingface.co/unsloth/Qwen2.5-VL-7B-Instruct-GGUF/resolve/main/Qwen2.5-VL-7B-Instruct-Q4_K_S.gguf)\n\n**VAE**\n- [qwen_image_vae.safetensors](https://huggingface.co/Comfy-Org/Qwen-Image_ComfyUI/blob/main/split_files/vae/qwen_image_vae.safetensors)\n\nModel Storage Location\n\n```\nšŸ“‚ ComfyUI/\nā”œā”€ā”€ šŸ“‚ models/\n│ ā”œā”€ā”€ šŸ“‚ clip/\n│ │ └── Qwen2.5-VL-7B-Instruct-Q4_K_S.gguf\n│ ā”œā”€ā”€ šŸ“‚ unet/\n│ │ ā”œā”€ā”€ qwen-image-Q3_K_S.gguf [šŸŸ©šŸŸ©šŸŸ©šŸŸ©šŸŸ©āš™ļøāš™ļøāš™ļøāš™ļøāš™ļø]\n│ ā”œā”€ā”€ šŸ“‚ vae/\n│ │ └── qwen_image_vae.safetensors\n```\n\n```\nšŸ–„ļø Device Mapping\nā”œā”€ā”€ 🟢 cuda:0\n│ └── qwen-image-Q3_K_S.gguf [🟩🟩🟩🟩🟩]\nā”œā”€ā”€ 🟣 cuda:1\n│ └── Qwen2.5-VL-7B-Instruct-Q4_K_S.gguf\n│ └── qwen_image_vae.safetensors\nā”œā”€ā”€ āš™ļø cpu\n│ └── qwen-image-Q3_K_S.gguf [āš™ļøāš™ļøāš™ļøāš™ļøāš™ļø]\n\n```" ], - "color": "#233", - "bgcolor": "#355" + "color": "#008181", + "bgcolor": "rgba(24,24,27,.9)" }, { - "id": 66, - "type": "ModelSamplingAuraFlow", + "id": 60, + "type": "SaveImage", "pos": [ - 459.40179443359375, - -35.1873779296875 + 1275.1832275390625, + -41.704383850097656 ], "size": [ - 270, - 58 + 821.0496215820312, + 871.7067260742188 ], "flags": {}, - "order": 8, + "order": 10, "mode": 0, "inputs": [ { - "name": "model", - "type": "MODEL", - "link": 134 - } - ], - "outputs": [ - { - "name": "MODEL", - "type": "MODEL", - "links": [ - 125 - ] + "name": "images", + "type": "IMAGE", + "link": 110 } ], + "outputs": [], "properties": { - "Node name for S&R": "ModelSamplingAuraFlow" + "cnr_id": "comfy-core", + "ver": "0.3.64", + "Node name for S&R": "SaveImage" }, "widgets_values": [ - 3.1000000000000005 + "MultiGPU" ] - }, - { - "id": 71, - "type": "UNETLoaderDisTorch2MultiGPU", - "pos": [ - -18.269481658935547, - -40.56364059448242 - ], - "size": [ - 351.41351318359375, - 179.5890655517578 - ], - "flags": {}, - "order": 5, - "mode": 0, - "inputs": [], - "outputs": [ - { - "name": "MODEL", - "type": "MODEL", - "links": [ - 134 - ] - } - ], - "properties": { - "Node name for S&R": "UNETLoaderDisTorch2MultiGPU" - }, - "widgets_values": [ - "qwen_image_fp8_e4m3fn.safetensors", - "fp8_e4m3fn", - "cuda:0", - 4, - "cpu", - "" - ], - "color": "#233", - "bgcolor": "#355" } ], "links": [ @@ -458,22 +457,6 @@ 2, "CONDITIONING" ], - [ - 74, - 38, - 0, - 6, - 0, - "CLIP" - ], - [ - 75, - 38, - 0, - 7, - 0, - "CLIP" - ], [ 107, 58, @@ -515,8 +498,24 @@ "VAE" ], [ - 134, - 71, + 135, + 76, + 0, + 7, + 0, + "CLIP" + ], + [ + 136, + 76, + 0, + 6, + 0, + "CLIP" + ], + [ + 137, + 77, 0, 66, 0, @@ -527,13 +526,13 @@ "config": {}, "extra": { "ds": { - "scale": 0.9229599817706498, + "scale": 0.7627768444385551, "offset": [ - 81.82659533721916, - 197.28454065770217 + 811.7802596892885, + 398.7650738399946 ] }, - "frontendVersion": "1.24.4", + "frontendVersion": "1.27.10", "VHS_latentpreview": false, "VHS_latentpreviewrate": 0, "VHS_MetadataImage": true, diff --git a/example_workflows/ComfyUI-WanVideoWrapper wanvideo2_2 I2V A14B GGUF.jpg b/example_workflows/ComfyUI-WanVideoWrapper wanvideo2_2 I2V A14B GGUF.jpg new file mode 100755 index 0000000..640ba8e Binary files /dev/null and b/example_workflows/ComfyUI-WanVideoWrapper wanvideo2_2 I2V A14B GGUF.jpg differ diff --git a/example_workflows/wannvideowrapper/wanvideo2_2_I2V_A14B_example_WIP_Multigpu.json b/example_workflows/ComfyUI-WanVideoWrapper wanvideo2_2 I2V A14B GGUF.json similarity index 83% rename from example_workflows/wannvideowrapper/wanvideo2_2_I2V_A14B_example_WIP_Multigpu.json rename to example_workflows/ComfyUI-WanVideoWrapper wanvideo2_2 I2V A14B GGUF.json index 4c3dd48..e4fdb45 100755 --- a/example_workflows/wannvideowrapper/wanvideo2_2_I2V_A14B_example_WIP_Multigpu.json +++ b/example_workflows/ComfyUI-WanVideoWrapper wanvideo2_2 I2V A14B GGUF.json @@ -1,196 +1,9 @@ { "id": "c6e410bc-5e2c-460b-ae81-c91b6094fbb1", "revision": 0, - "last_node_id": 116, + "last_node_id": 117, "last_link_id": 215, "nodes": [ - { - "id": 50, - "type": "CLIPTextEncode", - "pos": [ - 354.00396728515625, - 922.6547241210938 - ], - "size": [ - 400, - 200 - ], - "flags": {}, - "order": 14, - "mode": 2, - "inputs": [ - { - "name": "clip", - "type": "CLIP", - "link": 53 - } - ], - "outputs": [ - { - "name": "CONDITIONING", - "type": "CONDITIONING", - "slot_index": 0, - "links": [ - 55 - ] - } - ], - "properties": { - "cnr_id": "comfy-core", - "ver": "0.3.44", - "Node name for S&R": "CLIPTextEncode" - }, - "widgets_values": [ - "č‰²č°ƒč‰³äø½ļ¼Œčæ‡ę›ļ¼Œé™ę€ļ¼Œē»†čŠ‚ęØ”ē³Šäøęø…ļ¼Œå­—å¹•ļ¼Œé£Žę ¼ļ¼Œä½œå“ļ¼Œē”»ä½œļ¼Œē”»é¢ļ¼Œé™ę­¢ļ¼Œę•“ä½“å‘ē°ļ¼Œęœ€å·®č“Øé‡ļ¼Œä½Žč“Øé‡ļ¼ŒJPEGåŽ‹ē¼©ę®‹ē•™ļ¼Œäø‘é™‹ēš„ļ¼Œę®‹ē¼ŗēš„ļ¼Œå¤šä½™ēš„ę‰‹ęŒ‡ļ¼Œē”»å¾—äøå„½ēš„ę‰‹éƒØļ¼Œē”»å¾—äøå„½ēš„č„øéƒØļ¼Œē•øå½¢ēš„ļ¼ŒęÆå®¹ēš„ļ¼Œå½¢ę€ē•øå½¢ēš„č‚¢ä½“ļ¼Œę‰‹ęŒ‡čžåˆļ¼Œé™ę­¢äøåŠØēš„ē”»é¢ļ¼Œę‚ä¹±ēš„čƒŒę™Æļ¼Œäø‰ę”č…æļ¼ŒčƒŒę™Æäŗŗå¾ˆå¤šļ¼Œå€’ē€čµ°" - ], - "color": "#432", - "bgcolor": "#653" - }, - { - "id": 48, - "type": "CLIPLoader", - "pos": [ - -5.996182441711426, - 672.6546020507812 - ], - "size": [ - 315, - 106 - ], - "flags": {}, - "order": 0, - "mode": 2, - "inputs": [], - "outputs": [ - { - "name": "CLIP", - "type": "CLIP", - "slot_index": 0, - "links": [ - 52, - 53 - ] - } - ], - "properties": { - "cnr_id": "comfy-core", - "ver": "0.3.44", - "Node name for S&R": "CLIPLoader" - }, - "widgets_values": [ - "umt5_xxl_fp16.safetensors", - "wan", - "default" - ], - "color": "#432", - "bgcolor": "#653" - }, - { - "id": 51, - "type": "Note", - "pos": [ - 24.003835678100586, - 502.65411376953125 - ], - "size": [ - 253.16725158691406, - 88 - ], - "flags": {}, - "order": 1, - "mode": 0, - "inputs": [], - "outputs": [], - "properties": {}, - "widgets_values": [ - "You can also use native ComfyUI text encoding with these nodes instead of the original, the models are node specific and can't otherwise be mixed." - ], - "color": "#432", - "bgcolor": "#653" - }, - { - "id": 49, - "type": "CLIPTextEncode", - "pos": [ - 354.00396728515625, - 672.6546020507812 - ], - "size": [ - 400, - 200 - ], - "flags": {}, - "order": 13, - "mode": 2, - "inputs": [ - { - "name": "clip", - "type": "CLIP", - "link": 52 - } - ], - "outputs": [ - { - "name": "CONDITIONING", - "type": "CONDITIONING", - "slot_index": 0, - "links": [ - 54 - ] - } - ], - "properties": { - "cnr_id": "comfy-core", - "ver": "0.3.44", - "Node name for S&R": "CLIPTextEncode" - }, - "widgets_values": [ - "high quality nature video featuring a red panda balancing on a bamboo stem while a bird lands on it's head, on the background there is a waterfall" - ], - "color": "#432", - "bgcolor": "#653" - }, - { - "id": 46, - "type": "WanVideoTextEmbedBridge", - "pos": [ - 804.0042724609375, - 662.6546020507812 - ], - "size": [ - 315, - 46 - ], - "flags": {}, - "order": 21, - "mode": 2, - "inputs": [ - { - "name": "positive", - "type": "CONDITIONING", - "link": 54 - }, - { - "name": "negative", - "shape": 7, - "type": "CONDITIONING", - "link": 55 - } - ], - "outputs": [ - { - "name": "text_embeds", - "type": "WANVIDEOTEXTEMBEDS", - "links": null - } - ], - "properties": { - "cnr_id": "ComfyUI-WanVideoWrapper", - "ver": "998a69cc0acbec503001b8b0ce0a5d5404420e1e", - "Node name for S&R": "WanVideoTextEmbedBridge" - }, - "widgets_values": [] - }, { "id": 92, "type": "WanVideoSetBlockSwap", @@ -203,7 +16,7 @@ 46 ], "flags": {}, - "order": 19, + "order": 11, "mode": 0, "inputs": [ { @@ -236,186 +49,6 @@ "color": "#223", "bgcolor": "#335" }, - { - "id": 69, - "type": "GetImageSizeAndCount", - "pos": [ - 2725.78076171875, - -249.85873413085938 - ], - "size": [ - 240.41265869140625, - 86 - ], - "flags": {}, - "order": 29, - "mode": 0, - "inputs": [ - { - "name": "image", - "type": "IMAGE", - "link": 211 - } - ], - "outputs": [ - { - "name": "image", - "type": "IMAGE", - "links": [ - 77 - ] - }, - { - "label": "704 width", - "name": "width", - "type": "INT", - "links": null - }, - { - "label": "512 height", - "name": "height", - "type": "INT", - "links": null - }, - { - "label": "81 count", - "name": "count", - "type": "INT", - "links": null - } - ], - "properties": { - "cnr_id": "comfyui-kjnodes", - "ver": "a6b867b63a29ca48ddb15c589e17a9f2d8530d57", - "Node name for S&R": "GetImageSizeAndCount" - }, - "widgets_values": [] - }, - { - "id": 56, - "type": "WanVideoLoraSelect", - "pos": [ - -764.6182250976562, - -480.6791076660156 - ], - "size": [ - 580.85986328125, - 154.09483337402344 - ], - "flags": {}, - "order": 2, - "mode": 0, - "inputs": [ - { - "name": "prev_lora", - "shape": 7, - "type": "WANVIDLORA", - "link": null - }, - { - "name": "blocks", - "shape": 7, - "type": "SELECTEDBLOCKS", - "link": null - } - ], - "outputs": [ - { - "name": "lora", - "type": "WANVIDLORA", - "links": [ - 110 - ] - } - ], - "properties": { - "cnr_id": "ComfyUI-WanVideoWrapper", - "ver": "998a69cc0acbec503001b8b0ce0a5d5404420e1e", - "Node name for S&R": "WanVideoLoraSelect" - }, - "widgets_values": [ - "WanVideo/Lightx2v/lightx2v_I2V_14B_480p_cfg_step_distill_rank64_bf16.safetensors", - 3, - false, - false - ], - "color": "#223", - "bgcolor": "#335" - }, - { - "id": 97, - "type": "WanVideoLoraSelect", - "pos": [ - -748.1927490234375, - -265.5889587402344 - ], - "size": [ - 575.3505859375, - 165.56051635742188 - ], - "flags": {}, - "order": 3, - "mode": 0, - "inputs": [ - { - "name": "prev_lora", - "shape": 7, - "type": "WANVIDLORA", - "link": null - }, - { - "name": "blocks", - "shape": 7, - "type": "SELECTEDBLOCKS", - "link": null - } - ], - "outputs": [ - { - "name": "lora", - "type": "WANVIDLORA", - "links": [ - 169 - ] - } - ], - "properties": { - "cnr_id": "ComfyUI-WanVideoWrapper", - "ver": "998a69cc0acbec503001b8b0ce0a5d5404420e1e", - "Node name for S&R": "WanVideoLoraSelect" - }, - "widgets_values": [ - "WanVideo/Lightx2v/lightx2v_I2V_14B_480p_cfg_step_distill_rank64_bf16.safetensors", - 1, - false, - false - ], - "color": "#223", - "bgcolor": "#335" - }, - { - "id": 44, - "type": "Note", - "pos": [ - -880.5595092773438, - -862.414306640625 - ], - "size": [ - 303.0501403808594, - 88 - ], - "flags": {}, - "order": 4, - "mode": 0, - "inputs": [], - "outputs": [], - "properties": {}, - "widgets_values": [ - "If you have Triton installed, connect this for ~30% speed increase" - ], - "color": "#432", - "bgcolor": "#653" - }, { "id": 102, "type": "Note", @@ -428,7 +61,7 @@ 88 ], "flags": {}, - "order": 5, + "order": 0, "mode": 0, "inputs": [], "outputs": [], @@ -451,7 +84,7 @@ 46 ], "flags": {}, - "order": 22, + "order": 18, "mode": 0, "inputs": [ { @@ -484,19 +117,62 @@ "color": "#223", "bgcolor": "#335" }, + { + "id": 116, + "type": "WanVideoBlockSwapMultiGPU", + "pos": [ + 515.2559814453125, + -589.2463989257812 + ], + "size": [ + 292.8716735839844, + 226 + ], + "flags": {}, + "order": 1, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "block_swap_args", + "type": "BLOCKSWAPARGS", + "links": [ + 214, + 215 + ] + } + ], + "properties": { + "cnr_id": "comfyui-multigpu", + "ver": "db931d66c31acbcfce26f29babfb552509e586aa", + "Node name for S&R": "WanVideoBlockSwapMultiGPU" + }, + "widgets_values": [ + 40, + true, + true, + false, + 0, + 0, + false, + "cuda:1" + ], + "color": "#008181", + "bgcolor": "rgba(24,24,27,.9)" + }, { "id": 80, "type": "WanVideoSetLoRAs", "pos": [ - 985.8822021484375, - -458.0684814453125 + 854.084716796875, + -533.3812866210938 ], "size": [ 222.27981567382812, 46 ], "flags": {}, - "order": 23, + "order": 17, "mode": 0, "inputs": [ { @@ -527,67 +203,19 @@ "color": "#223", "bgcolor": "#335" }, - { - "id": 95, - "type": "CreateCFGScheduleFloatList", - "pos": [ - 1455.8336181640625, - 44.19880294799805 - ], - "size": [ - 298.3199157714844, - 228 - ], - "flags": {}, - "order": 15, - "mode": 0, - "inputs": [ - { - "name": "steps", - "type": "INT", - "widget": { - "name": "steps" - }, - "link": 165 - } - ], - "outputs": [ - { - "name": "float_list", - "type": "FLOAT", - "links": [ - 186 - ] - } - ], - "properties": { - "cnr_id": "ComfyUI-WanVideoWrapper", - "ver": "7e290c67bff1f906cdab84523018573f6c9d4d7f", - "Node name for S&R": "CreateCFGScheduleFloatList" - }, - "widgets_values": [ - 30, - 2, - 2, - "linear", - 0, - 0.01, - "[2.0, 1.0, 1.0, 1.0, 1.0, 1.0]" - ] - }, { "id": 79, "type": "WanVideoSetLoRAs", "pos": [ - 969.6483764648438, - -216.53614807128906 + 825.959716796875, + -259.14739990234375 ], "size": [ 222.27981567382812, 46 ], "flags": {}, - "order": 25, + "order": 20, "mode": 0, "inputs": [ { @@ -621,93 +249,129 @@ "bgcolor": "#335" }, { - "id": 94, - "type": "INTConstant", + "id": 69, + "type": "GetImageSizeAndCount", "pos": [ - 1446.0140380859375, - -77.41889953613281 + 1925.56787109375, + -1228.0408935546875 ], "size": [ - 210, - 58 + 240.41265869140625, + 86 ], "flags": {}, - "order": 6, + "order": 24, "mode": 0, - "inputs": [], - "outputs": [ + "inputs": [ { - "name": "value", - "type": "INT", + "name": "image", + "type": "IMAGE", + "link": 211 + } + ], + "outputs": [ + { + "name": "image", + "type": "IMAGE", "links": [ - 165, - 184, - 193 + 77 ] + }, + { + "label": "704 width", + "name": "width", + "type": "INT", + "links": null + }, + { + "label": "704 height", + "name": "height", + "type": "INT", + "links": null + }, + { + "label": "81 count", + "name": "count", + "type": "INT", + "links": null } ], - "title": "Steps", "properties": { "cnr_id": "comfyui-kjnodes", "ver": "a6b867b63a29ca48ddb15c589e17a9f2d8530d57", - "Node name for S&R": "INTConstant" + "Node name for S&R": "GetImageSizeAndCount" }, - "widgets_values": [ - 6 - ], - "color": "#1b4669", - "bgcolor": "#29699c" + "widgets_values": [] }, { - "id": 91, - "type": "INTConstant", + "id": 115, + "type": "WanVideoDecodeMultiGPU", "pos": [ - 1473.2628173828125, - 579.54443359375 + 2106.275390625, + -1017.4448852539062 ], "size": [ - 210, - 58 + 271.8716735839844, + 218 ], "flags": {}, - "order": 7, + "order": 23, "mode": 0, - "inputs": [], + "inputs": [ + { + "name": "vae", + "type": "WANVAE", + "link": 209 + }, + { + "name": "load_device", + "type": "MULTIGPUDEVICE", + "link": 210 + }, + { + "name": "samples", + "type": "LATENT", + "link": 212 + } + ], "outputs": [ { - "name": "value", - "type": "INT", + "name": "images", + "type": "IMAGE", "links": [ - 187, - 194 + 211 ] } ], - "title": "Split_step", "properties": { - "cnr_id": "comfyui-kjnodes", - "ver": "a6b867b63a29ca48ddb15c589e17a9f2d8530d57", - "Node name for S&R": "INTConstant" + "cnr_id": "comfyui-multigpu", + "ver": "db931d66c31acbcfce26f29babfb552509e586aa", + "Node name for S&R": "WanVideoDecodeMultiGPU" }, "widgets_values": [ - 3 + false, + 272, + 272, + 144, + 128, + "default" ], - "color": "#1b4669", - "bgcolor": "#29699c" + "color": "#008181", + "bgcolor": "rgba(24,24,27,.9)" }, { "id": 60, "type": "VHS_VideoCombine", "pos": [ - 3150, - -390 + 2330.95849609375, + -665.5919799804688 ], "size": [ 698.6392211914062, - 841.5557861328125 + 1026.63916015625 ], "flags": {}, - "order": 30, + "order": 25, "mode": 0, "inputs": [ { @@ -761,127 +425,187 @@ "hidden": false, "paused": false, "params": { - "filename": "WanVideo2_2_I2V_00041.mp4", + "filename": "WanVideo2_2_I2V_00045.mp4", "subfolder": "", "type": "output", "format": "video/h264-mp4", "frame_rate": 16, - "workflow": "WanVideo2_2_I2V_00041.png", - "fullpath": "/home/johnj/ComfyUI/output/WanVideo2_2_I2V_00041.mp4" + "workflow": "WanVideo2_2_I2V_00045.png", + "fullpath": "/home/johnj/ComfyUI/output/WanVideo2_2_I2V_00045.mp4" } } } }, { - "id": 109, - "type": "WanVideoModelLoaderMultiGPU", + "id": 68, + "type": "ImageResizeKJv2", "pos": [ - -48.799888610839844, - -768.8370971679688 + 1107.4034423828125, + -1168.68896484375 ], "size": [ - 450.2710876464844, - 342 + 270, + 336 ], "flags": {}, - "order": 18, + "order": 16, "mode": 0, "inputs": [ { - "name": "compile_args", - "shape": 7, - "type": "WANCOMPILEARGS", - "link": 213 + "name": "image", + "type": "IMAGE", + "link": 71 }, { - "name": "block_swap_args", + "name": "mask", "shape": 7, - "type": "BLOCKSWAPARGS", - "link": null - }, - { - "name": "lora", - "shape": 7, - "type": "WANVIDLORA", - "link": null - }, - { - "name": "vram_management_args", - "shape": 7, - "type": "VRAM_MANAGEMENTARGS", - "link": null - }, - { - "name": "extra_model", - "shape": 7, - "type": "VACEPATH", - "link": null - }, - { - "name": "fantasytalking_model", - "shape": 7, - "type": "FANTASYTALKINGMODEL", - "link": null - }, - { - "name": "multitalk_model", - "shape": 7, - "type": "MULTITALKMODEL", - "link": null - }, - { - "name": "fantasyportrait_model", - "shape": 7, - "type": "FANTASYPORTRAITMODEL", + "type": "MASK", "link": null } ], "outputs": [ { - "name": "model", - "type": "WANVIDEOMODEL", + "name": "IMAGE", + "type": "IMAGE", "links": [ - 200 + 204 ] }, { - "name": "compute_device", + "name": "width", + "type": "INT", + "links": [ + 205 + ] + }, + { + "name": "height", + "type": "INT", + "links": [ + 206 + ] + }, + { + "name": "mask", + "type": "MASK", + "links": null + } + ], + "properties": { + "cnr_id": "comfyui-kjnodes", + "ver": "a6b867b63a29ca48ddb15c589e17a9f2d8530d57", + "Node name for S&R": "ImageResizeKJv2" + }, + "widgets_values": [ + 720, + 720, + "lanczos", + "resize", + "0, 0, 0", + "center", + 32, + "cpu" + ] + }, + { + "id": 99, + "type": "LoadWanVideoT5TextEncoderMultiGPU", + "pos": [ + 487.4730529785156, + 21.758373260498047 + ], + "size": [ + 348.9195251464844, + 150 + ], + "flags": {}, + "order": 2, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "wan_t5_model", + "type": "WANTEXTENCODER", + "links": [ + 172 + ] + }, + { + "name": "load_device", "type": "MULTIGPUDEVICE", "links": [ - 201 + 199 ] } ], "properties": { "cnr_id": "comfyui-multigpu", "ver": "db931d66c31acbcfce26f29babfb552509e586aa", - "Node name for S&R": "WanVideoModelLoaderMultiGPU" + "Node name for S&R": "LoadWanVideoT5TextEncoderMultiGPU" }, "widgets_values": [ - "WanVideo/2_2/Wan2_2-I2V-A14B-HIGH_fp8_e4m3fn_scaled_KJ.safetensors", - "fp16_fast", - "fp8_e4m3fn_scaled", - "offload_device", + "umt5-xxl-enc-bf16.safetensors", + "bf16", "cuda:0", - "sdpa", - "default" + "disabled" ], "color": "#008181", "bgcolor": "rgba(24,24,27,.9)" }, + { + "id": 35, + "type": "WanVideoTorchCompileSettings", + "pos": [ + -57.218780517578125, + -1194.65380859375 + ], + "size": [ + 390.5999755859375, + 202 + ], + "flags": {}, + "order": 3, + "mode": 4, + "inputs": [], + "outputs": [ + { + "name": "torch_compile_args", + "type": "WANCOMPILEARGS", + "slot_index": 0, + "links": [ + 198, + 213 + ] + } + ], + "properties": { + "cnr_id": "ComfyUI-WanVideoWrapper", + "ver": "998a69cc0acbec503001b8b0ce0a5d5404420e1e", + "Node name for S&R": "WanVideoTorchCompileSettings" + }, + "widgets_values": [ + "inductor", + false, + "default", + false, + 64, + true, + 128 + ] + }, { "id": 112, "type": "WanVideoImageToVideoEncodeMultiGPU", "pos": [ - 1388.4976806640625, - -903.1487426757812 + 1415.9361572265625, + -1230.95751953125 ], "size": [ 360.3492126464844, 410 ], "flags": {}, - "order": 24, + "order": 19, "mode": 0, "inputs": [ { @@ -988,15 +712,15 @@ "id": 114, "type": "WanVideoVAELoaderMultiGPU", "pos": [ - 1988.8050537109375, - -840.9067993164062 + 965.3035278320312, + -748.364501953125 ], "size": [ 294.1841735839844, 126 ], "flags": {}, - "order": 8, + "order": 4, "mode": 0, "inputs": [ { @@ -1038,216 +762,140 @@ "bgcolor": "rgba(24,24,27,.9)" }, { - "id": 115, - "type": "WanVideoDecodeMultiGPU", + "id": 91, + "type": "INTConstant", "pos": [ - 2517.043212890625, - -736.8970947265625 + 869.322265625, + -121.25193786621094 ], "size": [ - 271.8716735839844, - 218 + 210, + 58 ], "flags": {}, - "order": 28, - "mode": 0, - "inputs": [ - { - "name": "vae", - "type": "WANVAE", - "link": 209 - }, - { - "name": "load_device", - "type": "MULTIGPUDEVICE", - "link": 210 - }, - { - "name": "samples", - "type": "LATENT", - "link": 212 - } - ], - "outputs": [ - { - "name": "images", - "type": "IMAGE", - "links": [ - 211 - ] - } - ], - "properties": { - "cnr_id": "comfyui-multigpu", - "ver": "db931d66c31acbcfce26f29babfb552509e586aa", - "Node name for S&R": "WanVideoDecodeMultiGPU" - }, - "widgets_values": [ - false, - 272, - 272, - 144, - 128, - "default" - ], - "color": "#008181", - "bgcolor": "rgba(24,24,27,.9)" - }, - { - "id": 108, - "type": "WanVideoModelLoaderMultiGPU", - "pos": [ - -47.79293441772461, - -350.2671813964844 - ], - "size": [ - 458.3773498535156, - 342 - ], - "flags": {}, - "order": 17, - "mode": 0, - "inputs": [ - { - "name": "compile_args", - "shape": 7, - "type": "WANCOMPILEARGS", - "link": 198 - }, - { - "name": "block_swap_args", - "shape": 7, - "type": "BLOCKSWAPARGS", - "link": null - }, - { - "name": "lora", - "shape": 7, - "type": "WANVIDLORA", - "link": null - }, - { - "name": "vram_management_args", - "shape": 7, - "type": "VRAM_MANAGEMENTARGS", - "link": null - }, - { - "name": "extra_model", - "shape": 7, - "type": "VACEPATH", - "link": null - }, - { - "name": "fantasytalking_model", - "shape": 7, - "type": "FANTASYTALKINGMODEL", - "link": null - }, - { - "name": "multitalk_model", - "shape": 7, - "type": "MULTITALKMODEL", - "link": null - }, - { - "name": "fantasyportrait_model", - "shape": 7, - "type": "FANTASYPORTRAITMODEL", - "link": null - } - ], - "outputs": [ - { - "name": "model", - "type": "WANVIDEOMODEL", - "links": [ - 196 - ] - }, - { - "name": "compute_device", - "type": "MULTIGPUDEVICE", - "links": [ - 197 - ] - } - ], - "properties": { - "cnr_id": "comfyui-multigpu", - "ver": "db931d66c31acbcfce26f29babfb552509e586aa", - "Node name for S&R": "WanVideoModelLoaderMultiGPU" - }, - "widgets_values": [ - "WanVideo/2_2/Wan2_2-I2V-A14B-LOW_fp8_e4m3fn_scaled_KJ.safetensors", - "fp16_fast", - "fp8_e4m3fn_scaled", - "offload_device", - "cuda:0", - "sdpa", - "default" - ], - "color": "#008181", - "bgcolor": "rgba(24,24,27,.9)" - }, - { - "id": 99, - "type": "LoadWanVideoT5TextEncoderMultiGPU", - "pos": [ - 363.88275146484375, - 41.0692138671875 - ], - "size": [ - 348.9195251464844, - 150 - ], - "flags": {}, - "order": 9, + "order": 5, "mode": 0, "inputs": [], "outputs": [ { - "name": "wan_t5_model", - "type": "WANTEXTENCODER", + "name": "value", + "type": "INT", "links": [ - 172 + 187, + 194 ] - }, + } + ], + "title": "Split_step", + "properties": { + "cnr_id": "comfyui-kjnodes", + "ver": "a6b867b63a29ca48ddb15c589e17a9f2d8530d57", + "Node name for S&R": "INTConstant" + }, + "widgets_values": [ + 3 + ], + "color": "#1b4669", + "bgcolor": "#29699c" + }, + { + "id": 95, + "type": "CreateCFGScheduleFloatList", + "pos": [ + 1092.0882568359375, + -377.0962219238281 + ], + "size": [ + 298.3199157714844, + 228 + ], + "flags": {}, + "order": 15, + "mode": 0, + "inputs": [ { - "name": "load_device", - "type": "MULTIGPUDEVICE", + "name": "steps", + "type": "INT", + "widget": { + "name": "steps" + }, + "link": 165 + } + ], + "outputs": [ + { + "name": "float_list", + "type": "FLOAT", "links": [ - 199 + 186 ] } ], "properties": { - "cnr_id": "comfyui-multigpu", - "ver": "db931d66c31acbcfce26f29babfb552509e586aa", - "Node name for S&R": "LoadWanVideoT5TextEncoderMultiGPU" + "cnr_id": "ComfyUI-WanVideoWrapper", + "ver": "7e290c67bff1f906cdab84523018573f6c9d4d7f", + "Node name for S&R": "CreateCFGScheduleFloatList" }, "widgets_values": [ - "umt5-xxl-enc-bf16.safetensors", - "bf16", - "cuda:0", - "disabled" + 30, + 2, + 2, + "linear", + 0, + 0.01 + ] + }, + { + "id": 94, + "type": "INTConstant", + "pos": [ + 1142.3046875, + -517.5074462890625 ], - "color": "#008181", - "bgcolor": "rgba(24,24,27,.9)" + "size": [ + 210, + 58 + ], + "flags": {}, + "order": 6, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "value", + "type": "INT", + "links": [ + 165, + 184, + 193 + ] + } + ], + "title": "Steps", + "properties": { + "cnr_id": "comfyui-kjnodes", + "ver": "a6b867b63a29ca48ddb15c589e17a9f2d8530d57", + "Node name for S&R": "INTConstant" + }, + "widgets_values": [ + 6 + ], + "color": "#1b4669", + "bgcolor": "#29699c" }, { "id": 105, "type": "WanVideoSamplerMultiGPU", "pos": [ - 1822.2808837890625, - -346.01214599609375 + 1422.509765625, + -679.75634765625 ], "size": [ 327.80859375, 922 ], "flags": {}, - "order": 26, + "order": 21, "mode": 0, "inputs": [ { @@ -1404,7 +1052,7 @@ 30, 6, 8.000000000000002, - 914434359508585, + 668069490023304, "randomize", true, "dpm++_sde", @@ -1423,15 +1071,15 @@ "id": 106, "type": "WanVideoSamplerMultiGPU", "pos": [ - 2237.71875, - -350.4714660644531 + 1774.6383056640625, + -678.9400024414062 ], "size": [ 327.80859375, 922 ], "flags": {}, - "order": 27, + "order": 22, "mode": 0, "inputs": [ { @@ -1580,7 +1228,7 @@ 30, 1.0000000000000002, 8.000000000000002, - 459358799394648, + 40589387979507, "randomize", true, "dpm++_sde", @@ -1596,102 +1244,57 @@ "bgcolor": "rgba(24,24,27,.9)" }, { - "id": 35, - "type": "WanVideoTorchCompileSettings", + "id": 67, + "type": "LoadImage", "pos": [ - -550, - -870 + 753.1961059570312, + -1150.5321044921875 ], "size": [ - 390.5999755859375, - 202 + 274.080078125, + 314 ], "flags": {}, - "order": 10, - "mode": 4, - "inputs": [], - "outputs": [ - { - "name": "torch_compile_args", - "type": "WANCOMPILEARGS", - "slot_index": 0, - "links": [ - 198, - 213 - ] - } - ], - "properties": { - "cnr_id": "ComfyUI-WanVideoWrapper", - "ver": "998a69cc0acbec503001b8b0ce0a5d5404420e1e", - "Node name for S&R": "WanVideoTorchCompileSettings" - }, - "widgets_values": [ - "inductor", - false, - "default", - false, - 64, - true, - 128 - ] - }, - { - "id": 116, - "type": "WanVideoBlockSwapMultiGPU", - "pos": [ - 515.2559814453125, - -589.2463989257812 - ], - "size": [ - 292.8716735839844, - 226 - ], - "flags": {}, - "order": 11, + "order": 7, "mode": 0, "inputs": [], "outputs": [ { - "name": "block_swap_args", - "type": "BLOCKSWAPARGS", + "name": "IMAGE", + "type": "IMAGE", "links": [ - 214, - 215 + 71 ] + }, + { + "name": "MASK", + "type": "MASK", + "links": null } ], "properties": { - "cnr_id": "comfyui-multigpu", - "ver": "db931d66c31acbcfce26f29babfb552509e586aa", - "Node name for S&R": "WanVideoBlockSwapMultiGPU" + "cnr_id": "comfy-core", + "ver": "0.3.44", + "Node name for S&R": "LoadImage" }, "widgets_values": [ - 40, - true, - true, - false, - 0, - 0, - false, - "cuda:1" - ], - "color": "#008181", - "bgcolor": "rgba(24,24,27,.9)" + "sd15 checkpoint loader simple.jpg", + "image" + ] }, { "id": 100, "type": "WanVideoTextEncodeMultiGPU", "pos": [ - 800.8797607421875, - 19.50592613220215 + 868.4681396484375, + 11.781484603881836 ], "size": [ 400, 234 ], "flags": {}, - "order": 16, + "order": 12, "mode": 0, "inputs": [ { @@ -1729,7 +1332,7 @@ "Node name for S&R": "WanVideoTextEncodeMultiGPU" }, "widgets_values": [ - "Lines and text on a static Excel graph pulsate and glow", + "The words \"ComfyUI-WanVideoWrapper\" emblazoned across the scene of an animated cyberpunk cityscape", "č‰²č°ƒč‰³äø½ļ¼Œčæ‡ę›ļ¼Œé™ę€ļ¼Œē»†čŠ‚ęØ”ē³Šäøęø…ļ¼Œå­—å¹•ļ¼Œé£Žę ¼ļ¼Œä½œå“ļ¼Œē”»ä½œļ¼Œē”»é¢ļ¼Œé™ę­¢ļ¼Œę•“ä½“å‘ē°ļ¼Œęœ€å·®č“Øé‡ļ¼Œä½Žč“Øé‡ļ¼ŒJPEGåŽ‹ē¼©ę®‹ē•™ļ¼Œäø‘é™‹ēš„ļ¼Œę®‹ē¼ŗēš„ļ¼Œå¤šä½™ēš„ę‰‹ęŒ‡ļ¼Œē”»å¾—äøå„½ēš„ę‰‹éƒØļ¼Œē”»å¾—äøå„½ēš„č„øéƒØļ¼Œē•øå½¢ēš„ļ¼ŒęÆå®¹ēš„ļ¼Œå½¢ę€ē•øå½¢ēš„č‚¢ä½“ļ¼Œę‰‹ęŒ‡čžåˆļ¼Œé™ę­¢äøåŠØēš„ē”»é¢ļ¼Œę‚ä¹±ēš„čƒŒę™Æļ¼Œäø‰ę”č…æļ¼ŒčƒŒę™Æäŗŗå¾ˆå¤šļ¼Œå€’ē€čµ°", "cpu", false @@ -1738,150 +1341,327 @@ "bgcolor": "rgba(24,24,27,.9)" }, { - "id": 68, - "type": "ImageResizeKJv2", + "id": 56, + "type": "WanVideoLoraSelect", "pos": [ - 696.0801391601562, - -1143.5843505859375 + -135.46725463867188, + -56.22418212890625 ], "size": [ - 270, - 336 + 551.2889404296875, + 150 ], "flags": {}, - "order": 20, + "order": 8, "mode": 0, "inputs": [ { - "name": "image", - "type": "IMAGE", - "link": 71 + "name": "prev_lora", + "shape": 7, + "type": "WANVIDLORA", + "link": null }, { - "name": "mask", + "name": "blocks", "shape": 7, - "type": "MASK", + "type": "SELECTEDBLOCKS", "link": null } ], "outputs": [ { - "name": "IMAGE", - "type": "IMAGE", + "name": "lora", + "type": "WANVIDLORA", "links": [ - 204 + 110 ] - }, - { - "name": "width", - "type": "INT", - "links": [ - 205 - ] - }, - { - "name": "height", - "type": "INT", - "links": [ - 206 - ] - }, - { - "name": "mask", - "type": "MASK", - "links": null } ], "properties": { - "cnr_id": "comfyui-kjnodes", - "ver": "a6b867b63a29ca48ddb15c589e17a9f2d8530d57", - "Node name for S&R": "ImageResizeKJv2" + "cnr_id": "ComfyUI-WanVideoWrapper", + "ver": "998a69cc0acbec503001b8b0ce0a5d5404420e1e", + "Node name for S&R": "WanVideoLoraSelect" }, "widgets_values": [ - 720, - 720, - "lanczos", - "resize", - "0, 0, 0", - "center", - 32, - "cpu", - "Output: 1 x 704 x 512 | 4.12MB" - ] + "WanVideo/Lightx2v/wan2.2_i2v_lightx2v_4steps_lora_v1_high_noise.safetensors", + 3, + false, + false + ], + "color": "#223", + "bgcolor": "#335" }, { - "id": 67, - "type": "LoadImage", + "id": 97, + "type": "WanVideoLoraSelect", "pos": [ - 330.2861633300781, - -1144.739013671875 + -141.38307189941406, + 152.2328338623047 ], "size": [ - 274.080078125, - 314 + 532.1088256835938, + 159.2544708251953 ], "flags": {}, - "order": 12, + "order": 9, "mode": 0, - "inputs": [], - "outputs": [ + "inputs": [ { - "name": "IMAGE", - "type": "IMAGE", - "links": [ - 71 - ] + "name": "prev_lora", + "shape": 7, + "type": "WANVIDLORA", + "link": null }, { - "name": "MASK", - "type": "MASK", - "links": null + "name": "blocks", + "shape": 7, + "type": "SELECTEDBLOCKS", + "link": null + } + ], + "outputs": [ + { + "name": "lora", + "type": "WANVIDLORA", + "links": [ + 169 + ] } ], "properties": { - "cnr_id": "comfy-core", - "ver": "0.3.44", - "Node name for S&R": "LoadImage" + "cnr_id": "ComfyUI-WanVideoWrapper", + "ver": "998a69cc0acbec503001b8b0ce0a5d5404420e1e", + "Node name for S&R": "WanVideoLoraSelect" }, "widgets_values": [ - "wan2_2_benchmark_v2.png", - "image" - ] + "WanVideo/Lightx2v/wan2.2_i2v_lightx2v_4steps_lora_v1_low_noise.safetensors", + 1, + false, + false + ], + "color": "#223", + "bgcolor": "#335" + }, + { + "id": 117, + "type": "MarkdownNote", + "pos": [ + -964.5131225585938, + -883.290771484375 + ], + "size": [ + 777.6646728515625, + 937.3121337890625 + ], + "flags": {}, + "order": 10, + "mode": 0, + "inputs": [], + "outputs": [], + "title": "ComfyUI-MultiGPU Note - ComfyUI-WanVideoWrapper", + "properties": {}, + "widgets_values": [ + "These nodes are designed to work with ComfyUI-WanVideoWrapper they enable UNets, CLIPs, and VAEs to be loaded on any available device. This is a replication of the original workflow by kijai which can be found here: [wanvideo2_2_I2V_A14B_example_WIP.json](https://github.com/kijai/ComfyUI-WanVideoWrapper/blob/main/example_workflows/wanvideo2_2_I2V_A14B_example_WIP.json)\n\n## Custom Node\n- [ComfyUI-MultiGPU](https://github.com/pollockjj/ComfyUI-MultiGPU)\n- [ComfyUI-WanVideoWrapper](https://github.com/kijai/ComfyUI-WanVideoWrapper)\n```\nšŸ“‚ ComfyUI/\nā”œā”€ā”€ šŸ“‚ custom_nodes/\n│ ā”œā”€ā”€ šŸ“‚ ComfyUI-MultiGPU/\n│ ā”œā”€ā”€ šŸ“‚ ComfyUI-WanVideoWrapper\n```\n## Model links\n\n**Diffusion model**\n- [Wan2.2-I2V-A14B-HighNoise-Q5_K_M.gguf](https://huggingface.co/QuantStack/Wan2.2-I2V-A14B-GGUF/resolve/main/HighNoise/Wan2.2-I2V-A14B-HighNoise-Q5_K_M.gguf)\n- [Wan2.2-I2V-A14B-LowNoise-Q5_K_M.gguf](https://huggingface.co/QuantStack/Wan2.2-I2V-A14B-GGUF/resolve/main/LowNoise/Wan2.2-I2V-A14B-LowNoise-Q5_K_M.gguf)\n\n**CLIP**\n- [umt5_xxl_enc-bf16.safetensors](https://huggingface.co/Kijai/WanVideo_comfy/resolve/main/umt5-xxl-enc-bf16.safetensors)\n\n**VAE**\n- [wan_2.1_vae.safetensors](https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/blob/main/split_files/vae/wan_2.1_vae.safetensors)\n\n**LoRA**\n- [high_noise_model.safetensors](https://huggingface.co/lightx2v/Wan2.2-Lightning/resolve/main/Wan2.2-I2V-A14B-4steps-lora-rank64-Seko-V1/high_noise_model.safetensors)\n- [low_noise_model.safetensors](https://huggingface.co/lightx2v/Wan2.2-Lightning/resolve/main/Wan2.2-I2V-A14B-4steps-lora-rank64-Seko-V1/low_noise_model.safetensors)\n\n## Model Storage Location\n\n```\nšŸ“‚ ComfyUI/\nā”œā”€ā”€ šŸ“‚ models/\n│ ā”œā”€ā”€ šŸ“‚ clip/\n│ │ └── umt5_xxl_enc-bf16.safetensors\n│ ā”œā”€ā”€ šŸ“‚ unet/\n│ │ ā”œā”€ā”€ Wan2.2-I2V-A14B-HighNoise-Q5_K_M.gguf [🟩🟩🟩🟪🟪🟪🟪🟪🟪🟪]\n│ │ ā”œā”€ā”€ Wan2.2-I2V-A14B-LowNoise-Q5_K_M.gguf [🟩🟩🟩🟪🟪🟪🟪🟪🟪🟪]\n│ ā”œā”€ā”€ā”€šŸ“‚ loras/\n│ ā”œā”€ā”€ā”€ā”€ā”€šŸ“‚ Wan2.2-I2V-A14B-4steps-lora-rank64-Seko-V1/\n│ │ ā”œā”€ā”€ā”€ā”€ā”€ā”€ high_noise_model.safetensors [🟩🟩🟩🟪🟪🟪🟪🟪🟪🟪]\n│ │ └────── low_noise_model.safetensors [🟩🟩🟩🟪🟪🟪🟪🟪🟪🟪]\n│ ā”œā”€ā”€ šŸ“‚ vae/\n│ │ └── wan_2.1_vae.safetensors \n```\n## Device Mapping (Example: Two GPUs, 1 CPU)\n```\nšŸ–„ļø system \nā”œā”€ā”€ 🟢 cuda:0\n│ └── Wan2.2-I2V-A14B-HighNoise-Q5_K_M.gguf [🟩🟩🟩]\n│ └── Wan2.2-I2V-A14B-LowNoise-Q5_K_M.gguf [🟩🟩🟩]\n│ └── high_noise_model.safetensors [🟩🟩🟩]\n│ └── low_noise_model.safetensors [🟩🟩🟩]\n│ └── umt5_xxl_fp8_e4m3fn_scaled.safetensors\n│ └── wan_2.1_vae.safetensors\nā”œā”€ā”€ 🟣 cuda:1\n| └── Wan2.2-I2V-A14B-HighNoise-Q5_K_M.gguf [🟪🟪🟪🟪🟪🟪🟪]\n| └── Wan2.2-I2V-A14B-LowNoise-Q5_K_M.gguf [🟪🟪🟪🟪🟪🟪🟪]\n| └── high_noise_model.safetensors [🟪🟪🟪🟪🟪🟪🟪]\n| └── low_noise_model.safetensors [🟪🟪🟪🟪🟪🟪🟪]\nā”œā”€ā”€ āš™ļø cpu\n\n```" + ], + "color": "#008181", + "bgcolor": "rgba(24,24,27,.9)" + }, + { + "id": 109, + "type": "WanVideoModelLoaderMultiGPU", + "pos": [ + -14.040166854858398, + -871.1851806640625 + ], + "size": [ + 450.2710876464844, + 342 + ], + "flags": {}, + "order": 14, + "mode": 0, + "inputs": [ + { + "name": "compile_args", + "shape": 7, + "type": "WANCOMPILEARGS", + "link": 213 + }, + { + "name": "block_swap_args", + "shape": 7, + "type": "BLOCKSWAPARGS", + "link": null + }, + { + "name": "lora", + "shape": 7, + "type": "WANVIDLORA", + "link": null + }, + { + "name": "vram_management_args", + "shape": 7, + "type": "VRAM_MANAGEMENTARGS", + "link": null + }, + { + "name": "extra_model", + "shape": 7, + "type": "VACEPATH", + "link": null + }, + { + "name": "fantasytalking_model", + "shape": 7, + "type": "FANTASYTALKINGMODEL", + "link": null + }, + { + "name": "multitalk_model", + "shape": 7, + "type": "MULTITALKMODEL", + "link": null + }, + { + "name": "fantasyportrait_model", + "shape": 7, + "type": "FANTASYPORTRAITMODEL", + "link": null + } + ], + "outputs": [ + { + "name": "model", + "type": "WANVIDEOMODEL", + "links": [ + 200 + ] + }, + { + "name": "compute_device", + "type": "MULTIGPUDEVICE", + "links": [ + 201 + ] + } + ], + "properties": { + "cnr_id": "comfyui-multigpu", + "ver": "db931d66c31acbcfce26f29babfb552509e586aa", + "Node name for S&R": "WanVideoModelLoaderMultiGPU" + }, + "widgets_values": [ + "Wan2.2-I2V-A14B-HighNoise-Q5_K_M.gguf", + "fp16_fast", + "fp8_e4m3fn_scaled", + "offload_device", + "cuda:0", + "sageattn", + "default" + ], + "color": "#008181", + "bgcolor": "rgba(24,24,27,.9)" + }, + { + "id": 108, + "type": "WanVideoModelLoaderMultiGPU", + "pos": [ + -40.068668365478516, + -462.2707824707031 + ], + "size": [ + 458.3773498535156, + 342 + ], + "flags": {}, + "order": 13, + "mode": 0, + "inputs": [ + { + "name": "compile_args", + "shape": 7, + "type": "WANCOMPILEARGS", + "link": 198 + }, + { + "name": "block_swap_args", + "shape": 7, + "type": "BLOCKSWAPARGS", + "link": null + }, + { + "name": "lora", + "shape": 7, + "type": "WANVIDLORA", + "link": null + }, + { + "name": "vram_management_args", + "shape": 7, + "type": "VRAM_MANAGEMENTARGS", + "link": null + }, + { + "name": "extra_model", + "shape": 7, + "type": "VACEPATH", + "link": null + }, + { + "name": "fantasytalking_model", + "shape": 7, + "type": "FANTASYTALKINGMODEL", + "link": null + }, + { + "name": "multitalk_model", + "shape": 7, + "type": "MULTITALKMODEL", + "link": null + }, + { + "name": "fantasyportrait_model", + "shape": 7, + "type": "FANTASYPORTRAITMODEL", + "link": null + } + ], + "outputs": [ + { + "name": "model", + "type": "WANVIDEOMODEL", + "links": [ + 196 + ] + }, + { + "name": "compute_device", + "type": "MULTIGPUDEVICE", + "links": [ + 197 + ] + } + ], + "properties": { + "cnr_id": "comfyui-multigpu", + "ver": "db931d66c31acbcfce26f29babfb552509e586aa", + "Node name for S&R": "WanVideoModelLoaderMultiGPU" + }, + "widgets_values": [ + "Wan2.2-I2V-A14B-LowNoise-Q5_K_M.gguf", + "fp16_fast", + "fp8_e4m3fn_scaled", + "offload_device", + "cuda:0", + "sageattn", + "default" + ], + "color": "#008181", + "bgcolor": "rgba(24,24,27,.9)" } ], "links": [ - [ - 52, - 48, - 0, - 49, - 0, - "CLIP" - ], - [ - 53, - 48, - 0, - 50, - 0, - "CLIP" - ], - [ - 54, - 49, - 0, - 46, - 0, - "CONDITIONING" - ], - [ - 55, - 50, - 0, - 46, - 1, - "CONDITIONING" - ], [ 71, 67, @@ -2179,28 +1959,14 @@ "BLOCKSWAPARGS" ] ], - "groups": [ - { - "id": 1, - "title": "ComfyUI text encoding alternative", - "bounding": [ - -68.81207275390625, - 358.7208251953125, - 1210.621337890625, - 805.9080810546875 - ], - "color": "#3f789e", - "font_size": 24, - "flags": {} - } - ], + "groups": [], "config": {}, "extra": { "ds": { - "scale": 0.505447028499326, + "scale": 0.5559917313492586, "offset": [ - 329.46053758144194, - 1458.1424592955568 + 1049.3003683168295, + 1500.8605042177378 ] }, "frontendVersion": "1.27.10", diff --git a/example_workflows/ComfyUI-WanVideoWrapper wanvideo_1_3B control_lora.jpg b/example_workflows/ComfyUI-WanVideoWrapper wanvideo_1_3B control_lora.jpg new file mode 100755 index 0000000..ec7710f Binary files /dev/null and b/example_workflows/ComfyUI-WanVideoWrapper wanvideo_1_3B control_lora.jpg differ diff --git a/example_workflows/wannvideowrapper/wanvideo_1_3B_control_lora_example_01_MultiGPU.json b/example_workflows/ComfyUI-WanVideoWrapper wanvideo_1_3B control_lora.json similarity index 81% rename from example_workflows/wannvideowrapper/wanvideo_1_3B_control_lora_example_01_MultiGPU.json rename to example_workflows/ComfyUI-WanVideoWrapper wanvideo_1_3B control_lora.json index 32ebe53..850f7de 100755 --- a/example_workflows/wannvideowrapper/wanvideo_1_3B_control_lora_example_01_MultiGPU.json +++ b/example_workflows/ComfyUI-WanVideoWrapper wanvideo_1_3B control_lora.json @@ -1,218 +1,9 @@ { "id": "04f1de76-e363-4c27-bec7-eb184ac6e476", "revision": 0, - "last_node_id": 114, + "last_node_id": 115, "last_link_id": 175, "nodes": [ - { - "id": 36, - "type": "Note", - "pos": [ - 160, - -1010 - ], - "size": [ - 374.3061828613281, - 171.9547576904297 - ], - "flags": {}, - "order": 0, - "mode": 0, - "inputs": [], - "outputs": [], - "properties": {}, - "widgets_values": [ - "fp8_fast seems to cause huge quality degradation\n\nfp_16_fast enables \"Full FP16 Accmumulation in FP16 GEMMs\" feature available in the very latest pytorch nightly, this is around 20% speed boost. \n\nSageattn if you have it installed can be used for almost double inference speed" - ], - "color": "#432", - "bgcolor": "#653" - }, - { - "id": 35, - "type": "WanVideoTorchCompileSettings", - "pos": [ - -276.8500671386719, - -1050.6326904296875 - ], - "size": [ - 390.5999755859375, - 202 - ], - "flags": {}, - "order": 1, - "mode": 0, - "inputs": [], - "outputs": [ - { - "name": "torch_compile_args", - "type": "WANCOMPILEARGS", - "slot_index": 0, - "links": [] - } - ], - "properties": { - "cnr_id": "ComfyUI-WanVideoWrapper", - "ver": "76ea2aa6a664edbd553799f78d6bafdd23e34dc6", - "Node name for S&R": "WanVideoTorchCompileSettings" - }, - "widgets_values": [ - "inductor", - false, - "default", - false, - 64, - true, - 128 - ], - "color": "#223", - "bgcolor": "#335" - }, - { - "id": 44, - "type": "Note", - "pos": [ - -620.9041137695312, - -1049.732421875 - ], - "size": [ - 303.0501403808594, - 88 - ], - "flags": {}, - "order": 2, - "mode": 0, - "inputs": [], - "outputs": [], - "properties": {}, - "widgets_values": [ - "If you have Triton installed, connect this for ~30% speed increase" - ], - "color": "#432", - "bgcolor": "#653" - }, - { - "id": 53, - "type": "Note", - "pos": [ - 1329.0076904296875, - -810.7708740234375 - ], - "size": [ - 324.64129638671875, - 159.47401428222656 - ], - "flags": {}, - "order": 3, - "mode": 0, - "inputs": [], - "outputs": [], - "properties": {}, - "widgets_values": [ - "TeaCache could be considered to be sort of an automated step skipper \n\nThe relative l1 threshold -value determines how aggressive this is, higher values are faster but quality suffers more. Very first steps should NEVER be skipped with this model or it kills the motion. When using the pre-calculated coefficients, the treshold value should be much higher than with the default coefficients." - ], - "color": "#432", - "bgcolor": "#653" - }, - { - "id": 30, - "type": "VHS_VideoCombine", - "pos": [ - 1709.29345703125, - -334.3517150878906 - ], - "size": [ - 1037.934326171875, - 856.9671630859375 - ], - "flags": {}, - "order": 19, - "mode": 0, - "inputs": [ - { - "name": "images", - "type": "IMAGE", - "link": 146 - }, - { - "name": "audio", - "shape": 7, - "type": "AUDIO", - "link": null - }, - { - "name": "meta_batch", - "shape": 7, - "type": "VHS_BatchManager", - "link": null - }, - { - "name": "vae", - "shape": 7, - "type": "VAE", - "link": null - } - ], - "outputs": [ - { - "name": "Filenames", - "type": "VHS_FILENAMES", - "links": null - } - ], - "properties": { - "cnr_id": "comfyui-videohelpersuite", - "ver": "08e8df15db24da292d4b7f943c460dc2ab442b24", - "Node name for S&R": "VHS_VideoCombine" - }, - "widgets_values": { - "frame_rate": 16, - "loop_count": 0, - "filename_prefix": "WanVideoWrapper_I2V", - "format": "video/h264-mp4", - "pix_fmt": "yuv420p", - "crf": 19, - "save_metadata": true, - "trim_to_audio": false, - "pingpong": false, - "save_output": true, - "videopreview": { - "hidden": false, - "paused": false, - "params": { - "filename": "WanVideoWrapper_I2V_00002.mp4", - "subfolder": "", - "type": "output", - "format": "video/h264-mp4", - "frame_rate": 16, - "workflow": "WanVideoWrapper_I2V_00002.png", - "fullpath": "/home/johnj/ComfyUI/output/WanVideoWrapper_I2V_00002.mp4" - } - } - } - }, - { - "id": 33, - "type": "Note", - "pos": [ - 170, - -1150 - ], - "size": [ - 359.0753479003906, - 88 - ], - "flags": {}, - "order": 4, - "mode": 0, - "inputs": [], - "outputs": [], - "properties": {}, - "widgets_values": [ - "Models:\nhttps://huggingface.co/Kijai/WanVideo_comfy/tree/main" - ], - "color": "#432", - "bgcolor": "#653" - }, { "id": 96, "type": "WanVideoControlEmbeds", @@ -225,7 +16,7 @@ 102 ], "flags": {}, - "order": 15, + "order": 11, "mode": 0, "inputs": [ { @@ -260,6 +51,44 @@ 0.7 ] }, + { + "id": 52, + "type": "WanVideoTeaCache", + "pos": [ + 784.0582885742188, + 198.33489990234375 + ], + "size": [ + 315, + 178 + ], + "flags": {}, + "order": 0, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "cache_args", + "type": "CACHEARGS", + "links": [ + 153 + ] + } + ], + "properties": { + "cnr_id": "ComfyUI-WanVideoWrapper", + "ver": "76ea2aa6a664edbd553799f78d6bafdd23e34dc6", + "Node name for S&R": "WanVideoTeaCache" + }, + "widgets_values": [ + 0.1, + 1, + -1, + "offload_device", + "true", + "e" + ] + }, { "id": 110, "type": "WanVideoTextEncodeMultiGPU", @@ -272,7 +101,7 @@ 234 ], "flags": {}, - "order": 11, + "order": 8, "mode": 0, "inputs": [ { @@ -309,161 +138,83 @@ "Node name for S&R": "WanVideoTextEncodeMultiGPU" }, "widgets_values": [ - "video of a wolf", + "video of a cyberpunk city street", "č‰²č°ƒč‰³äø½ļ¼Œčæ‡ę›ļ¼Œé™ę€ļ¼Œē»†čŠ‚ęØ”ē³Šäøęø…ļ¼Œå­—å¹•ļ¼Œé£Žę ¼ļ¼Œä½œå“ļ¼Œē”»ä½œļ¼Œē”»é¢ļ¼Œé™ę­¢ļ¼Œę•“ä½“å‘ē°ļ¼Œęœ€å·®č“Øé‡ļ¼Œä½Žč“Øé‡ļ¼ŒJPEGåŽ‹ē¼©ę®‹ē•™ļ¼Œäø‘é™‹ēš„ļ¼Œę®‹ē¼ŗēš„ļ¼Œå¤šä½™ēš„ę‰‹ęŒ‡ļ¼Œē”»å¾—äøå„½ēš„ę‰‹éƒØļ¼Œē”»å¾—äøå„½ēš„č„øéƒØļ¼Œē•øå½¢ēš„ļ¼ŒęÆå®¹ēš„ļ¼Œå½¢ę€ē•øå½¢ēš„č‚¢ä½“ļ¼Œę‰‹ęŒ‡čžåˆļ¼Œé™ę­¢äøåŠØēš„ē”»é¢ļ¼Œę‚ä¹±ēš„čƒŒę™Æļ¼Œäø‰ę”č…æļ¼ŒčƒŒę™Æäŗŗå¾ˆå¤šļ¼Œå€’ē€čµ°", "cuda:0", false ], - "color": "#233", - "bgcolor": "#355" + "color": "#008181", + "bgcolor": "rgba(24,24,27,.9)" }, { - "id": 111, - "type": "LoadWanVideoT5TextEncoderMultiGPU", + "id": 114, + "type": "WanVideoDecodeMultiGPU", "pos": [ - 278.705810546875, - -281.6587829589844 + 1218.4522705078125, + -915.2039184570312 ], "size": [ - 348.9195251464844, - 150 + 271.8716735839844, + 218 ], "flags": {}, - "order": 5, + "order": 13, "mode": 0, - "inputs": [], - "outputs": [ + "inputs": [ { - "name": "wan_t5_model", - "type": "WANTEXTENCODER", - "links": [ - 161 - ] + "name": "vae", + "type": "WANVAE", + "link": 172 }, { "name": "load_device", "type": "MULTIGPUDEVICE", + "link": 173 + }, + { + "name": "samples", + "type": "LATENT", + "link": 174 + } + ], + "outputs": [ + { + "name": "images", + "type": "IMAGE", "links": [ - 166 + 175 ] } ], "properties": { "cnr_id": "comfyui-multigpu", "ver": "ba0a3a6e21b0a7f54bd24c51419a8e85b9217c3f", - "Node name for S&R": "LoadWanVideoT5TextEncoderMultiGPU" + "Node name for S&R": "WanVideoDecodeMultiGPU" }, "widgets_values": [ - "umt5-xxl-enc-bf16.safetensors", - "bf16", - "cuda:0", - "disabled" - ], - "color": "#233", - "bgcolor": "#355" - }, - { - "id": 64, - "type": "WanVideoTorchCompileSettings", - "pos": [ - -276.8500671386719, - -1050.6326904296875 - ], - "size": [ - 390.5999755859375, - 202 - ], - "flags": {}, - "order": 6, - "mode": 0, - "inputs": [], - "outputs": [ - { - "name": "torch_compile_args", - "type": "WANCOMPILEARGS", - "slot_index": 0, - "links": [ - 168 - ] - } - ], - "properties": { - "cnr_id": "ComfyUI-WanVideoWrapper", - "ver": "76ea2aa6a664edbd553799f78d6bafdd23e34dc6", - "Node name for S&R": "WanVideoTorchCompileSettings" - }, - "widgets_values": [ - "inductor", false, - "default", - false, - 64, - true, - 128 - ] - }, - { - "id": 98, - "type": "WanVideoLoraSelect", - "pos": [ - -161.7538604736328, - -680.8223876953125 + 272, + 272, + 144, + 128, + "default" ], - "size": [ - 315, - 150 - ], - "flags": {}, - "order": 7, - "mode": 0, - "inputs": [ - { - "name": "prev_lora", - "shape": 7, - "type": "WANVIDLORA", - "link": null - }, - { - "name": "blocks", - "shape": 7, - "type": "SELECTEDBLOCKS", - "link": null - } - ], - "outputs": [ - { - "name": "lora", - "type": "WANVIDLORA", - "links": [ - 169 - ] - } - ], - "properties": { - "cnr_id": "ComfyUI-WanVideoWrapper", - "ver": "76ea2aa6a664edbd553799f78d6bafdd23e34dc6", - "Node name for S&R": "WanVideoLoraSelect" - }, - "widgets_values": [ - "wan2.1-1.3b-control-lora-tile-v1.1_comfy.safetensors", - 1, - false, - true - ] + "color": "#008181", + "bgcolor": "rgba(24,24,27,.9)" }, { "id": 108, "type": "WanVideoSamplerMultiGPU", "pos": [ - 1322.1207275390625, - -347.0115051269531 + 1248.2589111328125, + -572.5546264648438 ], "size": [ 327.80859375, 922 ], "flags": {}, - "order": 16, + "order": 12, "mode": 0, "inputs": [ { @@ -607,77 +358,35 @@ -1, false ], - "color": "#233", - "bgcolor": "#355" + "color": "#008181", + "bgcolor": "rgba(24,24,27,.9)" }, { - "id": 109, - "type": "WanVideoVAELoaderMultiGPU", + "id": 30, + "type": "VHS_VideoCombine", "pos": [ - 689.3143310546875, - -934.9156494140625 + 1615.98486328125, + -531.5858764648438 ], "size": [ - 368.710693359375, - 126 + 1037.934326171875, + 1111.45068359375 ], "flags": {}, - "order": 8, + "order": 15, "mode": 0, "inputs": [ { - "name": "compile_args", - "shape": 7, - "type": "WANCOMPILEARGS", - "link": null - } - ], - "outputs": [ - { - "name": "vae", - "type": "WANVAE", - "links": [ - 162, - 172 - ] + "name": "images", + "type": "IMAGE", + "link": 146 }, { - "name": "load_device", - "type": "MULTIGPUDEVICE", - "links": [ - 163, - 173 - ] - } - ], - "properties": { - "cnr_id": "comfyui-multigpu", - "ver": "ba0a3a6e21b0a7f54bd24c51419a8e85b9217c3f", - "Node name for S&R": "WanVideoVAELoaderMultiGPU" - }, - "widgets_values": [ - "wan_2.1_vae.safetensors", - "cuda:0", - "bf16" - ], - "color": "#233", - "bgcolor": "#355" - }, - { - "id": 97, - "type": "VHS_LoadVideo", - "pos": [ - -854.7728271484375, - -166.42774963378906 - ], - "size": [ - 247.455078125, - 551.455078125 - ], - "flags": {}, - "order": 9, - "mode": 0, - "inputs": [ + "name": "audio", + "shape": 7, + "type": "AUDIO", + "link": null + }, { "name": "meta_batch", "shape": 7, @@ -693,57 +402,38 @@ ], "outputs": [ { - "name": "IMAGE", - "type": "IMAGE", - "slot_index": 0, - "links": [ - 147 - ] - }, - { - "name": "frame_count", - "type": "INT", - "links": null - }, - { - "name": "audio", - "type": "AUDIO", - "links": null - }, - { - "name": "video_info", - "type": "VHS_VIDEOINFO", + "name": "Filenames", + "type": "VHS_FILENAMES", "links": null } ], "properties": { "cnr_id": "comfyui-videohelpersuite", "ver": "08e8df15db24da292d4b7f943c460dc2ab442b24", - "Node name for S&R": "VHS_LoadVideo" + "Node name for S&R": "VHS_VideoCombine" }, "widgets_values": { - "video": "wolf_interpolated.mp4", - "force_rate": 0, - "custom_width": 0, - "custom_height": 0, - "frame_load_cap": 0, - "skip_first_frames": 0, - "select_every_nth": 1, - "format": "AnimateDiff", - "choose video to upload": "image", + "frame_rate": 16, + "loop_count": 0, + "filename_prefix": "WanVideoWrapper_I2V", + "format": "video/h264-mp4", + "pix_fmt": "yuv420p", + "crf": 19, + "save_metadata": true, + "trim_to_audio": false, + "pingpong": false, + "save_output": true, "videopreview": { "hidden": false, "paused": false, "params": { - "filename": "wolf_interpolated.mp4", - "type": "input", - "format": "video/mp4", - "force_rate": 0, - "custom_width": 0, - "custom_height": 0, - "frame_load_cap": 0, - "skip_first_frames": 0, - "select_every_nth": 1 + "filename": "WanVideoWrapper_I2V_00008.mp4", + "subfolder": "", + "type": "output", + "format": "video/h264-mp4", + "frame_rate": 16, + "workflow": "WanVideoWrapper_I2V_00008.png", + "fullpath": "/home/johnj/ComfyUI/output/WanVideoWrapper_I2V_00008.mp4" } } } @@ -752,15 +442,15 @@ "id": 103, "type": "ImageConcatMulti", "pos": [ - 1796.8583984375, - -624.5692138671875 + 1605.4227294921875, + -764.019775390625 ], "size": [ 315, 150 ], "flags": {}, - "order": 18, + "order": 14, "mode": 0, "inputs": [ { @@ -797,200 +487,94 @@ ] }, { - "id": 52, - "type": "WanVideoTeaCache", + "id": 64, + "type": "WanVideoTorchCompileSettings", "pos": [ - 784.0582885742188, - 198.33489990234375 + -12.65381908416748, + -1050.6871337890625 ], "size": [ - 315, - 178 + 390.5999755859375, + 202 ], "flags": {}, - "order": 10, - "mode": 0, + "order": 1, + "mode": 4, "inputs": [], "outputs": [ { - "name": "cache_args", - "type": "CACHEARGS", + "name": "torch_compile_args", + "type": "WANCOMPILEARGS", + "slot_index": 0, "links": [ - 153 + 168 ] } ], "properties": { "cnr_id": "ComfyUI-WanVideoWrapper", "ver": "76ea2aa6a664edbd553799f78d6bafdd23e34dc6", - "Node name for S&R": "WanVideoTeaCache" + "Node name for S&R": "WanVideoTorchCompileSettings" }, "widgets_values": [ - 0.1, - 1, - -1, - "offload_device", - "true", - "e" + "inductor", + false, + "default", + false, + 64, + true, + 128 ] }, { - "id": 104, - "type": "ImageBlur", + "id": 109, + "type": "WanVideoVAELoaderMultiGPU", "pos": [ - -336.56787109375, - -98.77837371826172 + 755.2626953125, + -863.6914672851562 ], "size": [ - 315, - 82 + 368.710693359375, + 126 ], "flags": {}, - "order": 13, + "order": 2, "mode": 0, "inputs": [ { - "name": "image", - "type": "IMAGE", - "link": 147 - } - ], - "outputs": [ - { - "name": "IMAGE", - "type": "IMAGE", - "slot_index": 0, - "links": [ - 149, - 165 - ] - } - ], - "properties": { - "cnr_id": "comfy-core", - "ver": "0.3.64", - "Node name for S&R": "ImageBlur" - }, - "widgets_values": [ - 4, - 1 - ] - }, - { - "id": 112, - "type": "WanVideoEncodeMultiGPU", - "pos": [ - 169.56695556640625, - 108.46249389648438 - ], - "size": [ - 271.0992126464844, - 262 - ], - "flags": {}, - "order": 14, - "mode": 0, - "inputs": [ - { - "name": "vae", - "type": "WANVAE", - "link": 162 - }, - { - "name": "load_device", - "type": "MULTIGPUDEVICE", - "link": 163 - }, - { - "name": "image", - "type": "IMAGE", - "link": 165 - }, - { - "name": "mask", + "name": "compile_args", "shape": 7, - "type": "MASK", + "type": "WANCOMPILEARGS", "link": null } ], "outputs": [ - { - "name": "samples", - "type": "LATENT", - "links": [ - 164 - ] - } - ], - "properties": { - "cnr_id": "comfyui-multigpu", - "ver": "ba0a3a6e21b0a7f54bd24c51419a8e85b9217c3f", - "Node name for S&R": "WanVideoEncodeMultiGPU" - }, - "widgets_values": [ - false, - 272, - 272, - 144, - 128, - 0, - 1 - ], - "color": "#008181", - "bgcolor": "rgba(24,24,27,.9)" - }, - { - "id": 114, - "type": "WanVideoDecodeMultiGPU", - "pos": [ - 1679.09765625, - -978.121826171875 - ], - "size": [ - 271.8716735839844, - 218 - ], - "flags": {}, - "order": 17, - "mode": 0, - "inputs": [ { "name": "vae", "type": "WANVAE", - "link": 172 + "links": [ + 162, + 172 + ] }, { "name": "load_device", "type": "MULTIGPUDEVICE", - "link": 173 - }, - { - "name": "samples", - "type": "LATENT", - "link": 174 - } - ], - "outputs": [ - { - "name": "images", - "type": "IMAGE", "links": [ - 175 + 163, + 173 ] } ], "properties": { "cnr_id": "comfyui-multigpu", "ver": "ba0a3a6e21b0a7f54bd24c51419a8e85b9217c3f", - "Node name for S&R": "WanVideoDecodeMultiGPU" + "Node name for S&R": "WanVideoVAELoaderMultiGPU" }, "widgets_values": [ - false, - 272, - 272, - 144, - 128, - "default" + "wan_2.1_vae.safetensors", + "cuda:1", + "bf16" ], "color": "#008181", "bgcolor": "rgba(24,24,27,.9)" @@ -999,15 +583,15 @@ "id": 113, "type": "WanVideoModelLoaderMultiGPU", "pos": [ - 304.0582275390625, - -755.562255859375 + 361.5360412597656, + -777.0635986328125 ], "size": [ 325.787109375, 342 ], "flags": {}, - "order": 12, + "order": 7, "mode": 0, "inputs": [ { @@ -1085,12 +669,320 @@ "bf16", "disabled", "offload_device", - "cuda:1", + "cuda:0", "sdpa", "default" ], "color": "#008181", "bgcolor": "rgba(24,24,27,.9)" + }, + { + "id": 98, + "type": "WanVideoLoraSelect", + "pos": [ + 3.530043840408325, + -733.1419067382812 + ], + "size": [ + 353.5796203613281, + 150 + ], + "flags": {}, + "order": 3, + "mode": 0, + "inputs": [ + { + "name": "prev_lora", + "shape": 7, + "type": "WANVIDLORA", + "link": null + }, + { + "name": "blocks", + "shape": 7, + "type": "SELECTEDBLOCKS", + "link": null + } + ], + "outputs": [ + { + "name": "lora", + "type": "WANVIDLORA", + "links": [ + 169 + ] + } + ], + "properties": { + "cnr_id": "ComfyUI-WanVideoWrapper", + "ver": "76ea2aa6a664edbd553799f78d6bafdd23e34dc6", + "Node name for S&R": "WanVideoLoraSelect" + }, + "widgets_values": [ + "wan2.1-1.3b-control-lora-tile-v1.1_comfy.safetensors", + 1, + false, + true + ] + }, + { + "id": 111, + "type": "LoadWanVideoT5TextEncoderMultiGPU", + "pos": [ + 359.0979309082031, + -377.98248291015625 + ], + "size": [ + 348.9195251464844, + 150 + ], + "flags": {}, + "order": 4, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "wan_t5_model", + "type": "WANTEXTENCODER", + "links": [ + 161 + ] + }, + { + "name": "load_device", + "type": "MULTIGPUDEVICE", + "links": [ + 166 + ] + } + ], + "properties": { + "cnr_id": "comfyui-multigpu", + "ver": "ba0a3a6e21b0a7f54bd24c51419a8e85b9217c3f", + "Node name for S&R": "LoadWanVideoT5TextEncoderMultiGPU" + }, + "widgets_values": [ + "umt5-xxl-enc-bf16.safetensors", + "bf16", + "cuda:1", + "fp8_e4m3fn" + ], + "color": "#008181", + "bgcolor": "rgba(24,24,27,.9)" + }, + { + "id": 115, + "type": "MarkdownNote", + "pos": [ + -839.5035400390625, + -838.1215209960938 + ], + "size": [ + 777.6646728515625, + 937.3121337890625 + ], + "flags": {}, + "order": 5, + "mode": 0, + "inputs": [], + "outputs": [], + "title": "ComfyUI-MultiGPU Note - ComfyUI-WanVideoWrapper", + "properties": {}, + "widgets_values": [ + "These nodes are designed to work with ComfyUI-WanVideoWrapper they enable UNets, CLIPs, and VAEs to be loaded on any available device. This is a replication of the original workflow by kijai which can be found here: [wanvideo_1_3B_control_lora_example_01.json](https://github.com/kijai/ComfyUI-WanVideoWrapper/blob/main/example_workflows/wanvideo_1_3B_control_lora_example_01.json)\n\n## Custom Node\n- [ComfyUI-MultiGPU](https://github.com/pollockjj/ComfyUI-MultiGPU)\n- [ComfyUI-WanVideoWrapper](https://github.com/kijai/ComfyUI-WanVideoWrapper)\n```\nšŸ“‚ ComfyUI/\nā”œā”€ā”€ šŸ“‚ custom_nodes/\n│ ā”œā”€ā”€ šŸ“‚ ComfyUI-MultiGPU/\n│ ā”œā”€ā”€ šŸ“‚ ComfyUI-WanVideoWrapper\n```\n## Model links\n\n**Diffusion model**\n- [wan2.2_t2v_high_noise_14B_fp8_scaled.safetensors](https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/blob/main/split_files/diffusion_models/wan2.2_t2v_high_noise_14B_fp8_scaled.safetensors)\n- [wan2.2_t2v_low_noise_14B_fp8_scaled.safetensors](https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/blob/main/split_files/diffusion_models/wan2.2_t2v_low_noise_14B_fp8_scaled.safetensors)\n\n**CLIP**\n- [umt5_xxl_enc-bf16.safetensors](https://huggingface.co/Kijai/WanVideo_comfy/resolve/main/umt5-xxl-enc-bf16.safetensors)\n\n**VAE**\n- [wan_2.1_vae.safetensors](https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/blob/main/split_files/vae/wan_2.1_vae.safetensors)\n\n**LoRA**\n- [wan2.1-1.3b-control-lora-tile-v1.1_comfy.safetensors](https://huggingface.co/spacepxl/Wan2.1-control-loras/resolve/main/1.3b/tile/wan2.1-1.3b-control-lora-tile-v1.1_comfy.safetensors)\n\n## Model Storage Location\n\n```\nšŸ“‚ ComfyUI/\nā”œā”€ā”€ šŸ“‚ models/\n│ ā”œā”€ā”€ šŸ“‚ clip/\n│ │ └── umt5_xxl_enc-bf16.safetensors\n│ ā”œā”€ā”€ šŸ“‚ unet/\n│ │ ā”œā”€ā”€ wan2.2_t2v_high_noise_14B_fp8_scaled.safetensors [🟩🟩🟩🟪🟪🟪🟪🟪🟪🟪]\n│ │ ā”œā”€ā”€ wan2.2_t2v_low_noise_14B_fp8_scaled.safetensors [🟩🟩🟩🟪🟪🟪🟪🟪🟪🟪]\n│ ā”œā”€ā”€ā”€šŸ“‚ loras/\n│ │ ā”œā”€ā”€ wan2.1-1.3b-control-lora-tile-v1.1_comfy.safetensors\n│ ā”œā”€ā”€ šŸ“‚ vae/\n│ │ └── wan_2.1_vae.safetensors \n```\n## Device Mapping (Example: Two GPUs, 1 CPU)\n```\nšŸ–„ļø system \nā”œā”€ā”€ 🟢 cuda:0\n│ └── wan2.2_t2v_high_noise_14B_fp8_scaled.safetensors [🟩🟩🟩]\n│ └── wan2.2_t2v_low_noise_14B_fp8_scaled.safetensors [🟩🟩🟩]\n│ └── high_noise_model.safetensors [🟩🟩🟩]\n│ └── low_noise_model.safetensors [🟩🟩🟩]\n│ └── umt5_xxl_fp8_e4m3fn_scaled.safetensors\n│ └── wan_2.1_vae.safetensors\nā”œā”€ā”€ 🟣 cuda:1\n│ └── EMPTY\nā”œā”€ā”€ āš™ļø cpu\n └── wan2.2_t2v_high_noise_14B_fp8_scaled.safetensors [🟪🟪🟪🟪🟪🟪🟪]\n └── wan2.2_t2v_low_noise_14B_fp8_scaled.safetensors [🟪🟪🟪🟪🟪🟪🟪]\n └── high_noise_model.safetensors [🟪🟪🟪🟪🟪🟪🟪]\n └── low_noise_model.safetensors [🟪🟪🟪🟪🟪🟪🟪]\n```" + ], + "color": "#008181", + "bgcolor": "rgba(24,24,27,.9)" + }, + { + "id": 112, + "type": "WanVideoEncodeMultiGPU", + "pos": [ + 426.3719177246094, + 95.08206939697266 + ], + "size": [ + 271.0992126464844, + 262 + ], + "flags": {}, + "order": 10, + "mode": 0, + "inputs": [ + { + "name": "vae", + "type": "WANVAE", + "link": 162 + }, + { + "name": "load_device", + "type": "MULTIGPUDEVICE", + "link": 163 + }, + { + "name": "image", + "type": "IMAGE", + "link": 165 + }, + { + "name": "mask", + "shape": 7, + "type": "MASK", + "link": null + } + ], + "outputs": [ + { + "name": "samples", + "type": "LATENT", + "links": [ + 164 + ] + } + ], + "properties": { + "cnr_id": "comfyui-multigpu", + "ver": "ba0a3a6e21b0a7f54bd24c51419a8e85b9217c3f", + "Node name for S&R": "WanVideoEncodeMultiGPU" + }, + "widgets_values": [ + false, + 272, + 272, + 144, + 128, + 0, + 1 + ], + "color": "#008181", + "bgcolor": "rgba(24,24,27,.9)" + }, + { + "id": 104, + "type": "ImageBlur", + "pos": [ + 320.9183349609375, + -48.397422790527344 + ], + "size": [ + 315, + 82 + ], + "flags": {}, + "order": 9, + "mode": 0, + "inputs": [ + { + "name": "image", + "type": "IMAGE", + "link": 147 + } + ], + "outputs": [ + { + "name": "IMAGE", + "type": "IMAGE", + "slot_index": 0, + "links": [ + 149, + 165 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.64", + "Node name for S&R": "ImageBlur" + }, + "widgets_values": [ + 4, + 1 + ] + }, + { + "id": 97, + "type": "VHS_LoadVideo", + "pos": [ + 29.053192138671875, + -498.8067626953125 + ], + "size": [ + 247.455078125, + 664.9326782226562 + ], + "flags": {}, + "order": 6, + "mode": 0, + "inputs": [ + { + "name": "meta_batch", + "shape": 7, + "type": "VHS_BatchManager", + "link": null + }, + { + "name": "vae", + "shape": 7, + "type": "VAE", + "link": null + } + ], + "outputs": [ + { + "name": "IMAGE", + "type": "IMAGE", + "slot_index": 0, + "links": [ + 147 + ] + }, + { + "name": "frame_count", + "type": "INT", + "links": null + }, + { + "name": "audio", + "type": "AUDIO", + "links": null + }, + { + "name": "video_info", + "type": "VHS_VIDEOINFO", + "links": null + } + ], + "properties": { + "cnr_id": "comfyui-videohelpersuite", + "ver": "08e8df15db24da292d4b7f943c460dc2ab442b24", + "Node name for S&R": "VHS_LoadVideo" + }, + "widgets_values": { + "video": "ComfyUI-WanVideoWrapper wanvideo_1_3B control_lora.webm", + "force_rate": 0, + "custom_width": 0, + "custom_height": 0, + "frame_load_cap": 0, + "skip_first_frames": 0, + "select_every_nth": 1, + "format": "AnimateDiff", + "choose video to upload": "image", + "videopreview": { + "hidden": false, + "paused": false, + "params": { + "filename": "ComfyUI-WanVideoWrapper wanvideo_1_3B control_lora.webm", + "type": "input", + "format": "video/webm", + "force_rate": 0, + "custom_width": 0, + "custom_height": 0, + "frame_load_cap": 0, + "skip_first_frames": 0, + "select_every_nth": 1 + } + } + } } ], "links": [ @@ -1259,10 +1151,10 @@ "config": {}, "extra": { "ds": { - "scale": 0.5559917313492605, + "scale": 0.6115909044841882, "offset": [ - 1542.2773971567624, - 1325.1448841491515 + 1103.896612697283, + 1090.9859517147797 ] }, "frontendVersion": "1.27.10", diff --git a/example_workflows/ComfyUI-WanVideoWrapper wanvideo_1_3B control_lora.webm b/example_workflows/ComfyUI-WanVideoWrapper wanvideo_1_3B control_lora.webm new file mode 100755 index 0000000..4b8c93d Binary files /dev/null and b/example_workflows/ComfyUI-WanVideoWrapper wanvideo_1_3B control_lora.webm differ diff --git a/example_workflows/ComfyUI-WanVideoWrapper wanvideo_T2V.jpg b/example_workflows/ComfyUI-WanVideoWrapper wanvideo_T2V.jpg new file mode 100755 index 0000000..f8c8041 Binary files /dev/null and b/example_workflows/ComfyUI-WanVideoWrapper wanvideo_T2V.jpg differ diff --git a/example_workflows/wannvideowrapper/wanvideo_T2V_example_MultiGPU.json b/example_workflows/ComfyUI-WanVideoWrapper wanvideo_T2V.json similarity index 74% rename from example_workflows/wannvideowrapper/wanvideo_T2V_example_MultiGPU.json rename to example_workflows/ComfyUI-WanVideoWrapper wanvideo_T2V.json index 0be682f..b45f3be 100755 --- a/example_workflows/wannvideowrapper/wanvideo_T2V_example_MultiGPU.json +++ b/example_workflows/ComfyUI-WanVideoWrapper wanvideo_T2V.json @@ -1,247 +1,69 @@ { "id": "c6e410bc-5e2c-460b-ae81-c91b6094fbb1", "revision": 0, - "last_node_id": 75, - "last_link_id": 88, + "last_node_id": 78, + "last_link_id": 91, "nodes": [ { - "id": 50, - "type": "CLIPTextEncode", + "id": 62, + "type": "WanVideoVAELoaderMultiGPU", "pos": [ - 396.64337158203125, - 929.3626098632812 + 1261.431884765625, + -741.0675048828125 ], "size": [ - 400, - 200 - ], - "flags": {}, - "order": 12, - "mode": 2, - "inputs": [ - { - "name": "clip", - "type": "CLIP", - "link": 53 - } - ], - "outputs": [ - { - "name": "CONDITIONING", - "type": "CONDITIONING", - "slot_index": 0, - "links": [ - 55 - ] - } - ], - "properties": { - "cnr_id": "comfy-core", - "ver": "0.3.64", - "Node name for S&R": "CLIPTextEncode" - }, - "widgets_values": [ - "č‰²č°ƒč‰³äø½ļ¼Œčæ‡ę›ļ¼Œé™ę€ļ¼Œē»†čŠ‚ęØ”ē³Šäøęø…ļ¼Œå­—å¹•ļ¼Œé£Žę ¼ļ¼Œä½œå“ļ¼Œē”»ä½œļ¼Œē”»é¢ļ¼Œé™ę­¢ļ¼Œę•“ä½“å‘ē°ļ¼Œęœ€å·®č“Øé‡ļ¼Œä½Žč“Øé‡ļ¼ŒJPEGåŽ‹ē¼©ę®‹ē•™ļ¼Œäø‘é™‹ēš„ļ¼Œę®‹ē¼ŗēš„ļ¼Œå¤šä½™ēš„ę‰‹ęŒ‡ļ¼Œē”»å¾—äøå„½ēš„ę‰‹éƒØļ¼Œē”»å¾—äøå„½ēš„č„øéƒØļ¼Œē•øå½¢ēš„ļ¼ŒęÆå®¹ēš„ļ¼Œå½¢ę€ē•øå½¢ēš„č‚¢ä½“ļ¼Œę‰‹ęŒ‡čžåˆļ¼Œé™ę­¢äøåŠØēš„ē”»é¢ļ¼Œę‚ä¹±ēš„čƒŒę™Æļ¼Œäø‰ę”č…æļ¼ŒčƒŒę™Æäŗŗå¾ˆå¤šļ¼Œå€’ē€čµ°" - ], - "color": "#432", - "bgcolor": "#653" - }, - { - "id": 48, - "type": "CLIPLoader", - "pos": [ - 36.643455505371094, - 679.3622436523438 - ], - "size": [ - 315, - 106 + 294.1841735839844, + 126 ], "flags": {}, "order": 0, - "mode": 2, - "inputs": [], - "outputs": [ - { - "name": "CLIP", - "type": "CLIP", - "slot_index": 0, - "links": [ - 52, - 53 - ] - } - ], - "properties": { - "cnr_id": "comfy-core", - "ver": "0.3.64", - "Node name for S&R": "CLIPLoader" - }, - "widgets_values": [ - "umt5_xxl_fp16.safetensors", - "wan", - "default" - ], - "color": "#432", - "bgcolor": "#653" - }, - { - "id": 51, - "type": "Note", - "pos": [ - 66.64339447021484, - 509.36181640625 - ], - "size": [ - 253.16725158691406, - 88 - ], - "flags": {}, - "order": 1, "mode": 0, - "inputs": [], - "outputs": [], - "properties": {}, - "widgets_values": [ - "You can also use native ComfyUI text encoding with these nodes instead of the original, the models are node specific and can't otherwise be mixed." - ], - "color": "#432", - "bgcolor": "#653" - }, - { - "id": 49, - "type": "CLIPTextEncode", - "pos": [ - 396.64337158203125, - 679.3622436523438 - ], - "size": [ - 400, - 200 - ], - "flags": {}, - "order": 11, - "mode": 2, "inputs": [ { - "name": "clip", - "type": "CLIP", - "link": 52 + "name": "compile_args", + "shape": 7, + "type": "WANCOMPILEARGS", + "link": null } ], "outputs": [ { - "name": "CONDITIONING", - "type": "CONDITIONING", - "slot_index": 0, - "links": [ - 54 - ] - } - ], - "properties": { - "cnr_id": "comfy-core", - "ver": "0.3.64", - "Node name for S&R": "CLIPTextEncode" - }, - "widgets_values": [ - "high quality nature video featuring a red panda balancing on a bamboo stem while a bird lands on it's head, on the background there is a waterfall" - ], - "color": "#432", - "bgcolor": "#653" - }, - { - "id": 46, - "type": "WanVideoTextEmbedBridge", - "pos": [ - 846.6441650390625, - 669.3622436523438 - ], - "size": [ - 315, - 46 - ], - "flags": {}, - "order": 15, - "mode": 2, - "inputs": [ - { - "name": "positive", - "type": "CONDITIONING", - "link": 54 + "name": "vae", + "type": "WANVAE", + "links": [] }, { - "name": "negative", - "shape": 7, - "type": "CONDITIONING", - "link": 55 - } - ], - "outputs": [ - { - "name": "text_embeds", - "type": "WANVIDEOTEXTEMBEDS", + "name": "load_device", + "type": "MULTIGPUDEVICE", "links": null } ], "properties": { - "cnr_id": "ComfyUI-WanVideoWrapper", - "ver": "76ea2aa6a664edbd553799f78d6bafdd23e34dc6", - "Node name for S&R": "WanVideoTextEmbedBridge" - }, - "widgets_values": [] - }, - { - "id": 52, - "type": "WanVideoTeaCache", - "pos": [ - 870.7489013671875, - -1000.0360717773438 - ], - "size": [ - 315, - 178 - ], - "flags": {}, - "order": 2, - "mode": 0, - "inputs": [], - "outputs": [ - { - "name": "cache_args", - "type": "CACHEARGS", - "links": [ - 66 - ] - } - ], - "properties": { - "cnr_id": "ComfyUI-WanVideoWrapper", - "ver": "76ea2aa6a664edbd553799f78d6bafdd23e34dc6", - "Node name for S&R": "WanVideoTeaCache" + "cnr_id": "comfyui-multigpu", + "ver": "15ff29c63b816a5d4139557730da6b4dae2840cf", + "Node name for S&R": "WanVideoVAELoaderMultiGPU" }, "widgets_values": [ - 0.25, - 1, - -1, - "offload_device", - "true", - "e" - ] + "wan_2.1_vae.safetensors", + "cuda:0", + "bf16" + ], + "color": "#008181", + "bgcolor": "rgba(24,24,27,.9)" }, { "id": 37, "type": "WanVideoEmptyEmbeds", "pos": [ - 809.1670532226562, - -720.2110595703125 + 854.26123046875, + -667.6011962890625 ], "size": [ 315, 126 ], "flags": {}, - "order": 3, + "order": 1, "mode": 0, "inputs": [ { @@ -281,15 +103,15 @@ "id": 55, "type": "WanVideoEnhanceAVideo", "pos": [ - 1282.9122314453125, - -994.9732666015625 + 1216.34375, + -912.3005981445312 ], "size": [ 315, 106 ], "flags": {}, - "order": 4, + "order": 2, "mode": 0, "inputs": [], "outputs": [ @@ -313,61 +135,74 @@ ] }, { - "id": 66, - "type": "WanVideoSetBlockSwap", + "id": 75, + "type": "WanVideoDecodeMultiGPU", "pos": [ - 824.3810424804688, - -377.044189453125 + 1621.107666015625, + -527.0068359375 ], "size": [ - 201.76815795898438, - 46 + 271.8716735839844, + 218 ], "flags": {}, - "order": 14, + "order": 13, "mode": 0, "inputs": [ { - "name": "model", - "type": "WANVIDEOMODEL", - "link": 84 + "name": "vae", + "type": "WANVAE", + "link": 85 }, { - "name": "block_swap_args", - "shape": 7, - "type": "BLOCKSWAPARGS", - "link": 72 + "name": "load_device", + "type": "MULTIGPUDEVICE", + "link": 86 + }, + { + "name": "samples", + "type": "LATENT", + "link": 87 } ], "outputs": [ { - "name": "model", - "type": "WANVIDEOMODEL", - "links": [] + "name": "images", + "type": "IMAGE", + "links": [ + 88 + ] } ], "properties": { - "cnr_id": "ComfyUI-WanVideoWrapper", - "ver": "7e290c67bff1f906cdab84523018573f6c9d4d7f", - "Node name for S&R": "WanVideoSetBlockSwap" + "cnr_id": "comfyui-multigpu", + "ver": "db931d66c31acbcfce26f29babfb552509e586aa", + "Node name for S&R": "WanVideoDecodeMultiGPU" }, - "widgets_values": [], - "color": "#223", - "bgcolor": "#335" + "widgets_values": [ + false, + 272, + 272, + 144, + 128, + "default" + ], + "color": "#008181", + "bgcolor": "rgba(24,24,27,.9)" }, { "id": 69, "type": "GetImageSizeAndCount", "pos": [ - 1655.0137939453125, - -260.44696044921875 + 1972.8206787109375, + -598.654052734375 ], "size": [ 240.41265869140625, 86 ], "flags": {}, - "order": 18, + "order": 14, "mode": 0, "inputs": [ { @@ -385,19 +220,19 @@ ] }, { - "label": "width", + "label": "832 width", "name": "width", "type": "INT", "links": null }, { - "label": "height", + "label": "480 height", "name": "height", "type": "INT", "links": null }, { - "label": "count", + "label": "81 count", "name": "count", "type": "INT", "links": null @@ -411,95 +246,18 @@ "widgets_values": [] }, { - "id": 70, - "type": "VHS_VideoCombine", - "pos": [ - 1994.4910888671875, - -545.2236328125 - ], - "size": [ - 698.6392211914062, - 334 - ], - "flags": {}, - "order": 19, - "mode": 0, - "inputs": [ - { - "name": "images", - "type": "IMAGE", - "link": 78 - }, - { - "name": "audio", - "shape": 7, - "type": "AUDIO", - "link": null - }, - { - "name": "meta_batch", - "shape": 7, - "type": "VHS_BatchManager", - "link": null - }, - { - "name": "vae", - "shape": 7, - "type": "VAE", - "link": null - } - ], - "outputs": [ - { - "name": "Filenames", - "type": "VHS_FILENAMES", - "links": null - } - ], - "properties": { - "cnr_id": "comfyui-videohelpersuite", - "ver": "0a75c7958fe320efcb052f1d9f8451fd20c730a8", - "Node name for S&R": "VHS_VideoCombine" - }, - "widgets_values": { - "frame_rate": 16, - "loop_count": 0, - "filename_prefix": "WanVideo2_1_T2V", - "format": "video/h264-mp4", - "pix_fmt": "yuv420p", - "crf": 19, - "save_metadata": true, - "trim_to_audio": false, - "pingpong": false, - "save_output": true, - "videopreview": { - "hidden": false, - "paused": false, - "params": { - "filename": "WanVideo2_1_T2V_00020.mp4", - "subfolder": "", - "type": "output", - "format": "video/h264-mp4", - "frame_rate": 16, - "workflow": "WanVideo2_1_T2V_00020.png", - "fullpath": "/home/johnj/ComfyUI/output/WanVideo2_1_T2V_00020.mp4" - } - } - } - }, - { - "id": 62, + "id": 74, "type": "WanVideoVAELoaderMultiGPU", "pos": [ - 1324.779052734375, - -796.8985595703125 + 1635.6156005859375, + -764.2013549804688 ], "size": [ 294.1841735839844, 126 ], "flags": {}, - "order": 5, + "order": 3, "mode": 0, "inputs": [ { @@ -513,23 +271,72 @@ { "name": "vae", "type": "WANVAE", - "links": [] + "links": [ + 85 + ] }, { "name": "load_device", "type": "MULTIGPUDEVICE", - "links": null + "links": [ + 86 + ] + } + ], + "properties": { + "cnr_id": "comfyui-multigpu", + "ver": "db931d66c31acbcfce26f29babfb552509e586aa", + "Node name for S&R": "WanVideoVAELoaderMultiGPU" + }, + "widgets_values": [ + "wan_2.1_vae.safetensors", + "cuda:1", + "bf16" + ], + "color": "#008181", + "bgcolor": "rgba(24,24,27,.9)" + }, + { + "id": 60, + "type": "LoadWanVideoT5TextEncoderMultiGPU", + "pos": [ + 272.1676025390625, + -32.73524856567383 + ], + "size": [ + 344.07952880859375, + 150 + ], + "flags": {}, + "order": 4, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "wan_t5_model", + "type": "WANTEXTENCODER", + "links": [ + 63 + ] + }, + { + "name": "load_device", + "type": "MULTIGPUDEVICE", + "links": [ + 89 + ] } ], "properties": { "cnr_id": "comfyui-multigpu", "ver": "15ff29c63b816a5d4139557730da6b4dae2840cf", - "Node name for S&R": "WanVideoVAELoaderMultiGPU" + "Node name for S&R": "LoadWanVideoT5TextEncoderMultiGPU" }, "widgets_values": [ - "wan_2.1_vae.safetensors", - "cuda:0", - "bf16" + "umt5-xxl-enc-bf16.safetensors", + "bf16", + "cuda:1", + "disabled" ], "color": "#008181", "bgcolor": "rgba(24,24,27,.9)" @@ -546,14 +353,14 @@ 342 ], "flags": {}, - "order": 6, + "order": 10, "mode": 0, "inputs": [ { "name": "compile_args", "shape": 7, "type": "WANCOMPILEARGS", - "link": null + "link": 91 }, { "name": "block_swap_args", @@ -603,7 +410,6 @@ "name": "model", "type": "WANVIDEOMODEL", "links": [ - 82, 84 ] }, @@ -621,7 +427,7 @@ "Node name for S&R": "WanVideoModelLoaderMultiGPU" }, "widgets_values": [ - "wan2.1_t2v_1.3B_bf16.safetensors", + "Wan2_1-T2V-14B_fp8_e5m2.safetensors", "bf16", "disabled", "offload_device", @@ -633,61 +439,95 @@ "bgcolor": "rgba(24,24,27,.9)" }, { - "id": 60, - "type": "LoadWanVideoT5TextEncoderMultiGPU", + "id": 70, + "type": "VHS_VideoCombine", "pos": [ - 272.1676025390625, - -32.73524856567383 + 2090.0478515625, + -465.7718505859375 ], "size": [ - 344.07952880859375, - 150 + 698.6392211914062, + 739.5226440429688 ], "flags": {}, - "order": 7, + "order": 15, "mode": 0, - "inputs": [], - "outputs": [ + "inputs": [ { - "name": "wan_t5_model", - "type": "WANTEXTENCODER", - "links": [ - 63 - ] + "name": "images", + "type": "IMAGE", + "link": 78 }, { - "name": "load_device", - "type": "MULTIGPUDEVICE", + "name": "audio", + "shape": 7, + "type": "AUDIO", + "link": null + }, + { + "name": "meta_batch", + "shape": 7, + "type": "VHS_BatchManager", + "link": null + }, + { + "name": "vae", + "shape": 7, + "type": "VAE", + "link": null + } + ], + "outputs": [ + { + "name": "Filenames", + "type": "VHS_FILENAMES", "links": null } ], "properties": { - "cnr_id": "comfyui-multigpu", - "ver": "15ff29c63b816a5d4139557730da6b4dae2840cf", - "Node name for S&R": "LoadWanVideoT5TextEncoderMultiGPU" + "cnr_id": "comfyui-videohelpersuite", + "ver": "0a75c7958fe320efcb052f1d9f8451fd20c730a8", + "Node name for S&R": "VHS_VideoCombine" }, - "widgets_values": [ - "umt5-xxl-enc-bf16.safetensors", - "bf16", - "cuda:0", - "disabled" - ], - "color": "#008181", - "bgcolor": "rgba(24,24,27,.9)" + "widgets_values": { + "frame_rate": 16, + "loop_count": 0, + "filename_prefix": "MultiGPU", + "format": "video/h264-mp4", + "pix_fmt": "yuv420p", + "crf": 19, + "save_metadata": true, + "trim_to_audio": false, + "pingpong": false, + "save_output": true, + "videopreview": { + "hidden": false, + "paused": false, + "params": { + "filename": "MultiGPU_00056.mp4", + "subfolder": "", + "type": "output", + "format": "video/h264-mp4", + "frame_rate": 16, + "workflow": "MultiGPU_00056.png", + "fullpath": "/home/johnj/ComfyUI/output/MultiGPU_00056.mp4" + } + } + } }, { "id": 61, "type": "WanVideoTextEncodeMultiGPU", "pos": [ - 712.607177734375, - -10.148613929748535 + 680.0242309570312, + -36.73755645751953 ], "size": [ - 400, - 234 + 566.0554809570312, + 250.3997344970703 ], "flags": {}, - "order": 13, + "order": 9, "mode": 0, "inputs": [ { @@ -700,7 +540,7 @@ "name": "load_device", "shape": 7, "type": "MULTIGPUDEVICE", - "link": null + "link": 89 }, { "name": "model_to_offload", @@ -724,7 +564,7 @@ "Node name for S&R": "WanVideoTextEncodeMultiGPU" }, "widgets_values": [ - "A towering technological monolith in a cyberpunk cityscape at night, with \"DisTorch 2\" emblazoned across its surface in massive neon blue-green mixed with purple letters that illuminate the surrounding buildings. The text occupies the central third of the frame, crafted from glowing plasma tubes and crackling energy. The model file suffix \"now with .safetensors!\" in same stying but smaller font directly underneath. Rain-slicked streets below reflect the brilliant signage, while holographic advertisements and flying vehicles populate the background. Moody atmospheric lighting, heavy contrast, photorealistic textures, cinematic color grading. ", + "A towering technological monolith in a cyberpunk cityscape at night, with \"WanVideoWrapper\" and \"T2V\" emblazoned across its surface in massive neon blue-green mixed with purple letters that illuminate the surrounding buildings. The text occupies the center of the frame, crafted from glowing plasma tubes and crackling energy. Rain-slicked streets below reflect the brilliant signage, while holographic advertisements and flying vehicles populate the background. Moody atmospheric lighting, heavy contrast, photorealistic textures, cinematic color grading. ", "č‰²č°ƒč‰³äø½ļ¼Œčæ‡ę›ļ¼Œé™ę€ļ¼Œē»†čŠ‚ęØ”ē³Šäøęø…ļ¼Œå­—å¹•ļ¼Œé£Žę ¼ļ¼Œä½œå“ļ¼Œē”»ä½œļ¼Œē”»é¢ļ¼Œé™ę­¢ļ¼Œę•“ä½“å‘ē°ļ¼Œęœ€å·®č“Øé‡ļ¼Œä½Žč“Øé‡ļ¼ŒJPEGåŽ‹ē¼©ę®‹ē•™ļ¼Œäø‘é™‹ēš„ļ¼Œę®‹ē¼ŗēš„ļ¼Œå¤šä½™ēš„ę‰‹ęŒ‡ļ¼Œē”»å¾—äøå„½ēš„ę‰‹éƒØļ¼Œē”»å¾—äøå„½ēš„č„øéƒØļ¼Œē•øå½¢ēš„ļ¼ŒęÆå®¹ēš„ļ¼Œå½¢ę€ē•øå½¢ēš„č‚¢ä½“ļ¼Œę‰‹ęŒ‡čžåˆļ¼Œé™ę­¢äøåŠØēš„ē”»é¢ļ¼Œę‚ä¹±ēš„čƒŒę™Æļ¼Œäø‰ę”č…æļ¼ŒčƒŒę™Æäŗŗå¾ˆå¤šļ¼Œå€’ē€čµ°", "cpu", false @@ -732,99 +572,6 @@ "color": "#008181", "bgcolor": "rgba(24,24,27,.9)" }, - { - "id": 65, - "type": "WanVideoBlockSwapMultiGPU", - "pos": [ - -41.53060531616211, - -427.4794616699219 - ], - "size": [ - 292.8716735839844, - 226 - ], - "flags": {}, - "order": 8, - "mode": 0, - "inputs": [], - "outputs": [ - { - "name": "block_swap_args", - "type": "BLOCKSWAPARGS", - "links": [ - 72 - ] - } - ], - "properties": { - "cnr_id": "comfyui-multigpu", - "ver": "15ff29c63b816a5d4139557730da6b4dae2840cf", - "Node name for S&R": "WanVideoBlockSwapMultiGPU" - }, - "widgets_values": [ - 5, - "cuda:2", - "cpu", - false, - false, - false, - 0, - "cuda:1" - ], - "color": "#008181", - "bgcolor": "rgba(24,24,27,.9)" - }, - { - "id": 74, - "type": "WanVideoVAELoaderMultiGPU", - "pos": [ - 1695.74169921875, - -860.8320922851562 - ], - "size": [ - 294.1841735839844, - 126 - ], - "flags": {}, - "order": 9, - "mode": 0, - "inputs": [ - { - "name": "compile_args", - "shape": 7, - "type": "WANCOMPILEARGS", - "link": null - } - ], - "outputs": [ - { - "name": "vae", - "type": "WANVAE", - "links": [ - 85 - ] - }, - { - "name": "load_device", - "type": "MULTIGPUDEVICE", - "links": [ - 86 - ] - } - ], - "properties": { - "cnr_id": "comfyui-multigpu", - "ver": "db931d66c31acbcfce26f29babfb552509e586aa", - "Node name for S&R": "WanVideoVAELoaderMultiGPU" - }, - "widgets_values": [ - "wan_2.1_vae.safetensors", - "cuda:0", - "bf16" - ], - "color": "#008181", - "bgcolor": "rgba(24,24,27,.9)" - }, { "id": 63, "type": "WanVideoSamplerMultiGPU", @@ -837,13 +584,13 @@ 922 ], "flags": {}, - "order": 16, + "order": 12, "mode": 0, "inputs": [ { "name": "model", "type": "WANVIDEOMODEL", - "link": 82 + "link": 90 }, { "name": "compute_device", @@ -969,9 +716,9 @@ 25, 6, 5, - 47, + 60, "increment", - false, + true, "unipc", 0, 1, @@ -985,87 +732,115 @@ "bgcolor": "rgba(24,24,27,.9)" }, { - "id": 75, - "type": "WanVideoDecodeMultiGPU", + "id": 66, + "type": "WanVideoSetBlockSwap", "pos": [ - 1667.2755126953125, - -590.3536376953125 + 683.7297973632812, + -358.79156494140625 ], "size": [ - 271.8716735839844, - 218 + 201.76815795898438, + 46 ], "flags": {}, - "order": 17, + "order": 11, "mode": 0, "inputs": [ { - "name": "vae", - "type": "WANVAE", - "link": 85 + "name": "model", + "type": "WANVIDEOMODEL", + "link": 84 }, { - "name": "load_device", - "type": "MULTIGPUDEVICE", - "link": 86 - }, - { - "name": "samples", - "type": "LATENT", - "link": 87 + "name": "block_swap_args", + "shape": 7, + "type": "BLOCKSWAPARGS", + "link": 72 } ], "outputs": [ { - "name": "images", - "type": "IMAGE", + "name": "model", + "type": "WANVIDEOMODEL", "links": [ - 88 + 90 ] } ], "properties": { - "cnr_id": "comfyui-multigpu", - "ver": "db931d66c31acbcfce26f29babfb552509e586aa", - "Node name for S&R": "WanVideoDecodeMultiGPU" + "cnr_id": "ComfyUI-WanVideoWrapper", + "ver": "7e290c67bff1f906cdab84523018573f6c9d4d7f", + "Node name for S&R": "WanVideoSetBlockSwap" }, - "widgets_values": [ - false, - 272, - 272, - 144, - 128, - "default" - ], - "color": "#008181", - "bgcolor": "rgba(24,24,27,.9)" + "widgets_values": [], + "color": "#223", + "bgcolor": "#335" }, { - "id": 35, - "type": "WanVideoTorchCompileSettings", + "id": 52, + "type": "WanVideoTeaCache", "pos": [ - 352.3750915527344, - -817.9258422851562 + 828.8751831054688, + -948.4996948242188 ], "size": [ - 390.5999755859375, + 315, + 178 + ], + "flags": {}, + "order": 5, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "cache_args", + "type": "CACHEARGS", + "links": [ + 66 + ] + } + ], + "properties": { + "cnr_id": "ComfyUI-WanVideoWrapper", + "ver": "76ea2aa6a664edbd553799f78d6bafdd23e34dc6", + "Node name for S&R": "WanVideoTeaCache" + }, + "widgets_values": [ + 0.25, + 1, + -1, + "offload_device", + false, + "e" + ] + }, + { + "id": 78, + "type": "WanVideoTorchCompileSettings", + "pos": [ + 311.9624328613281, + -764.6751098632812 + ], + "size": [ + 342.74609375, 202 ], "flags": {}, - "order": 10, + "order": 6, "mode": 0, "inputs": [], "outputs": [ { "name": "torch_compile_args", "type": "WANCOMPILEARGS", - "slot_index": 0, - "links": [] + "links": [ + 91 + ] } ], "properties": { "cnr_id": "ComfyUI-WanVideoWrapper", - "ver": "76ea2aa6a664edbd553799f78d6bafdd23e34dc6", + "ver": "e2d8c9bef572d488d6474caa144436e08b543605", "Node name for S&R": "WanVideoTorchCompileSettings" }, "widgets_values": [ @@ -1077,41 +852,75 @@ true, 128 ] + }, + { + "id": 65, + "type": "WanVideoBlockSwapMultiGPU", + "pos": [ + 895.7860717773438, + -325.48040771484375 + ], + "size": [ + 292.8716735839844, + 226 + ], + "flags": {}, + "order": 7, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "block_swap_args", + "type": "BLOCKSWAPARGS", + "links": [ + 72 + ] + } + ], + "properties": { + "cnr_id": "comfyui-multigpu", + "ver": "15ff29c63b816a5d4139557730da6b4dae2840cf", + "Node name for S&R": "WanVideoBlockSwapMultiGPU" + }, + "widgets_values": [ + 21, + "cuda:2", + "cpu", + false, + false, + false, + 0, + "cuda:1" + ], + "color": "#008181", + "bgcolor": "rgba(24,24,27,.9)" + }, + { + "id": 76, + "type": "MarkdownNote", + "pos": [ + -584.4541625976562, + -762.4033203125 + ], + "size": [ + 647.0803833007812, + 804.3665771484375 + ], + "flags": {}, + "order": 8, + "mode": 0, + "inputs": [], + "outputs": [], + "title": "ComfyUI-MultiGPU Note - ComfyUI-WanVideoWrapper", + "properties": {}, + "widgets_values": [ + "These nodes are designed to work with ComfyUI-WanVideoWrapper they enable UNets, CLIPs, and VAEs to be loaded on any available device. This is a replication of the original workflow by kijai which can be found here: [wanvideo_T2V_example_03.json](https://github.com/kijai/ComfyUI-WanVideoWrapper/blob/main/example_workflows/wanvideo_T2V_example_03.json). In this case we assume that there is a second video card in the system that can donate ~7G for the model. Literally any device on the PCIe bus can be used for model storage with very little impact to WanVideo generation times.\n\n## Custom Node\n- [ComfyUI-MultiGPU](https://github.com/pollockjj/ComfyUI-MultiGPU)\n- [ComfyUI-WanVideoWrapper](https://github.com/kijai/ComfyUI-WanVideoWrapper)\n```\nšŸ“‚ ComfyUI/\nā”œā”€ā”€ šŸ“‚ custom_nodes/\n│ ā”œā”€ā”€ šŸ“‚ ComfyUI-MultiGPU/\n│ ā”œā”€ā”€ šŸ“‚ ComfyUI-WanVideoWrapper\n```\n## Model links\n\n**Diffusion model**\n- [Wan2_1-T2V-14B_fp8_e5m2.safetensors](https://huggingface.co/Kijai/WanVideo_comfy/resolve/main/Wan2_1-T2V-14B_fp8_e5m2.safetensors)\n\n**CLIP**\n- [umt5_xxl_enc-bf16.safetensors](https://huggingface.co/Kijai/WanVideo_comfy/resolve/main/umt5-xxl-enc-bf16.safetensors)\n\n**VAE**\n- [wan_2.1_vae.safetensors](https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/blob/main/split_files/vae/wan_2.1_vae.safetensors)\n\n**LoRA**\n- [wan2.1-1.3b-control-lora-tile-v1.1_comfy.safetensors](https://huggingface.co/spacepxl/Wan2.1-control-loras/resolve/main/1.3b/tile/wan2.1-1.3b-control-lora-tile-v1.1_comfy.safetensors)\n\n## Model Storage Location\n\n```\nšŸ“‚ ComfyUI/\nā”œā”€ā”€ šŸ“‚ models/\n│ ā”œā”€ā”€ šŸ“‚ clip/\n│ │ └── umt5_xxl_enc-bf16.safetensors \n│ ā”œā”€ā”€ šŸ“‚ unet/\n│ │ ā”œā”€ā”€ Wan2_1-T2V-14B_fp8_e5m2.safetensors [🟪🟪🟪🟪🟪🟩🟩🟩🟩🟩]\n│ ā”œā”€ā”€ā”€šŸ“‚ loras/\n│ │ ā”œā”€ā”€ wan2.1-1.3b-control-lora-tile-v1.1_comfy.safetensors\n│ ā”œā”€ā”€ šŸ“‚ vae/\n│ │ └── wan_2.1_vae.safetensors \n```\n## Device Mapping (Example: Two GPUs, 1 CPU)\n```\nšŸ–„ļø system \nā”œā”€ā”€ 🟢 cuda:0\n│ └── Wan2_1-T2V-14B_fp8_e5m2.safetensors [🟩🟩🟩🟩🟩]\n│ └── wan2.1-1.3b-control-lora-tile-v1.1_comfy.safetensors\nā”œā”€ā”€ 🟣 cuda:1\n│ └── Wan2_1-T2V-14B_fp8_e5m2.safetensors [🟪🟪🟪🟪🟪]\n│ └── umt5_xxl_enc-bf16.safetensors\n│ └── wan_2.1_vae.safetensors\nā”œā”€ā”€ āš™ļø cpu\n └── Empty\n```" + ], + "color": "#008181", + "bgcolor": "rgba(24,24,27,.9)" } ], "links": [ - [ - 52, - 48, - 0, - 49, - 0, - "CLIP" - ], - [ - 53, - 48, - 0, - 50, - 0, - "CLIP" - ], - [ - 54, - 49, - 0, - 46, - 0, - "CONDITIONING" - ], - [ - 55, - 50, - 0, - 46, - 1, - "CONDITIONING" - ], [ 63, 60, @@ -1168,14 +977,6 @@ 0, "IMAGE" ], - [ - 82, - 72, - 0, - 63, - 0, - "WANVIDEOMODEL" - ], [ 83, 72, @@ -1223,30 +1024,40 @@ 69, 0, "IMAGE" + ], + [ + 89, + 60, + 1, + 61, + 1, + "MULTIGPUDEVICE" + ], + [ + 90, + 66, + 0, + 63, + 0, + "WANVIDEOMODEL" + ], + [ + 91, + 78, + 0, + 72, + 0, + "WANCOMPILEARGS" ] ], - "groups": [ - { - "id": 1, - "title": "ComfyUI text encoding alternative", - "bounding": [ - -26.172378540039062, - 365.4286193847656, - 1210.621337890625, - 805.9080810546875 - ], - "color": "#3f789e", - "font_size": 24, - "flags": {} - } - ], + "groups": [], "config": {}, "extra": { "ds": { - "scale": 0.620921323059155, + "scale": 0.6830134553650705, "offset": [ - 949.2262021137265, - 1175.3792206745793 + 655.4991813722315, + 1152.1915705024237 ] }, "frontendVersion": "1.27.10", diff --git a/example_workflows/distorch/flux1dev_gguf_distorch.json b/example_workflows/distorch/flux1dev_gguf_distorch.json deleted file mode 100755 index bec502f..0000000 --- a/example_workflows/distorch/flux1dev_gguf_distorch.json +++ /dev/null @@ -1,597 +0,0 @@ -{ - "last_node_id": 52, - "last_link_id": 103, - "nodes": [ - { - "id": 22, - "type": "BasicGuider", - "pos": [ - 383.62896728515625, - 96.27555847167969 - ], - "size": [ - 161.1999969482422, - 46 - ], - "flags": {}, - "order": 8, - "mode": 0, - "inputs": [ - { - "name": "model", - "type": "MODEL", - "link": 102, - "slot_index": 0 - }, - { - "name": "conditioning", - "type": "CONDITIONING", - "link": 87, - "slot_index": 1 - } - ], - "outputs": [ - { - "name": "GUIDER", - "type": "GUIDER", - "links": [ - 30 - ], - "slot_index": 0, - "shape": 3 - } - ], - "properties": { - "Node name for S&R": "BasicGuider" - }, - "widgets_values": [] - }, - { - "id": 16, - "type": "KSamplerSelect", - "pos": [ - 398.8528137207031, - 360.1959533691406 - ], - "size": [ - 210, - 58 - ], - "flags": {}, - "order": 0, - "mode": 0, - "inputs": [], - "outputs": [ - { - "name": "SAMPLER", - "type": "SAMPLER", - "links": [ - 19 - ], - "shape": 3 - } - ], - "properties": { - "Node name for S&R": "KSamplerSelect" - }, - "widgets_values": [ - "deis" - ] - }, - { - "id": 13, - "type": "SamplerCustomAdvanced", - "pos": [ - 883.27783203125, - 267.0603942871094 - ], - "size": [ - 236.8000030517578, - 387.28668212890625 - ], - "flags": {}, - "order": 9, - "mode": 0, - "inputs": [ - { - "name": "noise", - "type": "NOISE", - "link": 37, - "slot_index": 0 - }, - { - "name": "guider", - "type": "GUIDER", - "link": 30, - "slot_index": 1 - }, - { - "name": "sampler", - "type": "SAMPLER", - "link": 19, - "slot_index": 2 - }, - { - "name": "sigmas", - "type": "SIGMAS", - "link": 20, - "slot_index": 3 - }, - { - "name": "latent_image", - "type": "LATENT", - "link": 82, - "slot_index": 4 - } - ], - "outputs": [ - { - "name": "output", - "type": "LATENT", - "links": [ - 83 - ], - "slot_index": 0, - "shape": 3 - }, - { - "name": "denoised_output", - "type": "LATENT", - "links": null, - "shape": 3 - } - ], - "properties": { - "Node name for S&R": "SamplerCustomAdvanced" - }, - "widgets_values": [] - }, - { - "id": 9, - "type": "SaveImage", - "pos": [ - 1153.8681640625, - 66.58897399902344 - ], - "size": [ - 512.2255859375, - 692.112548828125 - ], - "flags": {}, - "order": 11, - "mode": 0, - "inputs": [ - { - "name": "images", - "type": "IMAGE", - "link": 85 - } - ], - "outputs": [], - "properties": { - "Node name for S&R": "SaveImage" - }, - "widgets_values": [ - "ComfyUI" - ] - }, - { - "id": 41, - "type": "CLIPTextEncode", - "pos": [ - 420.7973937988281, - 467.3779296875 - ], - "size": [ - 400, - 200 - ], - "flags": {}, - "order": 7, - "mode": 0, - "inputs": [ - { - "name": "clip", - "type": "CLIP", - "link": 99 - } - ], - "outputs": [ - { - "name": "CONDITIONING", - "type": "CONDITIONING", - "links": [ - 87 - ], - "slot_index": 0 - } - ], - "properties": { - "Node name for S&R": "CLIPTextEncode" - }, - "widgets_values": [ - "A towering technological monolith in a cyberpunk cityscape at night, with \"DisTorch\" emblazoned across its surface in massive neon red letters that illuminate the surrounding buildings. The text occupies the central third of the frame, crafted from glowing plasma tubes and crackling energy. Rain-slicked streets below reflect the brilliant signage, while holographic advertisements and flying vehicles populate the background. Moody atmospheric lighting, heavy contrast, photorealistic textures, cinematic color grading." - ] - }, - { - "id": 17, - "type": "BasicScheduler", - "pos": [ - 660.5484008789062, - 118.03018188476562 - ], - "size": [ - 210, - 106 - ], - "flags": {}, - "order": 6, - "mode": 0, - "inputs": [ - { - "name": "model", - "type": "MODEL", - "link": 103, - "slot_index": 0 - } - ], - "outputs": [ - { - "name": "SIGMAS", - "type": "SIGMAS", - "links": [ - 20 - ], - "shape": 3 - } - ], - "properties": { - "Node name for S&R": "BasicScheduler" - }, - "widgets_values": [ - "ddim_uniform", - 30, - 1 - ] - }, - { - "id": 40, - "type": "VAEDecode", - "pos": [ - 875.2288818359375, - 120.00743103027344 - ], - "size": [ - 210, - 46 - ], - "flags": {}, - "order": 10, - "mode": 0, - "inputs": [ - { - "name": "samples", - "type": "LATENT", - "link": 83 - }, - { - "name": "vae", - "type": "VAE", - "link": 84 - } - ], - "outputs": [ - { - "name": "IMAGE", - "type": "IMAGE", - "links": [ - 85 - ], - "slot_index": 0 - } - ], - "properties": { - "Node name for S&R": "VAEDecode" - }, - "widgets_values": [] - }, - { - "id": 39, - "type": "EmptySD3LatentImage", - "pos": [ - 644.3074951171875, - 299.38372802734375 - ], - "size": [ - 210, - 106 - ], - "flags": {}, - "order": 1, - "mode": 0, - "inputs": [], - "outputs": [ - { - "name": "LATENT", - "type": "LATENT", - "links": [ - 82 - ], - "slot_index": 0 - } - ], - "properties": { - "Node name for S&R": "EmptySD3LatentImage" - }, - "widgets_values": [ - 1024, - 1024, - 1 - ] - }, - { - "id": 25, - "type": "RandomNoise", - "pos": [ - 390.974853515625, - 209.66781616210938 - ], - "size": [ - 236.60824584960938, - 88.84210968017578 - ], - "flags": {}, - "order": 2, - "mode": 0, - "inputs": [], - "outputs": [ - { - "name": "NOISE", - "type": "NOISE", - "links": [ - 37 - ], - "shape": 3 - } - ], - "properties": { - "Node name for S&R": "RandomNoise" - }, - "widgets_values": [ - 5770521, - "fixed" - ] - }, - { - "id": 37, - "type": "UnetLoaderGGUFDisTorchMultiGPU", - "pos": [ - -71.38706970214844, - 90.67648315429688 - ], - "size": [ - 417.6407775878906, - 154 - ], - "flags": {}, - "order": 3, - "mode": 0, - "inputs": [], - "outputs": [ - { - "name": "MODEL", - "type": "MODEL", - "links": [ - 102, - 103 - ], - "slot_index": 0 - } - ], - "properties": { - "Node name for S&R": "UnetLoaderGGUFDisTorchMultiGPU" - }, - "widgets_values": [ - "flux1-dev-Q8_0.gguf", - "cuda:0", - 6, - false, - "" - ], - "color": "#233", - "bgcolor": "#355" - }, - { - "id": 33, - "type": "VAELoaderMultiGPU", - "pos": [ - -66.57144165039062, - 479.7591552734375 - ], - "size": [ - 450.23980712890625, - 82 - ], - "flags": {}, - "order": 4, - "mode": 0, - "inputs": [], - "outputs": [ - { - "name": "VAE", - "type": "VAE", - "links": [ - 84 - ], - "slot_index": 0, - "shape": 3 - } - ], - "properties": { - "Node name for S&R": "VAELoaderMultiGPU" - }, - "widgets_values": [ - "ae.safetensors", - "cuda:1" - ], - "color": "#233", - "bgcolor": "#355" - }, - { - "id": 35, - "type": "DualCLIPLoaderGGUFMultiGPU", - "pos": [ - -69.62869262695312, - 285.6338195800781 - ], - "size": [ - 435.3804016113281, - 130 - ], - "flags": {}, - "order": 5, - "mode": 0, - "inputs": [], - "outputs": [ - { - "name": "CLIP", - "type": "CLIP", - "links": [ - 99 - ], - "slot_index": 0 - } - ], - "properties": { - "Node name for S&R": "DualCLIPLoaderGGUFMultiGPU" - }, - "widgets_values": [ - "t5-v1_1-xxl-encoder-Q4_K_M.gguf", - "clip_l.safetensors", - "flux", - "cuda:1" - ], - "color": "#233", - "bgcolor": "#355" - } - ], - "links": [ - [ - 19, - 16, - 0, - 13, - 2, - "SAMPLER" - ], - [ - 20, - 17, - 0, - 13, - 3, - "SIGMAS" - ], - [ - 30, - 22, - 0, - 13, - 1, - "GUIDER" - ], - [ - 37, - 25, - 0, - 13, - 0, - "NOISE" - ], - [ - 82, - 39, - 0, - 13, - 4, - "LATENT" - ], - [ - 83, - 13, - 0, - 40, - 0, - "LATENT" - ], - [ - 84, - 33, - 0, - 40, - 1, - "VAE" - ], - [ - 85, - 40, - 0, - 9, - 0, - "IMAGE" - ], - [ - 87, - 41, - 0, - 22, - 1, - "CONDITIONING" - ], - [ - 99, - 35, - 0, - 41, - 0, - "CLIP" - ], - [ - 102, - 37, - 0, - 22, - 0, - "MODEL" - ], - [ - 103, - 37, - 0, - 17, - 0, - "MODEL" - ] - ], - "groups": [], - "config": {}, - "extra": { - "ds": { - "scale": 1, - "offset": [ - 574.0015045555798, - 267.12195585438565 - ] - }, - "ue_links": [], - "VHS_latentpreview": false, - "VHS_latentpreviewrate": 0, - "node_versions": { - "comfy-core": "0.3.12", - "ComfyUI-MultiGPU": "3dbfcc713552b0560a471c10d9b29520e8b1981e" - }, - "VHS_MetadataImage": true, - "VHS_KeepIntermediate": true - }, - "version": 0.4 -} \ No newline at end of file diff --git a/example_workflows/florence2/florence2_flux1dev_ltxv_cpu_2gpu.json b/example_workflows/florence2/florence2_flux1dev_ltxv_cpu_2gpu.json deleted file mode 100644 index 2ebd9f7..0000000 --- a/example_workflows/florence2/florence2_flux1dev_ltxv_cpu_2gpu.json +++ /dev/null @@ -1,4182 +0,0 @@ -{ - "last_node_id": 302, - "last_link_id": 770, - "nodes": [ - { - "id": 291, - "type": "ImageResizeKJ", - "pos": [ - 383.1074523925781, - -548.6244506835938 - ], - "size": [ - 210, - 238 - ], - "flags": {}, - "order": 18, - "mode": 0, - "inputs": [ - { - "name": "image", - "type": "IMAGE", - "link": 748 - }, - { - "name": "get_image_size", - "type": "IMAGE", - "link": null, - "shape": 7 - }, - { - "name": "width_input", - "type": "INT", - "link": null, - "widget": { - "name": "width_input" - }, - "shape": 7 - }, - { - "name": "height_input", - "type": "INT", - "link": null, - "widget": { - "name": "height_input" - }, - "shape": 7 - } - ], - "outputs": [ - { - "name": "IMAGE", - "type": "IMAGE", - "links": [], - "slot_index": 0 - }, - { - "name": "width", - "type": "INT", - "links": [ - 749 - ], - "slot_index": 1 - }, - { - "name": "height", - "type": "INT", - "links": [ - 750 - ], - "slot_index": 2 - } - ], - "properties": { - "Node name for S&R": "ImageResizeKJ" - }, - "widgets_values": [ - 1024, - 1024, - "nearest-exact", - true, - 16, - 0, - 0, - "center" - ] - }, - { - "id": 286, - "type": "DownloadAndLoadFlorence2ModelMultiGPU", - "pos": [ - 0.036769963800907135, - -964.1196899414062 - ], - "size": [ - 335.5765075683594, - 130 - ], - "flags": {}, - "order": 0, - "mode": 0, - "inputs": [ - { - "name": "lora", - "type": "PEFTLORA", - "link": null, - "shape": 7 - } - ], - "outputs": [ - { - "name": "florence2_model", - "type": "FL2MODEL", - "links": [ - 742 - ], - "slot_index": 0 - } - ], - "properties": { - "Node name for S&R": "DownloadAndLoadFlorence2ModelMultiGPU" - }, - "widgets_values": [ - "microsoft/Florence-2-large", - "fp16", - "sdpa", - "cpu" - ], - "color": "#ff9414", - "bgcolor": "#ff8000" - }, - { - "id": 287, - "type": "Florence2Run", - "pos": [ - 380.0677795410156, - -955.0060424804688 - ], - "size": [ - 282.5164489746094, - 352 - ], - "flags": { - "collapsed": false - }, - "order": 17, - "mode": 0, - "inputs": [ - { - "name": "image", - "type": "IMAGE", - "link": 744 - }, - { - "name": "florence2_model", - "type": "FL2MODEL", - "link": 742, - "slot_index": 1 - } - ], - "outputs": [ - { - "name": "image", - "type": "IMAGE", - "links": [], - "slot_index": 0, - "shape": 3 - }, - { - "name": "mask", - "type": "MASK", - "links": [], - "slot_index": 1, - "shape": 3 - }, - { - "name": "caption", - "type": "STRING", - "links": [ - 767, - 768, - 769 - ], - "slot_index": 2, - "shape": 3 - }, - { - "name": "data", - "type": "JSON", - "links": null, - "slot_index": 3, - "shape": 3 - } - ], - "properties": { - "Node name for S&R": "Florence2Run" - }, - "widgets_values": [ - "", - "more_detailed_caption", - false, - true, - 2048, - 3, - true, - "", - 5770521, - "fixed" - ], - "color": "#ff9414", - "bgcolor": "#ff8000", - "shape": 1 - }, - { - "id": 299, - "type": "ShowText|pysssss", - "pos": [ - 1727.4791259765625, - -777.7683715820312 - ], - "size": [ - 312.02349853515625, - 171.37887573242188 - ], - "flags": {}, - "order": 30, - "mode": 0, - "inputs": [ - { - "name": "text", - "type": "STRING", - "link": 763, - "widget": { - "name": "text" - } - } - ], - "outputs": [ - { - "name": "STRING", - "type": "STRING", - "links": [ - 764 - ], - "slot_index": 0, - "shape": 6 - } - ], - "properties": { - "Node name for S&R": "ShowText|pysssss" - }, - "widgets_values": [ - "", - "This describes the first frame of a video that needs to subtly animated for 5 seconds: The image is a black and white photograph of a waterfall. The waterfall is cascading down a rocky cliff, with the water flowing over the rocks and creating a misty effect. The rocks are large and jagged, and the water is flowing over them. The cliff is covered in trees and shrubs, and there is a hill in the background. The sky is overcast and the overall mood of the image is peaceful and serene." - ], - "color": "#232", - "bgcolor": "#353" - }, - { - "id": 300, - "type": "CLIPLoaderMultiGPU", - "pos": [ - 1732.0577392578125, - -564.0845336914062 - ], - "size": [ - 315, - 106 - ], - "flags": {}, - "order": 1, - "mode": 0, - "inputs": [], - "outputs": [ - { - "name": "CLIP", - "type": "CLIP", - "links": [ - 765, - 766 - ], - "slot_index": 0 - } - ], - "properties": { - "Node name for S&R": "CLIPLoaderMultiGPU" - }, - "widgets_values": [ - "t5xxl_fp8_e4m3fn.safetensors", - "ltxv", - "cpu" - ] - }, - { - "id": 274, - "type": "ImageResizeKJ", - "pos": [ - 1736.1766357421875, - -410.67987060546875 - ], - "size": [ - 210, - 238 - ], - "flags": { - "collapsed": false - }, - "order": 35, - "mode": 0, - "inputs": [ - { - "name": "image", - "type": "IMAGE", - "link": 740 - }, - { - "name": "get_image_size", - "type": "IMAGE", - "link": null, - "shape": 7 - }, - { - "name": "width_input", - "type": "INT", - "link": null, - "widget": { - "name": "width_input" - }, - "shape": 7 - }, - { - "name": "height_input", - "type": "INT", - "link": null, - "widget": { - "name": "height_input" - }, - "shape": 7 - } - ], - "outputs": [ - { - "name": "IMAGE", - "type": "IMAGE", - "links": [ - 720 - ], - "slot_index": 0 - }, - { - "name": "width", - "type": "INT", - "links": [ - 721, - 727 - ], - "slot_index": 1 - }, - { - "name": "height", - "type": "INT", - "links": [ - 722, - 728 - ], - "slot_index": 2 - } - ], - "properties": { - "Node name for S&R": "ImageResizeKJ" - }, - "widgets_values": [ - 768, - 768, - "nearest-exact", - true, - 16, - 0, - 0, - "center" - ] - }, - { - "id": 270, - "type": "ModifyLTXModel", - "pos": [ - 2066.1455078125, - -931.8618774414062 - ], - "size": [ - 210, - 26 - ], - "flags": { - "collapsed": false - }, - "order": 20, - "mode": 0, - "inputs": [ - { - "name": "model", - "type": "MODEL", - "link": 714 - } - ], - "outputs": [ - { - "name": "MODEL", - "type": "MODEL", - "links": [ - 715 - ], - "slot_index": 0 - } - ], - "properties": { - "Node name for S&R": "ModifyLTXModel" - }, - "widgets_values": [] - }, - { - "id": 271, - "type": "LTXAttnOverride", - "pos": [ - 2304.862060546875, - -951.1757202148438 - ], - "size": [ - 210, - 76 - ], - "flags": { - "collapsed": false - }, - "order": 2, - "mode": 0, - "inputs": [], - "outputs": [ - { - "name": "ATTN_OVERRIDE", - "type": "ATTN_OVERRIDE", - "links": [ - 716 - ], - "slot_index": 0 - } - ], - "properties": { - "Node name for S&R": "LTXAttnOverride" - }, - "widgets_values": [ - "14" - ] - }, - { - "id": 292, - "type": "EmptySD3LatentImage", - "pos": [ - 449.8915710449219, - -242.02732849121094 - ], - "size": [ - 210, - 78 - ], - "flags": {}, - "order": 24, - "mode": 0, - "inputs": [ - { - "name": "width", - "type": "INT", - "link": 749, - "widget": { - "name": "width" - } - }, - { - "name": "height", - "type": "INT", - "link": 750, - "widget": { - "name": "height" - } - } - ], - "outputs": [ - { - "name": "LATENT", - "type": "LATENT", - "links": [ - 770 - ], - "slot_index": 0, - "shape": 3 - } - ], - "properties": { - "Node name for S&R": "EmptySD3LatentImage" - }, - "widgets_values": [ - 1024, - 1024, - 1 - ], - "color": "#222", - "bgcolor": "#000" - }, - { - "id": 113, - "type": "DualCLIPLoaderMultiGPU", - "pos": [ - 743.3309326171875, - -912.5949096679688 - ], - "size": [ - 315, - 130 - ], - "flags": {}, - "order": 3, - "mode": 0, - "inputs": [], - "outputs": [ - { - "name": "CLIP", - "type": "CLIP", - "links": [ - 711 - ], - "slot_index": 0, - "shape": 3 - } - ], - "properties": { - "Node name for S&R": "DualCLIPLoaderMultiGPU" - }, - "widgets_values": [ - "t5xxl_fp16.safetensors", - "clip_l.safetensors", - "flux", - "cpu" - ] - }, - { - "id": 111, - "type": "VAELoaderMultiGPU", - "pos": [ - 749.1101684570312, - -590.5072631835938 - ], - "size": [ - 315, - 82 - ], - "flags": {}, - "order": 4, - "mode": 0, - "inputs": [], - "outputs": [ - { - "name": "VAE", - "type": "VAE", - "links": [ - 706 - ], - "slot_index": 0, - "shape": 3 - } - ], - "properties": { - "Node name for S&R": "VAELoaderMultiGPU" - }, - "widgets_values": [ - "ae.safetensors", - "cpu" - ] - }, - { - "id": 184, - "type": "SaveImage", - "pos": [ - 1312.477783203125, - -490.65277099609375 - ], - "size": [ - 398.87176513671875, - 393.47467041015625 - ], - "flags": {}, - "order": 34, - "mode": 0, - "inputs": [ - { - "name": "images", - "type": "IMAGE", - "link": 384 - } - ], - "outputs": [], - "properties": { - "Node name for S&R": "SaveImage" - }, - "widgets_values": [ - "ComfyUI" - ] - }, - { - "id": 293, - "type": "DF_Text_Box", - "pos": [ - 948.7462768554688, - -1066.32470703125 - ], - "size": [ - 246.73094177246094, - 96.81416320800781 - ], - "flags": { - "collapsed": true - }, - "order": 5, - "mode": 0, - "inputs": [], - "outputs": [ - { - "name": "STRING", - "type": "STRING", - "links": [ - 757 - ], - "slot_index": 0 - } - ], - "properties": { - "Node name for S&R": "DF_Text_Box" - }, - "widgets_values": [ - "This describes the first frame of a video that needs to subtly animated for " - ] - }, - { - "id": 296, - "type": "Int2String", - "pos": [ - 867.2527465820312, - -1008.2164916992188 - ], - "size": [ - 210, - 34 - ], - "flags": { - "collapsed": true - }, - "order": 26, - "mode": 0, - "inputs": [ - { - "name": "Int", - "type": "INT", - "link": 756, - "widget": { - "name": "Int" - } - } - ], - "outputs": [ - { - "name": "STRING", - "type": "STRING", - "links": [ - 758 - ], - "slot_index": 0 - } - ], - "properties": { - "Node name for S&R": "Int2String" - }, - "widgets_values": [ - 0 - ] - }, - { - "id": 295, - "type": "easy mathInt", - "pos": [ - 755.301025390625, - -1006.3259887695312 - ], - "size": [ - 210, - 82 - ], - "flags": { - "collapsed": true - }, - "order": 21, - "mode": 0, - "inputs": [ - { - "name": "a", - "type": "INT", - "link": 755, - "widget": { - "name": "a" - } - } - ], - "outputs": [ - { - "name": "INT", - "type": "INT", - "links": [ - 756 - ], - "slot_index": 0 - } - ], - "properties": { - "Node name for S&R": "easy mathInt" - }, - "widgets_values": [ - 0, - 25, - "divide" - ] - }, - { - "id": 298, - "type": "DF_Text_Box", - "pos": [ - 846.861328125, - -954.3756713867188 - ], - "size": [ - 210, - 76 - ], - "flags": { - "collapsed": true - }, - "order": 6, - "mode": 0, - "inputs": [], - "outputs": [ - { - "name": "STRING", - "type": "STRING", - "links": [ - 759 - ], - "slot_index": 0 - } - ], - "properties": { - "Node name for S&R": "DF_Text_Box" - }, - "widgets_values": [ - "seconds: " - ] - }, - { - "id": 268, - "type": "CLIPTextEncode", - "pos": [ - 2067.76708984375, - -786.3204956054688 - ], - "size": [ - 210, - 54 - ], - "flags": { - "collapsed": false - }, - "order": 32, - "mode": 0, - "inputs": [ - { - "name": "clip", - "type": "CLIP", - "link": 765 - }, - { - "name": "text", - "type": "STRING", - "link": 764, - "widget": { - "name": "text" - } - } - ], - "outputs": [ - { - "name": "CONDITIONING", - "type": "CONDITIONING", - "links": [ - 717 - ], - "slot_index": 0 - } - ], - "title": "LTXV Pos", - "properties": { - "Node name for S&R": "CLIPTextEncode", - "enableTabs": false, - "tabWidth": 65, - "tabXOffset": 10, - "hasSecondTab": false, - "secondTabText": "Send Back", - "secondTabOffset": 80, - "secondTabWidth": 65 - }, - "widgets_values": [ - "A scary box" - ], - "color": "#232", - "bgcolor": "#353" - }, - { - "id": 269, - "type": "CLIPTextEncode", - "pos": [ - 2075.806396484375, - -657.681884765625 - ], - "size": [ - 285.6000061035156, - 76 - ], - "flags": { - "collapsed": false - }, - "order": 16, - "mode": 0, - "inputs": [ - { - "name": "clip", - "type": "CLIP", - "link": 766 - } - ], - "outputs": [ - { - "name": "CONDITIONING", - "type": "CONDITIONING", - "links": [ - 718 - ], - "slot_index": 0 - } - ], - "title": "CLIP Text Encode (Negative Prompt)", - "properties": { - "Node name for S&R": "CLIPTextEncode", - "enableTabs": false, - "tabWidth": 65, - "tabXOffset": 10, - "hasSecondTab": false, - "secondTabText": "Send Back", - "secondTabOffset": 80, - "secondTabWidth": 65 - }, - "widgets_values": [ - "low quality, worst quality, deformed, distorted, disfigured, motion smear, motion artifacts, fused fingers, bad anatomy, weird hand, ugly" - ], - "color": "#322", - "bgcolor": "#533" - }, - { - "id": 276, - "type": "EmptyLTXVLatentVideo", - "pos": [ - 2054.917236328125, - -266.39617919921875 - ], - "size": [ - 210, - 130 - ], - "flags": { - "collapsed": false - }, - "order": 37, - "mode": 0, - "inputs": [ - { - "name": "width", - "type": "INT", - "link": 727, - "widget": { - "name": "width" - } - }, - { - "name": "height", - "type": "INT", - "link": 728, - "widget": { - "name": "height" - } - }, - { - "name": "length", - "type": "INT", - "link": 761, - "widget": { - "name": "length" - } - } - ], - "outputs": [ - { - "name": "LATENT", - "type": "LATENT", - "links": [ - 730, - 739 - ], - "slot_index": 0 - } - ], - "properties": { - "Node name for S&R": "EmptyLTXVLatentVideo", - "enableTabs": false, - "tabWidth": 65, - "tabXOffset": 10, - "hasSecondTab": false, - "secondTabText": "Send Back", - "secondTabOffset": 80, - "secondTabWidth": 65 - }, - "widgets_values": [ - 512, - 768, - 129, - 1 - ] - }, - { - "id": 273, - "type": "LTXVImgToVideo", - "pos": [ - 2062.09521484375, - -511.68597412109375 - ], - "size": [ - 210, - 202 - ], - "flags": { - "collapsed": false - }, - "order": 36, - "mode": 0, - "inputs": [ - { - "name": "positive", - "type": "CONDITIONING", - "link": 717 - }, - { - "name": "negative", - "type": "CONDITIONING", - "link": 718 - }, - { - "name": "vae", - "type": "VAE", - "link": 719 - }, - { - "name": "image", - "type": "IMAGE", - "link": 720 - }, - { - "name": "width", - "type": "INT", - "link": 721, - "widget": { - "name": "width" - } - }, - { - "name": "height", - "type": "INT", - "link": 722, - "widget": { - "name": "height" - } - }, - { - "name": "length", - "type": "INT", - "link": 760, - "widget": { - "name": "length" - } - } - ], - "outputs": [ - { - "name": "positive", - "type": "CONDITIONING", - "links": [ - 725 - ], - "slot_index": 0 - }, - { - "name": "negative", - "type": "CONDITIONING", - "links": [ - 726 - ], - "slot_index": 1 - }, - { - "name": "latent", - "type": "LATENT", - "links": null - } - ], - "properties": { - "Node name for S&R": "LTXVImgToVideo" - }, - "widgets_values": [ - 512, - 768, - 257, - 1, - 0.15 - ], - "color": "#232", - "bgcolor": "#353" - }, - { - "id": 272, - "type": "LTXPerturbedAttention", - "pos": [ - 2322.979736328125, - -835.3939819335938 - ], - "size": [ - 243.60000610351562, - 126 - ], - "flags": { - "collapsed": false - }, - "order": 25, - "mode": 0, - "inputs": [ - { - "name": "model", - "type": "MODEL", - "link": 715 - }, - { - "name": "attn_override", - "type": "ATTN_OVERRIDE", - "link": 716, - "shape": 7 - } - ], - "outputs": [ - { - "name": "MODEL", - "type": "MODEL", - "links": [ - 734 - ], - "slot_index": 0 - } - ], - "properties": { - "Node name for S&R": "LTXPerturbedAttention" - }, - "widgets_values": [ - 1, - 0.25, - 3 - ] - }, - { - "id": 279, - "type": "VAEDecode", - "pos": [ - 2374.200439453125, - -643.4945678710938 - ], - "size": [ - 140, - 46 - ], - "flags": { - "collapsed": false - }, - "order": 41, - "mode": 0, - "inputs": [ - { - "name": "samples", - "type": "LATENT", - "link": 731 - }, - { - "name": "vae", - "type": "VAE", - "link": 732 - } - ], - "outputs": [ - { - "name": "IMAGE", - "type": "IMAGE", - "links": [ - 733 - ], - "slot_index": 0 - } - ], - "properties": { - "Node name for S&R": "VAEDecode", - "enableTabs": false, - "tabWidth": 65, - "tabXOffset": 10, - "hasSecondTab": false, - "secondTabText": "Send Back", - "secondTabOffset": 80, - "secondTabWidth": 65 - }, - "widgets_values": [] - }, - { - "id": 278, - "type": "LTXVScheduler", - "pos": [ - 2308.156005859375, - -289.2124938964844 - ], - "size": [ - 210, - 154 - ], - "flags": { - "collapsed": false - }, - "order": 39, - "mode": 0, - "inputs": [ - { - "name": "latent", - "type": "LATENT", - "link": 730, - "shape": 7 - } - ], - "outputs": [ - { - "name": "SIGMAS", - "type": "SIGMAS", - "links": [ - 738 - ], - "slot_index": 0 - } - ], - "properties": { - "Node name for S&R": "LTXVScheduler", - "enableTabs": false, - "tabWidth": 65, - "tabXOffset": 10, - "hasSecondTab": false, - "secondTabText": "Send Back", - "secondTabOffset": 80, - "secondTabWidth": 65 - }, - "widgets_values": [ - 100, - 2.05, - 0.95, - true, - 0.1 - ] - }, - { - "id": 277, - "type": "KSamplerSelect", - "pos": [ - 2291.593994140625, - -388.44921875 - ], - "size": [ - 210, - 58 - ], - "flags": { - "collapsed": false - }, - "order": 7, - "mode": 0, - "inputs": [], - "outputs": [ - { - "name": "SAMPLER", - "type": "SAMPLER", - "links": [ - 737 - ] - } - ], - "properties": { - "Node name for S&R": "KSamplerSelect", - "enableTabs": false, - "tabWidth": 65, - "tabXOffset": 10, - "hasSecondTab": false, - "secondTabText": "Send Back", - "secondTabOffset": 80, - "secondTabWidth": 65 - }, - "widgets_values": [ - "euler" - ] - }, - { - "id": 275, - "type": "LTXVConditioning", - "pos": [ - 2285.292236328125, - -512.1409912109375 - ], - "size": [ - 210, - 78 - ], - "flags": { - "collapsed": false - }, - "order": 38, - "mode": 0, - "inputs": [ - { - "name": "positive", - "type": "CONDITIONING", - "link": 725 - }, - { - "name": "negative", - "type": "CONDITIONING", - "link": 726 - } - ], - "outputs": [ - { - "name": "positive", - "type": "CONDITIONING", - "links": [ - 735 - ], - "slot_index": 0 - }, - { - "name": "negative", - "type": "CONDITIONING", - "links": [ - 736 - ], - "slot_index": 1 - } - ], - "properties": { - "Node name for S&R": "LTXVConditioning", - "enableTabs": false, - "tabWidth": 65, - "tabXOffset": 10, - "hasSecondTab": false, - "secondTabText": "Send Back", - "secondTabOffset": 80, - "secondTabWidth": 65 - }, - "widgets_values": [ - 25 - ], - "color": "#232", - "bgcolor": "#353" - }, - { - "id": 283, - "type": "SamplerCustom", - "pos": [ - 2520.345703125, - -559.6461181640625 - ], - "size": [ - 236.8000030517578, - 443.8398132324219 - ], - "flags": {}, - "order": 40, - "mode": 0, - "inputs": [ - { - "name": "model", - "type": "MODEL", - "link": 734 - }, - { - "name": "positive", - "type": "CONDITIONING", - "link": 735 - }, - { - "name": "negative", - "type": "CONDITIONING", - "link": 736 - }, - { - "name": "sampler", - "type": "SAMPLER", - "link": 737 - }, - { - "name": "sigmas", - "type": "SIGMAS", - "link": 738 - }, - { - "name": "latent_image", - "type": "LATENT", - "link": 739 - } - ], - "outputs": [ - { - "name": "output", - "type": "LATENT", - "links": [ - 731 - ], - "slot_index": 0 - }, - { - "name": "denoised_output", - "type": "LATENT", - "links": null - } - ], - "properties": { - "Node name for S&R": "SamplerCustom", - "enableTabs": false, - "tabWidth": 65, - "tabXOffset": 10, - "hasSecondTab": false, - "secondTabText": "Send Back", - "secondTabOffset": 80, - "secondTabWidth": 65 - }, - "widgets_values": [ - true, - 5770521, - "fixed", - 3 - ] - }, - { - "id": 280, - "type": "VHS_VideoCombine", - "pos": [ - 2769.0009765625, - -939.8538818359375 - ], - "size": [ - 281.3041687011719, - 696.4055786132812 - ], - "flags": {}, - "order": 42, - "mode": 0, - "inputs": [ - { - "name": "images", - "type": "IMAGE", - "link": 733 - }, - { - "name": "audio", - "type": "AUDIO", - "link": null, - "shape": 7 - }, - { - "name": "meta_batch", - "type": "VHS_BatchManager", - "link": null, - "shape": 7 - }, - { - "name": "vae", - "type": "VAE", - "link": null, - "shape": 7 - } - ], - "outputs": [ - { - "name": "Filenames", - "type": "VHS_FILENAMES", - "links": null - } - ], - "properties": { - "Node name for S&R": "VHS_VideoCombine", - "enableTabs": false, - "tabWidth": 65, - "tabXOffset": 10, - "hasSecondTab": false, - "secondTabText": "Send Back", - "secondTabOffset": 80, - "secondTabWidth": 65 - }, - "widgets_values": { - "frame_rate": 24, - "loop_count": 0, - "filename_prefix": "LTXVideo", - "format": "video/h264-mp4", - "pix_fmt": "yuv420p", - "crf": 19, - "save_metadata": true, - "trim_to_audio": false, - "pingpong": false, - "save_output": true, - "videopreview": { - "hidden": false, - "paused": false, - "params": { - "filename": "LTXVideo_00383.mp4", - "subfolder": "", - "type": "output", - "format": "video/h264-mp4", - "frame_rate": 24, - "workflow": "LTXVideo_00383.png", - "fullpath": "/home/johnj/ComfyUI/output/LTXVideo_00383.mp4" - }, - "muted": false - } - } - }, - { - "id": 128, - "type": "RandomNoise", - "pos": [ - 759.59130859375, - -453.7845153808594 - ], - "size": [ - 252.69171142578125, - 82 - ], - "flags": {}, - "order": 8, - "mode": 0, - "inputs": [], - "outputs": [ - { - "name": "NOISE", - "type": "NOISE", - "links": [ - 702 - ], - "slot_index": 0, - "shape": 3 - } - ], - "title": "RandomNoise/Seed", - "properties": { - "Node name for S&R": "RandomNoise" - }, - "widgets_values": [ - 5770521, - "fixed" - ], - "color": "#432", - "bgcolor": "#653" - }, - { - "id": 288, - "type": "ShowText|pysssss", - "pos": [ - 735.609375, - -322.7117004394531 - ], - "size": [ - 301.9348449707031, - 183.0865020751953 - ], - "flags": {}, - "order": 23, - "mode": 0, - "inputs": [ - { - "name": "text", - "type": "STRING", - "link": 769, - "widget": { - "name": "text" - } - } - ], - "outputs": [ - { - "name": "STRING", - "type": "STRING", - "links": null, - "shape": 6 - } - ], - "properties": { - "Node name for S&R": "ShowText|pysssss" - }, - "widgets_values": [ - "", - "The image is a black and white photograph of a waterfall. The waterfall is cascading down a rocky cliff, with the water flowing over the rocks and creating a misty effect. The rocks are large and jagged, and the water is flowing over them. The cliff is covered in trees and shrubs, and there is a hill in the background. The sky is overcast and the overall mood of the image is peaceful and serene." - ] - }, - { - "id": 297, - "type": "Text Concatenate", - "pos": [ - 1094.17333984375, - -922.4619750976562 - ], - "size": [ - 210, - 142 - ], - "flags": { - "collapsed": true - }, - "order": 28, - "mode": 0, - "inputs": [ - { - "name": "text_a", - "type": "STRING", - "link": 757, - "widget": { - "name": "text_a" - }, - "shape": 7 - }, - { - "name": "text_b", - "type": "STRING", - "link": 758, - "widget": { - "name": "text_b" - }, - "shape": 7 - }, - { - "name": "text_c", - "type": "STRING", - "link": 759, - "widget": { - "name": "text_c" - }, - "shape": 7 - }, - { - "name": "text_d", - "type": "STRING", - "link": 767, - "widget": { - "name": "text_d" - }, - "shape": 7 - } - ], - "outputs": [ - { - "name": "STRING", - "type": "STRING", - "links": [ - 763 - ], - "slot_index": 0 - } - ], - "properties": { - "Node name for S&R": "Text Concatenate" - }, - "widgets_values": [ - " ", - "true", - "", - "", - "", - "" - ] - }, - { - "id": 150, - "type": "BasicGuider", - "pos": [ - 1116.4012451171875, - -707.979736328125 - ], - "size": [ - 257.0326232910156, - 51.87638854980469 - ], - "flags": { - "collapsed": true - }, - "order": 29, - "mode": 0, - "inputs": [ - { - "name": "model", - "type": "MODEL", - "link": 707, - "slot_index": 0 - }, - { - "name": "conditioning", - "type": "CONDITIONING", - "link": 703, - "slot_index": 1 - } - ], - "outputs": [ - { - "name": "GUIDER", - "type": "GUIDER", - "links": [ - 272 - ], - "slot_index": 0, - "shape": 3 - } - ], - "properties": { - "Node name for S&R": "BasicGuider" - }, - "widgets_values": [], - "color": "#232", - "bgcolor": "#353" - }, - { - "id": 151, - "type": "BasicScheduler", - "pos": [ - 1081.531005859375, - -818.8421630859375 - ], - "size": [ - 236.516357421875, - 106 - ], - "flags": { - "collapsed": false - }, - "order": 19, - "mode": 0, - "inputs": [ - { - "name": "model", - "type": "MODEL", - "link": 705, - "slot_index": 0 - } - ], - "outputs": [ - { - "name": "SIGMAS", - "type": "SIGMAS", - "links": [ - 273 - ], - "slot_index": 0, - "shape": 3 - } - ], - "properties": { - "Node name for S&R": "BasicScheduler" - }, - "widgets_values": [ - "ddim_uniform", - 30, - 1 - ], - "color": "#323", - "bgcolor": "#535" - }, - { - "id": 130, - "type": "KSamplerSelect", - "pos": [ - 1070.2655029296875, - -671.5866088867188 - ], - "size": [ - 210, - 58 - ], - "flags": { - "collapsed": false - }, - "order": 9, - "mode": 0, - "inputs": [], - "outputs": [ - { - "name": "SAMPLER", - "type": "SAMPLER", - "links": [ - 700 - ], - "slot_index": 0, - "shape": 3 - } - ], - "properties": { - "Node name for S&R": "KSamplerSelect" - }, - "widgets_values": [ - "deis" - ], - "color": "#323", - "bgcolor": "#535" - }, - { - "id": 149, - "type": "SamplerCustomAdvanced", - "pos": [ - 1053.5076904296875, - -463.5470886230469 - ], - "size": [ - 236.8000030517578, - 344.8153076171875 - ], - "flags": {}, - "order": 31, - "mode": 0, - "inputs": [ - { - "name": "noise", - "type": "NOISE", - "link": 702, - "slot_index": 0 - }, - { - "name": "guider", - "type": "GUIDER", - "link": 272, - "slot_index": 1 - }, - { - "name": "sampler", - "type": "SAMPLER", - "link": 700, - "slot_index": 2 - }, - { - "name": "sigmas", - "type": "SIGMAS", - "link": 273, - "slot_index": 3 - }, - { - "name": "latent_image", - "type": "LATENT", - "link": 770, - "slot_index": 4 - } - ], - "outputs": [ - { - "name": "output", - "type": "LATENT", - "links": [ - 270 - ], - "slot_index": 0, - "shape": 3 - }, - { - "name": "denoised_output", - "type": "LATENT", - "links": null, - "shape": 3 - } - ], - "properties": { - "Node name for S&R": "SamplerCustomAdvanced" - }, - "widgets_values": [], - "color": "#323", - "bgcolor": "#535" - }, - { - "id": 147, - "type": "VAEDecode", - "pos": [ - 1332.1346435546875, - -581.1580200195312 - ], - "size": [ - 140, - 46 - ], - "flags": { - "collapsed": true - }, - "order": 33, - "mode": 0, - "inputs": [ - { - "name": "samples", - "type": "LATENT", - "link": 270 - }, - { - "name": "vae", - "type": "VAE", - "link": 706 - } - ], - "outputs": [ - { - "name": "IMAGE", - "type": "IMAGE", - "links": [ - 384, - 740 - ], - "slot_index": 0 - } - ], - "properties": { - "Node name for S&R": "VAEDecode" - }, - "widgets_values": [] - }, - { - "id": 35, - "type": "FluxGuidance", - "pos": [ - 1074.5513916015625, - -575.5557861328125 - ], - "size": [ - 211.60000610351562, - 58 - ], - "flags": { - "collapsed": false - }, - "order": 27, - "mode": 0, - "inputs": [ - { - "name": "conditioning", - "type": "CONDITIONING", - "link": 56 - } - ], - "outputs": [ - { - "name": "CONDITIONING", - "type": "CONDITIONING", - "links": [ - 703 - ], - "slot_index": 0, - "shape": 3 - } - ], - "properties": { - "Node name for S&R": "FluxGuidance" - }, - "widgets_values": [ - 3.5 - ] - }, - { - "id": 301, - "type": "Note", - "pos": [ - 90.61213684082031, - -1320.3759765625 - ], - "size": [ - 783.961669921875, - 254.1817626953125 - ], - "flags": {}, - "order": 10, - "mode": 0, - "inputs": [], - "outputs": [], - "title": "This workflow is main memory (CPU) intensive", - "properties": {}, - "widgets_values": [ - "**āš ļø Dependency Alert! āš ļø**\n\nThis workflow is designed to show how much of a complex workflow can be spread across GPUs while offloading as much as it can to main memory (cpu). \n\nSince this workflow cannot predict every combination of cuda devices and main memory, you might find your desired model component doesn't fit. At that point, your options are to change to a different (larger) device, load a smaller model, or explore GGUF quantizations of existing models. \n\nShould you want to explore GGUF quantizations, it requires nodes from the [ComfyUI-GGUF](https://github.com/city96/ComfyUI-GGUF) custom node repository to function correctly, along with swapping out to the GGUF versions of the MultiGPU node(s). Please see the GGUF examples located in the same diretory for further exploration." - ], - "color": "#332922", - "bgcolor": "#593930" - }, - { - "id": 302, - "type": "Note", - "pos": [ - 1132.27734375, - -1160.07568359375 - ], - "size": [ - 210, - 91.36243438720703 - ], - "flags": {}, - "order": 11, - "mode": 0, - "inputs": [], - "outputs": [], - "title": "User Input", - "properties": {}, - "widgets_values": [ - "24 frames per second, needs to be equal to N*8+1 = e.g. 9,17,25, etc." - ], - "color": "#233", - "bgcolor": "#355" - }, - { - "id": 232, - "type": "LoadImage", - "pos": [ - -11.854447364807129, - -784.3826904296875 - ], - "size": [ - 371.3655090332031, - 625.0361938476562 - ], - "flags": {}, - "order": 12, - "mode": 0, - "inputs": [], - "outputs": [ - { - "name": "IMAGE", - "type": "IMAGE", - "links": [ - 744, - 748 - ], - "slot_index": 0, - "shape": 3 - }, - { - "name": "MASK", - "type": "MASK", - "links": null, - "shape": 3 - } - ], - "properties": { - "Node name for S&R": "LoadImage" - }, - "widgets_values": [ - "ComfyUI_08535_.png", - "image" - ], - "color": "#ff9414", - "bgcolor": "#ff8000" - }, - { - "id": 6, - "type": "CLIPTextEncode", - "pos": [ - 1089.039306640625, - -871.3989868164062 - ], - "size": [ - 210, - 54 - ], - "flags": { - "collapsed": true - }, - "order": 22, - "mode": 0, - "inputs": [ - { - "name": "clip", - "type": "CLIP", - "link": 711 - }, - { - "name": "text", - "type": "STRING", - "link": 768, - "widget": { - "name": "text" - } - } - ], - "outputs": [ - { - "name": "CONDITIONING", - "type": "CONDITIONING", - "links": [ - 56 - ], - "slot_index": 0 - } - ], - "title": "CLIP Text Encode", - "properties": { - "Node name for S&R": "CLIPTextEncode" - }, - "widgets_values": [ - "" - ], - "color": "#232", - "bgcolor": "#353" - }, - { - "id": 198, - "type": "UNETLoaderMultiGPU", - "pos": [ - 753.8175048828125, - -741.8397216796875 - ], - "size": [ - 270.74609375, - 110.4522705078125 - ], - "flags": {}, - "order": 13, - "mode": 0, - "inputs": [], - "outputs": [ - { - "name": "MODEL", - "type": "MODEL", - "links": [ - 705, - 707 - ], - "slot_index": 0 - } - ], - "properties": { - "Node name for S&R": "UNETLoaderMultiGPU" - }, - "widgets_values": [ - "flux1-dev.safetensors", - "default", - "cuda:0" - ] - }, - { - "id": 266, - "type": "CheckpointLoaderSimpleMultiGPU", - "pos": [ - 1732.7156982421875, - -940.305419921875 - ], - "size": [ - 307.1690368652344, - 122 - ], - "flags": {}, - "order": 14, - "mode": 0, - "inputs": [], - "outputs": [ - { - "name": "MODEL", - "type": "MODEL", - "links": [ - 714 - ], - "slot_index": 0 - }, - { - "name": "CLIP", - "type": "CLIP", - "links": null - }, - { - "name": "VAE", - "type": "VAE", - "links": [ - 719, - 732 - ], - "slot_index": 2 - } - ], - "properties": { - "Node name for S&R": "CheckpointLoaderSimpleMultiGPU" - }, - "widgets_values": [ - "ltx-video-2b-v0.9.1.safetensors", - "cuda:1" - ] - }, - { - "id": 294, - "type": "Int", - "pos": [ - 1038.341796875, - -1035.79931640625 - ], - "size": [ - 315, - 58 - ], - "flags": {}, - "order": 15, - "mode": 0, - "inputs": [], - "outputs": [ - { - "name": "INT", - "type": "INT", - "links": [ - 755, - 760, - 761 - ], - "slot_index": 0 - } - ], - "title": "Frames (N*8+1)", - "properties": { - "Node name for S&R": "Int" - }, - "widgets_values": [ - "129" - ], - "color": "#233", - "bgcolor": "#355" - } - ], - "links": [ - [ - 56, - 6, - 0, - 35, - 0, - "CONDITIONING" - ], - [ - 270, - 149, - 0, - 147, - 0, - "LATENT" - ], - [ - 272, - 150, - 0, - 149, - 1, - "GUIDER" - ], - [ - 273, - 151, - 0, - 149, - 3, - "SIGMAS" - ], - [ - 384, - 147, - 0, - 184, - 0, - "IMAGE" - ], - [ - 439, - 132, - 0, - 65, - 1, - "INT" - ], - [ - 440, - 111, - 0, - 8, - 1, - "VAE" - ], - [ - 441, - 111, - 0, - 141, - 1, - "VAE" - ], - [ - 442, - 128, - 0, - 149, - 0, - "NOISE" - ], - [ - 443, - 130, - 0, - 149, - 2, - "SAMPLER" - ], - [ - 444, - 27, - 0, - 149, - 4, - "LATENT" - ], - [ - 445, - 128, - 0, - 127, - 0, - "NOISE" - ], - [ - 446, - 130, - 0, - 127, - 2, - "SAMPLER" - ], - [ - 447, - 27, - 0, - 127, - 4, - "LATENT" - ], - [ - 448, - 128, - 0, - 61, - 0, - "NOISE" - ], - [ - 449, - 130, - 0, - 61, - 2, - "SAMPLER" - ], - [ - 450, - 27, - 0, - 61, - 4, - "LATENT" - ], - [ - 451, - 128, - 0, - 143, - 0, - "NOISE" - ], - [ - 452, - 130, - 0, - 143, - 2, - "SAMPLER" - ], - [ - 453, - 27, - 0, - 143, - 4, - "LATENT" - ], - [ - 454, - 132, - 0, - 131, - 1, - "INT" - ], - [ - 455, - 111, - 0, - 123, - 1, - "VAE" - ], - [ - 456, - 132, - 0, - 145, - 1, - "INT" - ], - [ - 457, - 198, - 0, - 151, - 0, - "MODEL" - ], - [ - 458, - 132, - 0, - 151, - 1, - "INT" - ], - [ - 459, - 198, - 0, - 150, - 0, - "MODEL" - ], - [ - 460, - 113, - 0, - 219, - 0, - "CLIP" - ], - [ - 461, - 113, - 0, - 214, - 0, - "CLIP" - ], - [ - 462, - 198, - 0, - 146, - 0, - "MODEL" - ], - [ - 463, - 198, - 0, - 134, - 0, - "MODEL" - ], - [ - 464, - 113, - 0, - 223, - 0, - "CLIP" - ], - [ - 465, - 111, - 0, - 147, - 1, - "VAE" - ], - [ - 466, - 198, - 0, - 122, - 0, - "MODEL" - ], - [ - 467, - 113, - 0, - 6, - 0, - "CLIP" - ], - [ - 491, - 132, - 0, - 65, - 1, - "INT" - ], - [ - 492, - 111, - 0, - 8, - 1, - "VAE" - ], - [ - 493, - 111, - 0, - 141, - 1, - "VAE" - ], - [ - 494, - 128, - 0, - 127, - 0, - "NOISE" - ], - [ - 495, - 130, - 0, - 127, - 2, - "SAMPLER" - ], - [ - 496, - 27, - 0, - 127, - 4, - "LATENT" - ], - [ - 497, - 128, - 0, - 61, - 0, - "NOISE" - ], - [ - 498, - 130, - 0, - 61, - 2, - "SAMPLER" - ], - [ - 499, - 27, - 0, - 61, - 4, - "LATENT" - ], - [ - 500, - 132, - 0, - 131, - 1, - "INT" - ], - [ - 501, - 132, - 0, - 145, - 1, - "INT" - ], - [ - 502, - 113, - 0, - 219, - 0, - "CLIP" - ], - [ - 503, - 113, - 0, - 214, - 0, - "CLIP" - ], - [ - 504, - 198, - 0, - 146, - 0, - "MODEL" - ], - [ - 505, - 198, - 0, - 134, - 0, - "MODEL" - ], - [ - 506, - 113, - 0, - 223, - 0, - "CLIP" - ], - [ - 507, - 111, - 0, - 147, - 1, - "VAE" - ], - [ - 508, - 198, - 0, - 122, - 0, - "MODEL" - ], - [ - 509, - 113, - 0, - 6, - 0, - "CLIP" - ], - [ - 510, - 128, - 0, - 149, - 0, - "NOISE" - ], - [ - 511, - 130, - 0, - 149, - 2, - "SAMPLER" - ], - [ - 512, - 27, - 0, - 149, - 4, - "LATENT" - ], - [ - 513, - 198, - 0, - 151, - 0, - "MODEL" - ], - [ - 514, - 132, - 0, - 151, - 1, - "INT" - ], - [ - 515, - 198, - 0, - 150, - 0, - "MODEL" - ], - [ - 516, - 128, - 0, - 143, - 0, - "NOISE" - ], - [ - 517, - 130, - 0, - 143, - 2, - "SAMPLER" - ], - [ - 518, - 27, - 0, - 143, - 4, - "LATENT" - ], - [ - 519, - 111, - 0, - 123, - 1, - "VAE" - ], - [ - 523, - 132, - 0, - 65, - 1, - "INT" - ], - [ - 524, - 111, - 0, - 8, - 1, - "VAE" - ], - [ - 525, - 111, - 0, - 141, - 1, - "VAE" - ], - [ - 526, - 128, - 0, - 127, - 0, - "NOISE" - ], - [ - 527, - 130, - 0, - 127, - 2, - "SAMPLER" - ], - [ - 528, - 27, - 0, - 127, - 4, - "LATENT" - ], - [ - 529, - 128, - 0, - 61, - 0, - "NOISE" - ], - [ - 530, - 130, - 0, - 61, - 2, - "SAMPLER" - ], - [ - 531, - 27, - 0, - 61, - 4, - "LATENT" - ], - [ - 532, - 132, - 0, - 131, - 1, - "INT" - ], - [ - 533, - 132, - 0, - 145, - 1, - "INT" - ], - [ - 534, - 113, - 0, - 219, - 0, - "CLIP" - ], - [ - 535, - 113, - 0, - 214, - 0, - "CLIP" - ], - [ - 536, - 195, - 0, - 146, - 0, - "MODEL" - ], - [ - 537, - 195, - 0, - 134, - 0, - "MODEL" - ], - [ - 538, - 113, - 0, - 223, - 0, - "CLIP" - ], - [ - 539, - 111, - 0, - 147, - 1, - "VAE" - ], - [ - 540, - 195, - 0, - 122, - 0, - "MODEL" - ], - [ - 541, - 113, - 0, - 6, - 0, - "CLIP" - ], - [ - 542, - 128, - 0, - 149, - 0, - "NOISE" - ], - [ - 543, - 130, - 0, - 149, - 2, - "SAMPLER" - ], - [ - 544, - 27, - 0, - 149, - 4, - "LATENT" - ], - [ - 545, - 195, - 0, - 151, - 0, - "MODEL" - ], - [ - 546, - 132, - 0, - 151, - 1, - "INT" - ], - [ - 547, - 195, - 0, - 150, - 0, - "MODEL" - ], - [ - 548, - 128, - 0, - 143, - 0, - "NOISE" - ], - [ - 549, - 130, - 0, - 143, - 2, - "SAMPLER" - ], - [ - 550, - 27, - 0, - 143, - 4, - "LATENT" - ], - [ - 551, - 111, - 0, - 123, - 1, - "VAE" - ], - [ - 562, - 132, - 0, - 65, - 1, - "INT" - ], - [ - 563, - 111, - 0, - 8, - 1, - "VAE" - ], - [ - 564, - 111, - 0, - 141, - 1, - "VAE" - ], - [ - 565, - 128, - 0, - 127, - 0, - "NOISE" - ], - [ - 566, - 130, - 0, - 127, - 2, - "SAMPLER" - ], - [ - 567, - 27, - 0, - 127, - 4, - "LATENT" - ], - [ - 568, - 128, - 0, - 61, - 0, - "NOISE" - ], - [ - 569, - 130, - 0, - 61, - 2, - "SAMPLER" - ], - [ - 570, - 27, - 0, - 61, - 4, - "LATENT" - ], - [ - 571, - 132, - 0, - 131, - 1, - "INT" - ], - [ - 572, - 132, - 0, - 145, - 1, - "INT" - ], - [ - 573, - 113, - 0, - 219, - 0, - "CLIP" - ], - [ - 574, - 113, - 0, - 214, - 0, - "CLIP" - ], - [ - 575, - 195, - 0, - 134, - 0, - "MODEL" - ], - [ - 576, - 113, - 0, - 223, - 0, - "CLIP" - ], - [ - 577, - 128, - 0, - 149, - 0, - "NOISE" - ], - [ - 578, - 130, - 0, - 149, - 2, - "SAMPLER" - ], - [ - 579, - 27, - 0, - 149, - 4, - "LATENT" - ], - [ - 580, - 195, - 0, - 151, - 0, - "MODEL" - ], - [ - 581, - 132, - 0, - 151, - 1, - "INT" - ], - [ - 582, - 195, - 0, - 150, - 0, - "MODEL" - ], - [ - 583, - 128, - 0, - 143, - 0, - "NOISE" - ], - [ - 584, - 130, - 0, - 143, - 2, - "SAMPLER" - ], - [ - 585, - 27, - 0, - 143, - 4, - "LATENT" - ], - [ - 586, - 111, - 0, - 123, - 1, - "VAE" - ], - [ - 587, - 113, - 0, - 6, - 0, - "CLIP" - ], - [ - 588, - 195, - 0, - 146, - 0, - "MODEL" - ], - [ - 589, - 195, - 0, - 122, - 0, - "MODEL" - ], - [ - 590, - 111, - 0, - 147, - 1, - "VAE" - ], - [ - 605, - 132, - 0, - 65, - 1, - "INT" - ], - [ - 606, - 111, - 0, - 8, - 1, - "VAE" - ], - [ - 607, - 111, - 0, - 141, - 1, - "VAE" - ], - [ - 608, - 128, - 0, - 127, - 0, - "NOISE" - ], - [ - 609, - 130, - 0, - 127, - 2, - "SAMPLER" - ], - [ - 610, - 27, - 0, - 127, - 4, - "LATENT" - ], - [ - 611, - 128, - 0, - 61, - 0, - "NOISE" - ], - [ - 612, - 130, - 0, - 61, - 2, - "SAMPLER" - ], - [ - 613, - 27, - 0, - 61, - 4, - "LATENT" - ], - [ - 614, - 132, - 0, - 131, - 1, - "INT" - ], - [ - 615, - 132, - 0, - 145, - 1, - "INT" - ], - [ - 616, - 113, - 0, - 219, - 0, - "CLIP" - ], - [ - 617, - 113, - 0, - 214, - 0, - "CLIP" - ], - [ - 618, - 198, - 0, - 134, - 0, - "MODEL" - ], - [ - 619, - 113, - 0, - 223, - 0, - "CLIP" - ], - [ - 620, - 128, - 0, - 149, - 0, - "NOISE" - ], - [ - 621, - 130, - 0, - 149, - 2, - "SAMPLER" - ], - [ - 622, - 27, - 0, - 149, - 4, - "LATENT" - ], - [ - 623, - 198, - 0, - 151, - 0, - "MODEL" - ], - [ - 624, - 132, - 0, - 151, - 1, - "INT" - ], - [ - 625, - 198, - 0, - 150, - 0, - "MODEL" - ], - [ - 626, - 128, - 0, - 143, - 0, - "NOISE" - ], - [ - 627, - 130, - 0, - 143, - 2, - "SAMPLER" - ], - [ - 628, - 27, - 0, - 143, - 4, - "LATENT" - ], - [ - 629, - 111, - 0, - 123, - 1, - "VAE" - ], - [ - 630, - 113, - 0, - 6, - 0, - "CLIP" - ], - [ - 631, - 198, - 0, - 146, - 0, - "MODEL" - ], - [ - 632, - 111, - 0, - 147, - 1, - "VAE" - ], - [ - 633, - 198, - 0, - 122, - 0, - "MODEL" - ], - [ - 644, - 132, - 0, - 65, - 1, - "INT" - ], - [ - 645, - 111, - 0, - 8, - 1, - "VAE" - ], - [ - 646, - 111, - 0, - 141, - 1, - "VAE" - ], - [ - 647, - 128, - 0, - 127, - 0, - "NOISE" - ], - [ - 648, - 130, - 0, - 127, - 2, - "SAMPLER" - ], - [ - 649, - 27, - 0, - 127, - 4, - "LATENT" - ], - [ - 650, - 128, - 0, - 61, - 0, - "NOISE" - ], - [ - 651, - 130, - 0, - 61, - 2, - "SAMPLER" - ], - [ - 652, - 27, - 0, - 61, - 4, - "LATENT" - ], - [ - 653, - 132, - 0, - 131, - 1, - "INT" - ], - [ - 654, - 132, - 0, - 145, - 1, - "INT" - ], - [ - 655, - 113, - 0, - 219, - 0, - "CLIP" - ], - [ - 656, - 113, - 0, - 214, - 0, - "CLIP" - ], - [ - 657, - 198, - 0, - 134, - 0, - "MODEL" - ], - [ - 658, - 113, - 0, - 223, - 0, - "CLIP" - ], - [ - 659, - 128, - 0, - 149, - 0, - "NOISE" - ], - [ - 660, - 130, - 0, - 149, - 2, - "SAMPLER" - ], - [ - 661, - 27, - 0, - 149, - 4, - "LATENT" - ], - [ - 662, - 198, - 0, - 151, - 0, - "MODEL" - ], - [ - 663, - 132, - 0, - 151, - 1, - "INT" - ], - [ - 664, - 198, - 0, - 150, - 0, - "MODEL" - ], - [ - 665, - 128, - 0, - 143, - 0, - "NOISE" - ], - [ - 666, - 130, - 0, - 143, - 2, - "SAMPLER" - ], - [ - 667, - 27, - 0, - 143, - 4, - "LATENT" - ], - [ - 668, - 111, - 0, - 123, - 1, - "VAE" - ], - [ - 669, - 113, - 0, - 6, - 0, - "CLIP" - ], - [ - 670, - 198, - 0, - 146, - 0, - "MODEL" - ], - [ - 671, - 111, - 0, - 147, - 1, - "VAE" - ], - [ - 672, - 198, - 0, - 122, - 0, - "MODEL" - ], - [ - 682, - 265, - 0, - 151, - 0, - "MODEL" - ], - [ - 683, - 132, - 0, - 151, - 1, - "INT" - ], - [ - 684, - 111, - 0, - 147, - 1, - "VAE" - ], - [ - 685, - 265, - 0, - 150, - 0, - "MODEL" - ], - [ - 686, - 35, - 0, - 150, - 1, - "CONDITIONING" - ], - [ - 687, - 113, - 0, - 6, - 0, - "CLIP" - ], - [ - 688, - 128, - 0, - 149, - 0, - "NOISE" - ], - [ - 689, - 130, - 0, - 149, - 2, - "SAMPLER" - ], - [ - 690, - 27, - 0, - 149, - 4, - "LATENT" - ], - [ - 691, - 265, - 0, - 151, - 0, - "MODEL" - ], - [ - 692, - 132, - 0, - 151, - 1, - "INT" - ], - [ - 693, - 111, - 0, - 147, - 1, - "VAE" - ], - [ - 694, - 265, - 0, - 150, - 0, - "MODEL" - ], - [ - 695, - 35, - 0, - 150, - 1, - "CONDITIONING" - ], - [ - 696, - 113, - 0, - 6, - 0, - "CLIP" - ], - [ - 697, - 128, - 0, - 149, - 0, - "NOISE" - ], - [ - 698, - 130, - 0, - 149, - 2, - "SAMPLER" - ], - [ - 699, - 27, - 0, - 149, - 4, - "LATENT" - ], - [ - 700, - 130, - 0, - 149, - 2, - "SAMPLER" - ], - [ - 702, - 128, - 0, - 149, - 0, - "NOISE" - ], - [ - 703, - 35, - 0, - 150, - 1, - "CONDITIONING" - ], - [ - 705, - 198, - 0, - 151, - 0, - "MODEL" - ], - [ - 706, - 111, - 0, - 147, - 1, - "VAE" - ], - [ - 707, - 198, - 0, - 150, - 0, - "MODEL" - ], - [ - 711, - 113, - 0, - 6, - 0, - "CLIP" - ], - [ - 714, - 266, - 0, - 270, - 0, - "MODEL" - ], - [ - 715, - 270, - 0, - 272, - 0, - "MODEL" - ], - [ - 716, - 271, - 0, - 272, - 1, - "ATTN_OVERRIDE" - ], - [ - 717, - 268, - 0, - 273, - 0, - "CONDITIONING" - ], - [ - 718, - 269, - 0, - 273, - 1, - "CONDITIONING" - ], - [ - 719, - 266, - 2, - 273, - 2, - "VAE" - ], - [ - 720, - 274, - 0, - 273, - 3, - "IMAGE" - ], - [ - 721, - 274, - 1, - 273, - 4, - "INT" - ], - [ - 722, - 274, - 2, - 273, - 5, - "INT" - ], - [ - 725, - 273, - 0, - 275, - 0, - "CONDITIONING" - ], - [ - 726, - 273, - 1, - 275, - 1, - "CONDITIONING" - ], - [ - 727, - 274, - 1, - 276, - 0, - "INT" - ], - [ - 728, - 274, - 2, - 276, - 1, - "INT" - ], - [ - 730, - 276, - 0, - 278, - 0, - "LATENT" - ], - [ - 731, - 283, - 0, - 279, - 0, - "LATENT" - ], - [ - 732, - 266, - 2, - 279, - 1, - "VAE" - ], - [ - 733, - 279, - 0, - 280, - 0, - "IMAGE" - ], - [ - 734, - 272, - 0, - 283, - 0, - "MODEL" - ], - [ - 735, - 275, - 0, - 283, - 1, - "CONDITIONING" - ], - [ - 736, - 275, - 1, - 283, - 2, - "CONDITIONING" - ], - [ - 737, - 277, - 0, - 283, - 3, - "SAMPLER" - ], - [ - 738, - 278, - 0, - 283, - 4, - "SIGMAS" - ], - [ - 739, - 276, - 0, - 283, - 5, - "LATENT" - ], - [ - 740, - 147, - 0, - 274, - 0, - "IMAGE" - ], - [ - 742, - 286, - 0, - 287, - 1, - "FL2MODEL" - ], - [ - 744, - 232, - 0, - 287, - 0, - "IMAGE" - ], - [ - 748, - 232, - 0, - 291, - 0, - "IMAGE" - ], - [ - 749, - 291, - 1, - 292, - 0, - "INT" - ], - [ - 750, - 291, - 2, - 292, - 1, - "INT" - ], - [ - 755, - 294, - 0, - 295, - 0, - "INT" - ], - [ - 756, - 295, - 0, - 296, - 0, - "INT" - ], - [ - 757, - 293, - 0, - 297, - 0, - "STRING" - ], - [ - 758, - 296, - 0, - 297, - 1, - "STRING" - ], - [ - 759, - 298, - 0, - 297, - 2, - "STRING" - ], - [ - 760, - 294, - 0, - 273, - 6, - "INT" - ], - [ - 761, - 294, - 0, - 276, - 2, - "INT" - ], - [ - 763, - 297, - 0, - 299, - 0, - "STRING" - ], - [ - 764, - 299, - 0, - 268, - 1, - "STRING" - ], - [ - 765, - 300, - 0, - 268, - 0, - "CLIP" - ], - [ - 766, - 300, - 0, - 269, - 0, - "CLIP" - ], - [ - 767, - 287, - 2, - 297, - 3, - "STRING" - ], - [ - 768, - 287, - 2, - 6, - 1, - "STRING" - ], - [ - 769, - 287, - 2, - 288, - 0, - "STRING" - ], - [ - 770, - 292, - 0, - 149, - 4, - "LATENT" - ] - ], - "groups": [ - { - "id": 1, - "title": "img2txt2img2vid", - "bounding": [ - -29.928714752197266, - -1037.2220458984375, - 736.355224609375, - 915.1064453125 - ], - "color": "#3f789e", - "font_size": 24, - "flags": {} - }, - { - "id": 2, - "title": "img2vid", - "bounding": [ - 1717.4788818359375, - -1023.1045532226562, - 1363.980712890625, - 921.808837890625 - ], - "color": "#3f789e", - "font_size": 24, - "flags": {} - } - ], - "config": {}, - "extra": { - "ds": { - "scale": 0.724729500000097, - "offset": [ - 176.63560141460363, - 1445.6002770420216 - ] - }, - "ue_links": [], - "VHS_latentpreview": false, - "VHS_latentpreviewrate": 0 - }, - "version": 0.4 -} \ No newline at end of file diff --git a/example_workflows/flux unet dual_clip vae loaders.jpg b/example_workflows/flux unet dual_clip vae loaders.jpg new file mode 100755 index 0000000..43e065b Binary files /dev/null and b/example_workflows/flux unet dual_clip vae loaders.jpg differ diff --git a/example_workflows/multiGPU/flux_dev_example_MultiGPU.json b/example_workflows/flux unet dual_clip vae loaders.json similarity index 76% rename from example_workflows/multiGPU/flux_dev_example_MultiGPU.json rename to example_workflows/flux unet dual_clip vae loaders.json index c7210c0..72bcc06 100755 --- a/example_workflows/multiGPU/flux_dev_example_MultiGPU.json +++ b/example_workflows/flux unet dual_clip vae loaders.json @@ -1,7 +1,7 @@ { "id": "4d231a10-da3b-4b12-8698-449accd4b87a", "revision": 0, - "last_node_id": 40, + "last_node_id": 43, "last_link_id": 119, "nodes": [ { @@ -16,7 +16,7 @@ 106 ], "flags": {}, - "order": 12, + "order": 11, "mode": 0, "inputs": [ { @@ -35,6 +35,8 @@ } ], "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.64", "Node name for S&R": "BasicScheduler" }, "widgets_values": [ @@ -68,6 +70,8 @@ } ], "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.64", "Node name for S&R": "KSamplerSelect" }, "widgets_values": [ @@ -86,7 +90,7 @@ 58 ], "flags": {}, - "order": 11, + "order": 12, "mode": 0, "inputs": [ { @@ -106,6 +110,8 @@ } ], "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.64", "Node name for S&R": "FluxGuidance" }, "widgets_values": [ @@ -151,6 +157,8 @@ } ], "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.64", "Node name for S&R": "BasicGuider" }, "widgets_values": [] @@ -212,6 +220,8 @@ } ], "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.64", "Node name for S&R": "SamplerCustomAdvanced" }, "widgets_values": [] @@ -241,56 +251,17 @@ } ], "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.64", "Node name for S&R": "RandomNoise" }, "widgets_values": [ - 826914720443214, + 653376826227025, "randomize" ], "color": "#2a363b", "bgcolor": "#3f5159" }, - { - "id": 8, - "type": "VAEDecode", - "pos": [ - 866, - 367 - ], - "size": [ - 210, - 46 - ], - "flags": {}, - "order": 15, - "mode": 0, - "inputs": [ - { - "name": "samples", - "type": "LATENT", - "link": 24 - }, - { - "name": "vae", - "type": "VAE", - "link": 119 - } - ], - "outputs": [ - { - "name": "IMAGE", - "type": "IMAGE", - "slot_index": 0, - "links": [ - 9 - ] - } - ], - "properties": { - "Node name for S&R": "VAEDecode" - }, - "widgets_values": [] - }, { "id": 30, "type": "ModelSamplingFlux", @@ -303,7 +274,7 @@ 130 ], "flags": {}, - "order": 10, + "order": 9, "mode": 0, "inputs": [ { @@ -340,6 +311,8 @@ } ], "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.64", "Node name for S&R": "ModelSamplingFlux" }, "widgets_values": [ @@ -392,6 +365,8 @@ } ], "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.64", "Node name for S&R": "EmptySD3LatentImage" }, "widgets_values": [ @@ -480,60 +455,6 @@ "color": "#323", "bgcolor": "#535" }, - { - "id": 9, - "type": "SaveImage", - "pos": [ - 1155, - 196 - ], - "size": [ - 985.3012084960938, - 1060.3828125 - ], - "flags": {}, - "order": 16, - "mode": 0, - "inputs": [ - { - "name": "images", - "type": "IMAGE", - "link": 9 - } - ], - "outputs": [], - "properties": { - "Node name for S&R": "SaveImage" - }, - "widgets_values": [ - "ComfyUI" - ] - }, - { - "id": 37, - "type": "Note", - "pos": [ - 480, - 1344 - ], - "size": [ - 314.99755859375, - 117.98363494873047 - ], - "flags": {}, - "order": 4, - "mode": 0, - "inputs": [], - "outputs": [], - "properties": { - "text": "" - }, - "widgets_values": [ - "The reference sampling implementation auto adjusts the shift value based on the resolution, if you don't want this you can just bypass (CTRL-B) this ModelSamplingFlux node.\n" - ], - "color": "#432", - "bgcolor": "#653" - }, { "id": 6, "type": "CLIPTextEncode", @@ -546,7 +467,7 @@ 164.31304931640625 ], "flags": {}, - "order": 9, + "order": 10, "mode": 0, "inputs": [ { @@ -567,23 +488,105 @@ ], "title": "CLIP Text Encode (Positive Prompt)", "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.64", "Node name for S&R": "CLIPTextEncode" }, "widgets_values": [ - "A towering technological monolith in a cyberpunk cityscape at night, with \"DisTorch 2\" emblazoned across its surface in massive neon blue-green mixed with purple letters that illuminate the surrounding buildings. The text occupies the central third of the frame, crafted from glowing plasma tubes and crackling energy. The model file suffix \"now with .safetensors!\" in same stying but smaller font directly underneath. Rain-slicked streets below reflect the brilliant signage, while holographic advertisements and flying vehicles populate the background. Moody atmospheric lighting, heavy contrast, photorealistic textures, cinematic color grading. " + "A towering technological monolith in a cyberpunk cityscape at night, with \"MultiGPU\" emblazoned across its surface in massive neon blue-green mixed with purple letters that illuminate the surrounding buildings. The text occupies the central third of the frame, crafted from glowing plasma tubes and crackling energy. Rain-slicked streets below reflect the brilliant signage, while holographic advertisements and flying vehicles populate the background. Moody atmospheric lighting, heavy contrast, photorealistic textures, cinematic color grading. " ], "color": "#232", "bgcolor": "#353" }, + { + "id": 8, + "type": "VAEDecode", + "pos": [ + 883.333251953125, + 602.3333129882812 + ], + "size": [ + 210, + 46 + ], + "flags": {}, + "order": 15, + "mode": 0, + "inputs": [ + { + "name": "samples", + "type": "LATENT", + "link": 24 + }, + { + "name": "vae", + "type": "VAE", + "link": 119 + } + ], + "outputs": [ + { + "name": "IMAGE", + "type": "IMAGE", + "slot_index": 0, + "links": [ + 9 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.64", + "Node name for S&R": "VAEDecode" + }, + "widgets_values": [] + }, + { + "id": 38, + "type": "UNETLoaderMultiGPU", + "pos": [ + 32.4267692565918, + 128.16644287109375 + ], + "size": [ + 252.71832275390625, + 106 + ], + "flags": {}, + "order": 4, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "links": [ + 117 + ] + } + ], + "properties": { + "cnr_id": "comfyui-multigpu", + "ver": "0d6dfc7524472943ba912a6ec3088757edba15c3", + "Node name for S&R": "UNETLoaderMultiGPU" + }, + "widgets_values": [ + "flux1-dev-fp8.safetensors", + "default", + "cuda:0" + ], + "color": "#008181", + "bgcolor": "rgba(24,24,27,.9)" + }, { "id": 39, "type": "DualCLIPLoaderMultiGPU", "pos": [ - 52.45843505859375, - 284.6034851074219 + 35.378475189208984, + 276.3390197753906 ], "size": [ - 270, + 252.36911010742188, 130 ], "flags": {}, @@ -600,30 +603,56 @@ } ], "properties": { + "cnr_id": "comfyui-multigpu", + "ver": "0d6dfc7524472943ba912a6ec3088757edba15c3", "Node name for S&R": "DualCLIPLoaderMultiGPU" }, "widgets_values": [ - "t5xxl_fp16.safetensors", + "t5xxl_fp8_e4m3fn_scaled.safetensors", "clip_l.safetensors", "flux", - "cuda:1" + "cpu" ], - "color": "#233", - "bgcolor": "#355" + "color": "#008181", + "bgcolor": "rgba(24,24,27,.9)" + }, + { + "id": 42, + "type": "MarkdownNote", + "pos": [ + -543.3901977539062, + 124.58646392822266 + ], + "size": [ + 536.8795166015625, + 540.175537109375 + ], + "flags": {}, + "order": 6, + "mode": 0, + "inputs": [], + "outputs": [], + "title": "ComfyUI-MultiGPU Note - UNETLoader, DualClipLoader, and VAELoader nodes", + "properties": {}, + "widgets_values": [ + "A standard FLUX.dev .fp8 UNet to test ComfyUI-MultiGPU Comfy Core Loader basic functionality. In this case we are using standard MultiGPU-wrapped nodes to move model components to their own device.\n\n## Model links\n\n**Diffusion model**\n- [flux1-dev-fp8.safetensors](https://huggingface.co/Comfy-Org/flux1-dev/resolve/main/flux1-dev-fp8.safetensors)\n\n**CLIP**\n- [t5xxl_fp8_e4m3fn_scaled.safetensors](https://huggingface.co/comfyanonymous/flux_text_encoders/resolve/main/t5xxl_fp8_e4m3fn_scaled.safetensors)\n- [clip_l.safetensors](https://huggingface.co/comfyanonymous/flux_text_encoders/resolve/main/clip_l.safetensors)\n\n**VAE**\n- [ae.safetensors](https://huggingface.co/black-forest-labs/FLUX.1-dev/resolve/main/ae.safetensors)\n\nModel Storage Location\n\n```\nšŸ“‚ ComfyUI/\nā”œā”€ā”€ šŸ“‚ models/\n│ ā”œā”€ā”€ šŸ“‚ diffusion_models/\n│ │ ā”œā”€ā”€ flux1-dev-fp8.safetensors\n│ ā”œā”€ā”€ šŸ“‚ clip/\n│ │ └── t5xxl_fp8_e4m3fn_scaled.safetensors\n│ │ └── clip_l.safetensors\n│ ā”œā”€ā”€ šŸ“‚ vae/\n│ │ └── ae.safetensors\n```\n## Device Mapping (Example: Two GPUs, 1 CPU)\n```\nšŸ–„ļø system \nā”œā”€ā”€ 🟢 cuda:0\n│ └── flux1-dev-fp8.safetensors\nā”œā”€ā”€ 🟣 cuda:1\n│ └── ae.safetensors\nā”œā”€ā”€ āš™ļø cpu\n └── t5xxl_fp8_e4m3fn_scaled.safetensors\n └── clip_l.safetensors\n```" + ], + "color": "#008181", + "bgcolor": "rgba(24,24,27,.9)" }, { "id": 40, "type": "VAELoaderMultiGPU", "pos": [ - 55.872314453125, - 462.9376220703125 + 62.4415397644043, + 462.18499755859375 ], "size": [ - 268.9281921386719, - 82 + 250.19544982910156, + 83.10191345214844 ], "flags": {}, - "order": 6, + "order": 7, "mode": 0, "inputs": [], "outputs": [ @@ -636,49 +665,47 @@ } ], "properties": { + "cnr_id": "comfyui-multigpu", + "ver": "0d6dfc7524472943ba912a6ec3088757edba15c3", "Node name for S&R": "VAELoaderMultiGPU" }, "widgets_values": [ "ae.safetensors", - "cuda:0" + "cuda:1" ], - "color": "#233", - "bgcolor": "#355" + "color": "#008181", + "bgcolor": "rgba(24,24,27,.9)" }, { - "id": 38, - "type": "UNETLoaderMultiGPU", + "id": 9, + "type": "SaveImage", "pos": [ - 62.178836822509766, - 116.59618377685547 + 1155, + 196 ], "size": [ - 252.71832275390625, - 106 + 771.1677856445312, + 714.9827880859375 ], "flags": {}, - "order": 7, + "order": 16, "mode": 0, - "inputs": [], - "outputs": [ + "inputs": [ { - "name": "MODEL", - "type": "MODEL", - "links": [ - 117 - ] + "name": "images", + "type": "IMAGE", + "link": 9 } ], + "outputs": [], "properties": { - "Node name for S&R": "UNETLoaderMultiGPU" + "cnr_id": "comfy-core", + "ver": "0.3.64", + "Node name for S&R": "SaveImage" }, "widgets_values": [ - "flux1-dev-fp8.safetensors", - "default", - "cuda:0" - ], - "color": "#233", - "bgcolor": "#355" + "MultiGPU" + ] } ], "links": [ @@ -831,14 +858,14 @@ "config": {}, "extra": { "ds": { - "scale": 0.6830134553650705, + "scale": 0.9090909090909091, "offset": [ - 1096.2188760488327, - 245.01396417277823 + 549.7571867235707, + -6.513564853156251 ] }, + "frontendVersion": "1.27.10", "groupNodes": {}, - "frontendVersion": "1.24.4", "VHS_latentpreview": false, "VHS_latentpreviewrate": 0, "VHS_MetadataImage": true, diff --git a/example_workflows/gguf/flux1dev_2gpu_gguf.json b/example_workflows/gguf/flux1dev_2gpu_gguf.json deleted file mode 100644 index d45ec54..0000000 --- a/example_workflows/gguf/flux1dev_2gpu_gguf.json +++ /dev/null @@ -1,675 +0,0 @@ -{ - "last_node_id": 36, - "last_link_id": 53, - "nodes": [ - { - "id": 33, - "type": "VAELoaderMultiGPU", - "pos": [ - -62.57144546508789, - 460.42584228515625 - ], - "size": [ - 450.23980712890625, - 82 - ], - "flags": {}, - "order": 0, - "mode": 0, - "inputs": [], - "outputs": [ - { - "name": "VAE", - "type": "VAE", - "links": [ - 48, - 49 - ], - "slot_index": 0, - "shape": 3 - } - ], - "properties": { - "Node name for S&R": "VAELoaderMultiGPU" - }, - "widgets_values": [ - "ae.safetensors", - "cuda:0" - ] - }, - { - "id": 9, - "type": "SaveImage", - "pos": [ - 553.2835693359375, - 604.8348999023438 - ], - "size": [ - 512.2255859375, - 692.112548828125 - ], - "flags": {}, - "order": 13, - "mode": 0, - "inputs": [ - { - "name": "images", - "type": "IMAGE", - "link": 9 - } - ], - "outputs": [], - "properties": { - "Node name for S&R": "SaveImage" - }, - "widgets_values": [ - "ComfyUI" - ] - }, - { - "id": 22, - "type": "BasicGuider", - "pos": [ - 397.337158203125, - 135.11544799804688 - ], - "size": [ - 161.1999969482422, - 46 - ], - "flags": {}, - "order": 10, - "mode": 0, - "inputs": [ - { - "name": "model", - "type": "MODEL", - "link": 51, - "slot_index": 0 - }, - { - "name": "conditioning", - "type": "CONDITIONING", - "link": 40, - "slot_index": 1 - } - ], - "outputs": [ - { - "name": "GUIDER", - "type": "GUIDER", - "links": [ - 30 - ], - "slot_index": 0, - "shape": 3 - } - ], - "properties": { - "Node name for S&R": "BasicGuider" - }, - "widgets_values": [] - }, - { - "id": 25, - "type": "RandomNoise", - "pos": [ - 381.8360595703125, - 230.80130004882812 - ], - "size": [ - 236.60824584960938, - 88.84210968017578 - ], - "flags": {}, - "order": 1, - "mode": 0, - "inputs": [], - "outputs": [ - { - "name": "NOISE", - "type": "NOISE", - "links": [ - 37 - ], - "shape": 3 - } - ], - "properties": { - "Node name for S&R": "RandomNoise" - }, - "widgets_values": [ - 5770521, - "fixed" - ] - }, - { - "id": 16, - "type": "KSamplerSelect", - "pos": [ - 398.8528137207031, - 360.1959533691406 - ], - "size": [ - 210, - 58 - ], - "flags": {}, - "order": 2, - "mode": 0, - "inputs": [], - "outputs": [ - { - "name": "SAMPLER", - "type": "SAMPLER", - "links": [ - 19 - ], - "shape": 3 - } - ], - "properties": { - "Node name for S&R": "KSamplerSelect" - }, - "widgets_values": [ - "euler" - ] - }, - { - "id": 17, - "type": "BasicScheduler", - "pos": [ - 573.0526123046875, - 137.1051483154297 - ], - "size": [ - 210, - 106 - ], - "flags": {}, - "order": 8, - "mode": 0, - "inputs": [ - { - "name": "model", - "type": "MODEL", - "link": 52, - "slot_index": 0 - } - ], - "outputs": [ - { - "name": "SIGMAS", - "type": "SIGMAS", - "links": [ - 20 - ], - "shape": 3 - } - ], - "properties": { - "Node name for S&R": "BasicScheduler" - }, - "widgets_values": [ - "simple", - 20, - 0.75 - ] - }, - { - "id": 30, - "type": "VAEEncode", - "pos": [ - 626.94189453125, - 306.2926940917969 - ], - "size": [ - 140, - 46.959110260009766 - ], - "flags": {}, - "order": 7, - "mode": 0, - "inputs": [ - { - "name": "pixels", - "type": "IMAGE", - "link": 53 - }, - { - "name": "vae", - "type": "VAE", - "link": 49 - } - ], - "outputs": [ - { - "name": "LATENT", - "type": "LATENT", - "links": [ - 44 - ], - "slot_index": 0, - "shape": 3 - } - ], - "properties": { - "Node name for S&R": "VAEEncode" - }, - "widgets_values": [] - }, - { - "id": 8, - "type": "VAEDecode", - "pos": [ - 625.9295654296875, - 428.6144714355469 - ], - "size": [ - 140, - 46 - ], - "flags": {}, - "order": 12, - "mode": 0, - "inputs": [ - { - "name": "samples", - "type": "LATENT", - "link": 24 - }, - { - "name": "vae", - "type": "VAE", - "link": 48 - } - ], - "outputs": [ - { - "name": "IMAGE", - "type": "IMAGE", - "links": [ - 9 - ], - "slot_index": 0 - } - ], - "properties": { - "Node name for S&R": "VAEDecode" - }, - "widgets_values": [] - }, - { - "id": 13, - "type": "SamplerCustomAdvanced", - "pos": [ - 806.6261596679688, - 163.39205932617188 - ], - "size": [ - 236.8000030517578, - 387.28668212890625 - ], - "flags": {}, - "order": 11, - "mode": 0, - "inputs": [ - { - "name": "noise", - "type": "NOISE", - "link": 37, - "slot_index": 0 - }, - { - "name": "guider", - "type": "GUIDER", - "link": 30, - "slot_index": 1 - }, - { - "name": "sampler", - "type": "SAMPLER", - "link": 19, - "slot_index": 2 - }, - { - "name": "sigmas", - "type": "SIGMAS", - "link": 20, - "slot_index": 3 - }, - { - "name": "latent_image", - "type": "LATENT", - "link": 44, - "slot_index": 4 - } - ], - "outputs": [ - { - "name": "output", - "type": "LATENT", - "links": [ - 24 - ], - "slot_index": 0, - "shape": 3 - }, - { - "name": "denoised_output", - "type": "LATENT", - "links": null, - "shape": 3 - } - ], - "properties": { - "Node name for S&R": "SamplerCustomAdvanced" - }, - "widgets_values": [] - }, - { - "id": 26, - "type": "LoadImage", - "pos": [ - -49.16379928588867, - 590.3043823242188 - ], - "size": [ - 571.7417602539062, - 708.3975830078125 - ], - "flags": {}, - "order": 3, - "mode": 0, - "inputs": [], - "outputs": [ - { - "name": "IMAGE", - "type": "IMAGE", - "links": [ - 53 - ], - "slot_index": 0, - "shape": 3 - }, - { - "name": "MASK", - "type": "MASK", - "links": null, - "shape": 3 - } - ], - "properties": { - "Node name for S&R": "LoadImage" - }, - "widgets_values": [ - "43400095.png", - "image" - ] - }, - { - "id": 6, - "type": "CLIPTextEncode", - "pos": [ - 405.42108154296875, - 460.1813049316406 - ], - "size": [ - 210, - 76 - ], - "flags": {}, - "order": 9, - "mode": 0, - "inputs": [ - { - "name": "clip", - "type": "CLIP", - "link": 50 - } - ], - "outputs": [ - { - "name": "CONDITIONING", - "type": "CONDITIONING", - "links": [ - 40 - ], - "slot_index": 0 - } - ], - "properties": { - "Node name for S&R": "CLIPTextEncode" - }, - "widgets_values": [ - "anime style" - ] - }, - { - "id": 34, - "type": "UnetLoaderGGUFMultiGPU", - "pos": [ - -42.17792892456055, - 132.78921508789062 - ], - "size": [ - 417.5072937011719, - 97.88888549804688 - ], - "flags": {}, - "order": 4, - "mode": 0, - "inputs": [], - "outputs": [ - { - "name": "MODEL", - "type": "MODEL", - "links": [ - 51, - 52 - ], - "slot_index": 0 - } - ], - "properties": { - "Node name for S&R": "UnetLoaderGGUFMultiGPU" - }, - "widgets_values": [ - "flux1-dev-Q4_0.gguf", - "cuda:1" - ], - "color": "#332922", - "bgcolor": "#593930" - }, - { - "id": 36, - "type": "Note", - "pos": [ - -448.1904602050781, - 138.0183868408203 - ], - "size": [ - 384.5566711425781, - 276.04486083984375 - ], - "flags": {}, - "order": 5, - "mode": 0, - "inputs": [], - "outputs": [], - "title": "This workflow requires ComfyUI-GGUF", - "properties": {}, - "widgets_values": [ - "**āš ļø Dependency Alert! āš ļø**\n\nThis workflow relies on nodes from the [ComfyUI-GGUF](https://github.com/city96/ComfyUI-GGUF) custom node repository to function correctly. \n\nSpecifically:\n\n*\"UnetLoaderGGUFMultiGPU\" and \n*\"DualCLIPLoaderGGUFMultiGPU\" \n\nwill not work without this dependency installed. Please install ComfyUI-GGUF before attempting to run this workflow." - ], - "color": "#332922", - "bgcolor": "#593930" - }, - { - "id": 35, - "type": "DualCLIPLoaderGGUFMultiGPU", - "pos": [ - -52.30849075317383, - 280.70391845703125 - ], - "size": [ - 435.3804016113281, - 130 - ], - "flags": {}, - "order": 6, - "mode": 0, - "inputs": [], - "outputs": [ - { - "name": "CLIP", - "type": "CLIP", - "links": [ - 50 - ], - "slot_index": 0 - } - ], - "properties": { - "Node name for S&R": "DualCLIPLoaderGGUFMultiGPU" - }, - "widgets_values": [ - "t5-v1_1-xxl-encoder-Q4_K_M.gguf", - "clip_l.safetensors", - "flux", - "cuda:0" - ], - "color": "#332922", - "bgcolor": "#593930" - } - ], - "links": [ - [ - 9, - 8, - 0, - 9, - 0, - "IMAGE" - ], - [ - 19, - 16, - 0, - 13, - 2, - "SAMPLER" - ], - [ - 20, - 17, - 0, - 13, - 3, - "SIGMAS" - ], - [ - 24, - 13, - 0, - 8, - 0, - "LATENT" - ], - [ - 30, - 22, - 0, - 13, - 1, - "GUIDER" - ], - [ - 37, - 25, - 0, - 13, - 0, - "NOISE" - ], - [ - 40, - 6, - 0, - 22, - 1, - "CONDITIONING" - ], - [ - 44, - 30, - 0, - 13, - 4, - "LATENT" - ], - [ - 48, - 33, - 0, - 8, - 1, - "VAE" - ], - [ - 49, - 33, - 0, - 30, - 1, - "VAE" - ], - [ - 50, - 35, - 0, - 6, - 0, - "CLIP" - ], - [ - 51, - 34, - 0, - 22, - 0, - "MODEL" - ], - [ - 52, - 34, - 0, - 17, - 0, - "MODEL" - ], - [ - 53, - 26, - 0, - 30, - 0, - "IMAGE" - ] - ], - "groups": [], - "config": {}, - "extra": { - "ds": { - "scale": 0.7972024500001046, - "offset": [ - 1117.1276694292012, - 150.83008522230102 - ] - }, - "ue_links": [], - "VHS_latentpreview": false, - "VHS_latentpreviewrate": 0 - }, - "version": 0.4 -} \ No newline at end of file diff --git a/example_workflows/gguf/hunyuan_2gpu_gguf.json b/example_workflows/gguf/hunyuan_2gpu_gguf.json deleted file mode 100644 index ec408e5..0000000 --- a/example_workflows/gguf/hunyuan_2gpu_gguf.json +++ /dev/null @@ -1,1348 +0,0 @@ -{ - "last_node_id": 104, - "last_link_id": 268, - "nodes": [ - { - "id": 88, - "type": "VAELoaderMultiGPU", - "pos": [ - -932.6995239257812, - 528.2268676757812 - ], - "size": [ - 322.5263366699219, - 82 - ], - "flags": {}, - "order": 0, - "mode": 0, - "inputs": [], - "outputs": [ - { - "name": "VAE", - "type": "VAE", - "links": [ - 242 - ], - "slot_index": 0 - } - ], - "properties": { - "Node name for S&R": "VAELoaderMultiGPU" - }, - "widgets_values": [ - "hunyuan_video_vae_bf16.safetensors", - "cuda:1" - ] - }, - { - "id": 79, - "type": "DualCLIPLoaderMultiGPU", - "pos": [ - -553.4775390625, - 336.9512023925781 - ], - "size": [ - 315, - 130 - ], - "flags": {}, - "order": 1, - "mode": 4, - "inputs": [], - "outputs": [ - { - "name": "CLIP", - "type": "CLIP", - "links": [ - 237 - ], - "slot_index": 0 - } - ], - "properties": { - "Node name for S&R": "DualCLIPLoaderMultiGPU" - }, - "widgets_values": [ - "clip_l.safetensors", - "llava_llama3_fp8_scaled.safetensors", - "hunyuan_video", - "cuda:1" - ] - }, - { - "id": 80, - "type": "VAELoaderMultiGPU", - "pos": [ - -561.4585571289062, - 522.6740112304688 - ], - "size": [ - 322.5263366699219, - 82 - ], - "flags": {}, - "order": 2, - "mode": 4, - "inputs": [], - "outputs": [ - { - "name": "VAE", - "type": "VAE", - "links": [ - 239 - ], - "slot_index": 0 - } - ], - "properties": { - "Node name for S&R": "VAELoaderMultiGPU" - }, - "widgets_values": [ - "hunyuan_video_vae_bf16.safetensors", - "cuda:1" - ] - }, - { - "id": 97, - "type": "UNETLoaderMultiGPU", - "pos": [ - -553.2993774414062, - 180.6386260986328 - ], - "size": [ - 315, - 106 - ], - "flags": {}, - "order": 3, - "mode": 4, - "inputs": [], - "outputs": [ - { - "name": "MODEL", - "type": "MODEL", - "links": [ - 251 - ], - "slot_index": 0 - } - ], - "properties": { - "Node name for S&R": "UNETLoaderMultiGPU" - }, - "widgets_values": [ - "hunyuan_video_720_cfgdistill_fp8_e4m3fn.safetensors", - "default", - "cuda:0" - ] - }, - { - "id": 11, - "type": "DualCLIPLoader", - "pos": [ - -205.30178833007812, - 359.85260009765625 - ], - "size": [ - 350, - 106 - ], - "flags": {}, - "order": 4, - "mode": 4, - "inputs": [], - "outputs": [ - { - "name": "CLIP", - "type": "CLIP", - "links": [ - 236 - ], - "slot_index": 0, - "shape": 3 - } - ], - "properties": { - "Node name for S&R": "DualCLIPLoader" - }, - "widgets_values": [ - "clip_l.safetensors", - "llava_llama3_fp8_scaled.safetensors", - "hunyuan_video" - ] - }, - { - "id": 10, - "type": "VAELoader", - "pos": [ - -206.71307373046875, - 546.1136474609375 - ], - "size": [ - 350, - 60 - ], - "flags": {}, - "order": 5, - "mode": 4, - "inputs": [], - "outputs": [ - { - "name": "VAE", - "type": "VAE", - "links": [ - 238 - ], - "slot_index": 0, - "shape": 3 - } - ], - "properties": { - "Node name for S&R": "VAELoader" - }, - "widgets_values": [ - "hunyuan_video_vae_bf16.safetensors" - ] - }, - { - "id": 12, - "type": "UNETLoader", - "pos": [ - -198.3746795654297, - 211.21337890625 - ], - "size": [ - 350, - 82 - ], - "flags": {}, - "order": 6, - "mode": 4, - "inputs": [], - "outputs": [ - { - "name": "MODEL", - "type": "MODEL", - "links": [ - 234 - ], - "slot_index": 0, - "shape": 3 - } - ], - "properties": { - "Node name for S&R": "UNETLoader" - }, - "widgets_values": [ - "hunyuan_video_720_cfgdistill_fp8_e4m3fn.safetensors", - "default" - ], - "color": "#223", - "bgcolor": "#335" - }, - { - "id": 87, - "type": "DualCLIPLoaderGGUFMultiGPU", - "pos": [ - -936.0441284179688, - 344.2503662109375 - ], - "size": [ - 327.5999755859375, - 130 - ], - "flags": {}, - "order": 7, - "mode": 0, - "inputs": [], - "outputs": [ - { - "name": "CLIP", - "type": "CLIP", - "links": [ - 241 - ], - "slot_index": 0 - } - ], - "properties": { - "Node name for S&R": "DualCLIPLoaderGGUFMultiGPU" - }, - "widgets_values": [ - "clip_l.safetensors", - "llava-llama-3-8B-v1_1-Q4_K_M.gguf", - "hunyuan_video", - "cuda:1" - ], - "color": "#332922", - "bgcolor": "#593930" - }, - { - "id": 103, - "type": "Note", - "pos": [ - -952.0836791992188, - -89.37448120117188 - ], - "size": [ - 353.56494140625, - 190.77996826171875 - ], - "flags": {}, - "order": 8, - "mode": 0, - "inputs": [], - "outputs": [], - "title": "This workflow requires ComfyUI-GGUF", - "properties": {}, - "widgets_values": [ - "**āš ļø Dependency Alert! āš ļø**\n\nThis workflow relies on nodes from the [ComfyUI-GGUF](https://github.com/city96/ComfyUI-GGUF) custom node repository to function correctly. \n\nSpecifically:\n\n*\"CLIPLoaderGGUFMultiGPU\" \n\nwill not work without this dependency installed. Please install ComfyUI-GGUF before attempting to run this workflow." - ], - "color": "#332922", - "bgcolor": "#593930" - }, - { - "id": 81, - "type": "Any Switch (rgthree)", - "pos": [ - 180.00851440429688, - 565.62353515625 - ], - "size": [ - 140, - 106 - ], - "flags": { - "collapsed": true - }, - "order": 15, - "mode": 0, - "inputs": [ - { - "name": "any_01", - "type": "VAE", - "link": 242, - "dir": 3 - }, - { - "name": "any_02", - "type": "VAE", - "link": 239, - "dir": 3 - }, - { - "name": "any_03", - "type": "VAE", - "link": 238, - "dir": 3 - }, - { - "name": "any_04", - "type": "VAE", - "link": null, - "dir": 3 - }, - { - "name": "any_05", - "type": "VAE", - "link": null - } - ], - "outputs": [ - { - "name": "*", - "type": "VAE", - "links": [ - 226 - ], - "slot_index": 0, - "shape": 3, - "dir": 4, - "label": "VAE" - } - ], - "title": "VAE Switch", - "properties": { - "Node name for S&R": "Any Switch (rgthree)" - }, - "widgets_values": [], - "color": "#941414", - "bgcolor": "#800000" - }, - { - "id": 86, - "type": "UnetLoaderGGUFMultiGPU", - "pos": [ - -927.6819458007812, - 195.3961944580078 - ], - "size": [ - 315, - 82 - ], - "flags": {}, - "order": 9, - "mode": 0, - "inputs": [], - "outputs": [ - { - "name": "MODEL", - "type": "MODEL", - "links": [ - 240 - ], - "slot_index": 0 - } - ], - "properties": { - "Node name for S&R": "UnetLoaderGGUFMultiGPU" - }, - "widgets_values": [ - "hunyuan-video-t2v-720p-Q4_K_M.gguf", - "cuda:0" - ], - "color": "#332922", - "bgcolor": "#593930" - }, - { - "id": 82, - "type": "Any Switch (rgthree)", - "pos": [ - 185.0726776123047, - 375.7745361328125 - ], - "size": [ - 140, - 106 - ], - "flags": { - "collapsed": true - }, - "order": 16, - "mode": 0, - "inputs": [ - { - "name": "any_01", - "type": "CLIP", - "link": 241, - "dir": 3 - }, - { - "name": "any_02", - "type": "CLIP", - "link": 237, - "dir": 3 - }, - { - "name": "any_03", - "type": "CLIP", - "link": 236, - "dir": 3 - }, - { - "name": "any_04", - "type": "CLIP", - "link": null, - "dir": 3 - }, - { - "name": "any_05", - "type": "CLIP", - "link": null, - "dir": 3 - } - ], - "outputs": [ - { - "name": "*", - "type": "CLIP", - "links": [ - 265 - ], - "slot_index": 0, - "shape": 3, - "dir": 4, - "label": "CLIP" - } - ], - "title": "CLIP Switch", - "properties": { - "Node name for S&R": "Any Switch (rgthree)" - }, - "widgets_values": [], - "color": "#432", - "bgcolor": "#653" - }, - { - "id": 22, - "type": "BasicGuider", - "pos": [ - 596.327880859375, - 186.22683715820312 - ], - "size": [ - 222.3482666015625, - 46 - ], - "flags": { - "collapsed": true - }, - "order": 22, - "mode": 0, - "inputs": [ - { - "name": "model", - "type": "MODEL", - "link": 252, - "slot_index": 0 - }, - { - "name": "conditioning", - "type": "CONDITIONING", - "link": 129, - "slot_index": 1 - } - ], - "outputs": [ - { - "name": "GUIDER", - "type": "GUIDER", - "links": [ - 30 - ], - "slot_index": 0, - "shape": 3 - } - ], - "properties": { - "Node name for S&R": "BasicGuider" - }, - "widgets_values": [] - }, - { - "id": 45, - "type": "EmptyHunyuanLatentVideo", - "pos": [ - 362.15252685546875, - 427.1428527832031 - ], - "size": [ - 210, - 130 - ], - "flags": {}, - "order": 10, - "mode": 0, - "inputs": [], - "outputs": [ - { - "name": "LATENT", - "type": "LATENT", - "links": [ - 180 - ], - "slot_index": 0 - } - ], - "properties": { - "Node name for S&R": "EmptyHunyuanLatentVideo" - }, - "widgets_values": [ - 848, - 480, - 73, - 1 - ] - }, - { - "id": 17, - "type": "BasicScheduler", - "pos": [ - 578.1046142578125, - 433.7712707519531 - ], - "size": [ - 210, - 109.8011474609375 - ], - "flags": {}, - "order": 20, - "mode": 0, - "inputs": [ - { - "name": "model", - "type": "MODEL", - "link": 267, - "slot_index": 0 - } - ], - "outputs": [ - { - "name": "SIGMAS", - "type": "SIGMAS", - "links": [ - 20 - ], - "shape": 3 - } - ], - "properties": { - "Node name for S&R": "BasicScheduler" - }, - "widgets_values": [ - "simple", - 20, - 1 - ] - }, - { - "id": 44, - "type": "CLIPTextEncode", - "pos": [ - 354.07879638671875, - 223.81649780273438 - ], - "size": [ - 422.84503173828125, - 164.31304931640625 - ], - "flags": {}, - "order": 18, - "mode": 0, - "inputs": [ - { - "name": "clip", - "type": "CLIP", - "link": 265 - } - ], - "outputs": [ - { - "name": "CONDITIONING", - "type": "CONDITIONING", - "links": [ - 175 - ], - "slot_index": 0 - } - ], - "title": "CLIP Text Encode (Positive Prompt)", - "properties": { - "Node name for S&R": "CLIPTextEncode" - }, - "widgets_values": [ - "anime style anime girl with massive fennec ears and one big fluffy tail, she has blonde hair long hair blue eyes wearing a pink sweater and a long blue skirt walking in a beautiful outdoor scenery with snow mountains in the background" - ], - "color": "#232", - "bgcolor": "#353" - }, - { - "id": 25, - "type": "RandomNoise", - "pos": [ - 540.6160888671875, - 97.0975570678711 - ], - "size": [ - 250.37998962402344, - 82 - ], - "flags": {}, - "order": 11, - "mode": 0, - "inputs": [], - "outputs": [ - { - "name": "NOISE", - "type": "NOISE", - "links": [ - 37 - ], - "shape": 3 - } - ], - "properties": { - "Node name for S&R": "RandomNoise" - }, - "widgets_values": [ - 5770521, - "fixed" - ], - "color": "#2a363b", - "bgcolor": "#3f5159" - }, - { - "id": 16, - "type": "KSamplerSelect", - "pos": [ - 820.9358520507812, - 114.4560546875 - ], - "size": [ - 210, - 58 - ], - "flags": {}, - "order": 12, - "mode": 0, - "inputs": [], - "outputs": [ - { - "name": "SAMPLER", - "type": "SAMPLER", - "links": [ - 19 - ], - "shape": 3 - } - ], - "properties": { - "Node name for S&R": "KSamplerSelect" - }, - "widgets_values": [ - "euler" - ] - }, - { - "id": 102, - "type": "VHS_VideoCombine", - "pos": [ - 1125.0836181640625, - 102.98095703125 - ], - "size": [ - 580.7774658203125, - 665.4212036132812 - ], - "flags": {}, - "order": 25, - "mode": 0, - "inputs": [ - { - "name": "images", - "type": "IMAGE", - "link": 268 - }, - { - "name": "audio", - "type": "AUDIO", - "link": null, - "shape": 7 - }, - { - "name": "meta_batch", - "type": "VHS_BatchManager", - "link": null, - "shape": 7 - }, - { - "name": "vae", - "type": "VAE", - "link": null, - "shape": 7 - } - ], - "outputs": [ - { - "name": "Filenames", - "type": "VHS_FILENAMES", - "links": null - } - ], - "properties": { - "Node name for S&R": "VHS_VideoCombine" - }, - "widgets_values": { - "frame_rate": 24, - "loop_count": 0, - "filename_prefix": "HunyuanVideo", - "format": "video/h264-mp4", - "pix_fmt": "yuv420p", - "crf": 19, - "save_metadata": true, - "trim_to_audio": false, - "pingpong": false, - "save_output": true, - "videopreview": { - "hidden": false, - "paused": false, - "params": { - "filename": "HunyuanVideo_00057.mp4", - "subfolder": "", - "type": "output", - "format": "video/h264-mp4", - "frame_rate": 24, - "workflow": "HunyuanVideo_00057.png", - "fullpath": "/home/johnj/ComfyUI/output/HunyuanVideo_00057.mp4" - }, - "muted": false - } - } - }, - { - "id": 89, - "type": "Fast Groups Bypasser (rgthree)", - "pos": [ - -397.3174743652344, - -10.415107727050781 - ], - "size": [ - 373.6060485839844, - 106 - ], - "flags": {}, - "order": 13, - "mode": 0, - "inputs": [], - "outputs": [ - { - "name": "OPT_CONNECTION", - "type": "*", - "links": [], - "slot_index": 0 - } - ], - "properties": { - "matchColors": "", - "matchTitle": "", - "showNav": true, - "sort": "position", - "customSortAlphabet": "", - "toggleRestriction": "default" - }, - "color": "#233", - "bgcolor": "#355" - }, - { - "id": 77, - "type": "Note", - "pos": [ - -235.55711364746094, - -189.51280212402344 - ], - "size": [ - 210, - 121.95851135253906 - ], - "flags": {}, - "order": 14, - "mode": 0, - "inputs": [], - "outputs": [], - "properties": {}, - "widgets_values": [ - "The switches take the first enabled loader in this order:\n\n1. GGUFMultiGPU\n2. MultiGPU\n3. Standard Loaders" - ], - "color": "#233", - "bgcolor": "#355" - }, - { - "id": 85, - "type": "Any Switch (rgthree)", - "pos": [ - 190.27281188964844, - 241.24795532226562 - ], - "size": [ - 140, - 106 - ], - "flags": { - "collapsed": true - }, - "order": 17, - "mode": 0, - "inputs": [ - { - "name": "any_01", - "type": "MODEL", - "link": 240, - "dir": 3 - }, - { - "name": "any_02", - "type": "MODEL", - "link": 251, - "dir": 3 - }, - { - "name": "any_03", - "type": "MODEL", - "link": 234, - "dir": 3 - }, - { - "name": "any_04", - "type": "MODEL", - "link": null, - "dir": 3 - }, - { - "name": "any_05", - "type": "MODEL", - "link": null, - "dir": 3 - } - ], - "outputs": [ - { - "name": "*", - "type": "MODEL", - "links": [ - 266, - 267 - ], - "slot_index": 0, - "shape": 3, - "dir": 4, - "label": "MODEL" - } - ], - "title": "UNet Switch", - "properties": { - "Node name for S&R": "Any Switch (rgthree)" - }, - "widgets_values": [], - "color": "#323", - "bgcolor": "#535" - }, - { - "id": 26, - "type": "FluxGuidance", - "pos": [ - 339.6404113769531, - 124.61022186279297 - ], - "size": [ - 211.60000610351562, - 58 - ], - "flags": {}, - "order": 21, - "mode": 0, - "inputs": [ - { - "name": "conditioning", - "type": "CONDITIONING", - "link": 175 - } - ], - "outputs": [ - { - "name": "CONDITIONING", - "type": "CONDITIONING", - "links": [ - 129 - ], - "slot_index": 0, - "shape": 3 - } - ], - "properties": { - "Node name for S&R": "FluxGuidance" - }, - "widgets_values": [ - 6 - ], - "color": "#233", - "bgcolor": "#355" - }, - { - "id": 67, - "type": "ModelSamplingSD3", - "pos": [ - 358.3191833496094, - 608.4481201171875 - ], - "size": [ - 210, - 58 - ], - "flags": {}, - "order": 19, - "mode": 0, - "inputs": [ - { - "name": "model", - "type": "MODEL", - "link": 266 - } - ], - "outputs": [ - { - "name": "MODEL", - "type": "MODEL", - "links": [ - 252 - ], - "slot_index": 0 - } - ], - "properties": { - "Node name for S&R": "ModelSamplingSD3" - }, - "widgets_values": [ - 7 - ] - }, - { - "id": 73, - "type": "VAEDecodeTiled", - "pos": [ - 573.7927856445312, - 583.8195190429688 - ], - "size": [ - 210, - 150 - ], - "flags": {}, - "order": 24, - "mode": 0, - "inputs": [ - { - "name": "samples", - "type": "LATENT", - "link": 210 - }, - { - "name": "vae", - "type": "VAE", - "link": 226 - } - ], - "outputs": [ - { - "name": "IMAGE", - "type": "IMAGE", - "links": [ - 268 - ], - "slot_index": 0 - } - ], - "properties": { - "Node name for S&R": "VAEDecodeTiled" - }, - "widgets_values": [ - 256, - 64, - 64, - 8 - ] - }, - { - "id": 13, - "type": "SamplerCustomAdvanced", - "pos": [ - 815.8301391601562, - 241.12867736816406 - ], - "size": [ - 292.4319763183594, - 479.03521728515625 - ], - "flags": { - "collapsed": false - }, - "order": 23, - "mode": 0, - "inputs": [ - { - "name": "noise", - "type": "NOISE", - "link": 37, - "slot_index": 0 - }, - { - "name": "guider", - "type": "GUIDER", - "link": 30, - "slot_index": 1 - }, - { - "name": "sampler", - "type": "SAMPLER", - "link": 19, - "slot_index": 2 - }, - { - "name": "sigmas", - "type": "SIGMAS", - "link": 20, - "slot_index": 3 - }, - { - "name": "latent_image", - "type": "LATENT", - "link": 180, - "slot_index": 4 - } - ], - "outputs": [ - { - "name": "output", - "type": "LATENT", - "links": [ - 210 - ], - "slot_index": 0, - "shape": 3 - }, - { - "name": "denoised_output", - "type": "LATENT", - "links": null, - "shape": 3 - } - ], - "properties": { - "Node name for S&R": "SamplerCustomAdvanced" - }, - "widgets_values": [] - } - ], - "links": [ - [ - 19, - 16, - 0, - 13, - 2, - "SAMPLER" - ], - [ - 20, - 17, - 0, - 13, - 3, - "SIGMAS" - ], - [ - 30, - 22, - 0, - 13, - 1, - "GUIDER" - ], - [ - 37, - 25, - 0, - 13, - 0, - "NOISE" - ], - [ - 129, - 26, - 0, - 22, - 1, - "CONDITIONING" - ], - [ - 175, - 44, - 0, - 26, - 0, - "CONDITIONING" - ], - [ - 180, - 45, - 0, - 13, - 4, - "LATENT" - ], - [ - 210, - 13, - 0, - 73, - 0, - "LATENT" - ], - [ - 226, - 81, - 0, - 73, - 1, - "VAE" - ], - [ - 234, - 12, - 0, - 85, - 2, - "MODEL" - ], - [ - 236, - 11, - 0, - 82, - 2, - "CLIP" - ], - [ - 237, - 79, - 0, - 82, - 1, - "CLIP" - ], - [ - 238, - 10, - 0, - 81, - 2, - "VAE" - ], - [ - 239, - 80, - 0, - 81, - 1, - "VAE" - ], - [ - 240, - 86, - 0, - 85, - 0, - "MODEL" - ], - [ - 241, - 87, - 0, - 82, - 0, - "CLIP" - ], - [ - 242, - 88, - 0, - 81, - 0, - "VAE" - ], - [ - 251, - 97, - 0, - 85, - 1, - "MODEL" - ], - [ - 252, - 67, - 0, - 22, - 0, - "MODEL" - ], - [ - 265, - 82, - 0, - 44, - 0, - "CLIP" - ], - [ - 266, - 85, - 0, - 67, - 0, - "MODEL" - ], - [ - 267, - 85, - 0, - 17, - 0, - "MODEL" - ], - [ - 268, - 73, - 0, - 102, - 0, - "IMAGE" - ] - ], - "groups": [ - { - "id": 1, - "title": "MultiGPU", - "bounding": [ - -588.5792846679688, - 109.26154327392578, - 369.9709167480469, - 504.81884765625 - ], - "color": "#3f789e", - "font_size": 24, - "flags": {} - }, - { - "id": 2, - "title": "GGUFMultiGPU", - "bounding": [ - -956.1146850585938, - 105.08057403564453, - 359.0994567871094, - 514.8541259765625 - ], - "color": "#b06634", - "font_size": 24, - "flags": {} - }, - { - "id": 3, - "title": "Standard Loaders", - "bounding": [ - -214.26190185546875, - 114.71418762207031, - 372.4795227050781, - 510.67266845703125 - ], - "color": "#A88", - "font_size": 24, - "flags": {} - } - ], - "config": {}, - "extra": { - "ds": { - "scale": 0.7972024500001058, - "offset": [ - 1178.4994559657323, - 395.63671832414315 - ] - }, - "groupNodes": {}, - "ue_links": [], - "VHS_latentpreview": false, - "VHS_latentpreviewrate": 0 - }, - "version": 0.4 -} \ No newline at end of file diff --git a/example_workflows/gguf/hunyuan_cpu_1gpu_gguf.json b/example_workflows/gguf/hunyuan_cpu_1gpu_gguf.json deleted file mode 100644 index 223a9eb..0000000 --- a/example_workflows/gguf/hunyuan_cpu_1gpu_gguf.json +++ /dev/null @@ -1,767 +0,0 @@ -{ - "last_node_id": 107, - "last_link_id": 282, - "nodes": [ - { - "id": 26, - "type": "FluxGuidance", - "pos": [ - 350.5116882324219, - 321.9669494628906 - ], - "size": [ - 211.60000610351562, - 58 - ], - "flags": {}, - "order": 10, - "mode": 0, - "inputs": [ - { - "name": "conditioning", - "type": "CONDITIONING", - "link": 175 - } - ], - "outputs": [ - { - "name": "CONDITIONING", - "type": "CONDITIONING", - "links": [ - 129 - ], - "slot_index": 0, - "shape": 3 - } - ], - "properties": { - "Node name for S&R": "FluxGuidance" - }, - "widgets_values": [ - 6 - ], - "color": "#233", - "bgcolor": "#355" - }, - { - "id": 16, - "type": "KSamplerSelect", - "pos": [ - 351.79522705078125, - 238.22244262695312 - ], - "size": [ - 210, - 58 - ], - "flags": {}, - "order": 0, - "mode": 0, - "inputs": [], - "outputs": [ - { - "name": "SAMPLER", - "type": "SAMPLER", - "links": [ - 19 - ], - "shape": 3 - } - ], - "properties": { - "Node name for S&R": "KSamplerSelect" - }, - "widgets_values": [ - "euler" - ] - }, - { - "id": 44, - "type": "CLIPTextEncode", - "pos": [ - 352.4063415527344, - 110.92157745361328 - ], - "size": [ - 806.6873168945312, - 100.75743865966797 - ], - "flags": {}, - "order": 7, - "mode": 0, - "inputs": [ - { - "name": "clip", - "type": "CLIP", - "link": 271 - } - ], - "outputs": [ - { - "name": "CONDITIONING", - "type": "CONDITIONING", - "links": [ - 175 - ], - "slot_index": 0 - } - ], - "title": "CLIP Text Encode (Positive Prompt)", - "properties": { - "Node name for S&R": "CLIPTextEncode" - }, - "widgets_values": [ - "anime style anime girl with massive fennec ears and one big fluffy tail, she has blonde hair long hair blue eyes wearing a pink sweater and a long blue skirt walking in a beautiful outdoor scenery with snow mountains in the background" - ], - "color": "#232", - "bgcolor": "#353" - }, - { - "id": 103, - "type": "Note", - "pos": [ - -341.6152038574219, - 140.59632873535156 - ], - "size": [ - 353.56494140625, - 190.77996826171875 - ], - "flags": {}, - "order": 1, - "mode": 0, - "inputs": [], - "outputs": [], - "title": "This workflow requires ComfyUI-GGUF", - "properties": {}, - "widgets_values": [ - "**āš ļø Dependency Alert! āš ļø**\n\nThis workflow relies on nodes from the [ComfyUI-GGUF](https://github.com/city96/ComfyUI-GGUF) custom node repository to function correctly. \n\nSpecifically:\n\n*\"CLIPLoaderGGUFMultiGPU\" \n\nwill not work without this dependency installed. Please install ComfyUI-GGUF before attempting to run this workflow." - ], - "color": "#332922", - "bgcolor": "#593930" - }, - { - "id": 25, - "type": "RandomNoise", - "pos": [ - 564.22607421875, - 246.15061950683594 - ], - "size": [ - 240.3448944091797, - 82 - ], - "flags": {}, - "order": 2, - "mode": 0, - "inputs": [], - "outputs": [ - { - "name": "NOISE", - "type": "NOISE", - "links": [ - 37 - ], - "shape": 3 - } - ], - "properties": { - "Node name for S&R": "RandomNoise" - }, - "widgets_values": [ - 5770521, - "fixed" - ], - "color": "#2a363b", - "bgcolor": "#3f5159" - }, - { - "id": 17, - "type": "BasicScheduler", - "pos": [ - 566.8038940429688, - 356.6055908203125 - ], - "size": [ - 210, - 109.8011474609375 - ], - "flags": {}, - "order": 9, - "mode": 0, - "inputs": [ - { - "name": "model", - "type": "MODEL", - "link": 270, - "slot_index": 0 - } - ], - "outputs": [ - { - "name": "SIGMAS", - "type": "SIGMAS", - "links": [ - 20 - ], - "shape": 3 - } - ], - "properties": { - "Node name for S&R": "BasicScheduler" - }, - "widgets_values": [ - "simple", - 20, - 1 - ] - }, - { - "id": 67, - "type": "ModelSamplingSD3", - "pos": [ - 353.3148193359375, - 580.4356689453125 - ], - "size": [ - 210, - 58 - ], - "flags": {}, - "order": 8, - "mode": 0, - "inputs": [ - { - "name": "model", - "type": "MODEL", - "link": 269 - } - ], - "outputs": [ - { - "name": "MODEL", - "type": "MODEL", - "links": [ - 252 - ], - "slot_index": 0 - } - ], - "properties": { - "Node name for S&R": "ModelSamplingSD3" - }, - "widgets_values": [ - 7 - ] - }, - { - "id": 45, - "type": "EmptyHunyuanLatentVideo", - "pos": [ - 348.5732116699219, - 417.52801513671875 - ], - "size": [ - 210, - 130 - ], - "flags": {}, - "order": 3, - "mode": 0, - "inputs": [], - "outputs": [ - { - "name": "LATENT", - "type": "LATENT", - "links": [ - 180 - ], - "slot_index": 0 - } - ], - "properties": { - "Node name for S&R": "EmptyHunyuanLatentVideo" - }, - "widgets_values": [ - 848, - 480, - 73, - 1 - ] - }, - { - "id": 87, - "type": "DualCLIPLoaderGGUFMultiGPU", - "pos": [ - 21.471084594726562, - 250.58938598632812 - ], - "size": [ - 327.5999755859375, - 130 - ], - "flags": {}, - "order": 4, - "mode": 0, - "inputs": [], - "outputs": [ - { - "name": "CLIP", - "type": "CLIP", - "links": [ - 271 - ], - "slot_index": 0 - } - ], - "properties": { - "Node name for S&R": "DualCLIPLoaderGGUFMultiGPU" - }, - "widgets_values": [ - "clip_l.safetensors", - "llava-llama-3-8B-v1_1-Q4_K_M.gguf", - "hunyuan_video", - "cpu" - ], - "color": "#332922", - "bgcolor": "#593930" - }, - { - "id": 88, - "type": "VAELoaderMultiGPU", - "pos": [ - 16.678661346435547, - 554.1597290039062 - ], - "size": [ - 322.5263366699219, - 82 - ], - "flags": {}, - "order": 5, - "mode": 0, - "inputs": [], - "outputs": [ - { - "name": "VAE", - "type": "VAE", - "links": [ - 280 - ], - "slot_index": 0 - } - ], - "properties": { - "Node name for S&R": "VAELoaderMultiGPU" - }, - "widgets_values": [ - "hunyuan_video_vae_bf16.safetensors", - "cuda:0" - ] - }, - { - "id": 13, - "type": "SamplerCustomAdvanced", - "pos": [ - 811.649169921875, - 248.65501403808594 - ], - "size": [ - 342.43023681640625, - 387.5726623535156 - ], - "flags": { - "collapsed": false - }, - "order": 12, - "mode": 0, - "inputs": [ - { - "name": "noise", - "type": "NOISE", - "link": 37, - "slot_index": 0 - }, - { - "name": "guider", - "type": "GUIDER", - "link": 30, - "slot_index": 1 - }, - { - "name": "sampler", - "type": "SAMPLER", - "link": 19, - "slot_index": 2 - }, - { - "name": "sigmas", - "type": "SIGMAS", - "link": 20, - "slot_index": 3 - }, - { - "name": "latent_image", - "type": "LATENT", - "link": 180, - "slot_index": 4 - } - ], - "outputs": [ - { - "name": "output", - "type": "LATENT", - "links": [ - 281 - ], - "slot_index": 0, - "shape": 3 - }, - { - "name": "denoised_output", - "type": "LATENT", - "links": null, - "shape": 3 - } - ], - "properties": { - "Node name for S&R": "SamplerCustomAdvanced" - }, - "widgets_values": [] - }, - { - "id": 22, - "type": "BasicGuider", - "pos": [ - 579.3200073242188, - 506.49493408203125 - ], - "size": [ - 222.3482666015625, - 46 - ], - "flags": { - "collapsed": true - }, - "order": 11, - "mode": 0, - "inputs": [ - { - "name": "model", - "type": "MODEL", - "link": 252, - "slot_index": 0 - }, - { - "name": "conditioning", - "type": "CONDITIONING", - "link": 129, - "slot_index": 1 - } - ], - "outputs": [ - { - "name": "GUIDER", - "type": "GUIDER", - "links": [ - 30 - ], - "slot_index": 0, - "shape": 3 - } - ], - "properties": { - "Node name for S&R": "BasicGuider" - }, - "widgets_values": [] - }, - { - "id": 107, - "type": "VAEDecodeTiled", - "pos": [ - 577.1324462890625, - 546.57861328125 - ], - "size": [ - 210, - 150 - ], - "flags": {}, - "order": 13, - "mode": 0, - "inputs": [ - { - "name": "samples", - "type": "LATENT", - "link": 281 - }, - { - "name": "vae", - "type": "VAE", - "link": 280 - } - ], - "outputs": [ - { - "name": "IMAGE", - "type": "IMAGE", - "links": [ - 282 - ], - "slot_index": 0 - } - ], - "properties": { - "Node name for S&R": "VAEDecodeTiled" - }, - "widgets_values": [ - 256, - 64, - 64, - 8 - ] - }, - { - "id": 86, - "type": "UnetLoaderGGUFMultiGPU", - "pos": [ - 28.1607723236084, - 124.31423950195312 - ], - "size": [ - 315, - 82 - ], - "flags": {}, - "order": 6, - "mode": 0, - "inputs": [], - "outputs": [ - { - "name": "MODEL", - "type": "MODEL", - "links": [ - 269, - 270 - ], - "slot_index": 0 - } - ], - "properties": { - "Node name for S&R": "UnetLoaderGGUFMultiGPU" - }, - "widgets_values": [ - "hunyuan-video-t2v-720p-Q4_K_M.gguf", - "cuda:0" - ], - "color": "#332922", - "bgcolor": "#593930" - }, - { - "id": 102, - "type": "VHS_VideoCombine", - "pos": [ - 1161.8779296875, - -19.11272621154785 - ], - "size": [ - 580.7774658203125, - 665.4212036132812 - ], - "flags": {}, - "order": 14, - "mode": 0, - "inputs": [ - { - "name": "images", - "type": "IMAGE", - "link": 282 - }, - { - "name": "audio", - "type": "AUDIO", - "link": null, - "shape": 7 - }, - { - "name": "meta_batch", - "type": "VHS_BatchManager", - "link": null, - "shape": 7 - }, - { - "name": "vae", - "type": "VAE", - "link": null, - "shape": 7 - } - ], - "outputs": [ - { - "name": "Filenames", - "type": "VHS_FILENAMES", - "links": null - } - ], - "properties": { - "Node name for S&R": "VHS_VideoCombine" - }, - "widgets_values": { - "frame_rate": 25, - "loop_count": 0, - "filename_prefix": "HunyuanVideo", - "format": "video/h264-mp4", - "pix_fmt": "yuv420p", - "crf": 19, - "save_metadata": true, - "trim_to_audio": false, - "pingpong": false, - "save_output": true, - "videopreview": { - "hidden": false, - "paused": false, - "params": { - "filename": "HunyuanVideo_00058.mp4", - "subfolder": "", - "type": "output", - "format": "video/h264-mp4", - "frame_rate": 24, - "workflow": "HunyuanVideo_00058.png", - "fullpath": "/home/johnj/ComfyUI/output/HunyuanVideo_00058.mp4" - }, - "muted": false - } - } - } - ], - "links": [ - [ - 19, - 16, - 0, - 13, - 2, - "SAMPLER" - ], - [ - 20, - 17, - 0, - 13, - 3, - "SIGMAS" - ], - [ - 30, - 22, - 0, - 13, - 1, - "GUIDER" - ], - [ - 37, - 25, - 0, - 13, - 0, - "NOISE" - ], - [ - 129, - 26, - 0, - 22, - 1, - "CONDITIONING" - ], - [ - 175, - 44, - 0, - 26, - 0, - "CONDITIONING" - ], - [ - 180, - 45, - 0, - 13, - 4, - "LATENT" - ], - [ - 252, - 67, - 0, - 22, - 0, - "MODEL" - ], - [ - 269, - 86, - 0, - 67, - 0, - "MODEL" - ], - [ - 270, - 86, - 0, - 17, - 0, - "MODEL" - ], - [ - 271, - 87, - 0, - 44, - 0, - "CLIP" - ], - [ - 280, - 88, - 0, - 107, - 1, - "VAE" - ], - [ - 281, - 13, - 0, - 107, - 0, - "LATENT" - ], - [ - 282, - 107, - 0, - 102, - 0, - "IMAGE" - ] - ], - "groups": [], - "config": {}, - "extra": { - "ds": { - "scale": 0.9646149645001282, - "offset": [ - 465.7708198313094, - 178.06262567367494 - ] - }, - "groupNodes": {}, - "ue_links": [], - "VHS_latentpreview": false, - "VHS_latentpreviewrate": 0 - }, - "version": 0.4 -} \ No newline at end of file diff --git a/example_workflows/gguf/hunyuan_gguf_MultiGPU.json b/example_workflows/gguf/hunyuan_gguf_MultiGPU.json deleted file mode 100755 index c5e2e22..0000000 --- a/example_workflows/gguf/hunyuan_gguf_MultiGPU.json +++ /dev/null @@ -1,240 +0,0 @@ -{ - "13": { - "inputs": { - "noise": [ - "25", - 0 - ], - "guider": [ - "22", - 0 - ], - "sampler": [ - "16", - 0 - ], - "sigmas": [ - "17", - 0 - ], - "latent_image": [ - "45", - 0 - ] - }, - "class_type": "SamplerCustomAdvanced", - "_meta": { - "title": "SamplerCustomAdvanced" - } - }, - "16": { - "inputs": { - "sampler_name": "euler" - }, - "class_type": "KSamplerSelect", - "_meta": { - "title": "KSamplerSelect" - } - }, - "17": { - "inputs": { - "scheduler": "simple", - "steps": 20, - "denoise": 1, - "model": [ - "85", - 0 - ] - }, - "class_type": "BasicScheduler", - "_meta": { - "title": "BasicScheduler" - } - }, - "22": { - "inputs": { - "model": [ - "67", - 0 - ], - "conditioning": [ - "26", - 0 - ] - }, - "class_type": "BasicGuider", - "_meta": { - "title": "BasicGuider" - } - }, - "25": { - "inputs": { - "noise_seed": 5770521 - }, - "class_type": "RandomNoise", - "_meta": { - "title": "RandomNoise" - } - }, - "26": { - "inputs": { - "guidance": 6, - "conditioning": [ - "44", - 0 - ] - }, - "class_type": "FluxGuidance", - "_meta": { - "title": "FluxGuidance" - } - }, - "44": { - "inputs": { - "text": "A towering technological monolith in a cyberpunk cityscape at night, with alien letters emblazoned across its surface in massive neon blue-green mixed with purple letters that illuminate the surrounding buildings. The text occupies the central third of the frame, crafted from glowing plasma tubes and crackling energy. Rain-slicked streets below reflect the brilliant signage, while holographic advertisements and flying vehicles populate the background. Moody atmospheric lighting, heavy contrast, photorealistic textures, cinematic color grading.", - "clip": [ - "82", - 0 - ] - }, - "class_type": "CLIPTextEncode", - "_meta": { - "title": "CLIP Text Encode (Positive Prompt)" - } - }, - "45": { - "inputs": { - "width": 848, - "height": 480, - "length": 73, - "batch_size": 1 - }, - "class_type": "EmptyHunyuanLatentVideo", - "_meta": { - "title": "EmptyHunyuanLatentVideo" - } - }, - "67": { - "inputs": { - "shift": 7, - "model": [ - "85", - 0 - ] - }, - "class_type": "ModelSamplingSD3", - "_meta": { - "title": "ModelSamplingSD3" - } - }, - "73": { - "inputs": { - "tile_size": 256, - "overlap": 64, - "temporal_size": 64, - "temporal_overlap": 8, - "samples": [ - "13", - 0 - ], - "vae": [ - "81", - 0 - ] - }, - "class_type": "VAEDecodeTiled", - "_meta": { - "title": "VAE Decode (Tiled)" - } - }, - "81": { - "inputs": { - "any_01": [ - "88", - 0 - ] - }, - "class_type": "Any Switch (rgthree)", - "_meta": { - "title": "VAE Switch" - } - }, - "82": { - "inputs": { - "any_01": [ - "87", - 0 - ] - }, - "class_type": "Any Switch (rgthree)", - "_meta": { - "title": "CLIP Switch" - } - }, - "85": { - "inputs": { - "any_01": [ - "86", - 0 - ] - }, - "class_type": "Any Switch (rgthree)", - "_meta": { - "title": "UNet Switch" - } - }, - "86": { - "inputs": { - "unet_name": "fast-hunyuan-video-t2v-720p-Q8_0.gguf", - "device": "cuda:0" - }, - "class_type": "UnetLoaderGGUFMultiGPU", - "_meta": { - "title": "UnetLoaderGGUFMultiGPU" - } - }, - "87": { - "inputs": { - "clip_name1": "clip_l.safetensors", - "clip_name2": "llava-llama-3-8B-v1_1-Q4_K_M.gguf", - "type": "hunyuan_video", - "device": "cuda:1" - }, - "class_type": "DualCLIPLoaderGGUFMultiGPU", - "_meta": { - "title": "DualCLIPLoaderGGUFMultiGPU" - } - }, - "88": { - "inputs": { - "vae_name": "hunyuan_video_vae_bf16.safetensors", - "device": "cuda:1" - }, - "class_type": "VAELoaderMultiGPU", - "_meta": { - "title": "VAELoaderMultiGPU" - } - }, - "102": { - "inputs": { - "frame_rate": 24, - "loop_count": 0, - "filename_prefix": "HunyuanVideo", - "format": "video/h264-mp4", - "pix_fmt": "yuv420p", - "crf": 19, - "save_metadata": true, - "trim_to_audio": false, - "pingpong": false, - "save_output": true, - "images": [ - "73", - 0 - ] - }, - "class_type": "VHS_VideoCombine", - "_meta": { - "title": "Video Combine šŸŽ„šŸ…„šŸ…—šŸ…¢" - } - } -} \ No newline at end of file diff --git a/example_workflows/gguf/hunyuan_gguf_distorch.json b/example_workflows/gguf/hunyuan_gguf_distorch.json deleted file mode 100755 index 68f6bd1..0000000 --- a/example_workflows/gguf/hunyuan_gguf_distorch.json +++ /dev/null @@ -1,789 +0,0 @@ -{ - "last_node_id": 120, - "last_link_id": 156, - "nodes": [ - { - "id": 72, - "type": "FluxGuidance", - "pos": [ - 3012.307373046875, - -267.3423767089844 - ], - "size": [ - 211.60000610351562, - 58 - ], - "flags": {}, - "order": 10, - "mode": 0, - "inputs": [ - { - "name": "conditioning", - "type": "CONDITIONING", - "link": 83 - } - ], - "outputs": [ - { - "name": "CONDITIONING", - "type": "CONDITIONING", - "links": [ - 79 - ], - "slot_index": 0, - "shape": 3 - } - ], - "properties": { - "Node name for S&R": "FluxGuidance" - }, - "widgets_values": [ - 6 - ], - "color": "#233", - "bgcolor": "#355" - }, - { - "id": 73, - "type": "ModelSamplingSD3", - "pos": [ - 3030.986328125, - 216.49542236328125 - ], - "size": [ - 210, - 58 - ], - "flags": {}, - "order": 7, - "mode": 0, - "inputs": [ - { - "name": "model", - "type": "MODEL", - "link": 141 - } - ], - "outputs": [ - { - "name": "MODEL", - "type": "MODEL", - "links": [ - 78 - ], - "slot_index": 0 - } - ], - "properties": { - "Node name for S&R": "ModelSamplingSD3" - }, - "widgets_values": [ - 7 - ] - }, - { - "id": 74, - "type": "VAEDecodeTiled", - "pos": [ - 3246.459716796875, - 191.86683654785156 - ], - "size": [ - 210, - 150 - ], - "flags": {}, - "order": 13, - "mode": 0, - "inputs": [ - { - "name": "samples", - "type": "LATENT", - "link": 85 - }, - { - "name": "vae", - "type": "VAE", - "link": 99 - } - ], - "outputs": [ - { - "name": "IMAGE", - "type": "IMAGE", - "links": [ - 82 - ], - "slot_index": 0 - } - ], - "properties": { - "Node name for S&R": "VAEDecodeTiled" - }, - "widgets_values": [ - 256, - 64, - 64, - 8 - ] - }, - { - "id": 66, - "type": "BasicScheduler", - "pos": [ - 3250.771484375, - 41.81864929199219 - ], - "size": [ - 210, - 109.8011474609375 - ], - "flags": {}, - "order": 8, - "mode": 0, - "inputs": [ - { - "name": "model", - "type": "MODEL", - "link": 142, - "slot_index": 0 - } - ], - "outputs": [ - { - "name": "SIGMAS", - "type": "SIGMAS", - "links": [ - 90 - ], - "shape": 3 - } - ], - "properties": { - "Node name for S&R": "BasicScheduler" - }, - "widgets_values": [ - "simple", - 20, - 1 - ] - }, - { - "id": 69, - "type": "KSamplerSelect", - "pos": [ - 3505.5615234375, - -276.5766296386719 - ], - "size": [ - 210, - 58 - ], - "flags": {}, - "order": 0, - "mode": 0, - "inputs": [], - "outputs": [ - { - "name": "SAMPLER", - "type": "SAMPLER", - "links": [ - 89 - ], - "shape": 3 - } - ], - "properties": { - "Node name for S&R": "KSamplerSelect" - }, - "widgets_values": [ - "euler" - ] - }, - { - "id": 115, - "type": "EmptyHunyuanLatentVideo", - "pos": [ - 3026.87939453125, - 50.70602035522461 - ], - "size": [ - 210, - 130 - ], - "flags": { - "collapsed": false - }, - "order": 1, - "mode": 0, - "inputs": [], - "outputs": [ - { - "name": "LATENT", - "type": "LATENT", - "links": [ - 155 - ], - "slot_index": 0 - } - ], - "properties": { - "Node name for S&R": "EmptyHunyuanLatentVideo" - }, - "widgets_values": [ - 368, - 640, - 65, - 1 - ] - }, - { - "id": 78, - "type": "Note", - "pos": [ - 2631.16015625, - -399.4529113769531 - ], - "size": [ - 353.56494140625, - 190.77996826171875 - ], - "flags": {}, - "order": 2, - "mode": 0, - "inputs": [], - "outputs": [], - "title": "This workflow requires ComfyUI-GGUF", - "properties": {}, - "widgets_values": [ - "**āš ļø Dependency Alert! āš ļø**\n\nThis workflow relies on nodes from the [ComfyUI-GGUF](https://github.com/city96/ComfyUI-GGUF) custom node repository to function correctly. \n\nSpecifically:\n\n*\"CLIPLoaderGGUFMultiGPU\" \n\nwill not work without this dependency installed. Please install ComfyUI-GGUF before attempting to run this workflow." - ], - "color": "#332922", - "bgcolor": "#593930" - }, - { - "id": 68, - "type": "RandomNoise", - "pos": [ - 3244.127685546875, - -303.9937438964844 - ], - "size": [ - 250.37998962402344, - 82 - ], - "flags": {}, - "order": 3, - "mode": 0, - "inputs": [], - "outputs": [ - { - "name": "NOISE", - "type": "NOISE", - "links": [ - 87 - ], - "shape": 3 - } - ], - "properties": { - "Node name for S&R": "RandomNoise" - }, - "widgets_values": [ - 5770521, - "fixed" - ], - "color": "#2a363b", - "bgcolor": "#3f5159" - }, - { - "id": 70, - "type": "VHS_VideoCombine", - "pos": [ - 3809.87548828125, - -522.964111328125 - ], - "size": [ - 338.94024658203125, - 902.6787109375 - ], - "flags": {}, - "order": 14, - "mode": 0, - "inputs": [ - { - "name": "images", - "type": "IMAGE", - "link": 82 - }, - { - "name": "audio", - "type": "AUDIO", - "link": null, - "shape": 7 - }, - { - "name": "meta_batch", - "type": "VHS_BatchManager", - "link": null, - "shape": 7 - }, - { - "name": "vae", - "type": "VAE", - "link": null, - "shape": 7 - } - ], - "outputs": [ - { - "name": "Filenames", - "type": "VHS_FILENAMES", - "links": null - } - ], - "properties": { - "Node name for S&R": "VHS_VideoCombine" - }, - "widgets_values": { - "frame_rate": 24, - "loop_count": 0, - "filename_prefix": "HunyuanVideo", - "format": "video/h264-mp4", - "pix_fmt": "yuv420p", - "crf": 19, - "save_metadata": true, - "trim_to_audio": false, - "pingpong": false, - "save_output": true, - "videopreview": { - "hidden": false, - "paused": false, - "params": { - "filename": "HunyuanVideo_00336.mp4", - "subfolder": "", - "type": "output", - "format": "video/h264-mp4", - "frame_rate": 24, - "workflow": "HunyuanVideo_00336.png", - "fullpath": "/home/johnj/ComfyUI/output/HunyuanVideo_00336.mp4" - }, - "muted": false - } - } - }, - { - "id": 64, - "type": "BasicGuider", - "pos": [ - 3288.76025390625, - -192.04156494140625 - ], - "size": [ - 222.3482666015625, - 46 - ], - "flags": { - "collapsed": true - }, - "order": 11, - "mode": 0, - "inputs": [ - { - "name": "model", - "type": "MODEL", - "link": 78, - "slot_index": 0 - }, - { - "name": "conditioning", - "type": "CONDITIONING", - "link": 79, - "slot_index": 1 - } - ], - "outputs": [ - { - "name": "GUIDER", - "type": "GUIDER", - "links": [ - 88 - ], - "slot_index": 0, - "shape": 3 - } - ], - "properties": { - "Node name for S&R": "BasicGuider" - }, - "widgets_values": [] - }, - { - "id": 67, - "type": "CLIPTextEncode", - "pos": [ - 3032.827392578125, - -153.691650390625 - ], - "size": [ - 422.84503173828125, - 164.31304931640625 - ], - "flags": {}, - "order": 9, - "mode": 0, - "inputs": [ - { - "name": "clip", - "type": "CLIP", - "link": 156 - } - ], - "outputs": [ - { - "name": "CONDITIONING", - "type": "CONDITIONING", - "links": [ - 83 - ], - "slot_index": 0 - } - ], - "title": "CLIP Text Encode (Positive Prompt)", - "properties": { - "Node name for S&R": "CLIPTextEncode" - }, - "widgets_values": [ - "A light green frog with brown spots stares forward with its left eye moving subtly. The frog's skin is textured with small bumps, and its spots appear in irregular patterns across its head and face. The eye is round and black with a subtle shine. The head is slightly tilted to its left, and the body is barely visible. The background is a flat, solid bright yellow color, extending beyond the frog in all directions, with the lower part having a slight gradient into a lighter green. The camera zooms in slowly on the frog's eye and the frog looks directly at the viewer. The overall lighting is bright and diffused, creating a soft appearance." - ], - "color": "#232", - "bgcolor": "#353" - }, - { - "id": 76, - "type": "VAELoaderMultiGPU", - "pos": [ - 2632.252685546875, - 327.2115783691406 - ], - "size": [ - 341.07464599609375, - 87.14057922363281 - ], - "flags": {}, - "order": 4, - "mode": 0, - "inputs": [], - "outputs": [ - { - "name": "VAE", - "type": "VAE", - "links": [ - 99 - ], - "slot_index": 0 - } - ], - "properties": { - "Node name for S&R": "VAELoaderMultiGPU" - }, - "widgets_values": [ - "hunyuan_video_vae_bf16.safetensors", - "cuda:1" - ], - "color": "#233", - "bgcolor": "#355" - }, - { - "id": 75, - "type": "SamplerCustomAdvanced", - "pos": [ - 3517.626953125, - -117.69574737548828 - ], - "size": [ - 292.4319763183594, - 479.03521728515625 - ], - "flags": { - "collapsed": false - }, - "order": 12, - "mode": 0, - "inputs": [ - { - "name": "noise", - "type": "NOISE", - "link": 87, - "slot_index": 0 - }, - { - "name": "guider", - "type": "GUIDER", - "link": 88, - "slot_index": 1 - }, - { - "name": "sampler", - "type": "SAMPLER", - "link": 89, - "slot_index": 2 - }, - { - "name": "sigmas", - "type": "SIGMAS", - "link": 90, - "slot_index": 3 - }, - { - "name": "latent_image", - "type": "LATENT", - "link": 155, - "slot_index": 4 - } - ], - "outputs": [ - { - "name": "output", - "type": "LATENT", - "links": [ - 85 - ], - "slot_index": 0, - "shape": 3 - }, - { - "name": "denoised_output", - "type": "LATENT", - "links": null, - "shape": 3 - } - ], - "properties": { - "Node name for S&R": "SamplerCustomAdvanced" - }, - "widgets_values": [] - }, - { - "id": 88, - "type": "UnetLoaderGGUFDisTorchMultiGPU", - "pos": [ - 2624.267822265625, - -66.1816177368164 - ], - "size": [ - 358.005859375, - 154 - ], - "flags": {}, - "order": 5, - "mode": 0, - "inputs": [], - "outputs": [ - { - "name": "MODEL", - "type": "MODEL", - "links": [ - 141, - 142 - ], - "slot_index": 0 - } - ], - "properties": { - "Node name for S&R": "UnetLoaderGGUFDisTorchMultiGPU" - }, - "widgets_values": [ - "hunyuan-video-t2v-720p-Q8_0.gguf", - "cuda:0", - 8, - false, - "" - ], - "color": "#233", - "bgcolor": "#355" - }, - { - "id": 120, - "type": "DualCLIPLoaderGGUFMultiGPU", - "pos": [ - 2625.07763671875, - 132.1048126220703 - ], - "size": [ - 348.16229248046875, - 130 - ], - "flags": {}, - "order": 6, - "mode": 0, - "inputs": [], - "outputs": [ - { - "name": "CLIP", - "type": "CLIP", - "links": [ - 156 - ], - "slot_index": 0 - } - ], - "properties": { - "Node name for S&R": "DualCLIPLoaderGGUFMultiGPU" - }, - "widgets_values": [ - "clip_l.safetensors", - "llava-llama-3-8B-v1_1-Q4_K_M.gguf", - "hunyuan_video", - "cpu" - ], - "color": "#233", - "bgcolor": "#355" - } - ], - "links": [ - [ - 78, - 73, - 0, - 64, - 0, - "MODEL" - ], - [ - 79, - 72, - 0, - 64, - 1, - "CONDITIONING" - ], - [ - 82, - 74, - 0, - 70, - 0, - "IMAGE" - ], - [ - 83, - 67, - 0, - 72, - 0, - "CONDITIONING" - ], - [ - 85, - 75, - 0, - 74, - 0, - "LATENT" - ], - [ - 87, - 68, - 0, - 75, - 0, - "NOISE" - ], - [ - 88, - 64, - 0, - 75, - 1, - "GUIDER" - ], - [ - 89, - 69, - 0, - 75, - 2, - "SAMPLER" - ], - [ - 90, - 66, - 0, - 75, - 3, - "SIGMAS" - ], - [ - 99, - 76, - 0, - 74, - 1, - "VAE" - ], - [ - 141, - 88, - 0, - 73, - 0, - "MODEL" - ], - [ - 142, - 88, - 0, - 66, - 0, - "MODEL" - ], - [ - 155, - 115, - 0, - 75, - 4, - "LATENT" - ], - [ - 156, - 120, - 0, - 67, - 0, - "CLIP" - ] - ], - "groups": [ - { - "id": 1, - "title": "GGUFDisTorchMultiGPU", - "bounding": [ - 2620.569091796875, - -121.6815185546875, - 360.4816589355469, - 537.903076171875 - ], - "color": "#8AA", - "font_size": 24, - "flags": {} - } - ], - "config": {}, - "extra": { - "ds": { - "scale": 1.167184107045179, - "offset": [ - -2360.0515813693187, - 465.0591039206934 - ] - }, - "ue_links": [], - "VHS_latentpreview": false, - "VHS_latentpreviewrate": 0, - "VHS_MetadataImage": true, - "VHS_KeepIntermediate": true - }, - "version": 0.4 -} \ No newline at end of file diff --git a/example_workflows/hunyuanvideo distorch DEPRECATED.jpg b/example_workflows/hunyuanvideo distorch DEPRECATED.jpg new file mode 100755 index 0000000..d77ddcd Binary files /dev/null and b/example_workflows/hunyuanvideo distorch DEPRECATED.jpg differ diff --git a/example_workflows/distorch2/hunyuan_gguf_DisTorch2.json b/example_workflows/hunyuanvideo distorch DEPRECATED.json similarity index 70% rename from example_workflows/distorch2/hunyuan_gguf_DisTorch2.json rename to example_workflows/hunyuanvideo distorch DEPRECATED.json index 13db27d..40b6040 100755 --- a/example_workflows/distorch2/hunyuan_gguf_DisTorch2.json +++ b/example_workflows/hunyuanvideo distorch DEPRECATED.json @@ -1,8 +1,8 @@ { - "id": "476d2791-c10e-4a18-a548-2fbc6aa0f024", + "id": "93280d39-664d-49f5-9bd5-62d80b169b01", "revision": 0, - "last_node_id": 121, - "last_link_id": 158, + "last_node_id": 123, + "last_link_id": 160, "nodes": [ { "id": 72, @@ -36,6 +36,8 @@ } ], "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.64", "Node name for S&R": "FluxGuidance" }, "widgets_values": [ @@ -56,13 +58,13 @@ 58 ], "flags": {}, - "order": 7, + "order": 8, "mode": 0, "inputs": [ { "name": "model", "type": "MODEL", - "link": 157 + "link": 159 } ], "outputs": [ @@ -76,6 +78,8 @@ } ], "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.64", "Node name for S&R": "ModelSamplingSD3" }, "widgets_values": [ @@ -119,6 +123,8 @@ } ], "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.64", "Node name for S&R": "VAEDecodeTiled" }, "widgets_values": [ @@ -128,45 +134,6 @@ 8 ] }, - { - "id": 66, - "type": "BasicScheduler", - "pos": [ - 3250.771484375, - 41.81864929199219 - ], - "size": [ - 210, - 109.8011474609375 - ], - "flags": {}, - "order": 8, - "mode": 0, - "inputs": [ - { - "name": "model", - "type": "MODEL", - "link": 158 - } - ], - "outputs": [ - { - "name": "SIGMAS", - "type": "SIGMAS", - "links": [ - 90 - ] - } - ], - "properties": { - "Node name for S&R": "BasicScheduler" - }, - "widgets_values": [ - "simple", - 20, - 1 - ] - }, { "id": 69, "type": "KSamplerSelect", @@ -192,6 +159,8 @@ } ], "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.64", "Node name for S&R": "KSamplerSelect" }, "widgets_values": [ @@ -226,6 +195,8 @@ } ], "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.64", "Node name for S&R": "EmptyHunyuanLatentVideo" }, "widgets_values": [ @@ -235,30 +206,6 @@ 1 ] }, - { - "id": 78, - "type": "Note", - "pos": [ - 2631.16015625, - -399.4529113769531 - ], - "size": [ - 353.56494140625, - 190.77996826171875 - ], - "flags": {}, - "order": 2, - "mode": 0, - "inputs": [], - "outputs": [], - "title": "This workflow requires ComfyUI-GGUF", - "properties": {}, - "widgets_values": [ - "**āš ļø Dependency Alert! āš ļø**\n\nThis workflow relies on nodes from the [ComfyUI-GGUF](https://github.com/city96/ComfyUI-GGUF) custom node repository to function correctly. \n\nSpecifically:\n\n*\"CLIPLoaderGGUFMultiGPU\" \n\nwill not work without this dependency installed. Please install ComfyUI-GGUF before attempting to run this workflow." - ], - "color": "#332922", - "bgcolor": "#593930" - }, { "id": 68, "type": "RandomNoise", @@ -271,7 +218,7 @@ 82 ], "flags": {}, - "order": 3, + "order": 2, "mode": 0, "inputs": [], "outputs": [ @@ -284,6 +231,8 @@ } ], "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.64", "Node name for S&R": "RandomNoise" }, "widgets_values": [ @@ -293,82 +242,6 @@ "color": "#2a363b", "bgcolor": "#3f5159" }, - { - "id": 70, - "type": "VHS_VideoCombine", - "pos": [ - 3809.87548828125, - -522.964111328125 - ], - "size": [ - 338.94024658203125, - 902.6787109375 - ], - "flags": {}, - "order": 14, - "mode": 0, - "inputs": [ - { - "name": "images", - "type": "IMAGE", - "link": 82 - }, - { - "name": "audio", - "shape": 7, - "type": "AUDIO", - "link": null - }, - { - "name": "meta_batch", - "shape": 7, - "type": "VHS_BatchManager", - "link": null - }, - { - "name": "vae", - "shape": 7, - "type": "VAE", - "link": null - } - ], - "outputs": [ - { - "name": "Filenames", - "type": "VHS_FILENAMES", - "links": null - } - ], - "properties": { - "Node name for S&R": "VHS_VideoCombine" - }, - "widgets_values": { - "frame_rate": 24, - "loop_count": 0, - "filename_prefix": "HunyuanVideo", - "format": "video/h264-mp4", - "pix_fmt": "yuv420p", - "crf": 19, - "save_metadata": true, - "trim_to_audio": false, - "pingpong": false, - "save_output": true, - "videopreview": { - "hidden": false, - "paused": false, - "params": { - "filename": "HunyuanVideo_00002.mp4", - "subfolder": "", - "type": "output", - "format": "video/h264-mp4", - "frame_rate": 24, - "workflow": "HunyuanVideo_00002.png", - "fullpath": "/home/johnj/ComfyUI/output/HunyuanVideo_00002.mp4" - }, - "muted": false - } - } - }, { "id": 64, "type": "BasicGuider", @@ -408,92 +281,18 @@ } ], "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.64", "Node name for S&R": "BasicGuider" }, "widgets_values": [] }, - { - "id": 67, - "type": "CLIPTextEncode", - "pos": [ - 3032.827392578125, - -153.691650390625 - ], - "size": [ - 422.84503173828125, - 164.31304931640625 - ], - "flags": {}, - "order": 9, - "mode": 0, - "inputs": [ - { - "name": "clip", - "type": "CLIP", - "link": 156 - } - ], - "outputs": [ - { - "name": "CONDITIONING", - "type": "CONDITIONING", - "slot_index": 0, - "links": [ - 83 - ] - } - ], - "title": "CLIP Text Encode (Positive Prompt)", - "properties": { - "Node name for S&R": "CLIPTextEncode" - }, - "widgets_values": [ - "A light green frog with brown spots stares forward with its left eye moving subtly. The frog's skin is textured with small bumps, and its spots appear in irregular patterns across its head and face. The eye is round and black with a subtle shine. The head is slightly tilted to its left, and the body is barely visible. The background is a flat, solid bright yellow color, extending beyond the frog in all directions, with the lower part having a slight gradient into a lighter green. The camera zooms in slowly on the frog's eye and the frog looks directly at the viewer. The overall lighting is bright and diffused, creating a soft appearance." - ], - "color": "#232", - "bgcolor": "#353" - }, - { - "id": 76, - "type": "VAELoaderMultiGPU", - "pos": [ - 2632.252685546875, - 327.2115783691406 - ], - "size": [ - 341.07464599609375, - 87.14057922363281 - ], - "flags": {}, - "order": 4, - "mode": 0, - "inputs": [], - "outputs": [ - { - "name": "VAE", - "type": "VAE", - "slot_index": 0, - "links": [ - 99 - ] - } - ], - "properties": { - "Node name for S&R": "VAELoaderMultiGPU" - }, - "widgets_values": [ - "hunyuan_video_vae_bf16.safetensors", - "cuda:1" - ], - "color": "#233", - "bgcolor": "#355" - }, { "id": 75, "type": "SamplerCustomAdvanced", "pos": [ - 3517.626953125, - -117.69574737548828 + 3559.78662109375, + -157.08978271484375 ], "size": [ 292.4319763183594, @@ -547,61 +346,25 @@ } ], "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.64", "Node name for S&R": "SamplerCustomAdvanced" }, "widgets_values": [] }, - { - "id": 121, - "type": "UnetLoaderGGUFDisTorch2MultiGPU", - "pos": [ - 2627.078125, - -58.38229751586914 - ], - "size": [ - 335.6441345214844, - 154 - ], - "flags": {}, - "order": 5, - "mode": 0, - "inputs": [], - "outputs": [ - { - "name": "MODEL", - "type": "MODEL", - "links": [ - 157, - 158 - ] - } - ], - "properties": { - "Node name for S&R": "UnetLoaderGGUFDisTorch2MultiGPU" - }, - "widgets_values": [ - "hunyuan-video-t2v-720p-Q8_0.gguf", - "cuda:0", - 8, - "cpu", - "" - ], - "color": "#233", - "bgcolor": "#355" - }, { "id": 120, "type": "DualCLIPLoaderGGUFMultiGPU", "pos": [ - 2629.646484375, - 143.52830505371094 + 2600.616455078125, + 79.9447250366211 ], "size": [ 348.16229248046875, 130 ], "flags": {}, - "order": 6, + "order": 3, "mode": 0, "inputs": [], "outputs": [ @@ -615,6 +378,8 @@ } ], "properties": { + "cnr_id": "comfyui-multigpu", + "ver": "0d6dfc7524472943ba912a6ec3088757edba15c3", "Node name for S&R": "DualCLIPLoaderGGUFMultiGPU" }, "widgets_values": [ @@ -623,8 +388,271 @@ "hunyuan_video", "cpu" ], - "color": "#233", - "bgcolor": "#355" + "color": "#008181", + "bgcolor": "rgba(24,24,27,.9)" + }, + { + "id": 76, + "type": "VAELoaderMultiGPU", + "pos": [ + 2582.493408203125, + 273.3041076660156 + ], + "size": [ + 341.07464599609375, + 87.14057922363281 + ], + "flags": {}, + "order": 4, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "VAE", + "type": "VAE", + "slot_index": 0, + "links": [ + 99 + ] + } + ], + "properties": { + "cnr_id": "comfyui-multigpu", + "ver": "0d6dfc7524472943ba912a6ec3088757edba15c3", + "Node name for S&R": "VAELoaderMultiGPU" + }, + "widgets_values": [ + "hunyuan_video_vae_bf16.safetensors", + "cuda:1" + ], + "color": "#008181", + "bgcolor": "rgba(24,24,27,.9)" + }, + { + "id": 66, + "type": "BasicScheduler", + "pos": [ + 3250.771484375, + 41.81864929199219 + ], + "size": [ + 210, + 109.8011474609375 + ], + "flags": {}, + "order": 9, + "mode": 0, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 160 + } + ], + "outputs": [ + { + "name": "SIGMAS", + "type": "SIGMAS", + "links": [ + 90 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.64", + "Node name for S&R": "BasicScheduler" + }, + "widgets_values": [ + "simple", + 8, + 1 + ] + }, + { + "id": 123, + "type": "UnetLoaderGGUFDisTorchMultiGPU", + "pos": [ + 2600.939453125, + -143.72315979003906 + ], + "size": [ + 327.8580017089844, + 154 + ], + "flags": {}, + "order": 5, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "links": [ + 159, + 160 + ] + } + ], + "properties": { + "cnr_id": "comfyui-multigpu", + "ver": "0d6dfc7524472943ba912a6ec3088757edba15c3", + "Node name for S&R": "UnetLoaderGGUFDisTorchMultiGPU" + }, + "widgets_values": [ + "fast-hunyuan-video-t2v-720p-Q4_K_M.gguf", + "cuda:0", + 4, + true, + "" + ], + "color": "#008181", + "bgcolor": "rgba(24,24,27,.9)" + }, + { + "id": 122, + "type": "MarkdownNote", + "pos": [ + 1895.963134765625, + -237.00189208984375 + ], + "size": [ + 648.826904296875, + 649.345947265625 + ], + "flags": {}, + "order": 6, + "mode": 0, + "inputs": [], + "outputs": [], + "title": "ComfyUI-MultiGPU Note - THIS WORKFLOW IS DEPRECATED. USE DISTORCH2 NODES", + "properties": {}, + "widgets_values": [ + "###THIS WORKFLOW IS DEPRECATED. USE DISTORCH2 NODES\n\nA DisTorch Hunyuan Video workflow with GGUF UNet DisTorch to test Hunyuan Video integration. In this case we are using the DisTorch2 node to statically allocate approximately half of the main UNet model to the cpu.\n\n## Custom Node\n- [ComfyUI-GGUF](https://github.com/city96/ComfyUI-GGUF)\n- [ComfyUI-MultiGPU](https://github.com/pollockjj/ComfyUI-MultiGPU)\n```\nšŸ“‚ ComfyUI/\nā”œā”€ā”€ šŸ“‚ custom_nodes/\n│ ā”œā”€ā”€ šŸ“‚ ComfyUI-GGUF/\n│ ā”œā”€ā”€ šŸ“‚ ComfyUI-MultiGPU/\n```\n## Model links\n\n**Diffusion model**\n- [fast-hunyuan-video-t2v-720p-Q4_K_M.gguf](https://huggingface.co/city96/FastHunyuan-gguf/resolve/main/fast-hunyuan-video-t2v-720p-Q4_K_M.gguf)\n\n**CLIP**\n- [llava-llama-3-8B-v1_1-Q4_K_M.gguf](https://huggingface.co/city96/llava-llama-3-8b-v1_1-imat-gguf/resolve/main/llava-llama-3-8B-v1_1-Q4_K_M.gguf)\n\n**VAE**\n- [hunyuan_video_vae_bf16.safetensors](https://huggingface.co/Kijai/HunyuanVideo_comfy/resolve/main/hunyuan_video_vae_bf16.safetensors)\n\nModel Storage Location\n\n```\nšŸ“‚ ComfyUI/\nā”œā”€ā”€ šŸ“‚ models/\n│ ā”œā”€ā”€ šŸ“‚ clip/\n│ │ └── llava-llama-3-8B-v1_1-Q4_K_M.gguf\n│ │ └── clip_l.safetensors\n│ ā”œā”€ā”€ šŸ“‚ unet/\n│ │ ā”œā”€ā”€ fast-hunyuan-video-t2v-720p-Q4_K_M.gguf [🟩🟩🟩🟩🟪🟪🟪🟪🟪🟪]\n│ ā”œā”€ā”€ šŸ“‚ vae/\n│ │ └── hunyuan_video_vae_bf16.safetensors\n```\n\n```\nšŸ–„ļø Device Mapping\nā”œā”€ā”€ 🟢 cuda:0\n│ └── fast-hunyuan-video-t2v-720p-Q4_K_M.gguf [🟩🟩🟩🟩]\nā”œā”€ā”€ 🟣 cuda:1\n│ └── fast-hunyuan-video-t2v-720p-Q4_K_M.gguf [🟪🟪🟪🟪🟪🟪]\n│ └── qwen_image_vae.safetensors\nā”œā”€ā”€ āš™ļø cpu\n └── llava-llama-3-8B-v1_1-Q4_K_M.gguf\n └── clip_l.safetensors\n```" + ], + "color": "#008181", + "bgcolor": "rgba(24,24,27,.9)" + }, + { + "id": 67, + "type": "CLIPTextEncode", + "pos": [ + 2989.010986328125, + -159.98072814941406 + ], + "size": [ + 462.5758972167969, + 155.9339599609375 + ], + "flags": {}, + "order": 7, + "mode": 0, + "inputs": [ + { + "name": "clip", + "type": "CLIP", + "link": 156 + } + ], + "outputs": [ + { + "name": "CONDITIONING", + "type": "CONDITIONING", + "slot_index": 0, + "links": [ + 83 + ] + } + ], + "title": "CLIP Text Encode (Positive Prompt)", + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.64", + "Node name for S&R": "CLIPTextEncode" + }, + "widgets_values": [ + "A neon blue-green frog with vibrant neon purple spots stares forward with its left eye moving subtly. The frog's skin is textured with small bumps, and its spots appear in irregular patterns across its head and face. The eye is round and black with a subtle shine. The head is slightly tilted to its left, and the body is barely visible. The background is a flat, solid deep blue color, extending beyond the frog in all directions. The overall lighting is bright and diffused, creating a soft appearance." + ], + "color": "#232", + "bgcolor": "#353" + }, + { + "id": 70, + "type": "VHS_VideoCombine", + "pos": [ + 3878.080810546875, + -565.3644409179688 + ], + "size": [ + 338.94024658203125, + 902.6787109375 + ], + "flags": {}, + "order": 14, + "mode": 0, + "inputs": [ + { + "name": "images", + "type": "IMAGE", + "link": 82 + }, + { + "name": "audio", + "shape": 7, + "type": "AUDIO", + "link": null + }, + { + "name": "meta_batch", + "shape": 7, + "type": "VHS_BatchManager", + "link": null + }, + { + "name": "vae", + "shape": 7, + "type": "VAE", + "link": null + } + ], + "outputs": [ + { + "name": "Filenames", + "type": "VHS_FILENAMES", + "links": null + } + ], + "properties": { + "cnr_id": "comfyui-videohelpersuite", + "ver": "08e8df15db24da292d4b7f943c460dc2ab442b24", + "Node name for S&R": "VHS_VideoCombine" + }, + "widgets_values": { + "frame_rate": 24, + "loop_count": 0, + "filename_prefix": "DisTorch", + "format": "video/h264-mp4", + "pix_fmt": "yuv420p", + "crf": 19, + "save_metadata": true, + "trim_to_audio": false, + "pingpong": false, + "save_output": true, + "videopreview": { + "hidden": false, + "paused": false, + "params": { + "filename": "DisTorch2_00003.mp4", + "subfolder": "", + "type": "output", + "format": "video/h264-mp4", + "frame_rate": 24, + "workflow": "DisTorch2_00003.png", + "fullpath": "/home/johnj/ComfyUI/output/DisTorch2_00003.mp4" + }, + "muted": false + } + } } ], "links": [ @@ -725,52 +753,38 @@ "CLIP" ], [ - 157, - 121, + 159, + 123, 0, 73, 0, "MODEL" ], [ - 158, - 121, + 160, + 123, 0, 66, 0, "MODEL" ] ], - "groups": [ - { - "id": 1, - "title": "GGUFDisTorchMultiGPU", - "bounding": [ - 2620.569091796875, - -121.6815185546875, - 360.4816589355469, - 537.903076171875 - ], - "color": "#8AA", - "font_size": 24, - "flags": {} - } - ], + "groups": [], "config": {}, "extra": { "ds": { - "scale": 1.167184107045179, + "scale": 0.8769226950001346, "offset": [ - -2141.8625685908787, - 473.0554876075415 + -2364.1344798750674, + 831.4510265639095 ] }, + "frontendVersion": "1.27.10", "ue_links": [], "VHS_latentpreview": false, "VHS_latentpreviewrate": 0, "VHS_MetadataImage": true, - "VHS_KeepIntermediate": true, - "frontendVersion": "1.24.4" + "VHS_KeepIntermediate": true }, "version": 0.4 } \ No newline at end of file diff --git a/example_workflows/ltxvideo checkpointloadersimple distorch2.jpg b/example_workflows/ltxvideo checkpointloadersimple distorch2.jpg new file mode 100755 index 0000000..2ca3ff7 Binary files /dev/null and b/example_workflows/ltxvideo checkpointloadersimple distorch2.jpg differ diff --git a/example_workflows/distorch2/ltxv_text_to_video_MultiGPU.json b/example_workflows/ltxvideo checkpointloadersimple distorch2.json similarity index 53% rename from example_workflows/distorch2/ltxv_text_to_video_MultiGPU.json rename to example_workflows/ltxvideo checkpointloadersimple distorch2.json index f572450..dd3781a 100755 --- a/example_workflows/distorch2/ltxv_text_to_video_MultiGPU.json +++ b/example_workflows/ltxvideo checkpointloadersimple distorch2.json @@ -1,49 +1,86 @@ { - "id": "b0f0352b-75f9-4187-87f8-d352fe46227e", + "id": "2a11ea9c-4fb7-40c8-91e5-4da8cf6a3e2c", "revision": 0, - "last_node_id": 79, - "last_link_id": 186, + "last_node_id": 98, + "last_link_id": 255, "nodes": [ { - "id": 8, - "type": "VAEDecode", + "id": 71, + "type": "LTXVScheduler", "pos": [ - 1600, - 30 + 880, + 290 ], "size": [ - 210, - 46 + 315, + 154 ], "flags": {}, "order": 10, "mode": 0, "inputs": [ { - "name": "samples", + "name": "latent", + "shape": 7, "type": "LATENT", - "link": 171 - }, - { - "name": "vae", - "type": "VAE", - "link": 184 + "link": 249 } ], "outputs": [ { - "name": "IMAGE", - "type": "IMAGE", + "name": "SIGMAS", + "type": "SIGMAS", "slot_index": 0, "links": [ - 106 + 182 ] } ], "properties": { - "Node name for S&R": "VAEDecode" + "cnr_id": "comfy-core", + "ver": "0.3.64", + "Node name for S&R": "LTXVScheduler" }, - "widgets_values": [] + "widgets_values": [ + 30, + 2.05, + 0.95, + true, + 0.1 + ] + }, + { + "id": 73, + "type": "KSamplerSelect", + "pos": [ + 880, + 190 + ], + "size": [ + 315, + 58 + ], + "flags": {}, + "order": 0, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "SAMPLER", + "type": "SAMPLER", + "links": [ + 172 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.64", + "Node name for S&R": "KSamplerSelect" + }, + "widgets_values": [ + "euler" + ] }, { "id": 69, @@ -57,18 +94,18 @@ 78 ], "flags": {}, - "order": 8, + "order": 9, "mode": 0, "inputs": [ { "name": "positive", "type": "CONDITIONING", - "link": 169 + "link": 245 }, { "name": "negative", "type": "CONDITIONING", - "link": 170 + "link": 246 } ], "outputs": [ @@ -77,7 +114,7 @@ "type": "CONDITIONING", "slot_index": 0, "links": [ - 166 + 199 ] }, { @@ -90,12 +127,54 @@ } ], "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.64", "Node name for S&R": "LTXVConditioning" }, "widgets_values": [ 25 ] }, + { + "id": 82, + "type": "LTXVPreprocess", + "pos": [ + 570, + 670 + ], + "size": [ + 275.9266662597656, + 58 + ], + "flags": {}, + "order": 7, + "mode": 0, + "inputs": [ + { + "name": "image", + "type": "IMAGE", + "link": 226 + } + ], + "outputs": [ + { + "name": "output_image", + "type": "IMAGE", + "slot_index": 0, + "links": [ + 248 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.64", + "Node name for S&R": "LTXVPreprocess" + }, + "widgets_values": [ + 40 + ] + }, { "id": 72, "type": "SamplerCustom", @@ -108,18 +187,18 @@ 442 ], "flags": {}, - "order": 9, + "order": 11, "mode": 0, "inputs": [ { "name": "model", "type": "MODEL", - "link": 183 + "link": 251 }, { "name": "positive", "type": "CONDITIONING", - "link": 166 + "link": 199 }, { "name": "negative", @@ -139,7 +218,7 @@ { "name": "latent_image", "type": "LATENT", - "link": 175 + "link": 247 } ], "outputs": [ @@ -148,7 +227,7 @@ "type": "LATENT", "slot_index": 0, "links": [ - 171 + 235 ] }, { @@ -158,320 +237,114 @@ } ], "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.64", "Node name for S&R": "SamplerCustom" }, "widgets_values": [ true, - 1032748596967060, + 871180669305010, "randomize", 3 ] }, { - "id": 70, - "type": "EmptyLTXVLatentVideo", + "id": 95, + "type": "LTXVImgToVideo", "pos": [ - 860, - 240 + 888.8251342773438, + 608.7010498046875 ], "size": [ 315, - 130 + 214 ], "flags": {}, - "order": 0, + "order": 8, "mode": 0, - "inputs": [], + "inputs": [ + { + "name": "positive", + "type": "CONDITIONING", + "link": 239 + }, + { + "name": "negative", + "type": "CONDITIONING", + "link": 240 + }, + { + "name": "vae", + "type": "VAE", + "link": 252 + }, + { + "name": "image", + "type": "IMAGE", + "link": 248 + } + ], "outputs": [ { - "name": "LATENT", - "type": "LATENT", + "name": "positive", + "type": "CONDITIONING", "slot_index": 0, "links": [ - 168, - 175 + 245 + ] + }, + { + "name": "negative", + "type": "CONDITIONING", + "slot_index": 1, + "links": [ + 246 + ] + }, + { + "name": "latent", + "type": "LATENT", + "slot_index": 2, + "links": [ + 247, + 249 ] } ], "properties": { - "Node name for S&R": "EmptyLTXVLatentVideo" + "cnr_id": "comfy-core", + "ver": "0.3.64", + "Node name for S&R": "LTXVImgToVideo" }, "widgets_values": [ - 768, 512, + 768, 97, + 1, 1 ] }, { - "id": 71, - "type": "LTXVScheduler", + "id": 96, + "type": "CheckpointLoaderSimpleDisTorch2MultiGPU", "pos": [ - 856, - 531 + 443.546875, + -209.70184326171875 ], "size": [ - 315, - 154 - ], - "flags": {}, - "order": 5, - "mode": 0, - "inputs": [ - { - "name": "latent", - "shape": 7, - "type": "LATENT", - "link": 168 - } - ], - "outputs": [ - { - "name": "SIGMAS", - "type": "SIGMAS", - "slot_index": 0, - "links": [ - 182 - ] - } - ], - "properties": { - "Node name for S&R": "LTXVScheduler" - }, - "widgets_values": [ - 30, - 2.05, - 0.95, - true, - 0.1 - ] - }, - { - "id": 7, - "type": "CLIPTextEncode", - "pos": [ - 420, - 390 - ], - "size": [ - 425.27801513671875, - 180.6060791015625 - ], - "flags": {}, - "order": 7, - "mode": 0, - "inputs": [ - { - "name": "clip", - "type": "CLIP", - "link": 186 - } - ], - "outputs": [ - { - "name": "CONDITIONING", - "type": "CONDITIONING", - "slot_index": 0, - "links": [ - 170 - ] - } - ], - "title": "CLIP Text Encode (Negative Prompt)", - "properties": { - "Node name for S&R": "CLIPTextEncode" - }, - "widgets_values": [ - "low quality, worst quality, deformed, distorted, disfigured, motion smear, motion artifacts, fused fingers, bad anatomy, weird hand, ugly" - ], - "color": "#322", - "bgcolor": "#533" - }, - { - "id": 73, - "type": "KSamplerSelect", - "pos": [ - 860, - 420 - ], - "size": [ - 315, - 58 + 378.4644470214844, + 218 ], "flags": {}, "order": 1, "mode": 0, "inputs": [], - "outputs": [ - { - "name": "SAMPLER", - "type": "SAMPLER", - "links": [ - 172 - ] - } - ], - "properties": { - "Node name for S&R": "KSamplerSelect" - }, - "widgets_values": [ - "euler" - ] - }, - { - "id": 76, - "type": "Note", - "pos": [ - 40, - 350 - ], - "size": [ - 360, - 200 - ], - "flags": {}, - "order": 2, - "mode": 0, - "inputs": [], - "outputs": [], - "properties": {}, - "widgets_values": [ - "This model needs long descriptive prompts, if the prompt is too short the quality will suffer greatly." - ], - "color": "#432", - "bgcolor": "#653" - }, - { - "id": 41, - "type": "SaveAnimatedWEBP", - "pos": [ - 1830, - 30 - ], - "size": [ - 680, - 610 - ], - "flags": {}, - "order": 11, - "mode": 0, - "inputs": [ - { - "name": "images", - "type": "IMAGE", - "link": 106 - } - ], - "outputs": [], - "properties": { - "Node name for S&R": "SaveAnimatedWEBP" - }, - "widgets_values": [ - "ComfyUI", - 24, - false, - 90, - "default" - ] - }, - { - "id": 6, - "type": "CLIPTextEncode", - "pos": [ - 420, - 190 - ], - "size": [ - 422.84503173828125, - 164.31304931640625 - ], - "flags": {}, - "order": 6, - "mode": 0, - "inputs": [ - { - "name": "clip", - "type": "CLIP", - "link": 185 - } - ], - "outputs": [ - { - "name": "CONDITIONING", - "type": "CONDITIONING", - "slot_index": 0, - "links": [ - 169 - ] - } - ], - "title": "CLIP Text Encode (Positive Prompt)", - "properties": { - "Node name for S&R": "CLIPTextEncode" - }, - "widgets_values": [ - "A towering technological monolith in a cyberpunk cityscape at night, with alien letters emblazoned across its surface in massive neon blue-green mixed with purple letters that illuminate the surrounding buildings. The text occupies the central third of the frame, crafted from glowing plasma tubes and crackling energy. Rain-slicked streets below reflect the brilliant signage, while holographic advertisements and flying vehicles populate the background. Moody atmospheric lighting, heavy contrast, photorealistic textures, cinematic color grading." - ], - "color": "#232", - "bgcolor": "#353" - }, - { - "id": 79, - "type": "CLIPLoaderMultiGPU", - "pos": [ - 46.40668487548828, - 190.66615295410156 - ], - "size": [ - 342.5956115722656, - 107.56124114990234 - ], - "flags": {}, - "order": 3, - "mode": 0, - "inputs": [], - "outputs": [ - { - "name": "CLIP", - "type": "CLIP", - "links": [ - 185, - 186 - ] - } - ], - "properties": { - "Node name for S&R": "CLIPLoaderMultiGPU" - }, - "widgets_values": [ - "t5xxl_fp16.safetensors", - "ltxv", - "cuda:1" - ], - "color": "#233", - "bgcolor": "#355" - }, - { - "id": 78, - "type": "CheckpointLoaderSimpleDisTorch2MultiGPU", - "pos": [ - 451.5371398925781, - -91.12973022460938 - ], - "size": [ - 378.4644470214844, - 194 - ], - "flags": {}, - "order": 4, - "mode": 0, - "inputs": [], "outputs": [ { "name": "MODEL", "type": "MODEL", "links": [ - 183 + 251 ] }, { @@ -483,22 +356,292 @@ "name": "VAE", "type": "VAE", "links": [ - 184 + 252, + 253 ] } ], "properties": { + "cnr_id": "comfyui-multigpu", + "ver": "0d6dfc7524472943ba912a6ec3088757edba15c3", "Node name for S&R": "CheckpointLoaderSimpleDisTorch2MultiGPU" }, "widgets_values": [ - "safetensor_testing/ltx-video-2b-v0.9.1.safetensors", + "ltx-video-2b-v0.9.5.safetensors", "cuda:0", - 4, - "cpu", - "" + 5, + "cuda:1", + "", + true ], - "color": "#233", - "bgcolor": "#355" + "color": "#008181", + "bgcolor": "rgba(24,24,27,.9)" + }, + { + "id": 6, + "type": "CLIPTextEncode", + "pos": [ + 446.0032653808594, + 56.484344482421875 + ], + "size": [ + 422.84503173828125, + 164.31304931640625 + ], + "flags": {}, + "order": 5, + "mode": 0, + "inputs": [ + { + "name": "clip", + "type": "CLIP", + "link": 254 + } + ], + "outputs": [ + { + "name": "CONDITIONING", + "type": "CONDITIONING", + "slot_index": 0, + "links": [ + 239 + ] + } + ], + "title": "CLIP Text Encode (Positive Prompt)", + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.64", + "Node name for S&R": "CLIPTextEncode" + }, + "widgets_values": [ + "The sun, having just dipped below the horizon, casts a deep twilight blue across the urban canyon. The air is thick with the hush of the approaching night, punctuated only by the distant hum of the city. A gentle drizzle has just passed, leaving the asphalt slick and reflective, mirroring the neon glow from the towering buildings.\n\nIn the foreground, the street stretches out, a dark ribbon reflecting the faint reds and purples of brake lights and storefronts. Small puddles shimmer, disturbed only by the occasional ripple from a lingering raindrop or the almost imperceptible air current.\n\nAs the 3 seconds pass, a barely noticeable shift occurs. The light in the sky ever so subtly deepens, transitioning from a soft, almost ethereal blue to a richer, more profound indigo. The neon signs, which were already bright, seem to gain a fractional intensity, their colors bleeding slightly more vividly onto the wet pavement below. The faint glint on the parked cars, particularly the red one, catches the ambient light just a touch more, highlighting the curves of its wet surface.\n\nIt's a moment of serene transition, a quiet breath as the city fully embraces the night, its artificial lights beginning their nightly dominance against the fading natural world." + ], + "color": "#232", + "bgcolor": "#353" + }, + { + "id": 7, + "type": "CLIPTextEncode", + "pos": [ + 439.50244140625, + 262.1505432128906 + ], + "size": [ + 425.27801513671875, + 180.6060791015625 + ], + "flags": {}, + "order": 6, + "mode": 0, + "inputs": [ + { + "name": "clip", + "type": "CLIP", + "link": 255 + } + ], + "outputs": [ + { + "name": "CONDITIONING", + "type": "CONDITIONING", + "slot_index": 0, + "links": [ + 240 + ] + } + ], + "title": "CLIP Text Encode (Negative Prompt)", + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.64", + "Node name for S&R": "CLIPTextEncode" + }, + "widgets_values": [ + "low quality, worst quality, deformed, distorted, disfigured, motion smear, motion artifacts, fused fingers, bad anatomy, weird hand, ugly" + ], + "color": "#322", + "bgcolor": "#533" + }, + { + "id": 97, + "type": "CLIPLoaderMultiGPU", + "pos": [ + 496.30120849609375, + 485.4229431152344 + ], + "size": [ + 270, + 106 + ], + "flags": {}, + "order": 2, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "CLIP", + "type": "CLIP", + "links": [ + 254, + 255 + ] + } + ], + "properties": { + "cnr_id": "comfyui-multigpu", + "ver": "0d6dfc7524472943ba912a6ec3088757edba15c3", + "Node name for S&R": "CLIPLoaderMultiGPU" + }, + "widgets_values": [ + "t5xxl_fp16.safetensors", + "ltxv", + "cuda:1" + ], + "color": "#008181", + "bgcolor": "rgba(24,24,27,.9)" + }, + { + "id": 8, + "type": "VAEDecode", + "pos": [ + 1291.988037109375, + 517.429443359375 + ], + "size": [ + 210, + 46 + ], + "flags": {}, + "order": 12, + "mode": 0, + "inputs": [ + { + "name": "samples", + "type": "LATENT", + "link": 235 + }, + { + "name": "vae", + "type": "VAE", + "link": 253 + } + ], + "outputs": [ + { + "name": "IMAGE", + "type": "IMAGE", + "slot_index": 0, + "links": [ + 106 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.64", + "Node name for S&R": "VAEDecode" + }, + "widgets_values": [] + }, + { + "id": 41, + "type": "SaveAnimatedWEBP", + "pos": [ + 1580.6339111328125, + 44.42099380493164 + ], + "size": [ + 493.98468017578125, + 886.97705078125 + ], + "flags": {}, + "order": 13, + "mode": 0, + "inputs": [ + { + "name": "images", + "type": "IMAGE", + "link": 106 + } + ], + "outputs": [], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.64", + "Node name for S&R": "SaveAnimatedWEBP" + }, + "widgets_values": [ + "MultiGPU", + 25, + false, + 90, + "default" + ] + }, + { + "id": 98, + "type": "MarkdownNote", + "pos": [ + -244.6554412841797, + -139.60447692871094 + ], + "size": [ + 648.826904296875, + 649.345947265625 + ], + "flags": {}, + "order": 3, + "mode": 0, + "inputs": [], + "outputs": [], + "title": "ComfyUI-MultiGPU Note - CheckpointLoaderSimpleDisTorch2", + "properties": {}, + "widgets_values": [ + "An LTXVideo workflow using a simple UNet DisTorch to test the CheckpointLoaderSimpleDisTorch2 node. In this case we are using the DisTorch2 node to statically allocate 100% of the main UNet model on to the second video card, `cuda:1`.\n\n## Custom Node\n- [ComfyUI-MultiGPU](https://github.com/pollockjj/ComfyUI-MultiGPU)\n```\nšŸ“‚ ComfyUI/\nā”œā”€ā”€ šŸ“‚ custom_nodes/\n│ ā”œā”€ā”€ šŸ“‚ ComfyUI-MultiGPU/\n```\n## Model links\n\n**Checkpoint**\n- [ltx-video-2b-v0.9.5.safetensors](https://huggingface.co/Lightricks/LTX-Video/blob/main/ltx-video-2b-v0.9.5.safetensors)\n\n**CLIP**\n- [t5xxl_fp16.safetensors](https://huggingface.co/Comfy-Org/mochi_preview_repackaged/blob/main/split_files/text_encoders/t5xxl_fp16.safetensors)\n\nModel Storage Location\n\n```\nšŸ“‚ ComfyUI/\nā”œā”€ā”€ šŸ“‚ models/\n│ ā”œā”€ā”€ šŸ“‚ checkpoints/\n│ │ ā”œā”€ā”€ ltx-video-2b-v0.9.5.safetensors[🟪🟪🟪🟪🟪🟪🟪🟪🟪🟪]\n│ ā”œā”€ā”€ šŸ“‚ clip/\n│ │ └── t5xxl_fp16.safetensors\n```\n\n```\nšŸ–„ļø Device Mapping\nā”œā”€ā”€ 🟢 cuda:0\n│ └── ltx-video-2b-v0.9.5.safetensors[]\nā”œā”€ā”€ 🟣 cuda:1\n│ └── ltx-video-2b-v0.9.5.safetensors[🟪🟪🟪🟪🟪🟪🟪🟪🟪🟪]\nā”œā”€ā”€ āš™ļø cpu\n └── t5xxl_fp16.safetensors\n```" + ], + "color": "#008181", + "bgcolor": "rgba(24,24,27,.9)" + }, + { + "id": 78, + "type": "LoadImage", + "pos": [ + 143.64366149902344, + 649.3419189453125 + ], + "size": [ + 385.15606689453125, + 333.3305358886719 + ], + "flags": {}, + "order": 4, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "IMAGE", + "type": "IMAGE", + "slot_index": 0, + "links": [ + 226 + ] + }, + { + "name": "MASK", + "type": "MASK", + "links": null + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.64", + "Node name for S&R": "LoadImage" + }, + "widgets_values": [ + "ltxvideo checkpointloadersimple distorch2.jpg", + "image" + ] } ], "links": [ @@ -510,14 +653,6 @@ 0, "IMAGE" ], - [ - 166, - 69, - 0, - 72, - 1, - "CONDITIONING" - ], [ 167, 69, @@ -526,38 +661,6 @@ 2, "CONDITIONING" ], - [ - 168, - 70, - 0, - 71, - 0, - "LATENT" - ], - [ - 169, - 6, - 0, - 69, - 0, - "CONDITIONING" - ], - [ - 170, - 7, - 0, - 69, - 1, - "CONDITIONING" - ], - [ - 171, - 72, - 0, - 8, - 0, - "LATENT" - ], [ 172, 73, @@ -566,14 +669,6 @@ 3, "SAMPLER" ], - [ - 175, - 70, - 0, - 72, - 5, - "LATENT" - ], [ 182, 71, @@ -583,32 +678,120 @@ "SIGMAS" ], [ - 183, + 199, + 69, + 0, + 72, + 1, + "CONDITIONING" + ], + [ + 226, 78, 0, + 82, + 0, + "IMAGE" + ], + [ + 235, + 72, + 0, + 8, + 0, + "LATENT" + ], + [ + 239, + 6, + 0, + 95, + 0, + "CONDITIONING" + ], + [ + 240, + 7, + 0, + 95, + 1, + "CONDITIONING" + ], + [ + 245, + 95, + 0, + 69, + 0, + "CONDITIONING" + ], + [ + 246, + 95, + 1, + 69, + 1, + "CONDITIONING" + ], + [ + 247, + 95, + 2, + 72, + 5, + "LATENT" + ], + [ + 248, + 82, + 0, + 95, + 3, + "IMAGE" + ], + [ + 249, + 95, + 2, + 71, + 0, + "LATENT" + ], + [ + 251, + 96, + 0, 72, 0, "MODEL" ], [ - 184, - 78, + 252, + 96, + 2, + 95, + 2, + "VAE" + ], + [ + 253, + 96, 2, 8, 1, "VAE" ], [ - 185, - 79, + 254, + 97, 0, 6, 0, "CLIP" ], [ - 186, - 79, + 255, + 97, 0, 7, 0, @@ -619,13 +802,13 @@ "config": {}, "extra": { "ds": { - "scale": 0.8540461847389561, + "scale": 0.8390545288824128, "offset": [ - 49.21647341090857, - 425.22565245368656 + 415.0195744565383, + 355.7565473217434 ] }, - "frontendVersion": "1.24.4", + "frontendVersion": "1.27.10", "VHS_latentpreview": false, "VHS_latentpreviewrate": 0, "VHS_MetadataImage": true, diff --git a/example_workflows/mochi checkpointloaderadvanced distorch2.jpg b/example_workflows/mochi checkpointloaderadvanced distorch2.jpg new file mode 100755 index 0000000..3cf9c23 Binary files /dev/null and b/example_workflows/mochi checkpointloaderadvanced distorch2.jpg differ diff --git a/example_workflows/distorch2/default_advanced_DisTorch2.json b/example_workflows/mochi checkpointloaderadvanced distorch2.json similarity index 53% rename from example_workflows/distorch2/default_advanced_DisTorch2.json rename to example_workflows/mochi checkpointloaderadvanced distorch2.json index 1993039..e5a9a8f 100755 --- a/example_workflows/distorch2/default_advanced_DisTorch2.json +++ b/example_workflows/mochi checkpointloaderadvanced distorch2.json @@ -1,8 +1,8 @@ { - "id": "d21a2457-c2bf-4733-b2e9-42352b1dd20d", + "id": "c76df118-f3eb-4efa-93d1-18626df4f016", "revision": 0, - "last_node_id": 11, - "last_link_id": 17, + "last_node_id": 44, + "last_link_id": 87, "nodes": [ { "id": 7, @@ -16,13 +16,13 @@ 180.6060791015625 ], "flags": {}, - "order": 3, + "order": 4, "mode": 0, "inputs": [ { "name": "clip", "type": "CLIP", - "link": 16 + "link": 87 } ], "outputs": [ @@ -31,15 +31,17 @@ "type": "CONDITIONING", "slot_index": 0, "links": [ - 6 + 52 ] } ], "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.64", "Node name for S&R": "CLIPTextEncode" }, "widgets_values": [ - "text, watermark" + "" ] }, { @@ -47,35 +49,35 @@ "type": "KSampler", "pos": [ 863, - 186 + 187 ], "size": [ 315, 474 ], "flags": {}, - "order": 4, + "order": 5, "mode": 0, "inputs": [ { "name": "model", "type": "MODEL", - "link": 14 + "link": 86 }, { "name": "positive", "type": "CONDITIONING", - "link": 4 + "link": 46 }, { "name": "negative", "type": "CONDITIONING", - "link": 6 + "link": 52 }, { "name": "latent_image", "type": "LATENT", - "link": 2 + "link": 38 } ], "outputs": [ @@ -84,124 +86,22 @@ "type": "LATENT", "slot_index": 0, "links": [ - 7 + 35 ] } ], "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.64", "Node name for S&R": "KSampler" }, "widgets_values": [ - 262971817904402, + 363535877769015, "randomize", - 20, - 8, + 30, + 4.5, "euler", - "normal", - 1 - ] - }, - { - "id": 8, - "type": "VAEDecode", - "pos": [ - 1209, - 188 - ], - "size": [ - 210, - 46 - ], - "flags": {}, - "order": 5, - "mode": 0, - "inputs": [ - { - "name": "samples", - "type": "LATENT", - "link": 7 - }, - { - "name": "vae", - "type": "VAE", - "link": 17 - } - ], - "outputs": [ - { - "name": "IMAGE", - "type": "IMAGE", - "slot_index": 0, - "links": [ - 9 - ] - } - ], - "properties": { - "Node name for S&R": "VAEDecode" - }, - "widgets_values": [] - }, - { - "id": 9, - "type": "SaveImage", - "pos": [ - 1451, - 189 - ], - "size": [ - 797.607666015625, - 781.645263671875 - ], - "flags": {}, - "order": 6, - "mode": 0, - "inputs": [ - { - "name": "images", - "type": "IMAGE", - "link": 9 - } - ], - "outputs": [], - "properties": { - "Node name for S&R": "SaveImage" - }, - "widgets_values": [ - "ComfyUI" - ] - }, - { - "id": 5, - "type": "EmptyLatentImage", - "pos": [ - 473, - 609 - ], - "size": [ - 315, - 106 - ], - "flags": {}, - "order": 0, - "mode": 0, - "inputs": [], - "outputs": [ - { - "name": "LATENT", - "type": "LATENT", - "slot_index": 0, - "links": [ - 2 - ] - } - ], - "properties": { - "Node name for S&R": "EmptyLatentImage" - }, - "widgets_values": [ - 1024, - 1024, + "simple", 1 ] }, @@ -217,13 +117,13 @@ 164.31304931640625 ], "flags": {}, - "order": 2, + "order": 3, "mode": 0, "inputs": [ { "name": "clip", "type": "CLIP", - "link": 15 + "link": 84 } ], "outputs": [ @@ -232,23 +132,105 @@ "type": "CONDITIONING", "slot_index": 0, "links": [ - 4 + 46 ] } ], "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.64", "Node name for S&R": "CLIPTextEncode" }, "widgets_values": [ - "A towering technological monolith in a cyberpunk cityscape at night, with \"DisTorch 2\" emblazoned across its surface in massive neon blue-green mixed with purple letters that illuminate the surrounding buildings. The text occupies the central third of the frame, crafted from glowing plasma tubes and crackling energy. Rain-slicked streets below reflect the brilliant signage, while holographic advertisements and flying vehicles populate the background. Moody atmospheric lighting, heavy contrast, photorealistic textures, cinematic color grading. \"Now for .safetensors!\" in same stying but smaller font as a splash overlay in the right-hand corner of the image " + "A neon blue-green frog with vibrant neon purple spots stares forward with its left eye moving subtly. The frog's skin is textured with small bumps, and its spots appear in irregular patterns across its head and face. The eye is round and black with a subtle shine. The head is slightly tilted to its left, and the body is barely visible. The background is a flat, solid deep blue color, extending beyond the frog in all directions. The camera zooms in slowly on the frog's eye and the frog looks directly at the viewer. The overall lighting is bright and diffused, creating a soft appearance." ] }, { - "id": 11, + "id": 21, + "type": "EmptyMochiLatentVideo", + "pos": [ + 478.55859375, + 635.787353515625 + ], + "size": [ + 315, + 130 + ], + "flags": {}, + "order": 0, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "LATENT", + "type": "LATENT", + "slot_index": 0, + "links": [ + 38 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.64", + "Node name for S&R": "EmptyMochiLatentVideo" + }, + "widgets_values": [ + 848, + 480, + 25, + 1 + ] + }, + { + "id": 8, + "type": "VAEDecode", + "pos": [ + 898.748046875, + 704.1561279296875 + ], + "size": [ + 210, + 46 + ], + "flags": {}, + "order": 6, + "mode": 0, + "inputs": [ + { + "name": "samples", + "type": "LATENT", + "link": 35 + }, + { + "name": "vae", + "type": "VAE", + "link": 85 + } + ], + "outputs": [ + { + "name": "IMAGE", + "type": "IMAGE", + "slot_index": 0, + "links": [ + 56 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.64", + "Node name for S&R": "VAEDecode" + }, + "widgets_values": [] + }, + { + "id": 44, "type": "CheckpointLoaderAdvancedDisTorch2MultiGPU", "pos": [ - -135.86851501464844, - 203.48403930664062 + -1.363607406616211, + 200.74766540527344 ], "size": [ 397.9400329589844, @@ -263,32 +245,34 @@ "name": "MODEL", "type": "MODEL", "links": [ - 14 + 86 ] }, { "name": "CLIP", "type": "CLIP", "links": [ - 15, - 16 + 84, + 87 ] }, { "name": "VAE", "type": "VAE", "links": [ - 17 + 85 ] } ], "properties": { + "cnr_id": "comfyui-multigpu", + "ver": "0d6dfc7524472943ba912a6ec3088757edba15c3", "Node name for S&R": "CheckpointLoaderAdvancedDisTorch2MultiGPU" }, "widgets_values": [ - "Juggernaut-XL_v9_RunDiffusionPhoto_v2.safetensors", + "mochi_preview_fp8_scaled.safetensors", "cuda:0", - 1.1, + 5, "cpu", "cuda:1", 2, @@ -298,21 +282,88 @@ "", true ], - "color": "#233", - "bgcolor": "#355" + "color": "#008181", + "bgcolor": "rgba(24,24,27,.9)" + }, + { + "id": 41, + "type": "MarkdownNote", + "pos": [ + -570.2321166992188, + 151.1495361328125 + ], + "size": [ + 542.65576171875, + 531.9367065429688 + ], + "flags": {}, + "order": 2, + "mode": 0, + "inputs": [], + "outputs": [], + "title": "ComfyUI-MultiGPU - CheckpointLoaderAdvancedDisTorch2MultiGPU", + "properties": {}, + "widgets_values": [ + "A mochi all-in-one checkpoint to test ComfyUI-MultiGPU CheckpointLoaderAdvancedDisTorch2 functionality. In this case we are offloading 45% of the UNet, 55% of the CLIP, and assigning the VAE device independently\n## Custom Node\n\n- [ComfyUI-MultiGPU](https://github.com/pollockjj/ComfyUI-MultiGPU)\n```\nšŸ“‚ ComfyUI/\nā”œā”€ā”€ šŸ“‚ custom_nodes/\n│ ā”œā”€ā”€ šŸ“‚ ComfyUI-MultiGPU/\n```\n## Model links\n\n**checkpoints**\n\n - [mochi_preview_fp8_scaled.safetensors](https://huggingface.co/Comfy-Org/mochi_preview_repackaged/blob/main/all_in_one/mochi_preview_fp8_scaled.safetensors) \n\n```\nšŸ“‚ ComfyUI/\nā”œā”€ šŸ“‚ models/\n│ ā”œā”€ šŸ“‚ checkpoints/\n│ │ └── mochi_preview_fp8_scaled.safetensors [šŸŸ©šŸŸ©šŸŸ©šŸŸŖšŸŸŖāš™ļøāš™ļøāš™ļøāš™ļøāš™ļø]\n```\n## Device Mapping (Example: Two GPUs, 1 CPU)\n```\nšŸ–„ļø system \nā”œā”€ā”€ 🟢 cuda:0\n│ └── mochi_preview_fp8_scaled.safetensors - UNet [ 🟩🟩🟩]\nā”œā”€ā”€ 🟣 cuda:1\n│ └── mochi_preview_fp8_scaled.safetensors - CLIP [🟪🟪]\n│ └── mochi_preview_fp8_scaled.safetensors - VAE\nā”œā”€ā”€ āš™ļø cpu\n └── mochi_preview_fp8_scaled.safetensors - UNET [āš™ļøāš™ļøāš™ļø]\n └── mochi_preview_fp8_scaled.safetensors - CLIP [āš™ļøāš™ļø]\n```" + ], + "color": "#008181", + "bgcolor": "rgba(24,24,27,.9)" + }, + { + "id": 28, + "type": "SaveAnimatedWEBP", + "pos": [ + 1216.383056640625, + 160.4508056640625 + ], + "size": [ + 847.3048706054688, + 625.6065673828125 + ], + "flags": {}, + "order": 7, + "mode": 0, + "inputs": [ + { + "name": "images", + "type": "IMAGE", + "link": 56 + } + ], + "outputs": [], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.64", + "Node name for S&R": "SaveAnimatedWEBP" + }, + "widgets_values": [ + "MultiGPU", + 24, + false, + 90, + "default" + ] } ], "links": [ [ - 2, - 5, + 35, + 3, + 0, + 8, + 0, + "LATENT" + ], + [ + 38, + 21, 0, 3, 3, "LATENT" ], [ - 4, + 46, 6, 0, 3, @@ -320,7 +371,7 @@ "CONDITIONING" ], [ - 6, + 52, 7, 0, 3, @@ -328,65 +379,57 @@ "CONDITIONING" ], [ - 7, - 3, - 0, + 56, 8, 0, - "LATENT" - ], - [ - 9, - 8, - 0, - 9, + 28, 0, "IMAGE" ], [ - 14, - 11, + 84, + 44, + 1, + 6, + 0, + "CLIP" + ], + [ + 85, + 44, + 2, + 8, + 1, + "VAE" + ], + [ + 86, + 44, 0, 3, 0, "MODEL" ], [ - 15, - 11, - 1, - 6, - 0, - "CLIP" - ], - [ - 16, - 11, + 87, + 44, 1, 7, 0, "CLIP" - ], - [ - 17, - 11, - 2, - 8, - 1, - "VAE" ] ], "groups": [], "config": {}, "extra": { "ds": { - "scale": 0.6593771753936349, + "scale": 0.8390545288824313, "offset": [ - 1007.5875606954307, - 245.85267454738732 + 575.1578342200211, + 87.97767931514372 ] }, - "frontendVersion": "1.25.11", + "frontendVersion": "1.27.10", "VHS_latentpreview": false, "VHS_latentpreviewrate": 0, "VHS_MetadataImage": true, diff --git a/example_workflows/multiGPU/sd15_2gpu_advanced.json b/example_workflows/multiGPU/sd15_2gpu_advanced.json deleted file mode 100755 index a3727f8..0000000 --- a/example_workflows/multiGPU/sd15_2gpu_advanced.json +++ /dev/null @@ -1,737 +0,0 @@ -{ - "id": "a6ee03c8-e601-4b33-87dc-64e9ed484de8", - "revision": 0, - "last_node_id": 26, - "last_link_id": 63, - "nodes": [ - { - "id": 2, - "type": "KSampler", - "pos": [ - 1235.140380859375, - -287.8480529785156 - ], - "size": [ - 295.7660217285156, - 474 - ], - "flags": {}, - "order": 7, - "mode": 0, - "inputs": [ - { - "name": "model", - "type": "MODEL", - "link": 35 - }, - { - "name": "positive", - "type": "CONDITIONING", - "link": 46 - }, - { - "name": "negative", - "type": "CONDITIONING", - "link": 59 - }, - { - "name": "latent_image", - "type": "LATENT", - "link": 9 - } - ], - "outputs": [ - { - "name": "LATENT", - "type": "LATENT", - "slot_index": 0, - "links": [ - 6, - 52 - ] - } - ], - "properties": { - "Node name for S&R": "KSampler" - }, - "widgets_values": [ - 5770521, - "fixed", - 20, - 8, - "dpmpp_2m_sde_gpu", - "karras", - 1 - ] - }, - { - "id": 21, - "type": "CLIPTextEncode", - "pos": [ - 937.1891479492188, - -240.19276428222656 - ], - "size": [ - 285.6000061035156, - 88 - ], - "flags": {}, - "order": 3, - "mode": 0, - "inputs": [ - { - "name": "clip", - "type": "CLIP", - "link": 54 - } - ], - "outputs": [ - { - "name": "CONDITIONING", - "type": "CONDITIONING", - "slot_index": 0, - "links": [ - 46 - ] - } - ], - "title": "CLIP Text Encode (Positive Prompt)", - "properties": { - "Node name for S&R": "CLIPTextEncode" - }, - "widgets_values": [ - "realistic photograph of a glass of wine, depth of field, bokeh" - ], - "color": "#232", - "bgcolor": "#353" - }, - { - "id": 24, - "type": "CLIPTextEncode", - "pos": [ - 946.2571411132812, - 271.57373046875 - ], - "size": [ - 285.6000061035156, - 88 - ], - "flags": {}, - "order": 5, - "mode": 0, - "inputs": [ - { - "name": "clip", - "type": "CLIP", - "link": 61 - } - ], - "outputs": [ - { - "name": "CONDITIONING", - "type": "CONDITIONING", - "slot_index": 0, - "links": [ - 56 - ] - } - ], - "title": "CLIP Text Encode (Positive Prompt)", - "properties": { - "Node name for S&R": "CLIPTextEncode" - }, - "widgets_values": [ - "realistic photograph of a glass of wine, depth of field, bokeh" - ], - "color": "#232", - "bgcolor": "#353" - }, - { - "id": 15, - "type": "VAEDecode", - "pos": [ - 1556.0386962890625, - 268.0700988769531 - ], - "size": [ - 210, - 46 - ], - "flags": { - "collapsed": false - }, - "order": 11, - "mode": 0, - "inputs": [ - { - "name": "samples", - "type": "LATENT", - "link": 22 - }, - { - "name": "vae", - "type": "VAE", - "link": 63 - } - ], - "outputs": [ - { - "name": "IMAGE", - "type": "IMAGE", - "slot_index": 0, - "links": [ - 53 - ] - } - ], - "properties": { - "Node name for S&R": "VAEDecode" - }, - "widgets_values": [] - }, - { - "id": 23, - "type": "SaveImage", - "pos": [ - 1796.7874755859375, - 243.16427612304688 - ], - "size": [ - 473.8890686035156, - 484.4914245605469 - ], - "flags": {}, - "order": 12, - "mode": 0, - "inputs": [ - { - "name": "images", - "type": "IMAGE", - "link": 53 - } - ], - "outputs": [], - "properties": { - "Node name for S&R": "SaveImage" - }, - "widgets_values": [ - "ComfyUI" - ] - }, - { - "id": 6, - "type": "PreviewImage", - "pos": [ - 1805.782958984375, - -291.3573303222656 - ], - "size": [ - 491.1799011230469, - 494.12640380859375 - ], - "flags": {}, - "order": 10, - "mode": 0, - "inputs": [ - { - "name": "images", - "type": "IMAGE", - "link": 7 - } - ], - "outputs": [], - "properties": { - "Node name for S&R": "PreviewImage" - }, - "widgets_values": [] - }, - { - "id": 5, - "type": "VAEDecode", - "pos": [ - 1592.0411376953125, - -260.3390808105469 - ], - "size": [ - 140, - 46 - ], - "flags": { - "collapsed": false - }, - "order": 8, - "mode": 0, - "inputs": [ - { - "name": "samples", - "type": "LATENT", - "link": 6 - }, - { - "name": "vae", - "type": "VAE", - "link": 36 - } - ], - "outputs": [ - { - "name": "IMAGE", - "type": "IMAGE", - "slot_index": 0, - "links": [ - 7 - ] - } - ], - "properties": { - "Node name for S&R": "VAEDecode" - }, - "widgets_values": [] - }, - { - "id": 12, - "type": "KSampler", - "pos": [ - 1255.6590576171875, - 244.5147705078125 - ], - "size": [ - 274.0234375, - 474.0000305175781 - ], - "flags": {}, - "order": 9, - "mode": 0, - "inputs": [ - { - "name": "model", - "type": "MODEL", - "link": 60 - }, - { - "name": "positive", - "type": "CONDITIONING", - "link": 56 - }, - { - "name": "negative", - "type": "CONDITIONING", - "link": 57 - }, - { - "name": "latent_image", - "type": "LATENT", - "link": 52 - } - ], - "outputs": [ - { - "name": "LATENT", - "type": "LATENT", - "slot_index": 0, - "links": [ - 22 - ] - } - ], - "properties": { - "Node name for S&R": "KSampler" - }, - "widgets_values": [ - 5770521, - "fixed", - 20, - 4, - "dpmpp_2m_sde_gpu", - "karras", - 0.5 - ] - }, - { - "id": 25, - "type": "CLIPTextEncode", - "pos": [ - 944.7369384765625, - -117.6661605834961 - ], - "size": [ - 285.6000061035156, - 76 - ], - "flags": { - "collapsed": false - }, - "order": 4, - "mode": 0, - "inputs": [ - { - "name": "clip", - "type": "CLIP", - "link": 58 - } - ], - "outputs": [ - { - "name": "CONDITIONING", - "type": "CONDITIONING", - "slot_index": 0, - "links": [ - 59 - ] - } - ], - "title": "CLIP Text Encode (Negative Prompt)", - "properties": { - "Node name for S&R": "CLIPTextEncode" - }, - "widgets_values": [ - "" - ], - "color": "#322", - "bgcolor": "#533" - }, - { - "id": 19, - "type": "CheckpointLoaderSimpleMultiGPU", - "pos": [ - 549.6911010742188, - -220.0397186279297 - ], - "size": [ - 378, - 122 - ], - "flags": {}, - "order": 0, - "mode": 0, - "inputs": [], - "outputs": [ - { - "name": "MODEL", - "type": "MODEL", - "slot_index": 0, - "links": [ - 35 - ] - }, - { - "name": "CLIP", - "type": "CLIP", - "slot_index": 1, - "links": [ - 54, - 58 - ] - }, - { - "name": "VAE", - "type": "VAE", - "slot_index": 2, - "links": [ - 36 - ] - } - ], - "properties": { - "Node name for S&R": "CheckpointLoaderSimpleMultiGPU" - }, - "widgets_values": [ - "safetensor_testing/realDream_15SD15.safetensors", - "cuda:0" - ], - "color": "#233", - "bgcolor": "#355" - }, - { - "id": 26, - "type": "CheckpointLoaderAdvancedMultiGPU", - "pos": [ - 558.9177856445312, - 261.31072998046875 - ], - "size": [ - 335.6988220214844, - 170 - ], - "flags": {}, - "order": 1, - "mode": 0, - "inputs": [], - "outputs": [ - { - "name": "MODEL", - "type": "MODEL", - "links": [ - 60 - ] - }, - { - "name": "CLIP", - "type": "CLIP", - "links": [ - 61, - 62 - ] - }, - { - "name": "VAE", - "type": "VAE", - "links": [ - 63 - ] - } - ], - "properties": { - "Node name for S&R": "CheckpointLoaderAdvancedMultiGPU" - }, - "widgets_values": [ - "safetensor_testing/realisticVisionV60B1_v51VAE.safetensors", - "cuda:0", - "cuda:1", - "cpu" - ], - "color": "#233", - "bgcolor": "#355" - }, - { - "id": 8, - "type": "EmptyLatentImage", - "pos": [ - 991.2929077148438, - -435.2230224609375 - ], - "size": [ - 210, - 106 - ], - "flags": {}, - "order": 2, - "mode": 0, - "inputs": [], - "outputs": [ - { - "name": "LATENT", - "type": "LATENT", - "links": [ - 9 - ] - } - ], - "properties": { - "Node name for S&R": "EmptyLatentImage" - }, - "widgets_values": [ - 1024, - 1024, - 1 - ] - }, - { - "id": 22, - "type": "CLIPTextEncode", - "pos": [ - 942.2822875976562, - 408.21136474609375 - ], - "size": [ - 285.6000061035156, - 98.24866485595703 - ], - "flags": { - "collapsed": false - }, - "order": 6, - "mode": 0, - "inputs": [ - { - "name": "clip", - "type": "CLIP", - "link": 62 - } - ], - "outputs": [ - { - "name": "CONDITIONING", - "type": "CONDITIONING", - "slot_index": 0, - "links": [ - 57 - ] - } - ], - "title": "CLIP Text Encode (Negative Prompt)", - "properties": { - "Node name for S&R": "CLIPTextEncode" - }, - "widgets_values": [ - "" - ], - "color": "#322", - "bgcolor": "#533" - } - ], - "links": [ - [ - 6, - 2, - 0, - 5, - 0, - "LATENT" - ], - [ - 7, - 5, - 0, - 6, - 0, - "IMAGE" - ], - [ - 9, - 8, - 0, - 2, - 3, - "LATENT" - ], - [ - 22, - 12, - 0, - 15, - 0, - "LATENT" - ], - [ - 35, - 19, - 0, - 2, - 0, - "MODEL" - ], - [ - 36, - 19, - 2, - 5, - 1, - "VAE" - ], - [ - 46, - 21, - 0, - 2, - 1, - "CONDITIONING" - ], - [ - 52, - 2, - 0, - 12, - 3, - "LATENT" - ], - [ - 53, - 15, - 0, - 23, - 0, - "IMAGE" - ], - [ - 54, - 19, - 1, - 21, - 0, - "CLIP" - ], - [ - 56, - 24, - 0, - 12, - 1, - "CONDITIONING" - ], - [ - 57, - 22, - 0, - 12, - 2, - "CONDITIONING" - ], - [ - 58, - 19, - 1, - 25, - 0, - "CLIP" - ], - [ - 59, - 25, - 0, - 2, - 2, - "CONDITIONING" - ], - [ - 60, - 26, - 0, - 12, - 0, - "MODEL" - ], - [ - 61, - 26, - 1, - 24, - 0, - "CLIP" - ], - [ - 62, - 26, - 1, - 22, - 0, - "CLIP" - ], - [ - 63, - 26, - 2, - 15, - 1, - "VAE" - ] - ], - "groups": [], - "config": {}, - "extra": { - "ds": { - "scale": 0.8769226950001169, - "offset": [ - -155.61337164905575, - 501.2042499363116 - ] - }, - "ue_links": [], - "VHS_latentpreview": false, - "VHS_latentpreviewrate": 0, - "frontendVersion": "1.25.11", - "VHS_MetadataImage": true, - "VHS_KeepIntermediate": true - }, - "version": 0.4 -} \ No newline at end of file diff --git a/example_workflows/multiGPU/sdxl_2gpu.json b/example_workflows/multiGPU/sdxl_2gpu.json deleted file mode 100644 index 6f357af..0000000 --- a/example_workflows/multiGPU/sdxl_2gpu.json +++ /dev/null @@ -1,738 +0,0 @@ -{ - "last_node_id": 25, - "last_link_id": 59, - "nodes": [ - { - "id": 5, - "type": "VAEDecode", - "pos": [ - 1592.0411376953125, - -260.3390808105469 - ], - "size": [ - 140, - 46 - ], - "flags": { - "collapsed": true - }, - "order": 8, - "mode": 0, - "inputs": [ - { - "name": "samples", - "type": "LATENT", - "link": 6 - }, - { - "name": "vae", - "type": "VAE", - "link": 36 - } - ], - "outputs": [ - { - "name": "IMAGE", - "type": "IMAGE", - "links": [ - 7 - ], - "slot_index": 0, - "shape": 3 - } - ], - "properties": { - "Node name for S&R": "VAEDecode" - }, - "widgets_values": [] - }, - { - "id": 15, - "type": "VAEDecode", - "pos": [ - 1556.0386962890625, - 268.0700988769531 - ], - "size": [ - 210, - 46 - ], - "flags": { - "collapsed": true - }, - "order": 11, - "mode": 0, - "inputs": [ - { - "name": "samples", - "type": "LATENT", - "link": 22 - }, - { - "name": "vae", - "type": "VAE", - "link": 42 - } - ], - "outputs": [ - { - "name": "IMAGE", - "type": "IMAGE", - "links": [ - 53 - ], - "slot_index": 0, - "shape": 3 - } - ], - "properties": { - "Node name for S&R": "VAEDecode" - }, - "widgets_values": [] - }, - { - "id": 2, - "type": "KSampler", - "pos": [ - 1235.140380859375, - -287.8480529785156 - ], - "size": [ - 295.7660217285156, - 474 - ], - "flags": {}, - "order": 7, - "mode": 0, - "inputs": [ - { - "name": "model", - "type": "MODEL", - "link": 35 - }, - { - "name": "positive", - "type": "CONDITIONING", - "link": 46, - "slot_index": 1 - }, - { - "name": "negative", - "type": "CONDITIONING", - "link": 59 - }, - { - "name": "latent_image", - "type": "LATENT", - "link": 9, - "slot_index": 3 - } - ], - "outputs": [ - { - "name": "LATENT", - "type": "LATENT", - "links": [ - 6, - 52 - ], - "slot_index": 0, - "shape": 3 - } - ], - "properties": { - "Node name for S&R": "KSampler" - }, - "widgets_values": [ - 5770521, - "fixed", - 20, - 8, - "dpmpp_2m_sde_gpu", - "karras", - 1 - ] - }, - { - "id": 23, - "type": "SaveImage", - "pos": [ - 1533.74560546875, - 241.643798828125 - ], - "size": [ - 473.8890686035156, - 484.4914245605469 - ], - "flags": {}, - "order": 12, - "mode": 0, - "inputs": [ - { - "name": "images", - "type": "IMAGE", - "link": 53 - } - ], - "outputs": [], - "properties": { - "Node name for S&R": "SaveImage" - }, - "widgets_values": [ - "ComfyUI" - ] - }, - { - "id": 12, - "type": "KSampler", - "pos": [ - 1248.8175048828125, - 237.6725311279297 - ], - "size": [ - 274.0234375, - 474 - ], - "flags": {}, - "order": 9, - "mode": 0, - "inputs": [ - { - "name": "model", - "type": "MODEL", - "link": 39 - }, - { - "name": "positive", - "type": "CONDITIONING", - "link": 56, - "slot_index": 1 - }, - { - "name": "negative", - "type": "CONDITIONING", - "link": 57 - }, - { - "name": "latent_image", - "type": "LATENT", - "link": 52, - "slot_index": 3 - } - ], - "outputs": [ - { - "name": "LATENT", - "type": "LATENT", - "links": [ - 22 - ], - "slot_index": 0, - "shape": 3 - } - ], - "properties": { - "Node name for S&R": "KSampler" - }, - "widgets_values": [ - 5770521, - "fixed", - 20, - 4, - "dpmpp_2m_sde_gpu", - "karras", - 0.5 - ] - }, - { - "id": 6, - "type": "PreviewImage", - "pos": [ - 1526.01708984375, - -295.9187316894531 - ], - "size": [ - 491.1799011230469, - 494.12640380859375 - ], - "flags": {}, - "order": 10, - "mode": 0, - "inputs": [ - { - "name": "images", - "type": "IMAGE", - "link": 7 - } - ], - "outputs": [], - "properties": { - "Node name for S&R": "PreviewImage" - }, - "widgets_values": [] - }, - { - "id": 22, - "type": "CLIPTextEncode", - "pos": [ - 962.80859375, - 390.72601318359375 - ], - "size": [ - 285.6000061035156, - 98.24866485595703 - ], - "flags": { - "collapsed": true - }, - "order": 3, - "mode": 0, - "inputs": [ - { - "name": "clip", - "type": "CLIP", - "link": 49 - } - ], - "outputs": [ - { - "name": "CONDITIONING", - "type": "CONDITIONING", - "links": [ - 57 - ], - "slot_index": 0 - } - ], - "title": "CLIP Text Encode (Negative Prompt)", - "properties": { - "Node name for S&R": "CLIPTextEncode" - }, - "widgets_values": [ - "" - ], - "color": "#322", - "bgcolor": "#533" - }, - { - "id": 20, - "type": "CheckpointLoaderSimpleMultiGPU", - "pos": [ - 558.670654296875, - 277.36590576171875 - ], - "size": [ - 378, - 122 - ], - "flags": {}, - "order": 0, - "mode": 0, - "inputs": [], - "outputs": [ - { - "name": "MODEL", - "type": "MODEL", - "links": [ - 39 - ], - "slot_index": 0 - }, - { - "name": "CLIP", - "type": "CLIP", - "links": [ - 49, - 55 - ], - "slot_index": 1 - }, - { - "name": "VAE", - "type": "VAE", - "links": [ - 42 - ], - "slot_index": 2 - } - ], - "properties": { - "Node name for S&R": "CheckpointLoaderSimpleMultiGPU" - }, - "widgets_values": [ - "juggernautXL_juggXIByRundiffusion.safetensors", - "cuda:1" - ] - }, - { - "id": 8, - "type": "EmptyLatentImage", - "pos": [ - 1250.5328369140625, - -431.4219055175781 - ], - "size": [ - 210, - 106 - ], - "flags": {}, - "order": 1, - "mode": 0, - "inputs": [], - "outputs": [ - { - "name": "LATENT", - "type": "LATENT", - "links": [ - 9 - ], - "shape": 3 - } - ], - "properties": { - "Node name for S&R": "EmptyLatentImage" - }, - "widgets_values": [ - 1024, - 1024, - 1 - ] - }, - { - "id": 21, - "type": "CLIPTextEncode", - "pos": [ - 937.1891479492188, - -240.19276428222656 - ], - "size": [ - 285.6000061035156, - 76 - ], - "flags": {}, - "order": 5, - "mode": 0, - "inputs": [ - { - "name": "clip", - "type": "CLIP", - "link": 54 - } - ], - "outputs": [ - { - "name": "CONDITIONING", - "type": "CONDITIONING", - "links": [ - 46 - ], - "slot_index": 0 - } - ], - "title": "CLIP Text Encode (Positive Prompt)", - "properties": { - "Node name for S&R": "CLIPTextEncode" - }, - "widgets_values": [ - "realistic photograph of a glass of wine, depth of field, bokeh" - ], - "color": "#232", - "bgcolor": "#353" - }, - { - "id": 25, - "type": "CLIPTextEncode", - "pos": [ - 944.7369384765625, - -117.6661605834961 - ], - "size": [ - 285.6000061035156, - 76 - ], - "flags": { - "collapsed": true - }, - "order": 6, - "mode": 0, - "inputs": [ - { - "name": "clip", - "type": "CLIP", - "link": 58 - } - ], - "outputs": [ - { - "name": "CONDITIONING", - "type": "CONDITIONING", - "links": [ - 59 - ], - "slot_index": 0 - } - ], - "title": "CLIP Text Encode (Negative Prompt)", - "properties": { - "Node name for S&R": "CLIPTextEncode" - }, - "widgets_values": [ - "" - ], - "color": "#322", - "bgcolor": "#533" - }, - { - "id": 19, - "type": "CheckpointLoaderSimpleMultiGPU", - "pos": [ - 549.6911010742188, - -220.0397186279297 - ], - "size": [ - 378, - 122 - ], - "flags": {}, - "order": 2, - "mode": 0, - "inputs": [], - "outputs": [ - { - "name": "MODEL", - "type": "MODEL", - "links": [ - 35 - ], - "slot_index": 0 - }, - { - "name": "CLIP", - "type": "CLIP", - "links": [ - 54, - 58 - ], - "slot_index": 1 - }, - { - "name": "VAE", - "type": "VAE", - "links": [ - 36 - ], - "slot_index": 2 - } - ], - "properties": { - "Node name for S&R": "CheckpointLoaderSimpleMultiGPU" - }, - "widgets_values": [ - "realvisxlV50_v50Bakedvae.safetensors", - "cuda:0" - ] - }, - { - "id": 24, - "type": "CLIPTextEncode", - "pos": [ - 946.2571411132812, - 271.57373046875 - ], - "size": [ - 285.6000061035156, - 76 - ], - "flags": {}, - "order": 4, - "mode": 0, - "inputs": [ - { - "name": "clip", - "type": "CLIP", - "link": 55 - } - ], - "outputs": [ - { - "name": "CONDITIONING", - "type": "CONDITIONING", - "links": [ - 56 - ], - "slot_index": 0 - } - ], - "title": "CLIP Text Encode (Positive Prompt)", - "properties": { - "Node name for S&R": "CLIPTextEncode" - }, - "widgets_values": [ - "realistic photograph of a glass of wine, depth of field, bokeh" - ], - "color": "#232", - "bgcolor": "#353" - } - ], - "links": [ - [ - 6, - 2, - 0, - 5, - 0, - "LATENT" - ], - [ - 7, - 5, - 0, - 6, - 0, - "IMAGE" - ], - [ - 9, - 8, - 0, - 2, - 3, - "LATENT" - ], - [ - 22, - 12, - 0, - 15, - 0, - "LATENT" - ], - [ - 35, - 19, - 0, - 2, - 0, - "MODEL" - ], - [ - 36, - 19, - 2, - 5, - 1, - "VAE" - ], - [ - 39, - 20, - 0, - 12, - 0, - "MODEL" - ], - [ - 42, - 20, - 2, - 15, - 1, - "VAE" - ], - [ - 46, - 21, - 0, - 2, - 1, - "CONDITIONING" - ], - [ - 49, - 20, - 1, - 22, - 0, - "CLIP" - ], - [ - 52, - 2, - 0, - 12, - 3, - "LATENT" - ], - [ - 53, - 15, - 0, - 23, - 0, - "IMAGE" - ], - [ - 54, - 19, - 1, - 21, - 0, - "CLIP" - ], - [ - 55, - 20, - 1, - 24, - 0, - "CLIP" - ], - [ - 56, - 24, - 0, - 12, - 1, - "CONDITIONING" - ], - [ - 57, - 22, - 0, - 12, - 2, - "CONDITIONING" - ], - [ - 58, - 19, - 1, - 25, - 0, - "CLIP" - ], - [ - 59, - 25, - 0, - 2, - 2, - "CONDITIONING" - ] - ], - "groups": [], - "config": {}, - "extra": { - "ds": { - "scale": 0.8769226950001169, - "offset": [ - -163.9759947916083, - 509.56687307886415 - ] - }, - "ue_links": [], - "VHS_latentpreview": false, - "VHS_latentpreviewrate": 0 - }, - "version": 0.4 -} \ No newline at end of file diff --git a/example_workflows/qwen_image unet clip distorch2.jpg b/example_workflows/qwen_image unet clip distorch2.jpg new file mode 100755 index 0000000..7bb8d01 Binary files /dev/null and b/example_workflows/qwen_image unet clip distorch2.jpg differ diff --git a/example_workflows/qwen_image unet clip distorch2.json b/example_workflows/qwen_image unet clip distorch2.json new file mode 100755 index 0000000..83189a8 --- /dev/null +++ b/example_workflows/qwen_image unet clip distorch2.json @@ -0,0 +1,547 @@ +{ + "id": "c69a80ce-b881-4188-8e81-13ec32dd4c91", + "revision": 0, + "last_node_id": 79, + "last_link_id": 140, + "nodes": [ + { + "id": 66, + "type": "ModelSamplingAuraFlow", + "pos": [ + 459.40179443359375, + -35.1873779296875 + ], + "size": [ + 270, + 58 + ], + "flags": {}, + "order": 5, + "mode": 0, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 138 + } + ], + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "links": [ + 125 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.64", + "Node name for S&R": "ModelSamplingAuraFlow" + }, + "widgets_values": [ + 3.1000000000000005 + ] + }, + { + "id": 70, + "type": "VAELoaderMultiGPU", + "pos": [ + -30.621204376220703, + 408.86016845703125 + ], + "size": [ + 367.14569091796875, + 82 + ], + "flags": {}, + "order": 0, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "VAE", + "type": "VAE", + "links": [ + 130 + ] + } + ], + "properties": { + "cnr_id": "comfyui-multigpu", + "ver": "0d6dfc7524472943ba912a6ec3088757edba15c3", + "Node name for S&R": "VAELoaderMultiGPU" + }, + "widgets_values": [ + "qwen_image_vae.safetensors", + "cuda:1" + ], + "color": "#008181", + "bgcolor": "rgba(24,24,27,.9)" + }, + { + "id": 7, + "type": "CLIPTextEncode", + "pos": [ + 422.6140441894531, + 397.7400207519531 + ], + "size": [ + 425.27801513671875, + 182.3540496826172 + ], + "flags": { + "collapsed": true + }, + "order": 7, + "mode": 0, + "inputs": [ + { + "name": "clip", + "type": "CLIP", + "link": 140 + } + ], + "outputs": [ + { + "name": "CONDITIONING", + "type": "CONDITIONING", + "slot_index": 0, + "links": [ + 52 + ] + } + ], + "title": "CLIP Text Encode (Negative Prompt)", + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.64", + "Node name for S&R": "CLIPTextEncode" + }, + "widgets_values": [ + " " + ], + "color": "#322", + "bgcolor": "#533" + }, + { + "id": 58, + "type": "EmptySD3LatentImage", + "pos": [ + 448.2394104003906, + 480.706787109375 + ], + "size": [ + 270, + 106 + ], + "flags": {}, + "order": 1, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "LATENT", + "type": "LATENT", + "links": [ + 107 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.64", + "Node name for S&R": "EmptySD3LatentImage" + }, + "widgets_values": [ + 1328, + 1328, + 1 + ] + }, + { + "id": 6, + "type": "CLIPTextEncode", + "pos": [ + 415, + 186 + ], + "size": [ + 422.84503173828125, + 164.31304931640625 + ], + "flags": {}, + "order": 6, + "mode": 0, + "inputs": [ + { + "name": "clip", + "type": "CLIP", + "link": 139 + } + ], + "outputs": [ + { + "name": "CONDITIONING", + "type": "CONDITIONING", + "slot_index": 0, + "links": [ + 46 + ] + } + ], + "title": "CLIP Text Encode (Positive Prompt)", + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.64", + "Node name for S&R": "CLIPTextEncode" + }, + "widgets_values": [ + "A towering technological monolith in a cyberpunk cityscape at night, with \"QWEN Image DisTorch 2\" emblazoned across its surface in massive neon blue-green mixed with purple letters that illuminate the surrounding buildings. The text occupies the central third of the frame, crafted from glowing plasma tubes and crackling energy. Rain-slicked streets below reflect the brilliant signage, while holographic advertisements and flying vehicles populate the background. Moody atmospheric lighting, heavy contrast, photorealistic textures, cinematic color grading. " + ], + "color": "#232", + "bgcolor": "#353" + }, + { + "id": 78, + "type": "UNETLoaderDisTorch2MultiGPU", + "pos": [ + -22.603160858154297, + -167.50906372070312 + ], + "size": [ + 342.4831237792969, + 202 + ], + "flags": {}, + "order": 2, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "links": [ + 138 + ] + } + ], + "properties": { + "cnr_id": "comfyui-multigpu", + "ver": "0d6dfc7524472943ba912a6ec3088757edba15c3", + "Node name for S&R": "UNETLoaderDisTorch2MultiGPU" + }, + "widgets_values": [ + "qwen_image_fp8_e4m3fn.safetensors", + "default", + "cuda:0", + 14, + "cpu", + "", + true + ], + "color": "#008181", + "bgcolor": "rgba(24,24,27,.9)" + }, + { + "id": 79, + "type": "CLIPLoaderDisTorch2MultiGPU", + "pos": [ + -23.14051055908203, + 105.53752899169922 + ], + "size": [ + 355.2030334472656, + 217.1029052734375 + ], + "flags": {}, + "order": 3, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "CLIP", + "type": "CLIP", + "links": [ + 139, + 140 + ] + } + ], + "properties": { + "cnr_id": "comfyui-multigpu", + "ver": "0d6dfc7524472943ba912a6ec3088757edba15c3", + "Node name for S&R": "CLIPLoaderDisTorch2MultiGPU" + }, + "widgets_values": [ + "qwen_2.5_vl_7b_fp8_scaled.safetensors", + "qwen_image", + "cuda:1", + 3.9, + "cpu", + "", + false + ], + "color": "#008181", + "bgcolor": "rgba(24,24,27,.9)" + }, + { + "id": 60, + "type": "SaveImage", + "pos": [ + 1304.51025390625, + -224.49746704101562 + ], + "size": [ + 821.0496215820312, + 871.7067260742188 + ], + "flags": {}, + "order": 10, + "mode": 0, + "inputs": [ + { + "name": "images", + "type": "IMAGE", + "link": 110 + } + ], + "outputs": [], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.64", + "Node name for S&R": "SaveImage" + }, + "widgets_values": [ + "MultiGPU" + ] + }, + { + "id": 75, + "type": "MarkdownNote", + "pos": [ + -599.9403076171875, + -190.50645446777344 + ], + "size": [ + 546.3931274414062, + 702.6599731445312 + ], + "flags": {}, + "order": 4, + "mode": 0, + "inputs": [], + "outputs": [], + "title": "ComfyUI-MultiGPU Note - UNET, DualClipLoader DisTorch2 Workflow", + "properties": {}, + "widgets_values": [ + "A DisTorch2 QWEN Image workflow with UNet and CLIP DisTorch2. In this case we are using the DisTorch2 node to statically allocate approximately 70% of the UNet model (14.0G) to the cpu and 50% of the CLIP model (3.9G) to cpu. With `eject_models` being `True`, all other models on the `compute` card (`cuda:0`) will be unloaded, regardless of size, ensuring a clean compute card prior to inference.\n\n## Custom Node\n- [ComfyUI-MultiGPU](https://github.com/pollockjj/ComfyUI-MultiGPU)\n```\nšŸ“‚ ComfyUI/\nā”œā”€ā”€ šŸ“‚ custom_nodes/\n│ ā”œā”€ā”€ šŸ“‚ ComfyUI-MultiGPU/\n```\n## Model links\n\n**Diffusion model**\n- [qwen_image_fp8_e4m3fn.safetensors](https://huggingface.co/Comfy-Org/Qwen-Image_ComfyUI/blob/main/split_files/diffusion_models/qwen_image_fp8_e4m3fn.safetensors)\n\n**CLIP**\n- [qwen_2.5_vl_7b_fp8_scaled.safetensors](https://huggingface.co/Comfy-Org/Qwen-Image_ComfyUI/blob/main/split_files/text_encoders/qwen_2.5_vl_7b_fp8_scaled.safetensors)\n\n**VAE**\n- [qwen_image_vae.safetensors](https://huggingface.co/Comfy-Org/Qwen-Image_ComfyUI/blob/main/split_files/vae/qwen_image_vae.safetensors)\n\nModel Storage Location\n\n```\nšŸ“‚ ComfyUI/\nā”œā”€ā”€ šŸ“‚ models/\n│ ā”œā”€ā”€ šŸ“‚ clip/\n│ │ └── qwen_2.5_vl_7b_fp8_scaled.safetensors [šŸŸŖšŸŸŖšŸŸŖšŸŸŖšŸŸŖāš™ļøāš™ļøāš™ļøāš™ļøāš™ļø]\n│ ā”œā”€ā”€ šŸ“‚ unet/\n│ │ ā”œā”€ā”€ qwen_image_fp8_e4m3fn.safetensors [šŸŸ©šŸŸ©šŸŸ©āš™ļøāš™ļøāš™ļøāš™ļøāš™ļøāš™ļøāš™ļø]\n│ ā”œā”€ā”€ šŸ“‚ vae/\n│ │ └── qwen_image_vae.safetensors \n```\n## Device Mapping (Example: Two GPUs, 1 CPU)\n```\nšŸ–„ļø system \nā”œā”€ā”€ 🟢 cuda:0\n│ └── qwen_image_fp8_e4m3fn.safetensors [🟩🟩🟩]\nā”œā”€ā”€ 🟣 cuda:1\n│ └── qwen_2.5_vl_7b_fp8_scaled.safetensors[🟪🟪🟪🟪🟪]\n│ └── qwen_image_vae.safetensors\nā”œā”€ā”€ āš™ļø cpu\n └── qwen_image_fp8_e4m3fn.safetensors [āš™ļøāš™ļøāš™ļøāš™ļøāš™ļøāš™ļøāš™ļø]\n └── qwen_2.5_vl_7b_fp8_scaled.safetensors [āš™ļøāš™ļøāš™ļøāš™ļøāš™ļø]\n```" + ], + "color": "#008181", + "bgcolor": "rgba(24,24,27,.9)" + }, + { + "id": 3, + "type": "KSampler", + "pos": [ + 922.4367065429688, + 125.62214660644531 + ], + "size": [ + 315, + 474 + ], + "flags": {}, + "order": 8, + "mode": 0, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 125 + }, + { + "name": "positive", + "type": "CONDITIONING", + "link": 46 + }, + { + "name": "negative", + "type": "CONDITIONING", + "link": 52 + }, + { + "name": "latent_image", + "type": "LATENT", + "link": 107 + } + ], + "outputs": [ + { + "name": "LATENT", + "type": "LATENT", + "slot_index": 0, + "links": [ + 128 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.64", + "Node name for S&R": "KSampler" + }, + "widgets_values": [ + 133236841455355, + "randomize", + 20, + 2.5, + "euler", + "simple", + 1 + ] + }, + { + "id": 8, + "type": "VAEDecode", + "pos": [ + 986.2562866210938, + -31.995906829833984 + ], + "size": [ + 210, + 46 + ], + "flags": {}, + "order": 9, + "mode": 0, + "inputs": [ + { + "name": "samples", + "type": "LATENT", + "link": 128 + }, + { + "name": "vae", + "type": "VAE", + "link": 130 + } + ], + "outputs": [ + { + "name": "IMAGE", + "type": "IMAGE", + "slot_index": 0, + "links": [ + 110 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.64", + "Node name for S&R": "VAEDecode" + }, + "widgets_values": [] + } + ], + "links": [ + [ + 46, + 6, + 0, + 3, + 1, + "CONDITIONING" + ], + [ + 52, + 7, + 0, + 3, + 2, + "CONDITIONING" + ], + [ + 107, + 58, + 0, + 3, + 3, + "LATENT" + ], + [ + 110, + 8, + 0, + 60, + 0, + "IMAGE" + ], + [ + 125, + 66, + 0, + 3, + 0, + "MODEL" + ], + [ + 128, + 3, + 0, + 8, + 0, + "LATENT" + ], + [ + 130, + 70, + 0, + 8, + 1, + "VAE" + ], + [ + 138, + 78, + 0, + 66, + 0, + "MODEL" + ], + [ + 139, + 79, + 0, + 6, + 0, + "CLIP" + ], + [ + 140, + 79, + 0, + 7, + 0, + "CLIP" + ] + ], + "groups": [], + "config": {}, + "extra": { + "ds": { + "scale": 0.762776844438556, + "offset": [ + 794.0740721421819, + 403.6876353762771 + ] + }, + "frontendVersion": "1.27.10", + "VHS_latentpreview": false, + "VHS_latentpreviewrate": 0, + "VHS_MetadataImage": true, + "VHS_KeepIntermediate": true + }, + "version": 0.4 +} \ No newline at end of file diff --git a/example_workflows/qwen_image_edit_2509 unet clip distorch2.jpg b/example_workflows/qwen_image_edit_2509 unet clip distorch2.jpg new file mode 100755 index 0000000..2937683 Binary files /dev/null and b/example_workflows/qwen_image_edit_2509 unet clip distorch2.jpg differ diff --git a/example_workflows/qwen_image_edit_2509 unet clip distorch2.json b/example_workflows/qwen_image_edit_2509 unet clip distorch2.json new file mode 100755 index 0000000..7ab2346 --- /dev/null +++ b/example_workflows/qwen_image_edit_2509 unet clip distorch2.json @@ -0,0 +1,711 @@ +{ + "id": "ad18abd3-bdee-4f80-8fae-d15d4f845b9d", + "revision": 0, + "last_node_id": 73, + "last_link_id": 191, + "nodes": [ + { + "id": 67, + "type": "ModelSamplingAuraFlow", + "pos": [ + 115.86839294433594, + -103.43475341796875 + ], + "size": [ + 270, + 58 + ], + "flags": {}, + "order": 6, + "mode": 0, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 191 + } + ], + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "links": [ + 177 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.64", + "Node name for S&R": "ModelSamplingAuraFlow" + }, + "widgets_values": [ + 3.1 + ] + }, + { + "id": 8, + "type": "VAEDecode", + "pos": [ + 1020, + -10 + ], + "size": [ + 210, + 46 + ], + "flags": {}, + "order": 11, + "mode": 0, + "inputs": [ + { + "name": "samples", + "type": "LATENT", + "link": 175 + }, + { + "name": "vae", + "type": "VAE", + "link": 188 + } + ], + "outputs": [ + { + "name": "IMAGE", + "type": "IMAGE", + "slot_index": 0, + "links": [ + 9 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.64", + "Node name for S&R": "VAEDecode" + }, + "widgets_values": [] + }, + { + "id": 9, + "type": "SaveImage", + "pos": [ + 1250, + -10 + ], + "size": [ + 985.3012084960938, + 1060.3828125 + ], + "flags": {}, + "order": 12, + "mode": 0, + "inputs": [ + { + "name": "images", + "type": "IMAGE", + "link": 9 + } + ], + "outputs": [], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.64", + "Node name for S&R": "SaveImage" + }, + "widgets_values": [ + "ComfyUI" + ] + }, + { + "id": 69, + "type": "TextEncodeQwenImageEditPlus", + "pos": [ + 120, + 300 + ], + "size": [ + 420, + 220 + ], + "flags": {}, + "order": 8, + "mode": 0, + "inputs": [ + { + "name": "clip", + "type": "CLIP", + "link": 189 + }, + { + "name": "vae", + "shape": 7, + "type": "VAE", + "link": 186 + }, + { + "name": "image1", + "shape": 7, + "type": "IMAGE", + "link": 183 + }, + { + "name": "image2", + "shape": 7, + "type": "IMAGE", + "link": null + }, + { + "name": "image3", + "shape": 7, + "type": "IMAGE", + "link": null + } + ], + "outputs": [ + { + "name": "CONDITIONING", + "type": "CONDITIONING", + "links": [ + 179 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.64", + "Node name for S&R": "TextEncodeQwenImageEditPlus" + }, + "widgets_values": [ + "" + ], + "color": "#322", + "bgcolor": "#533" + }, + { + "id": 65, + "type": "KSampler", + "pos": [ + 730, + -10 + ], + "size": [ + 270, + 474 + ], + "flags": {}, + "order": 10, + "mode": 0, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 171 + }, + { + "name": "positive", + "type": "CONDITIONING", + "link": 180 + }, + { + "name": "negative", + "type": "CONDITIONING", + "link": 179 + }, + { + "name": "latent_image", + "type": "LATENT", + "link": 174 + } + ], + "outputs": [ + { + "name": "LATENT", + "type": "LATENT", + "links": [ + 175 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.64", + "Node name for S&R": "KSampler" + }, + "widgets_values": [ + 335077606572951, + "randomize", + 20, + 4, + "euler", + "simple", + 1 + ] + }, + { + "id": 64, + "type": "CFGNorm", + "pos": [ + 410, + -100 + ], + "size": [ + 270, + 58 + ], + "flags": {}, + "order": 9, + "mode": 4, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 177 + } + ], + "outputs": [ + { + "name": "patched_model", + "type": "MODEL", + "links": [ + 171 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.64", + "Node name for S&R": "CFGNorm" + }, + "widgets_values": [ + 1 + ] + }, + { + "id": 72, + "type": "CLIPLoaderDisTorch2MultiGPU", + "pos": [ + -356.6231994628906, + 150.83067321777344 + ], + "size": [ + 355.2030334472656, + 217.1029052734375 + ], + "flags": {}, + "order": 0, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "CLIP", + "type": "CLIP", + "links": [ + 189, + 190 + ] + } + ], + "properties": { + "cnr_id": "comfyui-multigpu", + "ver": "0d6dfc7524472943ba912a6ec3088757edba15c3", + "Node name for S&R": "CLIPLoaderDisTorch2MultiGPU" + }, + "widgets_values": [ + "qwen_2.5_vl_7b_fp8_scaled.safetensors", + "qwen_image", + "cuda:1", + 3.9, + "cpu", + "", + false + ], + "color": "#008181", + "bgcolor": "rgba(24,24,27,.9)" + }, + { + "id": 71, + "type": "VAELoaderMultiGPU", + "pos": [ + -357.5040283203125, + 434.3533020019531 + ], + "size": [ + 367.14569091796875, + 82 + ], + "flags": {}, + "order": 1, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "VAE", + "type": "VAE", + "links": [ + 186, + 187, + 188 + ] + } + ], + "properties": { + "cnr_id": "comfyui-multigpu", + "ver": "0d6dfc7524472943ba912a6ec3088757edba15c3", + "Node name for S&R": "VAELoaderMultiGPU" + }, + "widgets_values": [ + "qwen_image_vae.safetensors", + "cuda:1" + ], + "color": "#008181", + "bgcolor": "rgba(24,24,27,.9)" + }, + { + "id": 73, + "type": "UNETLoaderDisTorch2MultiGPU", + "pos": [ + -364.1524353027344, + -123.68254852294922 + ], + "size": [ + 342.4831237792969, + 202 + ], + "flags": {}, + "order": 2, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "links": [ + 191 + ] + } + ], + "properties": { + "cnr_id": "comfyui-multigpu", + "ver": "0d6dfc7524472943ba912a6ec3088757edba15c3", + "Node name for S&R": "UNETLoaderDisTorch2MultiGPU" + }, + "widgets_values": [ + "qwen_image_edit_2509_fp8_e4m3fn.safetensors", + "default", + "cuda:0", + 7, + "cpu", + "", + true + ], + "color": "#008181", + "bgcolor": "rgba(24,24,27,.9)" + }, + { + "id": 66, + "type": "EmptySD3LatentImage", + "pos": [ + 219.75479125976562, + 566.0596923828125 + ], + "size": [ + 270, + 106 + ], + "flags": {}, + "order": 3, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "LATENT", + "type": "LATENT", + "links": [ + 174 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.64", + "Node name for S&R": "EmptySD3LatentImage" + }, + "widgets_values": [ + 720, + 1280, + 1 + ] + }, + { + "id": 68, + "type": "TextEncodeQwenImageEditPlus", + "pos": [ + 114.59521484375, + -1.1091564893722534 + ], + "size": [ + 426.63751220703125, + 265.5693054199219 + ], + "flags": {}, + "order": 7, + "mode": 0, + "inputs": [ + { + "name": "clip", + "type": "CLIP", + "link": 190 + }, + { + "name": "vae", + "shape": 7, + "type": "VAE", + "link": 187 + }, + { + "name": "image1", + "shape": 7, + "type": "IMAGE", + "link": 182 + }, + { + "name": "image2", + "shape": 7, + "type": "IMAGE", + "link": null + }, + { + "name": "image3", + "shape": 7, + "type": "IMAGE", + "link": null + } + ], + "outputs": [ + { + "name": "CONDITIONING", + "type": "CONDITIONING", + "links": [ + 180 + ] + } + ], + "title": "TextEncodeQwenImageEditPlus (Positive)", + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.64", + "Node name for S&R": "TextEncodeQwenImageEditPlus" + }, + "widgets_values": [ + "Replace \"HunyuanVideo\" with \"QWEN Image Edit\" made out of the glowy-pink-purple frog spots " + ], + "color": "#232", + "bgcolor": "#353" + }, + { + "id": 41, + "type": "LoadImage", + "pos": [ + -688.2255249023438, + -140.61032104492188 + ], + "size": [ + 274.080078125, + 314 + ], + "flags": {}, + "order": 4, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "IMAGE", + "type": "IMAGE", + "links": [ + 182, + 183 + ] + }, + { + "name": "MASK", + "type": "MASK", + "links": null + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.64", + "Node name for S&R": "LoadImage" + }, + "widgets_values": [ + "hunyuanvideo distorch DEPRECATED (1).jpg", + "image" + ] + }, + { + "id": 70, + "type": "MarkdownNote", + "pos": [ + -1267.5081787109375, + -165.8821258544922 + ], + "size": [ + 546.3931274414062, + 702.6599731445312 + ], + "flags": {}, + "order": 5, + "mode": 0, + "inputs": [], + "outputs": [], + "title": "ComfyUI-MultiGPU Note - qwen_image_edit_2509 UNET, DualClipLoader DisTorch2 Workflow", + "properties": {}, + "widgets_values": [ + "A DisTorch2 QWEN Image Edit 2509 workflow with UNet and CLIP DisTorch2. In this case we are using the DisTorch2 node to statically allocate approximately 70% of the UNet model (14.0G) to the cpu and 50% of the CLIP model (3.9G) to cpu. With `eject_models` being `True`, all other models on the `compute` card (`cuda:0`) will be unloaded, regardless of size, ensuring a clean compute card prior to inference.\n\n## Custom Node\n- [ComfyUI-MultiGPU](https://github.com/pollockjj/ComfyUI-MultiGPU)\n```\nšŸ“‚ ComfyUI/\nā”œā”€ā”€ šŸ“‚ custom_nodes/\n│ ā”œā”€ā”€ šŸ“‚ ComfyUI-MultiGPU/\n```\n## Model links\n\n**Diffusion model**\n- [qwen_image_edit_2509_fp8_e4m3fn.safetensors](https://huggingface.co/Comfy-Org/https://huggingface.co/Comfy-Org/Qwen-Image-Edit_ComfyUI/blob/main/split_files/diffusion_models/qwen_image_edit_2509_fp8_e4m3fn.safetensors)\n\n**CLIP**\n- [qwen_2.5_vl_7b_fp8_scaled.safetensors](https://huggingface.co/Comfy-Org/Qwen-Image_ComfyUI/blob/main/split_files/text_encoders/qwen_2.5_vl_7b_fp8_scaled.safetensors)\n\n**VAE**\n- [qwen_image_vae.safetensors](https://huggingface.co/Comfy-Org/Qwen-Image_ComfyUI/blob/main/split_files/vae/qwen_image_vae.safetensors)\n\nModel Storage Location\n\n```\nšŸ“‚ ComfyUI/\nā”œā”€ā”€ šŸ“‚ models/\n│ ā”œā”€ā”€ šŸ“‚ clip/\n│ │ └── qwen_2.5_vl_7b_fp8_scaled.safetensors [šŸŸŖšŸŸŖšŸŸŖšŸŸŖšŸŸŖāš™ļøāš™ļøāš™ļøāš™ļøāš™ļø]\n│ ā”œā”€ā”€ šŸ“‚ unet/\n│ │ ā”œā”€ā”€ qwen_image_edit_2509_fp8_e4m3fn.safetensors [šŸŸ©šŸŸ©šŸŸ©āš™ļøāš™ļøāš™ļøāš™ļøāš™ļøāš™ļøāš™ļø]\n│ ā”œā”€ā”€ šŸ“‚ vae/\n│ │ └── qwen_image_vae.safetensors \n```\n## Device Mapping (Example: Two GPUs, 1 CPU)\n```\nšŸ–„ļø system \nā”œā”€ā”€ 🟢 cuda:0\n│ └── qwen_image_edit_2509_fp8_e4m3fn.safetensors [🟩🟩🟩]\nā”œā”€ā”€ 🟣 cuda:1\n│ └── qwen_2.5_vl_7b_fp8_scaled.safetensors[🟪🟪🟪🟪🟪]\n│ └── qwen_image_vae.safetensors\nā”œā”€ā”€ āš™ļø cpu\n └── qwen_image_edit_2509_fp8_e4m3fn.safetensors [āš™ļøāš™ļøāš™ļøāš™ļøāš™ļøāš™ļøāš™ļø]\n └── qwen_2.5_vl_7b_fp8_scaled.safetensors [āš™ļøāš™ļøāš™ļøāš™ļøāš™ļø]\n```" + ], + "color": "#008181", + "bgcolor": "rgba(24,24,27,.9)" + } + ], + "links": [ + [ + 9, + 8, + 0, + 9, + 0, + "IMAGE" + ], + [ + 171, + 64, + 0, + 65, + 0, + "MODEL" + ], + [ + 174, + 66, + 0, + 65, + 3, + "LATENT" + ], + [ + 175, + 65, + 0, + 8, + 0, + "LATENT" + ], + [ + 177, + 67, + 0, + 64, + 0, + "MODEL" + ], + [ + 179, + 69, + 0, + 65, + 2, + "CONDITIONING" + ], + [ + 180, + 68, + 0, + 65, + 1, + "CONDITIONING" + ], + [ + 182, + 41, + 0, + 68, + 2, + "IMAGE" + ], + [ + 183, + 41, + 0, + 69, + 2, + "IMAGE" + ], + [ + 186, + 71, + 0, + 69, + 1, + "VAE" + ], + [ + 187, + 71, + 0, + 68, + 1, + "VAE" + ], + [ + 188, + 71, + 0, + 8, + 1, + "VAE" + ], + [ + 189, + 72, + 0, + 69, + 0, + "CLIP" + ], + [ + 190, + 72, + 0, + 68, + 0, + "CLIP" + ], + [ + 191, + 73, + 0, + 67, + 0, + "MODEL" + ] + ], + "groups": [], + "config": {}, + "extra": { + "ds": { + "scale": 0.6209213230591553, + "offset": [ + 1393.7068112217967, + 552.6271256574463 + ] + }, + "frontendVersion": "1.27.10", + "groupNodes": {}, + "VHS_latentpreview": false, + "VHS_latentpreviewrate": 0, + "VHS_MetadataImage": true, + "VHS_KeepIntermediate": true + }, + "version": 0.4 +} \ No newline at end of file diff --git a/example_workflows/sd15 checkpoint loader simple.jpg b/example_workflows/sd15 checkpoint loader simple.jpg new file mode 100755 index 0000000..b577522 Binary files /dev/null and b/example_workflows/sd15 checkpoint loader simple.jpg differ diff --git a/example_workflows/distorch2/default_simple_DisTorch2.json b/example_workflows/sd15 checkpoint loader simple.json similarity index 53% rename from example_workflows/distorch2/default_simple_DisTorch2.json rename to example_workflows/sd15 checkpoint loader simple.json index 03ca19f..5006e48 100755 --- a/example_workflows/distorch2/default_simple_DisTorch2.json +++ b/example_workflows/sd15 checkpoint loader simple.json @@ -1,185 +1,18 @@ { - "id": "d21a2457-c2bf-4733-b2e9-42352b1dd20d", + "id": "a6ee03c8-e601-4b33-87dc-64e9ed484de8", "revision": 0, - "last_node_id": 10, - "last_link_id": 13, + "last_node_id": 28, + "last_link_id": 64, "nodes": [ - { - "id": 7, - "type": "CLIPTextEncode", - "pos": [ - 413, - 389 - ], - "size": [ - 425.27801513671875, - 180.6060791015625 - ], - "flags": {}, - "order": 3, - "mode": 0, - "inputs": [ - { - "name": "clip", - "type": "CLIP", - "link": 12 - } - ], - "outputs": [ - { - "name": "CONDITIONING", - "type": "CONDITIONING", - "slot_index": 0, - "links": [ - 6 - ] - } - ], - "properties": { - "Node name for S&R": "CLIPTextEncode" - }, - "widgets_values": [ - "text, watermark" - ] - }, - { - "id": 3, - "type": "KSampler", - "pos": [ - 863, - 186 - ], - "size": [ - 315, - 474 - ], - "flags": {}, - "order": 4, - "mode": 0, - "inputs": [ - { - "name": "model", - "type": "MODEL", - "link": 10 - }, - { - "name": "positive", - "type": "CONDITIONING", - "link": 4 - }, - { - "name": "negative", - "type": "CONDITIONING", - "link": 6 - }, - { - "name": "latent_image", - "type": "LATENT", - "link": 2 - } - ], - "outputs": [ - { - "name": "LATENT", - "type": "LATENT", - "slot_index": 0, - "links": [ - 7 - ] - } - ], - "properties": { - "Node name for S&R": "KSampler" - }, - "widgets_values": [ - 324107397495942, - "randomize", - 20, - 8, - "euler", - "normal", - 1 - ] - }, { "id": 8, - "type": "VAEDecode", + "type": "EmptyLatentImage", "pos": [ - 1209, - 188 + 991.2929077148438, + -435.2230224609375 ], "size": [ 210, - 46 - ], - "flags": {}, - "order": 5, - "mode": 0, - "inputs": [ - { - "name": "samples", - "type": "LATENT", - "link": 7 - }, - { - "name": "vae", - "type": "VAE", - "link": 13 - } - ], - "outputs": [ - { - "name": "IMAGE", - "type": "IMAGE", - "slot_index": 0, - "links": [ - 9 - ] - } - ], - "properties": { - "Node name for S&R": "VAEDecode" - }, - "widgets_values": [] - }, - { - "id": 9, - "type": "SaveImage", - "pos": [ - 1451, - 189 - ], - "size": [ - 797.607666015625, - 781.645263671875 - ], - "flags": {}, - "order": 6, - "mode": 0, - "inputs": [ - { - "name": "images", - "type": "IMAGE", - "link": 9 - } - ], - "outputs": [], - "properties": { - "Node name for S&R": "SaveImage" - }, - "widgets_values": [ - "ComfyUI" - ] - }, - { - "id": 5, - "type": "EmptyLatentImage", - "pos": [ - 473, - 609 - ], - "size": [ - 315, 106 ], "flags": {}, @@ -190,13 +23,14 @@ { "name": "LATENT", "type": "LATENT", - "slot_index": 0, "links": [ - 2 + 9 ] } ], "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.64", "Node name for S&R": "EmptyLatentImage" }, "widgets_values": [ @@ -206,24 +40,71 @@ ] }, { - "id": 6, - "type": "CLIPTextEncode", + "id": 5, + "type": "VAEDecode", "pos": [ - 415, - 186 + 1592.0411376953125, + -260.3390808105469 ], "size": [ - 422.84503173828125, - 164.31304931640625 + 140, + 46 ], - "flags": {}, - "order": 2, + "flags": { + "collapsed": false + }, + "order": 6, + "mode": 0, + "inputs": [ + { + "name": "samples", + "type": "LATENT", + "link": 6 + }, + { + "name": "vae", + "type": "VAE", + "link": 36 + } + ], + "outputs": [ + { + "name": "IMAGE", + "type": "IMAGE", + "slot_index": 0, + "links": [ + 64 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.64", + "Node name for S&R": "VAEDecode" + }, + "widgets_values": [] + }, + { + "id": 25, + "type": "CLIPTextEncode", + "pos": [ + 935.94091796875, + 9.248990058898926 + ], + "size": [ + 285.6000061035156, + 88 + ], + "flags": { + "collapsed": false + }, + "order": 4, "mode": 0, "inputs": [ { "name": "clip", "type": "CLIP", - "link": 11 + "link": 58 } ], "outputs": [ @@ -232,27 +113,167 @@ "type": "CONDITIONING", "slot_index": 0, "links": [ - 4 + 59 + ] + } + ], + "title": "CLIP Text Encode (Negative Prompt)", + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.64", + "Node name for S&R": "CLIPTextEncode" + }, + "widgets_values": [ + "" + ], + "color": "#322", + "bgcolor": "#533" + }, + { + "id": 21, + "type": "CLIPTextEncode", + "pos": [ + 937.1891479492188, + -240.19276428222656 + ], + "size": [ + 293.767822265625, + 206.74732971191406 + ], + "flags": {}, + "order": 3, + "mode": 0, + "inputs": [ + { + "name": "clip", + "type": "CLIP", + "link": 54 + } + ], + "outputs": [ + { + "name": "CONDITIONING", + "type": "CONDITIONING", + "slot_index": 0, + "links": [ + 46 + ] + } + ], + "title": "CLIP Text Encode (Positive Prompt)", + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.64", + "Node name for S&R": "CLIPTextEncode" + }, + "widgets_values": [ + "A towering technological monolith in a cyberpunk cityscape at night, neon blue-green mixed with purple illuminate the surrounding buildings. Rain-slicked streets below reflect the brilliant signage, while holographic advertisements and flying vehicles populate the background. Moody atmospheric lighting, heavy contrast, photorealistic textures, cinematic color grading. " + ], + "color": "#232", + "bgcolor": "#353" + }, + { + "id": 2, + "type": "KSampler", + "pos": [ + 1235.140380859375, + -287.8480529785156 + ], + "size": [ + 295.7660217285156, + 474 + ], + "flags": {}, + "order": 5, + "mode": 0, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 35 + }, + { + "name": "positive", + "type": "CONDITIONING", + "link": 46 + }, + { + "name": "negative", + "type": "CONDITIONING", + "link": 59 + }, + { + "name": "latent_image", + "type": "LATENT", + "link": 9 + } + ], + "outputs": [ + { + "name": "LATENT", + "type": "LATENT", + "slot_index": 0, + "links": [ + 6 ] } ], "properties": { - "Node name for S&R": "CLIPTextEncode" + "cnr_id": "comfy-core", + "ver": "0.3.64", + "Node name for S&R": "KSampler" }, "widgets_values": [ - "A towering technological monolith in a cyberpunk cityscape at night, with \"DisTorch 2\" emblazoned across its surface in massive neon blue-green mixed with purple letters that illuminate the surrounding buildings. The text occupies the central third of the frame, crafted from glowing plasma tubes and crackling energy. Rain-slicked streets below reflect the brilliant signage, while holographic advertisements and flying vehicles populate the background. Moody atmospheric lighting, heavy contrast, photorealistic textures, cinematic color grading. \"Now for .safetensors!\" in same stying but smaller font as a splash overlay in the right-hand corner of the image " + 768019607311046, + "randomize", + 20, + 8, + "dpmpp_2m_sde_gpu", + "karras", + 1 ] }, { - "id": 10, - "type": "CheckpointLoaderSimpleDisTorch2MultiGPU", + "id": 28, + "type": "SaveImage", "pos": [ - -54.288394927978516, - 172.42547607421875 + 1763.842041015625, + -255.2287139892578 ], "size": [ - 378.4644470214844, - 194 + 408.8526306152344, + 449.6918029785156 + ], + "flags": {}, + "order": 7, + "mode": 0, + "inputs": [ + { + "name": "images", + "type": "IMAGE", + "link": 64 + } + ], + "outputs": [], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.64", + "Node name for S&R": "SaveImage" + }, + "widgets_values": [ + "MultiGPU" + ] + }, + { + "id": 19, + "type": "CheckpointLoaderSimpleMultiGPU", + "pos": [ + 446.83160400390625, + -309.51922607421875 + ], + "size": [ + 377.1637268066406, + 122 ], "flags": {}, "order": 1, @@ -262,125 +283,152 @@ { "name": "MODEL", "type": "MODEL", + "slot_index": 0, "links": [ - 10 + 35 ] }, { "name": "CLIP", "type": "CLIP", + "slot_index": 1, "links": [ - 11, - 12 + 54, + 58 ] }, { "name": "VAE", "type": "VAE", + "slot_index": 2, "links": [ - 13 + 36 ] } ], "properties": { - "Node name for S&R": "CheckpointLoaderSimpleDisTorch2MultiGPU" + "cnr_id": "comfyui-multigpu", + "ver": "0d6dfc7524472943ba912a6ec3088757edba15c3", + "Node name for S&R": "CheckpointLoaderSimpleMultiGPU" }, "widgets_values": [ - "safetensor_testing/realDream_15SD15.safetensors", - "cuda:0", - 1, - "cpu", - "" + "sd1.5-real-dream-16.safetensors", + "cuda:1" ], - "color": "#233", - "bgcolor": "#355" + "color": "#008181", + "bgcolor": "rgba(24,24,27,.9)" + }, + { + "id": 27, + "type": "MarkdownNote", + "pos": [ + 39.4303092956543, + -313.1197509765625 + ], + "size": [ + 387.6714782714844, + 472.19256591796875 + ], + "flags": {}, + "order": 2, + "mode": 0, + "inputs": [], + "outputs": [], + "title": "ComfyUI-MultiGPU - CheckpointLoaderSimpleMultiGPU", + "properties": {}, + "widgets_values": [ + "A mature SD1.5 Checkpoint to test ComfyUI-MultiGPU basic functionality. In this case we are doing the simplest action of changing device where all models are loaded before inference.\n## Custom Node\n\n[ComfyUI-MultiGPU](https://github.com/pollockjj/ComfyUI-MultiGPU)\n```\nšŸ“‚ ComfyUI/\nā”œā”€ā”€ šŸ“‚ custom_nodes/\n│ ā”œā”€ā”€ šŸ“‚ ComfyUI-MultiGPU/\n```\n## Model links\n\n**checkpoints**\n\n - [sd1.5-real-dream-16.safetensors](https://huggingface.co/sinatra-rd/sd-1.5-real-dream/resolve/main/sd1.5-real-dream-16.safetensors)\n\n```\nšŸ“‚ ComfyUI/\nā”œā”€ šŸ“‚ models/\n│ ā”œā”€ šŸ“‚ checkpoints/\n│ │ └── sd1.5-real-dream-16.safetensors\n```\n## Device Mapping (Example: Two GPUs, 1 CPU)\n```\nšŸ–„ļø system \nā”œā”€ā”€ 🟢 cuda:0\n│ └── EMPTY\nā”œā”€ā”€ 🟣 cuda:1\n│ └── sd1.5-real-dream-16.safetensors\nā”œā”€ā”€ āš™ļø cpu\n └── EMPTY\n```" + ], + "color": "#008181", + "bgcolor": "rgba(24,24,27,.9)" } ], "links": [ [ + 6, 2, + 0, 5, 0, - 3, - 3, "LATENT" ], [ - 4, - 6, + 9, + 8, 0, - 3, - 1, - "CONDITIONING" - ], - [ - 6, - 7, - 0, - 3, 2, - "CONDITIONING" - ], - [ - 7, 3, - 0, - 8, - 0, "LATENT" ], [ - 9, - 8, + 35, + 19, 0, - 9, - 0, - "IMAGE" - ], - [ - 10, - 10, - 0, - 3, + 2, 0, "MODEL" ], [ - 11, - 10, - 1, - 6, - 0, - "CLIP" - ], - [ - 12, - 10, - 1, - 7, - 0, - "CLIP" - ], - [ - 13, - 10, + 36, + 19, 2, - 8, + 5, 1, "VAE" + ], + [ + 46, + 21, + 0, + 2, + 1, + "CONDITIONING" + ], + [ + 54, + 19, + 1, + 21, + 0, + "CLIP" + ], + [ + 58, + 19, + 1, + 25, + 0, + "CLIP" + ], + [ + 59, + 25, + 0, + 2, + 2, + "CONDITIONING" + ], + [ + 64, + 5, + 0, + 28, + 0, + "IMAGE" ] ], "groups": [], "config": {}, "extra": { "ds": { - "scale": 0.7253148929329982, + "scale": 0.876922695000118, "offset": [ - 524.2321827393398, - 523.3571913872648 + 164.74639645547714, + 599.3047746961622 ] }, - "frontendVersion": "1.24.4", + "frontendVersion": "1.27.10", + "ue_links": [], "VHS_latentpreview": false, "VHS_latentpreviewrate": 0, "VHS_MetadataImage": true, diff --git a/example_workflows/sdxl checkpoint loader advanced.jpg b/example_workflows/sdxl checkpoint loader advanced.jpg new file mode 100755 index 0000000..623f59a Binary files /dev/null and b/example_workflows/sdxl checkpoint loader advanced.jpg differ diff --git a/example_workflows/sdxl checkpoint loader advanced.json b/example_workflows/sdxl checkpoint loader advanced.json new file mode 100755 index 0000000..0d61b5e --- /dev/null +++ b/example_workflows/sdxl checkpoint loader advanced.json @@ -0,0 +1,437 @@ +{ + "id": "8af0a104-fd94-4d52-a3fe-1b223b3cfe74", + "revision": 0, + "last_node_id": 27, + "last_link_id": 65, + "nodes": [ + { + "id": 5, + "type": "VAEDecode", + "pos": [ + 1581.3973388671875, + -280.86529541015625 + ], + "size": [ + 140, + 46 + ], + "flags": { + "collapsed": false + }, + "order": 6, + "mode": 0, + "inputs": [ + { + "name": "samples", + "type": "LATENT", + "link": 6 + }, + { + "name": "vae", + "type": "VAE", + "link": 64 + } + ], + "outputs": [ + { + "name": "IMAGE", + "type": "IMAGE", + "slot_index": 0, + "links": [ + 60 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.64", + "Node name for S&R": "VAEDecode" + }, + "widgets_values": [] + }, + { + "id": 21, + "type": "CLIPTextEncode", + "pos": [ + 937.1891479492188, + -240.19276428222656 + ], + "size": [ + 306.88653564453125, + 192.15206909179688 + ], + "flags": {}, + "order": 3, + "mode": 0, + "inputs": [ + { + "name": "clip", + "type": "CLIP", + "link": 62 + } + ], + "outputs": [ + { + "name": "CONDITIONING", + "type": "CONDITIONING", + "slot_index": 0, + "links": [ + 46 + ] + } + ], + "title": "CLIP Text Encode (Positive Prompt)", + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.64", + "Node name for S&R": "CLIPTextEncode" + }, + "widgets_values": [ + "A towering technological monolith in a cyberpunk cityscape at night, neon blue-green mixed with purple illuminate the surrounding buildings. Rain-slicked streets below reflect the brilliant signage, while holographic advertisements and flying vehicles populate the background. Moody atmospheric lighting, heavy contrast, photorealistic textures, cinematic color grading. " + ], + "color": "#232", + "bgcolor": "#353" + }, + { + "id": 25, + "type": "CLIPTextEncode", + "pos": [ + 948.5381469726562, + 5.491794109344482 + ], + "size": [ + 285.6000061035156, + 88 + ], + "flags": { + "collapsed": false + }, + "order": 4, + "mode": 0, + "inputs": [ + { + "name": "clip", + "type": "CLIP", + "link": 65 + } + ], + "outputs": [ + { + "name": "CONDITIONING", + "type": "CONDITIONING", + "slot_index": 0, + "links": [ + 59 + ] + } + ], + "title": "CLIP Text Encode (Negative Prompt)", + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.64", + "Node name for S&R": "CLIPTextEncode" + }, + "widgets_values": [ + "" + ], + "color": "#322", + "bgcolor": "#533" + }, + { + "id": 8, + "type": "EmptyLatentImage", + "pos": [ + 658.3106079101562, + -1.8894624710083008 + ], + "size": [ + 210, + 106 + ], + "flags": {}, + "order": 0, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "LATENT", + "type": "LATENT", + "links": [ + 9 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.64", + "Node name for S&R": "EmptyLatentImage" + }, + "widgets_values": [ + 1024, + 1024, + 1 + ] + }, + { + "id": 2, + "type": "KSampler", + "pos": [ + 1261.748779296875, + -272.6434020996094 + ], + "size": [ + 295.7660217285156, + 474 + ], + "flags": {}, + "order": 5, + "mode": 0, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 63 + }, + { + "name": "positive", + "type": "CONDITIONING", + "link": 46 + }, + { + "name": "negative", + "type": "CONDITIONING", + "link": 59 + }, + { + "name": "latent_image", + "type": "LATENT", + "link": 9 + } + ], + "outputs": [ + { + "name": "LATENT", + "type": "LATENT", + "slot_index": 0, + "links": [ + 6 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.64", + "Node name for S&R": "KSampler" + }, + "widgets_values": [ + 1018829187018126, + "randomize", + 20, + 8, + "dpmpp_2m_sde_gpu", + "karras", + 1 + ] + }, + { + "id": 23, + "type": "SaveImage", + "pos": [ + 1757.25439453125, + -274.5552673339844 + ], + "size": [ + 473.8890686035156, + 484.4914245605469 + ], + "flags": {}, + "order": 7, + "mode": 0, + "inputs": [ + { + "name": "images", + "type": "IMAGE", + "link": 60 + } + ], + "outputs": [], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.64", + "Node name for S&R": "SaveImage" + }, + "widgets_values": [ + "MultiGPU" + ] + }, + { + "id": 27, + "type": "CheckpointLoaderAdvancedMultiGPU", + "pos": [ + 580.2694702148438, + -237.61167907714844 + ], + "size": [ + 360.78656005859375, + 170 + ], + "flags": {}, + "order": 1, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "links": [ + 63 + ] + }, + { + "name": "CLIP", + "type": "CLIP", + "links": [ + 62, + 65 + ] + }, + { + "name": "VAE", + "type": "VAE", + "links": [ + 64 + ] + } + ], + "properties": { + "cnr_id": "comfyui-multigpu", + "ver": "0d6dfc7524472943ba912a6ec3088757edba15c3", + "Node name for S&R": "CheckpointLoaderAdvancedMultiGPU" + }, + "widgets_values": [ + "Juggernaut-XL_v9_RunDiffusionPhoto_v2.safetensors", + "cuda:0", + "cpu", + "cuda:1" + ], + "color": "#008181", + "bgcolor": "rgba(24,24,27,.9)" + }, + { + "id": 26, + "type": "MarkdownNote", + "pos": [ + 91.9892349243164, + -246.16168212890625 + ], + "size": [ + 480.3141784667969, + 487.08673095703125 + ], + "flags": {}, + "order": 2, + "mode": 0, + "inputs": [], + "outputs": [], + "title": "ComfyUI-MultiGPU - CheckpointLoaderAdvancedMultiGPU", + "properties": {}, + "widgets_values": [ + "A mature SDXL Checkpoint to test ComfyUI-MultiGPU CheckpointLoaderAdvanced functionality. In this case we are changing the UNet, CLIP, and VAE devices independentlly\n## Custom Node\n\n- [ComfyUI-MultiGPU](https://github.com/pollockjj/ComfyUI-MultiGPU)\n```\nšŸ“‚ ComfyUI/\nā”œā”€ā”€ šŸ“‚ custom_nodes/\n│ ā”œā”€ā”€ šŸ“‚ ComfyUI-MultiGPU/\n```\n## Model links\n\n**checkpoints**\n\n - [Juggernaut-XL_v9_RunDiffusionPhoto_v2.safetensors](https://huggingface.co/RunDiffusion/Juggernaut-XL-v9/resolve/main/Juggernaut-XL_v9_RunDiffusionPhoto_v2.safetensors) \n\n```\nšŸ“‚ ComfyUI/\nā”œā”€ šŸ“‚ models/\n│ ā”œā”€ šŸ“‚ checkpoints/\n│ │ └── Juggernaut-XL_v9_RunDiffusionPhoto_v2.safetensors\n```\n## Device Mapping (Example: Two GPUs, 1 CPU)\n```\nšŸ–„ļø system \nā”œā”€ā”€ 🟢 cuda:0\n│ └── Juggernaut-XL_v9_RunDiffusionPhoto_v2 - UNet\nā”œā”€ā”€ 🟣 cuda:1\n│ └── Juggernaut-XL_v9_RunDiffusionPhoto_v2 - VAE\nā”œā”€ā”€ āš™ļø cpu\n └── Juggernaut-XL_v9_RunDiffusionPhoto_v2 - CLIP\n```" + ], + "color": "#008181", + "bgcolor": "rgba(24,24,27,.9)" + } + ], + "links": [ + [ + 6, + 2, + 0, + 5, + 0, + "LATENT" + ], + [ + 9, + 8, + 0, + 2, + 3, + "LATENT" + ], + [ + 46, + 21, + 0, + 2, + 1, + "CONDITIONING" + ], + [ + 59, + 25, + 0, + 2, + 2, + "CONDITIONING" + ], + [ + 60, + 5, + 0, + 23, + 0, + "IMAGE" + ], + [ + 62, + 27, + 1, + 21, + 0, + "CLIP" + ], + [ + 63, + 27, + 0, + 2, + 0, + "MODEL" + ], + [ + 64, + 27, + 2, + 5, + 1, + "VAE" + ], + [ + 65, + 27, + 1, + 25, + 0, + "CLIP" + ] + ], + "groups": [], + "config": {}, + "extra": { + "ds": { + "scale": 0.9646149645001288, + "offset": [ + 93.03404840681384, + 585.605321716019 + ] + }, + "frontendVersion": "1.27.10", + "ue_links": [], + "VHS_latentpreview": false, + "VHS_latentpreviewrate": 0, + "VHS_MetadataImage": true, + "VHS_KeepIntermediate": true + }, + "version": 0.4 +} \ No newline at end of file diff --git a/example_workflows/wan2_2 distorch2 double_unet no_cpu.jpg b/example_workflows/wan2_2 distorch2 double_unet no_cpu.jpg new file mode 100755 index 0000000..4b80966 Binary files /dev/null and b/example_workflows/wan2_2 distorch2 double_unet no_cpu.jpg differ diff --git a/example_workflows/distorch2/wan2_2_DisTorch2.json b/example_workflows/wan2_2 distorch2 double_unet no_cpu.json similarity index 68% rename from example_workflows/distorch2/wan2_2_DisTorch2.json rename to example_workflows/wan2_2 distorch2 double_unet no_cpu.json index 64d29e2..474627c 100755 --- a/example_workflows/distorch2/wan2_2_DisTorch2.json +++ b/example_workflows/wan2_2 distorch2 double_unet no_cpu.json @@ -1,8 +1,8 @@ { "id": "ec7da562-7e21-4dac-a0d2-f4441e1efd3b", "revision": 0, - "last_node_id": 70, - "last_link_id": 151, + "last_node_id": 74, + "last_link_id": 157, "nodes": [ { "id": 58, @@ -16,7 +16,7 @@ 546 ], "flags": {}, - "order": 10, + "order": 11, "mode": 0, "inputs": [ { @@ -50,6 +50,8 @@ } ], "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.64", "Node name for S&R": "KSamplerAdvanced" }, "widgets_values": [ @@ -77,7 +79,7 @@ 46 ], "flags": {}, - "order": 11, + "order": 12, "mode": 0, "inputs": [ { @@ -103,75 +105,12 @@ } ], "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.64", "Node name for S&R": "VAEDecode" }, "widgets_values": [] }, - { - "id": 28, - "type": "SaveAnimatedWEBP", - "pos": [ - 1820, - -20 - ], - "size": [ - 674.6224975585938, - 820.6224975585938 - ], - "flags": {}, - "order": 12, - "mode": 0, - "inputs": [ - { - "name": "images", - "type": "IMAGE", - "link": 56 - } - ], - "outputs": [], - "properties": { - "Node name for S&R": "SaveAnimatedWEBP" - }, - "widgets_values": [ - "ComfyUI", - 16, - false, - 80, - "default" - ] - }, - { - "id": 47, - "type": "SaveWEBM", - "pos": [ - 2530, - -20 - ], - "size": [ - 763.67041015625, - 885.67041015625 - ], - "flags": {}, - "order": 13, - "mode": 0, - "inputs": [ - { - "name": "images", - "type": "IMAGE", - "link": 93 - } - ], - "outputs": [], - "properties": { - "Node name for S&R": "SaveWEBM" - }, - "widgets_values": [ - "ComfyUI", - "vp9", - 16.000000000000004, - 13.3333740234375 - ] - }, { "id": 7, "type": "CLIPTextEncode", @@ -184,7 +123,7 @@ 180.6060791015625 ], "flags": {}, - "order": 6, + "order": 7, "mode": 0, "inputs": [ { @@ -206,6 +145,8 @@ ], "title": "CLIP Text Encode (Negative Prompt)", "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.64", "Node name for S&R": "CLIPTextEncode" }, "widgets_values": [ @@ -239,6 +180,8 @@ } ], "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.64", "Node name for S&R": "EmptyHunyuanLatentVideo" }, "widgets_values": [ @@ -260,7 +203,7 @@ 546 ], "flags": {}, - "order": 9, + "order": 10, "mode": 0, "inputs": [ { @@ -294,6 +237,8 @@ } ], "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.64", "Node name for S&R": "KSamplerAdvanced" }, "widgets_values": [ @@ -309,6 +254,46 @@ "enable" ] }, + { + "id": 55, + "type": "ModelSamplingSD3", + "pos": [ + 479.226318359375, + 87.29454040527344 + ], + "size": [ + 315, + 58 + ], + "flags": {}, + "order": 9, + "mode": 0, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 157 + } + ], + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "slot_index": 0, + "links": [ + 123 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.64", + "Node name for S&R": "ModelSamplingSD3" + }, + "widgets_values": [ + 8 + ] + }, { "id": 67, "type": "VAELoaderMultiGPU", @@ -334,97 +319,23 @@ } ], "properties": { + "cnr_id": "comfyui-multigpu", + "ver": "0d6dfc7524472943ba912a6ec3088757edba15c3", "Node name for S&R": "VAELoaderMultiGPU" }, "widgets_values": [ "wan_2.1_vae.safetensors", "cuda:1" ], - "color": "#233", - "bgcolor": "#355" - }, - { - "id": 55, - "type": "ModelSamplingSD3", - "pos": [ - 479.226318359375, - 87.29454040527344 - ], - "size": [ - 315, - 58 - ], - "flags": {}, - "order": 8, - "mode": 0, - "inputs": [ - { - "name": "model", - "type": "MODEL", - "link": 151 - } - ], - "outputs": [ - { - "name": "MODEL", - "type": "MODEL", - "slot_index": 0, - "links": [ - 123 - ] - } - ], - "properties": { - "Node name for S&R": "ModelSamplingSD3" - }, - "widgets_values": [ - 8 - ] - }, - { - "id": 54, - "type": "ModelSamplingSD3", - "pos": [ - 486.4836120605469, - -69.28914642333984 - ], - "size": [ - 315, - 58 - ], - "flags": {}, - "order": 7, - "mode": 0, - "inputs": [ - { - "name": "model", - "type": "MODEL", - "link": 150 - } - ], - "outputs": [ - { - "name": "MODEL", - "type": "MODEL", - "slot_index": 0, - "links": [ - 125 - ] - } - ], - "properties": { - "Node name for S&R": "ModelSamplingSD3" - }, - "widgets_values": [ - 8.000000000000002 - ] + "color": "#008181", + "bgcolor": "rgba(24,24,27,.9)" }, { "id": 68, "type": "CLIPLoaderMultiGPU", "pos": [ - -6.305742263793945, - 188.62916564941406 + 13.91906452178955, + 234.1349334716797 ], "size": [ 383.4211730957031, @@ -445,15 +356,17 @@ } ], "properties": { + "cnr_id": "comfyui-multigpu", + "ver": "0d6dfc7524472943ba912a6ec3088757edba15c3", "Node name for S&R": "CLIPLoaderMultiGPU" }, "widgets_values": [ "umt5_xxl_fp8_e4m3fn_scaled.safetensors", "wan", - "cpu" + "cuda:1" ], - "color": "#233", - "bgcolor": "#355" + "color": "#008181", + "bgcolor": "rgba(24,24,27,.9)" }, { "id": 6, @@ -467,7 +380,7 @@ 164.31304931640625 ], "flags": {}, - "order": 5, + "order": 6, "mode": 0, "inputs": [ { @@ -489,14 +402,85 @@ ], "title": "CLIP Text Encode (Positive Prompt)", "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.64", "Node name for S&R": "CLIPTextEncode" }, "widgets_values": [ - "A towering technological monolith in a cyberpunk cityscape at night, with \"DisTorch 2\" emblazoned across its surface in massive neon blue-green mixed with purple letters that illuminate the surrounding buildings. The text occupies the central third of the frame, crafted from glowing plasma tubes and crackling energy. The model file suffix \"now with .safetensors!\" in same stying but smaller font directly underneath. Rain-slicked streets below reflect the brilliant signage, while holographic advertisements and flying vehicles populate the background. Moody atmospheric lighting, heavy contrast, photorealistic textures, cinematic color grading. " + "A towering technological monolith in a cyberpunk cityscape at night, with \"Wan 2.2 DisTorch 2\" emblazoned across its surface in massive neon blue-green mixed with purple letters that illuminate the surrounding buildings. The text occupies the center of the frame, crafted from glowing plasma tubes and crackling energy. Rain-slicked streets below reflect the brilliant signage, while holographic advertisements and flying vehicles populate the background. Moody atmospheric lighting, heavy contrast, photorealistic textures, cinematic color grading. " ], "color": "#232", "bgcolor": "#353" }, + { + "id": 47, + "type": "SaveWEBM", + "pos": [ + 2530, + -20 + ], + "size": [ + 763.67041015625, + 885.67041015625 + ], + "flags": {}, + "order": 14, + "mode": 0, + "inputs": [ + { + "name": "images", + "type": "IMAGE", + "link": 93 + } + ], + "outputs": [], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.64", + "Node name for S&R": "SaveWEBM" + }, + "widgets_values": [ + "MultiGPU", + "vp9", + 16.000000000000004, + 13.3333740234375 + ] + }, + { + "id": 28, + "type": "SaveAnimatedWEBP", + "pos": [ + 1820, + -20 + ], + "size": [ + 674.6224975585938, + 820.6224975585938 + ], + "flags": {}, + "order": 13, + "mode": 0, + "inputs": [ + { + "name": "images", + "type": "IMAGE", + "link": 56 + } + ], + "outputs": [], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.64", + "Node name for S&R": "SaveAnimatedWEBP" + }, + "widgets_values": [ + "MultiGPU", + 16, + false, + 80, + "default" + ] + }, { "id": 62, "type": "UNETLoaderDisTorch2MultiGPU", @@ -506,7 +490,7 @@ ], "size": [ 351.41351318359375, - 179.5890655517578 + 202 ], "flags": {}, "order": 3, @@ -517,34 +501,37 @@ "name": "MODEL", "type": "MODEL", "links": [ - 150 + 156 ] } ], "properties": { + "cnr_id": "comfyui-multigpu", + "ver": "0d6dfc7524472943ba912a6ec3088757edba15c3", "Node name for S&R": "UNETLoaderDisTorch2MultiGPU" }, "widgets_values": [ "wan2.2_t2v_high_noise_14B_fp8_scaled.safetensors", "default", "cuda:0", - 4, - "cpu", - "" + 9, + "cuda:1", + "", + true ], - "color": "#233", - "bgcolor": "#355" + "color": "#008181", + "bgcolor": "rgba(24,24,27,.9)" }, { "id": 70, "type": "UNETLoaderDisTorch2MultiGPU", "pos": [ - 43.62093734741211, - -88.78330993652344 + 33.50856018066406, + -66.39156341552734 ], "size": [ 351.41351318359375, - 179.5890655517578 + 202 ], "flags": {}, "order": 4, @@ -555,23 +542,90 @@ "name": "MODEL", "type": "MODEL", "links": [ - 151 + 157 ] } ], "properties": { + "cnr_id": "comfyui-multigpu", + "ver": "0d6dfc7524472943ba912a6ec3088757edba15c3", "Node name for S&R": "UNETLoaderDisTorch2MultiGPU" }, "widgets_values": [ "wan2.2_t2v_low_noise_14B_fp8_scaled.safetensors", "default", + "cuda:0", + 9, "cuda:1", - 4, - "cpu", - "" + "", + true ], - "color": "#233", - "bgcolor": "#355" + "color": "#008181", + "bgcolor": "rgba(24,24,27,.9)" + }, + { + "id": 54, + "type": "ModelSamplingSD3", + "pos": [ + 503.1690979003906, + -198.79998779296875 + ], + "size": [ + 315, + 58 + ], + "flags": {}, + "order": 8, + "mode": 0, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 156 + } + ], + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "slot_index": 0, + "links": [ + 125 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.64", + "Node name for S&R": "ModelSamplingSD3" + }, + "widgets_values": [ + 8.000000000000002 + ] + }, + { + "id": 74, + "type": "MarkdownNote", + "pos": [ + -658.3707275390625, + -320.4559326171875 + ], + "size": [ + 634.0631103515625, + 720.5999755859375 + ], + "flags": {}, + "order": 5, + "mode": 0, + "inputs": [], + "outputs": [], + "title": "ComfyUI-MultiGPU Note - wan2_2 Double UNet DisTorch2", + "properties": {}, + "widgets_values": [ + "A DisTorch2 Wan 2.2 workflow where we ignore CPU offloading completely and load both UNets placing blocks on the CPU and CLIP DisTorch2. In this case we are using the DisTorch2 node to statically allocate approximately 70% of the UNet model (13.3G) to the cpu. With `eject_models` being `True`, all other models on the `compute` card (`cuda:0`) will be unloaded, regardless of size, ensuring a clean compute card prior to inference.\n\n## Custom Node\n- [ComfyUI-MultiGPU](https://github.com/pollockjj/ComfyUI-MultiGPU)\n```\nšŸ“‚ ComfyUI/\nā”œā”€ā”€ šŸ“‚ custom_nodes/\n│ ā”œā”€ā”€ šŸ“‚ ComfyUI-MultiGPU/\n```\n## Model links\n\n**Diffusion model**\n- [wan2.2_t2v_high_noise_14B_fp8_scaled.safetensors](https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/blob/main/split_files/diffusion_models/wan2.2_t2v_high_noise_14B_fp8_scaled.safetensors)\n- [wan2.2_t2v_low_noise_14B_fp8_scaled.safetensors](https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/blob/main/split_files/diffusion_models/wan2.2_t2v_low_noise_14B_fp8_scaled.safetensors)\n\n**CLIP**\n- [umt5_xxl_fp8_e4m3fn_scaled.safetensors](https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/resolve/main/split_files/text_encoders/umt5_xxl_fp8_e4m3fn_scaled.safetensors)\n\n**VAE**\n- [wan_2.1_vae.safetensors](https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/blob/main/split_files/vae/wan_2.1_vae.safetensors)\n\nModel Storage Location\n\n```\nšŸ“‚ ComfyUI/\nā”œā”€ā”€ šŸ“‚ models/\n│ ā”œā”€ā”€ šŸ“‚ clip/\n│ │ └── umt5_xxl_fp8_e4m3fn_scaled.safetensors\n│ ā”œā”€ā”€ šŸ“‚ unet/\n│ │ ā”œā”€ā”€ wan2.2_t2v_high_noise_14B_fp8_scaled.safetensors [🟩🟩🟩🟪🟪🟪🟪🟪🟪🟪]\n│ │ ā”œā”€ā”€ wan2.2_t2v_low_noise_14B_fp8_scaled.safetensors [🟩🟩🟩🟪🟪🟪🟪🟪🟪🟪]\n│ ā”œā”€ā”€ šŸ“‚ vae/\n│ │ └── qwen_image_vae.safetensors \n```\n## Device Mapping (Example: Two GPUs, 1 CPU)\n```\nšŸ–„ļø system \nā”œā”€ā”€ 🟢 cuda:0\n│ └── wan2.2_t2v_high_noise_14B_fp8_scaled.safetensors [🟩🟩🟩]\n│ └── wan2.2_t2v_low_noise_14B_fp8_scaled.safetensors [🟩🟩🟩]\nā”œā”€ā”€ 🟣 cuda:1\n│ └── wan2.2_t2v_high_noise_14B_fp8_scaled.safetensors [🟪🟪🟪🟪🟪🟪🟪]\n│ └── wan2.2_t2v_high_noise_14B_fp8_scaled.safetensors [🟪🟪🟪🟪🟪🟪🟪]\n│ └── umt5_xxl_fp8_e4m3fn_scaled.safetensors\n│ └── wan_2.1_vae.safetensors\nā”œā”€ā”€ āš™ļø cpu\n```" + ], + "color": "#008181", + "bgcolor": "rgba(24,24,27,.9)" } ], "links": [ @@ -688,7 +742,7 @@ "CLIP" ], [ - 150, + 156, 62, 0, 54, @@ -696,7 +750,7 @@ "MODEL" ], [ - 151, + 157, 70, 0, 55, @@ -708,13 +762,13 @@ "config": {}, "extra": { "ds": { - "scale": 0.9229599817706872, + "scale": 0.7627768444385852, "offset": [ - 262.23932192507675, - 541.1903997726705 + 923.7572852838339, + 611.8769299301177 ] }, - "frontendVersion": "1.24.4", + "frontendVersion": "1.27.10", "VHS_latentpreview": false, "VHS_latentpreviewrate": 0, "VHS_MetadataImage": true, diff --git a/example_workflows/wan2_2 t2i lightx2v lora distorch2.jpg b/example_workflows/wan2_2 t2i lightx2v lora distorch2.jpg new file mode 100755 index 0000000..03b2092 Binary files /dev/null and b/example_workflows/wan2_2 t2i lightx2v lora distorch2.jpg differ diff --git a/example_workflows/distorch2/wan2_2_t2i_fusionX_lightx2v_loras.json b/example_workflows/wan2_2 t2i lightx2v lora distorch2.json similarity index 58% rename from example_workflows/distorch2/wan2_2_t2i_fusionX_lightx2v_loras.json rename to example_workflows/wan2_2 t2i lightx2v lora distorch2.json index 2852761..8689365 100755 --- a/example_workflows/distorch2/wan2_2_t2i_fusionX_lightx2v_loras.json +++ b/example_workflows/wan2_2 t2i lightx2v lora distorch2.json @@ -1,80 +1,9 @@ { "id": "25dfce61-3571-4c9a-a7f8-6a83951d66aa", "revision": 0, - "last_node_id": 52, - "last_link_id": 97, + "last_node_id": 55, + "last_link_id": 102, "nodes": [ - { - "id": 10, - "type": "SaveImage", - "pos": [ - 4750, - -350 - ], - "size": [ - 2000, - 1700 - ], - "flags": {}, - "order": 14, - "mode": 0, - "inputs": [ - { - "name": "images", - "type": "IMAGE", - "link": 8 - } - ], - "outputs": [], - "properties": { - "Node name for S&R": "SaveImage", - "cnr_id": "comfy-core", - "ver": "0.3.43" - }, - "widgets_values": [ - "ComfyUI" - ], - "color": "#233", - "bgcolor": "#355" - }, - { - "id": 5, - "type": "EmptyHunyuanLatentVideo", - "pos": [ - 3650, - 300 - ], - "size": [ - 450, - 150 - ], - "flags": {}, - "order": 0, - "mode": 0, - "inputs": [], - "outputs": [ - { - "name": "LATENT", - "type": "LATENT", - "links": [ - 60 - ] - } - ], - "properties": { - "Node name for S&R": "EmptyHunyuanLatentVideo", - "cnr_id": "comfy-core", - "ver": "0.3.43" - }, - "widgets_values": [ - 1536, - 1536, - 1, - 1 - ], - "color": "#323", - "bgcolor": "#535" - }, { "id": 4, "type": "CLIPTextEncode", @@ -89,7 +18,7 @@ "flags": { "collapsed": false }, - "order": 9, + "order": 8, "mode": 0, "inputs": [ { @@ -110,9 +39,9 @@ ], "title": "Negative Prompt", "properties": { - "Node name for S&R": "CLIPTextEncode", "cnr_id": "comfy-core", - "ver": "0.3.43" + "ver": "0.3.43", + "Node name for S&R": "CLIPTextEncode" }, "widgets_values": [ "" @@ -120,125 +49,6 @@ "color": "#2a363b", "bgcolor": "#3f5159" }, - { - "id": 44, - "type": "LoraLoaderModelOnly", - "pos": [ - 3200, - 100 - ], - "size": [ - 400, - 150 - ], - "flags": {}, - "order": 8, - "mode": 0, - "inputs": [ - { - "name": "model", - "type": "MODEL", - "link": 78 - } - ], - "outputs": [ - { - "name": "MODEL", - "type": "MODEL", - "links": [ - 91 - ] - } - ], - "properties": { - "Node name for S&R": "LoraLoaderModelOnly", - "cnr_id": "comfy-core", - "ver": "0.3.46" - }, - "widgets_values": [ - "Wan21_T2V_14B_lightx2v_cfg_step_distill_lora_rank32.safetensors", - 0.6000000000000001 - ], - "color": "#232", - "bgcolor": "#353" - }, - { - "id": 43, - "type": "LoraLoaderModelOnly", - "pos": [ - 3182.24267578125, - -103.5514907836914 - ], - "size": [ - 400, - 150 - ], - "flags": {}, - "order": 6, - "mode": 0, - "inputs": [ - { - "name": "model", - "type": "MODEL", - "link": 97 - } - ], - "outputs": [ - { - "name": "MODEL", - "type": "MODEL", - "links": [ - 78 - ] - } - ], - "properties": { - "Node name for S&R": "LoraLoaderModelOnly", - "cnr_id": "comfy-core", - "ver": "0.3.46" - }, - "widgets_values": [ - "Wan2.1_T2V_14B_FusionX_LoRA.safetensors", - 0.8000000000000002 - ], - "color": "#232", - "bgcolor": "#353" - }, - { - "id": 8, - "type": "VAELoader", - "pos": [ - 4450, - -50 - ], - "size": [ - 250, - 100 - ], - "flags": {}, - "order": 1, - "mode": 0, - "inputs": [], - "outputs": [ - { - "name": "VAE", - "type": "VAE", - "links": [ - 9 - ] - } - ], - "properties": { - "Node name for S&R": "VAELoader", - "cnr_id": "comfy-core", - "ver": "0.3.43" - }, - "widgets_values": [ - "wan_2.1_vae.safetensors" - ], - "color": "#323", - "bgcolor": "#535" - }, { "id": 36, "type": "KSamplerAdvanced", @@ -251,7 +61,7 @@ 546 ], "flags": {}, - "order": 12, + "order": 11, "mode": 0, "inputs": [ { @@ -285,13 +95,13 @@ } ], "properties": { - "Node name for S&R": "KSamplerAdvanced", "cnr_id": "comfy-core", - "ver": "0.3.46" + "ver": "0.3.46", + "Node name for S&R": "KSamplerAdvanced" }, "widgets_values": [ "enable", - 575669122636822, + 8496083239430, "randomize", 8, 1, @@ -316,7 +126,7 @@ 546 ], "flags": {}, - "order": 11, + "order": 10, "mode": 0, "inputs": [ { @@ -350,13 +160,13 @@ } ], "properties": { - "Node name for S&R": "KSamplerAdvanced", "cnr_id": "comfy-core", - "ver": "0.3.46" + "ver": "0.3.46", + "Node name for S&R": "KSamplerAdvanced" }, "widgets_values": [ "enable", - 202136745531075, + 38613268423774, "randomize", 8, 1, @@ -370,15 +180,169 @@ "bgcolor": "#335" }, { - "id": 29, - "type": "LoraLoader", + "id": 9, + "type": "VAEDecode", "pos": [ - 3190.54638671875, - -428.14935302734375 + 4450.001953125, + -696.47216796875 ], "size": [ - 400, - 150 + 140, + 46 + ], + "flags": {}, + "order": 12, + "mode": 0, + "inputs": [ + { + "name": "samples", + "type": "LATENT", + "link": 65 + }, + { + "name": "vae", + "type": "VAE", + "link": 102 + } + ], + "outputs": [ + { + "name": "IMAGE", + "type": "IMAGE", + "links": [ + 8 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.43", + "Node name for S&R": "VAEDecode" + }, + "widgets_values": [], + "color": "#323", + "bgcolor": "#535" + }, + { + "id": 10, + "type": "SaveImage", + "pos": [ + 4611.58251953125, + -668.0137939453125 + ], + "size": [ + 912.117431640625, + 1108.58544921875 + ], + "flags": {}, + "order": 13, + "mode": 0, + "inputs": [ + { + "name": "images", + "type": "IMAGE", + "link": 8 + } + ], + "outputs": [], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.43", + "Node name for S&R": "SaveImage" + }, + "widgets_values": [ + "MultiGPU" + ], + "color": "#233", + "bgcolor": "#355" + }, + { + "id": 51, + "type": "CLIPLoaderMultiGPU", + "pos": [ + 3174.543701171875, + -421.68939208984375 + ], + "size": [ + 410.7702941894531, + 110.15969848632812 + ], + "flags": {}, + "order": 0, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "CLIP", + "type": "CLIP", + "links": [ + 100 + ] + } + ], + "properties": { + "cnr_id": "comfyui-multigpu", + "ver": "161174266c29e5860e5b565315fba99d2bc5f1e0", + "Node name for S&R": "CLIPLoaderMultiGPU" + }, + "widgets_values": [ + "umt5_xxl_fp8_e4m3fn_scaled.safetensors", + "wan", + "cuda:0" + ], + "color": "#008181", + "bgcolor": "rgba(24,24,27,.9)" + }, + { + "id": 55, + "type": "VAELoaderDisTorch2MultiGPU", + "pos": [ + 3213.78515625, + 29.56181526184082 + ], + "size": [ + 297.41796875, + 178 + ], + "flags": {}, + "order": 1, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "VAE", + "type": "VAE", + "links": [ + 102 + ] + } + ], + "properties": { + "cnr_id": "comfyui-multigpu", + "ver": "161174266c29e5860e5b565315fba99d2bc5f1e0", + "Node name for S&R": "VAELoaderDisTorch2MultiGPU" + }, + "widgets_values": [ + "wan_2.1_vae.safetensors", + "cuda:0", + 0, + "cpu", + "", + true + ], + "color": "#008181", + "bgcolor": "rgba(24,24,27,.9)" + }, + { + "id": 44, + "type": "LoraLoaderModelOnly", + "pos": [ + 3645.671630859375, + -436.70050048828125 + ], + "size": [ + 474.6925354003906, + 91.07210540771484 ], "flags": {}, "order": 7, @@ -387,12 +351,54 @@ { "name": "model", "type": "MODEL", - "link": 39 + "link": 101 + } + ], + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "links": [ + 91 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.46", + "Node name for S&R": "LoraLoaderModelOnly" + }, + "widgets_values": [ + "Wan2.2-T2V-A14B-4steps-lora-rank64-Seko-V1.1/low_noise.safetensors", + 1 + ], + "color": "#232", + "bgcolor": "#353" + }, + { + "id": 29, + "type": "LoraLoader", + "pos": [ + 3637.26611328125, + -691.7128295898438 + ], + "size": [ + 482.47406005859375, + 126 + ], + "flags": {}, + "order": 6, + "mode": 0, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 99 }, { "name": "clip", "type": "CLIP", - "link": 40 + "link": 100 } ], "outputs": [ @@ -413,18 +419,162 @@ } ], "properties": { - "Node name for S&R": "LoraLoader", "cnr_id": "comfy-core", - "ver": "0.3.43" + "ver": "0.3.43", + "Node name for S&R": "LoraLoader" }, "widgets_values": [ - "Wan21_T2V_14B_lightx2v_cfg_step_distill_lora_rank32.safetensors", - 0.6000000000000001, - 0.6000000000000001 + "Wan2.2-T2V-A14B-4steps-lora-rank64-Seko-V1.1/high_noise.safetensors", + 1, + 1 ], "color": "#232", "bgcolor": "#353" }, + { + "id": 50, + "type": "UNETLoaderDisTorch2MultiGPU", + "pos": [ + 3169.217041015625, + -698.2782592773438 + ], + "size": [ + 440.8240051269531, + 202 + ], + "flags": {}, + "order": 2, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "links": [ + 99 + ] + } + ], + "properties": { + "cnr_id": "comfyui-multigpu", + "ver": "161174266c29e5860e5b565315fba99d2bc5f1e0", + "Node name for S&R": "UNETLoaderDisTorch2MultiGPU" + }, + "widgets_values": [ + "wan2.2_t2v_high_noise_14B_fp8_scaled.safetensors", + "default", + "cuda:0", + 9, + "cpu", + "", + true + ], + "color": "#008181", + "bgcolor": "rgba(24,24,27,.9)" + }, + { + "id": 53, + "type": "MarkdownNote", + "pos": [ + 2355.81494140625, + -698.0171508789062 + ], + "size": [ + 777.6646728515625, + 937.3121337890625 + ], + "flags": {}, + "order": 3, + "mode": 0, + "inputs": [], + "outputs": [], + "title": "ComfyUI-MultiGPU Note - wan2_2 Double UNet DisTorch2", + "properties": {}, + "widgets_values": [ + "A DisTorch2 Wan 2.2 workflow where we eschew our other `gpu`, offloading both UNets by placing blocks on the `cpu`. In this case we are using the DisTorch2 node to statically allocate approximately 70% of the UNet model (13.3G) to the `cpu`, along with a proportional amount of the LoRAs patched to the model. With `eject_models` being `True`, all other models on the `compute` card (`cuda:0`) will be unloaded, regardless of size, ensuring a clean compute card prior to inference.\n\n## Custom Node\n- [ComfyUI-MultiGPU](https://github.com/pollockjj/ComfyUI-MultiGPU)\n```\nšŸ“‚ ComfyUI/\nā”œā”€ā”€ šŸ“‚ custom_nodes/\n│ ā”œā”€ā”€ šŸ“‚ ComfyUI-MultiGPU/\n```\n## Model links\n\n**Diffusion model**\n- [wan2.2_t2v_high_noise_14B_fp8_scaled.safetensors](https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/blob/main/split_files/diffusion_models/wan2.2_t2v_high_noise_14B_fp8_scaled.safetensors)\n- [wan2.2_t2v_low_noise_14B_fp8_scaled.safetensors](https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/blob/main/split_files/diffusion_models/wan2.2_t2v_low_noise_14B_fp8_scaled.safetensors)\n\n**CLIP**\n- [umt5_xxl_fp8_e4m3fn_scaled.safetensors](https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/resolve/main/split_files/text_encoders/umt5_xxl_fp8_e4m3fn_scaled.safetensors)\n\n**VAE**\n- [wan_2.1_vae.safetensors](https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/blob/main/split_files/vae/wan_2.1_vae.safetensors)\n\n**LoRA**\n- [high_noise_model.safetensors](https://huggingface.co/lightx2v/Wan2.2-Lightning/resolve/main/Wan2.2-T2V-A14B-4steps-lora-rank64-Seko-V1.1/high_noise_model.safetensors)\n- [low_noise_model.safetensors](https://huggingface.co/lightx2v/Wan2.2-Lightning/resolve/main/Wan2.2-T2V-A14B-4steps-lora-rank64-Seko-V1.1/low_noise_model.safetensors)\n\n## Model Storage Location\n\n```\nšŸ“‚ ComfyUI/\nā”œā”€ā”€ šŸ“‚ models/\n│ ā”œā”€ā”€ šŸ“‚ clip/\n│ │ └── umt5_xxl_fp8_e4m3fn_scaled.safetensors\n│ ā”œā”€ā”€ šŸ“‚ unet/\n│ │ ā”œā”€ā”€ wan2.2_t2v_high_noise_14B_fp8_scaled.safetensors [🟩🟩🟩🟪🟪🟪🟪🟪🟪🟪]\n│ │ ā”œā”€ā”€ wan2.2_t2v_low_noise_14B_fp8_scaled.safetensors [🟩🟩🟩🟪🟪🟪🟪🟪🟪🟪]\n│ ā”œā”€ā”€ā”€šŸ“‚ loras/\n│ ā”œā”€ā”€ā”€ā”€ā”€šŸ“‚ Wan2.2-T2V-A14B-4steps-lora-rank64-Seko-V1.1/\n│ │ ā”œā”€ā”€ā”€ā”€ā”€ā”€ high_noise_model.safetensors [🟩🟩🟩🟪🟪🟪🟪🟪🟪🟪]\n│ │ └────── low_noise_model.safetensors [🟩🟩🟩🟪🟪🟪🟪🟪🟪🟪]\n│ ā”œā”€ā”€ šŸ“‚ vae/\n│ │ └── qwen_image_vae.safetensors \n```\n## Device Mapping (Example: Two GPUs, 1 CPU)\n```\nšŸ–„ļø system \nā”œā”€ā”€ 🟢 cuda:0\n│ └── wan2.2_t2v_high_noise_14B_fp8_scaled.safetensors [🟩🟩🟩]\n│ └── wan2.2_t2v_low_noise_14B_fp8_scaled.safetensors [🟩🟩🟩]\n│ └── high_noise_model.safetensors [🟩🟩🟩]\n│ └── low_noise_model.safetensors [🟩🟩🟩]\n│ └── umt5_xxl_fp8_e4m3fn_scaled.safetensors\n│ └── wan_2.1_vae.safetensors\nā”œā”€ā”€ 🟣 cuda:1\n│ └── EMPTY\nā”œā”€ā”€ āš™ļø cpu\n └── wan2.2_t2v_high_noise_14B_fp8_scaled.safetensors [🟪🟪🟪🟪🟪🟪🟪]\n └── wan2.2_t2v_low_noise_14B_fp8_scaled.safetensors [🟪🟪🟪🟪🟪🟪🟪]\n └── high_noise_model.safetensors [🟪🟪🟪🟪🟪🟪🟪]\n └── low_noise_model.safetensors [🟪🟪🟪🟪🟪🟪🟪]\n```" + ], + "color": "#008181", + "bgcolor": "rgba(24,24,27,.9)" + }, + { + "id": 52, + "type": "UNETLoaderDisTorch2MultiGPU", + "pos": [ + 3194.302490234375, + -254.25840759277344 + ], + "size": [ + 401.1171569824219, + 202 + ], + "flags": {}, + "order": 4, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "links": [ + 101 + ] + } + ], + "properties": { + "cnr_id": "comfyui-multigpu", + "ver": "161174266c29e5860e5b565315fba99d2bc5f1e0", + "Node name for S&R": "UNETLoaderDisTorch2MultiGPU" + }, + "widgets_values": [ + "wan2.2_t2v_low_noise_14B_fp8_scaled.safetensors", + "default", + "cuda:0", + 9, + "cpu", + "", + true + ], + "color": "#008181", + "bgcolor": "rgba(24,24,27,.9)" + }, + { + "id": 5, + "type": "EmptyHunyuanLatentVideo", + "pos": [ + 3650, + 300 + ], + "size": [ + 450, + 150 + ], + "flags": {}, + "order": 5, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "LATENT", + "type": "LATENT", + "links": [ + 60 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.43", + "Node name for S&R": "EmptyHunyuanLatentVideo" + }, + "widgets_values": [ + 1536, + 1536, + 1, + 1 + ], + "color": "#323", + "bgcolor": "#535" + }, { "id": 3, "type": "CLIPTextEncode", @@ -437,7 +587,7 @@ 350 ], "flags": {}, - "order": 10, + "order": 9, "mode": 0, "inputs": [ { @@ -458,227 +608,15 @@ ], "title": "Positive Prompt", "properties": { - "Node name for S&R": "CLIPTextEncode", "cnr_id": "comfy-core", - "ver": "0.3.43" + "ver": "0.3.43", + "Node name for S&R": "CLIPTextEncode" }, "widgets_values": [ - "A towering technological monolith in a cyberpunk cityscape at night, with \"DisTorch 2\" emblazoned across its surface in massive neon blue-green mixed with purple letters that illuminate the surrounding buildings. The text occupies the central third of the frame, crafted from glowing plasma tubes and crackling energy. \"now with .safetensors!\" in same styling but smaller, italic version of the font splashed in the lower right-hand corner of the image. Rain-slicked streets below reflect the brilliant signage, while holographic advertisements and flying vehicles populate the background. Moody atmospheric lighting, heavy contrast, photorealistic textures, cinematic color grading. " + "A towering technological monolith in a cyberpunk cityscape at night, with \"WAN 2.2\" and \"T2I\" emblazoned across its surface in massive neon blue-green mixed with purple letters that illuminate the surrounding buildings, with a smaller \"lightx2v\" underneath, bursting with color. The text occupies the central third of the frame, crafted from glowing plasma tubes and crackling energy. Rain-slicked streets below reflect the brilliant signage, while holographic advertisements and flying vehicles populate the background. Moody atmospheric lighting, heavy contrast, photorealistic textures, cinematic color grading. " ], "color": "#2a363b", "bgcolor": "#3f5159" - }, - { - "id": 9, - "type": "VAEDecode", - "pos": [ - 4450, - 112.2901840209961 - ], - "size": [ - 250, - 150 - ], - "flags": {}, - "order": 13, - "mode": 0, - "inputs": [ - { - "name": "samples", - "type": "LATENT", - "link": 65 - }, - { - "name": "vae", - "type": "VAE", - "link": 9 - } - ], - "outputs": [ - { - "name": "IMAGE", - "type": "IMAGE", - "links": [ - 8 - ] - } - ], - "properties": { - "Node name for S&R": "VAEDecode", - "cnr_id": "comfy-core", - "ver": "0.3.43" - }, - "widgets_values": [], - "color": "#323", - "bgcolor": "#535" - }, - { - "id": 51, - "type": "CLIPLoaderMultiGPU", - "pos": [ - 2706.568603515625, - -368.65240478515625 - ], - "size": [ - 380.6119384765625, - 106 - ], - "flags": {}, - "order": 2, - "mode": 0, - "inputs": [], - "outputs": [ - { - "name": "CLIP", - "type": "CLIP", - "links": [ - 96 - ] - } - ], - "properties": { - "Node name for S&R": "CLIPLoaderMultiGPU" - }, - "widgets_values": [ - "umt5_xxl_fp8_e4m3fn_scaled.safetensors", - "wan", - "cuda:1" - ], - "color": "#233", - "bgcolor": "#355" - }, - { - "id": 50, - "type": "UNETLoaderDisTorch2MultiGPU", - "pos": [ - 2650.002685546875, - -685.0429077148438 - ], - "size": [ - 440.8240051269531, - 202 - ], - "flags": {}, - "order": 3, - "mode": 0, - "inputs": [], - "outputs": [ - { - "name": "MODEL", - "type": "MODEL", - "links": [ - 93 - ] - } - ], - "properties": { - "Node name for S&R": "UNETLoaderDisTorch2MultiGPU" - }, - "widgets_values": [ - "wan2.2_t2v_high_noise_14B_fp8_scaled.safetensors", - "default", - "cuda:0", - 4, - "cpu", - "", - true - ], - "color": "#233", - "bgcolor": "#355" - }, - { - "id": 30, - "type": "LoraLoader", - "pos": [ - 3182.037353515625, - -675.4197387695312 - ], - "size": [ - 400, - 150 - ], - "flags": {}, - "order": 5, - "mode": 0, - "inputs": [ - { - "name": "model", - "type": "MODEL", - "link": 93 - }, - { - "name": "clip", - "type": "CLIP", - "link": 96 - } - ], - "outputs": [ - { - "name": "MODEL", - "type": "MODEL", - "links": [ - 39 - ] - }, - { - "name": "CLIP", - "type": "CLIP", - "links": [ - 40 - ] - } - ], - "properties": { - "Node name for S&R": "LoraLoader", - "cnr_id": "comfy-core", - "ver": "0.3.43" - }, - "widgets_values": [ - "Wan2.1_T2V_14B_FusionX_LoRA.safetensors", - 0.8000000000000002, - 0.8000000000000002 - ], - "color": "#232", - "bgcolor": "#353" - }, - { - "id": 52, - "type": "UNETLoaderDisTorch2MultiGPU", - "pos": [ - 2666.862548828125, - -89.75868225097656 - ], - "size": [ - 401.1171569824219, - 202 - ], - "flags": {}, - "order": 4, - "mode": 0, - "inputs": [], - "outputs": [ - { - "name": "MODEL", - "type": "MODEL", - "links": [ - 97 - ] - } - ], - "properties": { - "Node name for S&R": "UNETLoaderDisTorch2MultiGPU" - }, - "widgets_values": [ - "wan2.2_t2v_low_noise_14B_fp8_scaled.safetensors", - "default", - "cuda:1", - 4, - "cpu", - "", - true - ], - "color": "#233", - "bgcolor": "#355" } ], "links": [ @@ -690,30 +628,6 @@ 0, "IMAGE" ], - [ - 9, - 8, - 0, - 9, - 1, - "VAE" - ], - [ - 39, - 30, - 0, - 29, - 0, - "MODEL" - ], - [ - 40, - 30, - 1, - 29, - 1, - "CLIP" - ], [ 58, 3, @@ -770,14 +684,6 @@ 0, "LATENT" ], - [ - 78, - 43, - 0, - 44, - 0, - "MODEL" - ], [ 88, 29, @@ -811,41 +717,49 @@ "MODEL" ], [ - 93, + 99, 50, 0, - 30, + 29, 0, "MODEL" ], [ - 96, + 100, 51, 0, - 30, + 29, 1, "CLIP" ], [ - 97, + 101, 52, 0, - 43, + 44, 0, "MODEL" + ], + [ + 102, + 55, + 0, + 9, + 1, + "VAE" ] ], "groups": [], "config": {}, "extra": { "ds": { - "scale": 0.7051680186913379, + "scale": 0.641061835173946, "offset": [ - -2597.5068415226533, - 881.6331759197561 + -2192.490736659068, + 1081.0525365299138 ] }, - "frontendVersion": "1.25.9", + "frontendVersion": "1.27.10", "VHS_latentpreview": false, "VHS_latentpreviewrate": 0, "VHS_MetadataImage": true, diff --git a/example_workflows/wan2_2 t2v lightx2v lora distorch2.jpg b/example_workflows/wan2_2 t2v lightx2v lora distorch2.jpg new file mode 100755 index 0000000..bcad55d Binary files /dev/null and b/example_workflows/wan2_2 t2v lightx2v lora distorch2.jpg differ diff --git a/example_workflows/wan2_2 t2v lightx2v lora distorch2.json b/example_workflows/wan2_2 t2v lightx2v lora distorch2.json new file mode 100755 index 0000000..977974e --- /dev/null +++ b/example_workflows/wan2_2 t2v lightx2v lora distorch2.json @@ -0,0 +1,795 @@ +{ + "id": "b5850607-44ed-4abf-85d7-1399865d4011", + "revision": 0, + "last_node_id": 59, + "last_link_id": 104, + "nodes": [ + { + "id": 4, + "type": "CLIPTextEncode", + "pos": [ + 3650, + 100 + ], + "size": [ + 450, + 150 + ], + "flags": { + "collapsed": false + }, + "order": 9, + "mode": 0, + "inputs": [ + { + "name": "clip", + "type": "CLIP", + "link": 89 + } + ], + "outputs": [ + { + "name": "CONDITIONING", + "type": "CONDITIONING", + "links": [ + 59, + 64 + ] + } + ], + "title": "Negative Prompt", + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.43", + "Node name for S&R": "CLIPTextEncode" + }, + "widgets_values": [ + "" + ], + "color": "#2a363b", + "bgcolor": "#3f5159" + }, + { + "id": 35, + "type": "KSamplerAdvanced", + "pos": [ + 4152.58056640625, + -684.031005859375 + ], + "size": [ + 250, + 546 + ], + "flags": {}, + "order": 11, + "mode": 0, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 88 + }, + { + "name": "positive", + "type": "CONDITIONING", + "link": 58 + }, + { + "name": "negative", + "type": "CONDITIONING", + "link": 59 + }, + { + "name": "latent_image", + "type": "LATENT", + "link": 60 + } + ], + "outputs": [ + { + "name": "LATENT", + "type": "LATENT", + "links": [ + 61 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.46", + "Node name for S&R": "KSamplerAdvanced" + }, + "widgets_values": [ + "enable", + 463363085190188, + "randomize", + 8, + 1, + "euler", + "simple", + 0, + 4, + "disable" + ], + "color": "#223", + "bgcolor": "#335" + }, + { + "id": 51, + "type": "CLIPLoaderMultiGPU", + "pos": [ + 3174.543701171875, + -421.68939208984375 + ], + "size": [ + 410.7702941894531, + 110.15969848632812 + ], + "flags": {}, + "order": 0, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "CLIP", + "type": "CLIP", + "links": [ + 100 + ] + } + ], + "properties": { + "cnr_id": "comfyui-multigpu", + "ver": "161174266c29e5860e5b565315fba99d2bc5f1e0", + "Node name for S&R": "CLIPLoaderMultiGPU" + }, + "widgets_values": [ + "umt5_xxl_fp8_e4m3fn_scaled.safetensors", + "wan", + "cuda:0" + ], + "color": "#008181", + "bgcolor": "rgba(24,24,27,.9)" + }, + { + "id": 55, + "type": "VAELoaderDisTorch2MultiGPU", + "pos": [ + 3213.78515625, + 29.56181526184082 + ], + "size": [ + 297.41796875, + 178 + ], + "flags": {}, + "order": 1, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "VAE", + "type": "VAE", + "links": [ + 102 + ] + } + ], + "properties": { + "cnr_id": "comfyui-multigpu", + "ver": "161174266c29e5860e5b565315fba99d2bc5f1e0", + "Node name for S&R": "VAELoaderDisTorch2MultiGPU" + }, + "widgets_values": [ + "wan_2.1_vae.safetensors", + "cuda:0", + 0, + "cpu", + "", + true + ], + "color": "#008181", + "bgcolor": "rgba(24,24,27,.9)" + }, + { + "id": 44, + "type": "LoraLoaderModelOnly", + "pos": [ + 3645.671630859375, + -436.70050048828125 + ], + "size": [ + 474.6925354003906, + 91.07210540771484 + ], + "flags": {}, + "order": 7, + "mode": 0, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 101 + } + ], + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "links": [ + 91 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.46", + "Node name for S&R": "LoraLoaderModelOnly" + }, + "widgets_values": [ + "Wan2.2-T2V-A14B-4steps-lora-rank64-Seko-V1.1/low_noise.safetensors", + 1 + ], + "color": "#232", + "bgcolor": "#353" + }, + { + "id": 29, + "type": "LoraLoader", + "pos": [ + 3637.26611328125, + -691.7128295898438 + ], + "size": [ + 482.47406005859375, + 126 + ], + "flags": {}, + "order": 8, + "mode": 0, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 99 + }, + { + "name": "clip", + "type": "CLIP", + "link": 100 + } + ], + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "links": [ + 88 + ] + }, + { + "name": "CLIP", + "type": "CLIP", + "links": [ + 89, + 90 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.43", + "Node name for S&R": "LoraLoader" + }, + "widgets_values": [ + "Wan2.2-T2V-A14B-4steps-lora-rank64-Seko-V1.1/high_noise.safetensors", + 1, + 1 + ], + "color": "#232", + "bgcolor": "#353" + }, + { + "id": 53, + "type": "MarkdownNote", + "pos": [ + 2355.81494140625, + -698.0171508789062 + ], + "size": [ + 777.6646728515625, + 937.3121337890625 + ], + "flags": {}, + "order": 2, + "mode": 0, + "inputs": [], + "outputs": [], + "title": "ComfyUI-MultiGPU Note - wan2_2 Double UNet DisTorch2", + "properties": {}, + "widgets_values": [ + "A DisTorch2 Wan 2.2 workflow where we eschew our other `gpu`, offloading both UNets by placing blocks on the `cpu`. In this case we are using the DisTorch2 node to statically allocate approximately 70% of the UNet model (13.3G) to the `cpu`, along with a proportional amount of the LoRAs patched to the model. With `eject_models` being `True`, all other models on the `compute` card (`cuda:0`) will be unloaded, regardless of size, ensuring a clean compute card prior to inference.\n\n## Custom Node\n- [ComfyUI-MultiGPU](https://github.com/pollockjj/ComfyUI-MultiGPU)\n```\nšŸ“‚ ComfyUI/\nā”œā”€ā”€ šŸ“‚ custom_nodes/\n│ ā”œā”€ā”€ šŸ“‚ ComfyUI-MultiGPU/\n```\n## Model links\n\n**Diffusion model**\n- [wan2.2_t2v_high_noise_14B_fp8_scaled.safetensors](https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/blob/main/split_files/diffusion_models/wan2.2_t2v_high_noise_14B_fp8_scaled.safetensors)\n- [wan2.2_t2v_low_noise_14B_fp8_scaled.safetensors](https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/blob/main/split_files/diffusion_models/wan2.2_t2v_low_noise_14B_fp8_scaled.safetensors)\n\n**CLIP**\n- [umt5_xxl_fp8_e4m3fn_scaled.safetensors](https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/resolve/main/split_files/text_encoders/umt5_xxl_fp8_e4m3fn_scaled.safetensors)\n\n**VAE**\n- [wan_2.1_vae.safetensors](https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/blob/main/split_files/vae/wan_2.1_vae.safetensors)\n\n**LoRA**\n- [high_noise_model.safetensors](https://huggingface.co/lightx2v/Wan2.2-Lightning/resolve/main/Wan2.2-T2V-A14B-4steps-lora-rank64-Seko-V1.1/high_noise_model.safetensors)\n- [low_noise_model.safetensors](https://huggingface.co/lightx2v/Wan2.2-Lightning/resolve/main/Wan2.2-T2V-A14B-4steps-lora-rank64-Seko-V1.1/low_noise_model.safetensors)\n\n## Model Storage Location\n\n```\nšŸ“‚ ComfyUI/\nā”œā”€ā”€ šŸ“‚ models/\n│ ā”œā”€ā”€ šŸ“‚ clip/\n│ │ └── umt5_xxl_fp8_e4m3fn_scaled.safetensors\n│ ā”œā”€ā”€ šŸ“‚ unet/\n│ │ ā”œā”€ā”€ wan2.2_t2v_high_noise_14B_fp8_scaled.safetensors [🟩🟩🟩🟪🟪🟪🟪🟪🟪🟪]\n│ │ ā”œā”€ā”€ wan2.2_t2v_low_noise_14B_fp8_scaled.safetensors [🟩🟩🟩🟪🟪🟪🟪🟪🟪🟪]\n│ ā”œā”€ā”€ā”€šŸ“‚ loras/\n│ ā”œā”€ā”€ā”€ā”€ā”€šŸ“‚ Wan2.2-T2V-A14B-4steps-lora-rank64-Seko-V1.1/\n│ │ ā”œā”€ā”€ā”€ā”€ā”€ā”€ high_noise_model.safetensors [🟩🟩🟩🟪🟪🟪🟪🟪🟪🟪]\n│ │ └────── low_noise_model.safetensors [🟩🟩🟩🟪🟪🟪🟪🟪🟪🟪]\n│ ā”œā”€ā”€ šŸ“‚ vae/\n│ │ └── qwen_image_vae.safetensors \n```\n## Device Mapping (Example: Two GPUs, 1 CPU)\n```\nšŸ–„ļø system \nā”œā”€ā”€ 🟢 cuda:0\n│ └── wan2.2_t2v_high_noise_14B_fp8_scaled.safetensors [🟩🟩🟩]\n│ └── wan2.2_t2v_low_noise_14B_fp8_scaled.safetensors [🟩🟩🟩]\n│ └── high_noise_model.safetensors [🟩🟩🟩]\n│ └── low_noise_model.safetensors [🟩🟩🟩]\n│ └── umt5_xxl_fp8_e4m3fn_scaled.safetensors\n│ └── wan_2.1_vae.safetensors\nā”œā”€ā”€ 🟣 cuda:1\n│ └── EMPTY\nā”œā”€ā”€ āš™ļø cpu\n └── wan2.2_t2v_high_noise_14B_fp8_scaled.safetensors [🟪🟪🟪🟪🟪🟪🟪]\n └── wan2.2_t2v_low_noise_14B_fp8_scaled.safetensors [🟪🟪🟪🟪🟪🟪🟪]\n └── high_noise_model.safetensors [🟪🟪🟪🟪🟪🟪🟪]\n └── low_noise_model.safetensors [🟪🟪🟪🟪🟪🟪🟪]\n```" + ], + "color": "#008181", + "bgcolor": "rgba(24,24,27,.9)" + }, + { + "id": 3, + "type": "CLIPTextEncode", + "pos": [ + 3650, + -300 + ], + "size": [ + 450, + 350 + ], + "flags": {}, + "order": 10, + "mode": 0, + "inputs": [ + { + "name": "clip", + "type": "CLIP", + "link": 90 + } + ], + "outputs": [ + { + "name": "CONDITIONING", + "type": "CONDITIONING", + "links": [ + 58, + 63 + ] + } + ], + "title": "Positive Prompt", + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.43", + "Node name for S&R": "CLIPTextEncode" + }, + "widgets_values": [ + "A towering technological monolith in a cyberpunk cityscape at night, with \"WAN 2.2\" and \"T2V\" emblazoned across its surface in massive neon blue-green mixed with purple letters that illuminate the surrounding buildings, with a smaller \"lightx2v\" underneath, bursting with color. The text occupies the central third of the frame, crafted from glowing plasma tubes and crackling energy. Rain-slicked streets below reflect the brilliant signage, while holographic advertisements and flying vehicles populate the background. Moody atmospheric lighting, heavy contrast, photorealistic textures, cinematic color grading. " + ], + "color": "#2a363b", + "bgcolor": "#3f5159" + }, + { + "id": 52, + "type": "UNETLoaderDisTorch2MultiGPU", + "pos": [ + 3194.302490234375, + -254.25840759277344 + ], + "size": [ + 401.1171569824219, + 202 + ], + "flags": {}, + "order": 3, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "links": [ + 101 + ] + } + ], + "properties": { + "cnr_id": "comfyui-multigpu", + "ver": "161174266c29e5860e5b565315fba99d2bc5f1e0", + "Node name for S&R": "UNETLoaderDisTorch2MultiGPU" + }, + "widgets_values": [ + "wan2.2_t2v_low_noise_14B_fp8_scaled.safetensors", + "default", + "cuda:0", + 13, + "cpu", + "", + true + ], + "color": "#008181", + "bgcolor": "rgba(24,24,27,.9)" + }, + { + "id": 56, + "type": "MarkdownNote", + "pos": [ + 7540.54541015625, + -833.9743041992188 + ], + "size": [ + 634.0631103515625, + 720.5999755859375 + ], + "flags": {}, + "order": 4, + "mode": 0, + "inputs": [], + "outputs": [], + "title": "ComfyUI-MultiGPU Note - wan2_2 Double UNet DisTorch2", + "properties": {}, + "widgets_values": [ + "A DisTorch2 Wan 2.2 workflow where we ignore CPU offloading completely and load both UNets placing blocks on the CPU and CLIP DisTorch2. In this case we are using the DisTorch2 node to statically allocate approximately 70% of the UNet model (13.3G) to the cpu. With `eject_models` being `True`, all other models on the `compute` card (`cuda:0`) will be unloaded, regardless of size, ensuring a clean compute card prior to inference.\n\n## Custom Node\n- [ComfyUI-MultiGPU](https://github.com/pollockjj/ComfyUI-MultiGPU)\n```\nšŸ“‚ ComfyUI/\nā”œā”€ā”€ šŸ“‚ custom_nodes/\n│ ā”œā”€ā”€ šŸ“‚ ComfyUI-MultiGPU/\n```\n## Model links\n\n**Diffusion model**\n- [wan2.2_t2v_high_noise_14B_fp8_scaled.safetensors](https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/blob/main/split_files/diffusion_models/wan2.2_t2v_high_noise_14B_fp8_scaled.safetensors)\n- [wan2.2_t2v_low_noise_14B_fp8_scaled.safetensors](https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/blob/main/split_files/diffusion_models/wan2.2_t2v_low_noise_14B_fp8_scaled.safetensors)\n\n**CLIP**\n- [umt5_xxl_fp8_e4m3fn_scaled.safetensors](https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/resolve/main/split_files/text_encoders/umt5_xxl_fp8_e4m3fn_scaled.safetensors)\n\n**VAE**\n- [wan_2.1_vae.safetensors](https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/blob/main/split_files/vae/wan_2.1_vae.safetensors)\n\nModel Storage Location\n\n```\nšŸ“‚ ComfyUI/\nā”œā”€ā”€ šŸ“‚ models/\n│ ā”œā”€ā”€ šŸ“‚ clip/\n│ │ └── umt5_xxl_fp8_e4m3fn_scaled.safetensors\n│ ā”œā”€ā”€ šŸ“‚ unet/\n│ │ ā”œā”€ā”€ wan2.2_t2v_high_noise_14B_fp8_scaled.safetensors [🟩🟩🟩🟪🟪🟪🟪🟪🟪🟪]\n│ │ ā”œā”€ā”€ wan2.2_t2v_low_noise_14B_fp8_scaled.safetensors [🟩🟩🟩🟪🟪🟪🟪🟪🟪🟪]\n│ ā”œā”€ā”€ šŸ“‚ vae/\n│ │ └── qwen_image_vae.safetensors \n```\n## Device Mapping (Example: Two GPUs, 1 CPU)\n```\nšŸ–„ļø system \nā”œā”€ā”€ 🟢 cuda:0\n│ └── wan2.2_t2v_high_noise_14B_fp8_scaled.safetensors [🟩🟩🟩]\n│ └── wan2.2_t2v_low_noise_14B_fp8_scaled.safetensors [🟩🟩🟩]\nā”œā”€ā”€ 🟣 cuda:1\n│ └── wan2.2_t2v_high_noise_14B_fp8_scaled.safetensors [🟪🟪🟪🟪🟪🟪🟪]\n│ └── wan2.2_t2v_high_noise_14B_fp8_scaled.safetensors [🟪🟪🟪🟪🟪🟪🟪]\n│ └── umt5_xxl_fp8_e4m3fn_scaled.safetensors\n│ └── wan_2.1_vae.safetensors\nā”œā”€ā”€ āš™ļø cpu\n```" + ], + "color": "#008181", + "bgcolor": "rgba(24,24,27,.9)" + }, + { + "id": 9, + "type": "VAEDecode", + "pos": [ + 4450.001953125, + -696.47216796875 + ], + "size": [ + 140, + 46 + ], + "flags": {}, + "order": 13, + "mode": 0, + "inputs": [ + { + "name": "samples", + "type": "LATENT", + "link": 65 + }, + { + "name": "vae", + "type": "VAE", + "link": 102 + } + ], + "outputs": [ + { + "name": "IMAGE", + "type": "IMAGE", + "links": [ + 103 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.43", + "Node name for S&R": "VAEDecode" + }, + "widgets_values": [], + "color": "#323", + "bgcolor": "#535" + }, + { + "id": 58, + "type": "SaveAnimatedWEBP", + "pos": [ + 4616.23095703125, + -513.6134643554688 + ], + "size": [ + 674.6224975585938, + 820.6224975585938 + ], + "flags": {}, + "order": 14, + "mode": 0, + "inputs": [ + { + "name": "images", + "type": "IMAGE", + "link": 103 + } + ], + "outputs": [], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.64", + "Node name for S&R": "SaveAnimatedWEBP" + }, + "widgets_values": [ + "MultiGPU", + 16, + false, + 80, + "default" + ] + }, + { + "id": 5, + "type": "EmptyHunyuanLatentVideo", + "pos": [ + 3650, + 300 + ], + "size": [ + 450, + 150 + ], + "flags": {}, + "order": 5, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "LATENT", + "type": "LATENT", + "links": [ + 60 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.43", + "Node name for S&R": "EmptyHunyuanLatentVideo" + }, + "widgets_values": [ + 768, + 768, + 81, + 1 + ], + "color": "#323", + "bgcolor": "#535" + }, + { + "id": 50, + "type": "UNETLoaderDisTorch2MultiGPU", + "pos": [ + 3169.217041015625, + -698.2782592773438 + ], + "size": [ + 440.8240051269531, + 202 + ], + "flags": {}, + "order": 6, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "links": [ + 99 + ] + } + ], + "properties": { + "cnr_id": "comfyui-multigpu", + "ver": "161174266c29e5860e5b565315fba99d2bc5f1e0", + "Node name for S&R": "UNETLoaderDisTorch2MultiGPU" + }, + "widgets_values": [ + "wan2.2_t2v_high_noise_14B_fp8_scaled.safetensors", + "default", + "cuda:0", + 13, + "cuda:1", + "", + true + ], + "color": "#008181", + "bgcolor": "rgba(24,24,27,.9)" + }, + { + "id": 36, + "type": "KSamplerAdvanced", + "pos": [ + 4163.52001953125, + -74.00148010253906 + ], + "size": [ + 250, + 546 + ], + "flags": {}, + "order": 12, + "mode": 0, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 91 + }, + { + "name": "positive", + "type": "CONDITIONING", + "link": 63 + }, + { + "name": "negative", + "type": "CONDITIONING", + "link": 64 + }, + { + "name": "latent_image", + "type": "LATENT", + "link": 61 + } + ], + "outputs": [ + { + "name": "LATENT", + "type": "LATENT", + "links": [ + 65 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.46", + "Node name for S&R": "KSamplerAdvanced" + }, + "widgets_values": [ + "enable", + 989059799892359, + "randomize", + 8, + 1, + "euler", + "simple", + 4, + 8, + "disable" + ], + "color": "#223", + "bgcolor": "#335" + } + ], + "links": [ + [ + 58, + 3, + 0, + 35, + 1, + "CONDITIONING" + ], + [ + 59, + 4, + 0, + 35, + 2, + "CONDITIONING" + ], + [ + 60, + 5, + 0, + 35, + 3, + "LATENT" + ], + [ + 61, + 35, + 0, + 36, + 3, + "LATENT" + ], + [ + 63, + 3, + 0, + 36, + 1, + "CONDITIONING" + ], + [ + 64, + 4, + 0, + 36, + 2, + "CONDITIONING" + ], + [ + 65, + 36, + 0, + 9, + 0, + "LATENT" + ], + [ + 88, + 29, + 0, + 35, + 0, + "MODEL" + ], + [ + 89, + 29, + 1, + 4, + 0, + "CLIP" + ], + [ + 90, + 29, + 1, + 3, + 0, + "CLIP" + ], + [ + 91, + 44, + 0, + 36, + 0, + "MODEL" + ], + [ + 99, + 50, + 0, + 29, + 0, + "MODEL" + ], + [ + 100, + 51, + 0, + 29, + 1, + "CLIP" + ], + [ + 101, + 52, + 0, + 44, + 0, + "MODEL" + ], + [ + 102, + 55, + 0, + 9, + 1, + "VAE" + ], + [ + 103, + 9, + 0, + 58, + 0, + "IMAGE" + ] + ], + "groups": [], + "config": {}, + "extra": { + "ds": { + "scale": 0.6410618351739488, + "offset": [ + -1966.2624469350503, + 1246.7903506223172 + ] + }, + "frontendVersion": "1.27.10", + "VHS_latentpreview": false, + "VHS_latentpreviewrate": 0, + "VHS_MetadataImage": true, + "VHS_KeepIntermediate": true + }, + "version": 0.4 +} \ No newline at end of file diff --git a/nodes.py b/nodes.py index 9c8afbd..4a75b78 100644 --- a/nodes.py +++ b/nodes.py @@ -176,12 +176,10 @@ class LTXVLoader: return original_loader._load_vae(weights, config=None) class Florence2ModelLoader: + @classmethod def INPUT_TYPES(s): - all_llm_paths = folder_paths.get_folder_paths("LLM") - s.model_paths = create_path_dict(all_llm_paths, lambda x: x.is_dir()) - return {"required": { - "model": ([*s.model_paths], {"tooltip": "models are expected to be in Comfyui/models/LLM folder"}), + "model": ([item.name for item in Path(folder_paths.models_dir, "LLM").iterdir() if item.is_dir()], {"tooltip": "models are expected to be in Comfyui/models/LLM folder"}), "precision": (['fp16','bf16','fp32'],), "attention": ( [ 'flash_attention_2', 'sdpa', 'eager'],