Merge remote-tracking branch 'upstream/main'

This commit is contained in:
kijai 2024-07-31 22:10:11 +03:00
commit 3c25c052e3
25 changed files with 9036 additions and 3259 deletions

View File

@ -5,6 +5,8 @@
![menu](misc/menu.jpg)
## NOTICE
* V2.48.1: Security policy has been changed. Downloads of models in the list are allowed under the 'normal' security level.
* V2.47: Security policy has been changed. The former 'normal' is now 'normal-', and 'normal' no longer allows high-risk features, even if your ComfyUI is local.
* V2.37 Show a ✅ mark to accounts that have been active on GitHub for more than six months.
* V2.33 Security policy is applied.
* V2.21 [cm-cli](docs/en/cm-cli.md) tool is added.
@ -350,6 +352,9 @@ When you run the `scan.sh` script:
* `strong`
* doesn't allow `high` and `middle` level risky feature
* `normal`
* doesn't allow `high` level risky feature
* `middle` level risky feature is available
* `normal-`
* doesn't allow `high` level risky feature if `--listen` is specified and not starts with `127.`
* `middle` level risky feature is available
* `weak`
@ -385,6 +390,9 @@ When you run the `scan.sh` script:
* https://github.com/andrewharp/ComfyUI-EasyNodes
* https://github.com/SimithWang/comfyui-renameImages
* https://github.com/Tcheko243/ComfyUI-Photographer-Alpha7-Nodes
* https://github.com/Limbicnation/ComfyUINodeToolbox
* https://github.com/chenpipi0807/pip_longsize
* https://github.com/APZmedia/ComfyUI-APZmedia-srtTools
## Roadmap

View File

@ -32,7 +32,7 @@ done
echo
echo CHECK2
find ~/.tmp/default -name "*.py" -print0 | xargs -0 grep "crypto"
find ~/.tmp/default -name "*.py" -print0 | xargs -0 grep -E "crypto|^_A="
echo
echo CHECK3

View File

@ -40,6 +40,7 @@ cm_global.pip_overrides = {}
if os.path.exists(pip_overrides_path):
with open(pip_overrides_path, 'r', encoding="UTF-8", errors="ignore") as json_file:
cm_global.pip_overrides = json.load(json_file)
cm_global.pip_overrides['numpy'] = 'numpy<2'
def check_comfyui_hash():

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

View File

@ -23,7 +23,7 @@ sys.path.append(glob_path)
import cm_global
from manager_util import *
version = [2, 44, 1]
version = [2, 48, 2]
version_str = f"V{version[0]}.{version[1]}" + (f'.{version[2]}' if len(version) > 2 else '')

View File

@ -48,11 +48,11 @@ is_local_mode = args.listen.startswith('127.') or args.listen.startswith('local.
def is_allowed_security_level(level):
if level == 'high':
if is_local_mode:
return core.get_config()['security_level'].lower() in ['weak', 'normal']
return core.get_config()['security_level'].lower() in ['weak', 'normal-']
else:
return core.get_config()['security_level'].lower() == 'weak'
elif level == 'middle':
return core.get_config()['security_level'].lower() in ['weak', 'normal']
return core.get_config()['security_level'].lower() in ['weak', 'normal', 'normal-']
else:
return True
@ -579,12 +579,6 @@ async def fetch_externalmodel_list(request):
return web.json_response(json_obj, content_type='application/json')
@PromptServer.instance.routes.get("/snapshot/get_current")
async def get_snapshot_list(request):
json_obj = core.get_current_snapshot()
return web.json_response(json_obj, content_type='application/json')
@PromptServer.instance.routes.get("/snapshot/getlist")
async def get_snapshot_list(request):
snapshots_directory = os.path.join(core.comfyui_manager_path, 'snapshots')
@ -710,13 +704,14 @@ def copy_install(files, js_path_name=None):
if url.endswith("/"):
url = url[:-1]
try:
filename = os.path.basename(url)
if url.endswith(".py"):
download_url(url, core.custom_nodes_path)
download_url(url, core.custom_nodes_path, filename)
else:
path = os.path.join(core.js_path, js_path_name) if js_path_name is not None else core.js_path
if not os.path.exists(path):
os.makedirs(path)
download_url(url, path)
download_url(url, path, filename)
except Exception as e:
print(f"Install(copy) error: {url} / {e}", file=sys.stderr)
@ -863,7 +858,7 @@ async def fix_custom_node(request):
@PromptServer.instance.routes.post("/customnode/install/git_url")
async def install_custom_node_git_url(request):
if not is_allowed_security_level('high'):
print(f"ERROR: To use this feature, you must set '--listen' to a local IP and set the security level to 'middle' or 'weak'. Please contact the administrator.")
print(f"ERROR: To use this feature, you must either set '--listen' to a local IP and set the security level to 'normal-' or lower, or set the security level to 'middle' or 'weak'. Please contact the administrator.")
return web.Response(status=403)
url = await request.text()
@ -879,7 +874,7 @@ async def install_custom_node_git_url(request):
@PromptServer.instance.routes.post("/customnode/install/pip")
async def install_custom_node_git_url(request):
if not is_allowed_security_level('high'):
print(f"ERROR: To use this feature, you must set '--listen' to a local IP and set the security level to 'middle' or 'weak'. Please contact the administrator.")
print(f"ERROR: To use this feature, you must either set '--listen' to a local IP and set the security level to 'normal-' or lower, or set the security level to 'middle' or 'weak'. Please contact the administrator.")
return web.Response(status=403)
packages = await request.text()
@ -990,6 +985,23 @@ async def install_model(request):
model_path = get_model_path(json_data)
if not is_allowed_security_level('middle'):
print(f"ERROR: To use this action, a security_level of `middle or below` is required. Please contact the administrator.")
return web.Response(status=403)
if not json_data['filename'].endswith('.safetensors') and not is_allowed_security_level('high'):
models_json = await core.get_data_by_mode('cache', 'model-list.json')
is_belongs_to_whitelist = False
for x in models_json['models']:
if x.get('url') == json_data['url']:
is_belongs_to_whitelist = True
break
if not is_belongs_to_whitelist:
print(f"ERROR: To use this feature, you must either set '--listen' to a local IP and set the security level to 'normal-' or lower, or set the security level to 'middle' or 'weak'. Please contact the administrator.")
return web.Response(status=403)
res = False
try:
@ -1037,7 +1049,7 @@ manager_terminal_hook = ManagerTerminalHook()
@PromptServer.instance.routes.get("/manager/terminal")
async def terminal_mode(request):
if not is_allowed_security_level('high'):
print(f"ERROR: To use this action, a security_level of `weak` is required. Please contact the administrator.")
print(f"ERROR: To use this feature, you must either set '--listen' to a local IP and set the security level to 'normal-' or lower, or set the security level to 'middle' or 'weak'. Please contact the administrator.")
return web.Response(status=403)
if "mode" in request.rel_url.query:

View File

@ -12,7 +12,7 @@ def security_check():
guide = {
"ComfyUI_LLMVISION": """
0.Remove ComfyUI\\custom_nodes\\ComfyUI_LLMVISION.
1.Remove pip packages: openai-1.16.3.dist-info, anthropic-0.21.4.dist-info, openai-1.30.2.dist-info, anthropic-0.26.1.dist-info, %LocalAppData%\\rundll64.exe
1.Remove pip packages: openai-1.16.3.dist-info, anthropic-0.21.4.dist-info, openai-1.30.2.dist-info, anthropic-0.21.5.dist-info, anthropic-0.26.1.dist-info, %LocalAppData%\\rundll64.exe
(For portable versions, it is recommended to reinstall. If you are using a venv, it is advised to recreate the venv.)
2.Remove these files in your system: lib/browser/admin.py, Cadmino.py, Fadmino.py, VISION-D.exe, BeamNG.UI.exe
3.Check your Windows registry for the key listed above and remove it.
@ -44,6 +44,18 @@ Detailed information: https://old.reddit.com/r/comfyui/comments/1dbls5n/psa_if_y
installed_pips = subprocess.check_output([sys.executable, '-m', "pip", "freeze"], text=True)
detected = set()
try:
anthropic_info = subprocess.check_output([sys.executable, '-m', "pip", "show", "anthropic"], text=True, stderr=subprocess.DEVNULL)
anthropic_reqs = [x for x in anthropic_info.split('\n') if x.startswith("Requires")][0].split(': ')[1]
if "pycrypto" in anthropic_reqs:
location = [x for x in anthropic_info.split('\n') if x.startswith("Location")][0].split(': ')[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:
pass
for k, v in node_blacklist.items():
if os.path.exists(os.path.join(custom_nodes_path, k)):
print(f"[SECURITY ALERT] custom node '{k}' is dangerous.")

View File

@ -20,6 +20,23 @@ import { SnapshotManager } from "./snapshot.js";
var docStyle = document.createElement('style');
docStyle.innerHTML = `
.comfy-toast {
position: fixed;
bottom: 20px;
left: 50%;
transform: translateX(-50%);
background-color: rgba(0, 0, 0, 0.7);
color: white;
padding: 10px 20px;
border-radius: 5px;
z-index: 1000;
transition: opacity 0.5s;
}
.comfy-toast-fadeout {
opacity: 0;
}
#cm-manager-dialog {
width: 1000px;
height: 520px;
@ -1288,18 +1305,64 @@ app.registerExtension({
separator.style.width = "100%";
menu.append(separator);
// new style Manager button
app.menu?.saveButton.element.after(new(await import("../../scripts/ui/components/button.js")).ComfyButton({
icon: "puzzle",
action: () => {
if(!manager_instance)
setManagerInstance(new ManagerMenuDialog());
manager_instance.show();
},
tooltip: "ComfyUI Manager",
content: "ComfyUI Manager",
classList: "comfyui-button comfyui-menu-mobile-collapse primary"
}).element);
try {
// new style Manager buttons
// unload models button into new style Manager button
let cmGroup = new (await import("../../scripts/ui/components/buttonGroup.js")).ComfyButtonGroup(
new(await import("../../scripts/ui/components/button.js")).ComfyButton({
icon: "puzzle",
action: () => {
if(!manager_instance)
setManagerInstance(new ManagerMenuDialog());
manager_instance.show();
},
tooltip: "ComfyUI Manager",
content: "Manager",
classList: "comfyui-button comfyui-menu-mobile-collapse primary"
}).element,
new(await import("../../scripts/ui/components/button.js")).ComfyButton({
icon: "vacuum-outline",
action: () => {
free_models();
},
tooltip: "Unload Models"
}).element,
new(await import("../../scripts/ui/components/button.js")).ComfyButton({
icon: "vacuum",
action: () => {
free_models(true);
},
tooltip: "Free model and node cache"
}).element,
new(await import("../../scripts/ui/components/button.js")).ComfyButton({
icon: "share",
action: () => {
if (share_option === 'openart') {
showOpenArtShareDialog();
return;
} else if (share_option === 'matrix' || share_option === 'comfyworkflows') {
showShareDialog(share_option);
return;
} else if (share_option === 'youml') {
showYouMLShareDialog();
return;
}
if(!ShareDialogChooser.instance) {
ShareDialogChooser.instance = new ShareDialogChooser();
}
ShareDialogChooser.instance.show();
},
tooltip: "Share"
}).element
);
app.menu?.settingsGroup.element.before(cmGroup.element);
}
catch(exception) {
console.log('ComfyUI is outdated. New style menu based features are disabled.');
}
// old style Manager button
const managerButton = document.createElement("button");
@ -1311,7 +1374,6 @@ app.registerExtension({
}
menu.append(managerButton);
const shareButton = document.createElement("button");
shareButton.id = "shareButton";
shareButton.textContent = "Share";

View File

@ -1,5 +1,6 @@
import { app } from "../../scripts/app.js";
import { api } from "../../scripts/api.js";
import { $el, ComfyDialog } from "../../scripts/ui.js";
export function show_message(msg) {
app.ui.dialog.show(msg);
@ -30,6 +31,15 @@ export function setManagerInstance(obj) {
manager_instance = obj;
}
export function showToast(message, duration = 3000) {
const toast = $el("div.comfy-toast", {textContent: message});
document.body.appendChild(toast);
setTimeout(() => {
toast.classList.add("comfy-toast-fadeout");
setTimeout(() => toast.remove(), 500);
}, duration);
}
function isValidURL(url) {
if(url.includes('&'))
return false;
@ -106,18 +116,34 @@ export async function install_via_git_url(url, manager_dialog) {
}
}
export async function free_models() {
let res = await api.fetchApi(`/free`, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: '{"unload_models": true}'
});
export async function free_models(free_execution_cache) {
try {
let mode = "";
if(free_execution_cache) {
mode = '{"unload_models": true, "free_memory": true}';
}
else {
mode = '{"unload_models": true}';
}
if(res.status == 200) {
show_message('Models have been unloaded.')
}
else {
show_message('Unloading of models failed.<BR><BR>Installed ComfyUI may be an outdated version.')
let res = await api.fetchApi(`/free`, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: mode
});
if (res.status == 200) {
if(free_execution_cache) {
showToast("'Models' and 'Execution Cache' have been cleared.", 3000);
}
else {
showToast("Models' have been unloaded.", 3000);
}
} else {
showToast('Unloading of models failed. Installed ComfyUI may be an outdated version.', 5000);
}
} catch (error) {
showToast('An error occurred while trying to unload models.', 5000);
}
}

View File

@ -105,6 +105,10 @@ function node_info_copy(src, dest, connect_both) {
// copy input connections
for(let i in src.inputs) {
let input = src.inputs[i];
if (input.widget !== undefined) {
const destWidget = dest.widgets.find(x => x.name === input.widget.name);
dest.convertWidgetToInput(destWidget);
}
if(input.link) {
let link = app.graph.links[input.link];
let src_node = app.graph.getNodeById(link.origin_id);
@ -138,6 +142,10 @@ function node_info_copy(src, dest, connect_both) {
}
}
dest.color = src.color;
dest.bgcolor = src.bgcolor;
dest.size = src.size;
app.graph.afterChange();
}
@ -202,7 +210,7 @@ app.registerExtension({
let new_node = LiteGraph.createNode(nodeType.comfyClass);
new_node.pos = [this.pos[0], this.pos[1]];
app.canvas.graph.add(new_node, false);
node_info_copy(this, new_node);
node_info_copy(this, new_node, true);
app.canvas.graph.remove(this);
},
});

View File

@ -2378,6 +2378,17 @@
"url": "https://huggingface.co/TencentARC/PhotoMaker/resolve/main/photomaker-v1.bin",
"size": "934.1MB"
},
{
"name": "photomaker-v2.bin",
"type": "photomaker",
"base": "SDXL",
"save_path": "photomaker",
"description": "PhotoMaker model. This model is compatible with SDXL.",
"reference": "https://huggingface.co/TencentARC/PhotoMaker-V2",
"filename": "photomaker-v2.bin",
"url": "https://huggingface.co/TencentARC/PhotoMaker-V2/resolve/main/photomaker-v2.bin",
"size": "1.8GB"
},
{
"name": "1k3d68.onnx",
"type": "insightface",
@ -2620,28 +2631,6 @@
"url": "https://huggingface.co/ShilongLiu/GroundingDINO/raw/main/GroundingDINO_SwinT_OGC.cfg.py",
"size": "1.01KB"
},
{
"name": "ViT-H SAM model",
"type": "sam",
"base": "SAM",
"save_path": "sams",
"description": "Segmenty Anything SAM model (ViT-H)",
"reference": "https://github.com/facebookresearch/segment-anything#model-checkpoints",
"filename": "sam_vit_h_4b8939.pth",
"url": "https://dl.fbaipublicfiles.com/segment_anything/sam_vit_h_4b8939.pth",
"size": "2.56GB"
},
{
"name": "ViT-L SAM model",
"type": "sam",
"base": "SAM",
"save_path": "sams",
"description": "Segmenty Anything SAM model (ViT-L)",
"reference": "https://github.com/facebookresearch/segment-anything#model-checkpoints",
"filename": "sam_vit_l_0b3195.pth",
"url": "https://dl.fbaipublicfiles.com/segment_anything/sam_vit_l_0b3195.pth",
"size": "1.25GB"
},
{
"name": "MobileSAM",
"type": "sam",
@ -2787,8 +2776,8 @@
},
{
"name": "Zero123 3D object Model",
"type": "Zero123",
"base": "Zero123",
"type": "zero123",
"base": "zero123",
"save_path": "checkpoints/zero123",
"description": "model that been trained on 10M+ 3D objects from Objaverse-XL, used for generated rotated CamView",
"reference": "https://objaverse.allenai.org/docs/zero123-xl/",
@ -2798,8 +2787,8 @@
},
{
"name": "Zero123 3D object Model",
"type": "Zero123",
"base": "Zero123",
"type": "zero123",
"base": "zero123",
"save_path": "checkpoints/zero123",
"description": "Stable Zero123 is a model for view-conditioned image generation based on [a/Zero123](https://github.com/cvlab-columbia/zero123).",
"reference": "https://huggingface.co/stabilityai/stable-zero123",
@ -2809,8 +2798,8 @@
},
{
"name": "Zero123 3D object Model",
"type": "Zero123",
"base": "Zero123",
"type": "zero123",
"base": "zero123",
"save_path": "checkpoints/zero123",
"description": "Zero123 original checkpoints in 105000 steps.",
"reference": "https://huggingface.co/cvlab/zero123-weights",
@ -2820,8 +2809,8 @@
},
{
"name": "Zero123 3D object Model",
"type": "Zero123",
"base": "Zero123",
"type": "zero123",
"base": "zero123",
"save_path": "checkpoints/zero123",
"description": "Zero123 original checkpoints in 165000 steps.",
"reference": "https://huggingface.co/cvlab/zero123-weights",
@ -3038,6 +3027,29 @@
"url": "https://huggingface.co/Doubiiu/ToonCrafter/resolve/main/model.ckpt",
"size": "10.5GB"
},
{
"name": "xinsir/ControlNet++: All-in-one ControlNet",
"type": "controlnet",
"base": "SDXL",
"save_path": "controlnet/SDXL/controlnet-union-sdxl-1.0",
"description": "All-in-one ControlNet for image generations and editing!",
"reference": "https://huggingface.co/xinsir/controlnet-union-sdxl-1.0",
"filename": "diffusion_pytorch_model.safetensors",
"url": "https://huggingface.co/xinsir/controlnet-union-sdxl-1.0/resolve/main/diffusion_pytorch_model.safetensors",
"size": "2.50GB"
},
{
"name": "xinsir/ControlNet++: All-in-one ControlNet (ProMax model)",
"type": "controlnet",
"base": "SDXL",
"save_path": "controlnet/SDXL/controlnet-union-sdxl-1.0",
"description": "All-in-one ControlNet for image generations and editing! (ProMax model)",
"reference": "https://huggingface.co/xinsir/controlnet-union-sdxl-1.0",
"filename": "iffusion_pytorch_model_promax.safetensors",
"url": "https://huggingface.co/xinsir/controlnet-union-sdxl-1.0/resolve/main/diffusion_pytorch_model_promax.safetensors",
"size": "2.50GB"
},
{
"name": "xinsir/Controlnet-Scribble-Sdxl-1.0",
"type": "controlnet",
@ -3347,6 +3359,40 @@
"filename": "PixArt-Sigma-XL-2-1024-MS.pth",
"url": "https://huggingface.co/PixArt-alpha/PixArt-Sigma/resolve/main/PixArt-Sigma-XL-2-1024-MS.pth",
"size": "2.47GB"
},
{
"name": "hunyuan_dit_1.2.safetensors",
"type": "checkpoint",
"base": "Hunyuan-DiT",
"save_path": "checkpoints/hunyuan_dit_comfyui",
"description": "Different versions of HunyuanDIT packaged for ComfyUI use.",
"reference": "https://huggingface.co/comfyanonymous/hunyuan_dit_comfyui",
"filename": "hunyuan_dit_1.2.safetensors",
"url": "https://huggingface.co/comfyanonymous/hunyuan_dit_comfyui/resolve/main/hunyuan_dit_1.2.safetensors",
"size": "8.24GB"
},
{
"name": "hunyuan_dit_1.1.safetensors",
"type": "checkpoint",
"base": "Hunyuan-DiT",
"save_path": "checkpoints/hunyuan_dit_comfyui",
"description": "Different versions of HunyuanDIT packaged for ComfyUI use.",
"reference": "https://huggingface.co/comfyanonymous/hunyuan_dit_comfyui",
"filename": "hunyuan_dit_1.1.safetensors",
"url": "https://huggingface.co/comfyanonymous/hunyuan_dit_comfyui/resolve/main/hunyuan_dit_1.1.safetensors",
"size": "8.24GB"
},
{
"name": "hunyuan_dit_1.0.safetensors",
"type": "checkpoint",
"base": "Hunyuan-DiT",
"save_path": "checkpoints/hunyuan_dit_comfyui",
"description": "Different versions of HunyuanDIT packaged for ComfyUI use.",
"reference": "https://huggingface.co/comfyanonymous/hunyuan_dit_comfyui",
"filename": "hunyuan_dit_1.0.safetensors",
"url": "https://huggingface.co/comfyanonymous/hunyuan_dit_comfyui/resolve/main/hunyuan_dit_1.0.safetensors",
"size": "8.24GB"
}
]
}
}

View File

@ -9,7 +9,265 @@
"description": "If you see this message, your ComfyUI-Manager is outdated.\nDev channel provides only the list of the developing nodes. If you want to find the complete node list, please go to the Default channel."
},
{
"author": "kijai",
"title": "ComfyUI-segment-anything-2 [WIP]",
"reference": "https://github.com/kijai/ComfyUI-segment-anything-2",
"files": [
"https://github.com/kijai/ComfyUI-segment-anything-2"
],
"install_type": "git-clone",
"description": "For testing only currently."
},
{
"author": "leoleelxh",
"title": "ComfyUI-MidjourneyNode-leoleexh",
"reference": "https://github.com/leoleelxh/ComfyUI-MidjourneyNode-leoleexh",
"files": [
"https://github.com/leoleelxh/ComfyUI-MidjourneyNode-leoleexh"
],
"install_type": "git-clone",
"description": "This node allows ComfyUI to easily integrate with Midjourney, utilizing the ultra-high quality of Midjourney and the powerful control of SD to provide more convenient capabilities for AIGC.\nNOTE: This node relies on the midjourney proxy project and requires API deployment in advance. For detailed installation, please refer to the instructions of the project. https://github.com/novicezk/midjourney-proxy"
},
{
"author": "teward",
"title": "Comfy-Sentry",
"reference": "https://github.com/teward/Comfy-Sentry",
"files": [
"https://github.com/teward/Comfy-Sentry"
],
"install_type": "git-clone",
"description": "This extension is actually nodeless, but provides a ComfyUI integration to a Sentry error reporting backend. This way, you can have full code and error reporting, performance monitoring and metrics, etc. in your ComfyUI interface reported to a Sentry backend."
},
{
"author": "hy134300",
"title": "ComfyUI-PhotoMaker-V2",
"reference": "https://github.com/hy134300/ComfyUI-PhotoMaker-V2",
"files": [
"https://github.com/hy134300/ComfyUI-PhotoMaker-V2"
],
"install_type": "git-clone",
"description": "Nodes for PhotoMaker-V2"
},
{
"author": "kijai",
"title": "ComfyUI-FollowYourEmojiWrapper [WIP]",
"reference": "https://github.com/kijai/ComfyUI-FollowYourEmojiWrapper",
"files": [
"https://github.com/kijai/ComfyUI-FollowYourEmojiWrapper"
],
"install_type": "git-clone",
"description": "Original repo: [a/https://github.com/mayuelala/FollowYourEmoji](https://github.com/mayuelala/FollowYourEmoji)"
},
{
"author": "haomole",
"title": "Comfyui-SadTalker",
"reference": "https://github.com/haomole/Comfyui-SadTalker",
"files": [
"https://github.com/haomole/Comfyui-SadTalker"
],
"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",
"id": "watermark-detector",
"reference": "https://github.com/hotpizzatactics/ComfyUI-WaterMark-Detector",
"files": [
"https://github.com/hotpizzatactics/ComfyUI-WaterMark-Detector"
],
"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",
"id": "imagdressing",
"reference": "https://github.com/AIFSH/IMAGDressing-ComfyUI",
"files": [
"https://github.com/AIFSH/IMAGDressing-ComfyUI"
],
"install_type": "git-clone",
"description": "Nodes:IMAGDressingNode, TextNode"
},
{
"author": "BetaDoggo",
"title": "ComfyUI-LogicGates",
"id": "logicgates",
"reference": "https://github.com/BetaDoggo/ComfyUI-LogicGates",
"files": [
"https://github.com/BetaDoggo/ComfyUI-LogicGates"
],
"install_type": "git-clone",
"description": "Binary Nodes, Byte Nodes, ..."
},
{
"author": "shadowcz007",
"title": "comfyui-hydit",
"reference": "https://github.com/shadowcz007/comfyui-hydit-lowvram",
"files": [
"https://github.com/shadowcz007/comfyui-hydit-lowvram"
],
"install_type": "git-clone",
"description": "HunYuan Diffusers Nodes"
},
{
"author": "adityathiru",
"title": "ComfyUI LLMs [WIP]",
"reference": "https://github.com/adityathiru/ComfyUI-LLMs",
"files": [
"https://github.com/adityathiru/ComfyUI-LLMs"
],
"install_type": "git-clone",
"description": "Goal: To enable folks to rapidly build complex workflows with LLMs\nNOTE:☠️ This is experimental and not recommended to use in a production environment (yet!)"
},
{
"author": "walterFeng",
"title": "ComfyUI-Image-Utils",
"reference": "https://github.com/walterFeng/ComfyUI-Image-Utils",
"files":[
"https://github.com/walterFeng/ComfyUI-Image-Utils"
],
"install_type":"git-clone",
"description":"Nodes: Calculate Image Brightness"
},
{
"author": "zml-ai",
"title": "comfyui-hydit",
"reference": "https://github.com/zml-ai/comfyui-hydit",
"files":[
"https://github.com/zml-ai/comfyui-hydit"
],
"install_type":"git-clone",
"description":"The ComfyUI code is under review in the official repository. Meanwhile, a temporary version is available below for immediate community use. We welcome users to try our workflow and appreciate any inquiries or suggestions."
},
{
"author": "JichaoLiang",
"title": "Immortal_comfyUI",
"reference": "https://github.com/JichaoLiang/Immortal_comfyUI",
"files":[
"https://github.com/JichaoLiang/Immortal_comfyUI"
],
"install_type":"git-clone",
"description":"Nodes: NewNode, AppendNode, MergeNode, SetProperties, SaveToDirectory, ..."
},
{
"author": "melMass",
"title": "ComfyUI-Lygia",
"id": "lygia",
"reference": "https://github.com/melMass/ComfyUI-Lygia",
"files": [
"https://github.com/melMass/ComfyUI-Lygia"
],
"install_type": "git-clone",
"description": "NODES: LygiaProgram, LygiaUniforms"
},
{
"author": "SpaceWarpStudio",
"title": "ComfyUI_Remaker_FaceSwap",
"reference": "https://github.com/SpaceWarpStudio/ComfyUI_Remaker_FaceSwap",
"files": [
"https://github.com/SpaceWarpStudio/ComfyUI_Remaker_FaceSwap"
],
"install_type": "git-clone",
"description": "Nodes:Remaker Face Swap"
},
{
"author": "VisionExp",
"title": "ve_custom_comfyui_nodes",
"reference": "https://github.com/VisionExp/ve_custom_comfyui_nodes",
"files": [
"https://github.com/VisionExp/ve_custom_comfyui_nodes"
],
"install_type": "git-clone",
"description": "Nodes:LoadImgFromInputUrl"
},
{
"author": "LevelPixel",
"title": "ComfyUI-LevelPixel",
"id": "levelpixel",
"reference": "https://github.com/LevelPixel/ComfyUI-LevelPixel",
"files": [
"https://github.com/LevelPixel/ComfyUI-LevelPixel"
],
"install_type": "git-clone",
"description": "Nodes:Model Unloader, LLM Optional Memory Free Advanced"
},
{
"author": "StartHua",
"title": "Comfyui_CXH_CRM",
"id": "csdmt-cxh",
"reference": "https://github.com/StartHua/Comfyui_CSDMT_CXH",
"files": [
"https://github.com/StartHua/Comfyui_CSDMT_CXH"
],
"install_type": "git-clone",
"description": "Node:CSD_Makeup\nNOTE:You need to download [a/pre-trained model file](https://github.com/StartHua/Comfyui_CSDMT_CXH)."
},
{
"author": "ZHO-ZHO-ZHO",
"title": "ComfyUI-AuraSR-ZHO",
"reference": "https://github.com/ZHO-ZHO-ZHO/ComfyUI-AuraSR-ZHO",
"files": [
"https://github.com/ZHO-ZHO-ZHO/ComfyUI-AuraSR-ZHO"
],
"install_type": "git-clone",
"description": "AuraSR in ComfyUI for img & video\n[w/If the custom_nodes path is not under ComfyUI, be careful as it may not install properly.]"
},
{
"author": "tom-doerr",
"title": "DSPy Nodes [WIP]",
"reference": "https://github.com/tom-doerr/dspy_nodes",
"files": [
"https://github.com/tom-doerr/dspy_nodes"
],
"install_type": "git-clone",
"description": "This is an attempt to make all DSPy features available in ComfyUI. Using an UI to devlop DSPy programs should be way faster since it makes it easier to see what is happening and allows to quickly iterate on the DSPy program structure."
},
{
"author": "Grant-CP",
"title": "ComfyUI-LivePortraitKJ-MPS",
"reference": "https://github.com/Grant-CP/ComfyUI-LivePortraitKJ-MPS",
"files": [
"https://github.com/Grant-CP/ComfyUI-LivePortraitKJ-MPS"
],
"install_type": "git-clone",
"description": "If you wish to incorporate these changes into your repo, feel free to open an issue and ask. The commits should be pretty clear, and I also label almost all changes with #HACK so a full text search will work too.\nPlease let me know if you decide to incorporate any of these changes into your LivePortrait implementation so I can direct people to you repository. I do not intend to maintain this repo.\nSome operations are simply not supported on MPS and I didn't rewrite them. Most of my changes are just to .cuda calls and that sort of thing. Many operations are still done on CPU, so don't expect awesome performance."
},
{
"author": "justUmen",
"title": "Bjornulf_custom_nodes [WIP]",
"reference": "https://github.com/justUmen/Bjornulf_custom_nodes",
"files": [
"https://github.com/justUmen/Bjornulf_custom_nodes"
],
"install_type": "git-clone",
"description": "Nodes: ollamaLoader, ShowText, ShowInt, LoopTexts, LoopFloat, LoopInteger, ..."
},
{
"author": "thderoo",
"title": "_topfun_s_nodes",
@ -62,17 +320,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": "mingqizhang",
"title": "ComfyUI_AEMatter_zmq",
"id": "aematter",
"reference": "https://github.com/mingqizhang/ComfyUI_AEMatter_zmq",
"files": [
"https://github.com/mingqizhang/ComfyUI_AEMatter_zmq"
],
"install_type": "git-clone",
"description": "Nodes:AEMatter_ModelLoader, Create_Trimap, AEMatter_Apply, Mask_Transfor, Replace_Background, Gaussian_Filter, Guide_Filter, Improved_Aplha_Composite"
},
{
"author": "m-ai-studio",
"title": "mai-prompt-progress",
@ -116,17 +363,6 @@
"install_type": "git-clone",
"description": "A simple node to load image from local path or http url. You can find this node from 'image' category."
},
{
"author": "mingqizhang",
"title": "ComfyUI_AEMatter_zmq",
"id": "aematter-zmq",
"reference": "https://github.com/mingqizhang/ComfyUI_AEMatter_zmq",
"files": [
"https://github.com/mingqizhang/ComfyUI_AEMatter_zmq"
],
"install_type": "git-clone",
"description": "Nodes:AEMatter_ModelLoader, Create_Trimap, AEMatter_Apply, Mask_Transfor, Replace_Background, Gaussian_Filter, Guide_Filter"
},
{
"author": "majorsauce",
"title": "comfyui_indieTools [WIP]",
@ -160,16 +396,6 @@
"install_type": "copy",
"description": "Some additional audio utilites for use on top of Sample Diffusion ComfyUI Extension"
},
{
"author": "mingqizhang",
"title": "ComfyUI_AEMatter_zmq",
"reference": "https://github.com/mingqizhang/ComfyUI_AEMatter_zmq",
"files": [
"https://github.com/mingqizhang/ComfyUI_AEMatter_zmq"
],
"install_type": "git-clone",
"description": "Nodes:AEMatter_ModelLoader, Create_Trimap, AEMatter_Apply, Mask_Transfor, Replace_Background, Gaussian_Filter, Guide_Filter."
},
{
"author": "nat-chan",
"title": "comfyui-paint",
@ -397,17 +623,6 @@
"install_type": "git-clone",
"description": "Nodes: Clip Text Encode (Shinsplat), Clip Text Encode SDXL (Shinsplat), Lora Loader (Shinsplat).\n[w/This extension poses a risk of executing arbitrary commands through workflow execution. Please be cautious.]"
},
{
"author": "NitramDom",
"title": "ComfyUI_FacialFlip",
"id": "facialflip",
"reference": "https://github.com/NitramDom/ComfyUI_FacialFlip",
"files": [
"https://github.com/NitramDom/ComfyUI_FacialFlip"
],
"install_type": "git-clone",
"description": "Nodes:Swapper"
},
{
"author": "hy134300",
"title": "comfyui-hydit",
@ -429,6 +644,17 @@
"install_type": "git-clone",
"description": "Nodes:BetterImageDimensions, SDXLDimensions, PureRatio"
},
{
"author": "endman100",
"title": "ComfyUI-augmentation",
"id": "augmentation",
"reference": "https://github.com/endman100/ComfyUI-augmentation",
"files": [
"https://github.com/endman100/ComfyUI-augmentation"
],
"install_type": "git-clone",
"description": "Nodes:RamdomFlipImage (endman100)"
},
{
"author": "endman100",
"title": "ComfyUI Nodes: SaveConditioning and LoadConditioning",
@ -520,13 +746,13 @@
{
"author": "pamparamm",
"title": "ComfyUI-ppm",
"id": "ppm",
"id": "comfyui-ppm",
"reference": "https://github.com/pamparamm/ComfyUI-ppm",
"files": [
"https://github.com/pamparamm/ComfyUI-ppm"
],
"install_type": "git-clone",
"description": "Nodes:Empty Latent Image (Aspect Ratio), Token Counter, Random Prompt Generator, StableCascade_AutoCompLatent, CLIPTextEncode, CLIPMicroConditioning, CLIPNegPip"
"description": "Fixed AttentionCouple/NegPip(negative weights in prompts), more CFG++ samplers, etc."
},
{
"author": "Scorpinaus",
@ -561,17 +787,6 @@
"install_type": "git-clone",
"description": "Nodes:FaceAlign, FaceAlignImageProcess, FaceAlignMaskProcess"
},
{
"author": "zmwv823",
"title": "ComfyUI-AnyText [UNSTABLE]",
"id": "anytext",
"reference": "https://github.com/zmwv823/ComfyUI-AnyText",
"files": [
"https://github.com/zmwv823/ComfyUI-AnyText"
],
"install_type": "git-clone",
"description": "Unofficial Simple And Rough Implementation Of [a/AnyText](https://github.com/tyxsspa/AnyText)"
},
{
"author": "brycegoh",
"title": "brycegoh/comfyui-custom-nodes",
@ -1066,16 +1281,6 @@
"install_type": "git-clone",
"description": "This is a PoC port of [a/Google's Prompt-to-Prompt](https://github.com/google/prompt-to-prompt/) to ComfyUI. It isn't feature complete. But it's good enough for evaluating if prompt-to-prompt is of any good."
},
{
"author": "MushroomFleet",
"title": "DJZ-Nodes",
"reference": "https://github.com/MushroomFleet/DJZ-Nodes",
"files": [
"https://github.com/MushroomFleet/DJZ-Nodes"
],
"install_type": "git-clone",
"description": "Nodes:Aspect Size. Drift Johnsons Custom nodes for ComfyUI"
},
{
"author": "stavsap",
"title": "ComfyUI Ollama [WIP]",

View File

@ -1,4 +1,12 @@
{
"https://gitea.com/NotEvilGirl/cfgpp": [
[
"CFG++"
],
{
"title_aux": "comfyui_CfgPlusPlus [WIP]"
}
],
"https://github.com/17Retoucher/ComfyUI_Fooocus": [
[
"BasicScheduler",
@ -167,6 +175,44 @@
"title_aux": "ComfyUI_AC_FUNV8Beta1"
}
],
"https://github.com/AIFSH/ComfyUI-OpenDIT": [
[
"DITModelLoader",
"DITPromptNode",
"DiffVAELoader",
"LattePipeLineNode",
"OpenSoraNode",
"OpenSoraPlanPipeLineNode",
"PABConfigNode",
"PreViewVideo",
"SchedulerLoader",
"T5EncoderLoader",
"T5TokenizerLoader"
],
{
"title_aux": "ComfyUI-OpenDIT [WIP]"
}
],
"https://github.com/AIFSH/ComfyUI-ViViD": [
[
"LoadImagePath",
"LoadVideo",
"PreViewVideo",
"ViViD_Node"
],
{
"title_aux": "ComfyUI-ViViD"
}
],
"https://github.com/AIFSH/IMAGDressing-ComfyUI": [
[
"IMAGDressingNode",
"TextNode"
],
{
"title_aux": "IMAGDressing-ComfyUI"
}
],
"https://github.com/ALatentPlace/ComfyUI_yanc": [
[
"> Clear Text",
@ -174,6 +220,7 @@
"> Get Mean Color",
"> Int",
"> Int to Text",
"> Layer Weights (for IPAMS)",
"> Light Source Mask",
"> Load Image",
"> Load Image From Folder",
@ -199,7 +246,11 @@
"https://github.com/AllenEdgarPoe/ComfyUI-Xorbis-nodes": [
[
"Add Human Styler",
"Save Log Info"
"Convert Monochrome",
"RT4KSR Loader",
"RandomPromptStyler",
"Save Log Info",
"Upscale RT4SR"
],
{
"title_aux": "ComfyUI-Xorbis-nodes"
@ -242,6 +293,27 @@
"title_aux": "execution-inversion-demo-comfyui"
}
],
"https://github.com/BetaDoggo/ComfyUI-LogicGates": [
[
"AND",
"BitMemory",
"BoolToString",
"ByteMemory",
"ByteToBits",
"CreateByte",
"NAND",
"NOR",
"NOT",
"ON",
"OR",
"SWITCH",
"XNOR",
"XOR"
],
{
"title_aux": "ComfyUI-LogicGates"
}
],
"https://github.com/BlueDangerX/ComfyUI-BDXNodes": [
[
"BDXTestInt",
@ -330,6 +402,22 @@
"title_aux": "Conditioning-token-experiments-for-ComfyUI"
}
],
"https://github.com/Fucci-Mateo/ComfyUI-Airtable": [
[
"Push pose to Airtable"
],
{
"title_aux": "ComfyUI-Airtable [WIP]"
}
],
"https://github.com/GeekyGhost/ComfyUI-GeekyRemB/raw/SketchUITest/GeekyRembv2.py": [
[
"GeekyRemB"
],
{
"title_aux": "ComfyUI-GeekyRemB v2"
}
],
"https://github.com/GentlemanHu/ComfyUI-Notifier": [
[
"GentlemanHu_Notifier"
@ -340,22 +428,29 @@
],
"https://github.com/GraftingRayman/ComfyUI_GR_PromptSelector": [
[
"GR Background Remover REMBG",
"GR Checkered Board",
"GR Counter",
"GR Flip Tile Random Inverted",
"GR Flip Tile Random Red Ring",
"GR Image Details Displayer",
"GR Image Details Saver",
"GR Image Paste",
"GR Image Paste With Mask",
"GR Image Resize",
"GR Image Resize Methods",
"GR Image Size",
"GR Image/Depth Mask",
"GR Mask Create",
"GR Mask Create Random",
"GR Mask Create Random Multi",
"GR Mask Resize",
"GR Multi Mask Create",
"GR Onomatopoeia",
"GR Prompt HUB",
"GR Prompt Selector",
"GR Prompt Selector Multi",
"GR Scroller",
"GR Stack Image",
"GR Text Overlay",
"GR Tile and Border Image",
@ -365,6 +460,15 @@
"title_aux": "ComfyUI-GR"
}
],
"https://github.com/Grant-CP/ComfyUI-LivePortraitKJ-MPS": [
[
"DownloadAndLoadLivePortraitModels",
"LivePortraitProcess"
],
{
"title_aux": "ComfyUI-LivePortraitKJ-MPS"
}
],
"https://github.com/GrindHouse66/ComfyUI-GH_Tools": [
[
"GHImg_Sizer",
@ -390,6 +494,28 @@
"title_aux": "comfyui-terminal-command [UNSAFE]"
}
],
"https://github.com/JichaoLiang/Immortal_comfyUI": [
[
"AppendNode",
"ApplyVoiceConversion",
"ImAppendVideoNode",
"ImApplyWav2lip",
"ImDumpEntity",
"LoadPackage",
"MergeNode",
"NewNode",
"SaveImagePath",
"SaveToDirectory",
"SetEvent",
"SetNodeMapping",
"SetProperties",
"batchNodes",
"redirectToNode"
],
{
"title_aux": "Immortal_comfyUI"
}
],
"https://github.com/Jiffies-64/ComfyUI-SaveImagePlus": [
[
"SaveImagePlus"
@ -406,6 +532,16 @@
"title_aux": "comfy-consistency-vae"
}
],
"https://github.com/JosefKuchar/ComfyUI-AdvancedTiling": [
[
"AdvancedTiling",
"AdvancedTilingSettings",
"AdvancedTilingVAEDecode"
],
{
"title_aux": "ComfyUI-AdvancedTiling [WIP]"
}
],
"https://github.com/LZpenguin/ComfyUI-Text": [
[
"Add_text_by_mask"
@ -422,6 +558,21 @@
"title_aux": "ComfyUI-ModelUnloader"
}
],
"https://github.com/LevelPixel/ComfyUI-LevelPixel": [
[
"Hard Model Unloader \ud83c\udf38",
"HardModelUnloader",
"LLM Optional Memory Free Advanced \ud83c\udf38",
"LLMOptionalMemoryFreeAdvanced",
"Model Unloader \ud83c\udf38",
"ModelUnloader",
"Soft Model Unloader \ud83c\udf38",
"SoftModelUnloader"
],
{
"title_aux": "ComfyUI-LevelPixel"
}
],
"https://github.com/LotzF/ComfyUI-Simple-Chat-GPT-completion": [
[
"ChatGPTCompletion"
@ -530,14 +681,6 @@
"title_aux": "ComfyUI-Waveform-Extensions"
}
],
"https://github.com/NitramDom/ComfyUI_FacialFlip": [
[
"Swapper"
],
{
"title_aux": "ComfyUI_FacialFlip"
}
],
"https://github.com/PluMaZero/ComfyUI-SpaceFlower": [
[
"SpaceFlower_HangulPrompt",
@ -626,18 +769,36 @@
"Python - More Inputs (Shinsplat)",
"String Interpolated (Shinsplat)",
"Sum Wrap (Shinsplat)",
"Tensor Toys (Shinsplat)",
"Test Node (Shinsplat)",
"Text To Tokens (Shinsplat)",
"Text To Tokens SD3 (Shinsplat)",
"Variables (Shinsplat)"
],
{
"author": "Shinsplat",
"description": "",
"nickname": "shinsplat",
"title": "ComfyUI-Shinsplat",
"title": "Shinsplat",
"title_aux": "ComfyUI-Shinsplat [UNSAFE]"
}
],
"https://github.com/SpaceWarpStudio/ComfyUI_Remaker_FaceSwap": [
[
"RemakerFaceSwap"
],
{
"title_aux": "ComfyUI_Remaker_FaceSwap"
}
],
"https://github.com/StartHua/Comfyui_CSDMT_CXH": [
[
"CSD"
],
{
"title_aux": "Comfyui_CXH_CRM"
}
],
"https://github.com/StartHua/Comfyui_CXH_CRM": [
[
"CRM"
@ -664,6 +825,16 @@
"title_aux": "ComfyUI Batch Input Node"
}
],
"https://github.com/VisionExp/ve_custom_comfyui_nodes": [
[
"LoadImgFromInputUrl",
"assets/Asset Image",
"render3d/Render Node"
],
{
"title_aux": "ve_custom_comfyui_nodes"
}
],
"https://github.com/WSJUSA/Comfyui-StableSR": [
[
"ColorFix",
@ -696,6 +867,16 @@
"title_aux": "ComfyUI-AnyText [WIP]"
}
],
"https://github.com/ZHO-ZHO-ZHO/ComfyUI-AuraSR-ZHO": [
[
"AuraSR_Lterative_Zho",
"AuraSR_ModelLoader_Zho",
"AuraSR_Zho"
],
{
"title_aux": "ComfyUI-AuraSR-ZHO"
}
],
"https://github.com/ZHO-ZHO-ZHO/ComfyUI-PuLID-ZHO": [
[
"PuLID_Zho"
@ -704,6 +885,28 @@
"title_aux": "ComfyUI-PuLID-ZHO [WIP]"
}
],
"https://github.com/adityathiru/ComfyUI-LLMs": [
[
"Model",
"Model V2",
"Predict",
"Predict V2",
"Prompt Builder",
"Text Field"
],
{
"title_aux": "ComfyUI LLMs [WIP]"
}
],
"https://github.com/alexisrolland/ComfyUI-AuraSR": [
[
"RunAuraSR",
"downloadAuraSR"
],
{
"title_aux": "alexisrolland/ComfyUI-AuraSR"
}
],
"https://github.com/alt-key-project/comfyui-dream-video-batches": [
[
"Blended Transition [DVB]",
@ -829,7 +1032,9 @@
"FaceAlign",
"FaceAlignImageProcess",
"FaceAlignMaskProcess",
"ImageFillColorByMask"
"ImageFillColorByMask",
"ImageTransposeAdvance",
"LoadImageAdvance"
],
{
"title_aux": "comfyui-tiny-utils"
@ -874,9 +1079,7 @@
[
"Create Parallax Video",
"Layer Shifter for Parallax Outpainting",
"Load Most Recent Image in Folder",
"Load Parallax Frame",
"Load Random Image-Pose Pair",
"Parallax Config",
"Save Parallax Frame",
"Shrink and Pad for Outpainting"
@ -899,6 +1102,7 @@
"AlignYourStepsScheduler",
"BasicGuider",
"BasicScheduler",
"BetaSamplingScheduler",
"CFGGuider",
"CLIPAttentionMultiply",
"CLIPLoader",
@ -929,6 +1133,7 @@
"ConditioningZeroOut",
"ControlNetApply",
"ControlNetApplyAdvanced",
"ControlNetApplySD3",
"ControlNetLoader",
"CropMask",
"DiffControlNetLoader",
@ -1009,6 +1214,7 @@
"ModelMergeSDXL",
"ModelMergeSimple",
"ModelMergeSubtract",
"ModelSamplingAuraFlow",
"ModelSamplingContinuousEDM",
"ModelSamplingContinuousV",
"ModelSamplingDiscrete",
@ -1023,6 +1229,7 @@
"PhotoMakerLoader",
"PolyexponentialScheduler",
"PorterDuffImageComposite",
"PreviewAudio",
"PreviewImage",
"RandomNoise",
"RebatchImages",
@ -1041,6 +1248,7 @@
"SamplerDPMPP_3M_SDE",
"SamplerDPMPP_SDE",
"SamplerEulerAncestral",
"SamplerEulerAncestralCFGPP",
"SamplerEulerCFGpp",
"SamplerLCMUpscale",
"SamplerLMS",
@ -1052,6 +1260,7 @@
"SaveLatent",
"SelfAttentionGuidance",
"SetLatentNoiseMask",
"SetUnionControlNetType",
"SolidMask",
"SplitImageWithAlpha",
"SplitSigmas",
@ -1161,6 +1370,14 @@
"title_aux": "ComfyUI_WcpD_Utility_Kit"
}
],
"https://github.com/drmbt/comfyui-dreambait-nodes": [
[
"Aspect Pad Image For Outpainting"
],
{
"title_aux": "comfyui-dreambait-nodes"
}
],
"https://github.com/eigenpunk/ComfyUI-audio": [
[
"ApplyVoiceFixer",
@ -1222,6 +1439,14 @@
"title_aux": "ComfyUI Nodes: SaveConditioning and LoadConditioning"
}
],
"https://github.com/endman100/ComfyUI-augmentation": [
[
"RamdomFlipImage (endman100)"
],
{
"title_aux": "ComfyUI-augmentation"
}
],
"https://github.com/ericbeyer/guidance_interval": [
[
"Guidance Interval"
@ -1287,6 +1512,18 @@
"title_aux": "ComfyUI-InstantStyle"
}
],
"https://github.com/haomole/Comfyui-SadTalker": [
[
"LoadRefVideo",
"SadTalker",
"ShowAudio",
"ShowText",
"ShowVideo"
],
{
"title_aux": "Comfyui-SadTalker"
}
],
"https://github.com/horidream/ComfyUI-Horidream": [
[
"PassThroughWithSound"
@ -1295,6 +1532,27 @@
"title_aux": "ComfyUI-Horidream"
}
],
"https://github.com/hotpizzatactics/ComfyUI-WaterMark-Detector": [
[
"AdaptiveThresholding",
"AdvancedWatermarkEnhancement",
"AdvancedWaveletWatermarkEnhancement",
"CLAHEEnhancement",
"CombineEnhancements",
"ComprehensiveImageEnhancement",
"DenoisingFilter",
"EdgeDetection",
"FlexibleCombineEnhancements",
"HighPassFilter",
"ImprovedGrayColorEnhancement",
"MorphologicalOperations",
"TextureEnhancement",
"WatermarkEnhancement"
],
{
"title_aux": "ComfyUI-WaterMark-Detector"
}
],
"https://github.com/houdinii/comfy-magick": [
[
"AdaptiveBlur",
@ -1346,6 +1604,22 @@
"title_aux": "ComfyUI_Easy_Nodes_hui"
}
],
"https://github.com/hy134300/ComfyUI-PhotoMaker-V2": [
[
"BaseModel_Loader_fromhub",
"BaseModel_Loader_local",
"LoRALoader",
"NEW_PhotoMaker_Generation",
"PhotoMakerAdapter_Loader_fromhub",
"PhotoMakerAdapter_Loader_local",
"PhotoMaker_Generation",
"Prompt_Styler",
"Ref_Image_Preprocessing"
],
{
"title_aux": "ComfyUI-PhotoMaker-V2"
}
],
"https://github.com/hy134300/comfyui-hb-node": [
[
"generate story",
@ -1416,7 +1690,7 @@
],
"https://github.com/jimmm-ai/TimeUi-a-ComfyUi-Timeline-Node": [
[
"utils/TimelineUI"
"jimmm.ai.TimelineUI"
],
{
"title_aux": "TimeUi a ComfyUI Timeline Node System [WIP]"
@ -1529,6 +1803,41 @@
"title_aux": "ComfyUI-Unique3D [WIP]"
}
],
"https://github.com/justUmen/Bjornulf_custom_nodes": [
[
"Bjornulf_CombineTexts",
"Bjornulf_CustomStringType",
"Bjornulf_LoopBasicBatch",
"Bjornulf_LoopCombosSamplersSchedulers",
"Bjornulf_LoopFloat",
"Bjornulf_LoopInteger",
"Bjornulf_LoopSamplers",
"Bjornulf_LoopSchedulers",
"Bjornulf_LoopTexts",
"Bjornulf_RandomModelClipVae",
"Bjornulf_RandomTexts",
"Bjornulf_ResizeImage",
"Bjornulf_SaveApiImage",
"Bjornulf_SaveImagePath",
"Bjornulf_SaveImageToFolder",
"Bjornulf_SaveText",
"Bjornulf_SaveTmpImage",
"Bjornulf_ShowFloat",
"Bjornulf_ShowInt",
"Bjornulf_ShowText",
"Bjornulf_VideoPingPong",
"Bjornulf_WriteImageAllInOne",
"Bjornulf_WriteImageCharacter",
"Bjornulf_WriteImageCharacters",
"Bjornulf_WriteImageEnvironment",
"Bjornulf_WriteText",
"Bjornulf_imgs2vid",
"Bjornulf_ollamaLoader"
],
{
"title_aux": "Bjornulf_custom_nodes [WIP]"
}
],
"https://github.com/kadirnar/ComfyUI-Adapter": [
[
"GarmentSegLoader"
@ -1601,7 +1910,7 @@
"DownloadAndLoadDiffSynthExVideoSVD"
],
{
"title_aux": "ComfyUI DiffSynth wrapper nodes [WIP]"
"title_aux": "ComfyUI DiffSynth wrapper nodes"
}
],
"https://github.com/kijai/ComfyUI-DiffusersSD3Wrapper": [
@ -1613,6 +1922,18 @@
"title_aux": "ComfyUI-DiffusersSD3Wrapper"
}
],
"https://github.com/kijai/ComfyUI-FollowYourEmojiWrapper": [
[
"DownloadAndLoadFYEModel",
"FYECLIPEncode",
"FYEMediaPipe",
"FYESampler",
"FYESamplerLong"
],
{
"title_aux": "ComfyUI-FollowYourEmojiWrapper [WIP]"
}
],
"https://github.com/komojini/ComfyUI_Prompt_Template_CustomNodes/raw/main/prompt_with_template.py": [
[
"ObjectPromptWithTemplate",
@ -1649,6 +1970,36 @@
"title_aux": "ssd-1b-comfyui"
}
],
"https://github.com/leoleelxh/ComfyUI-MidjourneyNode-leoleexh": [
[
"MidjourneyGenerateNode",
"MidjourneyUpscaleNode"
],
{
"title_aux": "ComfyUI-MidjourneyNode-leoleexh"
}
],
"https://github.com/linhusyung/comfyui-Build-and-train-your-network": [
[
"Conv_layer",
"Normalization_layer",
"activation_function",
"create_dataset",
"create_intput",
"create_model",
"create_training_task",
"forward_test",
"linear_layer",
"pooling_layer",
"pre_train_layer",
"res_connect",
"show_dimensions",
"view_layer"
],
{
"title_aux": "ComfyUI Build and Train Your Network [WIP]"
}
],
"https://github.com/logtd/ComfyUI-MotionThiefExperiment": [
[
"ApplyRefMotionNode",
@ -1686,6 +2037,30 @@
"title_aux": "ComfyUI-Workflow-Component [WIP]"
}
],
"https://github.com/maepopi/Diffusers-in-ComfyUI": [
[
"BLoRALoader",
"CreatePipeline",
"ImageInference",
"LoRALoader",
"MakeCanny"
],
{
"title_aux": "Diffusers-in-ComfyUI"
}
],
"https://github.com/majorsauce/comfyui_indieTools": [
[
"IndCutByMask",
"IndLocalScale",
"IndPastImage",
"IndSolidify",
"IndYoloDetector"
],
{
"title_aux": "comfyui_indieTools [WIP]"
}
],
"https://github.com/marcueberall/ComfyUI-BuildPath": [
[
"Build Path Adv"
@ -1698,11 +2073,12 @@
[
"marduk191_5_text_string",
"marduk191_5way_text_switch",
"marduk191_s_random_latent",
"marduk191_workflow_settings"
],
{
"author": "\u02f6marduk191",
"description": "A node to set workflow settings.",
"description": "marduk191s nodes.",
"nickname": "marduk191 workflow settings",
"title": "marduk191 workflow settings",
"title_aux": "comfyui-marnodes"
@ -1725,33 +2101,31 @@
"title_aux": "ComfyUI mashb1t nodes"
}
],
"https://github.com/melMass/ComfyUI-Lygia": [
[
"LygiaProgram",
"LygiaUniforms"
],
{
"title_aux": "ComfyUI-Lygia"
}
],
"https://github.com/mikeymcfish/FishTools": [
[
"AnaglyphCreator",
"AnaglyphCreatorPro",
"Deptherize",
"LaserCutterFull"
"LaserCutterFull",
"ShadowMap"
],
{
"author": "Fish",
"description": "This extension provides tools for generating laser cutter ready files",
"description": "This extension provides tools for generating laser cutter ready files and other fun stuff",
"nickname": "FishTools",
"title": "FishTools",
"title_aux": "LaserCutterFull and Deptherize Nodes"
}
],
"https://github.com/mingqizhang/ComfyUI_AEMatter_zmq": [
[
"AEMatter_Apply",
"AEMatter_ModelLoader",
"Create_Trimap",
"Gaussian_Filter",
"Guide_Filter",
"Mask_Transfor",
"Replace_Background"
],
{
"title_aux": "ComfyUI_AEMatter_zmq"
}
],
"https://github.com/mut-ex/comfyui-gligengui-node": [
[
"GLIGEN_GUI"
@ -1826,12 +2200,14 @@
"https://github.com/pamparamm/ComfyUI-ppm": [
[
"AttentionCouplePPM",
"CFGPPSamplerSelect",
"CLIPMicroConditioning",
"CLIPNegPip",
"CLIPTextEncodeBREAK",
"CLIPTokenCounter",
"EmptyLatentImageAR",
"EmptyLatentImageARAdvanced",
"Guidance Limiter",
"LatentToMaskBB",
"LatentToWidthHeight",
"RandomPromptGenerator",
@ -1879,40 +2255,7 @@
],
"https://github.com/redhottensors/ComfyUI-ODE": [
[
"Blended Transition [DVB]",
"Calculation [DVB]",
"Create Frame Set [DVB]",
"Divide [DVB]",
"Fade From Black [DVB]",
"Fade To Black [DVB]",
"Float Input [DVB]",
"For Each Done [DVB]",
"For Each Filename [DVB]",
"Frame Set Append [DVB]",
"Frame Set Frame Dimensions Scaled [DVB]",
"Frame Set Index Offset [DVB]",
"Frame Set Merger [DVB]",
"Frame Set Reindex [DVB]",
"Frame Set Repeat [DVB]",
"Frame Set Reverse [DVB]",
"Frame Set Split Beginning [DVB]",
"Frame Set Split End [DVB]",
"Frame Set Splitter [DVB]",
"Generate Inbetween Frames [DVB]",
"Int Input [DVB]",
"Linear Camera Pan [DVB]",
"Linear Camera Roll [DVB]",
"Linear Camera Zoom [DVB]",
"Load Image From Path [DVB]",
"Multiply [DVB]",
"ODESamplerSelect",
"Sine Camera Pan [DVB]",
"Sine Camera Roll [DVB]",
"Sine Camera Zoom [DVB]",
"String Input [DVB]",
"Text Input [DVB]",
"Trace Memory Allocation [DVB]",
"Unwrap Frame Set [DVB]"
"ODESamplerSelect"
],
{
"author": "RedHotTensors",
@ -1950,6 +2293,23 @@
"title_aux": "comfyui-CLIPSeg"
}
],
"https://github.com/shadowcz007/comfyui-hydit-lowvram": [
[
"DiffusersCLIPLoader",
"DiffusersCheckpointLoader",
"DiffusersClipTextEncode",
"DiffusersControlNetLoader",
"DiffusersLoraLoader",
"DiffusersModelMakeup",
"DiffusersPipelineLoader",
"DiffusersSampler",
"DiffusersSchedulerLoader",
"DiffusersVAELoader"
],
{
"title_aux": "comfyui-hydit"
}
],
"https://github.com/shadowcz007/comfyui-musicgen": [
[
"AudioPlay",
@ -2028,6 +2388,15 @@
"title_aux": "comfyui_psd [WIP]"
}
],
"https://github.com/thderoo/ComfyUI-_topfun_s_nodes": [
[
"ConditioningPerturbation",
"TextGenerator"
],
{
"title_aux": "_topfun_s_nodes"
}
],
"https://github.com/tjorbogarden/my-useful-comfyui-custom-nodes": [
[
"ImageSizer",
@ -2037,6 +2406,32 @@
"title_aux": "my-useful-comfyui-custom-nodes"
}
],
"https://github.com/tom-doerr/dspy_nodes": [
[
"Accepted Examples Viewer",
"Dataset Reader",
"DynamicOptionsNode",
"Few Shot CoT",
"Few Shot Control",
"Few Shot Review",
"FewShotReview",
"FewShotReviewServer",
"Model",
"Predict",
"Print Hello World",
"Show Text",
"ShowText|pysssss",
"String List Viewer",
"String Splitter",
"StringReverser",
"StringSplitter",
"Text Field",
"Text Output"
],
{
"title_aux": "DSPy Nodes [WIP]"
}
],
"https://github.com/tracerstar/comfyui-p5js-node": [
[
"HYPE_P5JSImage"
@ -2098,6 +2493,29 @@
"title_aux": "ComfyUI-clip-interrogator [WIP]"
}
],
"https://github.com/walterFeng/ComfyUI-Image-Utils": [
[
"Calculate Image Brightness",
"Calculate Image Contrast",
"Calculate Image Saturation",
"Color Similarity Checker",
"Displace Filter",
"Load Image (By Url)"
],
{
"title_aux": "ComfyUI-Image-Utils"
}
],
"https://github.com/willblaschko/ComfyUI-Unload-Models": [
[
"DeleteAnyObject",
"UnloadAllModels",
"UnloadOneModel"
],
{
"title_aux": "ComfyUI-Unload-Models"
}
],
"https://github.com/wormley/comfyui-wormley-nodes": [
[
"CheckpointVAELoaderSimpleText",

File diff suppressed because it is too large Load Diff

View File

@ -10,6 +10,70 @@
},
{
"author": "neverbiasu",
"title": "ComfyUI ImageCaptioner [REMOVED]",
"reference": "https://github.com/neverbiasu/ComfyUI-ImageCaptioner",
"files": [
"https://github.com/neverbiasu/ComfyUI-ImageCaptioner"
],
"install_type": "git-clone",
"description": "A ComfyUI extension for generating captions for your images. Runs on your own system, no external services used, no filter."
},
{
"author": "mingqizhang",
"title": "ComfyUI_InSPyResNet_zmq [REMOVED]",
"id": "inspy",
"reference": "https://github.com/mingqizhang/ComfyUI_InSPyResNet_zmq",
"files": [
"https://github.com/mingqizhang/ComfyUI_InSPyResNet_zmq"
],
"install_type": "git-clone",
"description": "Nodes:INSPY removebg ModelLoader, INSPY RMBG"
},
{
"author": "mingqizhang",
"title": "ComfyUI_AEMatter_zmq [REMOVED]",
"id": "aematter",
"reference": "https://github.com/mingqizhang/ComfyUI_AEMatter_zmq",
"files": [
"https://github.com/mingqizhang/ComfyUI_AEMatter_zmq"
],
"install_type": "git-clone",
"description": "Nodes:AEMatter_ModelLoader, Create_Trimap, AEMatter_Apply, Mask_Transfor, Replace_Background, Gaussian_Filter, Guide_Filter, Improved_Aplha_Composite"
},
{
"author": "bradsec",
"title": "ComfyUI_StringTools [REMOVED]",
"id": "stringtools",
"reference": "https://github.com/bradsec/ComfyUI_StringTools",
"files": [
"https://github.com/bradsec/ComfyUI_StringTools"
],
"install_type": "git-clone",
"description": "Some simple string tools to modify text and strings in ComfyUI."
},
{
"author": "zmwv823",
"title": "ComfyUI-AnyText [DEPRECATED]",
"id": "anytext",
"reference": "https://github.com/zmwv823/ComfyUI-AnyText",
"files": [
"https://github.com/zmwv823/ComfyUI-AnyText"
],
"install_type": "git-clone",
"description": "Unofficial Simple And Rough Implementation Of [a/AnyText](https://github.com/tyxsspa/AnyText)"
},
{
"author": "Millyarde",
"title": "Pomfy - Photoshop and ComfyUI 2-way sync [REMOVED]",
"reference": "https://github.com/Millyarde/Pomfy",
"files": [
"https://github.com/Millyarde/Pomfy"
],
"install_type": "git-clone",
"description": "Photoshop custom nodes inside of ComfyUi, send and get data via Photoshop UXP plugin for cross platform support"
},
{
"author": "turkyden",
"title": "ComfyUI-Sticker [REMOVED]",
@ -430,7 +494,7 @@
"https://github.com/laksjdjf/IPAdapter-ComfyUI"
],
"install_type": "git-clone",
"description": "This custom nodes provides loader of the IP-Adapter model.[w/NOTE: To use this extension node, you need to download the [a/ip-adapter_sd15.bin](https://huggingface.co/h94/IP-Adapter/resolve/main/models/ip-adapter_sd15.bin) file and place it in the %%**custom_nodes/IPAdapter-ComfyUI/models**%% directory. Additionally, you need to download the 'Clip vision model' from the 'Install models' menu as well.]<BR>NOTE: Use ComfyUI_IPAdapter_plus instead of this."
"description": "This custom nodes provides loader of the IP-Adapter model.[w/NOTE: To use this extension node, you need to download the [a/ip-adapter_sd15.bin](https://huggingface.co/h94/IP-Adapter/resolve/main/models/ip-adapter_sd15.bin) file and place it in the %%**custom_nodes/IPAdapter-ComfyUI/models**%% directory. Additionally, you need to download the 'Clip vision model' from the 'Install models' menu as well.]\nNOTE: Use ComfyUI_IPAdapter_plus instead of this."
},
{
"author": "RockOfFire",

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,5 +1,74 @@
{
"models": [
{
"name": "photomaker-v2.bin",
"type": "photomaker",
"base": "SDXL",
"save_path": "photomaker",
"description": "PhotoMaker model. This model is compatible with SDXL.",
"reference": "https://huggingface.co/TencentARC/PhotoMaker-V2",
"filename": "photomaker-v2.bin",
"url": "https://huggingface.co/TencentARC/PhotoMaker-V2/resolve/main/photomaker-v2.bin",
"size": "1.8GB"
},
{
"name": "hunyuan_dit_1.2.safetensors",
"type": "checkpoint",
"base": "Hunyuan-DiT",
"save_path": "checkpoints/hunyuan_dit_comfyui",
"description": "Different versions of HunyuanDIT packaged for ComfyUI use.",
"reference": "https://huggingface.co/comfyanonymous/hunyuan_dit_comfyui",
"filename": "hunyuan_dit_1.2.safetensors",
"url": "https://huggingface.co/comfyanonymous/hunyuan_dit_comfyui/resolve/main/hunyuan_dit_1.2.safetensors",
"size": "8.24GB"
},
{
"name": "hunyuan_dit_1.1.safetensors",
"type": "checkpoint",
"base": "Hunyuan-DiT",
"save_path": "checkpoints/hunyuan_dit_comfyui",
"description": "Different versions of HunyuanDIT packaged for ComfyUI use.",
"reference": "https://huggingface.co/comfyanonymous/hunyuan_dit_comfyui",
"filename": "hunyuan_dit_1.1.safetensors",
"url": "https://huggingface.co/comfyanonymous/hunyuan_dit_comfyui/resolve/main/hunyuan_dit_1.1.safetensors",
"size": "8.24GB"
},
{
"name": "hunyuan_dit_1.0.safetensors",
"type": "checkpoint",
"base": "Hunyuan-DiT",
"save_path": "checkpoints/hunyuan_dit_comfyui",
"description": "Different versions of HunyuanDIT packaged for ComfyUI use.",
"reference": "https://huggingface.co/comfyanonymous/hunyuan_dit_comfyui",
"filename": "hunyuan_dit_1.0.safetensors",
"url": "https://huggingface.co/comfyanonymous/hunyuan_dit_comfyui/resolve/main/hunyuan_dit_1.0.safetensors",
"size": "8.24GB"
},
{
"name": "xinsir/ControlNet++: All-in-one ControlNet (ProMax model)",
"type": "controlnet",
"base": "SDXL",
"save_path": "controlnet/SDXL/controlnet-union-sdxl-1.0",
"description": "All-in-one ControlNet for image generations and editing! (ProMax model)",
"reference": "https://huggingface.co/xinsir/controlnet-union-sdxl-1.0",
"filename": "iffusion_pytorch_model_promax.safetensors",
"url": "https://huggingface.co/xinsir/controlnet-union-sdxl-1.0/resolve/main/diffusion_pytorch_model_promax.safetensors",
"size": "2.50GB"
},
{
"name": "xinsir/ControlNet++: All-in-one ControlNet",
"type": "controlnet",
"base": "SDXL",
"save_path": "controlnet/SDXL/controlnet-union-sdxl-1.0",
"description": "All-in-one ControlNet for image generations and editing!",
"reference": "https://huggingface.co/xinsir/controlnet-union-sdxl-1.0",
"filename": "diffusion_pytorch_model.safetensors",
"url": "https://huggingface.co/xinsir/controlnet-union-sdxl-1.0/resolve/main/diffusion_pytorch_model.safetensors",
"size": "2.50GB"
},
{
"name": "InstantX/SD3-Controlnet-Canny",
"type": "controlnet",
@ -622,77 +691,6 @@
"reference": "https://huggingface.co/h94/IP-Adapter",
"filename": "ip-adapter_sd15_light_v11.bin",
"url": "https://huggingface.co/h94/IP-Adapter/resolve/main/models/ip-adapter_sd15_light_v11.bin"
},
{
"name": "Kijai/SUPIR-v0F_fp16.safetensors (pruned)",
"type": "checkpoints",
"base": "SUPIR",
"save_path": "checkpoints/SUPIR",
"description": "SUPIR checkpoint model",
"reference": "https://huggingface.co/Kijai/SUPIR_pruned/tree/main",
"filename": "SUPIR-v0F_fp16.safetensors",
"url": "https://huggingface.co/Kijai/SUPIR_pruned/resolve/main/SUPIR-v0F_fp16.safetensors"
},
{
"name": "Kijai/SUPIR-v0Q_fp16.safetensors (pruned)",
"type": "checkpoints",
"base": "SUPIR",
"save_path": "checkpoints/SUPIR",
"description": "SUPIR checkpoint model",
"reference": "https://huggingface.co/Kijai/SUPIR_pruned/tree/main",
"filename": "SUPIR-v0Q_fp16.safetensors",
"url": "https://huggingface.co/Kijai/SUPIR_pruned/resolve/main/SUPIR-v0Q_fp16.safetensors"
},
{
"name": "SUPIR-v0F.ckpt",
"type": "checkpoints",
"base": "SUPIR",
"save_path": "checkpoints/SUPIR",
"description": "SUPIR checkpoint model",
"reference": "https://huggingface.co/camenduru/SUPIR/tree/main",
"filename": "SUPIR-v0F.ckpt",
"url": "https://huggingface.co/camenduru/SUPIR/resolve/main/SUPIR-v0F.ckpt"
},
{
"name": "SUPIR-v0Q.ckpt",
"type": "checkpoints",
"base": "SUPIR",
"save_path": "checkpoints/SUPIR",
"description": "SUPIR checkpoint model",
"reference": "https://huggingface.co/camenduru/SUPIR/tree/main",
"filename": "SUPIR-v0Q.ckpt",
"url": "https://huggingface.co/camenduru/SUPIR/resolve/main/SUPIR-v0Q.ckpt"
},{
"name": "Depth-FM-v1 fp16 safetensors",
"type": "checkpoints",
"base": "Depth-FM",
"save_path": "checkpoints/depthfm",
"description": "Depth-FM monocular depth estimation model",
"reference": "https://huggingface.co/Kijai/depth-fm-pruned",
"filename": "depthfm-v1_fp16.safetensors",
"url": "https://huggingface.co/Kijai/depth-fm-pruned/resolve/main/depthfm-v1_fp16.safetensors"
},
{
"name": "Depth-FM-v1 fp32 safetensors",
"type": "checkpoints",
"base": "Depth-FM",
"save_path": "checkpoints/depthfm",
"description": "Depth-FM monocular depth estimation model",
"reference": "https://huggingface.co/Kijai/depth-fm-pruned",
"filename": "depthfm-v1_fp32.safetensors",
"url": "https://huggingface.co/Kijai/depth-fm-pruned/resolve/main/depthfm-v1_fp32.safetensors"
},
{
"name": "monster-labs - Controlnet QR Code Monster v1 For SDXL",
"type": "controlnet",
"base": "SDXL",
"save_path": "default",
"description": "monster-labs - Controlnet QR Code Monster v1 For SDXL",
"reference": "https://huggingface.co/monster-labs/control_v1p_sdxl_qrcode_monster",
"filename": "control_v1p_sdxl_qrcode_monster.safetensors",
"url": "https://huggingface.co/monster-labs/control_v1p_sdxl_qrcode_monster/resolve/main/diffusion_pytorch_model.safetensors"
}
]
}

View File

@ -229,6 +229,37 @@
],
"install_type": "git-clone",
"description": "Custom node for ComfyUI Select the image size from the preset and select Vertical and Horizontal to output Width and Height."
},
{
"author": "boricuapab",
"title": "ComfyUI_BoricuapabWFNodePack",
"reference": "https://github.com/boricuapab/ComfyUI_BoricuapabWFNodePack",
"files": [
"https://github.com/boricuapab/ComfyUI_BoricuapabWFNodePack"
],
"install_type": "git-clone",
"description": "Learning how to make my own comfy ui custom nodes"
},
{
"author": "mira-6",
"title": "mira-wildcard-node",
"reference": "https://github.com/mira-6/mira-wildcard-node",
"files": [
"https://github.com/mira-6/mira-wildcard-node"
],
"install_type": "git-clone",
"description": "Mira's Simple Wildcard Node"
},
{
"author": "BetaDoggo",
"title": "ComfyUI Tetris",
"id": "tetris",
"reference": "https://github.com/BetaDoggo/ComfyUI-Tetris",
"files": [
"https://github.com/BetaDoggo/ComfyUI-Tetris"
],
"install_type": "git-clone",
"description": "The primitive node and dummy input are required because comfy doesn't accept requests with identical graphs. You'll also need a show text node. I like the one from ComfyUI-Custom-Scripts. I got the generic tetris remake from claude so it may or may not be ripped from somewhere else."
}
]
}

View File

@ -0,0 +1,21 @@
{
"imageio-ffmpeg": "imageio",
"imageio[ffmpeg]": "imageio",
"imageio_ffmpeg": "imageio",
"diffusers~=0.21.4": "diffusers",
"huggingface_hub": "huggingface-hub",
"numpy<1.24>=1.18": "numpy",
"numpy>=1.18.5, <1.25.0": "numpy",
"opencv-contrib-python": "opencv-contrib-python-headless",
"opencv-python": "opencv-contrib-python-headless",
"opencv-python-headless": "opencv-contrib-python-headless",
"opencv-python-headless[ffmpeg]<=4.7.0.72": "opencv-contrib-python-headless",
"opencv-python>=4.7.0.72": "opencv-contrib-python-headless",
"pandas<=1.5.1": "pandas",
"scikit-image==0.20.0": "scikit-image",
"scipy>=1.11.4": "scipy",
"segment_anything": "segment-anything",
"timm==0.6.5": "timm",
"timm>=0.4.12": "timm",
"transformers==4.26.1": "transformers"
}

View File

@ -9,7 +9,7 @@ import locale
import platform
import json
import ast
import logging
glob_path = os.path.join(os.path.dirname(__file__), "glob")
sys.path.append(glob_path)
@ -82,6 +82,7 @@ cm_global.pip_overrides = {}
if os.path.exists(pip_overrides_path):
with open(pip_overrides_path, 'r', encoding="UTF-8", errors="ignore") as json_file:
cm_global.pip_overrides = json.load(json_file)
cm_global.pip_overrides['numpy'] = 'numpy<2'
def remap_pip_package(pkg):
@ -165,6 +166,8 @@ try:
if port_index + 1 < len(sys.argv):
port = int(sys.argv[port_index + 1])
postfix = f"_{port}"
else:
postfix = ""
else:
postfix = ""
@ -202,6 +205,7 @@ try:
is_start_mode = True
class ComfyUIManagerLogger:
def __init__(self, is_stdout):
self.is_stdout = is_stdout
@ -250,7 +254,7 @@ try:
else:
self.sync_write(message)
def sync_write(self, message):
def sync_write(self, message, file_only=False):
with log_lock:
timestamp = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')[:-3]
if self.last_char != '\n':
@ -260,15 +264,16 @@ try:
log_file.flush()
self.last_char = message if message == '' else message[-1]
with std_log_lock:
if self.is_stdout:
write_stdout(message)
original_stdout.flush()
terminal_hook.write_stderr(message)
else:
write_stderr(message)
original_stderr.flush()
terminal_hook.write_stdout(message)
if not file_only:
with std_log_lock:
if self.is_stdout:
write_stdout(message)
original_stdout.flush()
terminal_hook.write_stderr(message)
else:
write_stderr(message)
original_stderr.flush()
terminal_hook.write_stdout(message)
def flush(self):
log_file.flush()
@ -299,11 +304,35 @@ try:
if enable_file_logging:
sys.stdout = ComfyUIManagerLogger(True)
sys.stderr = ComfyUIManagerLogger(False)
stderr_wrapper = ComfyUIManagerLogger(False)
sys.stderr = stderr_wrapper
atexit.register(close_log)
else:
sys.stdout.close_log = lambda: None
stderr_wrapper = None
class LoggingHandler(logging.Handler):
def emit(self, record):
global is_start_mode
message = record.getMessage()
if is_start_mode:
match = re.search(pat_import_fail, message)
if match:
import_failed_extensions.add(match.group(1))
if 'Starting server' in message:
is_start_mode = False
if stderr_wrapper:
stderr_wrapper.sync_write(message+'\n', file_only=True)
logging.getLogger().addHandler(LoggingHandler())
except Exception as e:
print(f"[ComfyUI-Manager] Logging failed: {e}")

View File

@ -1,8 +1,8 @@
[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.44.1"
license = "LICENSE"
version = "2.48.2"
license = { file = "LICENSE.txt" }
dependencies = ["GitPython", "PyGithub", "matrix-client==0.4.0", "transformers", "huggingface-hub>0.20", "typer", "rich", "typing-extensions"]
[project.urls]

View File

@ -488,6 +488,7 @@ def gen_json(node_info):
print("------------------------------------------------------")
print(e)
print("------------------------------------------------------")
node_list_json = {}
metadata_in_url = {}
if git_url not in data: