Commit Graph

390 Commits

Author SHA1 Message Date
comfyanonymous
c4c2db6ead Add DualClipLoader to load clip models for SDXL.
Update LoadClip to load clip models for SDXL refiner.
2023-06-25 01:40:38 -04:00
comfyanonymous
818bae8e52 Fix CLIPLoader node. 2023-06-24 13:56:46 -04:00
comfyanonymous
391ee8d21f Fix bug with controlnet. 2023-06-24 11:02:38 -04:00
comfyanonymous
0db33017af Add some more transformer hooks and move tomesd to comfy_extras.
Tomesd now uses q instead of x to decide which tokens to merge because
it seems to give better results.
2023-06-24 03:30:22 -04:00
comfyanonymous
51da619d73 Remove useless code. 2023-06-23 12:35:26 -04:00
comfyanonymous
a852d8b138 Move latent scale factor from VAE to model. 2023-06-23 02:33:31 -04:00
comfyanonymous
288f0c430d Fix bug when yaml config has no clip params. 2023-06-23 01:12:59 -04:00
comfyanonymous
40f218c4fa Fix error with ClipVision loader node. 2023-06-23 01:08:05 -04:00
comfyanonymous
4ed8aea1a1 Don't merge weights when shapes don't match and print a warning. 2023-06-22 19:08:31 -04:00
comfyanonymous
08f1f7686c Support base SDXL and SDXL refiner models.
Large refactor of the model detection and loading code.
2023-06-22 13:03:50 -04:00
comfyanonymous
d72d5d49f5 Add original_shape parameter to transformer patch extra_options. 2023-06-21 13:22:01 -04:00
comfyanonymous
cd8d0b73c5 Fix last commits causing an issue with the text encoder lora. 2023-06-20 19:44:39 -04:00
comfyanonymous
af9e05f389 Keep a set of model_keys for faster add_patches. 2023-06-20 19:08:48 -04:00
comfyanonymous
2c71c47ff9 Add a type of model patch useful for model merging. 2023-06-20 17:34:11 -04:00
comfyanonymous
5384849e5e Fix k_diffusion math being off by a tiny bit during txt2img. 2023-06-19 15:28:54 -04:00
comfyanonymous
873b08bd0f Add a way to set patches that modify the attn2 output.
Change the transformer patches function format to be more future proof.
2023-06-18 22:58:22 -04:00
comfyanonymous
26bce56c3b pop clip vision keys after loading them. 2023-06-18 21:21:17 -04:00
comfyanonymous
c1e1b00941 Not needed anymore. 2023-06-18 13:06:59 -04:00
comfyanonymous
78eabd0fd4 This is not needed anymore and causes issues with alphas_cumprod. 2023-06-18 03:18:25 -04:00
comfyanonymous
351d778487 Fix DDIM v-prediction. 2023-06-17 20:48:21 -04:00
comfyanonymous
a93a785f9e Fix an issue when alphas_comprod are half floats. 2023-06-16 17:16:51 -04:00
comfyanonymous
d35c0ce6ec All the unet weights should now be initialized with the right dtype. 2023-06-15 18:42:30 -04:00
comfyanonymous
282638b813 Add a --gpu-only argument to keep and run everything on the GPU.
Make the CLIP model work on the GPU.
2023-06-15 15:38:52 -04:00
comfyanonymous
8e6cbe6270 Initialize more unet weights as the right dtype. 2023-06-15 15:00:10 -04:00
comfyanonymous
206af9a315 Initialize transformer unet block weights in right dtype at the start. 2023-06-15 14:29:26 -04:00
comfyanonymous
16c535a309 Properly disable weight initialization in clip models. 2023-06-14 20:13:08 -04:00
comfyanonymous
6bbd86a061 Disable default weight values in unet conv2d for faster loading. 2023-06-14 19:46:08 -04:00
comfyanonymous
46a1fd77f4 This isn't needed for inference. 2023-06-14 13:05:08 -04:00
comfyanonymous
54c3f45d58 Don't initialize CLIPVision weights to default values. 2023-06-14 12:57:02 -04:00
comfyanonymous
0a80429175 Set model to fp16 before loading the state dict to lower ram bump. 2023-06-14 12:48:02 -04:00
comfyanonymous
3e75be0a92 Don't initialize clip weights to default values. 2023-06-14 12:47:36 -04:00
comfyanonymous
14508d7a5b Speed up model loading a bit.
Default pytorch Linear initializes the weights which is useless and slow.
2023-06-14 12:09:41 -04:00
comfyanonymous
fd8fa51a6d sampler_cfg_function now uses a dict for the argument.
This means arguments can be added without issues.
2023-06-13 16:10:36 -04:00
comfyanonymous
e4e6a23fec Turn on safe load for a few models. 2023-06-13 10:12:03 -04:00
comfyanonymous
27c98d1d24 Remove pytorch_lightning dependency. 2023-06-13 10:11:33 -04:00
comfyanonymous
807faa8edd Remove useless code. 2023-06-13 02:40:58 -04:00
comfyanonymous
22cd647be0 Remove more useless files. 2023-06-13 02:22:19 -04:00
comfyanonymous
ce4e360edf Cleanup: Remove a bunch of useless files. 2023-06-13 02:19:08 -04:00
comfyanonymous
a2bc14b56f Split the batch in VAEEncode if there's not enough memory. 2023-06-12 00:21:50 -04:00
comfyanonymous
8ef4de36f4 Auto switch to tiled VAE encode if regular one runs out of memory. 2023-06-11 23:25:39 -04:00
comfyanonymous
b46c4e51ed Refactor unCLIP noise augment out of samplers.py 2023-06-11 04:01:18 -04:00
comfyanonymous
1e0ad9564e Simpler base model code. 2023-06-09 12:31:16 -04:00
comfyanonymous
cbf4192f8d Fix bug when embedding gets ignored because of mismatched size. 2023-06-08 23:48:14 -04:00
comfyanonymous
6c6ef17bd4 Small refactor. 2023-06-06 13:23:01 -04:00
comfyanonymous
d421e5d610 Refactor previews into one command line argument.
Clean up a few things.
2023-06-06 02:13:05 -04:00
space-nuko
2a03db6500 preview method autodetection 2023-06-05 18:59:10 -05:00
space-nuko
8b515aae12 Add latent2rgb preview 2023-06-05 18:39:56 -05:00
space-nuko
a3b400faa4 Make previews into cli option 2023-06-05 13:19:02 -05:00
space-nuko
a816ca9091 Preview sampled images with TAESD 2023-06-05 09:20:17 -05:00
comfyanonymous
442430dcef Some comments to say what the vram state options mean. 2023-06-04 17:51:04 -04:00
comfyanonymous
e136e86a13 Cleanups and fixes for model_management.py
Hopefully fix regression on MPS and CPU.
2023-06-03 11:05:37 -04:00
comfyanonymous
d7821166b2 Implement global average pooling for controlnet. 2023-06-03 01:49:03 -04:00
comfyanonymous
6b80950a41 Refactor and improve model_management code related to free memory. 2023-06-02 15:21:33 -04:00
space-nuko
7cb90ba509 More accurate total 2023-06-02 00:14:41 -05:00
space-nuko
22b707f1cf System stats endpoint 2023-06-01 23:26:23 -05:00
comfyanonymous
f929d8df00 Tweak lowvram model memory so it's closer to what it was before. 2023-06-01 04:04:35 -04:00
comfyanonymous
f6f0a25226 Empty cache on mps. 2023-06-01 03:52:51 -04:00
comfyanonymous
fa734798f1 This is useless for inference. 2023-05-31 13:03:24 -04:00
comfyanonymous
4af4fe017b Auto load model in lowvram if not enough memory. 2023-05-30 12:36:41 -04:00
comfyanonymous
ebf6e2c421 Add route to get safetensors metadata:
/view_metadata/loras?filename=lora.safetensors
2023-05-29 02:48:50 -04:00
comfyanonymous
12e275ab18 Support VAEs in diffusers format. 2023-05-28 02:02:09 -04:00
comfyanonymous
c7572ef29d Refactor diffusers model convert code to be able to reuse it. 2023-05-28 01:55:40 -04:00
comfyanonymous
3d8f70ac86 Remove einops. 2023-05-25 18:42:56 -04:00
comfyanonymous
ee30188247 Do operations in same order as the one it replaces. 2023-05-25 18:31:27 -04:00
comfyanonymous
8359d8589b Merge branch 'master' of https://github.com/BlenderNeko/ComfyUI 2023-05-25 14:44:16 -04:00
comfyanonymous
4a2e5b0950 Support old pytorch versions that don't have weights_only. 2023-05-25 13:30:59 -04:00
BlenderNeko
0ea63a0aeb vecorized bislerp 2023-05-25 19:23:47 +02:00
comfyanonymous
30152c282e Various improvements to bislerp. 2023-05-23 11:40:24 -04:00
comfyanonymous
f166739922 Add experimental bislerp algorithm for latent upscaling.
It's like bilinear but with slerp.
2023-05-23 03:12:56 -04:00
comfyanonymous
ab51137f21 Auto transpose images from exif data. 2023-05-22 00:22:24 -04:00
comfyanonymous
8781b6a542 sample_dpmpp_2m_sde no longer crashes when step == 1. 2023-05-21 11:34:29 -04:00
comfyanonymous
6dd63b638e Add DPM-Solver++(2M) SDE and exponential scheduler.
exponential scheduler is the one recommended with this sampler.
2023-05-21 01:46:03 -04:00
comfyanonymous
c0a5444d1b Make scaled_dot_product switch to sliced attention on OOM. 2023-05-20 16:01:02 -04:00
comfyanonymous
e33cb62d1b Simplify and improve some vae attention code. 2023-05-20 15:07:21 -04:00
comfyanonymous
8035000551 Switch default scheduler to normal. 2023-05-15 00:29:56 -04:00
comfyanonymous
18f2a99ea2 Merge branch 'tiled_sampler' of https://github.com/BlenderNeko/ComfyUI 2023-05-14 15:39:39 -04:00
comfyanonymous
8c539fa5bc Print the torch device that is used on startup. 2023-05-13 17:11:27 -04:00
BlenderNeko
dd1be4e992 Make nodes map over input lists (#579)
* allow nodes to map over lists

* make work with IS_CHANGED and VALIDATE_INPUTS

* give list outputs distinct socket shape

* add rebatch node

* add batch index logic

* add repeat latent batch

* deal with noise mask edge cases in latentfrombatch
2023-05-13 11:15:45 -04:00
BlenderNeko
3cbb3ef058 comment out annoying print statement 2023-05-12 23:57:40 +02:00
BlenderNeko
2e2c17131b minor changes for tiled sampler 2023-05-12 23:49:09 +02:00
comfyanonymous
ffa3282218 Auto batching improvements.
Try batching when cond sizes don't match with smart padding.
2023-05-10 13:59:24 -04:00
comfyanonymous
9102a82f07 Not needed anymore because sampling works with any latent size. 2023-05-09 12:18:18 -04:00
comfyanonymous
9110a44cc3 Make t2i adapter work with any latent resolution. 2023-05-08 18:15:19 -04:00
comfyanonymous
bdb5f4ff03 Merge branch 'autostart' of https://github.com/EllangoK/ComfyUI 2023-05-07 17:19:03 -04:00
comfyanonymous
f7e427c557 Make maximum_batch_area take into account python2.0 attention function.
More conservative xformers maximum_batch_area.
2023-05-06 19:58:54 -04:00
comfyanonymous
57f35b3d16 maximum_batch_area for xformers.
Remove useless code.
2023-05-06 19:28:46 -04:00
EllangoK
0e90bee158 auto-launch cli arg 2023-05-06 16:59:40 -04:00
comfyanonymous
b877fefbb3 Lowvram mode for gligen and fix some lowvram issues. 2023-05-05 18:11:41 -04:00
comfyanonymous
a6d2a9487d Search recursively in subfolders for embeddings. 2023-05-05 01:28:48 -04:00
comfyanonymous
93fc8c1ea9 Fix import. 2023-05-05 00:19:35 -04:00
comfyanonymous
2edaaba3c2 Fix imports. 2023-05-04 18:10:29 -04:00
comfyanonymous
10ff210ffb Refactor. 2023-05-03 17:48:35 -04:00
comfyanonymous
bf7c588c68 Merge branch 'tiled-progress' of https://github.com/pythongosssss/ComfyUI 2023-05-03 16:24:56 -04:00
pythongosssss
eaeac55c0d remove unused import 2023-05-03 18:21:23 +01:00
pythongosssss
d8017626fb use comfy progress bar 2023-05-03 18:19:22 +01:00
comfyanonymous
ad56cfe814 Add a total_steps value to sampler callback. 2023-05-03 12:58:10 -04:00
pythongosssss
f6154607f9 Merge remote-tracking branch 'origin/master' into tiled-progress 2023-05-03 17:33:42 +01:00
pythongosssss
8160309db9 reduce duplication 2023-05-03 17:33:19 +01:00
comfyanonymous
df01203955 Use sampler callback instead of tqdm hook for progress bar. 2023-05-02 23:00:49 -04:00
pythongosssss
33b0ba6464 added progress to encode + upscale 2023-05-02 19:18:07 +01:00
comfyanonymous
71b4d08e65 Change latent resolution step to 8. 2023-05-02 14:17:51 -04:00
comfyanonymous
76730ed9ff Make unet work with any input shape. 2023-05-02 13:31:43 -04:00
comfyanonymous
55236dc812 LoKR support. 2023-05-01 18:18:23 -04:00
comfyanonymous
f5982afcfa Properly disable all progress bars when disable_pbar=True 2023-05-01 15:52:17 -04:00
BlenderNeko
de72c5f581 allow disabling of progress bar when sampling 2023-04-30 18:59:58 +02:00
comfyanonymous
54d388428a Mask strength should be separate from area strength. 2023-04-29 20:06:53 -04:00
comfyanonymous
ade1b2244e Merge branch 'condition_by_mask_node' of https://github.com/guill/ComfyUI 2023-04-29 15:05:18 -04:00
Jacob Segal
f7dd560777 Default to sampling entire image
By default, when applying a mask to a condition, the entire image will
still be used for sampling. The new "set_area_to_bounds" option on the
node will allow the user to automatically limit conditioning to the
bounds of the mask.

I've also removed the dependency on torchvision for calculating bounding
boxes. I've taken the opportunity to fix some frustrating details in the
other version:
1. An all-0 mask will no longer cause an error
2. Indices are returned as integers instead of floats so they can be
   used to index into tensors.
2023-04-29 00:16:58 -07:00
comfyanonymous
806786ed1d Don't try to get vram from xpu or cuda when directml is enabled. 2023-04-29 00:28:48 -04:00
comfyanonymous
e7ae3bc44c You can now select the device index with: --directml id
Like this for example: --directml 1
2023-04-28 16:51:35 -04:00
comfyanonymous
c2afcad2a5 Basic torch_directml support. Use --directml to use it. 2023-04-28 14:28:57 -04:00
Jacob Segal
6bfd8b6b1a Add Condition by Mask node
This PR adds support for a Condition by Mask node. This node allows
conditioning to be limited to a non-rectangle area.
2023-04-27 20:03:27 -07:00
comfyanonymous
a9e0b4177d Add callback to sampler function.
Callback format is: callback(step, x0, x)
2023-04-27 04:38:44 -04:00
comfyanonymous
d95ef10342 Some fixes to the batch masks PR. 2023-04-25 01:12:40 -04:00
comfyanonymous
288c72fe9f Refactor more code to sample.py 2023-04-24 23:25:51 -04:00
comfyanonymous
112d4ab7d7 This is cleaner this way. 2023-04-24 22:45:35 -04:00
BlenderNeko
d556513e2a gligen tuple 2023-04-24 21:47:57 +02:00
pythongosssss
51a069805b Add progress to vae decode tiled 2023-04-24 11:55:44 +01:00
BlenderNeko
7db702ecd0 made sample functions more explicit 2023-04-24 12:53:10 +02:00
BlenderNeko
ac6686d523 add docstrings 2023-04-23 20:09:09 +02:00
BlenderNeko
1e9a5097e1 Merge branch 'master' of https://github.com/BlenderNeko/ComfyUI 2023-04-23 20:02:18 +02:00
BlenderNeko
3e6b963e46 refactor/split various bits of code for sampling 2023-04-23 20:02:08 +02:00
comfyanonymous
e6771d0986 Implement Linear hypernetworks.
Add a HypernetworkLoader node to use hypernetworks.
2023-04-23 12:35:25 -04:00
comfyanonymous
0d66023475 This makes pytorch2.0 attention perform a bit faster. 2023-04-22 14:30:39 -04:00
comfyanonymous
ed4d73d4fd Remove some useless code. 2023-04-20 23:58:25 -04:00
comfyanonymous
a86c06e8da Don't pass adm to model when it doesn't support it. 2023-04-19 21:11:38 -04:00
comfyanonymous
6c156642e4 Add support for GLIGEN textbox model. 2023-04-19 11:06:32 -04:00
comfyanonymous
3fe1252a35 Add a way for nodes to set a custom CFG function. 2023-04-17 11:05:15 -04:00
comfyanonymous
4df70d0f62 Fix model_management import so it doesn't get executed twice. 2023-04-15 19:04:33 -04:00
comfyanonymous
f089d4abc7 Some refactoring: from_tokens -> encode_from_tokens 2023-04-15 18:46:58 -04:00
comfyanonymous
1b821e4d57 Merge branch 'master' of https://github.com/BlenderNeko/ComfyUI 2023-04-15 14:16:50 -04:00
BlenderNeko
e550f2f84f fixed improper padding 2023-04-15 19:38:21 +02:00
comfyanonymous
3b9a2f504d Move code to empty gpu cache to model_management.py 2023-04-15 11:19:07 -04:00
comfyanonymous
0ecef1b4e8 Safely load pickled embeds that don't load with weights_only=True. 2023-04-14 15:33:43 -04:00
BlenderNeko
47b2d342a8 ensure backwards compat with optional args 2023-04-14 21:16:55 +02:00
BlenderNeko
779bed1a43 align behavior with old tokenize function 2023-04-14 21:02:45 +02:00
comfyanonymous
4d8a84520f Don't stop workflow if loading embedding fails. 2023-04-14 13:54:00 -04:00
BlenderNeko
928cb6b2c7 split tokenizer from encoder 2023-04-13 22:06:50 +02:00
BlenderNeko
02f7bf6cb8 add unique ID per word/embedding for tokenizer 2023-04-13 22:01:01 +02:00
comfyanonymous
9c2869e012 Fix for new transformers version. 2023-04-09 15:55:21 -04:00
comfyanonymous
4861dbb2e2 Print xformers version and warning about 0.0.18 2023-04-09 01:31:47 -04:00
comfyanonymous
7f1c54adeb Clarify what --windows-standalone-build does. 2023-04-07 15:52:56 -04:00
comfyanonymous
88e5ccb415 Cleanup. 2023-04-07 02:31:46 -04:00
comfyanonymous
d4301d49d3 Fix loading SD1.5 diffusers checkpoint. 2023-04-07 01:30:33 -04:00
comfyanonymous
8aebe865f2 Merge branch 'master' of https://github.com/sALTaccount/ComfyUI 2023-04-07 01:03:43 -04:00
comfyanonymous
d35efcbcb2 Add a --force-fp32 argument to force fp32 for debugging. 2023-04-07 00:27:54 -04:00
comfyanonymous
55a48f27db Small refactor. 2023-04-06 23:53:54 -04:00
comfyanonymous
69bc45aac3 Merge branch 'ipex' of https://github.com/kwaa/ComfyUI-IPEX 2023-04-06 23:45:29 -04:00
藍+85CD
3adedd52d3 Merge branch 'master' into ipex 2023-04-07 09:11:30 +08:00
EllangoK
b12efcd7b4 fixes lack of support for multi configs
also adds some metavars to argarse
2023-04-06 19:06:39 -04:00