From f5038d73bd7e0ea525f0f57b52f5f5d1efe9b8a6 Mon Sep 17 00:00:00 2001 From: John Pollock Date: Sat, 1 Feb 2025 08:00:00 -0600 Subject: [PATCH] bitsandbytes_NF4 example workflows --- examples/bitsandbytes_NF4.json | 593 ++++++++++++++++++++ examples/bitsandbytes_NF4_MultiGPU.json | 709 ++++++++++++++++++++++++ 2 files changed, 1302 insertions(+) create mode 100644 examples/bitsandbytes_NF4.json create mode 100644 examples/bitsandbytes_NF4_MultiGPU.json diff --git a/examples/bitsandbytes_NF4.json b/examples/bitsandbytes_NF4.json new file mode 100644 index 0000000..ef35bb7 --- /dev/null +++ b/examples/bitsandbytes_NF4.json @@ -0,0 +1,593 @@ +{ + "last_node_id": 46, + "last_link_id": 95, + "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": 92, + "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": 25, + "type": "RandomNoise", + "pos": [ + 390.974853515625, + 209.66781616210938 + ], + "size": [ + 236.60824584960938, + 88.84210968017578 + ], + "flags": {}, + "order": 0, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "NOISE", + "type": "NOISE", + "links": [ + 37 + ], + "shape": 3 + } + ], + "properties": { + "Node name for S&R": "RandomNoise" + }, + "widgets_values": [ + 647951758484750, + "randomize" + ] + }, + { + "id": 16, + "type": "KSamplerSelect", + "pos": [ + 398.8528137207031, + 360.1959533691406 + ], + "size": [ + 210, + 58 + ], + "flags": {}, + "order": 1, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "SAMPLER", + "type": "SAMPLER", + "links": [ + 19 + ], + "shape": 3 + } + ], + "properties": { + "Node name for S&R": "KSamplerSelect" + }, + "widgets_values": [ + "deis" + ] + }, + { + "id": 40, + "type": "VAEDecode", + "pos": [ + 879.790283203125, + -82.21487426757812 + ], + "size": [ + 210, + 46 + ], + "flags": {}, + "order": 10, + "mode": 0, + "inputs": [ + { + "name": "samples", + "type": "LATENT", + "link": 83 + }, + { + "name": "vae", + "type": "VAE", + "link": 95 + } + ], + "outputs": [ + { + "name": "IMAGE", + "type": "IMAGE", + "links": [ + 85 + ], + "slot_index": 0 + } + ], + "properties": { + "Node name for S&R": "VAEDecode" + }, + "widgets_values": [] + }, + { + "id": 41, + "type": "CLIPTextEncode", + "pos": [ + 420.7973937988281, + 467.3779296875 + ], + "size": [ + 400, + 200 + ], + "flags": {}, + "order": 6, + "mode": 0, + "inputs": [ + { + "name": "clip", + "type": "CLIP", + "link": 94 + } + ], + "outputs": [ + { + "name": "CONDITIONING", + "type": "CONDITIONING", + "links": [ + 87 + ], + "slot_index": 0 + } + ], + "properties": { + "Node name for S&R": "CLIPTextEncode" + }, + "widgets_values": [ + "A surreal digital landscape where the text \"DisTorch\" dominates the horizon like a massive neon billboard, rendered in electric purple against a sunset sky. Below, a vast network of interconnected neural pathways flows between crystalline GPU towers that pulse with internal light. The scene is captured in a hyperrealistic style with exceptional detail on the metallic surfaces and energy effects. Ray-traced reflections show the text mirrored in pools of liquid mercury scattered across the technological terrain." + ] + }, + { + "id": 9, + "type": "SaveImage", + "pos": [ + 1175.2930908203125, + -38.4615592956543 + ], + "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": 13, + "type": "SamplerCustomAdvanced", + "pos": [ + 887.4246215820312, + 144.73184204101562 + ], + "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": 46, + "type": "VAELoader", + "pos": [ + -88.5232162475586, + 363.0106201171875 + ], + "size": [ + 315, + 58 + ], + "flags": {}, + "order": 2, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "VAE", + "type": "VAE", + "links": [ + 95 + ], + "slot_index": 0 + } + ], + "properties": { + "Node name for S&R": "VAELoader" + }, + "widgets_values": [ + "ae.safetensors" + ] + }, + { + "id": 45, + "type": "DualCLIPLoader", + "pos": [ + -99.58111572265625, + 133.55831909179688 + ], + "size": [ + 315, + 106 + ], + "flags": {}, + "order": 3, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "CLIP", + "type": "CLIP", + "links": [ + 94 + ], + "slot_index": 0 + } + ], + "properties": { + "Node name for S&R": "DualCLIPLoader" + }, + "widgets_values": [ + "t5xxl_fp8_e4m3fn.safetensors", + "clip_l.safetensors", + "flux", + "default" + ] + }, + { + "id": 43, + "type": "CheckpointLoaderNF4", + "pos": [ + -90.82861328125, + -36.556331634521484 + ], + "size": [ + 315, + 98 + ], + "flags": {}, + "order": 4, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "links": [ + 92, + 93 + ], + "slot_index": 0 + }, + { + "name": "CLIP", + "type": "CLIP", + "links": null + }, + { + "name": "VAE", + "type": "VAE", + "links": null + } + ], + "properties": { + "Node name for S&R": "CheckpointLoaderNF4" + }, + "widgets_values": [ + "flux1-dev-bnb-nf4-v2.safetensors" + ] + }, + { + "id": 39, + "type": "EmptySD3LatentImage", + "pos": [ + 437.14581298828125, + -113.10137176513672 + ], + "size": [ + 315, + 106 + ], + "flags": {}, + "order": 5, + "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": 17, + "type": "BasicScheduler", + "pos": [ + 589.7777099609375, + 57.28058624267578 + ], + "size": [ + 210, + 106 + ], + "flags": {}, + "order": 7, + "mode": 0, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 93, + "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 + ] + } + ], + "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" + ], + [ + 85, + 40, + 0, + 9, + 0, + "IMAGE" + ], + [ + 87, + 41, + 0, + 22, + 1, + "CONDITIONING" + ], + [ + 92, + 43, + 0, + 22, + 0, + "MODEL" + ], + [ + 93, + 43, + 0, + 17, + 0, + "MODEL" + ], + [ + 94, + 45, + 0, + 41, + 0, + "CLIP" + ], + [ + 95, + 46, + 0, + 40, + 1, + "VAE" + ] + ], + "groups": [], + "config": {}, + "extra": { + "ds": { + "scale": 0.8769226950001233, + "offset": [ + 508.92202072486396, + 419.7896196109216 + ] + }, + "ue_links": [], + "VHS_latentpreview": false, + "VHS_latentpreviewrate": 0, + "node_versions": { + "comfy-core": "0.3.12", + "ComfyUI-MultiGPU": "3dbfcc713552b0560a471c10d9b29520e8b1981e" + } + }, + "version": 0.4 +} \ No newline at end of file diff --git a/examples/bitsandbytes_NF4_MultiGPU.json b/examples/bitsandbytes_NF4_MultiGPU.json new file mode 100644 index 0000000..e91df21 --- /dev/null +++ b/examples/bitsandbytes_NF4_MultiGPU.json @@ -0,0 +1,709 @@ +{ + "last_node_id": 44, + "last_link_id": 91, + "nodes": [ + { + "id": 22, + "type": "BasicGuider", + "pos": [ + 383.62896728515625, + 96.27555847167969 + ], + "size": [ + 161.1999969482422, + 46 + ], + "flags": {}, + "order": 11, + "mode": 0, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 90, + "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": 25, + "type": "RandomNoise", + "pos": [ + 390.974853515625, + 209.66781616210938 + ], + "size": [ + 236.60824584960938, + 88.84210968017578 + ], + "flags": {}, + "order": 0, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "NOISE", + "type": "NOISE", + "links": [ + 37 + ], + "shape": 3 + } + ], + "properties": { + "Node name for S&R": "RandomNoise" + }, + "widgets_values": [ + 630229106448759, + "randomize" + ] + }, + { + "id": 16, + "type": "KSamplerSelect", + "pos": [ + 398.8528137207031, + 360.1959533691406 + ], + "size": [ + 210, + 58 + ], + "flags": {}, + "order": 1, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "SAMPLER", + "type": "SAMPLER", + "links": [ + 19 + ], + "shape": 3 + } + ], + "properties": { + "Node name for S&R": "KSamplerSelect" + }, + "widgets_values": [ + "deis" + ] + }, + { + "id": 17, + "type": "BasicScheduler", + "pos": [ + 573.0526123046875, + 137.1051483154297 + ], + "size": [ + 210, + 106 + ], + "flags": {}, + "order": 10, + "mode": 0, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 91, + "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": [ + 879.790283203125, + -82.21487426757812 + ], + "size": [ + 210, + 46 + ], + "flags": {}, + "order": 13, + "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": 41, + "type": "CLIPTextEncode", + "pos": [ + 420.7973937988281, + 467.3779296875 + ], + "size": [ + 400, + 200 + ], + "flags": {}, + "order": 9, + "mode": 0, + "inputs": [ + { + "name": "clip", + "type": "CLIP", + "link": 86 + } + ], + "outputs": [ + { + "name": "CONDITIONING", + "type": "CONDITIONING", + "links": [ + 87 + ], + "slot_index": 0 + } + ], + "properties": { + "Node name for S&R": "CLIPTextEncode" + }, + "widgets_values": [ + "A surreal digital landscape where the text \"DisTorch\" dominates the horizon like a massive neon billboard, rendered in electric purple against a sunset sky. Below, a vast network of interconnected neural pathways flows between crystalline GPU towers that pulse with internal light. The scene is captured in a hyperrealistic style with exceptional detail on the metallic surfaces and energy effects. Ray-traced reflections show the text mirrored in pools of liquid mercury scattered across the technological terrain." + ] + }, + { + "id": 35, + "type": "DualCLIPLoaderGGUFMultiGPU", + "pos": [ + -74.29531860351562, + 272.3004455566406 + ], + "size": [ + 435.3804016113281, + 130 + ], + "flags": {}, + "order": 2, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "CLIP", + "type": "CLIP", + "links": [ + 86 + ], + "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", + "cpu" + ], + "color": "#233", + "bgcolor": "#355" + }, + { + "id": 33, + "type": "VAELoaderMultiGPU", + "pos": [ + -62.57144546508789, + 460.42584228515625 + ], + "size": [ + 450.23980712890625, + 82 + ], + "flags": {}, + "order": 3, + "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", + "cpu" + ], + "color": "#233", + "bgcolor": "#355" + }, + { + "id": 39, + "type": "EmptySD3LatentImage", + "pos": [ + 454.6312255859375, + -200.52828979492188 + ], + "size": [ + 315, + 106 + ], + "flags": {}, + "order": 4, + "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": 9, + "type": "SaveImage", + "pos": [ + 1175.2930908203125, + -38.4615592956543 + ], + "size": [ + 512.2255859375, + 692.112548828125 + ], + "flags": {}, + "order": 14, + "mode": 0, + "inputs": [ + { + "name": "images", + "type": "IMAGE", + "link": 85 + } + ], + "outputs": [], + "properties": { + "Node name for S&R": "SaveImage" + }, + "widgets_values": [ + "ComfyUI" + ] + }, + { + "id": 13, + "type": "SamplerCustomAdvanced", + "pos": [ + 887.4246215820312, + 144.73184204101562 + ], + "size": [ + 236.8000030517578, + 387.28668212890625 + ], + "flags": {}, + "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": 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": 34, + "type": "UnetLoaderGGUFMultiGPU", + "pos": [ + -534.9774169921875, + -185.75123596191406 + ], + "size": [ + 320.7502136230469, + 88.90428161621094 + ], + "flags": {}, + "order": 5, + "mode": 4, + "inputs": [], + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "links": [], + "slot_index": 0 + } + ], + "properties": { + "Node name for S&R": "UnetLoaderGGUFMultiGPU" + }, + "widgets_values": [ + "flux1-dev-Q2_K.gguf", + "cuda:0" + ], + "color": "#233", + "bgcolor": "#355" + }, + { + "id": 43, + "type": "CheckpointLoaderNF4", + "pos": [ + -525.1296997070312, + 28.82369613647461 + ], + "size": [ + 315, + 98 + ], + "flags": {}, + "order": 6, + "mode": 4, + "inputs": [], + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "links": [], + "slot_index": 0 + }, + { + "name": "CLIP", + "type": "CLIP", + "links": null + }, + { + "name": "VAE", + "type": "VAE", + "links": null + } + ], + "properties": { + "Node name for S&R": "CheckpointLoaderNF4" + }, + "widgets_values": [ + "flux1-dev-bnb-nf4-v2.safetensors" + ] + }, + { + "id": 37, + "type": "UnetLoaderGGUFDisTorchMultiGPU", + "pos": [ + -505.4117126464844, + 213.69615173339844 + ], + "size": [ + 252, + 110.1775131225586 + ], + "flags": {}, + "order": 7, + "mode": 4, + "inputs": [], + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "links": [], + "slot_index": 0 + } + ], + "properties": { + "Node name for S&R": "UnetLoaderGGUFDisTorchMultiGPU" + }, + "widgets_values": [ + "flux1-dev-Q2_K.gguf", + "cuda:0", + "cuda:0,.1;cpu,0.7" + ], + "color": "#233", + "bgcolor": "#355" + }, + { + "id": 44, + "type": "CheckpointLoaderNF4MultiGPU", + "pos": [ + -53.27607727050781, + 67.21053314208984 + ], + "size": [ + 340.20001220703125, + 122 + ], + "flags": {}, + "order": 8, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "links": [ + 90, + 91 + ], + "slot_index": 0 + }, + { + "name": "CLIP", + "type": "CLIP", + "links": null + }, + { + "name": "VAE", + "type": "VAE", + "links": null + } + ], + "properties": { + "Node name for S&R": "CheckpointLoaderNF4MultiGPU" + }, + "widgets_values": [ + "flux1-dev-bnb-nf4-v2.safetensors", + "cuda:0" + ], + "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" + ], + [ + 86, + 35, + 0, + 41, + 0, + "CLIP" + ], + [ + 87, + 41, + 0, + 22, + 1, + "CONDITIONING" + ], + [ + 90, + 44, + 0, + 22, + 0, + "MODEL" + ], + [ + 91, + 44, + 0, + 17, + 0, + "MODEL" + ] + ], + "groups": [], + "config": {}, + "extra": { + "ds": { + "scale": 0.9646149645001355, + "offset": [ + 870.1822190764257, + 371.6519095632528 + ] + }, + "ue_links": [], + "VHS_latentpreview": false, + "VHS_latentpreviewrate": 0, + "node_versions": { + "comfy-core": "0.3.12", + "ComfyUI-MultiGPU": "3dbfcc713552b0560a471c10d9b29520e8b1981e" + } + }, + "version": 0.4 +} \ No newline at end of file