Commit Graph

2368 Commits

Author SHA1 Message Date
99458e8aca Add FrontendManager to manage non-default front-end impl (#3897)
* Add frontend manager

* Add tests

* nit

* Add unit test to github CI

* Fix path

* nit

* ignore

* Add logging

* Install test deps

* Remove 'stable' keyword support

* Update test

* Add web-root arg

* Rename web-root to front-end-root

* Add test on non-exist version number

* Use repo owner/name to replace hard coded provider list

* Inline cmd args

* nit

* Fix unit test
2024-07-16 11:26:11 -04:00
33346fd9b8 Fix bug with custom nodes on other drives. 2024-07-15 20:38:26 -04:00
136c93cb47 Fix bug with workflow not registering change.
There was an issue when only the class type of a node changed with all the
inputs staying the same.
2024-07-15 20:01:49 -04:00
1305fb294c Refactor: Move some code to the comfy/text_encoders folder. 2024-07-15 17:36:24 -04:00
7914c47d5a Quick fix for the promax controlnet. v0.0.2 2024-07-14 10:07:36 -04:00
79547efb65 New menu fixes - fix send to workflow (#3909)
* Fix send to workflow
Fix center align of close workflow dialog
Better support for elements around canvas

* More resilent to extra elements added to body
2024-07-14 02:04:40 -04:00
a3dffc447a Support AuraFlow Lora and loading model weights in diffusers format.
You can load model weights in diffusers format using the UNETLoader node.
2024-07-13 13:51:40 -04:00
ce2473bb01 Add link to AuraFlow example in Readme. 2024-07-12 15:25:07 -04:00
4ca9b9cc29 Add Github Workflow for releasing stable versions and standalone bundle. (#3949)
* Add stable release.

* Only build CUDA 12.1 + 3.11 Python.

* Upgrade checkout and setup-python to latest version.

* lzma2

* Update artifact name to be ComfyUI_windows_portable_nvidia.7z
v0.0.1
2024-07-12 13:33:57 -04:00
29c2e26724 Better tokenizing code for AuraFlow. 2024-07-12 01:15:25 -04:00
b6f09cf649 Add sentencepiece dependency. 2024-07-11 22:58:03 -04:00
8e012043a9 Add a ModelSamplingAuraFlow node to change the shift value.
Set the default AuraFlow shift value to 1.73 (sqrt(3)).
2024-07-11 17:57:36 -04:00
9f291d75b3 AuraFlow model implementation. 2024-07-11 16:52:26 -04:00
f45157e3ac Fix error message never being shown. 2024-07-11 11:46:51 -04:00
5e1fced639 Cleaner support for loading different diffusion model types. 2024-07-11 11:37:31 -04:00
ffe0bb0a33 Remove useless code. 2024-07-10 20:33:12 -04:00
391c1046cf More flexibility with text encoder return values.
Text encoders can now return other values to the CONDITIONING than the cond
and pooled output.
2024-07-10 20:06:50 -04:00
e44fa5667f Support returning text encoder attention masks. 2024-07-10 19:31:22 -04:00
90389b3b8a Update bug issue template (#3996)
* Update issue template

* nit
2024-07-10 11:28:15 -04:00
8d3f979b63 Check unhandled exception in test log in test action (#3987)
* Upload console logs

* Check unhandled exception
2024-07-09 17:12:57 -04:00
83f70a88fb Add __module__ to node info (#3936)
Use more explicit name 'python_module'

Parse abs ath

Move parse to nodes.py
2024-07-09 17:07:15 -04:00
f1a01c2c7e Add sampler_pre_cfg_function (#3979)
* Update samplers.py

* Update model_patcher.py
2024-07-09 16:20:49 -04:00
c3db344746 Fix ConditioningZeroOut when there is no pooled output. 2024-07-09 11:52:31 -04:00
d160073829 Fix loadGraphData call during restore (#3976) 2024-07-09 11:23:26 -04:00
ade7aa1b0c Remove useless import. 2024-07-09 11:05:05 -04:00
faa57430b0 Controlnet union model basic implementation.
This is only the model code itself, it currently defaults to an empty
embedding [0] * 6 which seems to work better than treating it like a
regular controlnet.

TODO: Add nodes to select the image type.
2024-07-08 23:49:02 -04:00
bb663bcd6c Rename clip_t5base to t5base for stable audio text encoder. 2024-07-08 08:53:55 -04:00
628f0b8ebc Move audio nodes out of _for_testing. 2024-07-07 09:22:32 -04:00
2dc84d1444 Add a way to set the timestep multiplier in the flow sampling. 2024-07-06 04:06:03 -04:00
ff63893d10 Support other types of T5 models. 2024-07-06 02:42:53 -04:00
4040491149 Better T5xxl detection. 2024-07-06 00:53:33 -04:00
b8e58a9394 Cleanup T5 code a bit. 2024-07-06 00:36:49 -04:00
80c4590998 Allow specifying the padding token for the tokenizer. 2024-07-06 00:06:49 -04:00
ce649d61c0 Allow zeroing out of embeds with unused attention mask. 2024-07-05 23:48:17 -04:00
b4c2d03d47 Remove duplicate import. 2024-07-05 12:10:22 -04:00
1dc87df4c5 Readme changes. 2024-07-04 22:03:37 -04:00
cedbc94cc0 Forgot this in last commit. 2024-07-04 21:49:50 -04:00
bd2d3e27d7 Show comfy_extras warning at the end.
Remove code.
2024-07-04 21:44:27 -04:00
720b17442d Temporary revert. 2024-07-04 21:09:58 -04:00
0e3dfd9e34 Use relative path for custom/extra node module name (#3944)
* Fix module name for comfy extra nodes

* Use module name relative to root dir
2024-07-04 20:49:07 -04:00
739b76630e Remove useless code. 2024-07-04 15:14:13 -04:00
24b969d3da Skip state check hook on first load (#3915) 2024-07-03 20:30:07 -04:00
086ac75228 3.8 Compatible type annotation (#3938) 2024-07-03 19:31:46 -04:00
d7484ef30c Support loading checkpoints with the UNETLoader node. 2024-07-03 11:34:32 -04:00
537f35c7bc Don't update dict if contiguous. 2024-07-02 20:21:51 -04:00
3f46362d22 fix non-contiguous tensor saving (from channels-last) (#3932) 2024-07-02 20:16:33 -04:00
01991f72ce Fix SamplerEulerCFGpp node. 2024-07-02 12:21:08 -04:00
2f03201690 Remove some empty lines. 2024-07-02 01:32:23 -04:00
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