Commit Graph

272 Commits

Author SHA1 Message Date
comfyanonymous 0aa667ed33 Fix ConditioningAverage. 2023-04-30 17:33:43 -04:00
FizzleDorf 29c8f1a344
Conditioning Average (#495)
* first commit

* fixed a bunch of things missing in initial commit.

* parameters renamed for clarity

* renamed node, attempted update cond list

* to_strength removed, it is now normalized

* removed comments and prints. Attempted to apply to every cond in list again but no luck

* fixed repeating frames after batch using deepcopy

* Revert "fixed repeating frames after batch using deepcopy"

This reverts commit 1086d6a0e1.

* Rewrite addWeighted to use torch.mul iteratively.

---------

Co-authored-by: City <125218114+city96@users.noreply.github.com>
2023-04-30 17:33:15 -04:00
comfyanonymous c66db06763 Make ConditioningSetMask area option a bit more clear.
Make ConditioningSetArea override the set_area_to_bounds.
2023-04-29 20:25:05 -04:00
comfyanonymous 071011aebe Mask strength should be separate from area strength. 2023-04-29 20:06:53 -04:00
Jacob Segal af02393c2a 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
Jacob Segal e214c917ae 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 aa57136dae Some fixes to the batch masks PR. 2023-04-25 01:12:40 -04:00
comfyanonymous c7c1f0d074 Merge branch 'multiple_inpaint_masks' of https://github.com/guill/ComfyUI
# Conflicts:
#	nodes.py
2023-04-25 00:54:15 -04:00
comfyanonymous c50208a703 Refactor more code to sample.py 2023-04-24 23:25:51 -04:00
comfyanonymous a2236a0c2a Merge branch 'master' of https://github.com/BlenderNeko/ComfyUI 2023-04-24 17:57:27 -04:00
BlenderNeko d9b1595f85 made sample functions more explicit 2023-04-24 12:53:10 +02:00
comfyanonymous ccad603b2e Add a way for nodes to validate their own inputs. 2023-04-23 16:03:26 -04:00
ltdrdata f7a8218814
Add clipspace feature. (#541)
* Add clipspace feature.
* feat: copy content to clipspace
* feat: paste content from clipspace

Extend validation to allow for validating annotated_path in addition to other parameters.

Add support for annotated_filepath in folder_paths function.

Generalize the '/upload/image' API to allow for uploading images to the 'input', 'temp', or 'output' directories.

* rename contentClipboard -> clipspace

* Do deep copy for imgs on copy to clipspace.

* add original_imgs into clipspace
* Preserve the original image when 'imgs' are modified

* robust patch & refactoring folder_paths about annotated_filepath

* Only show the Paste menu if the ComfyApp.clipspace is not empty

* instant refresh on paste

force triggering 'changed' on paste action

* subfolder fix on paste logic

attach subfolder if subfolder isn't empty

---------

Co-authored-by: Lt.Dr.Data <lt.dr.data@gmail.com>
2023-04-23 15:58:55 -04:00
BlenderNeko 5818539743 add docstrings 2023-04-23 20:09:09 +02:00
BlenderNeko 8d2de420d3 Merge branch 'master' of https://github.com/BlenderNeko/ComfyUI 2023-04-23 20:02:18 +02:00
BlenderNeko 2a09e2aa27 refactor/split various bits of code for sampling 2023-04-23 20:02:08 +02:00
comfyanonymous 5282f56434 Implement Linear hypernetworks.
Add a HypernetworkLoader node to use hypernetworks.
2023-04-23 12:35:25 -04:00
Jacob Segal ee030d281b Add support for multiple unique inpainting masks
This enables workflows like "Inpaint at full resolution" when using
batch sizes greater than 1.
2023-04-22 16:02:26 -07:00
comfyanonymous 31e60adb28 Add GLIGEN example to README. 2023-04-20 17:30:10 -04:00
comfyanonymous 3696d1699a Add support for GLIGEN textbox model. 2023-04-19 11:06:32 -04:00
comfyanonymous f03dade5ab Fix bug. 2023-04-17 18:19:57 -04:00
comfyanonymous 6f7852bc47 Add a LatentFromBatch node to pick a single latent from a batch.
Works before and after sampling.
2023-04-17 17:28:07 -04:00
comfyanonymous 74fc7b7726 custom_nodes paths can now be set in the extra_model_paths.yaml 2023-04-16 01:46:43 -04:00
comfyanonymous 73c3e11e83 Fix model_management import so it doesn't get executed twice. 2023-04-15 19:04:33 -04:00
comfyanonymous f48f0872e2 Refactor: move nodes_mask_convertion nodes to nodes_mask. 2023-04-14 00:21:01 -04:00
comfyanonymous e1db7a2038 Merge branch 'image-to-mask' of https://github.com/missionfloyd/ComfyUI
# Conflicts:
#	nodes.py
2023-04-14 00:15:48 -04:00
comfyanonymous 1a7cda715b Revert LatentComposite. 2023-04-14 00:14:35 -04:00
comfyanonymous fed4a70b8e Merge branch 'master' of https://github.com/mligaintart/ComfyUI 2023-04-14 00:12:58 -04:00
Gavroche CryptoRUSH d2337a86fe
remove extra semi-colon 2023-04-13 16:38:02 -04:00
missionfloyd 9371924e65 Move mask conversion to separate file 2023-04-13 03:11:17 -06:00
missionfloyd 45b907fbf1
Merge branch 'comfyanonymous:master' into image-to-mask 2023-04-13 03:07:08 -06:00
comfyanonymous f15b4a7ffa Merge branch 'fix-LoadImageMask' of https://github.com/flyingshutter/ComfyUI 2023-04-12 01:24:53 -04:00
missionfloyd e1d289c1ec
use slice instead of torch.select() 2023-04-11 20:26:24 -06:00
missionfloyd e12fb88b1b Image/mask conversion nodes 2023-04-11 16:49:39 -06:00
comfyanonymous 24d53992c6 Rename. 2023-04-08 15:53:01 -04:00
comfyanonymous 60ac983238 Merge branch 'master' of https://github.com/city96/ComfyUI 2023-04-08 15:50:26 -04:00
comfyanonymous 44fea05064 Cleanup. 2023-04-07 02:31:46 -04:00
comfyanonymous 58ed0f2da4 Fix loading SD1.5 diffusers checkpoint. 2023-04-07 01:30:33 -04:00
sALTaccount 7734d65f22 fix loading alt folders 2023-04-06 22:02:26 -07:00
sALTaccount f51b7a92c7 search all diffusers paths (oops) 2023-04-06 21:48:58 -07:00
sALTaccount 72a8973bd5 allow configurable path for diffusers models 2023-04-06 21:45:08 -07:00
mligaintart 022a9f271b Adds masking to Latent Composite, and provides new masking utilities to
allow better compositing.
2023-04-06 15:18:20 -04:00
flyingshutter 9d1c610b89 make LoadImagesMask work with non RGBA images 2023-04-06 19:02:28 +02:00
sALTaccount 42fd67b5cb use precision determined by model management 2023-04-06 00:28:06 -07:00
sALTaccount 3d16077e38 empty list if diffusers directory doesn't exist 2023-04-06 00:24:52 -07:00
sALTaccount 60127a8304 diffusers loader 2023-04-05 23:57:31 -07:00
comfyanonymous f816964847 Add a way to set output directory with --output-directory 2023-04-05 14:29:30 -04:00
comfyanonymous 10ad4c1d17 Move unclip stuff out of _for_testing 2023-04-04 22:48:11 -04:00
comfyanonymous cadef9ff61 Merge branch 'nodes-post-processing' of https://github.com/EllangoK/ComfyUI 2023-04-04 13:51:26 -04:00
comfyanonymous f50b1fec69 Add noise augmentation setting to unCLIPConditioning. 2023-04-03 13:50:29 -04:00
EllangoK 4c7a9dbcb6 adds Blend, Blur, Dither, Sharpen nodes 2023-04-02 18:44:27 -04:00
comfyanonymous 6be7c64245 Merge branch 'custom_routes' of https://github.com/pythongosssss/ComfyUI 2023-04-02 01:55:05 -04:00
comfyanonymous 809bcc8ceb Add support for unCLIP SD2.x models.
See _for_testing/unclip in the UI for the new nodes.

unCLIPCheckpointLoader is used to load them.

unCLIPConditioning is used to add the image cond and takes as input a
CLIPVisionEncode output which has been moved to the conditioning section.
2023-04-01 23:19:15 -04:00
pythongosssss 38833ceb62 Merge remote-tracking branch 'origin/master' into custom_routes 2023-04-01 12:44:40 +01:00
pythongosssss 313f1f83a6 Tweak server/custom node load order
- Load custom nodes after creating server
 - Add routes after loading custom nodes
Custom nodes can now add routes via PromptServer.instance
2023-04-01 12:44:29 +01:00
comfyanonymous 18a6c1db33 Add a TomePatchModel node to the _for_testing section.
Tome increases sampling speed at the expense of quality.
2023-03-31 17:19:58 -04:00
City 9ac95e6ac7 Add human-readable name support for custom nodes 2023-03-31 07:05:17 +02:00
City 5bcbc007dd Add human-readable names for nodes 2023-03-30 23:13:58 +02:00
Silversith bb1503ed63
Bugfix/include optional node inputs (#271)
* Minor changes and extra nodes

* Added Preview Image for Nodes

* Add a delete images button on main floating menu

* Add a confirmation dialog

* Remove DeleteAll, Remove Custom KSampler, Remove Image List

* Remove Image and Custom Json Load

* Remove Custom Nodes

* remove patch.diff
2023-03-27 01:16:22 -04:00
comfyanonymous 48efadeccf Style. 2023-03-26 15:17:53 -04:00
m957ymj75urz 8a35c12e8c compute %width% and %height% in filepath when saving 2023-03-26 13:10:20 +02:00
comfyanonymous 9287770c66 Allow negative Lora strengths. 2023-03-25 21:31:39 -04:00
comfyanonymous e651be551c Merge branch 'allow-symbolic-link' of https://github.com/jn-jairo/ComfyUI 2023-03-25 17:30:22 -04:00
comfyanonymous a30526aec1 Set default value of feathering to 40. 2023-03-25 04:49:58 -04:00
Guo Y.K 3b87302958
nodes: ImagePadForOutpaint: clean imports 2023-03-25 16:32:48 +08:00
Guo Y.K 4c01386c19
nodes: ImagePadForOutpaint: fix feathering, ignore edges not expanded 2023-03-25 16:27:47 +08:00
Guo Y.K 4580f3e644
nodes: add feathering to to ImagePadForOutpaint 2023-03-24 22:39:33 +08:00
Jairo Correa 4f24e6a13b Allow output folder to be a symbolic link 2023-03-23 21:25:21 -03:00
Guo Y.K 3ebf7452c3
nodes: add ImagePadForOutpaint 2023-03-23 23:33:35 +08:00
comfyanonymous cc127eeabd Lower PNG compression for more speed.
After some quick tests compress_level=4 seems to give the best compression
performance ratio for stable diffusion images.

It's 10x faster than max compression for an image size increase of only
2.5%.
2023-03-23 00:40:48 -04:00
comfyanonymous aae9fe0cf9 Increase max res to 8192x8192 since 4096x4096 wasn't enough for some. 2023-03-22 12:22:48 -04:00
comfyanonymous aa2ddfabb9 Fix bug with CLIPLoader. 2023-03-21 03:11:18 -04:00
comfyanonymous e85fcb822b Small fix. 2023-03-20 14:55:28 -04:00
comfyanonymous 0abe001edd Merge branch 'save-images' of https://github.com/m957ymj75urz/ComfyUI 2023-03-20 14:29:45 -04:00
m957ymj75urz d1138e8ba0 rework payload from server 2023-03-19 12:54:29 +01:00
comfyanonymous 50099bcd96 Support multiple paths for embeddings. 2023-03-18 03:08:43 -04:00
comfyanonymous 2e73367f45 Merge T2IAdapterLoader and ControlNetLoader.
Workflows will be auto updated.
2023-03-17 18:17:59 -04:00
comfyanonymous e1a9e26968 Add folder_paths so models can be in multiple paths. 2023-03-17 18:01:11 -04:00
comfyanonymous bf1dc1d9bc Fix VAEEncodeForInpaint modifying source image. 2023-03-16 17:10:08 -04:00
m957ymj75urz 16001e9429 fixes for specific paths 2023-03-16 19:48:59 +01:00
comfyanonymous d834eed7d0 Fix bug when applying controlnet to negative prompt. 2023-03-15 17:58:13 -04:00
m957ymj75urz 629272c0ca resolve conflict with the new PreviewImage node 2023-03-15 12:10:45 +01:00
m957ymj75urz 3d2f60b315
Merge branch 'master' into save-images 2023-03-15 10:48:15 +00:00
comfyanonymous 6d44cf74e3 Make it more clear the recommended way to update the standalone build. 2023-03-14 19:14:18 -04:00
pythongosssss 8537ab6f45 tidy 2023-03-14 19:42:28 +00:00
pythongosssss 6a6256a75c Changed flag to new node 2023-03-14 19:28:07 +00:00
m957ymj75urz 6daf9bb22c switch to realpath to check path traversal 2023-03-14 09:27:53 +01:00
m957ymj75urz 5b425aaa40 remove subfolder widget and use filename_prefix 2023-03-14 09:08:54 +01:00
pythongosssss 6db777b348 Added ability to save images to temp dir 2023-03-13 19:34:05 +00:00
m957ymj75urz 70f9bd1408 fix makedirs on save 2023-03-12 20:23:46 +01:00
m957ymj75urz 195d7aec9f can specify a subfolder in the SaveImage node 2023-03-12 19:51:39 +01:00
comfyanonymous c8f1acc4eb Put image upscaling nodes in image/upscaling category. 2023-03-11 18:10:36 -05:00
comfyanonymous e33dc2b33b Add a VAEEncodeTiled node. 2023-03-11 15:28:15 -05:00
comfyanonymous 905857edd8 Take some code from chainner to implement ESRGAN and other upscale models. 2023-03-11 13:09:28 -05:00
comfyanonymous 8c4ccb55d1 Small refactor of custom node loading code. 2023-03-11 12:49:41 -05:00
comfyanonymous 1f717903bc Prevent potential int overflow in SaveImage 2023-03-11 12:48:28 -05:00
comfyanonymous 99eb777f5d Make the LoadImage node output the alpha as a mask. 2023-03-09 14:07:55 -05:00
pythongosssss fa07426569 Remove random spaces 2023-03-09 18:18:08 +00:00
pythongosssss 99abc0eb2e Changed to upload to input dir
Fixed jpg
Added dupe support
Changed to use existing nodes
2023-03-09 17:57:59 +00:00
pythongosssss 4a326a2548 Added UploadImage+Mask nodes 2023-03-08 22:07:44 +00:00
comfyanonymous 0a0c769d6d Try to fix import issue. 2023-03-06 14:41:42 -05:00
pythongosssss 09db31309a Merge remote-tracking branch 'origin/master' into frontendrefactor 2023-03-06 17:02:34 +00:00
comfyanonymous afff30fc0a Add --cpu to use the cpu for inference. 2023-03-06 10:50:50 -05:00
comfyanonymous 8515d96328 It's more logical for the StyleModelApply to append it directly. 2023-03-06 01:48:18 -05:00
comfyanonymous 7ec1dd25a2 A tiny bit of reorganizing. 2023-03-06 01:30:17 -05:00
comfyanonymous 47acb3d73e Implement support for t2i style model.
It needs the CLIPVision model so I added CLIPVisionLoader and CLIPVisionEncode.

Put the clip vision model in models/clip_vision
Put the t2i style model in models/style_models

StyleModelLoader to load it, StyleModelApply to apply it
ConditioningAppend to append the conditioning it outputs to a positive one.
2023-03-05 18:39:25 -05:00
pythongosssss bba14245cb Merge remote-tracking branch 'origin' into frontendrefactor 2023-03-03 19:30:24 +00:00
comfyanonymous b9e3f52240 stop_at_clip_layer can be set in CLIPSetLastLayer so it can be removed
from the CLIPLoader node.
2023-03-03 14:27:55 -05:00
pythongosssss 4ef4cf913f Adding built in extensions + example 2023-03-03 18:28:34 +00:00
comfyanonymous 8586515886 Move the CheckpointLoaderSimple to the right section. 2023-03-03 13:09:44 -05:00
comfyanonymous 4215206281 Add a node to set CLIP skip.
Use a more simple way to detect if the model is -v prediction.
2023-03-03 13:04:36 -05:00
comfyanonymous fed315a76a To be really simple CheckpointLoaderSimple should pick the right type. 2023-03-03 11:07:10 -05:00
comfyanonymous 94bb0375b0 New CheckpointLoaderSimple to load checkpoints without a config. 2023-03-03 03:37:35 -05:00
comfyanonymous c8ce599a8f Add a button to interrupt processing to the ui. 2023-03-02 15:24:51 -05:00
comfyanonymous 69cc75fbf8 Add a way to interrupt current processing in the backend. 2023-03-02 14:42:03 -05:00
comfyanonymous d826a0971c Outpainting actually works now. 2023-02-27 12:02:23 -05:00
pythongosssss a9c57849b7
Merge branch 'comfyanonymous:master' into socketrework 2023-02-25 12:00:22 +00:00
comfyanonymous 4e6b83a80a Add a T2IAdapterLoader node to load T2I-Adapter models.
They are loaded as CONTROL_NET objects because they are similar.
2023-02-25 01:24:56 -05:00
comfyanonymous 87b00b37f6 Added an experimental VAEDecodeTiled.
This decodes the image with the VAE in tiles which should be faster and
use less vram.

It's in the _for_testing section so I might change/remove it or even
add the functionality to the regular VAEDecode node depending on how
well it performs which means don't depend too much on it.
2023-02-24 02:10:10 -05:00
pythongosssss 9bd7bfa648
Added workflow history
Moved socket output updates to all node executions
Made image rendering on nodes more generic
2023-02-23 20:12:57 +00:00
pythongosssss 2816eb236d
Merge branch 'comfyanonymous:master' into socketrework 2023-02-23 20:07:30 +00:00
comfyanonymous 62df8dd62a Add a node to load diff controlnets. 2023-02-22 23:22:03 -05:00
comfyanonymous 3ae61a2bca Add a node to invert the colours of images.
Might be useful for controlnets.
2023-02-22 21:57:56 -05:00
pythongosssss a52aa9f4b5
Moved api out to server
Reworked sockets to use socketio
Added progress to nodes
Added highlight to active node
Added preview to saveimage node
2023-02-21 19:29:49 +00:00
comfyanonymous d80af7ca30 ControlNetApply now stacks.
It can be used to apply multiple control nets at the same time.
2023-02-21 01:18:53 -05:00
comfyanonymous 8683ea4248 Merge branch 'master' into m957ymj75urz-dynamic-prompting 2023-02-20 23:49:55 -05:00
comfyanonymous a3d0b56c61 Fix for relative imports in custom nodes. 2023-02-19 12:00:05 -05:00
m957ymj75urz e2e5c4c5b0 Add basic dynamic prompting with seeding on CLIPTextEncode node 2023-02-17 22:37:03 +01:00
comfyanonymous 71354c7c57 Sort images on LoadImageMask node. 2023-02-17 13:17:09 -05:00
comfyanonymous 1688f5024d Fix a few issues with the custom_nodes PR.
There only needs to be one example in the folder.
2023-02-17 11:19:49 -05:00
Fannovel16 fa66ece26b
Merge branch 'comfyanonymous:master' into master 2023-02-17 18:02:52 +07:00
Hacker 17082006 1c5fe809c2 . 2023-02-17 17:59:16 +07:00
comfyanonymous 638f924546 Sort the list of input images. 2023-02-16 21:01:46 -05:00
comfyanonymous 6135a21ee8 Add a way to control controlnet strength. 2023-02-16 18:08:01 -05:00
comfyanonymous 4efa67fa12 Add ControlNet support. 2023-02-16 10:38:08 -05:00
comfyanonymous bc69fb5245 Use inpaint models the proper way by using VAEEncodeForInpaint. 2023-02-15 20:44:51 -05:00
comfyanonymous e87a8669b6 Add a LoadImageMask node to load one colour channel in an image as a mask. 2023-02-15 17:39:42 -05:00
comfyanonymous d75003001a Add a SetLatentNoiseMask node.
LATENT is now a dict that can contain properties.
2023-02-15 16:58:55 -05:00
Hacker 17082006 e1a047971b Edit comment 2023-02-15 21:50:18 +07:00
Hacker 17082006 7da0147d8a Done custom_node import error fixing 2023-02-15 21:48:10 +07:00
Hacker 17082006 b67b6920d1 Fix bug 2023-02-15 21:15:54 +07:00
Hacker 17082006 493671574e Adding some suggests from the author 2023-02-14 22:20:30 +07:00
Hacker 17082006 721f8510af Change the words a bit 2023-02-13 18:24:54 +07:00
Hacker 17082006 f3c6d7adf2 . 2023-02-13 18:19:42 +07:00
Hacker 17082006 5ce4b9eca3 Add custom node feature 2023-02-13 18:17:40 +07:00
comfyanonymous 05ad64d22c Add a feather option to the latent composite node. 2023-02-12 13:01:52 -05:00
BazettFraga 642516a3a6 create output dir if none is present 2023-02-09 12:49:31 -05:00
comfyanonymous 1d9ec62cfb Use absolute output directory path. 2023-02-09 09:59:43 -05:00
BazettFraga e58887dfa7 forgot windows does double backslashes for paths due to its use as escape char. 2023-02-09 01:30:06 +01:00
BazettFraga 81082045c2 add recursive_search, swap relevant os.listdirs 2023-02-09 01:22:33 +01:00