Compare commits
170 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0469cad3bc | ||
|
|
d289dd523a | ||
|
|
1cb6adb3dc | ||
|
|
e93d0ab0f2 | ||
|
|
61537d985d | ||
|
|
c999886fe0 | ||
|
|
0e6e391caf | ||
|
|
26573ce489 | ||
|
|
c2869c8c67 | ||
|
|
792a836121 | ||
|
|
72ef927b32 | ||
|
|
bb67901e92 | ||
|
|
f87d4ea150 | ||
|
|
7ec376774f | ||
|
|
21ed4bd420 | ||
|
|
93b8c39ad7 | ||
|
|
6ea771781f | ||
|
|
7fc4343dac | ||
|
|
b12bd3849c | ||
|
|
78d9cbe659 | ||
|
|
3e3800bc59 | ||
|
|
9adbff6e16 | ||
|
|
f7a2e3f874 | ||
|
|
5b78ce0bff | ||
|
|
2f2ac86513 | ||
|
|
fbb1cd60d6 | ||
|
|
51d3f3829c | ||
|
|
53c8fc7751 | ||
|
|
22fa2825f8 | ||
|
|
752c17df3c | ||
|
|
66542292c3 | ||
|
|
4745597c0a | ||
|
|
1e7d101063 | ||
|
|
4dc9ee9363 | ||
|
|
07f9a34036 | ||
|
|
97b55a0da6 | ||
|
|
cb8bcd7edf | ||
|
|
eb607a6b41 | ||
|
|
32430968b8 | ||
|
|
f3e9856107 | ||
|
|
d9ec870598 | ||
|
|
a182e526d7 | ||
|
|
a8d338a997 | ||
|
|
9589f343df | ||
|
|
71c602be95 | ||
|
|
1d7777fb0b | ||
|
|
ffc095a3e5 | ||
|
|
8db932afd9 | ||
|
|
45c2cfd92e | ||
|
|
8bb5eecf0d | ||
|
|
5dc4cf7206 | ||
|
|
e73d66d65a | ||
|
|
40b2050e71 | ||
|
|
0cc279b109 | ||
|
|
86e13b6ee1 | ||
|
|
131d2dae3c | ||
|
|
de3cd9fe72 | ||
|
|
b8389e81a1 | ||
|
|
3e4ea1662c | ||
|
|
bc63b2cd3f | ||
|
|
3701246fb1 | ||
|
|
0e4b47c13d | ||
|
|
79b4136403 | ||
|
|
91425aea62 | ||
|
|
6d61491a5b | ||
|
|
efbb251635 | ||
|
|
18b66c7835 | ||
|
|
edb77c24ad | ||
|
|
4e01e70ef5 | ||
|
|
0e16c0cb24 | ||
|
|
7e777c5460 | ||
|
|
07402c7a90 | ||
|
|
1c19fa9e38 | ||
|
|
8c799dbf5c | ||
|
|
65f26ae443 | ||
|
|
b690e71ecb | ||
|
|
4ba4ef3c7d | ||
|
|
704a73888a | ||
|
|
d2bf1112ad | ||
|
|
33e3da1f12 | ||
|
|
0314610a95 | ||
|
|
98f6da3222 | ||
|
|
19c660c965 | ||
|
|
6ed23c7abe | ||
|
|
5a87326518 | ||
|
|
584c500247 | ||
|
|
bd790a2cd4 | ||
|
|
7e27275eae | ||
|
|
89ca98e84f | ||
|
|
342bb62635 | ||
|
|
7da0bf5a2e | ||
|
|
ce874d5c62 | ||
|
|
25d47ac7d0 | ||
|
|
a2be700a87 | ||
|
|
e396d48488 | ||
|
|
0c57379dfe | ||
|
|
b885100dfe | ||
|
|
3d0d201208 | ||
|
|
2e4d1d51e5 | ||
|
|
a18f6045a3 | ||
|
|
9f08900064 | ||
|
|
e0b88ce42a | ||
|
|
1ff2ec760b | ||
|
|
216214625a | ||
|
|
740b763e78 | ||
|
|
cd9b9a8ab8 | ||
|
|
faf1600721 | ||
|
|
f75384ecdd | ||
|
|
bfb9a7b855 | ||
|
|
78314d9529 | ||
|
|
019cce0203 | ||
|
|
2911861db8 | ||
|
|
0f679ac99c | ||
|
|
33bfddeba9 | ||
|
|
0486f5a294 | ||
|
|
b94c06f81c | ||
|
|
d7170c0264 | ||
|
|
60405fcfbc | ||
|
|
c0cc37787a | ||
|
|
d4812c09a4 | ||
|
|
600c8117a3 | ||
|
|
1a156b1c75 | ||
|
|
f5d656c87d | ||
|
|
f22a7d29dd | ||
|
|
a7bde44ea9 | ||
|
|
2783a1da1b | ||
|
|
5c504ca9f4 | ||
|
|
fe44dd08cc | ||
|
|
9077f683ae | ||
|
|
9413c3e100 | ||
|
|
8c2563e64a | ||
|
|
7d8a279a12 | ||
|
|
382498e01d | ||
|
|
820598cdb8 | ||
|
|
42f33a2dca | ||
|
|
ca0765ac00 | ||
|
|
49aee6f291 | ||
|
|
5e20b74dcc | ||
|
|
fa87ebd9a7 | ||
|
|
b0b1505777 | ||
|
|
0d85c2e88a | ||
|
|
61da8de828 | ||
|
|
61ee956043 | ||
|
|
efd081a2c5 | ||
|
|
c9134d1eeb | ||
|
|
36de48302d | ||
|
|
f74481cb53 | ||
|
|
4c17839831 | ||
|
|
ea7e44e122 | ||
|
|
bc02161d56 | ||
|
|
e8d5c92cb3 | ||
|
|
c6c35115e1 | ||
|
|
029a597a31 | ||
|
|
6619b9b98b | ||
|
|
225c3e3a20 | ||
|
|
596316536e | ||
|
|
521e92796b | ||
|
|
2a50beb9ee | ||
|
|
e310072782 | ||
|
|
622c449a86 | ||
|
|
b4aa41cac1 | ||
|
|
6b7c4d6330 | ||
|
|
f5d997bbbb | ||
|
|
fea911c3d7 | ||
|
|
5222c277e6 | ||
|
|
5835a1da5c | ||
|
|
2120d76250 | ||
|
|
79f132c23b | ||
|
|
4b92288f7b | ||
|
|
b9c667cdcc |
2
.gitignore
vendored
2
.gitignore
vendored
@@ -14,4 +14,4 @@ comfyworkflows_sharekey
|
||||
github-stats-cache.json
|
||||
pip_overrides.json
|
||||
*.json
|
||||
|
||||
check2.sh
|
||||
|
||||
@@ -204,7 +204,6 @@ This repository provides Colab notebooks that allow you to install and use Comfy
|
||||
* Please submit a pull request to update either the custom-node-list.json or model-list.json file.
|
||||
|
||||
* The scanner currently provides a detection function for missing nodes, which is capable of detecting nodes described by the following two patterns.
|
||||
* Or you can provide manually `node_list.json` file.
|
||||
|
||||
```
|
||||
NODE_CLASS_MAPPINGS = {
|
||||
@@ -218,6 +217,7 @@ NODE_CLASS_MAPPINGS.update({
|
||||
"SemSegPreprocessor": Uniformer_SemSegPreprocessor,
|
||||
})
|
||||
```
|
||||
* Or you can provide manually `node_list.json` file.
|
||||
|
||||
* When you write a docstring in the header of the .py file for the Node as follows, it will be used for managing the database in the Manager.
|
||||
* Currently, only the `nickname` is being used, but other parts will also be utilized in the future.
|
||||
@@ -364,9 +364,10 @@ When you run the `scan.sh` script:
|
||||
* `Install via git url`, `pip install`
|
||||
* Installation of custom nodes registered not in the `default channel`.
|
||||
* Display terminal log
|
||||
* Fix custom nodes
|
||||
|
||||
* `middle` level risky features
|
||||
* Uninstall/Update/Fix custom nodes
|
||||
* Uninstall/Update
|
||||
* Installation of custom nodes registered in the `default channel`.
|
||||
* Restore/Remove Snapshot
|
||||
* Restart
|
||||
|
||||
@@ -109,7 +109,7 @@ class Ctx:
|
||||
install_script_path = os.path.join(repo_path, 'install.py')
|
||||
|
||||
if os.path.exists(requirements_path):
|
||||
with (open(requirements_path, 'r', encoding="UTF-8", errors="ignore") as file):
|
||||
with open(requirements_path, 'r', encoding="UTF-8", errors="ignore") as file:
|
||||
for line in file:
|
||||
package_name = core.remap_pip_package(line.strip())
|
||||
if package_name and not core.is_installed(package_name):
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
5906
github-stats.json
5906
github-stats.json
File diff suppressed because it is too large
Load Diff
@@ -23,7 +23,7 @@ sys.path.append(glob_path)
|
||||
import cm_global
|
||||
from manager_util import *
|
||||
|
||||
version = [2, 50, 1]
|
||||
version = [2, 51, 4]
|
||||
version_str = f"V{version[0]}.{version[1]}" + (f'.{version[2]}' if len(version) > 2 else '')
|
||||
|
||||
|
||||
@@ -410,6 +410,14 @@ def execute_install_script(url, repo_path, lazy_mode=False, instant_execution=Fa
|
||||
print("Install: pip packages")
|
||||
with open(requirements_path, "r") as requirements_file:
|
||||
for line in requirements_file:
|
||||
#handle comments
|
||||
if '#' in line:
|
||||
if line.strip()[0] == '#':
|
||||
print("Line is comment...skipping")
|
||||
continue
|
||||
else:
|
||||
line = line.split('#')[0].strip()
|
||||
|
||||
package_name = remap_pip_package(line.strip())
|
||||
|
||||
if package_name and not package_name.startswith('#'):
|
||||
@@ -1127,7 +1135,7 @@ async def extract_nodes_from_workflow(filepath, mode='local', channel_url='defau
|
||||
if node_name in ['Reroute', 'Note']:
|
||||
continue
|
||||
|
||||
if node_name is not None and not node_name.startswith('workflow/'):
|
||||
if node_name is not None and not (node_name.startswith('workflow/') or node_name.startswith('workflow>')):
|
||||
used_nodes.add(node_name)
|
||||
|
||||
if 'nodes' in workflow:
|
||||
|
||||
@@ -47,7 +47,9 @@ is_local_mode = args.listen.startswith('127.') or args.listen.startswith('local.
|
||||
|
||||
|
||||
def is_allowed_security_level(level):
|
||||
if level == 'high':
|
||||
if level == 'block':
|
||||
return False
|
||||
elif level == 'high':
|
||||
if is_local_mode:
|
||||
return core.get_config()['security_level'].lower() in ['weak', 'normal-']
|
||||
else:
|
||||
@@ -58,7 +60,7 @@ def is_allowed_security_level(level):
|
||||
return True
|
||||
|
||||
|
||||
async def get_risky_level(files):
|
||||
async def get_risky_level(files, pip_packages):
|
||||
json_data1 = await core.get_data_by_mode('local', 'custom-node-list.json')
|
||||
json_data2 = await core.get_data_by_mode('cache', 'custom-node-list.json', channel_url='https://github.com/ltdrdata/ComfyUI-Manager/raw/main')
|
||||
|
||||
@@ -70,6 +72,15 @@ async def get_risky_level(files):
|
||||
if x not in all_urls:
|
||||
return "high"
|
||||
|
||||
all_pip_packages = set()
|
||||
for x in json_data1['custom_nodes'] + json_data2['custom_nodes']:
|
||||
if "pip" in x:
|
||||
all_pip_packages.update(x['pip'])
|
||||
|
||||
for p in pip_packages:
|
||||
if p not in all_pip_packages:
|
||||
return "block"
|
||||
|
||||
return "middle"
|
||||
|
||||
|
||||
@@ -240,7 +251,7 @@ def get_model_dir(data):
|
||||
if data['save_path'] != 'default':
|
||||
if '..' in data['save_path'] or data['save_path'].startswith('/'):
|
||||
print(f"[WARN] '{data['save_path']}' is not allowed path. So it will be saved into 'models/etc'.")
|
||||
base_model = "etc"
|
||||
base_model = os.path.join(folder_paths.models_dir, "etc")
|
||||
else:
|
||||
if data['save_path'].startswith("custom_nodes"):
|
||||
base_model = os.path.join(core.comfy_path, data['save_path'])
|
||||
@@ -248,9 +259,7 @@ def get_model_dir(data):
|
||||
base_model = os.path.join(folder_paths.models_dir, data['save_path'])
|
||||
else:
|
||||
model_type = data['type']
|
||||
if model_type == "checkpoints":
|
||||
base_model = folder_paths.folder_names_and_paths["checkpoints"][0][0]
|
||||
elif model_type == "checkpoint":
|
||||
if model_type == "checkpoints" or model_type == "checkpoint":
|
||||
base_model = folder_paths.folder_names_and_paths["checkpoints"][0][0]
|
||||
elif model_type == "unclip":
|
||||
base_model = folder_paths.folder_names_and_paths["checkpoints"][0][0]
|
||||
@@ -274,8 +283,14 @@ def get_model_dir(data):
|
||||
base_model = folder_paths.folder_names_and_paths["upscale_models"][0][0]
|
||||
elif model_type == "embeddings":
|
||||
base_model = folder_paths.folder_names_and_paths["embeddings"][0][0]
|
||||
elif model_type == "unet" or model_type == "diffusion_model":
|
||||
if folder_paths.folder_names_and_paths.get("diffusion_models"):
|
||||
base_model = folder_paths.folder_names_and_paths["diffusion_models"][0][1]
|
||||
else:
|
||||
print(f"[ComfyUI-Manager] Your ComfyUI is outdated version.")
|
||||
base_model = folder_paths.folder_names_and_paths["unet"][0][0] # outdated version
|
||||
else:
|
||||
base_model = "etc"
|
||||
base_model = os.path.join(folder_paths.models_dir, "etc")
|
||||
|
||||
return base_model
|
||||
|
||||
@@ -787,7 +802,7 @@ async def install_custom_node(request):
|
||||
|
||||
json_data = await request.json()
|
||||
|
||||
risky_level = await get_risky_level(json_data['files'])
|
||||
risky_level = await get_risky_level(json_data['files'], json_data.get('pip', []))
|
||||
if not is_allowed_security_level(risky_level):
|
||||
print(SECURITY_MESSAGE_GENERAL)
|
||||
return web.Response(status=404)
|
||||
@@ -828,7 +843,7 @@ async def install_custom_node(request):
|
||||
|
||||
@PromptServer.instance.routes.post("/customnode/fix")
|
||||
async def fix_custom_node(request):
|
||||
if not is_allowed_security_level('middle'):
|
||||
if not is_allowed_security_level('high'):
|
||||
print(SECURITY_MESSAGE_MIDDLE_OR_BELOW)
|
||||
return web.Response(status=403)
|
||||
|
||||
|
||||
@@ -202,6 +202,40 @@ docStyle.innerHTML = `
|
||||
}
|
||||
`;
|
||||
|
||||
function is_legacy_front() {
|
||||
let compareVersion = '1.2.49';
|
||||
try {
|
||||
const frontendVersion = window['__COMFYUI_FRONTEND_VERSION__'];
|
||||
if (typeof frontendVersion !== 'string') {
|
||||
return false;
|
||||
}
|
||||
|
||||
function parseVersion(versionString) {
|
||||
const parts = versionString.split('.').map(Number);
|
||||
return parts.length === 3 && parts.every(part => !isNaN(part)) ? parts : null;
|
||||
}
|
||||
|
||||
const currentVersion = parseVersion(frontendVersion);
|
||||
const comparisonVersion = parseVersion(compareVersion);
|
||||
|
||||
if (!currentVersion || !comparisonVersion) {
|
||||
return false;
|
||||
}
|
||||
|
||||
for (let i = 0; i < 3; i++) {
|
||||
if (currentVersion[i] > comparisonVersion[i]) {
|
||||
return false;
|
||||
} else if (currentVersion[i] < comparisonVersion[i]) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
} catch {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
document.head.appendChild(docStyle);
|
||||
|
||||
var update_comfyui_button = null;
|
||||
@@ -842,24 +876,27 @@ class ManagerMenuDialog extends ComfyDialog {
|
||||
});
|
||||
|
||||
// nickname
|
||||
let badge_combo = document.createElement("select");
|
||||
badge_combo.setAttribute("title", "Configure the content to be displayed on the badge at the top right corner of the node. The ID is the identifier of the node. If 'hide built-in' is selected, both unknown nodes and built-in nodes will be omitted, making them indistinguishable");
|
||||
badge_combo.className = "cm-menu-combo";
|
||||
badge_combo.appendChild($el('option', { value: 'none', text: 'Badge: None' }, []));
|
||||
badge_combo.appendChild($el('option', { value: 'nick', text: 'Badge: Nickname' }, []));
|
||||
badge_combo.appendChild($el('option', { value: 'nick_hide', text: 'Badge: Nickname (hide built-in)' }, []));
|
||||
badge_combo.appendChild($el('option', { value: 'id_nick', text: 'Badge: #ID Nickname' }, []));
|
||||
badge_combo.appendChild($el('option', { value: 'id_nick_hide', text: 'Badge: #ID Nickname (hide built-in)' }, []));
|
||||
let badge_combo = "";
|
||||
if(is_legacy_front()) {
|
||||
badge_combo = document.createElement("select");
|
||||
badge_combo.setAttribute("title", "Configure the content to be displayed on the badge at the top right corner of the node. The ID is the identifier of the node. If 'hide built-in' is selected, both unknown nodes and built-in nodes will be omitted, making them indistinguishable");
|
||||
badge_combo.className = "cm-menu-combo";
|
||||
badge_combo.appendChild($el('option', { value: 'none', text: 'Badge: None' }, []));
|
||||
badge_combo.appendChild($el('option', { value: 'nick', text: 'Badge: Nickname' }, []));
|
||||
badge_combo.appendChild($el('option', { value: 'nick_hide', text: 'Badge: Nickname (hide built-in)' }, []));
|
||||
badge_combo.appendChild($el('option', { value: 'id_nick', text: 'Badge: #ID Nickname' }, []));
|
||||
badge_combo.appendChild($el('option', { value: 'id_nick_hide', text: 'Badge: #ID Nickname (hide built-in)' }, []));
|
||||
|
||||
api.fetchApi('/manager/badge_mode')
|
||||
.then(response => response.text())
|
||||
.then(data => { badge_combo.value = data; badge_mode = data; });
|
||||
api.fetchApi('/manager/badge_mode')
|
||||
.then(response => response.text())
|
||||
.then(data => { badge_combo.value = data; badge_mode = data; });
|
||||
|
||||
badge_combo.addEventListener('change', function (event) {
|
||||
api.fetchApi(`/manager/badge_mode?value=${event.target.value}`);
|
||||
badge_mode = event.target.value;
|
||||
app.graph.setDirtyCanvas(true);
|
||||
});
|
||||
badge_combo.addEventListener('change', function (event) {
|
||||
api.fetchApi(`/manager/badge_mode?value=${event.target.value}`);
|
||||
badge_mode = event.target.value;
|
||||
app.graph.setDirtyCanvas(true);
|
||||
});
|
||||
}
|
||||
|
||||
// channel
|
||||
let channel_combo = document.createElement("select");
|
||||
@@ -1044,6 +1081,10 @@ class ManagerMenuDialog extends ComfyDialog {
|
||||
LiteGraph.closeAllContextMenus();
|
||||
const menu = new LiteGraph.ContextMenu(
|
||||
[
|
||||
{
|
||||
title: "ComfyUI Docs",
|
||||
callback: () => { window.open("https://docs.comfy.org/", "comfyui-official-manual"); },
|
||||
},
|
||||
{
|
||||
title: "Comfy Custom Node How To",
|
||||
callback: () => { window.open("https://github.com/chrisgoringe/Comfy-Custom-Node-How-To/wiki/aaa_index", "comfyui-community-manual1"); },
|
||||
@@ -1095,7 +1136,7 @@ class ManagerMenuDialog extends ComfyDialog {
|
||||
textContent: 'Workflow Gallery',
|
||||
style: {
|
||||
'text-align': 'center',
|
||||
'color': 'white',
|
||||
'color': 'var(--input-text)',
|
||||
'font-size': '18px',
|
||||
'margin': 0,
|
||||
'padding': 0,
|
||||
@@ -1106,7 +1147,7 @@ class ManagerMenuDialog extends ComfyDialog {
|
||||
textContent: `(${localStorage.getItem("wg_last_visited") ? localStorage.getItem("wg_last_visited").split('/')[2] : ''})`,
|
||||
style: {
|
||||
'text-align': 'center',
|
||||
'color': 'white',
|
||||
'color': 'var(--input-text)',
|
||||
'font-size': '12px',
|
||||
'margin': 0,
|
||||
'padding': 0,
|
||||
@@ -1411,24 +1452,28 @@ app.registerExtension({
|
||||
},
|
||||
|
||||
async nodeCreated(node, app) {
|
||||
if(!node.badge_enabled) {
|
||||
node.getNickname = function () { return getNickname(node, node.comfyClass.trim()) };
|
||||
let orig = node.onDrawForeground;
|
||||
if(!orig)
|
||||
orig = node.__proto__.onDrawForeground;
|
||||
if(is_legacy_front()) {
|
||||
if(!node.badge_enabled) {
|
||||
node.getNickname = function () { return getNickname(node, node.comfyClass.trim()) };
|
||||
let orig = node.onDrawForeground;
|
||||
if(!orig)
|
||||
orig = node.__proto__.onDrawForeground;
|
||||
|
||||
node.onDrawForeground = function (ctx) {
|
||||
drawBadge(node, orig, arguments)
|
||||
};
|
||||
node.badge_enabled = true;
|
||||
node.onDrawForeground = function (ctx) {
|
||||
drawBadge(node, orig, arguments)
|
||||
};
|
||||
node.badge_enabled = true;
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
async loadedGraphNode(node, app) {
|
||||
if(!node.badge_enabled) {
|
||||
const orig = node.onDrawForeground;
|
||||
node.getNickname = function () { return getNickname(node, node.type.trim()) };
|
||||
node.onDrawForeground = function (ctx) { drawBadge(node, orig, arguments) };
|
||||
if(is_legacy_front()) {
|
||||
if(!node.badge_enabled) {
|
||||
const orig = node.onDrawForeground;
|
||||
node.getNickname = function () { return getNickname(node, node.type.trim()) };
|
||||
node.onDrawForeground = function (ctx) { drawBadge(node, orig, arguments) };
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
@@ -1438,7 +1483,7 @@ app.registerExtension({
|
||||
node.prototype.getExtraMenuOptions = function (_, options) {
|
||||
origGetExtraMenuOptions?.apply?.(this, arguments);
|
||||
|
||||
if (node.category.startsWith('group nodes/')) {
|
||||
if (node.category.startsWith('group nodes>')) {
|
||||
options.push({
|
||||
content: "Save As Component",
|
||||
callback: (obj) => {
|
||||
|
||||
@@ -315,7 +315,7 @@ export class ShareDialogChooser extends ComfyDialog {
|
||||
key: "comfyworkflows",
|
||||
textContent: "ComfyWorkflows",
|
||||
website: "https://comfyworkflows.com",
|
||||
description: "Share & browse thousands of ComfyUI workflows and art 🎨<br/><br/><a style='color:white;' href='https://comfyworkflows.com' target='_blank'>ComfyWorkflows.com</a>",
|
||||
description: "Share & browse thousands of ComfyUI workflows and art 🎨<br/><br/><a style='color:var(--input-text);' href='https://comfyworkflows.com' target='_blank'>ComfyWorkflows.com</a>",
|
||||
onclick: () => {
|
||||
showShareDialog('comfyworkflows').then((suc) => {
|
||||
suc && this.close();
|
||||
@@ -326,7 +326,7 @@ export class ShareDialogChooser extends ComfyDialog {
|
||||
key: "esheep",
|
||||
textContent: "eSheep",
|
||||
website: "https://www.esheep.com",
|
||||
description: "Share & download thousands of ComfyUI workflows on <a style='color:white;' href='https://www.esheep.com' target='_blank'>esheep.com</a>",
|
||||
description: "Share & download thousands of ComfyUI workflows on <a style='color:var(--input-text);' href='https://www.esheep.com' target='_blank'>esheep.com</a>",
|
||||
onclick: () => {
|
||||
shareToEsheep();
|
||||
this.close();
|
||||
@@ -336,7 +336,7 @@ export class ShareDialogChooser extends ComfyDialog {
|
||||
key: "Copus",
|
||||
textContent: "Copus",
|
||||
website: "https://www.copus.io",
|
||||
description: "🔴 Permanently store and secure ownership of your workflow on the open-source platform: <a style='color:white;' href='https://copus.io' target='_blank'>Copus.io</a>",
|
||||
description: "🔴 Permanently store and secure ownership of your workflow on the open-source platform: <a style='color:var(--input-text);' href='https://copus.io' target='_blank'>Copus.io</a>",
|
||||
onclick: () => {
|
||||
showCopusShareDialog();
|
||||
this.close();
|
||||
@@ -382,7 +382,7 @@ export class ShareDialogChooser extends ComfyDialog {
|
||||
innerHTML: b.description,
|
||||
style: {
|
||||
'text-align': 'left',
|
||||
color: 'white',
|
||||
color: 'var(--input-text)',
|
||||
'font-size': '14px',
|
||||
'margin-bottom': '0',
|
||||
},
|
||||
@@ -393,7 +393,7 @@ export class ShareDialogChooser extends ComfyDialog {
|
||||
href: b.website,
|
||||
target: "_blank",
|
||||
style: {
|
||||
color: 'white',
|
||||
color: 'var(--input-text)',
|
||||
'margin-left': '10px',
|
||||
'font-size': '12px',
|
||||
'text-decoration': 'none',
|
||||
@@ -440,7 +440,7 @@ export class ShareDialogChooser extends ComfyDialog {
|
||||
textContent: 'Choose a platform to share your workflow',
|
||||
style: {
|
||||
'text-align': 'center',
|
||||
'color': 'white',
|
||||
'color': 'var(--input-text)',
|
||||
'font-size': '18px',
|
||||
'margin-bottom': '10px',
|
||||
},
|
||||
@@ -686,7 +686,7 @@ export class ShareDialog extends ComfyDialog {
|
||||
$el("div", {}, [
|
||||
$el("p", {
|
||||
size: 3, color: "white", style: {
|
||||
color: 'white'
|
||||
color: 'var(--input-text)'
|
||||
}
|
||||
}, [`Select where to share your art:`]),
|
||||
this.matrix_destination_checkbox,
|
||||
@@ -701,7 +701,7 @@ export class ShareDialog extends ComfyDialog {
|
||||
size: 3,
|
||||
color: "white",
|
||||
style: {
|
||||
color: 'white'
|
||||
color: 'var(--input-text)'
|
||||
}
|
||||
}, []),
|
||||
this.credits_input,
|
||||
@@ -712,7 +712,7 @@ export class ShareDialog extends ComfyDialog {
|
||||
size: 3,
|
||||
color: "white",
|
||||
style: {
|
||||
color: 'white'
|
||||
color: 'var(--input-text)'
|
||||
}
|
||||
}, []),
|
||||
this.title_input,
|
||||
@@ -723,7 +723,7 @@ export class ShareDialog extends ComfyDialog {
|
||||
size: 3,
|
||||
color: "white",
|
||||
style: {
|
||||
color: 'white'
|
||||
color: 'var(--input-text)'
|
||||
}
|
||||
}, []),
|
||||
this.description_input,
|
||||
@@ -989,7 +989,7 @@ export class ShareDialog extends ComfyDialog {
|
||||
}
|
||||
const radio_button_text = $el("label", {
|
||||
// style: {
|
||||
// color: 'white'
|
||||
// color: 'var(--input-text)'
|
||||
// }
|
||||
}, [output.title])
|
||||
radio_button.style.color = "var(--fg-color)";
|
||||
@@ -1028,7 +1028,7 @@ export class ShareDialog extends ComfyDialog {
|
||||
color: "white",
|
||||
style: {
|
||||
'text-align': 'center',
|
||||
color: 'white',
|
||||
color: 'var(--input-text)',
|
||||
backgroundColor: 'black',
|
||||
padding: '10px',
|
||||
'margin-top': '0px',
|
||||
@@ -1040,7 +1040,7 @@ export class ShareDialog extends ComfyDialog {
|
||||
color: "white",
|
||||
style: {
|
||||
'text-align': 'center',
|
||||
color: 'white',
|
||||
color: 'var(--input-text)',
|
||||
'margin-bottom': '5px',
|
||||
'font-style': 'italic',
|
||||
'font-size': '12px',
|
||||
|
||||
@@ -199,7 +199,7 @@ export class OpenArtShareDialog extends ComfyDialog {
|
||||
color: "white",
|
||||
style: {
|
||||
'text-align': 'center',
|
||||
color: 'white',
|
||||
color: 'var(--input-text)',
|
||||
margin: '0 0 10px 0',
|
||||
}
|
||||
});
|
||||
@@ -733,7 +733,7 @@ export class OpenArtShareDialog extends ComfyDialog {
|
||||
size: 2,
|
||||
color: "white",
|
||||
style: {
|
||||
color: 'white',
|
||||
color: 'var(--input-text)',
|
||||
margin: '0 0 5px 0',
|
||||
fontSize: '12px',
|
||||
},
|
||||
|
||||
@@ -4,6 +4,8 @@ import { sleep, show_message } from "./common.js";
|
||||
import { GroupNodeConfig, GroupNodeHandler } from "../../extensions/core/groupNode.js";
|
||||
import { ComfyDialog, $el } from "../../scripts/ui.js";
|
||||
|
||||
const SEPARATOR = ">"
|
||||
|
||||
let pack_map = {};
|
||||
let rpack_map = {};
|
||||
|
||||
@@ -20,7 +22,7 @@ export function getPureName(node) {
|
||||
let purename = node.comfyClass.substring(category.length+1);
|
||||
return purename;
|
||||
}
|
||||
else if(node.comfyClass.startsWith('workflow/')) {
|
||||
else if(node.comfyClass.startsWith('workflow/') || node.comfyClass.startsWith(`workflow${SEPARATOR}`)) {
|
||||
return node.comfyClass.substring(9);
|
||||
}
|
||||
else {
|
||||
@@ -76,7 +78,7 @@ export async function load_components() {
|
||||
|
||||
let category = data.packname;
|
||||
if(data.category) {
|
||||
category += "/" + data.category;
|
||||
category += SEPARATOR + data.category;
|
||||
}
|
||||
if(category == '') {
|
||||
category = 'components';
|
||||
@@ -100,7 +102,7 @@ export async function load_components() {
|
||||
try {
|
||||
let category = nodeData.packname;
|
||||
if(nodeData.category) {
|
||||
category += "/" + nodeData.category;
|
||||
category += SEPARATOR + nodeData.category;
|
||||
}
|
||||
if(category == '') {
|
||||
category = 'components';
|
||||
@@ -139,7 +141,7 @@ export async function load_components() {
|
||||
try {
|
||||
let category = nodeData.packname;
|
||||
if(nodeData.workflow.category) {
|
||||
category += "/" + nodeData.category;
|
||||
category += SEPARATOR + nodeData.category;
|
||||
}
|
||||
if(category == '') {
|
||||
category = 'components';
|
||||
@@ -174,7 +176,7 @@ export async function load_components() {
|
||||
try {
|
||||
let category = nodeData.workflow.packname;
|
||||
if(nodeData.workflow.category) {
|
||||
category += "/" + nodeData.category;
|
||||
category += SEPARATOR + nodeData.category;
|
||||
}
|
||||
if(category == '') {
|
||||
category = 'components';
|
||||
@@ -234,7 +236,7 @@ async function save_as_component(node, version, author, prefix, nodename, packna
|
||||
|
||||
let category = body.workflow.packname;
|
||||
if(body.workflow.category) {
|
||||
category += "/" + body.workflow.category;
|
||||
category += SEPARATOR + body.workflow.category;
|
||||
}
|
||||
if(category == '') {
|
||||
category = 'components';
|
||||
@@ -266,7 +268,7 @@ async function import_component(component_name, component, mode) {
|
||||
|
||||
let category = component.packname;
|
||||
if(component.category) {
|
||||
category += "/" + component.category;
|
||||
category += SEPARATOR + component.category;
|
||||
}
|
||||
if(category == '') {
|
||||
category = 'components';
|
||||
@@ -403,7 +405,7 @@ function handle_import_components(components) {
|
||||
}
|
||||
|
||||
if(cnt == 1 && last_name) {
|
||||
const node = LiteGraph.createNode(`workflow/${last_name}`);
|
||||
const node = LiteGraph.createNode(`workflow${SEPARATOR}${last_name}`);
|
||||
node.pos = [app.canvas.graph_mouse[0], app.canvas.graph_mouse[1]];
|
||||
app.canvas.graph.add(node, false);
|
||||
}
|
||||
@@ -786,7 +788,7 @@ app.graphToPrompt = async function () {
|
||||
// get used group nodes
|
||||
let used_group_nodes = new Set();
|
||||
for(let node of p.workflow.nodes) {
|
||||
if(node.type.startsWith('workflow/')) {
|
||||
if(node.type.startsWith(`workflow/`) || node.type.startsWith(`workflow${SEPARATOR}`)) {
|
||||
used_group_nodes.add(node.type.substring(9));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1106,7 +1106,7 @@ export class CustomNodesManager {
|
||||
|
||||
for (let i in nodes) {
|
||||
const node_type = nodes[i].type;
|
||||
if(node_type.startsWith('workflow/'))
|
||||
if(node_type.startsWith('workflow/') || node_type.startsWith('workflow>'))
|
||||
continue;
|
||||
|
||||
if (!registered_nodes.has(node_type)) {
|
||||
|
||||
@@ -9,11 +9,13 @@ app.registerExtension({
|
||||
name: "Comfy.Manager.Terminal",
|
||||
|
||||
registerCustomNodes() {
|
||||
class TerminalNode {
|
||||
class TerminalNode extends LiteGraph.LGraphNode {
|
||||
color = "#222222";
|
||||
bgcolor = "#000000";
|
||||
groupcolor = LGraphCanvas.node_colors.black.groupcolor;
|
||||
constructor() {
|
||||
super();
|
||||
this.title = "Terminal Log (Manager)";
|
||||
this.logs = [];
|
||||
|
||||
if (!this.properties) {
|
||||
|
||||
815
model-list.json
815
model-list.json
File diff suppressed because it is too large
Load Diff
@@ -11,6 +11,580 @@
|
||||
|
||||
|
||||
|
||||
{
|
||||
"author": "monate0615",
|
||||
"title": "Affine Transform ComfyUI Node",
|
||||
"reference": "https://github.com/monate0615/ComfyUI-Affine-Transform",
|
||||
"files": [
|
||||
"https://github.com/monate0615/ComfyUI-Affine-Transform"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "This node output the image that are transfromed by affine matrix what is made according to 4 points of output.\nNOTE: The files in the repo are not organized."
|
||||
},
|
||||
{
|
||||
"author": "ComfyUI-Workflow",
|
||||
"title": "ComfyUI OpenAI Nodes",
|
||||
"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": "ruka-game",
|
||||
"title": "ComfyUI RukaLib [WIP]",
|
||||
"reference": "https://github.com/ruka-game/rukalib_comfyui",
|
||||
"files": [
|
||||
"https://github.com/ruka-game/rukalib_comfyui"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "NODES: Ruka Prompt Enhancer, Ruka Debug Probe.\nMy utilities for comfy (WIP / ollama is required for LLM nodes)"
|
||||
},
|
||||
{
|
||||
"author": "MythicalChu",
|
||||
"title": "ComfyUI-APG_ImYourCFGNow",
|
||||
"reference": "https://github.com/MythicalChu/ComfyUI-APG_ImYourCFGNow",
|
||||
"files": [
|
||||
"https://github.com/MythicalChu/ComfyUI-APG_ImYourCFGNow"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "Use this node like a RescaleCFG node, ... modelIn -> ThisNode -> ModelOut ... -> KSampler\n'scale' acts like your CFG, your CFG doesn't do anything anymore white this node is active. See paper [a/https://arxiv.org/pdf/2410.02416](https://arxiv.org/pdf/2410.02416) for instructions about the other parameters. (Pages 20-21)"
|
||||
},
|
||||
{
|
||||
"author": "okg21",
|
||||
"title": "VLLMVisionChatNode",
|
||||
"reference": "https://github.com/okg21/VLLMVisionChatNode",
|
||||
"files": [
|
||||
"https://github.com/okg21/VLLMVisionChatNode/raw/refs/heads/main/VLLMVisionChatNode.py"
|
||||
],
|
||||
"pip": ["openai", "numpy"],
|
||||
"install_type": "copy",
|
||||
"description": "This platform extension provides ZhipuAI nodes, enabling you to configure a workflow for online video generation."
|
||||
},
|
||||
{
|
||||
"author": "jetchopper",
|
||||
"title": "ComfyUI-GeneraNodes",
|
||||
"id": "genera",
|
||||
"reference": "https://github.com/evolox/ComfyUI-GeneraNodes",
|
||||
"files": [
|
||||
"https://github.com/evolox/ComfyUI-GeneraNodes"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "Genera custom nodes and extensions"
|
||||
},
|
||||
{
|
||||
"author": "HavocsCall",
|
||||
"title": "comfyui_HavocsCall_Custom_Nodes",
|
||||
"reference": "https://github.com/HavocsCall/comfyui_HavocsCall_Custom_Nodes",
|
||||
"files": [
|
||||
"https://github.com/HavocsCall/comfyui_HavocsCall_Custom_Nodes"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "NODES:Prompt Combiner, Sampler Config, Text Box, Int to Float, Clip Switch, Conditioning Switch, Image Switch, Latent Switch, Model Switch, String Switch, VAE Switch"
|
||||
},
|
||||
{
|
||||
"author": "mfg637",
|
||||
"title": "ComfyUI-ScheduledGuider-Ext",
|
||||
"reference": "https://github.com/mfg637/ComfyUI-ScheduledGuider-Ext",
|
||||
"files": [
|
||||
"https://github.com/mfg637/ComfyUI-ScheduledGuider-Ext"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "NODES:SheduledCFGGuider, CosineScheduler, InvertSigmas, ConcatSigmas."
|
||||
},
|
||||
{
|
||||
"author": "SS-snap",
|
||||
"title": "ComfyUI-Snap_Processing",
|
||||
"reference": "https://github.com/SS-snap/ComfyUI-Snap_Processing",
|
||||
"files": [
|
||||
"https://github.com/SS-snap/ComfyUI-Snap_Processing"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "Creating this repository was a last resort because I couldn't find a node in ComfyUI that calculates area size and ratio, so I had to create a custom node to integrate with my 'Majic product' workflow for automated execution.\nNOTE: The files in the repo are not organized."
|
||||
},
|
||||
{
|
||||
"author": "netanelben",
|
||||
"title": "comfyui-photobooth-customnode",
|
||||
"reference": "https://github.com/netanelben/comfyui-photobooth-customnode",
|
||||
"files": [
|
||||
"https://github.com/netanelben/comfyui-photobooth-customnode"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "comfyui-photobooth-customnode"
|
||||
},
|
||||
{
|
||||
"author": "netanelben",
|
||||
"title": "comfyui-text2image-customnode",
|
||||
"reference": "https://github.com/netanelben/comfyui-text2image-customnode",
|
||||
"files": [
|
||||
"https://github.com/netanelben/comfyui-text2image-customnode"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "comfyui-text2image-customnode"
|
||||
},
|
||||
{
|
||||
"author": "netanelben",
|
||||
"title": "comfyui-camera2image-customnode",
|
||||
"reference": "https://github.com/netanelben/comfyui-camera2image-customnode",
|
||||
"files": [
|
||||
"https://github.com/netanelben/comfyui-camera2image-customnode"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "comfyui-camera2image-customnode"
|
||||
},
|
||||
{
|
||||
"author": "netanelben",
|
||||
"title": "comfyui-image2image-customnode",
|
||||
"reference": "https://github.com/netanelben/comfyui-image2image-customnode",
|
||||
"files": [
|
||||
"https://github.com/netanelben/comfyui-image2image-customnode"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "comfyui-image2image-customnode"
|
||||
},
|
||||
{
|
||||
"author": "JayLyu",
|
||||
"title": "ComfyUI_BaiKong_Node",
|
||||
"id": "baikong",
|
||||
"reference": "https://github.com/JayLyu/ComfyUI_BaiKong_Node",
|
||||
"files": [
|
||||
"https://github.com/JayLyu/ComfyUI_BaiKong_Node"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "Nodes for advanced color manipulation and image processing: BK Img To Color, BK Color Selector, BK Color Contrast, BK Color Limit, BK Color Luminance, BK Gradient Image, and BK Image Aspect Filter.\n[w/requirements.txt is broken.]"
|
||||
},
|
||||
{
|
||||
"author": "ShmuelRonen",
|
||||
"title": "ComfyUI-FreeMemory",
|
||||
"reference": "https://github.com/ShmuelRonen/ComfyUI-FreeMemory",
|
||||
"files": [
|
||||
"https://github.com/ShmuelRonen/ComfyUI-FreeMemory"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "ComfyUI-FreeMemory is a custom node extension for ComfyUI that provides advanced memory management capabilities within your image generation workflows."
|
||||
},
|
||||
{
|
||||
"author": "ZHO-ZHO-ZHO",
|
||||
"title": "ComfyUI Llama 3.1 [WIP]",
|
||||
"reference": "https://github.com/ZHO-ZHO-ZHO/ComfyUI-Llama-3-2",
|
||||
"files": [
|
||||
"https://github.com/ZHO-ZHO-ZHO/ComfyUI-Llama-3-2"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "Using Llama-3-1 in ComfyUI"
|
||||
},
|
||||
{
|
||||
"author": "netanelben",
|
||||
"title": "comfyui-text2image-customnode [WIP]",
|
||||
"reference": "https://github.com/netanelben/comfyui-text2image-customnode",
|
||||
"files": [
|
||||
"https://github.com/netanelben/comfyui-text2image-customnode"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "text2image web extension"
|
||||
},
|
||||
{
|
||||
"author": "leeguandong",
|
||||
"title": "ComfyUI_AliControlnetInpainting [WIP]",
|
||||
"reference": "https://github.com/leeguandong/ComfyUI_AliControlnetInpainting",
|
||||
"files": [
|
||||
"https://github.com/leeguandong/ComfyUI_AliControlnetInpainting"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "ComfyUI nodes to use AliControlnetInpainting"
|
||||
},
|
||||
{
|
||||
"author": "jordancoult",
|
||||
"title": "ComfyUI_HelpfulNodes",
|
||||
"reference": "https://github.com/jordancoult/ComfyUI_HelpfulNodes",
|
||||
"files": [
|
||||
"https://github.com/jordancoult/ComfyUI_HelpfulNodes"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "NODES: Prep Crop Around Keypoints"
|
||||
},
|
||||
{
|
||||
"author": "ashishsaini",
|
||||
"title": "comfyui_segformer_b2_sleeves",
|
||||
"reference": "https://github.com/ashishsaini/comfyui-segment-clothing-sleeves",
|
||||
"files": [
|
||||
"https://github.com/ashishsaini/comfyui-segment-clothing-sleeves"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "NODES:segformer_b2_sleeves"
|
||||
},
|
||||
{
|
||||
"author": "io-club",
|
||||
"title": "ComfyUI-LuminaNext [WIP]",
|
||||
"reference": "https://github.com/io-club/ComfyUI-LuminaNext",
|
||||
"files": [
|
||||
"https://github.com/io-club/ComfyUI-LuminaNext"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "NODES: GemmaClipLoader"
|
||||
},
|
||||
{
|
||||
"author": "shadowcz007",
|
||||
"title": "Comfyui-EzAudio",
|
||||
"reference": "https://github.com/shadowcz007/Comfyui-EzAudio",
|
||||
"files": [
|
||||
"https://github.com/shadowcz007/Comfyui-EzAudio"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "NODES: EZ Generate Audio, EZ Load Model\nNOTE: The files in the repo are not organized."
|
||||
},
|
||||
{
|
||||
"author": "neo0801",
|
||||
"title": "my-comfy-node",
|
||||
"reference": "https://github.com/neo0801/my-comfy-node",
|
||||
"files": [
|
||||
"https://github.com/neo0801/my-comfy-node"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "NODES:Deep Mosaic Get Image Mosaic Mask, Deep Mosaic Get Video Mosaic Mask, Deep Mosaic Remove Image Mosaic, Deep Mosaic Remove Video Mosaic"
|
||||
},
|
||||
{
|
||||
"author": "nikkuexe",
|
||||
"title": "List Data Helper Nodes",
|
||||
"reference": "https://github.com/paulhoux/Smart-Prompting",
|
||||
"files": [
|
||||
"https://github.com/paulhoux/Smart-Prompting"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "Custom nodes for ComfyUI, allowing you to more easily manipulate text and create good prompts.[w/The use of outdated front extension techniques results in remnants being left behind during uninstallation.]"
|
||||
},
|
||||
{
|
||||
"author": "nikkuexe",
|
||||
"title": "List Data Helper Nodes",
|
||||
"reference": "https://github.com/nikkuexe/ComfyUI-ListDataHelpers",
|
||||
"files": [
|
||||
"https://github.com/nikkuexe/ComfyUI-ListDataHelpers"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "A set of custom nodes for handling lists in ComfyUI."
|
||||
},
|
||||
{
|
||||
"author": "Fannovel16",
|
||||
"title": "ComfyUI-AppIO",
|
||||
"reference": "https://github.com/Fannovel16/ComfyUI-AppIO",
|
||||
"files": [
|
||||
"https://github.com/Fannovel16/ComfyUI-AppIO"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "NODES:AppIO_StringInput, AppIO_ImageInput, AppIO_StringOutput, AppIO_ImageOutput"
|
||||
},
|
||||
{
|
||||
"author": "wilzamguerrero",
|
||||
"title": "Comfyui-DownZ",
|
||||
"reference": "https://github.com/wilzamguerrero/Comfyui-DownZ",
|
||||
"files": [
|
||||
"https://github.com/wilzamguerrero/Comfyui-DownZ"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "NODES:Download Z, Compress Z, Move Z"
|
||||
},
|
||||
{
|
||||
"author": "SoftMeng",
|
||||
"title": "ComfyUI-PIL",
|
||||
"reference": "https://github.com/SoftMeng/ComfyUI-PIL",
|
||||
"files": [
|
||||
"https://github.com/SoftMeng/ComfyUI-PIL"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "PIL Nodes"
|
||||
},
|
||||
{
|
||||
"author": "seancheung",
|
||||
"title": "comfyui-creative-nodes",
|
||||
"reference": "https://github.com/seancheung/comfyui-creative-nodes",
|
||||
"files": [
|
||||
"https://github.com/seancheung/comfyui-creative-nodes"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "NODES:Stop Flow, Skip From Flow, Skip To Flow, Resolution Selector, ResolutionXL Selector"
|
||||
},
|
||||
{
|
||||
"author": "AlexXi19",
|
||||
"title": "ComfyUI-OpenAINode",
|
||||
"reference": "https://github.com/AlexXi19/ComfyUI-OpenAINode",
|
||||
"files": [
|
||||
"https://github.com/AlexXi19/ComfyUI-OpenAINode"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "ComfyUI-OpenAINode is a user-friendly node that serves as an interface to the OpenAI Models.[w/Repo name conflict with Electrofried/ComfyUI-OpenAINode]"
|
||||
},
|
||||
{
|
||||
"author": "hgabha",
|
||||
"title": "WWAA-CustomNodes",
|
||||
"reference": "https://github.com/hgabha/WWAA-CustomNodes",
|
||||
"files": [
|
||||
"https://github.com/hgabha/WWAA-CustomNodes"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "Custom Nodes for ComfyUI made by the team at [a/WeirdWonderfulAI.Art](https://weirdwonderfulai.art/) These are developed based on the needs where there was a gap to make our workflows better. You are welcome to use it as you see fit."
|
||||
},
|
||||
{
|
||||
"author": "IgPoly",
|
||||
"title": "ComfyUI-igTools",
|
||||
"reference": "https://github.com/IgPoly/ComfyUI-igTools",
|
||||
"files": [
|
||||
"https://github.com/IgPoly/ComfyUI-igTools"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "NODES:IGT Simple Tiles Calc"
|
||||
},
|
||||
{
|
||||
"author": "Ryota",
|
||||
"title": "Ryota's Nodes",
|
||||
"reference": "https://github.com/lichenhao/Comfyui_Ryota",
|
||||
"files": [
|
||||
"https://github.com/lichenhao/Comfyui_Ryota"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "NODES:CombineTexts, FontLoader, DrawText, TxtFileLoader, SaveTxtFile, SwitchModelClip, SwitchAnyInputs, Reroute2, Reroute3"
|
||||
},
|
||||
{
|
||||
"author": "Soppatorsk",
|
||||
"title": "comfyui_img_to_ascii [WIP]",
|
||||
"reference": "https://github.com/Soppatorsk/comfyui_img_to_ascii",
|
||||
"files": [
|
||||
"https://github.com/Soppatorsk/comfyui_img_to_ascii"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "Basic functionality for converting an image to ASCII art returned as a png image based on [a/ascii_magic](https://github.com/LeandroBarone/python-ascii_magic)"
|
||||
},
|
||||
{
|
||||
"author": "AIFSH",
|
||||
"title": "HivisionIDPhotos-ComfyUI",
|
||||
"reference": "https://github.com/AIFSH/HivisionIDPhotos-ComfyUI",
|
||||
"files": [
|
||||
"https://github.com/AIFSH/HivisionIDPhotos-ComfyUI"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "a custom node for [a/HivisionIDPhotos](https://github.com/Zeyi-Lin/HivisionIDPhotos).\nNOTE: Unsuitable for international users"
|
||||
},
|
||||
{
|
||||
"author": "lu64k",
|
||||
"title": "SK-Nodes",
|
||||
"reference": "https://github.com/lu64k/SK-Nodes",
|
||||
"files": [
|
||||
"https://github.com/lu64k/SK-Nodes"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "NODES:image select, Load AnyLLM, Ask LLM, OpenAI DAlle Node, SK Text_String, SK Random File Name"
|
||||
},
|
||||
{
|
||||
"author": "Cardoso-topdev",
|
||||
"title": "comfyui_meshanything_v1 [WIP]",
|
||||
"reference": "https://github.com/Cardoso-topdev/comfyui_meshanything_v1",
|
||||
"files": [
|
||||
"https://github.com/Cardoso-topdev/comfyui_meshanything_v1"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "MeshAnything V2: Artist-Created Mesh Generation With Adjacent Mesh Tokenization"
|
||||
},
|
||||
{
|
||||
"author": "Lilien86",
|
||||
"title": "lauger NodePack for ComfyUI",
|
||||
"reference": "https://github.com/Lilien86/lauger_NP_comfyui",
|
||||
"files": [
|
||||
"https://github.com/Lilien86/lauger_NP_comfyui"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "Hey everyone it's my Custom ComfyUI Nodes Pack repository! This project contains a collection of custom nodes designed to extend the functionality of ComfyUI. These nodes offer capabilities and new creative possibilities, especially in the realms of latent space manipulation and interpolation.\nNOTE: The files in the repo are not organized."
|
||||
},
|
||||
{
|
||||
"author": "haodman",
|
||||
"title": "ComfyUI_Rain",
|
||||
"reference": "https://github.com/haodman/ComfyUI_Rain",
|
||||
"files": [
|
||||
"https://github.com/haodman/ComfyUI_Rain"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "NODES:Rain_ValueSwitch, Rain_Math, Rain_IntToFloat, Rain_ImageSize."
|
||||
},
|
||||
{
|
||||
"author": "bananasss00",
|
||||
"title": "Comfyui-PyExec [UNSAFE]",
|
||||
"reference": "https://github.com/bananasss00/Comfyui-PyExec",
|
||||
"files": [
|
||||
"https://github.com/bananasss00/Comfyui-PyExec"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "Nodes:PyExec.[w/This node allows access to arbitrary files through the workflow, which could pose a security threat.]"
|
||||
},
|
||||
{
|
||||
"author": "jgbrblmd",
|
||||
"title": "ComfyUI-ComfyFluxSize [WIP]",
|
||||
"reference": "https://github.com/jgbrblmd/ComfyUI-ComfyFluxSize",
|
||||
"files": [
|
||||
"https://github.com/jgbrblmd/ComfyUI-ComfyFluxSize"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "Nodes:ComfyFlux Size\nNOTE: The files in the repo are not organized."
|
||||
},
|
||||
{
|
||||
"author": "yojimbodayne",
|
||||
"title": "ComfyUI-Dropbox-API [WIP]",
|
||||
"reference": "https://github.com/yojimbodayne/ComfyUI-Dropbox-API",
|
||||
"files": [
|
||||
"https://github.com/yojimbodayne/ComfyUI-Dropbox-API"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "This custom node package for ComfyUI allows users to interact with Dropbox API, enabling image, text, and video uploads, downloads, and management directly from ComfyUI workflows.\nNOTE: The files in the repo are not organized."
|
||||
},
|
||||
{
|
||||
"author": "ilovejohnwhite",
|
||||
"title": "Kolors Awesome Prompts [WIP]",
|
||||
"reference": "https://github.com/ilovejohnwhite/Tracer",
|
||||
"files": [
|
||||
"https://github.com/ilovejohnwhite/Tracer"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "Nodes:Image Load TTK, SuckerPunch, LinkMasterNode, PixelPerfectResolution, ImageGenResolutionFromImage, ImageGenResolutionFromLatent, HintImageEnchance\nNOTE: The files in the repo are not organized."
|
||||
},
|
||||
{
|
||||
"author": "shuanshtalon468uan",
|
||||
"title": "ComfyUI-Rpg-Architect [WIP]",
|
||||
"reference": "https://github.com/talon468/ComfyUI-Rpg-Architect",
|
||||
"files": [
|
||||
"https://github.com/talon468/ComfyUI-Rpg-Architect"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "Custom Node for ComfyUI to create RPG Characters\nNOTE: The files in the repo are not organized."
|
||||
},
|
||||
{
|
||||
"author": "shuanshuan",
|
||||
"title": "ComfyUI_CheckPointLoader_Ext [WIP]",
|
||||
"reference": "https://github.com/shuanshuan/ComfyUI_CheckPointLoader_Ext",
|
||||
"files": [
|
||||
"https://github.com/shuanshuan/ComfyUI_CheckPointLoader_Ext"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "NODES:Checkpoint Loader Ext"
|
||||
},
|
||||
{
|
||||
"author": "123jimin",
|
||||
"title": "ComfyUI MobileForm [WIP]",
|
||||
"reference": "https://github.com/123jimin/ComfyUI-MobileForm",
|
||||
"files": [
|
||||
"https://github.com/123jimin/ComfyUI-MobileForm"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "MobileForm is an extension for ComfyUI, providing simple form for any workflows, suitable for use on mobile phones.[w/Currently MobileForm is in a PoC state; expect bugs and breaking changes.]"
|
||||
},
|
||||
{
|
||||
"author": "go-package-lab",
|
||||
"title": "ComfyUI-Tools-Video-Combine [WIP]",
|
||||
"reference": "https://github.com/go-package-lab/ComfyUI-Tools-Video-Combine",
|
||||
"files": [
|
||||
"https://github.com/go-package-lab/ComfyUI-Tools-Video-Combine"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "NODES:LoadAudioUrl, VideoWatermark"
|
||||
},
|
||||
{
|
||||
"author": "zhongpei",
|
||||
"title": "Comfyui_image2prompt",
|
||||
"id": "img2prompt",
|
||||
"reference": "https://github.com/zhongpei/Comfyui_image2prompt",
|
||||
"files": [
|
||||
"https://github.com/zhongpei/Comfyui_image2prompt"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "Nodes:Image to Text, Loader Image to Text Model.[w/This custom node may break dependencies by reinstalling the torch package.]"
|
||||
},
|
||||
{
|
||||
"author": "APZmedia",
|
||||
"title": "comfyui-textools [WIP]",
|
||||
"reference": "https://github.com/APZmedia/comfyui-textools",
|
||||
"files": [
|
||||
"https://github.com/APZmedia/comfyui-textools"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "ComfyUI-textools is a collection of custom nodes designed for use with ComfyUI. These nodes enhance text processing capabilities, including applying rich text overlays on images and cleaning file names for safe and consistent file management.\nNOTE: The files in the repo are not organized."
|
||||
},
|
||||
{
|
||||
"author": "shinich39",
|
||||
"title": "comfyui-event-handler [USAFE]",
|
||||
"reference": "https://github.com/shinich39/comfyui-event-handler",
|
||||
"files": [
|
||||
"https://github.com/shinich39/comfyui-event-handler"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "Javascript code will run when an event fires. [w/This node allows you to execute arbitrary JavaScript code as input for the workflow.]"
|
||||
},
|
||||
{
|
||||
"author": "Comfy Org",
|
||||
"title": "ComfyUI_devtools [WIP]",
|
||||
"reference": "https://github.com/Comfy-Org/ComfyUI_devtools",
|
||||
"files": [
|
||||
"https://github.com/Comfy-Org/ComfyUI_devtools"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "ComfyUI developer tools (Custom Node)"
|
||||
},
|
||||
{
|
||||
"author": "Sakura-nee",
|
||||
"title": "ComfyUI_Save2Discord",
|
||||
"reference": "https://github.com/Sakura-nee/ComfyUI_Save2Discord",
|
||||
"files": [
|
||||
"https://github.com/Sakura-nee/ComfyUI_Save2Discord"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "Nodes:Send Generated Image To Discord Webhook.\nNOTE: The files in the repo are not organized."
|
||||
},
|
||||
{
|
||||
"author": "ThisModernDay",
|
||||
"title": "ComfyUI Instructor Ollama",
|
||||
"reference": "https://github.com/ThisModernDay/ComfyUI-InstructorOllama",
|
||||
"files": [
|
||||
"https://github.com/ThisModernDay/ComfyUI-InstructorOllama"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "Custom ComfyUI Nodes for interacting with Ollama using the Instructor. Library to provide structured output from your LLM. To use this properly, you would need a running Ollama server reachable from the host that is running ComfyUI.\nNOTE: The files in the repo are not organized, which may lead to update issues."
|
||||
},
|
||||
{
|
||||
"author": "gioferreira",
|
||||
"title": "ComfyUI-Molde-Utils",
|
||||
"reference": "https://github.com/gioferreira/ComfyUI-Molde-Utils",
|
||||
"files": [
|
||||
"https://github.com/gioferreira/ComfyUI-Molde-Utils"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "ComfyUI-Molde-Utils is a utility library designed to provide various helper functions for working with UI elements. This project includes modules for handling bezier curves and color conversions.\nNOTE: The files in the repo are not organized, which may lead to update issues."
|
||||
},
|
||||
{
|
||||
"author": "kijai",
|
||||
"title": "ComfyUI nodes for VEnhancer [WIP]",
|
||||
"reference": "https://github.com/kijai/ComfyUI-VEnhancer",
|
||||
"files": [
|
||||
"https://github.com/kijai/ComfyUI-VEnhancer"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "Original repo: [a/https://github.com/Vchitect/VEnhancer](https://github.com/Vchitect/VEnhancer)"
|
||||
},
|
||||
{
|
||||
"author": "jimstudt",
|
||||
"title": "Jim's ComfyUI Nodes [WIP]",
|
||||
"reference": "https://github.com/jimstudt/ComfyUI-Jims-Nodes",
|
||||
"files": [
|
||||
"https://github.com/jimstudt/ComfyUI-Jims-Nodes"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "Zoom and Enhance Nodes, Text Dictionary Nodes"
|
||||
},
|
||||
{
|
||||
"author": "hananbeer",
|
||||
"title": "node_dev - ComfyUI Node Development Helper",
|
||||
"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": "sebord",
|
||||
"title": "ComfyUI-LMCQ [WIP]",
|
||||
@@ -19,17 +593,7 @@
|
||||
"https://github.com/sebord/ComfyUI-LMCQ"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "ComfyUI small node toolkit, this toolkit is mainly to update some practical small nodes, to make a contribution to the comfyui ecosystem, PS: 'LMCQ' is the abbreviation of the team name"
|
||||
},
|
||||
{
|
||||
"author": "logtd",
|
||||
"title": "ComfyUI-Fluxtapoz [WIP]",
|
||||
"reference": "https://github.com/logtd/ComfyUI-Fluxtapoz",
|
||||
"files": [
|
||||
"https://github.com/logtd/ComfyUI-Fluxtapoz"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "A set of nodes for editing images using Flux in ComfyUI"
|
||||
"description": "ComfyUI small node toolkit, this toolkit is mainly to update some practical small nodes, to make a contribution to the comfyui ecosystem, PS: 'LMCQ' is the abbreviation of the team name\nNOTE: The files in the repo are not organized, which may lead to update issues."
|
||||
},
|
||||
{
|
||||
"author": "ChrisColeTech",
|
||||
@@ -101,26 +665,6 @@
|
||||
"install_type": "git-clone",
|
||||
"description": "A Video2Video framework for text2image models in ComfyUI. Supports SD1.5 and SDXL."
|
||||
},
|
||||
{
|
||||
"author": "kijai",
|
||||
"title": "ComfyUI-LLaVA-OneVision [WIP]",
|
||||
"reference": "https://github.com/kijai/ComfyUI-LLaVA-OneVision",
|
||||
"files": [
|
||||
"https://github.com/kijai/ComfyUI-LLaVA-OneVision"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "Original repo: [a/https://github.com/LLaVA-VL/LLaVA-NeXT](https://github.com/LLaVA-VL/LLaVA-NeXT)\nUnsure of the dependencies, the original was a huge list, but I didn't install single new one to my environment and it worked."
|
||||
},
|
||||
{
|
||||
"author": "TTPlanetPig",
|
||||
"title": "for comfyui image proprocessor",
|
||||
"reference": "https://github.com/TTPlanetPig/Comfyui_TTP_CN_Preprocessor",
|
||||
"files": [
|
||||
"https://github.com/TTPlanetPig/Comfyui_TTP_CN_Preprocessor"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "Adapt for Hunyuan now"
|
||||
},
|
||||
{
|
||||
"author": "IuvenisSapiens",
|
||||
"title": "ComfyUI_MiniCPM-V-2_6-int4",
|
||||
@@ -142,16 +686,6 @@
|
||||
"install_type": "git-clone",
|
||||
"description": "ComfyUI_EnvAutopsyAPI is a powerful debugging tool designed for ComfyUI that provides in-depth analysis of your environment and dependencies through an API interface. This tool allows you to inspect environment variables, pip packages, and dependency trees, making it easier to diagnose and resolve issues in your ComfyUI setup.[w/This tool may expose sensitive system information if used on a public server. MUST READ [a/THIS](https://github.com/chrisdreid/ComfyUI_EnvAutopsyAPI#%EF%B8%8F-warning-security-risk-%EF%B8%8F) before install.]"
|
||||
},
|
||||
{
|
||||
"author": "kijai",
|
||||
"title": "ComfyUI-CogVideoXWrapper [WIP]",
|
||||
"reference": "https://github.com/kijai/ComfyUI-CogVideoXWrapper",
|
||||
"files": [
|
||||
"https://github.com/kijai/ComfyUI-CogVideoXWrapper"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "Original repo: [a/https://github.com/THUDM/CogVideo](https://github.com/THUDM/CogVideo)\nNOTE:Currently requires diffusers with PR: [a/huggingface/diffusers#9082](https://github.com/huggingface/diffusers/pull/9082)"
|
||||
},
|
||||
{
|
||||
"author": "neuratech-ai",
|
||||
"title": "ComfyUI-MultiGPU",
|
||||
@@ -222,16 +756,6 @@
|
||||
"install_type": "git-clone",
|
||||
"description": "[a/SadTalker](https://github.com/OpenTalker/SadTalker) for ComfyUI"
|
||||
},
|
||||
{
|
||||
"author": "maepopi",
|
||||
"title": "Diffusers-in-ComfyUI",
|
||||
"reference": "https://github.com/maepopi/Diffusers-in-ComfyUI",
|
||||
"files": [
|
||||
"https://github.com/maepopi/Diffusers-in-ComfyUI"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "This is a custom node allowing the use of the diffusers pipeline into ComfyUI. Based on [a/Limitex/ComfyUI-Diffusers](https://github.com/Limitex/ComfyUI-Diffusers)"
|
||||
},
|
||||
{
|
||||
"author": "hotpizzatactics",
|
||||
"title": "ComfyUI-WaterMark-Detector",
|
||||
@@ -243,16 +767,6 @@
|
||||
"install_type": "git-clone",
|
||||
"description": "Nodes:CLAHE Enhancement, High Pass Filter, Edge Detection, Combine Enhancements, Adaptive Thresholding, Morphological Operations, Gray Color Enhancement, Improved Gray Color Enhancement, Texture Enhancement, Denoising Filter, Flexible Combine Enhancements."
|
||||
},
|
||||
{
|
||||
"author": "drmbt",
|
||||
"title": "comfyui-dreambait-nodes",
|
||||
"reference": "https://github.com/drmbt/comfyui-dreambait-nodes",
|
||||
"files": [
|
||||
"https://github.com/drmbt/comfyui-dreambait-nodes"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "Nodes:Aspect Pad Image For Outpainting"
|
||||
},
|
||||
{
|
||||
"author": "AIFSH",
|
||||
"title": "IMAGDressing-ComfyUI",
|
||||
@@ -450,16 +964,6 @@
|
||||
"install_type": "git-clone",
|
||||
"description": "Custom ComfyUI nodes to run [a/fal-ai/AuraSR](https://huggingface.co/fal-ai/AuraSR) model.[w/This node cannot be installed simultaneously with AIFSH/ComfyUI-AuraSR due to overlapping repository names.]"
|
||||
},
|
||||
{
|
||||
"author": "m-ai-studio",
|
||||
"title": "mai-prompt-progress",
|
||||
"reference": "https://github.com/m-ai-studio/mai-prompt-progress",
|
||||
"files": [
|
||||
"https://github.com/m-ai-studio/mai-prompt-progress"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "mai-prompt-progress"
|
||||
},
|
||||
{
|
||||
"author": "linhusyung",
|
||||
"title": "ComfyUI Build and Train Your Network [WIP]",
|
||||
@@ -840,17 +1344,6 @@
|
||||
"install_type": "git-clone",
|
||||
"description": "I've been working on the UX/UI of a timeline custom node system for ComfyUI over the past two weeks. The goal is to create a timeline similar to video/animation editing tools, without relying on traditional timeframe code. You can effortlessly add, delete, or rearrange rows, providing a streamlined user experience."
|
||||
},
|
||||
{
|
||||
"author": "jh-leon-kim",
|
||||
"title": "ComfyUI-JHK-utils",
|
||||
"id": "jhk",
|
||||
"reference": "https://github.com/jh-leon-kim/ComfyUI-JHK-utils",
|
||||
"files": [
|
||||
"https://github.com/jh-leon-kim/ComfyUI-JHK-utils"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "Nodes:JHK_Utils_LoadEmbed, JHK_Utils_string_merge, JHK_Utils_ImageRemoveBackground"
|
||||
},
|
||||
{
|
||||
"author": "StartHua",
|
||||
"title": "Comfyui_CXH_CRM",
|
||||
@@ -884,17 +1377,6 @@
|
||||
"install_type": "git-clone",
|
||||
"description": "Fixed AttentionCouple/NegPip(negative weights in prompts), more CFG++ samplers, etc."
|
||||
},
|
||||
{
|
||||
"author": "Scorpinaus",
|
||||
"title": "ComfyUI-DiffusersLoader",
|
||||
"id": "diffusersloader",
|
||||
"reference": "https://github.com/Scorpinaus/ComfyUI-DiffusersLoader",
|
||||
"files": [
|
||||
"https://github.com/Scorpinaus/ComfyUI-DiffusersLoader"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "The purpose of this package is to understand how loading of diffusers format checkpoints are done in comfyUI and to create a loader that works for SDXL."
|
||||
},
|
||||
{
|
||||
"author": "FoundD-oka",
|
||||
"title": "ComfyUI KISEKAE-OOTD",
|
||||
@@ -915,7 +1397,7 @@
|
||||
"https://github.com/bruce007lee/comfyui-tiny-utils"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "Nodes:FaceAlign, FaceAlignImageProcess, FaceAlignMaskProcess"
|
||||
"description": "Nodes:FaceAlign, FaceAlignImageProcess, FaceAlignMaskProcess, ImageFillColorByMask, CropImageByMask, LoadImageAdvance, ImageTransposeAdvance, ImageSAMMask"
|
||||
},
|
||||
{
|
||||
"author": "brycegoh",
|
||||
@@ -1109,16 +1591,6 @@
|
||||
"install_type": "git-clone",
|
||||
"description": "Dandy is a JavaScript bridge for ComfyUI. It includes everything you need to make JavaScript enabled extensions, or just load and code in little editor nodes right in ComfyUI.[w/This code can cause security issues because it allows for the execution of arbitrary JavaScript input.]"
|
||||
},
|
||||
{
|
||||
"author": "tachyon-beep",
|
||||
"title": "comfyui-simplefeed [UNSAFE]",
|
||||
"reference": "https://github.com/tachyon-beep/comfyui-simplefeed",
|
||||
"files": [
|
||||
"https://github.com/tachyon-beep/comfyui-simplefeed"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "A simple image feed for comfyUI which is easily configurable and easily extensible.\nUse the filter button to select which nodes write to the feed. Under settings, there are options that allow you: Position the feed. Set a max iamge count for the feed. Set oldest to newest or newest to oldest."
|
||||
},
|
||||
{
|
||||
"author": "shadowcz007",
|
||||
"title": "ComfyUI-PuLID [TEST]",
|
||||
@@ -1311,16 +1783,6 @@
|
||||
"install_type": "git-clone",
|
||||
"description": "Experimental method to use reference video to drive motion in generations without training in ComfyUI."
|
||||
},
|
||||
{
|
||||
"author": "logtd",
|
||||
"title": "ComfyUI-MotionThiefExperiment",
|
||||
"reference": "https://github.com/logtd/ComfyUI-MotionThiefExperiment",
|
||||
"files": [
|
||||
"https://github.com/logtd/ComfyUI-MotionThiefExperiment"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "Nodes:This is an experimental node pack to test using reference videos for their motion.\nIt isn't compatible with a lot of things as this is a hacky implementation for experiments only."
|
||||
},
|
||||
{
|
||||
"author": "hy134300",
|
||||
"title": "comfyui-hb-node",
|
||||
@@ -1731,16 +2193,6 @@
|
||||
"install_type": "git-clone",
|
||||
"description": "A simple custom node that unloads all models. Useful for developers or users who want to free some memory."
|
||||
},
|
||||
{
|
||||
"author": "AIGODLIKE",
|
||||
"title": "AIGODLIKE/ComfyUI-Model-Manager [WIP]",
|
||||
"reference": "https://github.com/AIGODLIKE/ComfyUI-Studio",
|
||||
"files": [
|
||||
"https://github.com/AIGODLIKE/ComfyUI-Studio"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "WIP"
|
||||
},
|
||||
{
|
||||
"author": "MrAdamBlack",
|
||||
"title": "CheckProgress [WIP]",
|
||||
@@ -1851,16 +2303,6 @@
|
||||
"install_type": "git-clone",
|
||||
"description": "Nodes: Node Jumper. Various quality of life testing nodes"
|
||||
},
|
||||
{
|
||||
"author": "ilovejohnwhite",
|
||||
"title": "TatToolkit",
|
||||
"reference": "https://github.com/ilovejohnwhite/UncleBillyGoncho",
|
||||
"files": [
|
||||
"https://github.com/ilovejohnwhite/UncleBillyGoncho"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "Nodes:UWU TTK Preprocessor, Pixel Perfect Resolution, Generation Resolution From Image, Generation Resolution From Latent, Enchance And Resize Hint Images, ..."
|
||||
},
|
||||
{
|
||||
"author": "IvanZhd",
|
||||
"title": "comfyui-codeformer [WIP]",
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -1,5 +1,25 @@
|
||||
{
|
||||
"custom_nodes": [
|
||||
{
|
||||
"author": "jags111",
|
||||
"title": "NyaamZ/ComfyUI-Long-CLIP",
|
||||
"reference": "https://github.com/NyaamZ/efficiency-nodes-ED",
|
||||
"files": [
|
||||
"https://github.com/NyaamZ/efficiency-nodes-ED"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "This forked repo supports efficiency-nodes-comfyui. Additional features."
|
||||
},
|
||||
{
|
||||
"author": "SeaArtLab",
|
||||
"title": "zer0int/ComfyUI-Long-CLIP",
|
||||
"reference": "https://github.com/zer0int/ComfyUI-Long-CLIP",
|
||||
"files": [
|
||||
"https://github.com/zer0int/ComfyUI-Long-CLIP"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "This forked repo supports FLUX.1 not only SD1.5, SDXL."
|
||||
},
|
||||
{
|
||||
"author": "meimeilook",
|
||||
"title": "ComfyUI_IPAdapter_plus.old [backward compatbility]",
|
||||
|
||||
@@ -11,6 +11,170 @@
|
||||
|
||||
|
||||
|
||||
{
|
||||
"author": "DannyStone1999",
|
||||
"title": "ComfyUI-Depth2Mask [REMOVED]",
|
||||
"reference": "https://github.com/DannyStone1999/ComfyUI-Depth2Mask",
|
||||
"files": [
|
||||
"https://github.com/DannyStone1999/ComfyUI-Depth2Mask/raw/main/Depth2Mask.py"
|
||||
],
|
||||
"install_type": "copy",
|
||||
"description": "Nodes:Depth2Mask"
|
||||
},
|
||||
{
|
||||
"author": "syaofox",
|
||||
"title": "ComfyUI_FoxTools [REMOVED]",
|
||||
"reference": "https://github.com/syaofox/ComfyUI_FoxTools",
|
||||
"files": [
|
||||
"https://github.com/syaofox/ComfyUI_FoxTools"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "Nodes:BatchImageFromList, Load Face Occlusion Model, Create Face Mask, Simple FaceAlign, Cacul FaceAlign, Gen Blurbord, Face Align, Face Rotate, ImageAdd, LoadImageList, SaveImage Plus, RegTextFind"
|
||||
},
|
||||
{
|
||||
"author": "AIFSH",
|
||||
"title": "SeedVC-ComfyUI [REMOVED]",
|
||||
"reference": "https://github.com/AIFSH/SeedVC-ComfyUI",
|
||||
"files": [
|
||||
"https://github.com/AIFSH/SeedVC-ComfyUI"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "a custom node for [a/seed-vc](https://github.com/Plachtaa/seed-vc)"
|
||||
},
|
||||
{
|
||||
"author": "jazhang00",
|
||||
"title": "ComfyUI Node for Slicedit [REMOVED]",
|
||||
"reference": "https://github.com/jazhang00/ComfyUI-Slicedit",
|
||||
"files": [
|
||||
"https://github.com/jazhang00/ComfyUI-Slicedit"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "Slicedit main page: [a/https://matankleiner.github.io/slicedit/](https://matankleiner.github.io/slicedit/). Use Slicedit with ComfyUI."
|
||||
},
|
||||
{
|
||||
"author": "rklaffehn",
|
||||
"title": "rk-comfy-nodes [REMOVED]",
|
||||
"id": "rknodes",
|
||||
"reference": "https://github.com/rklaffehn/rk-comfy-nodes",
|
||||
"files": [
|
||||
"https://github.com/rklaffehn/rk-comfy-nodes"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "Nodes: RK_CivitAIMetaChecker, RK_CivitAIAddHashes."
|
||||
},
|
||||
{
|
||||
"author": "Extraltodeus",
|
||||
"title": "CLIP-Token-Injection [REMOVED]",
|
||||
"reference": "https://github.com/Extraltodeus/CLIP-Token-Injection",
|
||||
"files": [
|
||||
"https://github.com/Extraltodeus/CLIP-Token-Injection"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "These nodes are to edit the text vectors of CLIP models, so to customize how the prompts will be interpreted. You could see it as either customisation, 'one token prompt' up to some limitation and a way to mess with how the text will be interpreted. The edited CLIP can then be saved, or as well the edited tokens themselves. The shared example weights does not contain any image-knowledge but the text vector of the words affected."
|
||||
},
|
||||
{
|
||||
"author": "openart",
|
||||
"title": "openart-comfyui-deploy [REMOVED]",
|
||||
"id": "openart-comfyui-deploy",
|
||||
"reference": "https://github.com/kulsisme/openart-comfyui-deploy",
|
||||
"files": [
|
||||
"https://github.com/kulsisme/openart-comfyui-deploy"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "NODES: External Boolean (ComfyUI Deploy), External Checkpoint (ComfyUI Deploy), External Image (ComfyUI Deploy), External Video (ComfyUI Deploy x VHS), OpenArt Text, Image Websocket Output (ComfyDeploy), ..."
|
||||
},
|
||||
{
|
||||
"author": "mittimi",
|
||||
"title": "ComfyUI_mittimiLoadPreset [DEPRECATED]",
|
||||
"id": "comfyui-mittimi-load-preset",
|
||||
"reference": "https://github.com/mittimi/ComfyUI_mittimiLoadPreset",
|
||||
"files": [
|
||||
"https://github.com/mittimi/ComfyUI_mittimiLoadPreset"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "The system selects and loads preset."
|
||||
},
|
||||
{
|
||||
"author": "jinljin",
|
||||
"title": "ComfyUI-Talking-Head [REMOVED]",
|
||||
"reference": "https://github.com/jinljin/ComfyUI-ElevenlabsAndDID-Combine",
|
||||
"files": [
|
||||
"https://github.com/jinljin/ComfyUI-ElevenlabsAndDID-Combine"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "ComfyUI-Talking-Head"
|
||||
},
|
||||
{
|
||||
"author": "yvann-ba",
|
||||
"title": "ComfyUI_Yvann-Nodes [REMOVED]",
|
||||
"reference": "https://github.com/yvann-ba/ComfyUI_Yvann-Nodes",
|
||||
"files": [
|
||||
"https://github.com/yvann-ba/ComfyUI_Yvann-Nodes"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "Audio reactivity nodes for AI animations 🔊 Analyze audio, extract drums and vocals. Generate reactive masks and weights. Create audio-driven visuals. Produce weight graphs and audio masks. Compatible with IPAdapter, ControlNets and more. Features audio scheduling and waveform analysis. Tutorials to use this pack: [a/Yvann Youtube](https://www.youtube.com/@yvann.mp4)"
|
||||
},
|
||||
{
|
||||
"author": "jh-leon-kim",
|
||||
"title": "ComfyUI-JHK-utils [REMOVED]",
|
||||
"id": "jhk",
|
||||
"reference": "https://github.com/jh-leon-kim/ComfyUI-JHK-utils",
|
||||
"files": [
|
||||
"https://github.com/jh-leon-kim/ComfyUI-JHK-utils"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "Nodes:JHK_Utils_LoadEmbed, JHK_Utils_string_merge, JHK_Utils_ImageRemoveBackground"
|
||||
},
|
||||
{
|
||||
"author": "ilovejohnwhite",
|
||||
"title": "TatToolkit [REMOVED]",
|
||||
"reference": "https://github.com/ilovejohnwhite/UncleBillyGoncho",
|
||||
"files": [
|
||||
"https://github.com/ilovejohnwhite/UncleBillyGoncho"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "Nodes:UWU TTK Preprocessor, Pixel Perfect Resolution, Generation Resolution From Image, Generation Resolution From Latent, Enchance And Resize Hint Images, ..."
|
||||
},
|
||||
{
|
||||
"author": "hzchet",
|
||||
"title": "ComfyUI_QueueGeneration [REMOVED]",
|
||||
"reference": "https://github.com/hzchet/ComfyUI_QueueGeneration",
|
||||
"files": [
|
||||
"https://github.com/hzchet/ComfyUI_QueueGeneration"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "NODES:Queue Img2Vid Generation"
|
||||
},
|
||||
{
|
||||
"author": "ader47",
|
||||
"title": "ComfyUI-MeshHamer [REMOVED]",
|
||||
"reference": "https://github.com/ader47/comfyui_meshhamer",
|
||||
"files": [
|
||||
"https://github.com/ader47/comfyui_meshhamer"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "Nodes:MeshHamer Hand Refiner. See also: [a/HaMeR: Hand Mesh Recovery](https://github.com/geopavlakos/hamer/tree/main)"
|
||||
},
|
||||
{
|
||||
"author": "SEkINVR",
|
||||
"title": "ComfyUI-Animator",
|
||||
"reference": "https://github.com/SEkINVR/ComfyUI-Animator [REMOVED]",
|
||||
"files": [
|
||||
"https://github.com/SEkINVR/ComfyUI-Animator"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "This custom node for ComfyUI provides full-body animation capabilities, including facial rigging, various lighting styles, and green screen output."
|
||||
},
|
||||
{
|
||||
"author": "m-ai-studio",
|
||||
"title": "mai-prompt-progress [REMOVED]",
|
||||
"reference": "https://github.com/m-ai-studio/mai-prompt-progress",
|
||||
"files": [
|
||||
"https://github.com/m-ai-studio/mai-prompt-progress"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "mai-prompt-progress"
|
||||
},
|
||||
{
|
||||
"author": "ZHO-ZHO-ZHO",
|
||||
"title": "ComfyUI-AnyText [NOT MAINTAINED]",
|
||||
|
||||
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
@@ -170,16 +170,6 @@
|
||||
"install_type": "git-clone",
|
||||
"description": "Nodes:Concatenate multiple text nodes."
|
||||
},
|
||||
{
|
||||
"author": "nilor-corp",
|
||||
"title": "nilor-nodes",
|
||||
"reference": "https://github.com/nilor-corp/nilor-nodes",
|
||||
"files": [
|
||||
"https://github.com/nilor-corp/nilor-nodes"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "Nodes:Nilor Floats, Nilor Int To List Of Bools, Nilor Bool From List Of Bools, Nilor Int From List Of Ints, Nilor List of Ints, Nilor Count Images In Directory"
|
||||
},
|
||||
{
|
||||
"author": "OuticNZ",
|
||||
"title": "ComfyUI-Simple-Of-Complex",
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
[project]
|
||||
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."
|
||||
version = "2.50.1"
|
||||
version = "2.51.4"
|
||||
license = { file = "LICENSE.txt" }
|
||||
dependencies = ["GitPython", "PyGithub", "matrix-client==0.4.0", "transformers", "huggingface-hub>0.20", "typer", "rich", "typing-extensions"]
|
||||
|
||||
|
||||
Reference in New Issue
Block a user