Commit Graph

2320 Commits

Author SHA1 Message Date
52aaee251f Fix to #3465. Prevent, resaving of duplicate images if overwrite not specified (#3472)
* Fix to #3465. Prevent the, resaving of duplicate images if overwrite not specified

This is a fix to #3465 

Adds function compare_image_hash to do a sha256 hash comparison between an uploaded image and existing images with matching file names. 

This changes the behavior so that only images having the same filename that are actually different are saved to input, existing images are instead now opened instead of resaved with increment. 

Currently, exact duplicates with the same filename are resave saved with an incremented filename in the format:

<filename> (n).ext 

with the code: 

```
while os.path.exists(filepath): 
                        filename = f"{split[0]} ({i}){split[1]}"
                        filepath = os.path.join(full_output_folder, filename)
                        i += 1
```

This commit changes this to: 

```
while os.path.exists(filepath): 
                        if compare_image_hash(filepath, image):
                            image_is_duplicate = True
                            break
                        filename = f"{split[0]} ({i}){split[1]}"
                        filepath = os.path.join(full_output_folder, filename)
                        i += 1
```

a check for if image_is_duplicate = False is done before saving the file. 

Currently, if you load the same image of a cat named cat.jpg into the LoadImage node 3 times, you will get 3 new files in your input folder with incremented file names.

With this change, you will now only have the single copy of cat.jpg, that will be re-opened instead of re-saved. 

However if you load 3 different images of cats named cat.jpg, you will get the expected behavior of having:
cat.jpg
cat (1).jpg
cat (2).jpg

This saves space and clutter. After checking my own input folder, I have 800+ images that are duplicates that were resaved with incremented file names amounting to more than 5GB of duplicated data.

* fixed typo in expression
2024-07-02 01:30:33 -04:00
1ef66b0955 Add example for how to add custom API routes (#3597) 2024-07-01 18:02:42 -04:00
9dd549e253 Add --no-custom-node cmd flag (#3903)
* Add --no-custom-node cmd flag

* nit
2024-07-01 17:54:03 -04:00
b82d67d5bf Add SamplerEulerAncestralCFG++ custom sampler node (#3901)
(for eta and s_noise)
2024-07-01 17:42:17 -04:00
755c48d78e Fix several typos in example_node.py.example (#3204)
This change includes corrections for several spelling errors in the
documentation of example_node.py.example file.

These were previously raised by #3157, but they missed a few.
2024-07-01 17:21:12 -04:00
5dccfefe8d Switch nightly pytorch standalone package to lzma2. 2024-07-01 17:17:25 -04:00
0cd4a6a5e5 Fine-tuning GitHub Actions (#3169)
* Bumping GitHub Actions versions

* Using LZMA2 for 7zip compression in Windows packaging
2024-07-01 17:15:49 -04:00
601b4b63e1 Add CONTRIBUTING.md (#3910)
* Create CONTRIBUTING.md

* Add feature-request channel link.

* Remove discord links for channels.
2024-07-01 13:51:00 -04:00
e53b1592ba enable cmd shortcuts for mac (mute & bypass) (#3792) 2024-07-01 13:45:34 -04:00
7c5fa7f4a2 Fix loadGraphData func call (#3918) 2024-07-01 12:10:44 -04:00
521421f53e Fix workflow not importing from flac files on some systems. 2024-06-30 15:51:54 -04:00
dbb7dd3b5e Add to readme that Stable Audio is supported. 2024-06-30 00:15:49 -04:00
05e831697a Switch to the real cfg++ method in the samplers.
The old _pp ones will be updated automatically to the regular ones with 2x
the cfg.

My fault for not checking what the "_pp" samplers actually did.
2024-06-29 11:59:48 -04:00
fbb7a1f1b6 PreviewAudio node. 2024-06-29 01:33:22 -04:00
c39cf7fff0 Revert "Add integration test for Linux with Nvidia GPU. #3884 (#3895)" (#3905)
This reverts commit 449bf52923.
2024-06-28 16:09:55 -04:00
02cac1d487 Revert "Add macOs integration test for default workflow. (#3898)" (#3904)
This reverts commit 97b409cd48.
2024-06-28 16:09:39 -04:00
7ecb2ec169 Audio second setting in EmptyLatentAudio. 2024-06-28 02:55:36 -04:00
0d9009c96e New menu/workflows fixes (#3900)
* Fix auto queue

* Detect added nodes via search

* Fix loading workflows

* Add button click style
2024-06-28 01:07:19 -04:00
264caca20e ControlNetApplySD3 node can now be used to use SD3 controlnets. 2024-06-27 18:43:11 -04:00
f8f7568d03 Basic SD3 controlnet implementation.
Still missing the node to properly use it.
2024-06-27 18:43:11 -04:00
66aaa14001 Controlnet refactor. 2024-06-27 18:43:11 -04:00
97b409cd48 Add macOs integration test for default workflow. (#3898) 2024-06-27 16:10:16 -04:00
449bf52923 Add integration test for Linux with Nvidia GPU. #3884 (#3895)
* Add linux integration test.

* Fix directory path.

* Add paths ignore.

* Fix conda env directory path.
2024-06-27 16:08:26 -04:00
8ceb5a02a3 Support saving stable audio checkpoint that can be loaded back. 2024-06-27 11:06:52 -04:00
5ff3d4eb3a Fix audio upload when no audio in input dir (#3891) 2024-06-27 09:13:52 -04:00
4f9d2b057c Remove print. 2024-06-27 02:54:15 -04:00
4650e7d6e9 Save and load workflow from the flac files output by SaveAudio. 2024-06-27 02:07:29 -04:00
3b423afcca Add audio widget (#3863)
* Add audio widget

* Fix audio bugs

* Add CSS

* Populate audio widget when load history
2024-06-27 00:22:55 -04:00
44947e7ad4 Add DEIS order 3 sampler.
Order 4 seems to give bad results.
2024-06-26 22:40:05 -04:00
175fe02522 Ignore .vscode/ (#3879) 2024-06-26 19:59:19 -04:00
bc5a0f10db Ignore *.log (#3880) 2024-06-26 19:59:09 -04:00
a3e83f695d Update test ref (#3882)
* Update ref

* Disable some tests
2024-06-26 19:58:56 -04:00
f12fa1d8d7 Enable browser tests on push (#3878) 2024-06-26 09:09:21 -04:00
e3579f3360 Fix merge issue breaking api json loading (#3876) 2024-06-26 09:08:48 -04:00
edfce78c86 add issue templates for ComfyUI Issues Page (#3868) 2024-06-26 01:37:27 -04:00
e99d97a9d9 Remove duplicated Reset View button (#3865)
* Remove duplicated Reset View button

* Disable flaky test
2024-06-26 01:23:55 -04:00
69d710e40f Implement my alternative take on CFG++ as the euler_pp sampler.
Add euler_ancestral_pp which is the ancestral version of euler with the
same modification.
2024-06-25 07:41:52 -04:00
90aebb6c86 New Menu & Workflow Management (#3112)
* menu

* wip

* wip

* wip

* wip

* wip

* workflow saving/loading

* Support inserting workflows
Move buttosn to top of lists

* fix session storage
implement renaming

* temp

* refactor, better workflow instance management

* wip

* progress on progress

* added send to workflow
various fixes

* Support multiple image loaders

* Support dynamic size breakpoints based on content

* various fixes
add close unsaved warning

* Add filtering tree

* prevent renaming unsaved

* fix zindex on hover

* fix top offset

* use filename as workflow name

* resize on setting change

* hide element until it is drawn

* remove glow

* Fix export name

* Fix test, revert accidental changes to groupNode

* Fix colors on all themes

* show hover items on smaller screen (mobile)

* remove debugging code

* dialog fix

* Dont reorder open workflows
Allow elements around canvas

* Toggle body display on setting change

* Fix menu disappearing on chrome

* Increase delay when typing, remove margin on Safari, fix dialog location

* Fix overflow issue on iOS

* Add reset view button
Prevent view changes causing history entries

* Bottom menu wip

* Various fixes

* Fix merge

* Fix breaking old menu position

* Fix merge adding restore view to loadGraphData
2024-06-25 06:49:25 -04:00
eab211bb1e Resample audio to 44100 when VAE encoding it. 2024-06-24 16:55:20 -04:00
866f54da8d Add browser test action synced with TS repo (#3852)
* Add browser test action

* Add npm install task
2024-06-24 14:47:28 -04:00
73ca780019 Add SamplerEulerCFG++ node.
This node should match the DDIM implementation of CFG++ when "regular" is
selected.

"alternative" is a slightly different take on CFG++
2024-06-23 13:21:18 -04:00
2f360ae898 Support OneTrainer SD3 lora format. 2024-06-22 13:08:04 -04:00
4ef1479dcd Multi dimension tiled scale function and tiled VAE audio encoding fallback. 2024-06-22 11:57:49 -04:00
887a6341ed Proper ModelMergeSD3_2B node. 2024-06-21 08:41:31 -04:00
1e2839f4d9 More proper tiled audio decoding. 2024-06-20 16:50:31 -04:00
d5efde89b7 Add ipndm_v sampler, works best with the exponential scheduler. 2024-06-20 08:51:49 -04:00
45e10cac19 feat: add gits scheduler (#3769) 2024-06-20 08:12:15 -04:00
d7f0964266 Fix routes (#3790) 2024-06-19 22:36:31 -04:00
028a583bef Fix issue with full diffusers SD3 loras. 2024-06-19 22:32:04 -04:00
0d6a57938e Support loading diffusers SD3 model format with UNETLoader node. 2024-06-19 22:21:18 -04:00