631 Commits

Author SHA1 Message Date
comfyanonymous
5b1e4dff6c Set clip vision model in eval mode so it works without inference mode. 2023-12-15 18:53:08 -05:00
Hari
72500f183b Implement Perp-Neg 2023-12-16 00:28:16 +05:30
comfyanonymous
99f61f753a Remove useless code. 2023-12-15 01:28:16 -05:00
comfyanonymous
743e80a273 Improve code legibility. 2023-12-14 11:41:49 -05:00
comfyanonymous
85cbdd661b Fix cfg being calculated more than once if sampler_cfg_function. 2023-12-13 20:28:04 -05:00
comfyanonymous
b83523b241 Refactor and improve the sag node.
Moved all the sag related code to comfy_extras/nodes_sag.py
2023-12-13 16:11:26 -05:00
Rafie Walker
58df1767b4 Implement Self-Attention Guidance (#2201)
* First SAG test

* need to put extra options on the model instead of patcher

* no errors and results seem not-broken

* Use @ashen-uncensored formula, which works better!!!

* Fix a crash when using weird resolutions. Remove an unnecessary UNet call

* Improve comments, optimize memory in blur routine

* SAG works with sampler_cfg_function
2023-12-13 15:52:11 -05:00
comfyanonymous
9e28104fb2 Support segmind vega model. 2023-12-12 19:09:53 -05:00
comfyanonymous
d8d085f2f9 Add dtype parameter to VAE object. 2023-12-12 12:03:29 -05:00
comfyanonymous
610c3b7c85 Add manual cast to controlnet. 2023-12-12 11:32:42 -05:00
comfyanonymous
fd9bfb01fc Use inference dtype for unet memory usage estimation. 2023-12-11 23:50:38 -05:00
comfyanonymous
98cc7883b7 Refactor comfy.ops
comfy.ops -> comfy.ops.disable_weight_init

This should make it more clear what they actually do.

Some unused code has also been removed.
2023-12-11 23:27:13 -05:00
comfyanonymous
45acae2d06 Add an option --fp16-unet to force using fp16 for the unet. 2023-12-11 18:36:29 -05:00
comfyanonymous
f64ac62540 Use faster manual cast for fp8 in unet. 2023-12-11 18:24:44 -05:00
comfyanonymous
58b39151a4 Switch text encoder to manual cast.
Use fp16 text encoder weights for CPU inference to lower memory usage.
2023-12-10 23:00:54 -05:00
comfyanonymous
260b25aef8 Disable non blocking on mps. 2023-12-10 01:30:35 -05:00
comfyanonymous
733ff9e5ab Implement GLora. 2023-12-09 18:15:26 -05:00
comfyanonymous
4d9a8c68bd Make lora code a bit cleaner. 2023-12-09 14:15:09 -05:00
comfyanonymous
242f0a57d9 Use own clip vision model implementation. 2023-12-09 11:56:31 -05:00
comfyanonymous
f54c2bf6fb Cleanup. 2023-12-08 16:02:08 -05:00
comfyanonymous
d36e559dcf Add linear_start and linear_end to model_config.sampling_settings 2023-12-08 02:49:30 -05:00
comfyanonymous
63349484b8 Make --gpu-only put intermediate values in GPU memory instead of cpu. 2023-12-08 02:35:45 -05:00
comfyanonymous
f75e370acd Support attention masking in CLIP implementation. 2023-12-07 02:51:02 -05:00
comfyanonymous
782cf4f295 Cleaner CLIP text encoder implementation.
Use a simple CLIP model implementation instead of the one from
transformers.

This will allow some interesting things that would too hackish to implement
using the transformers implementation.
2023-12-06 23:50:03 -05:00
comfyanonymous
1f1ef695bb Slightly faster lora applying. 2023-12-06 05:13:14 -05:00
comfyanonymous
39bb52dc2c Missed this one. 2023-12-05 12:48:41 -05:00
comfyanonymous
2620e3bc55 Fix memory issue with control loras. 2023-12-04 21:55:19 -05:00
comfyanonymous
e034f5709f Fix control lora on fp8. 2023-12-04 13:47:41 -05:00
comfyanonymous
9002e58ce5 Less useless downcasting. 2023-12-04 12:53:46 -05:00
comfyanonymous
dfa7737afb Use .itemsize to get dtype size for fp8. 2023-12-04 11:52:06 -05:00
comfyanonymous
080f5f4e84 UNET weights can now be stored in fp8.
--fp8_e4m3fn-unet and --fp8_e5m2-unet are the two different formats
supported by pytorch.
2023-12-04 11:10:00 -05:00
comfyanonymous
03e65605de All the unet ops with weights are now handled by comfy.ops 2023-12-04 03:12:18 -05:00
comfyanonymous
31feea98b0 A different way of handling multiple images passed to SVD.
Previously when a list of 3 images [0, 1, 2] was used for a 6 frame video
they were concated like this:
[0, 1, 2, 0, 1, 2]

now they are concated like this:
[0, 0, 1, 1, 2, 2]
2023-12-03 03:31:47 -05:00
comfyanonymous
3fa2174377 Support SD2.1 turbo checkpoint. 2023-11-30 19:27:03 -05:00
comfyanonymous
dc15d6da73 Use smart model management for VAE to decrease latency. 2023-11-28 04:58:51 -05:00
comfyanonymous
5b12f320a8 Add a function to load a unet from a state dict. 2023-11-27 17:41:29 -05:00
comfyanonymous
c675a1ba9f .sigma and .timestep now return tensors on the same device as the input. 2023-11-27 16:41:33 -05:00
comfyanonymous
dcd91ab458 Try to free memory for both cond+uncond before inference. 2023-11-27 14:55:40 -05:00
comfyanonymous
3253675a9c Tweak memory inference calculations a bit. 2023-11-27 14:04:16 -05:00
comfyanonymous
60f4b792c8 Fix regression from last commit. 2023-11-26 03:43:02 -05:00
comfyanonymous
e4900be7f3 Clean up the extra_options dict for the transformer patches.
Now everything in transformer_options gets put in extra_options.
2023-11-26 03:13:56 -05:00
comfyanonymous
ac77dc020e Fix importing diffusers unets. 2023-11-24 20:35:29 -05:00
comfyanonymous
eb17325740 Make buggy xformers fall back on pytorch attention. 2023-11-24 03:55:35 -05:00
comfyanonymous
5e4d60a231 Support SVD img2vid model. 2023-11-23 19:41:33 -05:00
comfyanonymous
d752c5f236 Make VAE memory estimation take dtype into account. 2023-11-22 18:17:19 -05:00
comfyanonymous
08b14daf24 Add sampling_settings so models can specify specific sampling settings. 2023-11-22 17:24:00 -05:00
comfyanonymous
2f876a465b Allow controlling downscale and upscale methods in PatchModelAddDownscale. 2023-11-22 03:23:16 -05:00
comfyanonymous
cd49281bf8 Remove useless code. 2023-11-21 17:27:28 -05:00
comfyanonymous
212bb0e108 Allow model config to preprocess the vae state dict on load. 2023-11-21 16:29:18 -05:00
comfyanonymous
eeceef948d Add taesd and taesdxl to VAELoader node.
They will show up if both the taesd_encoder and taesd_decoder or taesdxl
model files are present in the models/vae_approx directory.
2023-11-21 12:54:19 -05:00