Commit Graph

254 Commits

Author SHA1 Message Date
space-nuko 48f7ec750c Make previews into cli option 2023-06-05 13:19:02 -05:00
space-nuko f326a0a468 Make new LATENT_PREVIEWER type for declaring KSampler preview methods 2023-06-05 09:20:20 -05:00
space-nuko b4f434ee66 Preview sampled images with TAESD 2023-06-05 09:20:17 -05:00
comfyanonymous 0fc483dcfd Refactor diffusers model convert code to be able to reuse it. 2023-05-28 01:55:40 -04:00
space-nuko 4d1ed829d9 Don't load some model types if weight is zero 2023-05-26 19:33:30 -05:00
comfyanonymous c00bb1a0b7 Add a latent upscale by node. 2023-05-23 12:53:38 -04:00
comfyanonymous 34887b8885 Add experimental bislerp algorithm for latent upscaling.
It's like bilinear but with slerp.
2023-05-23 03:12:56 -04:00
comfyanonymous 6cc450579b Auto transpose images from exif data. 2023-05-22 00:22:24 -04:00
comfyanonymous 8bbd9815a9 Support loading fp16 latent files. 2023-05-19 02:15:32 -04:00
comfyanonymous 62a371e12b Load workflow from latent file. 2023-05-18 02:41:21 -04:00
comfyanonymous faf899ad5a LoadLatent and SaveLatent should behave like the LoadImage and SaveImage. 2023-05-18 00:09:12 -04:00
comfyanonymous a7375103b9 Some small changes to Load/SaveLatent. 2023-05-17 23:41:57 -04:00
Dr.Lt.Data e7f2816c6f
feat:Latent Save/Load (#662)
* wip

* latent dir

* fix

* fix

* now working

* mark todo

* remove server.py changes to separate PRt

---------

Co-authored-by: Lt.Dr.Data <lt.dr.data@gmail.com>
2023-05-17 23:40:28 -04:00
comfyanonymous 2ec6d1c6e3 Don't import custom nodes when the folder ends with .disabled 2023-05-15 03:31:03 -04:00
comfyanonymous c02a554bcf Make DiffusersLoader work with subfolders. 2023-05-15 03:25:24 -04:00
comfyanonymous acff543d66 Remove useless code. 2023-05-14 12:50:21 -04:00
comfyanonymous b0505eb7ab Return right type when none specified in upload route.
Switch time.time to time.perf_counter for custom node import times.
2023-05-13 15:31:22 -04:00
comfyanonymous db4d3a8494 Print if custom nodes imported successfully or not. 2023-05-13 13:23:42 -04:00
comfyanonymous 2ac744f662 Print all custom node import times. 2023-05-13 13:15:31 -04:00
comfyanonymous 92bf1cb61e Change message. 2023-05-13 13:05:52 -04:00
comfyanonymous cf439709b6 Load nodes in comfy_extras before custom nodes.
Change the slow import message.
2023-05-13 12:50:42 -04:00
comfyanonymous cb4b822398 Print custom nodes that take too much time to import. 2023-05-13 11:54:45 -04:00
BlenderNeko 1201d2eae5
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
comfyanonymous c5c0ea666f noise_mask in latent should be in a single format. 2023-05-12 20:34:48 -04:00
comfyanonymous d43e45ce62 Remove print. 2023-05-09 10:29:58 -04:00
comfyanonymous 850daf0416 Masked editor changes.
Add a way to upload to subfolders.

Clean up code.

Fix some issues.
2023-05-08 14:37:51 -04:00
Dr.Lt.Data ae08fdb999
Clipspace Menu and MaskEditor application. (#548)
* 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.

* mask painting on clipspace

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

* robust patch & refactoring folder_paths about annotated_filepath

* wip

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

* clipspace feature added
maskeditor feature added

* instant refresh on paste

force triggering 'changed' on paste action

* enhance mask painting

smooth drawing
add brush_size +/- button

* robust patch

use mouseup event

* robust patch

again...

* subfolder fix on paste logic

attach subfolder if subfolder isn't empty

* event listener patch

add ], [ key event for brush size
remove listener on close

* Fix button positioning issue related to window height.
Change brush size from button to slider.

* clean commit

* clean code

* various bug fixes

* paste action
- prevent opening upload popup
- ensure rendering after widget_value update

* view api update
- support annotated_filepath

* maskeditor layout
- prevent covering button by hidden div

* remove dbg message

* Add cursor functionality to display brush size

* refactor: Replace brush preview feature with missionfloyd implementation

* missionfloyd implementation
* hiding brush preview off the canvas
* change brush size on wheel event

* keyup -> keydown event

* Update web/extensions/core/maskeditor.js

Co-authored-by: missionfloyd <missionfloyd@users.noreply.github.com>

* Add support for channel-specific image data retrieval in /view API to fix alpha mask loading issue

When loading an image with an alpha mask in JavaScript canvas, there is an issue where the alpha and RGB channels are premultiplied. To avoid reliance on JavaScript canvas, I added support for channel-specific image data retrieval in the "/view" API. This allows us to retrieve data for each channel separately and fix the alpha mask loading issue. The changes have been committed to the repository.

* Enable brush preview for key and slider events

* optimize

* preview fix

* robust patch

* fix copy (clipspace) action
imgs[0] copy -> whole imgs copy

* support batch images on clipspace, maskeditor

* copy/paste bug fixes for batch images
enhance selector preview on clipspace menu
add img_paste_mode option into clipspace menu

* crash fix

* print message if clipspace content cannot editable

* Update web/extensions/core/maskeditor.js

Co-authored-by: missionfloyd <missionfloyd@users.noreply.github.com>

* make default img_paste_mode to 'selected'

refactor space -> tab

* save clipspace files to input/clipspace instead of temp

* show "clipspace/filename.png" instead of 'filename.png [clipspace]' in LoadImage/LoadImageMask

* refresh fix related to FILE_COMBO

* Update web/extensions/core/maskeditor.js

Co-authored-by: missionfloyd <missionfloyd@users.noreply.github.com>

* Update web/extensions/core/maskeditor.js

Co-authored-by: missionfloyd <missionfloyd@users.noreply.github.com>

* adjust margin based on missionfloyd impelements

* mouse event -> pointer event

* pen, touch, mouse drawing patched and tested

* Update web/extensions/core/maskeditor.js

Co-authored-by: missionfloyd <missionfloyd@users.noreply.github.com>

* add comment about touch event.

---------

Co-authored-by: Lt.Dr.Data <lt.dr.data@gmail.com>
Co-authored-by: missionfloyd <missionfloyd@users.noreply.github.com>
2023-05-08 14:37:36 -04:00
comfyanonymous 678f933d38 maximum_batch_area for xformers.
Remove useless code.
2023-05-06 19:28:46 -04:00
comfyanonymous 908dc1d5a8 Add a total_steps value to sampler callback. 2023-05-03 12:58:10 -04:00
comfyanonymous 93c64afaa9 Use sampler callback instead of tqdm hook for progress bar. 2023-05-02 23:00:49 -04:00
comfyanonymous ba8a4c3667 Change latent resolution step to 8. 2023-05-02 14:17:51 -04:00
comfyanonymous 35f636b6c7 Expose grow_mask_by in VAEEncodeForInpaint.
The mask is dilated by grow_mask_by pixels after being applied to the pixel
space image. This helps reduce seams caused by inpainting. Higher value
means less seams.
2023-05-02 00:53:15 -04:00
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