Compare commits

..

280 Commits

Author SHA1 Message Date
filtered d82e1f5d67 Revert "Migrate matrix-client to matrix-nio (#2025)"
This reverts commit d4715aebef.
2025-08-27 15:33:47 +10:00
filtered 621de1ab99 Revert "fixed: ruff check"
This reverts commit 4834874091.
2025-08-27 15:33:34 +10:00
Dr.Lt.Data 7da00796e5 update DB 2025-08-27 12:21:31 +09:00
Dr.Lt.Data 6086419cb6 update DB 2025-08-27 07:51:36 +09:00
Dr.Lt.Data 5bc1f2f2c0 update DB 2025-08-26 19:39:38 +09:00
Changrz 32a83b211e Update Rodin Plugin url (#2102)
Co-authored-by: WhiteGiven <c15838568211@163.com>
2025-08-26 19:03:05 +09:00
Alex bead7b3a7f Add Custom Node - Save Checkpoint with Metadata (#2105)
* Added entry for ComfyUI-SaveCheckpointWithMetadata

* Added entry for ComfyUI-SaveCheckpointWithMetadata in git-clone section
2025-08-26 19:01:52 +09:00
jialuw0830 815d6d6572 Add Eigen AI FLUX API Plugin to custom node list (#2104) 2025-08-26 18:59:51 +09:00
Dr.Lt.Data 95ce812992 update DB 2025-08-25 12:59:46 +09:00
Dr.Lt.Data 9a36f4748c update DB 2025-08-25 08:06:43 +09:00
Dr.Lt.Data 50b7849a35 update DB 2025-08-25 07:27:39 +09:00
Dr.Lt.Data 6f1245b27c update DB 2025-08-25 06:30:51 +09:00
dehypnotic cc87ed3899 Update custom-node-list.json (#2097)
* Update custom-node-list.json

* Update custom-node-list.json

---------

Co-authored-by: Dr.Lt.Data <128333288+ltdrdata@users.noreply.github.com>
2025-08-25 06:28:06 +09:00
Dr.Lt.Data 1d9037fefe update DB 2025-08-25 06:27:46 +09:00
Daxamur 03016e2d16 Add DaxNodes to custom node list (#2100) 2025-08-25 06:26:28 +09:00
Dr.Lt.Data 3d41617f4e update DB 2025-08-23 17:54:00 +09:00
Dr.Lt.Data 35151ffdd1 update DB 2025-08-23 09:20:01 +09:00
Dr.Lt.Data 4527d41a7a update DB 2025-08-22 21:13:29 +09:00
dehypnotic 553cba12f3 Update custom-node-list.json (#2096)
* Update custom-node-list.json

* Update custom-node-list.json

---------

Co-authored-by: Dr.Lt.Data <128333288+ltdrdata@users.noreply.github.com>
2025-08-22 20:54:35 +09:00
Dr.Lt.Data 116e068ac3 update DB 2025-08-22 12:41:08 +09:00
Dr.Lt.Data 1010dd2d28 update DB 2025-08-22 07:35:26 +09:00
Dr.Lt.Data 7354242906 update workflow 2025-08-22 06:05:27 +09:00
Dr.Lt.Data e7d0b158e9 update DB 2025-08-22 05:41:35 +09:00
Dr.Lt.Data 330c4657b1 update DB 2025-08-21 12:25:20 +09:00
Dr.Lt.Data 72a109f109 update DB 2025-08-21 07:29:53 +09:00
licyk cf45c51dfb Add HDM-ext to custom-node-list (#2094) 2025-08-21 06:52:09 +09:00
Dr.Lt.Data 0b013adb34 update DB 2025-08-20 12:24:39 +09:00
Dr.Lt.Data 7457d91f64 update DB 2025-08-20 07:44:09 +09:00
Dr.Lt.Data 7fe1159426 update DB 2025-08-20 05:23:08 +09:00
renderartist c2665e3677 Update custom-node-list.json (#2091)
* Update custom-node-list.json

* Update custom-node-list.json

---------

Co-authored-by: Dr.Lt.Data <128333288+ltdrdata@users.noreply.github.com>
2025-08-20 05:10:13 +09:00
Dr.Lt.Data d63de803a4 update DB 2025-08-20 04:02:02 +09:00
Dr.Lt.Data 11aca3513c update DB 2025-08-20 03:53:51 +09:00
Joel Andrés Navarro Navarro 561c9f40e5 Update custom-node-list.json (#2089) 2025-08-20 03:49:46 +09:00
Saquib Alam 54ed13aadf add nodes for omini-kontext framework (#2087) 2025-08-20 03:47:56 +09:00
Dr.Lt.Data 109cc21337 update DB 2025-08-19 07:48:17 +09:00
Dr.Lt.Data 7e46b30fa5 update DB 2025-08-18 12:33:30 +09:00
Dr.Lt.Data 0ba112c2c7 update DB 2025-08-18 07:47:41 +09:00
david fc15d94170 Update custom-node-list.json (#2086) 2025-08-18 07:38:28 +09:00
Dr.Lt.Data dcb37d9c55 update DB 2025-08-17 18:23:05 +09:00
Marco Zanella 755b9d6342 Add ComfyUI-BooleanExpression to custom-node-list (#2084) 2025-08-17 17:53:24 +09:00
Joel Andrés Navarro Navarro 3d6151c94f Update custom-node-list.json (#2085) 2025-08-17 17:51:20 +09:00
jupo-ai 590bd8c4b9 Update custom-node-list.json (#2083) 2025-08-17 07:05:03 +09:00
Dr.Lt.Data e99aafd876 update DB 2025-08-16 10:26:33 +09:00
Dr.Lt.Data 1f0adf8bcf update DB 2025-08-16 09:53:13 +09:00
jupo-ai dbd5d5fb43 Update custom-node-list.json (#2082)
* Update custom-node-list.json

* Update custom-node-list.json
2025-08-16 09:36:35 +09:00
Dr.Lt.Data a8b0e3641b update DB 2025-08-15 10:13:33 +09:00
AfterGlow.SYX 9efb350be9 Update custom-node-list.json (#2081) 2025-08-15 10:08:10 +09:00
Dr.Lt.Data 8d9820b3fb update DB 2025-08-14 23:24:08 +09:00
Dr.Lt.Data 103f89551a update DB 2025-08-14 22:00:23 +09:00
Dr.Lt.Data 6030d961ad update DB 2025-08-14 12:01:24 +09:00
Dr.Lt.Data ee08c9e17f update DB 2025-08-14 07:42:41 +09:00
Dr.Lt.Data 48dd9a3240 update DB 2025-08-14 02:35:34 +09:00
Baverne e122e206a6 Add TiledWan (#2078)
* Add TiledWan

* Add TiledWan

* Add TiledWan
2025-08-14 02:21:37 +09:00
Dr.Lt.Data 398b905758 update DB 2025-08-13 12:12:36 +09:00
Dr.Lt.Data dc2ec08fe3 update DB 2025-08-13 07:44:54 +09:00
Dr.Lt.Data 3bf5edf5c9 update DB 2025-08-12 10:34:55 +09:00
Dr.Lt.Data 134bca526c update DB 2025-08-12 09:52:15 +09:00
Dr.Lt.Data 3393e58b06 update DB 2025-08-11 22:52:13 +09:00
Dr.Lt.Data eab6cdeee4 bump version 2025-08-11 12:48:38 +09:00
Christian Byrne e8ec1ce8e3 recurse when finding nodes in workflow (#2070) 2025-08-11 12:47:20 +09:00
Dr.Lt.Data b3581564ed update DB 2025-08-11 12:28:12 +09:00
S4MUEL 29e1bd95fd Add ComfyUI S4Motion to custom-node-list.json (#2072)
* Add ComfyUI-S4Tool-Image to custom nodes list

Add ComfyUI-S4Tool-Image to custom nodes list

* Update custom-node-list.json

Add custom-node : ComfyUI-S4Motion
2025-08-11 12:23:16 +09:00
Dr.Lt.Data 8bff401c14 update DB 2025-08-11 08:47:56 +09:00
Dr.Lt.Data 41798e9255 update DB 2025-08-11 07:44:25 +09:00
Dr.Lt.Data 9e4f0228d1 update DB 2025-08-10 20:54:49 +09:00
Dr.Lt.Data 76ee93c98c update DB 2025-08-10 11:25:27 +09:00
ericKuang fb1a89efb7 Update custom-node-list.json (#2068)
Add ComfyUI-Only node:
Pain Point Solved: Eliminates the need to manually move .latent files into the ComfyUI input directory.
2025-08-10 11:16:32 +09:00
Dr.Lt.Data aface43554 update DB 2025-08-10 11:02:38 +09:00
Dr.Lt.Data a35f0157b2 update DB 2025-08-10 10:20:57 +09:00
Dr.Lt.Data 9b32162906 update DB 2025-08-09 15:13:30 +09:00
Dr.Lt.Data 21bba62572 update DB 2025-08-09 12:35:05 +09:00
Dr.Lt.Data 302327d6b3 update DB 2025-08-09 07:54:04 +09:00
Dr.Lt.Data 5667e8bcbb update DB 2025-08-08 23:13:50 +09:00
Dr.Lt.Data ae66bd0e31 update DB 2025-08-08 12:15:46 +09:00
Dr.Lt.Data 48dfadc02d update DB 2025-08-08 07:54:54 +09:00
Dr.Lt.Data 3df6272bb6 update DB 2025-08-08 07:37:49 +09:00
CY-CHENYUE e7f9bcda01 Update custom-node-list.json (#2064) 2025-08-08 07:35:24 +09:00
Dr.Lt.Data 205044ca66 update DB 2025-08-07 12:19:21 +09:00
Dr.Lt.Data d497eb1f00 update DB 2025-08-07 08:42:22 +09:00
Dr.Lt.Data 4e6f970ee9 update DB 2025-08-06 12:14:25 +09:00
Dr.Lt.Data 0b6cdda6f5 update DB 2025-08-06 08:59:45 +09:00
Dr.Lt.Data a896ded763 update DB 2025-08-06 07:26:55 +09:00
Dr.Lt.Data fb5dd9ebc2 update DB 2025-08-05 12:24:03 +09:00
Dr.Lt.Data c8b7db6c38 update DB 2025-08-05 08:57:36 +09:00
Dr.Lt.Data 44a3191be3 update DB 2025-08-05 07:16:04 +09:00
Dr.Lt.Data b4f7cdc9e7 update DB 2025-08-05 06:20:52 +09:00
Alex Furer 8da07018d5 Update custom-node-list.json (#2058)
* Update custom-node-list.json

Added my custom node "AF-EditGeneratedPrompt", which let's one pipe a generated prompt, edit it, or use the node as a regular prompting node. Thank you for your efforts!

* Update custom-node-list.json

---------

Co-authored-by: Dr.Lt.Data <128333288+ltdrdata@users.noreply.github.com>
2025-08-05 06:19:40 +09:00
Dr.Lt.Data 0c19a27065 update DB 2025-08-04 20:13:27 +09:00
jqy-yo 3296b0ecdf Add ComfyUI Gemini Nodes by jqy-yo (#2057)
Add entry for comfyui-gemini-nodes - a collection of custom nodes for integrating Google Gemini API with ComfyUI, providing AI capabilities for text generation, image generation, and video analysis.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-authored-by: jqy-yo <jqy-yo@users.noreply.github.com>
Co-authored-by: Claude <noreply@anthropic.com>
2025-08-04 19:58:59 +09:00
Uygar 0a07261124 Update custom-node-list.json (#2055) 2025-08-04 12:12:13 +09:00
Dr.Lt.Data 33106d0ecf update DB 2025-08-04 12:10:52 +09:00
Novice_Chen 5bb887206a add new node:ComfyUI-XingLiu (#2040) 2025-08-04 12:09:22 +09:00
Dr.Lt.Data b30b0e27cb update DB 2025-08-04 08:59:56 +09:00
Dr.Lt.Data 363736489c update DB 2025-08-04 08:59:40 +09:00
Dr.Lt.Data 8dbf5e87a0 update DB 2025-08-04 07:39:25 +09:00
Dr.Lt.Data 0b30f2cb50 update DB 2025-08-04 07:02:06 +09:00
Brekel ba5265dac4 Update custom-node-list.json (#2054)
Add ComfyUI-Brekel
2025-08-04 06:16:37 +09:00
Dr.Lt.Data ecb9c65917 update DB 2025-08-04 06:16:24 +09:00
jupo-ai 8a98474600 Update custom-node-list.json (#2051) 2025-08-04 06:09:28 +09:00
Radiating Reverberations b072216e67 Add Wan2.2 models from Comfy-Org (#2050) 2025-08-04 06:08:44 +09:00
Dr.Lt.Data cfb3181716 update DB 2025-08-02 08:03:23 +09:00
Dr.Lt.Data ab684cdc99 update DB 2025-08-01 12:22:27 +09:00
Dr.Lt.Data facadc3a44 update DB 2025-08-01 07:29:09 +09:00
Dr.Lt.Data 281319d2da update DB 2025-08-01 00:08:52 +09:00
Simlym 5cb203685c Update custom-node-list.json (#2045) 2025-07-31 23:44:48 +09:00
Dr.Lt.Data 01fa37900b update DB 2025-07-31 12:32:47 +09:00
Dr.Lt.Data edbe744e17 update DB 2025-07-31 07:57:27 +09:00
Jin Yi 2a32a1a4a8 Add bulk API endpoint for import fail info (#2039)
* feat(api): Implement endpoint for bulk import failure info

Adds the `/v2/customnode/import_fail_info_bulk` endpoint to allow
fetching multiple import error statuses in a single request.

* chore(api): Update OpenAPI spec for new bulk endpoint

Adds the `import_fail_info_bulk` route and its corresponding
request/response schemas to `openapi.yaml`.
2025-07-31 07:43:49 +09:00
Dr.Lt.Data 404bdb21e6 update DB 2025-07-30 18:39:08 +09:00
PD19 Anime b260c9a512 Update custom-node-list.json (#2044) 2025-07-30 18:33:29 +09:00
Yuan-Man 4b941adb6a Add ComfyUI-SkyworkUniPic (#2043) 2025-07-30 18:32:15 +09:00
copusDev bd752550a8 feat: change web icon (#2042)
Co-authored-by: john <john@server31.io>
2025-07-30 18:31:56 +09:00
Dr.Lt.Data b8b71bb961 update DB 2025-07-30 12:16:25 +09:00
Kevin Lin 5aaf7a4092 Update custom node listing (#2041) 2025-07-30 12:03:28 +09:00
Dr.Lt.Data 030e02ffb8 update DB 2025-07-30 08:57:38 +09:00
Dr.Lt.Data d962aa03f4 update DB 2025-07-30 07:37:26 +09:00
Dr.Lt.Data 9e4a2aae43 update DB 2025-07-30 00:02:30 +09:00
rainlizard ee6eb685e7 Add Whirlpool Upscaler (#2037)
* Added Whirlpool Upscaler

* Update custom-node-list.json

---------

Co-authored-by: Dr.Lt.Data <128333288+ltdrdata@users.noreply.github.com>
2025-07-29 23:52:57 +09:00
Dr.Lt.Data 09a38a32ce update DB 2025-07-29 21:30:45 +09:00
Android zhang d13b19d43d Update custom-node-list.json (#2036)
Add ComfyUI-MoGe2
2025-07-29 21:02:18 +09:00
Dr.Lt.Data e730dca1ad update DB 2025-07-29 12:13:35 +09:00
Dr.Lt.Data 8da30640bb update DB
fixed: scanner.py
2025-07-29 07:45:05 +09:00
Dr.Lt.Data 6f4eb88e07 update DB 2025-07-28 12:15:58 +09:00
Dr.Lt.Data d9592b9dab update DB 2025-07-28 08:57:58 +09:00
Dr.Lt.Data b87ada72aa update DB 2025-07-28 07:04:57 +09:00
Dr.Lt.Data 83363ba1f0 update DB 2025-07-27 21:36:48 +09:00
Dr.Lt.Data 23ebe7f718 update DB 2025-07-27 15:04:41 +09:00
Dr.Lt.Data e04264cfa3 update DB 2025-07-27 10:45:00 +09:00
Shmuel Ronen 8d29e5037f Add ComfyUI-HiggsAudio_Wrapper to custom node list (#2034) 2025-07-27 10:28:27 +09:00
Dr.Lt.Data 6926ed45b0 update DB 2025-07-26 21:05:02 +09:00
Dr.Lt.Data 736b85b8bb update DB 2025-07-26 20:51:43 +09:00
Nanthakumar 9e3361bc31 Update custom-node-list.json (#2031) 2025-07-26 20:37:40 +09:00
Dr.Lt.Data 6e10381020 update DB 2025-07-26 11:13:08 +09:00
Dr.Lt.Data a1d37d379c update DB 2025-07-26 09:34:57 +09:00
comfyuistudio 07d87db7a2 Update custom-node-listAdd ComfyUI-Studio-nodes to custom_nodes registry.json (#2029)
* Update custom-node-list.json

* Update custom-node-list.json

* Update custom-node-list.json

---------

Co-authored-by: Dr.Lt.Data <128333288+ltdrdata@users.noreply.github.com>
2025-07-26 09:29:31 +09:00
Dr.Lt.Data 4e556673d2 update DB 2025-07-26 09:27:00 +09:00
AIWarper f421304fc1 Update custom-node-list.json (#2028) 2025-07-26 09:25:34 +09:00
Dr.Lt.Data c9271b1686 update DB 2025-07-25 12:19:45 +09:00
Dr.Lt.Data 12eb6863da update DB 2025-07-25 08:58:56 +09:00
Dr.Lt.Data 4834874091 fixed: ruff check 2025-07-25 07:26:48 +09:00
Dr.Lt.Data 8759ebf200 bump version 2025-07-25 07:03:14 +09:00
YAN Wenkun d4715aebef Migrate matrix-client to matrix-nio (#2025) 2025-07-25 06:59:46 +09:00
Dr.Lt.Data 0fe2ade7bb update DB 2025-07-25 06:59:32 +09:00
Dr.Lt.Data 0c71565535 update DB 2025-07-24 21:28:41 +09:00
Dr.Lt.Data 6a637091a2 update DB 2025-07-24 12:10:49 +09:00
Dr.Lt.Data 31eba60012 update DB 2025-07-24 09:00:09 +09:00
Dr.Lt.Data 51e58e9078 update DB 2025-07-24 07:07:58 +09:00
Dr.Lt.Data 4a1e76730a fixed: security_check - robust checking
https://github.com/Comfy-Org/ComfyUI-Manager/issues/2002
2025-07-24 02:44:43 +09:00
Dr.Lt.Data 5599bb028b fixed: security_check - robust checking
https://github.com/Comfy-Org/ComfyUI-Manager/issues/2002
2025-07-24 02:38:53 +09:00
Dr.Lt.Data 552c6da0cc modified: download_url - provide more informative error messages
https://github.com/Comfy-Org/ComfyUI-Manager/issues/2016
2025-07-24 02:30:07 +09:00
Dr.Lt.Data cc6817a891 fixed: cnr_utils – fixed improper behavior of bypass_ssl
https://github.com/Comfy-Org/ComfyUI-Manager/issues/2017
2025-07-24 02:15:31 +09:00
Dr.Lt.Data fb48d1b485 update DB 2025-07-24 02:06:14 +09:00
Uygar 1c336dad6b ComfyUI-Artha-Gemini custom node (#2024)
* Add files via upload

* Update custom-node-list.json
2025-07-24 02:01:31 +09:00
Dr.Lt.Data a4940d46cd update DB 2025-07-24 02:01:16 +09:00
猫大好き 499b2f44c1 Add builmenlabo custom node entry (#2020)
* Add files via upload

* Add files via upload

* Delete manager_registration.json

---------

Co-authored-by: Dr.Lt.Data <128333288+ltdrdata@users.noreply.github.com>
2025-07-24 01:59:13 +09:00
Yuan-Man 2b200c9281 Add ComfyUI-HiggsAudio (#2023) 2025-07-24 01:58:09 +09:00
Dr.Lt.Data 36a900c98f update DB 2025-07-23 12:50:44 +09:00
Dr.Lt.Data 5236b03f66 update DB 2025-07-23 07:32:34 +09:00
kpsss34 8be35e3621 Update custom-node-list.json (#2021)
Rename: ComfyUI-kpsss34-Sana to ComfyUI-kpsss34
2025-07-23 07:31:26 +09:00
Dariusz L 509f00fe89 Add Comfyui-LayerForge (#2022)
Add the "Comfyui-LayerForge" node to the community list.
2025-07-23 07:30:43 +09:00
Dr.Lt.Data a98b87f148 update DB 2025-07-22 12:17:42 +09:00
Dr.Lt.Data ae9b2b3b72 update DB 2025-07-22 08:59:51 +09:00
Dr.Lt.Data 02e1ec0ae3 update DB 2025-07-22 07:32:38 +09:00
Vaishnav V Nair daefb0f120 Update custom-node-list.json (#2018)
first custom node
2025-07-22 07:22:18 +09:00
Dr.Lt.Data ff0604e3b6 update DB 2025-07-21 12:14:49 +09:00
Dr.Lt.Data 20e41e22fa update DB 2025-07-21 08:59:07 +09:00
Dr.Lt.Data a0e3bdd594 update DB 2025-07-20 19:15:45 +09:00
brucew4yn3rp 6580aaf3ad Added Save Image (Selective Metadata) node (#2012) 2025-07-20 18:57:27 +09:00
Dr.Lt.Data 0b46701b60 update DB 2025-07-20 18:57:10 +09:00
Edoardo Carmignani 0bb4effede Add ComfyUI-ExtraLinks (#2009)
A one-click collection of alternate connection styles for ComfyUI.
2025-07-20 18:21:25 +09:00
Dr.Lt.Data b07082a52d update DB 2025-07-19 18:16:26 +09:00
StrawBerryFist 04f267f5a7 Add StrawberryFist VRAM Optimizer node to custom-node-list.json (#2007)
* Add StrawberryFist VRAM Optimizer node to custom-node-list.json

* Update custom-node-list.json

---------

Co-authored-by: Dr.Lt.Data <128333288+ltdrdata@users.noreply.github.com>
2025-07-19 18:15:22 +09:00
Dr.Lt.Data 03ccce2804 fixed: cm-cli - provides pip dependency restoration using the options --pip-non-url, --pip-non-local-url, and --pip-local-url.
https://github.com/Comfy-Org/ComfyUI-Manager/issues/2008
2025-07-19 06:51:07 +09:00
Dr.Lt.Data e894bd9f24 update DB 2025-07-18 07:50:14 +09:00
Dr.Lt.Data 10e6988273 update DB 2025-07-18 07:26:51 +09:00
Erehr 905b61e5d8 Publish ComfyUI-Eagle-Autosend (#2006) 2025-07-18 07:25:55 +09:00
Dr.Lt.Data ee69d393ae update DB
update scanner script
2025-07-17 12:22:13 +09:00
Dr.Lt.Data cab39973ae update DB 2025-07-17 12:10:40 +09:00
Dr.Lt.Data d93f5d07bb update DB 2025-07-17 08:57:16 +09:00
Dr.Lt.Data ba00ffe1ae update DB 2025-07-17 07:39:11 +09:00
Gilad Schreiber 6afaf5eaf5 Add LTX-Video 0.9.8 distilled models (#2005)
- Add LTX-Video 2B Distilled v0.9.8 (6.34GB)
- Add LTX-Video 2B Distilled FP8 v0.9.8 (4.46GB)
- Add LTX-Video 13B Distilled v0.9.8 (28.6GB)
- Add LTX-Video 13B Distilled FP8 v0.9.8 (15.7GB)

These v0.9.8 models feature improved prompt understanding and detail generation.
Both 2B and 13B variants available in standard and FP8 quantized versions.

Co-authored-by: gschreiber <gschreiber@infra-image-generator.c.ltx-research-vms.internal>
2025-07-17 07:38:53 +09:00
Dr.Lt.Data d30459cc34 update DB 2025-07-16 12:31:58 +09:00
Dr.Lt.Data e92fbb7b1b update DB 2025-07-16 12:24:26 +09:00
aiaiaikkk 42d464b532 Update custom-node-list.json (#2004)
* Update custom-node-list.json

* Update custom-node-list.json

---------

Co-authored-by: Dr.Lt.Data <128333288+ltdrdata@users.noreply.github.com>
2025-07-16 12:22:34 +09:00
Dr.Lt.Data c2e9e5c63a update DB 2025-07-16 07:28:23 +09:00
Creepybits bc36726925 Update custom-node-list.json (#2001)
Add Save To OneDrive node for ComfyUI
2025-07-16 07:08:59 +09:00
Dr.Lt.Data 7abbff8c31 update DB 2025-07-15 12:14:23 +09:00
Android zhang 6236f4bcf4 Add ComfyUI nodes to use Distill-Any-Depth prediction (#1999) 2025-07-15 06:27:32 +09:00
Jukka Seppänen 3c3e80f77f Add WanVideoWrapper (#1998)
* Add IC-Light nodes and models

* Add Florence2 and LuminaWrapper -nodes

https://github.com/kijai/ComfyUI-Florence2
https://github.com/kijai/ComfyUI-LuminaWrapper

* Update custom-node-list.json

* Update custom-node-list.json

* Update custom-node-list.json

* Add segment-anything-2

* Update custom-node-list.json

* Add T5 encoder models

* Update custom-node-list.json

* Add PyramidFlowWrapper

* Add HunyuanVideoWrapper

* Add ComfyUI-WanVideoWrapper
2025-07-15 06:25:56 +09:00
Dr.Lt.Data 4aae2fb289 update DB 2025-07-14 20:29:22 +09:00
Dr.Lt.Data 66ff07752f update DB 2025-07-14 19:04:10 +09:00
LaoMaoBoss 5cf92f2742 Add ComfyUI-WBLESS (#1990)
* Update custom-node-list.json

* Update custom-node-list.json

---------

Co-authored-by: Dr.Lt.Data <128333288+ltdrdata@users.noreply.github.com>
2025-07-14 19:03:33 +09:00
Dr.Lt.Data 6d3fddc474 update DB 2025-07-14 19:02:41 +09:00
Dr.Lt.Data 66d4ad6174 update DB 2025-07-14 18:58:05 +09:00
ChenNing 2a366a1607 Add ComfyUI_Image_Pin (#1992) 2025-07-14 18:56:22 +09:00
Dr.Lt.Data d87a0995b4 update DB 2025-07-14 18:55:31 +09:00
Dr.Lt.Data 9a73a41e04 update DB 2025-07-14 18:55:11 +09:00
company8 ba041b36bc Update custom-node-list.json (#1993) 2025-07-14 18:54:18 +09:00
Eses f5f9de69b4 Add EsesImageCompare node to node list (#1994)
Co-authored-by: eses <13034046+quasiblob@users.noreply.github.com>
2025-07-14 18:53:29 +09:00
Yuan-Man 71e56c62e8 Add ComfyUI-ThinkSound (#1989) 2025-07-14 18:52:27 +09:00
Dr.Lt.Data 0f496619fd update DB 2025-07-12 11:07:46 +09:00
Dr.Lt.Data 5fdd6a441a update DB 2025-07-12 09:07:33 +09:00
Dr.Lt.Data 00f287bb63 fixed: ruff check 2025-07-12 06:15:09 +09:00
Dr.Lt.Data 785268efa6 modified: By default, do not forcefully downgrade numpy to below version 2. I believe enough of a grace period has now been given.
https://github.com/Comfy-Org/ComfyUI-Manager/issues/1981#issuecomment-3058772842
2025-07-12 06:07:10 +09:00
Dr.Lt.Data 2c976d9394 update DB 2025-07-12 05:54:51 +09:00
Dr.Lt.Data 1e32582642 fixed: broken db 2025-07-12 05:29:32 +09:00
IsItDanOrAi 6f8f6d07f5 Update custom-node-list.json (#1980) 2025-07-12 05:28:36 +09:00
Gilad Schreiber 3958111e76 Add LTX-Video ICLoRA models for depth, pose, and canny control (#1988)
- Add LTX-Video ICLoRA Depth 13B v0.9.7 (81.9MB)
- Add LTX-Video ICLoRA Pose 13B v0.9.7 (151MB)
- Add LTX-Video ICLoRA Canny 13B v0.9.7 (81.9MB)

These In-Context LoRA models enable precise control for video-to-video generation
with depth, pose, and canny edge conditioning respectively.

Co-authored-by: gschreiber <gschreiber@infra-image-generator.c.ltx-research-vms.internal>
2025-07-12 05:20:21 +09:00
Dr.Lt.Data 86fcc4af74 update DB 2025-07-10 12:33:19 +09:00
Dr.Lt.Data 2fd26756df update DB 2025-07-10 07:41:25 +09:00
Eses 478f4b74d8 add ComfyUI-EsesImageTransform node (#1987)
Co-authored-by: eses <13034046+quasiblob@users.noreply.github.com>
2025-07-10 07:36:40 +09:00
Dr.Lt.Data 73d0d2a1bb update DB 2025-07-09 22:59:44 +09:00
Dr.Lt.Data 546db08ec4 update DB 2025-07-09 08:56:44 +09:00
Dr.Lt.Data 0dd41a8670 update DB 2025-07-09 07:19:11 +09:00
PD19 Anime 82c0c89f46 Add ComfyUI-PD19Anime-Nodes to custom node list (#1975)
* Update custom-node-list.json

* Update custom-node-list.json

---------

Co-authored-by: Dr.Lt.Data <128333288+ltdrdata@users.noreply.github.com>
2025-07-09 06:38:43 +09:00
Dr.Lt.Data c3798bf4c2 update DB 2025-07-08 12:12:31 +09:00
Dr.Lt.Data ff80b6ccb0 update DB 2025-07-08 08:58:03 +09:00
Eses e729217116 add ComfyUI-EsesImageEffectCurves node (#1976)
Co-authored-by: eses <13034046+quasiblob@users.noreply.github.com>
2025-07-08 08:56:58 +09:00
Dr.Lt.Data 94c695daca update DB 2025-07-08 08:56:11 +09:00
FortunaCournot 9f189f0420 Stereoscopic Nodes added (#1978) 2025-07-08 08:55:24 +09:00
Bas Nijholt ad09e53f60 Remove file argument from logging.error in manager_server.py (#1977)
Otherwise this results in:
```python
TypeError: Logger._log() got an unexpected keyword argument 'file' 
```
2025-07-08 08:48:16 +09:00
Dr.Lt.Data 092a7a5f3f update DB 2025-07-07 23:38:10 +09:00
Dr.Lt.Data f45649bd25 update DB 2025-07-07 12:59:28 +09:00
Dr.Lt.Data 2595cc5ed7 bump version 2025-07-07 01:05:25 +09:00
Dr.Lt.Data 2f62190c6f update DB 2025-07-07 01:00:58 +09:00
Alexander Piskun 577314984c fix(Windows, numpy): fix for cm-cli usage (#1972) 2025-07-06 22:36:49 +09:00
Dr.Lt.Data f0346b955b update DB 2025-07-06 16:57:36 +09:00
Dr.Lt.Data 70139ded4a bump version 2025-07-06 13:40:50 +09:00
Dr.Lt.Data bf379900e1 update DB 2025-07-06 13:40:17 +09:00
Dr.Lt.Data 9bafc90f5e update DB 2025-07-06 08:31:22 +09:00
Alexander Piskun fce0d9e88e fix(Windows, numpy): do not use 'uv' by default (#1971) 2025-07-06 08:23:31 +09:00
namtb96 2b3b154989 Add OmniGen2 Simple Node (#1970)
* add OmniGen2 custom node

* Change extenions name
2025-07-06 08:22:02 +09:00
Dr.Lt.Data 948d2440a1 update DB 2025-07-05 09:40:28 +09:00
Dr.Lt.Data 5adbe1ce7a update DB 2025-07-05 06:42:32 +09:00
vrgamegirl19 8157d34ffa Add VRGameDevGirl’s Video Enhancement Nodes (#1966)
* Update custom-node-list.json

* Update custom-node-list.json

* Update custom-node-list.json

---------

Co-authored-by: Dr.Lt.Data <128333288+ltdrdata@users.noreply.github.com>
2025-07-05 06:26:15 +09:00
Dr.Lt.Data 3ec8cb2204 update DB 2025-07-05 06:06:16 +09:00
Dr.Lt.Data 0daa826543 fixed: invalid default config.ini
https://github.com/Comfy-Org/ComfyUI-Manager/issues/1967
2025-07-04 17:54:26 +09:00
Dr.Lt.Data a66028da58 update DB 2025-07-04 08:53:35 +09:00
Dr.Lt.Data 807c9e6872 update DB 2025-07-04 07:02:41 +09:00
Dr.Lt.Data e71f3774ba modified: If uv is available, set use_uv to True by default. 2025-07-03 12:32:50 +09:00
Dr.Lt.Data dd7314bf10 update DB 2025-07-03 12:22:59 +09:00
Dr.Lt.Data f33bc127dc update DB 2025-07-03 07:31:25 +09:00
Creepybits db92b87782 Update custom-node-list.json (#1965)
* Update custom-node-list.json

* Update custom-node-list.json

---------

Co-authored-by: Dr.Lt.Data <128333288+ltdrdata@users.noreply.github.com>
2025-07-03 07:08:40 +09:00
Dr.Lt.Data eba41c8693 update DB 2025-07-02 21:38:06 +09:00
sunxAI c855308162 Update DB (#1963)
* Update custom-node-list.json

update

* Update custom-node-list.json

---------

Co-authored-by: Dr.Lt.Data <128333288+ltdrdata@users.noreply.github.com>
2025-07-02 21:32:13 +09:00
Dr.Lt.Data 73d971bed8 bump version 2025-07-02 12:33:16 +09:00
copusDev bcfe0c2874 feat: copus content add rating (#1962)
Co-authored-by: john <john@server31.io>
2025-07-02 12:32:17 +09:00
Dr.Lt.Data 931ff666ae update DB 2025-07-02 12:02:20 +09:00
Dr.Lt.Data 18b6d86cc4 update DB 2025-07-02 08:57:41 +09:00
Dr.Lt.Data 3c5efa0662 update DB 2025-07-01 12:18:14 +09:00
Dr.Lt.Data 9b739bcbbf update DB 2025-07-01 08:57:40 +09:00
Dr.Lt.Data db89076e48 update DB 2025-07-01 07:30:59 +09:00
Dr.Lt.Data 19b341ef18 update DB 2025-07-01 01:04:40 +09:00
Dr.Lt.Data be3713b1a3 update DB 2025-07-01 00:21:53 +09:00
Dr.Lt.Data 99c4415cfb update DB 2025-06-30 21:29:41 +09:00
方长君 7b311f2ccf Add MultiSaveImage custom node (#1956) 2025-06-30 21:13:20 +09:00
Dr.Lt.Data 4aeabfe0a7 update DB 2025-06-30 07:34:20 +09:00
Dr.Lt.Data 431ed02194 update DB 2025-06-30 07:25:27 +09:00
KarmaSwint 07f587ed83 Add KarmaNodes to Comfy Registry (#1958)
Co-authored-by: Karma Swint <karmaaswint@gmail.com>
2025-06-30 07:16:43 +09:00
S4MUEL 0408341d82 Add ComfyUI-S4Tool-Image to custom nodes list (#1957)
Add ComfyUI-S4Tool-Image to custom nodes list
2025-06-30 07:16:33 +09:00
Dr.Lt.Data 5b3c9432f3 update DB 2025-06-29 15:48:08 +09:00
Dr.Lt.Data 4a197e63f9 update DB 2025-06-28 23:31:08 +09:00
Dr.Lt.Data 0876a12fe9 update DB 2025-06-28 19:33:20 +09:00
Dr.Lt.Data c43c7ecc03 update DB 2025-06-28 18:15:49 +09:00
Dr.Lt.Data 4a6dee3044 update DB 2025-06-28 08:45:28 +09:00
Dr.Lt.Data 019acdd840 update DB 2025-06-28 08:22:30 +09:00
PeterMikhai 1c98512720 Update custom-node-list.json (#1955)
* Update custom-node-list.json

* Update custom-node-list.json

* Update custom-node-list.json

---------

Co-authored-by: Dr.Lt.Data <128333288+ltdrdata@users.noreply.github.com>
2025-06-28 08:21:18 +09:00
Dr.Lt.Data 23a09ad546 update DB 2025-06-27 12:23:33 +09:00
Dr.Lt.Data 0836e8fe7c update DB 2025-06-27 07:23:09 +09:00
Dr.Lt.Data 90196af8f8 update DB 2025-06-27 01:48:34 +09:00
Dr.Lt.Data 566fe05772 update DB 2025-06-26 22:56:48 +09:00
uinodes 18772c6292 Update custom-node-list.json (#1953) 2025-06-26 22:34:15 +09:00
Yuan-Man 6278bddc9b Add ComfyUI-PosterCraft (#1952) 2025-06-26 22:33:02 +09:00
Dr.Lt.Data f74bf71735 update DB 2025-06-26 08:58:08 +09:00
Dr.Lt.Data efe9ed68b2 update DB 2025-06-26 06:56:56 +09:00
Ambrosinus 7c1e75865d Add ComfyUI-ATk-Nodes plugin (#1949)
* Update custom-node-list.json

* Update custom-node-list.json

fixing the correct insertion of new entries in alphabetical order.
2025-06-26 06:37:29 +09:00
Dr.Lt.Data a0aee41f1a fixed: Support configuration with use_uv enabled in environments where only uv exists without pip.
https://github.com/Comfy-Org/ComfyUI-Manager/issues/1828
2025-06-25 12:44:26 +09:00
Dr.Lt.Data 2049dd75f4 update DB 2025-06-25 12:17:07 +09:00
Dr.Lt.Data 0864c35ba9 update DB 2025-06-25 07:27:45 +09:00
Dr.Lt.Data 92c9f66671 update DB 2025-06-25 00:52:31 +09:00
28 changed files with 28601 additions and 9192 deletions
+58
View File
@@ -0,0 +1,58 @@
name: Publish to PyPI
on:
workflow_dispatch:
push:
branches:
- draft-v4
paths:
- "pyproject.toml"
jobs:
build-and-publish:
runs-on: ubuntu-latest
if: ${{ github.repository_owner == 'ltdrdata' || github.repository_owner == 'Comfy-Org' }}
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: '3.9'
- name: Install build dependencies
run: |
python -m pip install --upgrade pip
python -m pip install build twine
- name: Get current version
id: current_version
run: |
CURRENT_VERSION=$(grep -oP 'version = "\K[^"]+' pyproject.toml)
echo "version=$CURRENT_VERSION" >> $GITHUB_OUTPUT
echo "Current version: $CURRENT_VERSION"
- name: Build package
run: python -m build
- name: Create GitHub Release
id: create_release
uses: softprops/action-gh-release@v2
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
files: dist/*
tag_name: v${{ steps.current_version.outputs.version }}
draft: false
prerelease: false
generate_release_notes: true
- name: Publish to PyPI
uses: pypa/gh-action-pypi-publish@release/v1
with:
password: ${{ secrets.PYPI_TOKEN }}
skip-existing: true
verbose: true
+1 -7
View File
@@ -46,10 +46,7 @@ comfyui_manager_path = os.path.abspath(os.path.dirname(__file__))
cm_global.pip_blacklist = {'torch', 'torchaudio', 'torchsde', 'torchvision'} cm_global.pip_blacklist = {'torch', 'torchaudio', 'torchsde', 'torchvision'}
cm_global.pip_downgrade_blacklist = ['torch', 'torchaudio', 'torchsde', 'torchvision', 'transformers', 'safetensors', 'kornia'] cm_global.pip_downgrade_blacklist = ['torch', 'torchaudio', 'torchsde', 'torchvision', 'transformers', 'safetensors', 'kornia']
if sys.version_info < (3, 13): cm_global.pip_overrides = {}
cm_global.pip_overrides = {'numpy': 'numpy<2'}
else:
cm_global.pip_overrides = {}
if os.path.exists(os.path.join(manager_util.comfyui_manager_path, "pip_overrides.json")): if os.path.exists(os.path.join(manager_util.comfyui_manager_path, "pip_overrides.json")):
with open(os.path.join(manager_util.comfyui_manager_path, "pip_overrides.json"), 'r', encoding="UTF-8", errors="ignore") as json_file: with open(os.path.join(manager_util.comfyui_manager_path, "pip_overrides.json"), 'r', encoding="UTF-8", errors="ignore") as json_file:
@@ -152,9 +149,6 @@ class Ctx:
with open(core.manager_pip_overrides_path, 'r', encoding="UTF-8", errors="ignore") as json_file: with open(core.manager_pip_overrides_path, 'r', encoding="UTF-8", errors="ignore") as json_file:
cm_global.pip_overrides = json.load(json_file) cm_global.pip_overrides = json.load(json_file)
if sys.version_info < (3, 13):
cm_global.pip_overrides = {'numpy': 'numpy<2'}
if os.path.exists(core.manager_pip_blacklist_path): if os.path.exists(core.manager_pip_blacklist_path):
with open(core.manager_pip_blacklist_path, 'r', encoding="UTF-8", errors="ignore") as f: with open(core.manager_pip_blacklist_path, 'r', encoding="UTF-8", errors="ignore") as f:
for x in f.readlines(): for x in f.readlines():
+3943 -390
View File
File diff suppressed because it is too large Load Diff
+5345 -710
View File
File diff suppressed because it is too large Load Diff
+6405 -4570
View File
File diff suppressed because it is too large Load Diff
+2 -2
View File
@@ -179,7 +179,7 @@ def install_node(node_id, version=None):
else: else:
url = f"{base_url}/nodes/{node_id}/install?version={version}" url = f"{base_url}/nodes/{node_id}/install?version={version}"
response = requests.get(url) response = requests.get(url, verify=not manager_util.bypass_ssl)
if response.status_code == 200: if response.status_code == 200:
# Convert the API response to a NodeVersion object # Convert the API response to a NodeVersion object
return map_node_version(response.json()) return map_node_version(response.json())
@@ -190,7 +190,7 @@ def install_node(node_id, version=None):
def all_versions_of_node(node_id): def all_versions_of_node(node_id):
url = f"{base_url}/nodes/{node_id}/versions?statuses=NodeVersionStatusActive&statuses=NodeVersionStatusPending" url = f"{base_url}/nodes/{node_id}/versions?statuses=NodeVersionStatusActive&statuses=NodeVersionStatusPending"
response = requests.get(url) response = requests.get(url, verify=not manager_util.bypass_ssl)
if response.status_code == 200: if response.status_code == 200:
return response.json() return response.json()
else: else:
+18 -5
View File
@@ -43,7 +43,7 @@ import manager_downloader
from node_package import InstalledNodePackage from node_package import InstalledNodePackage
version_code = [3, 33, 2] version_code = [3, 36]
version_str = f"V{version_code[0]}.{version_code[1]}" + (f'.{version_code[2]}' if len(version_code) > 2 else '') version_str = f"V{version_code[0]}.{version_code[1]}" + (f'.{version_code[2]}' if len(version_code) > 2 else '')
@@ -1711,11 +1711,13 @@ def read_config():
config = configparser.ConfigParser(strict=False) config = configparser.ConfigParser(strict=False)
config.read(manager_config_path) config.read(manager_config_path)
default_conf = config['default'] default_conf = config['default']
manager_util.use_uv = default_conf['use_uv'].lower() == 'true' if 'use_uv' in default_conf else False
def get_bool(key, default_value): def get_bool(key, default_value):
return default_conf[key].lower() == 'true' if key in default_conf else False return default_conf[key].lower() == 'true' if key in default_conf else False
manager_util.use_uv = default_conf['use_uv'].lower() == 'true' if 'use_uv' in default_conf else False
manager_util.bypass_ssl = get_bool('bypass_ssl', False)
return { return {
'http_channel_enabled': get_bool('http_channel_enabled', False), 'http_channel_enabled': get_bool('http_channel_enabled', False),
'preview_method': default_conf.get('preview_method', manager_funcs.get_current_preview_method()).lower(), 'preview_method': default_conf.get('preview_method', manager_funcs.get_current_preview_method()).lower(),
@@ -1738,16 +1740,20 @@ def read_config():
} }
except Exception: except Exception:
manager_util.use_uv = False import importlib.util
# temporary disable `uv` on Windows by default (https://github.com/Comfy-Org/ComfyUI-Manager/issues/1969)
manager_util.use_uv = importlib.util.find_spec("uv") is not None and platform.system() != "Windows"
manager_util.bypass_ssl = False
return { return {
'http_channel_enabled': False, 'http_channel_enabled': False,
'preview_method': manager_funcs.get_current_preview_method(), 'preview_method': manager_funcs.get_current_preview_method(),
'git_exe': '', 'git_exe': '',
'use_uv': False, 'use_uv': manager_util.use_uv,
'channel_url': DEFAULT_CHANNEL, 'channel_url': DEFAULT_CHANNEL,
'default_cache_as_channel_url': False, 'default_cache_as_channel_url': False,
'share_option': 'all', 'share_option': 'all',
'bypass_ssl': False, 'bypass_ssl': manager_util.bypass_ssl,
'file_logging': True, 'file_logging': True,
'component_policy': 'workflow', 'component_policy': 'workflow',
'update_policy': 'stable-comfyui', 'update_policy': 'stable-comfyui',
@@ -3108,6 +3114,11 @@ async def restore_snapshot(snapshot_path, git_helper_extras=None):
info = yaml.load(snapshot_file, Loader=yaml.SafeLoader) info = yaml.load(snapshot_file, Loader=yaml.SafeLoader)
info = info['custom_nodes'] info = info['custom_nodes']
if 'pips' in info and info['pips']:
pips = info['pips']
else:
pips = {}
# for cnr restore # for cnr restore
cnr_info = info.get('cnr_custom_nodes') cnr_info = info.get('cnr_custom_nodes')
if cnr_info is not None: if cnr_info is not None:
@@ -3314,6 +3325,8 @@ async def restore_snapshot(snapshot_path, git_helper_extras=None):
unified_manager.repo_install(repo_url, to_path, instant_execution=True, no_deps=False, return_postinstall=False) unified_manager.repo_install(repo_url, to_path, instant_execution=True, no_deps=False, return_postinstall=False)
cloned_repos.append(repo_name) cloned_repos.append(repo_name)
manager_util.restore_pip_snapshot(pips, git_helper_extras)
# print summary # print summary
for x in cloned_repos: for x in cloned_repos:
print(f"[ INSTALLED ] {x}") print(f"[ INSTALLED ] {x}")
+5 -1
View File
@@ -55,7 +55,11 @@ def download_url(model_url: str, model_dir: str, filename: str):
return aria2_download_url(model_url, model_dir, filename) return aria2_download_url(model_url, model_dir, filename)
else: else:
from torchvision.datasets.utils import download_url as torchvision_download_url from torchvision.datasets.utils import download_url as torchvision_download_url
return torchvision_download_url(model_url, model_dir, filename) try:
return torchvision_download_url(model_url, model_dir, filename)
except Exception as e:
logging.error(f"[ComfyUI-Manager] Failed to download: {model_url} / {repr(e)}")
raise
def aria2_find_task(dir: str, filename: str): def aria2_find_task(dir: str, filename: str):
+1 -1
View File
@@ -589,7 +589,7 @@ async def task_worker():
return 'success' return 'success'
except Exception as e: except Exception as e:
logging.error(f"[ComfyUI-Manager] ERROR: {e}", file=sys.stderr) logging.error(f"[ComfyUI-Manager] ERROR: {e}")
return f"Model installation error: {model_url}" return f"Model installation error: {model_url}"
+97 -50
View File
@@ -15,7 +15,6 @@ import re
import logging import logging
import platform import platform
import shlex import shlex
import cm_global
cache_lock = threading.Lock() cache_lock = threading.Lock()
@@ -24,7 +23,7 @@ comfyui_manager_path = os.path.abspath(os.path.join(os.path.dirname(__file__), '
cache_dir = os.path.join(comfyui_manager_path, '.cache') # This path is also updated together in **manager_core.update_user_directory**. cache_dir = os.path.join(comfyui_manager_path, '.cache') # This path is also updated together in **manager_core.update_user_directory**.
use_uv = False use_uv = False
bypass_ssl = False
def add_python_path_to_env(): def add_python_path_to_env():
if platform.system() != "Windows": if platform.system() != "Windows":
@@ -137,7 +136,7 @@ async def get_data(uri, silent=False):
print(f"FETCH DATA from: {uri}", end="") print(f"FETCH DATA from: {uri}", end="")
if uri.startswith("http"): if uri.startswith("http"):
async with aiohttp.ClientSession(trust_env=True, connector=aiohttp.TCPConnector(verify_ssl=False)) as session: async with aiohttp.ClientSession(trust_env=True, connector=aiohttp.TCPConnector(verify_ssl=not bypass_ssl)) as session:
headers = { headers = {
'Cache-Control': 'no-cache', 'Cache-Control': 'no-cache',
'Pragma': 'no-cache', 'Pragma': 'no-cache',
@@ -327,6 +326,32 @@ torch_torchvision_torchaudio_version_map = {
} }
def torch_rollback(prev):
spec = prev.split('+')
if len(spec) > 1:
platform = spec[1]
else:
cmd = make_pip_cmd(['install', '--force', 'torch', 'torchvision', 'torchaudio'])
subprocess.check_output(cmd, universal_newlines=True)
logging.error(cmd)
return
torch_ver = StrictVersion(spec[0])
torch_ver = f"{torch_ver.major}.{torch_ver.minor}.{torch_ver.patch}"
torch_torchvision_torchaudio_ver = torch_torchvision_torchaudio_version_map.get(torch_ver)
if torch_torchvision_torchaudio_ver is None:
cmd = make_pip_cmd(['install', '--pre', 'torch', 'torchvision', 'torchaudio',
'--index-url', f"https://download.pytorch.org/whl/nightly/{platform}"])
logging.info("[ComfyUI-Manager] restore PyTorch to nightly version")
else:
torchvision_ver, torchaudio_ver = torch_torchvision_torchaudio_ver
cmd = make_pip_cmd(['install', f'torch=={torch_ver}', f'torchvision=={torchvision_ver}', f"torchaudio=={torchaudio_ver}",
'--index-url', f"https://download.pytorch.org/whl/{platform}"])
logging.info(f"[ComfyUI-Manager] restore PyTorch to {torch_ver}+{platform}")
subprocess.check_output(cmd, universal_newlines=True)
class PIPFixer: class PIPFixer:
def __init__(self, prev_pip_versions, comfyui_path, manager_files_path): def __init__(self, prev_pip_versions, comfyui_path, manager_files_path):
@@ -334,32 +359,6 @@ class PIPFixer:
self.comfyui_path = comfyui_path self.comfyui_path = comfyui_path
self.manager_files_path = manager_files_path self.manager_files_path = manager_files_path
def torch_rollback(self):
spec = self.prev_pip_versions['torch'].split('+')
if len(spec) > 0:
platform = spec[1]
else:
cmd = make_pip_cmd(['install', '--force', 'torch', 'torchvision', 'torchaudio'])
subprocess.check_output(cmd, universal_newlines=True)
logging.error(cmd)
return
torch_ver = StrictVersion(spec[0])
torch_ver = f"{torch_ver.major}.{torch_ver.minor}.{torch_ver.patch}"
torch_torchvision_torchaudio_ver = torch_torchvision_torchaudio_version_map.get(torch_ver)
if torch_torchvision_torchaudio_ver is None:
cmd = make_pip_cmd(['install', '--pre', 'torch', 'torchvision', 'torchaudio',
'--index-url', f"https://download.pytorch.org/whl/nightly/{platform}"])
logging.info("[ComfyUI-Manager] restore PyTorch to nightly version")
else:
torchvision_ver, torchaudio_ver = torch_torchvision_torchaudio_ver
cmd = make_pip_cmd(['install', f'torch=={torch_ver}', f'torchvision=={torchvision_ver}', f"torchaudio=={torchaudio_ver}",
'--index-url', f"https://download.pytorch.org/whl/{platform}"])
logging.info(f"[ComfyUI-Manager] restore PyTorch to {torch_ver}+{platform}")
subprocess.check_output(cmd, universal_newlines=True)
def fix_broken(self): def fix_broken(self):
new_pip_versions = get_installed_packages(True) new_pip_versions = get_installed_packages(True)
@@ -381,7 +380,7 @@ class PIPFixer:
elif self.prev_pip_versions['torch'] != new_pip_versions['torch'] \ elif self.prev_pip_versions['torch'] != new_pip_versions['torch'] \
or self.prev_pip_versions['torchvision'] != new_pip_versions['torchvision'] \ or self.prev_pip_versions['torchvision'] != new_pip_versions['torchvision'] \
or self.prev_pip_versions['torchaudio'] != new_pip_versions['torchaudio']: or self.prev_pip_versions['torchaudio'] != new_pip_versions['torchaudio']:
self.torch_rollback() torch_rollback(self.prev_pip_versions['torch'])
except Exception as e: except Exception as e:
logging.error("[ComfyUI-Manager] Failed to restore PyTorch") logging.error("[ComfyUI-Manager] Failed to restore PyTorch")
logging.error(e) logging.error(e)
@@ -412,32 +411,14 @@ class PIPFixer:
if len(targets) > 0: if len(targets) > 0:
for x in targets: for x in targets:
if sys.version_info < (3, 13): cmd = make_pip_cmd(['install', f"{x}=={versions[0].version_string}"])
cmd = make_pip_cmd(['install', f"{x}=={versions[0].version_string}", "numpy<2"]) subprocess.check_output(cmd, universal_newlines=True)
subprocess.check_output(cmd, universal_newlines=True)
logging.info(f"[ComfyUI-Manager] 'opencv' dependencies were fixed: {targets}") logging.info(f"[ComfyUI-Manager] 'opencv' dependencies were fixed: {targets}")
except Exception as e: except Exception as e:
logging.error("[ComfyUI-Manager] Failed to restore opencv") logging.error("[ComfyUI-Manager] Failed to restore opencv")
logging.error(e) logging.error(e)
# fix numpy
if sys.version_info >= (3, 13):
logging.info("[ComfyUI-Manager] In Python 3.13 and above, PIP Fixer does not downgrade `numpy` below version 2.0. If you need to force a downgrade of `numpy`, please use `pip_auto_fix.list`.")
else:
try:
np = new_pip_versions.get('numpy')
if cm_global.pip_overrides.get('numpy') == 'numpy<2':
if np is not None:
if StrictVersion(np) >= StrictVersion('2'):
cmd = make_pip_cmd(['install', "numpy<2"])
subprocess.check_output(cmd , universal_newlines=True)
logging.info("[ComfyUI-Manager] 'numpy' dependency were fixed")
except Exception as e:
logging.error("[ComfyUI-Manager] Failed to restore numpy")
logging.error(e)
# fix missing frontend # fix missing frontend
try: try:
# NOTE: package name in requirements is 'comfyui-frontend-package' # NOTE: package name in requirements is 'comfyui-frontend-package'
@@ -537,3 +518,69 @@ def robust_readlines(fullpath):
print(f"[ComfyUI-Manager] Failed to recognize encoding for: {fullpath}") print(f"[ComfyUI-Manager] Failed to recognize encoding for: {fullpath}")
return [] return []
def restore_pip_snapshot(pips, options):
non_url = []
local_url = []
non_local_url = []
for k, v in pips.items():
# NOTE: skip torch related packages
if k.startswith("torch==") or k.startswith("torchvision==") or k.startswith("torchaudio==") or k.startswith("nvidia-"):
continue
if v == "":
non_url.append(k)
else:
if v.startswith('file:'):
local_url.append(v)
else:
non_local_url.append(v)
# restore other pips
failed = []
if '--pip-non-url' in options:
# try all at once
res = 1
try:
res = subprocess.check_output(make_pip_cmd(['install'] + non_url))
except Exception:
pass
# fallback
if res != 0:
for x in non_url:
res = 1
try:
res = subprocess.check_output(make_pip_cmd(['install', '--no-deps', x]))
except Exception:
pass
if res != 0:
failed.append(x)
if '--pip-non-local-url' in options:
for x in non_local_url:
res = 1
try:
res = subprocess.check_output(make_pip_cmd(['install', '--no-deps', x]))
except Exception:
pass
if res != 0:
failed.append(x)
if '--pip-local-url' in options:
for x in local_url:
res = 1
try:
res = subprocess.check_output(make_pip_cmd(['install', '--no-deps', x]))
except Exception:
pass
if res != 0:
failed.append(x)
print(f"Installation failed for pip packages: {failed}")
+16 -9
View File
@@ -2,6 +2,8 @@ import sys
import subprocess import subprocess
import os import os
import manager_util
def security_check(): def security_check():
print("[START] Security scan") print("[START] Security scan")
@@ -66,18 +68,23 @@ https://blog.comfy.org/comfyui-statement-on-the-ultralytics-crypto-miner-situati
"lolMiner": [os.path.join(comfyui_path, 'lolMiner')] "lolMiner": [os.path.join(comfyui_path, 'lolMiner')]
} }
installed_pips = subprocess.check_output([sys.executable, '-m', "pip", "freeze"], text=True) installed_pips = subprocess.check_output(manager_util.make_pip_cmd(["freeze"]), text=True)
detected = set() detected = set()
try: try:
anthropic_info = subprocess.check_output([sys.executable, '-m', "pip", "show", "anthropic"], text=True, stderr=subprocess.DEVNULL) anthropic_info = subprocess.check_output(manager_util.make_pip_cmd(["show", "anthropic"]), text=True, stderr=subprocess.DEVNULL)
anthropic_reqs = [x for x in anthropic_info.split('\n') if x.startswith("Requires")][0].split(': ')[1] requires_lines = [x for x in anthropic_info.split('\n') if x.startswith("Requires")]
if "pycrypto" in anthropic_reqs: if requires_lines:
location = [x for x in anthropic_info.split('\n') if x.startswith("Location")][0].split(': ')[1] anthropic_reqs = requires_lines[0].split(": ", 1)[1]
for fi in os.listdir(location): if "pycrypto" in anthropic_reqs:
if fi.startswith("anthropic"): location_lines = [x for x in anthropic_info.split('\n') if x.startswith("Location")]
guide["ComfyUI_LLMVISION"] = f"\n0.Remove {os.path.join(location, fi)}" + guide["ComfyUI_LLMVISION"] if location_lines:
detected.add("ComfyUI_LLMVISION") location = location_lines[0].split(": ", 1)[1]
for fi in os.listdir(location):
if fi.startswith("anthropic"):
guide["ComfyUI_LLMVISION"] = (f"\n0.Remove {os.path.join(location, fi)}" + guide["ComfyUI_LLMVISION"])
detected.add("ComfyUI_LLMVISION")
except subprocess.CalledProcessError: except subprocess.CalledProcessError:
pass pass
+230 -47
View File
@@ -71,7 +71,7 @@ export class CopusShareDialog extends ComfyDialog {
this.allFiles = []; this.allFiles = [];
this.titleNum = 0; this.titleNum = 0;
} }
createButtons() { createButtons() {
const inputStyle = { const inputStyle = {
display: "block", display: "block",
@@ -201,13 +201,15 @@ export class CopusShareDialog extends ComfyDialog {
}); });
this.LockInput = $el("input", { this.LockInput = $el("input", {
type: "text", type: "text",
placeholder: "", placeholder: "0",
style: { style: {
width: "100px", width: "100px",
padding: "7px", padding: "7px",
paddingLeft: "30px",
borderRadius: "4px", borderRadius: "4px",
border: "1px solid #ddd", border: "1px solid #ddd",
boxSizing: "border-box", boxSizing: "border-box",
position: "relative",
}, },
oninput: (event) => { oninput: (event) => {
let input = event.target.value; let input = event.target.value;
@@ -301,7 +303,7 @@ export class CopusShareDialog extends ComfyDialog {
}, },
[] []
); );
const titleNumDom = $el( const titleNumDom = $el(
"label", "label",
{ {
@@ -342,15 +344,11 @@ export class CopusShareDialog extends ComfyDialog {
["0/70"] ["0/70"]
); );
// Additional Inputs Section // Additional Inputs Section
const additionalInputsSection = $el( const additionalInputsSection = $el("div", { style: { ...sectionStyle } }, [
"div", $el("label", { style: labelStyle }, ["3️⃣ Title "]),
{ style: { ...sectionStyle, } }, this.TitleInput,
[ titleNumDom,
$el("label", { style: labelStyle }, ["3️⃣ Title "]), ]);
this.TitleInput,
titleNumDom,
]
);
const SubtitleSection = $el("div", { style: sectionStyle }, [ const SubtitleSection = $el("div", { style: sectionStyle }, [
$el("label", { style: labelStyle }, ["4️⃣ Subtitle "]), $el("label", { style: labelStyle }, ["4️⃣ Subtitle "]),
this.SubTitleInput, this.SubTitleInput,
@@ -379,7 +377,7 @@ export class CopusShareDialog extends ComfyDialog {
}); });
const blockChainSection_lock = $el("div", { style: sectionStyle }, [ const blockChainSection_lock = $el("div", { style: sectionStyle }, [
$el("label", { style: labelStyle }, ["6️⃣ Pay to download"]), $el("label", { style: labelStyle }, ["6️⃣ Download threshold"]),
$el( $el(
"label", "label",
{ {
@@ -392,11 +390,42 @@ export class CopusShareDialog extends ComfyDialog {
}, },
[ [
this.radioButtonsCheck_lock, this.radioButtonsCheck_lock,
$el("div", { style: { marginLeft: "5px" ,display:'flex',alignItems:'center'} }, [ $el(
$el("span", { style: { marginLeft: "5px" } }, ["ON"]), "div",
$el("span", { style: { marginLeft: "20px",marginRight:'10px' ,color:'#fff'} }, ["Price US$"]), {
this.LockInput style: {
]), marginLeft: "5px",
display: "flex",
alignItems: "center",
position: "relative",
},
},
[
$el("span", { style: { marginLeft: "5px" } }, ["ON"]),
$el(
"span",
{
style: {
marginLeft: "20px",
marginRight: "10px",
color: "#fff",
},
},
["Unlock with"]
),
$el("img", {
style: {
width: "16px",
height: "16px",
position: "absolute",
right: "75px",
zIndex: "100",
},
src: "https://static.copus.io/images/admin/202507/prod/e2919a1d8f3c2d99d3b8fe27ff94b841.png",
}),
this.LockInput,
]
),
] ]
), ),
$el( $el(
@@ -404,14 +433,25 @@ export class CopusShareDialog extends ComfyDialog {
{ style: { display: "flex", alignItems: "center", cursor: "pointer" } }, { style: { display: "flex", alignItems: "center", cursor: "pointer" } },
[ [
this.radioButtonsCheckOff_lock, this.radioButtonsCheckOff_lock,
$el("span", { style: { marginLeft: "5px" } }, ["OFF"]), $el(
"div",
{
style: {
marginLeft: "5px",
display: "flex",
alignItems: "center",
},
},
[$el("span", { style: { marginLeft: "5px" } }, ["OFF"])]
),
] ]
), ),
$el( $el(
"p", "p",
{ style: { fontSize: "16px", color: "#fff", margin: "10px 0 0 0" } }, { style: { fontSize: "16px", color: "#fff", margin: "10px 0 0 0" } },
["Get paid from your workflow. You can change the price and withdraw your earnings on Copus."] [
]
), ),
]); ]);
@@ -432,7 +472,7 @@ export class CopusShareDialog extends ComfyDialog {
}); });
const blockChainSection = $el("div", { style: sectionStyle }, [ const blockChainSection = $el("div", { style: sectionStyle }, [
$el("label", { style: labelStyle }, ["7️⃣ Store on blockchain "]), $el("label", { style: labelStyle }, ["8️⃣ Store on blockchain "]),
$el( $el(
"label", "label",
{ {
@@ -463,6 +503,139 @@ export class CopusShareDialog extends ComfyDialog {
), ),
]); ]);
this.ratingRadioButtonsCheck0 = $el("input", {
type: "radio",
name: "content_rating",
value: "0",
id: "content_rating0",
});
this.ratingRadioButtonsCheck1 = $el("input", {
type: "radio",
name: "content_rating",
value: "1",
id: "content_rating1",
});
this.ratingRadioButtonsCheck2 = $el("input", {
type: "radio",
name: "content_rating",
value: "2",
id: "content_rating2",
});
this.ratingRadioButtonsCheck_1 = $el("input", {
type: "radio",
name: "content_rating",
value: "-1",
id: "content_rating_1",
checked: true,
});
// content rating
const contentRatingSection = $el("div", { style: sectionStyle }, [
$el("label", { style: labelStyle }, ["7️⃣ Content rating "]),
$el(
"label",
{
style: {
marginTop: "10px",
display: "flex",
alignItems: "center",
cursor: "pointer",
},
},
[
this.ratingRadioButtonsCheck0,
$el("img", {
style: {
width: "12px",
height: "12px",
marginLeft: "5px",
},
src: "https://static.copus.io/images/client/202507/test/b9f17da83b054d53cd0cb4508c2c30dc.png",
}),
$el("span", { style: { marginLeft: "5px", color: "#fff" } }, [
"All ages",
]),
]
),
$el(
"p",
{ style: { fontSize: "10px", color: "#fff", marginLeft: "20px" } },
["Safe for all viewers; no profanity, violence, or mature themes."]
),
$el(
"label",
{ style: { display: "flex", alignItems: "center", cursor: "pointer" } },
[
this.ratingRadioButtonsCheck1,
$el("img", {
style: {
width: "12px",
height: "12px",
marginLeft: "5px",
},
src: "https://static.copus.io/images/client/202507/test/7848bc0d3690671df21c7cf00c4cfc81.png",
}),
$el("span", { style: { marginLeft: "5px", color: "#fff" } }, [
"13+ (Teen)",
]),
]
),
$el(
"p",
{ style: { fontSize: "10px", color: "#fff", marginLeft: "20px" } },
[
"Mild language, light themes, or cartoon violence; no explicit content. ",
]
),
$el(
"label",
{ style: { display: "flex", alignItems: "center", cursor: "pointer" } },
[
this.ratingRadioButtonsCheck2,
$el("img", {
style: {
width: "12px",
height: "12px",
marginLeft: "5px",
},
src: "https://static.copus.io/images/client/202507/test/bc51839c208d68d91173e43c23bff039.png",
}),
$el("span", { style: { marginLeft: "5px", color: "#fff" } }, [
"18+ (Explicit)",
]),
]
),
$el(
"p",
{ style: { fontSize: "10px", color: "#fff", marginLeft: "20px" } },
[
"Explicit content, including sexual content, strong violence, or intense themes. ",
]
),
$el(
"label",
{ style: { display: "flex", alignItems: "center", cursor: "pointer" } },
[
this.ratingRadioButtonsCheck_1,
$el("img", {
style: {
width: "12px",
height: "12px",
marginLeft: "5px",
},
src: "https://static.copus.io/images/client/202507/test/5c802fdcaaea4e7bbed37393eec0d5ba.png",
}),
$el("span", { style: { marginLeft: "5px", color: "#fff" } }, [
"Not Rated",
]),
]
),
$el(
"p",
{ style: { fontSize: "10px", color: "#fff", marginLeft: "20px" } },
["No age rating provided."]
),
]);
// Message Section // Message Section
this.message = $el( this.message = $el(
@@ -526,6 +699,7 @@ export class CopusShareDialog extends ComfyDialog {
DescriptionSection, DescriptionSection,
// contestSection, // contestSection,
blockChainSection_lock, blockChainSection_lock,
contentRatingSection,
blockChainSection, blockChainSection,
this.message, this.message,
buttonsSection, buttonsSection,
@@ -534,7 +708,7 @@ export class CopusShareDialog extends ComfyDialog {
return layout; return layout;
} }
/** /**
* api * api
* @param {url} path * @param {url} path
* @param {params} options * @param {params} options
* @param {statusText} statusText * @param {statusText} statusText
@@ -587,7 +761,9 @@ export class CopusShareDialog extends ComfyDialog {
url: data, url: data,
}); });
} else { } else {
throw new Error("make sure your API key is correct and try again later"); throw new Error(
"make sure your API key is correct and try again later"
);
} }
} catch (e) { } catch (e) {
if (e?.response?.status === 413) { if (e?.response?.status === 413) {
@@ -628,8 +804,15 @@ export class CopusShareDialog extends ComfyDialog {
subTitle: this.SubTitleInput.value, subTitle: this.SubTitleInput.value,
content: this.descriptionInput.value, content: this.descriptionInput.value,
storeOnChain: this.radioButtonsCheck.checked ? true : false, storeOnChain: this.radioButtonsCheck.checked ? true : false,
lockState:this.radioButtonsCheck_lock.checked ? 2 : 0, lockState: this.radioButtonsCheck_lock.checked ? 2 : 0,
unlockPrice:this.LockInput.value, unlockPrice: this.LockInput.value,
rating: this.ratingRadioButtonsCheck0.checked
? 0
: this.ratingRadioButtonsCheck1.checked
? 1
: this.ratingRadioButtonsCheck2.checked
? 2
: -1,
}; };
if (!this.keyInput.value) { if (!this.keyInput.value) {
@@ -644,8 +827,8 @@ export class CopusShareDialog extends ComfyDialog {
throw new Error("Title is required"); throw new Error("Title is required");
} }
if(this.radioButtonsCheck_lock.checked){ if (this.radioButtonsCheck_lock.checked) {
if (!this.LockInput.value){ if (!this.LockInput.value) {
throw new Error("Price is required"); throw new Error("Price is required");
} }
} }
@@ -695,23 +878,23 @@ export class CopusShareDialog extends ComfyDialog {
"Uploading workflow..." "Uploading workflow..."
); );
if (res.status && res.data.status && res.data) { if (res.status && res.data.status && res.data) {
localStorage.setItem("copus_token",this.keyInput.value); localStorage.setItem("copus_token", this.keyInput.value);
const { data } = res.data; const { data } = res.data;
if (data) { if (data) {
const url = `${DEFAULT_HOMEPAGE_URL}/work/${data}`; const url = `${DEFAULT_HOMEPAGE_URL}/work/${data}`;
this.message.innerHTML = `Workflow has been shared successfully. <a href="${url}" target="_blank">Click here to view it.</a>`; this.message.innerHTML = `Workflow has been shared successfully. <a href="${url}" target="_blank">Click here to view it.</a>`;
this.previewImage.src = ""; this.previewImage.src = "";
this.previewImage.style.display = "none"; this.previewImage.style.display = "none";
this.uploadedImages = []; this.uploadedImages = [];
this.allFilesImages = []; this.allFilesImages = [];
this.allFiles = []; this.allFiles = [];
this.TitleInput.value = ""; this.TitleInput.value = "";
this.SubTitleInput.value = ""; this.SubTitleInput.value = "";
this.descriptionInput.value = ""; this.descriptionInput.value = "";
this.selectedFile = null; this.selectedFile = null;
} }
} }
} catch (e) { } catch (e) {
throw new Error("Error sharing workflow: " + e.message); throw new Error("Error sharing workflow: " + e.message);
} }
@@ -757,7 +940,7 @@ export class CopusShareDialog extends ComfyDialog {
this.element.style.display = "block"; this.element.style.display = "block";
this.previewImage.src = ""; this.previewImage.src = "";
this.previewImage.style.display = "none"; this.previewImage.style.display = "none";
this.keyInput.value = apiToken!=null?apiToken:""; this.keyInput.value = apiToken != null ? apiToken : "";
this.uploadedImages = []; this.uploadedImages = [];
this.allFilesImages = []; this.allFilesImages = [];
this.allFiles = []; this.allFiles = [];
+25 -7
View File
@@ -1625,17 +1625,35 @@ export class CustomNodesManager {
getNodesInWorkflow() { getNodesInWorkflow() {
let usedGroupNodes = new Set(); let usedGroupNodes = new Set();
let allUsedNodes = {}; let allUsedNodes = {};
const visitedGraphs = new Set();
for(let k in app.graph._nodes) { const visitGraph = (graph) => {
let node = app.graph._nodes[k]; if (!graph || visitedGraphs.has(graph)) return;
visitedGraphs.add(graph);
if(node.type.startsWith('workflow>')) { const nodes = graph._nodes || graph.nodes || [];
usedGroupNodes.add(node.type.slice(9)); for(let k in nodes) {
continue; let node = nodes[k];
if (!node) continue;
// If it's a SubgraphNode, recurse into its graph and continue searching
if (node.isSubgraphNode?.() && node.subgraph) {
visitGraph(node.subgraph);
}
if (!node.type) continue;
// Group nodes / components
if(typeof node.type === 'string' && node.type.startsWith('workflow>')) {
usedGroupNodes.add(node.type.slice(9));
continue;
}
allUsedNodes[node.type] = node;
} }
};
allUsedNodes[node.type] = node; visitGraph(app.graph);
}
for(let k of usedGroupNodes) { for(let k of usedGroupNodes) {
let subnodes = app.graph.extra.groupNodes[k]?.nodes; let subnodes = app.graph.extra.groupNodes[k]?.nodes;
+302 -1
View File
@@ -1973,6 +1973,97 @@
"url": "https://dl.fbaipublicfiles.com/segment_anything/sam_vit_b_01ec64.pth", "url": "https://dl.fbaipublicfiles.com/segment_anything/sam_vit_b_01ec64.pth",
"size": "375.0MB" "size": "375.0MB"
}, },
{
"name": "sam2.1_hiera_tiny.pt",
"type": "sam2.1",
"base": "SAM",
"save_path": "sams",
"description": "Segmenty Anything SAM 2.1 hiera model (tiny)",
"reference": "https://github.com/facebookresearch/sam2#model-description",
"filename": "sam2.1_hiera_tiny.pt",
"url": "https://dl.fbaipublicfiles.com/segment_anything_2/092824/sam2.1_hiera_tiny.pt",
"size": "149.0MB"
},
{
"name": "sam2.1_hiera_small.pt",
"type": "sam2.1",
"base": "SAM",
"save_path": "sams",
"description": "Segmenty Anything SAM 2.1 hiera model (small)",
"reference": "https://github.com/facebookresearch/sam2#model-description",
"filename": "sam2.1_hiera_small.pt",
"url": "https://dl.fbaipublicfiles.com/segment_anything_2/092824/sam2.1_hiera_small.pt",
"size": "176.0MB"
},
{
"name": "sam2.1_hiera_base_plus.pt",
"type": "sam2.1",
"base": "SAM",
"save_path": "sams",
"description": "Segmenty Anything SAM 2.1 hiera model (base+)",
"reference": "https://github.com/facebookresearch/sam2#model-description",
"filename": "sam2.1_hiera_base_plus.pt",
"url": "https://dl.fbaipublicfiles.com/segment_anything_2/092824/sam2.1_hiera_base_plus.pt",
"size": "309.0MB"
},
{
"name": "sam2.1_hiera_large.pt",
"type": "sam2.1",
"base": "SAM",
"save_path": "sams",
"description": "Segmenty Anything SAM 2.1 hiera model (large)",
"reference": "https://github.com/facebookresearch/sam2#model-description",
"filename": "sam2.1_hiera_large.pt",
"url": "https://dl.fbaipublicfiles.com/segment_anything_2/092824/sam2.1_hiera_large.pt",
"size": "857.0MB"
},
{
"name": "sam2_hiera_tiny.pt",
"type": "sam2",
"base": "SAM",
"save_path": "sams",
"description": "Segmenty Anything SAM 2 hiera model (tiny)",
"reference": "https://github.com/facebookresearch/sam2#model-description",
"filename": "sam2_hiera_tiny.pt",
"url": "https://dl.fbaipublicfiles.com/segment_anything_2/072824/sam2_hiera_tiny.pt",
"size": "149.0MB"
},
{
"name": "sam2_hiera_small.pt",
"type": "sam2",
"base": "SAM",
"save_path": "sams",
"description": "Segmenty Anything SAM 2 hiera model (small)",
"reference": "https://github.com/facebookresearch/sam2#model-description",
"filename": "sam2_hiera_small.pt",
"url": "https://dl.fbaipublicfiles.com/segment_anything_2/072824/sam2_hiera_small.pt",
"size": "176.0MB"
},
{
"name": "sam2_hiera_base_plus.pt",
"type": "sam2",
"base": "SAM",
"save_path": "sams",
"description": "Segmenty Anything SAM 2 hiera model (base+)",
"reference": "https://github.com/facebookresearch/sam2#model-description",
"filename": "sam2_hiera_base_plus.pt",
"url": "https://dl.fbaipublicfiles.com/segment_anything_2/072824/sam2_hiera_base_plus.pt",
"size": "309.0MB"
},
{
"name": "sam2_hiera_large.pt",
"type": "sam2",
"base": "SAM",
"save_path": "sams",
"description": "Segmenty Anything SAM 2 hiera model (large)",
"reference": "https://github.com/facebookresearch/sam2#model-description",
"filename": "sam2_hiera_large.pt",
"url": "https://dl.fbaipublicfiles.com/segment_anything_2/072824/sam2_hiera_large.pt",
"size": "857.0MB"
},
{ {
"name": "seecoder v1.0", "name": "seecoder v1.0",
"type": "seecoder", "type": "seecoder",
@@ -4006,6 +4097,29 @@
"size": "649MB" "size": "649MB"
}, },
{
"name": "Comfy-Org/omnigen2_fp16.safetensors",
"type": "diffusion_model",
"base": "OmniGen2",
"save_path": "default",
"description": "OmniGen2 diffusion model. This is required for using OmniGen2.",
"reference": "https://huggingface.co/Comfy-Org/Omnigen2_ComfyUI_repackaged",
"filename": "omnigen2_fp16.safetensors",
"url": "https://huggingface.co/Comfy-Org/Omnigen2_ComfyUI_repackaged/resolve/main/split_files/diffusion_models/omnigen2_fp16.safetensors",
"size": "7.93GB"
},
{
"name": "Comfy-Org/qwen_2.5_vl_fp16.safetensors",
"type": "clip",
"base": "qwen-2.5",
"save_path": "default",
"description": "text encoder for OmniGen2",
"reference": "https://huggingface.co/Comfy-Org/Omnigen2_ComfyUI_repackaged",
"filename": "qwen_2.5_vl_fp16.safetensors",
"url": "https://huggingface.co/Comfy-Org/Omnigen2_ComfyUI_repackaged/resolve/main/split_files/text_encoders/qwen_2.5_vl_fp16.safetensors",
"size": "7.51GB"
},
{ {
"name": "FLUX.1 [Schnell] Diffusion model", "name": "FLUX.1 [Schnell] Diffusion model",
"type": "diffusion_model", "type": "diffusion_model",
@@ -4023,7 +4137,7 @@
"type": "VAE", "type": "VAE",
"base": "FLUX.1", "base": "FLUX.1",
"save_path": "vae/FLUX1", "save_path": "vae/FLUX1",
"description": "FLUX.1 VAE model", "description": "FLUX.1 VAE model\nNOTE: This VAE model can also be used for image generation with OmniGen2.",
"reference": "https://huggingface.co/black-forest-labs/FLUX.1-schnell", "reference": "https://huggingface.co/black-forest-labs/FLUX.1-schnell",
"filename": "ae.safetensors", "filename": "ae.safetensors",
"url": "https://huggingface.co/black-forest-labs/FLUX.1-schnell/resolve/main/ae.safetensors", "url": "https://huggingface.co/black-forest-labs/FLUX.1-schnell/resolve/main/ae.safetensors",
@@ -4931,6 +5045,105 @@
"size": "1.26GB" "size": "1.26GB"
}, },
{
"name": "Comfy-Org/Wan2.2 i2v high noise 14B (fp16)",
"type": "diffusion_model",
"base": "Wan2.2",
"save_path": "diffusion_models/Wan2.2",
"description": "Wan2.2 diffusion model for i2v high noise 14B (fp16)",
"reference": "https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged",
"filename": "wan2.2_i2v_high_noise_14B_fp16.safetensors",
"url": "https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/resolve/main/split_files/diffusion_models/wan2.2_i2v_high_noise_14B_fp16.safetensors",
"size": "28.6GB"
},
{
"name": "Comfy-Org/Wan2.2 i2v high noise 14B (fp8_scaled)",
"type": "diffusion_model",
"base": "Wan2.2",
"save_path": "diffusion_models/Wan2.2",
"description": "Wan2.2 diffusion model for i2v high noise 14B (fp8_scaled)",
"reference": "https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged",
"filename": "wan2.2_i2v_high_noise_14B_fp8_scaled.safetensors",
"url": "https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/resolve/main/split_files/diffusion_models/wan2.2_i2v_high_noise_14B_fp8_scaled.safetensors",
"size": "14.3GB"
},
{
"name": "Comfy-Org/Wan2.2 i2v low noise 14B (fp16)",
"type": "diffusion_model",
"base": "Wan2.2",
"save_path": "diffusion_models/Wan2.2",
"description": "Wan2.2 diffusion model for i2v low noise 14B (fp16)",
"reference": "https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged",
"filename": "wan2.2_i2v_low_noise_14B_fp16.safetensors",
"url": "https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/resolve/main/split_files/diffusion_models/wan2.2_i2v_low_noise_14B_fp16.safetensors",
"size": "28.6GB"
},
{
"name": "Comfy-Org/Wan2.2 i2v low noise 14B (fp8_scaled)",
"type": "diffusion_model",
"base": "Wan2.2",
"save_path": "diffusion_models/Wan2.2",
"description": "Wan2.2 diffusion model for i2v low noise 14B (fp8_scaled)",
"reference": "https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged",
"filename": "wan2.2_i2v_low_noise_14B_fp8_scaled.safetensors",
"url": "https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/resolve/main/split_files/diffusion_models/wan2.2_i2v_low_noise_14B_fp8_scaled.safetensors",
"size": "14.3GB"
},
{
"name": "Comfy-Org/Wan2.2 t2v high noise 14B (fp16)",
"type": "diffusion_model",
"base": "Wan2.2",
"save_path": "diffusion_models/Wan2.2",
"description": "Wan2.2 diffusion model for t2v high noise 14B (fp16)",
"reference": "https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged",
"filename": "wan2.2_t2v_high_noise_14B_fp16.safetensors",
"url": "https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/resolve/main/split_files/diffusion_models/wan2.2_t2v_high_noise_14B_fp16.safetensors",
"size": "28.6GB"
},
{
"name": "Comfy-Org/Wan2.2 t2v high noise 14B (fp8_scaled)",
"type": "diffusion_model",
"base": "Wan2.2",
"save_path": "diffusion_models/Wan2.2",
"description": "Wan2.2 diffusion model for t2v high noise 14B (fp8_scaled)",
"reference": "https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged",
"filename": "wan2.2_t2v_high_noise_14B_fp8_scaled.safetensors",
"url": "https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/resolve/main/split_files/diffusion_models/wan2.2_t2v_high_noise_14B_fp8_scaled.safetensors",
"size": "14.3GB"
},
{
"name": "Comfy-Org/Wan2.2 t2v low noise 14B (fp16)",
"type": "diffusion_model",
"base": "Wan2.2",
"save_path": "diffusion_models/Wan2.2",
"description": "Wan2.2 diffusion model for t2v low noise 14B (fp16)",
"reference": "https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged",
"filename": "wan2.2_t2v_low_noise_14B_fp16.safetensors",
"url": "https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/resolve/main/split_files/diffusion_models/wan2.2_t2v_low_noise_14B_fp16.safetensors",
"size": "28.6GB"
},
{
"name": "Comfy-Org/Wan2.2 t2v low noise 14B (fp8_scaled)",
"type": "diffusion_model",
"base": "Wan2.2",
"save_path": "diffusion_models/Wan2.2",
"description": "Wan2.2 diffusion model for t2v low noise 14B (fp8_scaled)",
"reference": "https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged",
"filename": "wan2.2_t2v_low_noise_14B_fp8_scaled.safetensors",
"url": "https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/resolve/main/split_files/diffusion_models/wan2.2_t2v_low_noise_14B_fp8_scaled.safetensors",
"size": "14.3GB"
},
{
"name": "Comfy-Org/Wan2.2 ti2v 5B (fp16)",
"type": "diffusion_model",
"base": "Wan2.2",
"save_path": "diffusion_models/Wan2.2",
"description": "Wan2.2 diffusion model for ti2v 5B (fp16)",
"reference": "https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged",
"filename": "wan2.2_ti2v_5B_fp16.safetensors",
"url": "https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/resolve/main/split_files/diffusion_models/wan2.2_ti2v_5B_fp16.safetensors",
"size": "10.0GB"
},
{ {
"name": "Comfy-Org/umt5_xxl_fp16.safetensors", "name": "Comfy-Org/umt5_xxl_fp16.safetensors",
@@ -5033,6 +5246,50 @@
"url": "https://huggingface.co/Lightricks/LTX-Video/resolve/main/ltxv-13b-0.9.7-distilled-fp8.safetensors", "url": "https://huggingface.co/Lightricks/LTX-Video/resolve/main/ltxv-13b-0.9.7-distilled-fp8.safetensors",
"size": "15.7GB" "size": "15.7GB"
}, },
{
"name": "LTX-Video 2B Distilled v0.9.8",
"type": "checkpoint",
"base": "LTX-Video",
"save_path": "checkpoints/LTXV",
"description": "LTX-Video 2B distilled model v0.9.8 with improved prompt understanding and detail generation.",
"reference": "https://huggingface.co/Lightricks/LTX-Video",
"filename": "ltxv-2b-0.9.8-distilled.safetensors",
"url": "https://huggingface.co/Lightricks/LTX-Video/resolve/main/ltxv-2b-0.9.8-distilled.safetensors",
"size": "6.34GB"
},
{
"name": "LTX-Video 2B Distilled FP8 v0.9.8",
"type": "checkpoint",
"base": "LTX-Video",
"save_path": "checkpoints/LTXV",
"description": "Quantized LTX-Video 2B distilled model v0.9.8 with improved prompt understanding and detail generation, optimized for lower VRAM usage.",
"reference": "https://huggingface.co/Lightricks/LTX-Video",
"filename": "ltxv-2b-0.9.8-distilled-fp8.safetensors",
"url": "https://huggingface.co/Lightricks/LTX-Video/resolve/main/ltxv-2b-0.9.8-distilled-fp8.safetensors",
"size": "4.46GB"
},
{
"name": "LTX-Video 13B Distilled v0.9.8",
"type": "checkpoint",
"base": "LTX-Video",
"save_path": "checkpoints/LTXV",
"description": "LTX-Video 13B distilled model v0.9.8 with improved prompt understanding and detail generation.",
"reference": "https://huggingface.co/Lightricks/LTX-Video",
"filename": "ltxv-13b-0.9.8-distilled.safetensors",
"url": "https://huggingface.co/Lightricks/LTX-Video/resolve/main/ltxv-13b-0.9.8-distilled.safetensors",
"size": "28.6GB"
},
{
"name": "LTX-Video 13B Distilled FP8 v0.9.8",
"type": "checkpoint",
"base": "LTX-Video",
"save_path": "checkpoints/LTXV",
"description": "Quantized LTX-Video 13B distilled model v0.9.8 with improved prompt understanding and detail generation, optimized for lower VRAM usage.",
"reference": "https://huggingface.co/Lightricks/LTX-Video",
"filename": "ltxv-13b-0.9.8-distilled-fp8.safetensors",
"url": "https://huggingface.co/Lightricks/LTX-Video/resolve/main/ltxv-13b-0.9.8-distilled-fp8.safetensors",
"size": "15.7GB"
},
{ {
"name": "LTX-Video 13B Distilled LoRA v0.9.7", "name": "LTX-Video 13B Distilled LoRA v0.9.7",
"type": "lora", "type": "lora",
@@ -5044,6 +5301,50 @@
"url": "https://huggingface.co/Lightricks/LTX-Video/resolve/main/ltxv-13b-0.9.7-distilled-lora128.safetensors", "url": "https://huggingface.co/Lightricks/LTX-Video/resolve/main/ltxv-13b-0.9.7-distilled-lora128.safetensors",
"size": "1.33GB" "size": "1.33GB"
}, },
{
"name": "LTX-Video ICLoRA Depth 13B v0.9.7",
"type": "lora",
"base": "LTX-Video",
"save_path": "loras",
"description": "In-Context LoRA (IC LoRA) for depth-controlled video-to-video generation with precise depth conditioning.",
"reference": "https://huggingface.co/Lightricks/LTX-Video-ICLoRA-depth-13b-0.9.7",
"filename": "ltxv-097-ic-lora-depth-control-comfyui.safetensors",
"url": "https://huggingface.co/Lightricks/LTX-Video-ICLoRA-depth-13b-0.9.7/resolve/main/ltxv-097-ic-lora-depth-control-comfyui.safetensors",
"size": "81.9MB"
},
{
"name": "LTX-Video ICLoRA Pose 13B v0.9.7",
"type": "lora",
"base": "LTX-Video",
"save_path": "loras",
"description": "In-Context LoRA (IC LoRA) for pose-controlled video-to-video generation with precise pose conditioning.",
"reference": "https://huggingface.co/Lightricks/LTX-Video-ICLoRA-pose-13b-0.9.7",
"filename": "ltxv-097-ic-lora-pose-control-comfyui.safetensors",
"url": "https://huggingface.co/Lightricks/LTX-Video-ICLoRA-pose-13b-0.9.7/resolve/main/ltxv-097-ic-lora-pose-control-comfyui.safetensors",
"size": "151MB"
},
{
"name": "LTX-Video ICLoRA Canny 13B v0.9.7",
"type": "lora",
"base": "LTX-Video",
"save_path": "loras",
"description": "In-Context LoRA (IC LoRA) for canny edge-controlled video-to-video generation with precise edge conditioning.",
"reference": "https://huggingface.co/Lightricks/LTX-Video-ICLoRA-canny-13b-0.9.7",
"filename": "ltxv-097-ic-lora-canny-control-comfyui.safetensors",
"url": "https://huggingface.co/Lightricks/LTX-Video-ICLoRA-canny-13b-0.9.7/resolve/main/ltxv-097-ic-lora-canny-control-comfyui.safetensors",
"size": "81.9MB"
},
{
"name": "LTX-Video ICLoRA Detailer 13B v0.9.8",
"type": "lora",
"base": "LTX-Video",
"save_path": "loras",
"description": "A video detailer model on top of LTXV_13B_098_DEV trained on custom data using In-Context LoRA (IC LoRA) method.",
"reference": "https://huggingface.co/Lightricks/LTX-Video-ICLoRA-detailer-13b-0.9.8",
"filename": "ltxv-098-ic-lora-detailer-comfyui.safetensors",
"url": "https://huggingface.co/Lightricks/LTX-Video-ICLoRA-detailer-13b-0.9.8/resolve/main/ltxv-098-ic-lora-detailer-comfyui.safetensors",
"size": "1.31GB"
},
{ {
"name": "Latent Bridge Matching for Image Relighting", "name": "Latent Bridge Matching for Image Relighting",
"type": "diffusion_model", "type": "diffusion_model",
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -1,3 +1,3 @@
#!/bin/bash #!/bin/bash
rm ~/.tmp/dev/*.py > /dev/null 2>&1 rm ~/.tmp/dev/*.py > /dev/null 2>&1
python ../../scanner.py ~/.tmp/dev python ../../scanner.py ~/.tmp/dev $*
+10
View File
@@ -1,5 +1,15 @@
{ {
"custom_nodes": [ "custom_nodes": [
{
"author": "synchronicity-labs",
"title": "ComfyUI Sync Lipsync Node",
"reference": "https://github.com/synchronicity-labs/sync-comfyui",
"files": [
"https://github.com/synchronicity-labs/sync-comfyui"
],
"install_type": "git-clone",
"description": "This custom node allows you to perform audio-video lip synchronization inside ComfyUI using a simple interface."
},
{ {
"author": "joaomede", "author": "joaomede",
"title": "ComfyUI-Unload-Model-Fork", "title": "ComfyUI-Unload-Model-Fork",
+465 -5
View File
@@ -1,14 +1,474 @@
{ {
"custom_nodes": [ "custom_nodes": [
{ {
"author": "armandgw84", "author": "takoyaki1118",
"title": "comfyui-custom-v6 [REMOVED]", "title": "ComfyUI-MangaTools [REMOVED]",
"reference": "https://github.com/armandgw84/comfyui-custom-v6", "reference": "https://github.com/takoyaki1118/ComfyUI-MangaTools",
"files": [ "files": [
"https://github.com/armandgw84/comfyui-custom-v6" "https://github.com/takoyaki1118/ComfyUI-MangaTools"
], ],
"install_type": "git-clone", "install_type": "git-clone",
"description": "NODES: Resize With Padding, Wan 2.1 Transition Prompter, Wan Prompt Crafter" "description": "NODES: Manga Panel Detector, Manga Panel Dispatcher, GateImage, MangaPageAssembler"
},
{
"author": "lucasgattas",
"title": "comfyui-egregora-regional [REMOVED]",
"reference": "https://github.com/lucasgattas/comfyui-egregora-regional",
"files": [
"https://github.com/lucasgattas/comfyui-egregora-regional"
],
"install_type": "git-clone",
"description": "Image Tile Split with Region-Aware Prompting for ComfyUI"
},
{
"author": "lucasgattas",
"title": "comfyui-egregora-tiled [REMOVED]",
"reference": "https://github.com/lucasgattas/comfyui-egregora-tiled",
"files": [
"https://github.com/lucasgattas/comfyui-egregora-tiled"
],
"install_type": "git-clone",
"description": "Tiled regional prompting + tiled VAE decode with seam-free blending for ComfyUI"
},
{
"author": "Seedsa",
"title": "ComfyUI Fooocus Nodes [REMOVED]",
"id": "fooocus-nodes",
"reference": "https://github.com/Seedsa/Fooocus_Nodes",
"files": [
"https://github.com/Seedsa/Fooocus_Nodes"
],
"install_type": "git-clone",
"description": "This extension provides image generation features based on Fooocus."
},
{
"author": "zhilemann",
"title": "ComfyUI-moondream2 [REMOVED]",
"reference": "https://github.com/zhilemann/ComfyUI-moondream2",
"files": [
"https://github.com/zhilemann/ComfyUI-moondream2"
],
"install_type": "git-clone",
"description": "nodes for nightly moondream2 VLM inference\nsupports only captioning and visual queries at the moment"
},
{
"author": "shinich39",
"title": "comfyui-textarea-is-shit [REMOVED]",
"reference": "https://github.com/shinich39/comfyui-textarea-is-shit",
"files": [
"https://github.com/shinich39/comfyui-textarea-is-shit"
],
"description": "HTML gives me a textarea like piece of shit.",
"install_type": "git-clone"
},
{
"author": "shinich39",
"title": "comfyui-poor-textarea [REMOVED]",
"reference": "https://github.com/shinich39/comfyui-poor-textarea",
"files": [
"https://github.com/shinich39/comfyui-poor-textarea"
],
"install_type": "git-clone",
"description": "Add commentify, indentation, auto-close brackets in textarea."
},
{
"author": "InfiniNode",
"title": "Comfyui-InfiniNode-Model-Suite [UNSAFE/REMOVED]",
"reference": "https://github.com/InfiniNode/Comfyui-InfiniNode-Model-Suite",
"files": [
"https://github.com/InfiniNode/Comfyui-InfiniNode-Model-Suite"
],
"install_type": "git-clone",
"description": "Welcome to the InfiniNode Model Suite, a custom node pack for ComfyUI that transforms the process of manipulating generative AI models. Our suite is a direct implementation of the 'GUI-Based Key Converter Development Plan,' designed to remove technical barriers for advanced AI practitioners and integrate seamlessly with existing image generation pipelines.[w/This node pack contains a node that has a vulnerability allowing write to arbitrary file paths.]"
},
{
"author": "Avalre",
"title": "ComfyUI-avaNodes [REMOVED]",
"reference": "https://github.com/Avalre/ComfyUI-avaNodes",
"files": [
"https://github.com/Avalre/ComfyUI-avaNodes"
],
"install_type": "git-clone",
"description": "These nodes were created to personalize/optimize several ComfyUI nodes for my own use. You can replicate the functionality of most of my nodes by some combination of default ComfyUI nodes and custom nodes from other developers."
},
{
"author": "Alectriciti",
"title": "comfyui-creativeprompts [REMOVED]",
"reference": "https://github.com/Alectriciti/comfyui-creativeprompts",
"files": [
"https://github.com/Alectriciti/comfyui-creativeprompts"
],
"install_type": "git-clone",
"description": "A creative alternative to dynamicprompts"
},
{
"author": "flybirdxx",
"title": "ComfyUI Sliding Window [REMOVED]",
"reference": "https://github.com/PixWizardry/ComfyUI_Sliding_Window",
"files": [
"https://github.com/PixWizardry/ComfyUI_Sliding_Window"
],
"install_type": "git-clone",
"description": "This set of nodes provides a powerful sliding window or 'tiling' technique for processing long videos and animations in ComfyUI. It allows you to work on animations that are longer than your VRAM would typically allow by breaking the job into smaller, overlapping chunks and seamlessly blending them back together."
},
{
"author": "SykkoAtHome",
"title": "Sykko Tools for ComfyUI [REMOVED]",
"reference": "https://github.com/SykkoAtHome/ComfyUI_SykkoTools",
"files": [
"https://github.com/SykkoAtHome/ComfyUI_SykkoTools"
],
"install_type": "git-clone",
"description": "Utilities for working with camera animations inside ComfyUI. The repository currently provides a node for loading camera motion from ASCII FBX files and a corresponding command line helper for debugging."
},
{
"author": "hananbeer",
"title": "node_dev - ComfyUI Node Development Helper [REMOVED]",
"reference": "https://github.com/hananbeer/node_dev",
"files": [
"https://github.com/hananbeer/node_dev"
],
"install_type": "git-clone",
"description": "Browse to this endpoint to reload custom nodes for more streamlined development:\nhttp://127.0.0.1:8188/node_dev/reload/<module_name>"
},
{
"author": "Charonartist",
"title": "Comfyui_gemini_tts_node [REMOVED]",
"reference": "https://github.com/Charonartist/Comfyui_gemini_tts_node",
"files": [
"https://github.com/Charonartist/Comfyui_gemini_tts_node"
],
"install_type": "git-clone",
"description": "This custom node is a ComfyUI node for generating speech from text using the Gemini 2.5 Flash Preview TTS API."
},
{
"author": "squirrel765",
"title": "lorasubdirectory [REMOVED]",
"reference": "https://github.com/andrewsthomasj/lorasubdirectory",
"files": [
"https://github.com/andrewsthomasj/lorasubdirectory"
],
"install_type": "git-clone",
"description": "only show dropdown of loras ina a given subdirectory"
},
{
"author": "shingo1228",
"title": "ComfyUI-send-Eagle(slim) [REVMOED]",
"id": "send-eagle",
"reference": "https://github.com/shingo1228/ComfyUI-send-eagle-slim",
"files": [
"https://github.com/shingo1228/ComfyUI-send-eagle-slim"
],
"install_type": "git-clone",
"description": "Nodes:Send Webp Image to Eagle. This is an extension node for ComfyUI that allows you to send generated images in webp format to Eagle. This extension node is a re-implementation of the Eagle linkage functions of the previous ComfyUI-send-Eagle node, focusing on the functions required for this node."
},
{
"author": "shingo1228",
"title": "ComfyUI-SDXL-EmptyLatentImage [REVMOED]",
"id": "sdxl-emptylatent",
"reference": "https://github.com/shingo1228/ComfyUI-SDXL-EmptyLatentImage",
"files": [
"https://github.com/shingo1228/ComfyUI-SDXL-EmptyLatentImage"
],
"install_type": "git-clone",
"description": "Nodes:SDXL Empty Latent Image. An extension node for ComfyUI that allows you to select a resolution from the pre-defined json files and output a Latent Image."
},
{
"author": "chaunceyyann",
"title": "ComfyUI Image Processing Nodes [REMOVED]",
"reference": "https://github.com/chaunceyyann/comfyui-image-processing-nodes",
"files": [
"https://github.com/chaunceyyann/comfyui-image-processing-nodes"
],
"install_type": "git-clone",
"description": "A collection of custom nodes for ComfyUI focused on image processing operations."
},
{
"author": "OgreLemonSoup",
"title": "Gallery&Tabs [DEPRECATED]",
"id": "LoadImageGallery",
"reference": "https://github.com/OgreLemonSoup/ComfyUI-Load-Image-Gallery",
"files": [
"https://github.com/OgreLemonSoup/ComfyUI-Load-Image-Gallery"
],
"install_type": "git-clone",
"description": "Adds a gallery to the Load Image node and tabs for Load Checkpoint/Lora/etc nodes"
},
{
"author": "11dogzi",
"title": "Qwen-Image ComfyUI [REMOVED]",
"reference": "https://github.com/11dogzi/Comfyui-Qwen-Image",
"files": [
"https://github.com/11dogzi/Comfyui-Qwen-Image"
],
"install_type": "git-clone",
"description": "This is a custom node package that integrates the Qwen-Image model into ComfyUI."
},
{
"author": "BAIS1C",
"title": "ComfyUI-AudioDuration [REMOVED]",
"reference": "https://github.com/BAIS1C/ComfyUI_BASICDancePoser",
"files": [
"https://github.com/BAIS1C/ComfyUI_BASICDancePoser"
],
"install_type": "git-clone",
"description": "Node to extract Dance poses from Music to control Video Generations.\nNOTE: The files in the repo are not organized."
},
{
"author": "BAIS1C",
"title": "ComfyUI_BASICSAdvancedDancePoser [REMOVED]",
"reference": "https://github.com/BAIS1C/ComfyUI_BASICSAdvancedDancePoser",
"files": [
"https://github.com/BAIS1C/ComfyUI_BASICSAdvancedDancePoser"
],
"install_type": "git-clone",
"description": "Professional COCO-WholeBody 133-keypoint dance animation system for ComfyUI"
},
{
"author": "fablestudio",
"title": "ComfyUI-Showrunner-Utils [REMOVED]",
"reference": "https://github.com/fablestudio/ComfyUI-Showrunner-Utils",
"files": [
"https://github.com/fablestudio/ComfyUI-Showrunner-Utils"
],
"install_type": "git-clone",
"description": "NODES: Align Face, Generate Timestamp, GetMostCommonColors, Alpha Crop and Position Image, Shrink Image"
},
{
"author": "skayka",
"title": "ComfyUI-DreamFit [REMOVED]",
"reference": "https://github.com/skayka/ComfyUI-DreamFit",
"files": [
"https://github.com/skayka/ComfyUI-DreamFit"
],
"install_type": "git-clone",
"description": "Garment-centric human generation nodes for ComfyUI using DreamFit with Flux.\nDreamFit is a powerful adapter system that enhances Flux models with garment-aware generation capabilities, enabling high-quality fashion and clothing generation."
},
{
"author": "domenecmiralles",
"title": "obobo_nodes [REMOVED]",
"reference": "https://github.com/domenecmiralles/obobo_nodes",
"files": [
"https://github.com/domenecmiralles/obobo_nodes"
],
"install_type": "git-clone",
"description": "A collection of custom nodes for ComfyUI that provide various input and output capabilities."
},
{
"author": "NicholasKao1029",
"title": "comfyui-pixxio [REMOVED]",
"reference": "https://github.com/NicholasKao1029/comfyui-pixxio",
"files": [
"https://github.com/NicholasKao1029/comfyui-pixxio"
],
"install_type": "git-clone",
"description": "NODES: Auto-Upload Image to Pixxio Collection, Load Image from Pixx.io"
},
{
"author": "ComfyUI-Workflow",
"title": "ComfyUI OpenAI Nodes [REMOVED]",
"reference": "https://github.com/ComfyUI-Workflow/ComfyUI-OpenAI",
"files": [
"https://github.com/ComfyUI-Workflow/ComfyUI-OpenAI"
],
"install_type": "git-clone",
"description": "By utilizing OpenAI's powerful vision models, this node enables you to incorporate state-of-the-art image understanding into your ComfyUI projects with minimal setup."
},
{
"author": "dionren",
"title": "Export Workflow With Cyuai Api Available Nodes [REMOVED]",
"id": "comfyUI-Pro-Export-Tool",
"reference": "https://github.com/dionren/ComfyUI-Pro-Export-Tool",
"files": [
"https://github.com/dionren/ComfyUI-Pro-Export-Tool"
],
"install_type": "git-clone",
"description": "This is a node to convert workflows to cyuai api available nodes."
},
{
"author": "1H-hobit",
"title": "ComfyUI_InternVL3 [REMOVED]",
"reference": "https://github.com/1H-hobit/ComfyUI_InternVL3",
"files": [
"https://github.com/1H-hobit/ComfyUI_InternVL3"
],
"install_type": "git-clone",
"description": "ComfyUI for [a/InternVL](https://github.com/OpenGVLab/InternVL)"
},
{
"author": "spacepxl",
"title": "ComfyUI-Florence-2 [DEPRECATED]",
"id": "florence2-spacepxl",
"reference": "https://github.com/spacepxl/ComfyUI-Florence-2",
"files": [
"https://github.com/spacepxl/ComfyUI-Florence-2"
],
"install_type": "git-clone",
"description": "[a/https://huggingface.co/microsoft/Florence-2-large-ft](https://huggingface.co/microsoft/Florence-2-large-ft)\nLarge or base model, support for captioning and bbox task modes, more coming soon."
},
{
"author": "xxxxxxxxxxxc",
"title": "flux-kontext-diff-merge [REMOVED]",
"reference": "https://github.com/xxxxxxxxxxxc/flux-kontext-diff-merge",
"files": [
"https://github.com/xxxxxxxxxxxc/flux-kontext-diff-merge"
],
"install_type": "git-clone",
"description": "Preserve image quality with flux-kontext-diff-merge. This ComfyUI node merges only changed areas from AI edits, ensuring clarity and detail."
},
{
"author": "TechnoByteJS",
"title": "TechNodes [REMOVED]",
"id": "technodes",
"reference": "https://github.com/TechnoByteJS/ComfyUI-TechNodes",
"files": [
"https://github.com/TechnoByteJS/ComfyUI-TechNodes"
],
"install_type": "git-clone",
"description": "ComfyUI nodes for merging, testing and more.\nNOTE: SDNext Merge, VAE Merge, MBW Layers, Repeat VAE, Quantization."
},
{
"author": "DDDDEEP",
"title": "ComfyUI-DDDDEEP [REMOVED]",
"reference": "https://github.com/DDDDEEP/ComfyUI-DDDDEEP",
"files": [
"https://github.com/DDDDEEP/ComfyUI-DDDDEEP"
],
"install_type": "git-clone",
"description": "NODES: AutoWidthHeight, ReturnIntSeed, OppositeBool, PromptItemCollection"
},
{
"author": "manifestations",
"title": "ComfyUI Ethnic Outfits Custom Nodes [REMOVED]",
"reference": "https://github.com/manifestations/comfyui-outfits",
"files": [
"https://github.com/manifestations/comfyui-outfits"
],
"install_type": "git-clone",
"description": "Custom ComfyUI nodes for generating outfit prompts representing diverse ethnicities, cultures, and regions. Uses extensible JSON data for clothing, accessories, and poses, with “random/disabled” dropdowns for flexibility. Advanced prompt engineering is supported via Ollama LLM integration. Easily add new regions, ethnicities, or cultures by updating data files and creating lightweight node wrappers. Designed for artists, researchers, and developers seeking culturally rich, customizable prompt generation in ComfyUI workflows."
},
{
"author": "MitoshiroPJ",
"title": "ComfyUI Slothful Attention [REMOVED]",
"reference": "https://github.com/MitoshiroPJ/comfyui_slothful_attention",
"files": [
"https://github.com/MitoshiroPJ/comfyui_slothful_attention"
],
"install_type": "git-clone",
"description": "This custom node allow controlling output without training. The reducing method is similar to [a/Spatial-Reduction Attention](https://paperswithcode.com/method/spatial-reduction-attention)."
},
{
"author": "MitoshiroPJ",
"title": "comfyui_focal_sampler [REMOVED]",
"reference": "https://github.com/MitoshiroPJ/comfyui_focal_sampler",
"files": [
"https://github.com/MitoshiroPJ/comfyui_focal_sampler"
],
"install_type": "git-clone",
"description": "Apply additional sampling to specific area"
},
{
"author": "manifestations",
"title": "ComfyUI Ethnic Outfit & Prompt Enhancer Nodes [REMOVED]",
"reference": "https://github.com/manifestations/comfyui-indian-outfit",
"files": [
"https://github.com/manifestations/comfyui-indian-outfit"
],
"install_type": "git-clone",
"description": "Features:\n* Extensive options for Indian, Indonesian, and international clothing, jewelry, accessories, and styles\n* Multiple jewelry and accessory fields (with material support: gold, diamond, silver, leather, beads, etc.)\n* Support for tattoos, henna, hair styles, poses, shot types, lighting, and photography genres\n* Seamless prompt expansion using your own Ollama LLM instance\n* Modular, extensible JSON data files for easy customization"
},
{
"author": "coVISIONSld",
"title": "ComfyUI-OmniGen2 [REMOVED]",
"reference": "https://github.com/coVISIONSld/ComfyUI-OmniGen2",
"files": [
"https://github.com/coVISIONSld/ComfyUI-OmniGen2"
],
"install_type": "git-clone",
"description": "ComfyUI-OmniGen2 is a custom node package for the OmniGen2 model, enabling advanced text-to-image generation and visual understanding."
},
{
"author": "S4MUEL-404",
"title": "ComfyUI-S4Tool-Image-Overlay [REMOVED]",
"reference": "https://github.com/S4MUEL-404/ComfyUI-S4Tool-Image-Overlay",
"files": [
"https://github.com/S4MUEL-404/ComfyUI-S4Tool-Image-Overlay"
],
"install_type": "git-clone",
"description": "Quickly set up image overlay effects"
},
{
"author": "akspa0",
"title": "ComfyUI-FapMixPlus [REMOVED]",
"reference": "https://github.com/akspa0/ComfyUI-FapMixPlus",
"files": [
"https://github.com/akspa0/ComfyUI-FapMixPlus"
],
"install_type": "git-clone",
"description": "This is an audio processing script that applies soft limiting, optional loudness normalization, and optional slicing for transcription. It can also produce stereo-mixed outputs with optional audio appended to the end. The script organizes processed files into structured folders with sanitized filenames and retains original timestamps for continuity."
},
{
"author": "RedmondAI",
"title": "comfyui-tools [UNSAFE]",
"reference": "https://github.com/RedmondAI/comfyui-tools",
"files": [
"https://github.com/RedmondAI/comfyui-tools"
],
"install_type": "git-clone",
"description": "Custom extensions for ComfyUI used by the Redmond3D VFX team.[w/This node pack has a vulnerability that allows it to create files at arbitrary paths.]"
},
{
"author": "S4MUEL-404",
"title": "Image Position Blend [REMOVED]",
"id": "ComfyUI-Image-Position-Blend",
"version": "1.1",
"reference": "https://github.com/S4MUEL-404/ComfyUI-Image-Position-Blend",
"files": [
"https://github.com/S4MUEL-404/ComfyUI-Image-Position-Blend"
],
"install_type": "git-clone",
"description": "A custom node for conveniently adjusting the overlay position of two images."
},
{
"author": "S4MUEL-404",
"title": "ComfyUI-Text-On-Image [REMOVED]",
"id": "ComfyUI-Text-On-Image",
"reference": "https://github.com/S4MUEL-404/ComfyUI-Text-On-Image",
"files": [
"https://github.com/S4MUEL-404/ComfyUI-Text-On-Image"
],
"install_type": "git-clone",
"description": "A custom node for ComfyUI that allows users to add text overlays to images with customizable size, font, position, and shadow."
},
{
"author": "S4MUEL-404",
"title": "ComfyUI-Prompts-Selector [REMOVED]",
"reference": "https://github.com/S4MUEL-404/ComfyUI-Prompts-Selector",
"files": [
"https://github.com/S4MUEL-404/ComfyUI-Prompts-Selector"
],
"install_type": "git-clone",
"description": "Quickly select preset prompts and merge them"
},
{
"author": "juntaosun",
"title": "ComfyUI_open_nodes [REMOVED]",
"reference": "https://github.com/juntaosun/ComfyUI_open_nodes",
"files": [
"https://github.com/juntaosun/ComfyUI_open_nodes"
],
"install_type": "git-clone",
"description": "ComfyUI open nodes by juntaosun."
},
{
"author": "perilli",
"title": "apw_nodes [DEPRECATED]",
"reference": "https://github.com/alessandroperilli/apw_nodes",
"files": [
"https://github.com/alessandroperilli/apw_nodes"
],
"install_type": "git-clone",
"description": "A custom node suite to augment the capabilities of the [a/AP Workflows for ComfyUI](https://perilli.com/ai/comfyui/)[w/'APW_Nodes' has been newly added in place of 'apw_nodes'.]"
}, },
{ {
"author": "markuryy", "author": "markuryy",
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+214 -218
View File
@@ -1,5 +1,219 @@
{ {
"models": [ "models": [
{
"name": "Comfy-Org/Wan2.2 i2v high noise 14B (fp16)",
"type": "diffusion_model",
"base": "Wan2.2",
"save_path": "diffusion_models/Wan2.2",
"description": "Wan2.2 diffusion model for i2v high noise 14B (fp16)",
"reference": "https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged",
"filename": "wan2.2_i2v_high_noise_14B_fp16.safetensors",
"url": "https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/resolve/main/split_files/diffusion_models/wan2.2_i2v_high_noise_14B_fp16.safetensors",
"size": "28.6GB"
},
{
"name": "Comfy-Org/Wan2.2 i2v high noise 14B (fp8_scaled)",
"type": "diffusion_model",
"base": "Wan2.2",
"save_path": "diffusion_models/Wan2.2",
"description": "Wan2.2 diffusion model for i2v high noise 14B (fp8_scaled)",
"reference": "https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged",
"filename": "wan2.2_i2v_high_noise_14B_fp8_scaled.safetensors",
"url": "https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/resolve/main/split_files/diffusion_models/wan2.2_i2v_high_noise_14B_fp8_scaled.safetensors",
"size": "14.3GB"
},
{
"name": "Comfy-Org/Wan2.2 i2v low noise 14B (fp16)",
"type": "diffusion_model",
"base": "Wan2.2",
"save_path": "diffusion_models/Wan2.2",
"description": "Wan2.2 diffusion model for i2v low noise 14B (fp16)",
"reference": "https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged",
"filename": "wan2.2_i2v_low_noise_14B_fp16.safetensors",
"url": "https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/resolve/main/split_files/diffusion_models/wan2.2_i2v_low_noise_14B_fp16.safetensors",
"size": "28.6GB"
},
{
"name": "Comfy-Org/Wan2.2 i2v low noise 14B (fp8_scaled)",
"type": "diffusion_model",
"base": "Wan2.2",
"save_path": "diffusion_models/Wan2.2",
"description": "Wan2.2 diffusion model for i2v low noise 14B (fp8_scaled)",
"reference": "https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged",
"filename": "wan2.2_i2v_low_noise_14B_fp8_scaled.safetensors",
"url": "https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/resolve/main/split_files/diffusion_models/wan2.2_i2v_low_noise_14B_fp8_scaled.safetensors",
"size": "14.3GB"
},
{
"name": "Comfy-Org/Wan2.2 t2v high noise 14B (fp16)",
"type": "diffusion_model",
"base": "Wan2.2",
"save_path": "diffusion_models/Wan2.2",
"description": "Wan2.2 diffusion model for t2v high noise 14B (fp16)",
"reference": "https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged",
"filename": "wan2.2_t2v_high_noise_14B_fp16.safetensors",
"url": "https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/resolve/main/split_files/diffusion_models/wan2.2_t2v_high_noise_14B_fp16.safetensors",
"size": "28.6GB"
},
{
"name": "Comfy-Org/Wan2.2 t2v high noise 14B (fp8_scaled)",
"type": "diffusion_model",
"base": "Wan2.2",
"save_path": "diffusion_models/Wan2.2",
"description": "Wan2.2 diffusion model for t2v high noise 14B (fp8_scaled)",
"reference": "https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged",
"filename": "wan2.2_t2v_high_noise_14B_fp8_scaled.safetensors",
"url": "https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/resolve/main/split_files/diffusion_models/wan2.2_t2v_high_noise_14B_fp8_scaled.safetensors",
"size": "14.3GB"
},
{
"name": "Comfy-Org/Wan2.2 t2v low noise 14B (fp16)",
"type": "diffusion_model",
"base": "Wan2.2",
"save_path": "diffusion_models/Wan2.2",
"description": "Wan2.2 diffusion model for t2v low noise 14B (fp16)",
"reference": "https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged",
"filename": "wan2.2_t2v_low_noise_14B_fp16.safetensors",
"url": "https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/resolve/main/split_files/diffusion_models/wan2.2_t2v_low_noise_14B_fp16.safetensors",
"size": "28.6GB"
},
{
"name": "Comfy-Org/Wan2.2 t2v low noise 14B (fp8_scaled)",
"type": "diffusion_model",
"base": "Wan2.2",
"save_path": "diffusion_models/Wan2.2",
"description": "Wan2.2 diffusion model for t2v low noise 14B (fp8_scaled)",
"reference": "https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged",
"filename": "wan2.2_t2v_low_noise_14B_fp8_scaled.safetensors",
"url": "https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/resolve/main/split_files/diffusion_models/wan2.2_t2v_low_noise_14B_fp8_scaled.safetensors",
"size": "14.3GB"
},
{
"name": "Comfy-Org/Wan2.2 ti2v 5B (fp16)",
"type": "diffusion_model",
"base": "Wan2.2",
"save_path": "diffusion_models/Wan2.2",
"description": "Wan2.2 diffusion model for ti2v 5B (fp16)",
"reference": "https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged",
"filename": "wan2.2_ti2v_5B_fp16.safetensors",
"url": "https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/resolve/main/split_files/diffusion_models/wan2.2_ti2v_5B_fp16.safetensors",
"size": "10.0GB"
},
{
"name": "sam2.1_hiera_tiny.pt",
"type": "sam2.1",
"base": "SAM",
"save_path": "sams",
"description": "Segmenty Anything SAM 2.1 hiera model (tiny)",
"reference": "https://github.com/facebookresearch/sam2#model-description",
"filename": "sam2.1_hiera_tiny.pt",
"url": "https://dl.fbaipublicfiles.com/segment_anything_2/092824/sam2.1_hiera_tiny.pt",
"size": "149.0MB"
},
{
"name": "sam2.1_hiera_small.pt",
"type": "sam2.1",
"base": "SAM",
"save_path": "sams",
"description": "Segmenty Anything SAM 2.1 hiera model (small)",
"reference": "https://github.com/facebookresearch/sam2#model-description",
"filename": "sam2.1_hiera_small.pt",
"url": "https://dl.fbaipublicfiles.com/segment_anything_2/092824/sam2.1_hiera_small.pt",
"size": "176.0MB"
},
{
"name": "sam2.1_hiera_base_plus.pt",
"type": "sam2.1",
"base": "SAM",
"save_path": "sams",
"description": "Segmenty Anything SAM 2.1 hiera model (base+)",
"reference": "https://github.com/facebookresearch/sam2#model-description",
"filename": "sam2.1_hiera_base_plus.pt",
"url": "https://dl.fbaipublicfiles.com/segment_anything_2/092824/sam2.1_hiera_base_plus.pt",
"size": "309.0MB"
},
{
"name": "sam2.1_hiera_large.pt",
"type": "sam2.1",
"base": "SAM",
"save_path": "sams",
"description": "Segmenty Anything SAM 2.1 hiera model (large)",
"reference": "https://github.com/facebookresearch/sam2#model-description",
"filename": "sam2.1_hiera_large.pt",
"url": "https://dl.fbaipublicfiles.com/segment_anything_2/092824/sam2.1_hiera_large.pt",
"size": "857.0MB"
},
{
"name": "sam2_hiera_tiny.pt",
"type": "sam2",
"base": "SAM",
"save_path": "sams",
"description": "Segmenty Anything SAM 2 hiera model (tiny)",
"reference": "https://github.com/facebookresearch/sam2#model-description",
"filename": "sam2_hiera_tiny.pt",
"url": "https://dl.fbaipublicfiles.com/segment_anything_2/072824/sam2_hiera_tiny.pt",
"size": "149.0MB"
},
{
"name": "sam2_hiera_small.pt",
"type": "sam2",
"base": "SAM",
"save_path": "sams",
"description": "Segmenty Anything SAM 2 hiera model (small)",
"reference": "https://github.com/facebookresearch/sam2#model-description",
"filename": "sam2_hiera_small.pt",
"url": "https://dl.fbaipublicfiles.com/segment_anything_2/072824/sam2_hiera_small.pt",
"size": "176.0MB"
},
{
"name": "sam2_hiera_base_plus.pt",
"type": "sam2",
"base": "SAM",
"save_path": "sams",
"description": "Segmenty Anything SAM 2 hiera model (base+)",
"reference": "https://github.com/facebookresearch/sam2#model-description",
"filename": "sam2_hiera_base_plus.pt",
"url": "https://dl.fbaipublicfiles.com/segment_anything_2/072824/sam2_hiera_base_plus.pt",
"size": "309.0MB"
},
{
"name": "sam2_hiera_large.pt",
"type": "sam2",
"base": "SAM",
"save_path": "sams",
"description": "Segmenty Anything SAM 2 hiera model (large)",
"reference": "https://github.com/facebookresearch/sam2#model-description",
"filename": "sam2_hiera_large.pt",
"url": "https://dl.fbaipublicfiles.com/segment_anything_2/072824/sam2_hiera_large.pt",
"size": "857.0MB"
},
{
"name": "Comfy-Org/omnigen2_fp16.safetensors",
"type": "diffusion_model",
"base": "OmniGen2",
"save_path": "default",
"description": "OmniGen2 diffusion model. This is required for using OmniGen2.",
"reference": "https://huggingface.co/Comfy-Org/Omnigen2_ComfyUI_repackaged",
"filename": "omnigen2_fp16.safetensors",
"url": "https://huggingface.co/Comfy-Org/Omnigen2_ComfyUI_repackaged/resolve/main/split_files/diffusion_models/omnigen2_fp16.safetensors",
"size": "7.93GB"
},
{
"name": "Comfy-Org/qwen_2.5_vl_fp16.safetensors",
"type": "clip",
"base": "qwen-2.5",
"save_path": "default",
"description": "text encoder for OmniGen2",
"reference": "https://huggingface.co/Comfy-Org/Omnigen2_ComfyUI_repackaged",
"filename": "qwen_2.5_vl_fp16.safetensors",
"url": "https://huggingface.co/Comfy-Org/Omnigen2_ComfyUI_repackaged/resolve/main/split_files/text_encoders/qwen_2.5_vl_fp16.safetensors",
"size": "7.51GB"
},
{ {
"name": "Latent Bridge Matching for Image Relighting", "name": "Latent Bridge Matching for Image Relighting",
"type": "diffusion_model", "type": "diffusion_model",
@@ -473,224 +687,6 @@
"filename": "llava_llama3_fp16.safetensors", "filename": "llava_llama3_fp16.safetensors",
"url": "https://huggingface.co/Comfy-Org/HunyuanVideo_repackaged/resolve/main/split_files/text_encoders/llava_llama3_fp16.safetensors", "url": "https://huggingface.co/Comfy-Org/HunyuanVideo_repackaged/resolve/main/split_files/text_encoders/llava_llama3_fp16.safetensors",
"size": "16.1GB" "size": "16.1GB"
},
{
"name": "PixArt-Sigma-XL-2-512-MS.safetensors (diffusion)",
"type": "diffusion_model",
"base": "pixart-sigma",
"save_path": "diffusion_models/PixArt-Sigma",
"description": "PixArt-Sigma Diffusion model",
"reference": "https://huggingface.co/PixArt-alpha/PixArt-Sigma-XL-2-512-MS",
"filename": "PixArt-Sigma-XL-2-512-MS.safetensors",
"url": "https://huggingface.co/PixArt-alpha/PixArt-Sigma-XL-2-512-MS/resolve/main/transformer/diffusion_pytorch_model.safetensors",
"size": "2.44GB"
},
{
"name": "PixArt-Sigma-XL-2-1024-MS.safetensors (diffusion)",
"type": "diffusion_model",
"base": "pixart-sigma",
"save_path": "diffusion_models/PixArt-Sigma",
"description": "PixArt-Sigma Diffusion model",
"reference": "https://huggingface.co/PixArt-alpha/PixArt-Sigma-XL-2-1024-MS",
"filename": "PixArt-Sigma-XL-2-1024-MS.safetensors",
"url": "https://huggingface.co/PixArt-alpha/PixArt-Sigma-XL-2-1024-MS/resolve/main/transformer/diffusion_pytorch_model.safetensors",
"size": "2.44GB"
},
{
"name": "PixArt-XL-2-1024-MS.safetensors (diffusion)",
"type": "diffusion_model",
"base": "pixart-alpha",
"save_path": "diffusion_models/PixArt-Alpha",
"description": "PixArt-Alpha Diffusion model",
"reference": "https://huggingface.co/PixArt-alpha/PixArt-XL-2-1024-MS",
"filename": "PixArt-XL-2-1024-MS.safetensors",
"url": "https://huggingface.co/PixArt-alpha/PixArt-XL-2-1024-MS/resolve/main/transformer/diffusion_pytorch_model.safetensors",
"size": "2.45GB"
},
{
"name": "Comfy-Org/hunyuan_video_t2v_720p_bf16.safetensors",
"type": "diffusion_model",
"base": "Hunyuan Video",
"save_path": "diffusion_models/hunyuan_video",
"description": "Huyuan Video diffusion model. repackaged version.",
"reference": "https://huggingface.co/Comfy-Org/HunyuanVideo_repackaged",
"filename": "hunyuan_video_t2v_720p_bf16.safetensors",
"url": "https://huggingface.co/Comfy-Org/HunyuanVideo_repackaged/resolve/main/split_files/diffusion_models/hunyuan_video_t2v_720p_bf16.safetensors",
"size": "25.6GB"
},
{
"name": "Comfy-Org/hunyuan_video_vae_bf16.safetensors",
"type": "VAE",
"base": "Hunyuan Video",
"save_path": "VAE",
"description": "Huyuan Video VAE model. repackaged version.",
"reference": "https://huggingface.co/Comfy-Org/HunyuanVideo_repackaged",
"filename": "hunyuan_video_vae_bf16.safetensors",
"url": "https://huggingface.co/Comfy-Org/HunyuanVideo_repackaged/resolve/main/split_files/vae/hunyuan_video_vae_bf16.safetensors",
"size": "493MB"
},
{
"name": "LTX-Video 2B v0.9.1 Checkpoint",
"type": "checkpoint",
"base": "LTX-Video",
"save_path": "checkpoints/LTXV",
"description": "LTX-Video is the first DiT-based video generation model capable of generating high-quality videos in real-time. It produces 24 FPS videos at a 768x512 resolution faster than they can be watched. Trained on a large-scale dataset of diverse videos, the model generates high-resolution videos with realistic and varied content.",
"reference": "https://huggingface.co/Lightricks/LTX-Video",
"filename": "ltx-video-2b-v0.9.1.safetensors",
"url": "https://huggingface.co/Lightricks/LTX-Video/resolve/main/ltx-video-2b-v0.9.1.safetensors",
"size": "5.72GB"
},
{
"name": "XLabs-AI/flux-canny-controlnet-v3.safetensors",
"type": "controlnet",
"base": "FLUX.1",
"save_path": "xlabs/controlnets",
"description": "ControlNet checkpoints for FLUX.1-dev model by Black Forest Labs.",
"reference": "https://huggingface.co/XLabs-AI/flux-controlnet-collections",
"filename": "flux-canny-controlnet-v3.safetensors",
"url": "https://huggingface.co/XLabs-AI/flux-controlnet-collections/resolve/main/flux-canny-controlnet-v3.safetensors",
"size": "1.49GB"
},
{
"name": "XLabs-AI/flux-depth-controlnet-v3.safetensors",
"type": "controlnet",
"base": "FLUX.1",
"save_path": "xlabs/controlnets",
"description": "ControlNet checkpoints for FLUX.1-dev model by Black Forest Labs.",
"reference": "https://huggingface.co/XLabs-AI/flux-controlnet-collections",
"filename": "flux-depth-controlnet-v3.safetensors",
"url": "https://huggingface.co/XLabs-AI/flux-controlnet-collections/resolve/main/flux-depth-controlnet-v3.safetensors",
"size": "1.49GB"
},
{
"name": "XLabs-AI/flux-hed-controlnet-v3.safetensors",
"type": "controlnet",
"base": "FLUX.1",
"save_path": "xlabs/controlnets",
"description": "ControlNet checkpoints for FLUX.1-dev model by Black Forest Labs.",
"reference": "https://huggingface.co/XLabs-AI/flux-controlnet-collections",
"filename": "flux-hed-controlnet-v3.safetensors",
"url": "https://huggingface.co/XLabs-AI/flux-controlnet-collections/resolve/main/flux-hed-controlnet-v3.safetensors",
"size": "1.49GB"
},
{
"name": "XLabs-AI/realism_lora.safetensors",
"type": "lora",
"base": "FLUX.1",
"save_path": "xlabs/loras",
"description": "A checkpoint with trained LoRAs for FLUX.1-dev model by Black Forest Labs",
"reference": "https://huggingface.co/XLabs-AI/flux-lora-collection",
"filename": "realism_lora.safetensors",
"url": "https://huggingface.co/XLabs-AI/flux-lora-collection/resolve/main/realism_lora.safetensors",
"size": "44.8MB"
},
{
"name": "XLabs-AI/art_lora.safetensors",
"type": "lora",
"base": "FLUX.1",
"save_path": "xlabs/loras",
"description": "A checkpoint with trained LoRAs for FLUX.1-dev model by Black Forest Labs",
"reference": "https://huggingface.co/XLabs-AI/flux-lora-collection",
"filename": "art_lora.safetensors",
"url": "https://huggingface.co/XLabs-AI/flux-lora-collection/resolve/main/scenery_lora.safetensors",
"size": "44.8MB"
},
{
"name": "XLabs-AI/mjv6_lora.safetensors",
"type": "lora",
"base": "FLUX.1",
"save_path": "xlabs/loras",
"description": "A checkpoint with trained LoRAs for FLUX.1-dev model by Black Forest Labs",
"reference": "https://huggingface.co/XLabs-AI/flux-lora-collection",
"filename": "mjv6_lora.safetensors",
"url": "https://huggingface.co/XLabs-AI/flux-lora-collection/resolve/main/mjv6_lora.safetensors",
"size": "44.8MB"
},
{
"name": "XLabs-AI/flux-ip-adapter",
"type": "lora",
"base": "FLUX.1",
"save_path": "xlabs/ipadapters",
"description": "A checkpoint with trained LoRAs for FLUX.1-dev model by Black Forest Labs",
"reference": "https://huggingface.co/XLabs-AI/flux-ip-adapter",
"filename": "ip_adapter.safetensors",
"url": "https://huggingface.co/XLabs-AI/flux-ip-adapter/resolve/main/ip_adapter.safetensors",
"size": "982MB"
},
{
"name": "stabilityai/SD3.5-Large-Controlnet-Blur",
"type": "controlnet",
"base": "SD3.5",
"save_path": "controlnet/SD3.5",
"description": "Blur Controlnet model for SD3.5 Large",
"reference": "https://huggingface.co/stabilityai/stable-diffusion-3.5-controlnets",
"filename": "sd3.5_large_controlnet_blur.safetensors",
"url": "https://huggingface.co/stabilityai/stable-diffusion-3.5-controlnets/resolve/main/sd3.5_large_controlnet_blur.safetensors",
"size": "8.65GB"
},
{
"name": "stabilityai/SD3.5-Large-Controlnet-Canny",
"type": "controlnet",
"base": "SD3.5",
"save_path": "controlnet/SD3.5",
"description": "Canny Controlnet model for SD3.5 Large",
"reference": "https://huggingface.co/stabilityai/stable-diffusion-3.5-controlnets",
"filename": "sd3.5_large_controlnet_canny.safetensors",
"url": "https://huggingface.co/stabilityai/stable-diffusion-3.5-controlnets/resolve/main/sd3.5_large_controlnet_canny.safetensors",
"size": "8.65GB"
},
{
"name": "stabilityai/SD3.5-Large-Controlnet-Depth",
"type": "controlnet",
"base": "SD3.5",
"save_path": "controlnet/SD3.5",
"description": "Depth Controlnet model for SD3.5 Large",
"reference": "https://huggingface.co/stabilityai/stable-diffusion-3.5-controlnets",
"filename": "sd3.5_large_controlnet_depth.safetensors",
"url": "https://huggingface.co/stabilityai/stable-diffusion-3.5-controlnets/resolve/main/sd3.5_large_controlnet_depth.safetensors",
"size": "8.65GB"
},
{
"name": "LTX-Video 2B v0.9 Checkpoint",
"type": "checkpoint",
"base": "LTX-Video",
"save_path": "checkpoints/LTXV",
"description": "LTX-Video is the first DiT-based video generation model capable of generating high-quality videos in real-time. It produces 24 FPS videos at a 768x512 resolution faster than they can be watched. Trained on a large-scale dataset of diverse videos, the model generates high-resolution videos with realistic and varied content.",
"reference": "https://huggingface.co/Lightricks/LTX-Video",
"filename": "ltx-video-2b-v0.9.safetensors",
"url": "https://huggingface.co/Lightricks/LTX-Video/resolve/main/ltx-video-2b-v0.9.safetensors",
"size": "9.37GB"
},
{
"name": "InstantX/FLUX.1-dev-IP-Adapter",
"type": "IP-Adapter",
"base": "FLUX.1",
"save_path": "ipadapter-flux",
"description": "FLUX.1-dev-IP-Adapter",
"reference": "https://huggingface.co/InstantX/FLUX.1-dev-IP-Adapter",
"filename": "ip-adapter.bin",
"url": "https://huggingface.co/InstantX/FLUX.1-dev-IP-Adapter/resolve/main/ip-adapter.bin",
"size": "5.29GB"
},
{
"name": "Comfy-Org/sigclip_vision_384 (patch14_384)",
"type": "clip_vision",
"base": "sigclip",
"save_path": "clip_vision",
"description": "This clip vision model is required for FLUX.1 Redux.",
"reference": "https://huggingface.co/Comfy-Org/sigclip_vision_384/tree/main",
"filename": "sigclip_vision_patch14_384.safetensors",
"url": "https://huggingface.co/Comfy-Org/sigclip_vision_384/resolve/main/sigclip_vision_patch14_384.safetensors",
"size": "857MB"
} }
] ]
} }
+20
View File
@@ -331,6 +331,26 @@
], ],
"description": "Dynamic Node examples for ComfyUI", "description": "Dynamic Node examples for ComfyUI",
"install_type": "git-clone" "install_type": "git-clone"
},
{
"author": "Jonathon-Doran",
"title": "remote-combo-demo",
"reference": "https://github.com/Jonathon-Doran/remote-combo-demo",
"files": [
"https://github.com/Jonathon-Doran/remote-combo-demo"
],
"install_type": "git-clone",
"description": "A minimal test suite demonstrating how remote COMBO inputs behave in ComfyUI, with and without force_input"
},
{
"author": "J1mB091",
"title": "ComfyUI-J1mB091 Custom Nodes",
"reference": "https://github.com/J1mB091/ComfyUI-J1mB091",
"files": [
"https://github.com/J1mB091/ComfyUI-J1mB091"
],
"install_type": "git-clone",
"description": "Vibe Coded ComfyUI Custom Nodes"
} }
] ]
} }
+57
View File
@@ -104,6 +104,38 @@ components:
type: boolean type: boolean
description: Whether the queue is currently processing description: Whether the queue is currently processing
ImportFailInfoBulkRequest:
type: object
properties:
cnr_ids:
type: array
items:
type: string
description: A list of CNR IDs to check.
urls:
type: array
items:
type: string
description: A list of repository URLs to check.
ImportFailInfoBulkResponse:
type: object
additionalProperties:
$ref: '#/components/schemas/ImportFailInfoItem'
description: >-
A dictionary where each key is a cnr_id or url from the request,
and the value is the corresponding error info.
ImportFailInfoItem:
oneOf:
- type: object
properties:
error:
type: string
traceback:
type: string
- type: "null"
securitySchemes: securitySchemes:
securityLevel: securityLevel:
type: apiKey type: apiKey
@@ -306,6 +338,31 @@ paths:
'400': '400':
description: No information available description: No information available
/v2/customnode/import_fail_info_bulk:
post:
summary: Get import failure info for multiple nodes
description: Retrieves recorded import failure information for a list of custom nodes.
tags:
- customnode
requestBody:
description: A list of CNR IDs or repository URLs to check.
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ImportFailInfoBulkRequest'
responses:
'200':
description: A dictionary containing the import failure information.
content:
application/json:
schema:
$ref: '#/components/schemas/ImportFailInfoBulkResponse'
'400':
description: Bad Request. The request body is invalid.
'500':
description: Internal Server Error.
/customnode/install/git_url: /customnode/install/git_url:
post: post:
summary: Install custom node via Git URL summary: Install custom node via Git URL
+2 -8
View File
@@ -38,7 +38,6 @@ else:
def current_timestamp(): def current_timestamp():
return str(time.time()).split('.')[0] return str(time.time()).split('.')[0]
security_check.security_check()
cm_global.pip_blacklist = {'torch', 'torchaudio', 'torchsde', 'torchvision'} cm_global.pip_blacklist = {'torch', 'torchaudio', 'torchsde', 'torchvision'}
cm_global.pip_downgrade_blacklist = ['torch', 'torchaudio', 'torchsde', 'torchvision', 'transformers', 'safetensors', 'kornia'] cm_global.pip_downgrade_blacklist = ['torch', 'torchaudio', 'torchsde', 'torchvision', 'transformers', 'safetensors', 'kornia']
@@ -119,19 +118,14 @@ def check_file_logging():
read_config() read_config()
read_uv_mode() read_uv_mode()
security_check.security_check()
check_file_logging() check_file_logging()
if sys.version_info < (3, 13): cm_global.pip_overrides = {}
cm_global.pip_overrides = {'numpy': 'numpy<2'}
else:
cm_global.pip_overrides = {}
if os.path.exists(manager_pip_overrides_path): if os.path.exists(manager_pip_overrides_path):
with open(manager_pip_overrides_path, 'r', encoding="UTF-8", errors="ignore") as json_file: with open(manager_pip_overrides_path, 'r', encoding="UTF-8", errors="ignore") as json_file:
cm_global.pip_overrides = json.load(json_file) cm_global.pip_overrides = json.load(json_file)
if sys.version_info < (3, 13):
cm_global.pip_overrides['numpy'] = 'numpy<2'
if os.path.exists(manager_pip_blacklist_path): if os.path.exists(manager_pip_blacklist_path):
+1 -1
View File
@@ -1,7 +1,7 @@
[project] [project]
name = "comfyui-manager" name = "comfyui-manager"
description = "ComfyUI-Manager provides features to install and manage custom nodes for ComfyUI, as well as various functionalities to assist with ComfyUI." description = "ComfyUI-Manager provides features to install and manage custom nodes for ComfyUI, as well as various functionalities to assist with ComfyUI."
version = "3.33.2" version = "3.36"
license = { file = "LICENSE.txt" } license = { file = "LICENSE.txt" }
dependencies = ["GitPython", "PyGithub", "matrix-client==0.4.0", "transformers", "huggingface-hub>0.20", "typer", "rich", "typing-extensions", "toml", "uv", "chardet"] dependencies = ["GitPython", "PyGithub", "matrix-client==0.4.0", "transformers", "huggingface-hub>0.20", "typer", "rich", "typing-extensions", "toml", "uv", "chardet"]
+11 -4
View File
@@ -255,13 +255,13 @@ def clone_or_pull_git_repository(git_url):
repo.git.submodule('update', '--init', '--recursive') repo.git.submodule('update', '--init', '--recursive')
print(f"Pulling {repo_name}...") print(f"Pulling {repo_name}...")
except Exception as e: except Exception as e:
print(f"Pulling {repo_name} failed: {e}") print(f"Failed to pull '{repo_name}': {e}")
else: else:
try: try:
Repo.clone_from(git_url, repo_dir, recursive=True) Repo.clone_from(git_url, repo_dir, recursive=True)
print(f"Cloning {repo_name}...") print(f"Cloning {repo_name}...")
except Exception as e: except Exception as e:
print(f"Cloning {repo_name} failed: {e}") print(f"Failed to clone '{repo_name}': {e}")
def update_custom_nodes(): def update_custom_nodes():
@@ -496,8 +496,15 @@ def gen_json(node_info):
nodes_in_url, metadata_in_url = data[git_url] nodes_in_url, metadata_in_url = data[git_url]
nodes = set(nodes_in_url) nodes = set(nodes_in_url)
for x, desc in node_list_json.items(): try:
nodes.add(x.strip()) for x, desc in node_list_json.items():
nodes.add(x.strip())
except Exception as e:
print(f"\nERROR: Invalid json format '{node_list_json_path}'")
print("------------------------------------------------------")
print(e)
print("------------------------------------------------------")
node_list_json = {}
metadata_in_url['title_aux'] = title metadata_in_url['title_aux'] = title