Merge branch 'main' into feat/cnr

This commit is contained in:
Dr.Lt.Data 2024-08-18 13:02:39 +09:00
commit b02cb2b833
9 changed files with 1730 additions and 1688 deletions

View File

@ -8304,16 +8304,6 @@
"install_type": "git-clone", "install_type": "git-clone",
"description": "Create a new group of nodes." "description": "Create a new group of nodes."
}, },
{
"author": "shinich39",
"title": "comfyui-group-selection",
"reference": "https://github.com/shinich39/comfyui-group-selection",
"files": [
"https://github.com/shinich39/comfyui-group-selection"
],
"install_type": "git-clone",
"description": "Create a new group of nodes."
},
{ {
"author": "shinich39", "author": "shinich39",
"title": "comfyui-textarea-keybindings", "title": "comfyui-textarea-keybindings",
@ -13208,6 +13198,16 @@
"install_type": "git-clone", "install_type": "git-clone",
"description": "The Flux Prompt Saver is a custom node for ComfyUI that works in conjunction with the Flux Sampler Parameters node from the ComfyUI Essentials package. This node allows you to save images with metadata that includes information from the Flux Sampler Parameters pipeline." "description": "The Flux Prompt Saver is a custom node for ComfyUI that works in conjunction with the Flux Sampler Parameters node from the ComfyUI Essentials package. This node allows you to save images with metadata that includes information from the Flux Sampler Parameters pipeline."
}, },
{
"author": "eesahe",
"title": "ComfyUI-eesahesNodes",
"reference": "https://github.com/EeroHeikkinen/ComfyUI-eesahesNodes",
"files": [
"https://github.com/EeroHeikkinen/ComfyUI-eesahesNodes"
],
"install_type": "git-clone",
"description": "InstantX's Flux union ControlNet loader and implementation"
},

View File

@ -1684,6 +1684,18 @@
"title_aux": "ComfyUI Color Detection Nodes" "title_aux": "ComfyUI Color Detection Nodes"
} }
], ],
"https://github.com/EeroHeikkinen/ComfyUI-eesahesNodes": [
[
"InstantX Flux Union ControlNet Loader"
],
{
"author": "eesahe",
"description": "InstantX's Flux union ControlNet loader and implementation",
"nickname": "eesahesNodes",
"title": "eesahe's Nodes",
"title_aux": "ComfyUI-eesahesNodes"
}
],
"https://github.com/Electrofried/ComfyUI-OpenAINode": [ "https://github.com/Electrofried/ComfyUI-OpenAINode": [
[ [
"OpenAINode" "OpenAINode"
@ -5867,7 +5879,6 @@
"0246.BoxRange", "0246.BoxRange",
"0246.CastReroute", "0246.CastReroute",
"0246.Cloud", "0246.Cloud",
"0246.Convert",
"0246.Count", "0246.Count",
"0246.Highway", "0246.Highway",
"0246.HighwayBatch", "0246.HighwayBatch",
@ -5878,7 +5889,6 @@
"0246.Loop", "0246.Loop",
"0246.Merge", "0246.Merge",
"0246.Meta", "0246.Meta",
"0246.Pick",
"0246.RandomInt", "0246.RandomInt",
"0246.Script", "0246.Script",
"0246.ScriptNode", "0246.ScriptNode",
@ -6940,7 +6950,8 @@
"ComfyUIStyler", "ComfyUIStyler",
"ConvertRasterToVector", "ConvertRasterToVector",
"FLUXResolutions", "FLUXResolutions",
"GeminiOllamaAPI", "GeminiAPI",
"OllamaAPI",
"SaveSVG", "SaveSVG",
"TextSplitByDelimiter", "TextSplitByDelimiter",
"menus" "menus"
@ -9159,6 +9170,7 @@
"ModelSamplingFlux", "ModelSamplingFlux",
"ModelSamplingSD3", "ModelSamplingSD3",
"ModelSamplingStableCascade", "ModelSamplingStableCascade",
"ModelSave",
"Morphology", "Morphology",
"PatchModelAddDownscale", "PatchModelAddDownscale",
"PerpNeg", "PerpNeg",
@ -11274,6 +11286,7 @@
], ],
"https://github.com/gseth/ControlAltAI-Nodes": [ "https://github.com/gseth/ControlAltAI-Nodes": [
[ [
"FluxControlNetApply",
"FluxResolutionNode", "FluxResolutionNode",
"FluxSampler" "FluxSampler"
], ],
@ -15901,8 +15914,11 @@
"OpticalFlowDirectionMask", "OpticalFlowDirectionMask",
"OpticalFlowMaskModulation", "OpticalFlowMaskModulation",
"OpticalFlowParticleSystem", "OpticalFlowParticleSystem",
"ParticleColorModulation",
"ParticleEmissionMask", "ParticleEmissionMask",
"ParticleEmitter", "ParticleEmitter",
"ParticleSizeModulation",
"ParticleSpeedModulation",
"PulsatingParticleSystemMask", "PulsatingParticleSystemMask",
"SpringJointSetting", "SpringJointSetting",
"StaticBody", "StaticBody",

File diff suppressed because it is too large Load Diff

View File

@ -21,6 +21,10 @@ print(f"### Loading: ComfyUI-Manager ({core.version_str})")
comfy_ui_hash = "-" comfy_ui_hash = "-"
SECURITY_MESSAGE_MIDDLE_OR_BELOW = f"ERROR: To use this action, a security_level of `middle or below` is required. Please contact the administrator.\nReference: https://github.com/ltdrdata/ComfyUI-Manager#security-policy"
SECURITY_MESSAGE_NORMAL_MINUS = 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.\nReference: https://github.com/ltdrdata/ComfyUI-Manager#security-policy"
SECURITY_MESSAGE_GENERAL = f"ERROR: This installation is not allowed in this security_level. Please contact the administrator.\nReference: https://github.com/ltdrdata/ComfyUI-Manager#security-policy"
routes = PromptServer.instance.routes routes = PromptServer.instance.routes
@ -393,7 +397,7 @@ async def fetch_updates(request):
@routes.get("/customnode/update_all") @routes.get("/customnode/update_all")
async def update_all(request): async def update_all(request):
if not is_allowed_security_level('middle'): 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.") print(SECURITY_MESSAGE_MIDDLE_OR_BELOW)
return web.Response(status=403) return web.Response(status=403)
try: try:
@ -577,7 +581,7 @@ async def get_snapshot_list(request):
@routes.get("/snapshot/remove") @routes.get("/snapshot/remove")
async def remove_snapshot(request): async def remove_snapshot(request):
if not is_allowed_security_level('middle'): 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.") print(SECURITY_MESSAGE_MIDDLE_OR_BELOW)
return web.Response(status=403) return web.Response(status=403)
try: try:
@ -595,7 +599,7 @@ async def remove_snapshot(request):
@routes.get("/snapshot/restore") @routes.get("/snapshot/restore")
async def remove_snapshot(request): async def remove_snapshot(request):
if not is_allowed_security_level('middle'): 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.") print(SECURITY_MESSAGE_MIDDLE_OR_BELOW)
return web.Response(status=403) return web.Response(status=403)
try: try:
@ -797,7 +801,7 @@ async def reinstall_custom_node(request):
@routes.post("/customnode/install") @routes.post("/customnode/install")
async def install_custom_node(request): async def install_custom_node(request):
if not is_allowed_security_level('middle'): 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.") print(SECURITY_MESSAGE_MIDDLE_OR_BELOW)
return web.Response(status=403) return web.Response(status=403)
json_data = await request.json() json_data = await request.json()
@ -824,7 +828,7 @@ async def install_custom_node(request):
risky_level = await get_risky_level(json_data['files']) risky_level = await get_risky_level(json_data['files'])
if not is_allowed_security_level(risky_level): if not is_allowed_security_level(risky_level):
print(f"ERROR: This installation is not allowed in this security_level. Please contact the administrator.") print(SECURITY_MESSAGE_GENERAL)
return web.Response(status=404) return web.Response(status=404)
node_spec = core.unified_manager.resolve_node_spec(node_spec_str) node_spec = core.unified_manager.resolve_node_spec(node_spec_str)
@ -845,7 +849,7 @@ async def install_custom_node(request):
@routes.post("/customnode/fix") @routes.post("/customnode/fix")
async def fix_custom_node(request): async def fix_custom_node(request):
if not is_allowed_security_level('middle'): 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.") print(SECURITY_MESSAGE_MIDDLE_OR_BELOW)
return web.Response(status=403) return web.Response(status=403)
json_data = await request.json() json_data = await request.json()
@ -871,7 +875,7 @@ async def fix_custom_node(request):
@routes.post("/customnode/install/git_url") @routes.post("/customnode/install/git_url")
async def install_custom_node_git_url(request): async def install_custom_node_git_url(request):
if not is_allowed_security_level('high'): if not is_allowed_security_level('high'):
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.") print(SECURITY_MESSAGE_NORMAL_MINUS)
return web.Response(status=403) return web.Response(status=403)
url = await request.text() url = await request.text()
@ -891,7 +895,7 @@ async def install_custom_node_git_url(request):
@routes.post("/customnode/install/pip") @routes.post("/customnode/install/pip")
async def install_custom_node_git_url(request): async def install_custom_node_git_url(request):
if not is_allowed_security_level('high'): if not is_allowed_security_level('high'):
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.") print(SECURITY_MESSAGE_NORMAL_MINUS)
return web.Response(status=403) return web.Response(status=403)
packages = await request.text() packages = await request.text()
@ -903,7 +907,7 @@ async def install_custom_node_git_url(request):
@routes.post("/customnode/uninstall") @routes.post("/customnode/uninstall")
async def uninstall_custom_node(request): async def uninstall_custom_node(request):
if not is_allowed_security_level('middle'): 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.") print(SECURITY_MESSAGE_MIDDLE_OR_BELOW)
return web.Response(status=403) return web.Response(status=403)
json_data = await request.json() json_data = await request.json()
@ -930,7 +934,7 @@ async def uninstall_custom_node(request):
@routes.post("/customnode/update") @routes.post("/customnode/update")
async def update_custom_node(request): async def update_custom_node(request):
if not is_allowed_security_level('middle'): 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.") print(SECURITY_MESSAGE_MIDDLE_OR_BELOW)
return web.Response(status=403) return web.Response(status=403)
json_data = await request.json() json_data = await request.json()
@ -1015,7 +1019,7 @@ async def install_model(request):
model_path = get_model_path(json_data) model_path = get_model_path(json_data)
if not is_allowed_security_level('middle'): 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.") print(SECURITY_MESSAGE_MIDDLE_OR_BELOW)
return web.Response(status=403) return web.Response(status=403)
if not json_data['filename'].endswith('.safetensors') and not is_allowed_security_level('high'): if not json_data['filename'].endswith('.safetensors') and not is_allowed_security_level('high'):
@ -1028,7 +1032,7 @@ async def install_model(request):
break break
if not is_belongs_to_whitelist: 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.") print(SECURITY_MESSAGE_NORMAL_MINUS)
return web.Response(status=403) return web.Response(status=403)
res = False res = False
@ -1078,7 +1082,7 @@ manager_terminal_hook = ManagerTerminalHook()
@routes.get("/manager/terminal") @routes.get("/manager/terminal")
async def terminal_mode(request): async def terminal_mode(request):
if not is_allowed_security_level('high'): if not is_allowed_security_level('high'):
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.") print(SECURITY_MESSAGE_NORMAL_MINUS)
return web.Response(status=403) return web.Response(status=403)
if "mode" in request.rel_url.query: if "mode" in request.rel_url.query:
@ -1220,7 +1224,7 @@ async def get_notice(request):
@routes.get("/manager/reboot") @routes.get("/manager/reboot")
def restart(self): def restart(self):
if not is_allowed_security_level('middle'): 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.") print(SECURITY_MESSAGE_MIDDLE_OR_BELOW)
return web.Response(status=403) return web.Response(status=403)
try: try:

View File

@ -1238,6 +1238,7 @@
"ModelSamplingFlux", "ModelSamplingFlux",
"ModelSamplingSD3", "ModelSamplingSD3",
"ModelSamplingStableCascade", "ModelSamplingStableCascade",
"ModelSave",
"Morphology", "Morphology",
"PatchModelAddDownscale", "PatchModelAddDownscale",
"PerpNeg", "PerpNeg",

File diff suppressed because it is too large Load Diff

View File

@ -10,6 +10,16 @@
{
"author": "eesahe",
"title": "ComfyUI-eesahesNodes",
"reference": "https://github.com/EeroHeikkinen/ComfyUI-eesahesNodes",
"files": [
"https://github.com/EeroHeikkinen/ComfyUI-eesahesNodes"
],
"install_type": "git-clone",
"description": "InstantX's Flux union ControlNet loader and implementation"
},
{ {
"author": "hben35096", "author": "hben35096",
"title": "ComfyUI-ReplenishNodes", "title": "ComfyUI-ReplenishNodes",
@ -686,16 +696,6 @@
], ],
"install_type": "git-clone", "install_type": "git-clone",
"description": "ComfyUI for [a/LLaSM](https://huggingface.co/spaces/LinkSoul/LLaSM)" "description": "ComfyUI for [a/LLaSM](https://huggingface.co/spaces/LinkSoul/LLaSM)"
},
{
"author": "leeguandong",
"title": "ComfyUI_InternVL2",
"reference": "https://github.com/leeguandong/ComfyUI_InternVL2",
"files": [
"https://github.com/leeguandong/ComfyUI_InternVL2"
],
"install_type": "git-clone",
"description": "ComfyUI for [a/InternVL](https://github.com/OpenGVLab/InternVL)"
} }
] ]
} }

View File

@ -1684,6 +1684,18 @@
"title_aux": "ComfyUI Color Detection Nodes" "title_aux": "ComfyUI Color Detection Nodes"
} }
], ],
"https://github.com/EeroHeikkinen/ComfyUI-eesahesNodes": [
[
"InstantX Flux Union ControlNet Loader"
],
{
"author": "eesahe",
"description": "InstantX's Flux union ControlNet loader and implementation",
"nickname": "eesahesNodes",
"title": "eesahe's Nodes",
"title_aux": "ComfyUI-eesahesNodes"
}
],
"https://github.com/Electrofried/ComfyUI-OpenAINode": [ "https://github.com/Electrofried/ComfyUI-OpenAINode": [
[ [
"OpenAINode" "OpenAINode"
@ -5867,7 +5879,6 @@
"0246.BoxRange", "0246.BoxRange",
"0246.CastReroute", "0246.CastReroute",
"0246.Cloud", "0246.Cloud",
"0246.Convert",
"0246.Count", "0246.Count",
"0246.Highway", "0246.Highway",
"0246.HighwayBatch", "0246.HighwayBatch",
@ -5878,7 +5889,6 @@
"0246.Loop", "0246.Loop",
"0246.Merge", "0246.Merge",
"0246.Meta", "0246.Meta",
"0246.Pick",
"0246.RandomInt", "0246.RandomInt",
"0246.Script", "0246.Script",
"0246.ScriptNode", "0246.ScriptNode",
@ -6940,7 +6950,8 @@
"ComfyUIStyler", "ComfyUIStyler",
"ConvertRasterToVector", "ConvertRasterToVector",
"FLUXResolutions", "FLUXResolutions",
"GeminiOllamaAPI", "GeminiAPI",
"OllamaAPI",
"SaveSVG", "SaveSVG",
"TextSplitByDelimiter", "TextSplitByDelimiter",
"menus" "menus"
@ -9159,6 +9170,7 @@
"ModelSamplingFlux", "ModelSamplingFlux",
"ModelSamplingSD3", "ModelSamplingSD3",
"ModelSamplingStableCascade", "ModelSamplingStableCascade",
"ModelSave",
"Morphology", "Morphology",
"PatchModelAddDownscale", "PatchModelAddDownscale",
"PerpNeg", "PerpNeg",
@ -11274,6 +11286,7 @@
], ],
"https://github.com/gseth/ControlAltAI-Nodes": [ "https://github.com/gseth/ControlAltAI-Nodes": [
[ [
"FluxControlNetApply",
"FluxResolutionNode", "FluxResolutionNode",
"FluxSampler" "FluxSampler"
], ],
@ -15901,8 +15914,11 @@
"OpticalFlowDirectionMask", "OpticalFlowDirectionMask",
"OpticalFlowMaskModulation", "OpticalFlowMaskModulation",
"OpticalFlowParticleSystem", "OpticalFlowParticleSystem",
"ParticleColorModulation",
"ParticleEmissionMask", "ParticleEmissionMask",
"ParticleEmitter", "ParticleEmitter",
"ParticleSizeModulation",
"ParticleSpeedModulation",
"PulsatingParticleSystemMask", "PulsatingParticleSystemMask",
"SpringJointSetting", "SpringJointSetting",
"StaticBody", "StaticBody",

View File

@ -1,7 +1,7 @@
[project] [project]
name = "comfyui-manager" name = "comfyui-manager"
description = "ComfyUI-Manager provides features to install and manage custom nodes for ComfyUI, as well as various functionalities to assist with ComfyUI." description = "ComfyUI-Manager provides features to install and manage custom nodes for ComfyUI, as well as various functionalities to assist with ComfyUI."
version = "2.50" version = "2.50.1"
license = { file = "LICENSE.txt" } license = { file = "LICENSE.txt" }
dependencies = ["GitPython", "PyGithub", "matrix-client==0.4.0", "transformers", "huggingface-hub>0.20", "typer", "rich", "typing-extensions"] dependencies = ["GitPython", "PyGithub", "matrix-client==0.4.0", "transformers", "huggingface-hub>0.20", "typer", "rich", "typing-extensions"]