Compare commits
9 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e983f9ed35 | ||
|
|
8b16ef641b | ||
|
|
e87d616b7a | ||
|
|
2220f325fc | ||
|
|
b53ed47ccb | ||
|
|
39df2743fe | ||
|
|
3f729aaf03 | ||
|
|
b7324621e4 | ||
|
|
e8c782c8e1 |
@@ -150,6 +150,7 @@ In `ComfyUI-Manager` V3.0 and later, configuration files and dynamically generat
|
||||
* Configurable channel lists: `<USER_DIRECTORY>/default/ComfyUI-Manager/channels.ini`
|
||||
* Configurable pip overrides: `<USER_DIRECTORY>/default/ComfyUI-Manager/pip_overrides.json`
|
||||
* Configurable pip blacklist: `<USER_DIRECTORY>/default/ComfyUI-Manager/pip_blacklist.list`
|
||||
* Configurable pip auto fix: `<USER_DIRECTORY>/default/ComfyUI-Manager/pip_auto_fix.list`
|
||||
* Saved snapshot files: `<USER_DIRECTORY>/default/ComfyUI-Manager/snapshots`
|
||||
* Startup script files: `<USER_DIRECTORY>/default/ComfyUI-Manager/startup-scripts`
|
||||
* Component files: `<USER_DIRECTORY>/default/ComfyUI-Manager/components`
|
||||
@@ -306,6 +307,10 @@ The following settings are applied based on the section marked as `is_default`.
|
||||
* Prevent the installation of specific pip packages
|
||||
* List the package names one per line in the `pip_blacklist.list` file.
|
||||
|
||||
* Automatically Restoring pip Installation
|
||||
* If you list pip spec requirements in `pip_auto_fix.list`, similar to `requirements.txt`, it will automatically restore the specified versions when starting ComfyUI or when versions get mismatched during various custom node installations.
|
||||
* `--index-url` can be used.
|
||||
|
||||
* Use `aria2` as downloader
|
||||
* [howto](docs/en/use_aria2.md)
|
||||
|
||||
|
||||
17
cm-cli.py
17
cm-cli.py
@@ -647,7 +647,7 @@ def install(
|
||||
cmd_ctx.set_channel_mode(channel, mode)
|
||||
cmd_ctx.set_no_deps(no_deps)
|
||||
|
||||
pip_fixer = manager_util.PIPFixer(manager_util.get_installed_packages(), comfy_path)
|
||||
pip_fixer = manager_util.PIPFixer(manager_util.get_installed_packages(), comfy_path, core.manager_files_path)
|
||||
for_each_nodes(nodes, act=install_node)
|
||||
pip_fixer.fix_broken()
|
||||
|
||||
@@ -685,7 +685,7 @@ def reinstall(
|
||||
cmd_ctx.set_channel_mode(channel, mode)
|
||||
cmd_ctx.set_no_deps(no_deps)
|
||||
|
||||
pip_fixer = manager_util.PIPFixer(manager_util.get_installed_packages(), comfy_path)
|
||||
pip_fixer = manager_util.PIPFixer(manager_util.get_installed_packages(), comfy_path, core.manager_files_path)
|
||||
for_each_nodes(nodes, act=reinstall_node)
|
||||
pip_fixer.fix_broken()
|
||||
|
||||
@@ -739,7 +739,7 @@ def update(
|
||||
if 'all' in nodes:
|
||||
asyncio.run(auto_save_snapshot())
|
||||
|
||||
pip_fixer = manager_util.PIPFixer(manager_util.get_installed_packages(), comfy_path)
|
||||
pip_fixer = manager_util.PIPFixer(manager_util.get_installed_packages(), comfy_path, core.manager_files_path)
|
||||
|
||||
for x in nodes:
|
||||
if x.lower() in ['comfyui', 'comfy', 'all']:
|
||||
@@ -840,7 +840,7 @@ def fix(
|
||||
if 'all' in nodes:
|
||||
asyncio.run(auto_save_snapshot())
|
||||
|
||||
pip_fixer = manager_util.PIPFixer(manager_util.get_installed_packages(), comfy_path)
|
||||
pip_fixer = manager_util.PIPFixer(manager_util.get_installed_packages(), comfy_path, core.manager_files_path)
|
||||
for_each_nodes(nodes, fix_node, allow_all=True)
|
||||
pip_fixer.fix_broken()
|
||||
|
||||
@@ -1119,7 +1119,7 @@ def restore_snapshot(
|
||||
print(f"[bold red]ERROR: `{snapshot_path}` is not exists.[/bold red]")
|
||||
exit(1)
|
||||
|
||||
pip_fixer = manager_util.PIPFixer(manager_util.get_installed_packages(), comfy_path)
|
||||
pip_fixer = manager_util.PIPFixer(manager_util.get_installed_packages(), comfy_path, core.manager_files_path)
|
||||
try:
|
||||
asyncio.run(core.restore_snapshot(snapshot_path, extras))
|
||||
except Exception:
|
||||
@@ -1151,7 +1151,7 @@ def restore_dependencies(
|
||||
total = len(node_paths)
|
||||
i = 1
|
||||
|
||||
pip_fixer = manager_util.PIPFixer(manager_util.get_installed_packages(), comfy_path)
|
||||
pip_fixer = manager_util.PIPFixer(manager_util.get_installed_packages(), comfy_path, core.manager_files_path)
|
||||
for x in node_paths:
|
||||
print("----------------------------------------------------------------------------------------------------")
|
||||
print(f"Restoring [{i}/{total}]: {x}")
|
||||
@@ -1170,7 +1170,7 @@ def post_install(
|
||||
):
|
||||
path = os.path.expanduser(path)
|
||||
|
||||
pip_fixer = manager_util.PIPFixer(manager_util.get_installed_packages(), comfy_path)
|
||||
pip_fixer = manager_util.PIPFixer(manager_util.get_installed_packages(), comfy_path, core.manager_files_path)
|
||||
unified_manager.execute_install_script('', path, instant_execution=True)
|
||||
pip_fixer.fix_broken()
|
||||
|
||||
@@ -1214,8 +1214,7 @@ def install_deps(
|
||||
print(f"[bold red]Invalid json file: {deps}[/bold red]")
|
||||
exit(1)
|
||||
|
||||
|
||||
pip_fixer = manager_util.PIPFixer(manager_util.get_installed_packages(), comfy_path)
|
||||
pip_fixer = manager_util.PIPFixer(manager_util.get_installed_packages(), comfy_path, core.manager_files_path)
|
||||
for k in json_obj['custom_nodes'].keys():
|
||||
state = core.simple_check_custom_node(k)
|
||||
if state == 'installed':
|
||||
|
||||
@@ -8031,16 +8031,6 @@
|
||||
"install_type": "git-clone",
|
||||
"description": "ComfyUI nodes to edit videos using Genmo Mochi"
|
||||
},
|
||||
{
|
||||
"author": "logtd",
|
||||
"title": "ComfyUI-LTXTricks",
|
||||
"reference": "https://github.com/logtd/ComfyUI-LTXTricks",
|
||||
"files": [
|
||||
"https://github.com/logtd/ComfyUI-LTXTricks"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "A set of nodes that provide additional controls for the LTX Video model"
|
||||
},
|
||||
{
|
||||
"author": "Big-Idea-Technology",
|
||||
"title": "ComfyUI-Book-Tools Nodes for ComfyUI",
|
||||
@@ -14466,6 +14456,16 @@
|
||||
"install_type": "git-clone",
|
||||
"description": "GeekyRemB is a powerful and versatile image processing node for ComfyUI, designed to remove backgrounds from images with advanced customization options. This node leverages the rembg library and offers a wide range of features for fine-tuning the background removal process and enhancing the resulting images."
|
||||
},
|
||||
{
|
||||
"author": "GeekyGhost",
|
||||
"title": "ComfyUI-Geeky-Kokoro-TTS",
|
||||
"reference": "https://github.com/GeekyGhost/ComfyUI-Geeky-Kokoro-TTS",
|
||||
"files": [
|
||||
"https://github.com/GeekyGhost/ComfyUI-Geeky-Kokoro-TTS"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "A powerful and feature-rich custom node collection for ComfyUI that integrates the Kokoro TTS (Text-to-Speech) system with advanced voice modification capabilities. This package allows you to generate natural-sounding speech and apply various voice effects within ComfyUI workflows."
|
||||
},
|
||||
{
|
||||
"author": "Dobidop",
|
||||
"title": "Dobidop ComfyStereo",
|
||||
@@ -19127,7 +19127,7 @@
|
||||
},
|
||||
{
|
||||
"author": "kazeyori",
|
||||
"title": "Quick Image Sequence Process",
|
||||
"title": "ComfyUI-QuickImageSequenceProcess",
|
||||
"reference": "https://github.com/kazeyori/ComfyUI-QuickImageSequenceProcess",
|
||||
"files": [
|
||||
"https://github.com/kazeyori/ComfyUI-QuickImageSequenceProcess"
|
||||
@@ -19729,6 +19729,16 @@
|
||||
"install_type": "git-clone",
|
||||
"description": "A Text To Speech node using Step-Audio-TTS in ComfyUI. Can speak, rap, sing, or clone voice."
|
||||
},
|
||||
{
|
||||
"author": "billwuhao",
|
||||
"title": "ComfyUI_KokoroTTS_MW",
|
||||
"reference": "https://github.com/billwuhao/ComfyUI_KokoroTTS_MW",
|
||||
"files": [
|
||||
"https://github.com/billwuhao/ComfyUI_KokoroTTS_MW"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "A Text To Speech node using Kokoro TTS in ComfyUI. Supports 8 languages and 150 voices"
|
||||
},
|
||||
{
|
||||
"author": "pandaer119",
|
||||
"title": "ComfyUI_pandai",
|
||||
@@ -21827,6 +21837,26 @@
|
||||
"install_type": "git-clone",
|
||||
"description": "GlitchNodes is a collection of image processing nodes designed for ComfyUI that specializes in creating glitch art and retro effects."
|
||||
},
|
||||
{
|
||||
"author": "S4MUEL404",
|
||||
"title": "Image Position Blend",
|
||||
"id": "ComfyUI-Image-Position-Blend",
|
||||
"reference": "https://github.com/S4MUEL-404/ComfyUI-Image-Position-Blend",
|
||||
"files": [
|
||||
"https://github.com/S4MUEL-404/ComfyUI-Image-Position-Blend"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "A custom node for conveniently adjusting the overlay position of two images."
|
||||
},
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -2547,6 +2547,7 @@
|
||||
"Base64ToConditioning",
|
||||
"CLIPTextEncodeFluxUnguided",
|
||||
"ClownRegionalConditioning",
|
||||
"ClownRegionalConditioning3",
|
||||
"Conditioning Recast FP64",
|
||||
"ConditioningAdd",
|
||||
"ConditioningAverageScheduler",
|
||||
@@ -4151,6 +4152,15 @@
|
||||
"title_aux": "ComfyUI-SD3LatentSelectRes"
|
||||
}
|
||||
],
|
||||
"https://github.com/GeekyGhost/ComfyUI-Geeky-Kokoro-TTS": [
|
||||
[
|
||||
"GeekyKokoroAdvancedVoice",
|
||||
"GeekyKokoroTTS"
|
||||
],
|
||||
{
|
||||
"title_aux": "ComfyUI-Geeky-Kokoro-TTS"
|
||||
}
|
||||
],
|
||||
"https://github.com/GeekyGhost/ComfyUI-GeekyRemB": [
|
||||
[
|
||||
"GeekyRemB"
|
||||
@@ -5970,6 +5980,27 @@
|
||||
"title_aux": "ComfyUI-LivePortraitNode (Replicate API)"
|
||||
}
|
||||
],
|
||||
"https://github.com/Lightricks/ComfyUI-LTXVideo": [
|
||||
[
|
||||
"AddLatentGuide",
|
||||
"LTXAttentioOverride",
|
||||
"LTXAttentionBank",
|
||||
"LTXAttnOverride",
|
||||
"LTXFetaEnhance",
|
||||
"LTXFlowEditCFGGuider",
|
||||
"LTXFlowEditSampler",
|
||||
"LTXForwardModelSamplingPred",
|
||||
"LTXPerturbedAttention",
|
||||
"LTXPrepareAttnInjections",
|
||||
"LTXRFForwardODESampler",
|
||||
"LTXRFReverseODESampler",
|
||||
"LTXReverseModelSamplingPred",
|
||||
"ModifyLTXModel"
|
||||
],
|
||||
{
|
||||
"title_aux": "ComfyUI-LTXVideo"
|
||||
}
|
||||
],
|
||||
"https://github.com/Limitex/ComfyUI-Calculation": [
|
||||
[
|
||||
"CenterCalculation",
|
||||
@@ -7862,6 +7893,14 @@
|
||||
"title_aux": "comfyui_io_helpers"
|
||||
}
|
||||
],
|
||||
"https://github.com/S4MUEL-404/ComfyUI-Image-Position-Blend": [
|
||||
[
|
||||
"ImagePositionBlend"
|
||||
],
|
||||
{
|
||||
"title_aux": "Image Position Blend"
|
||||
}
|
||||
],
|
||||
"https://github.com/SEkINVR/ComfyUI-SaveAs": [
|
||||
[
|
||||
"ComfyUISaveAs"
|
||||
@@ -11442,7 +11481,8 @@
|
||||
"https://github.com/aidenli/ComfyUI_NYJY": [
|
||||
[
|
||||
"CivitaiPrompt",
|
||||
"ConverAnyToString",
|
||||
"ConvertAnyToString",
|
||||
"ConvertStringToNumber",
|
||||
"CustomLatentImage-NYJY",
|
||||
"CustomLatentImageSimple",
|
||||
"FloatSlider-NYJY",
|
||||
@@ -12613,6 +12653,15 @@
|
||||
"title_aux": "ComfyUI_TextAssets"
|
||||
}
|
||||
],
|
||||
"https://github.com/billwuhao/ComfyUI_KokoroTTS_MW": [
|
||||
[
|
||||
"Kokoro Run",
|
||||
"Kokoro ZH Run"
|
||||
],
|
||||
{
|
||||
"title_aux": "ComfyUI_KokoroTTS_MW"
|
||||
}
|
||||
],
|
||||
"https://github.com/billwuhao/ComfyUI_OneButtonPrompt_Flux": [
|
||||
[
|
||||
"DeepseekRun",
|
||||
@@ -14700,6 +14749,7 @@
|
||||
"GLIGENLoader",
|
||||
"GLIGENTextBoxApply",
|
||||
"GrowMask",
|
||||
"HunyuanImageToVideo",
|
||||
"HyperTile",
|
||||
"HypernetworkLoader",
|
||||
"ImageBatch",
|
||||
@@ -14889,6 +14939,7 @@
|
||||
"TestVariadicAverage",
|
||||
"TestWhileLoopClose",
|
||||
"TestWhileLoopOpen",
|
||||
"TextEncodeHunyuanVideo_ImageToVideo",
|
||||
"ThresholdMask",
|
||||
"TomePatchModel",
|
||||
"TorchCompileModel",
|
||||
@@ -20005,7 +20056,7 @@
|
||||
"description": "A ComfyUI plugin for efficient image sequence processing. Features frame insertion, duplication, and removal with intuitive controls.",
|
||||
"nickname": "QuickSeq",
|
||||
"title": "Quick Image Sequence Process",
|
||||
"title_aux": "Quick Image Sequence Process"
|
||||
"title_aux": "ComfyUI-QuickImageSequenceProcess"
|
||||
}
|
||||
],
|
||||
"https://github.com/kealiu/ComfyUI-S3-Tools": [
|
||||
@@ -20040,7 +20091,8 @@
|
||||
"BinarizeImage",
|
||||
"BinarizeImageUsingOtsu",
|
||||
"BrightnessTransparency",
|
||||
"GrayscaleImage"
|
||||
"GrayscaleImage",
|
||||
"RemoveWhiteBackgroundNoise"
|
||||
],
|
||||
{
|
||||
"title_aux": "ComfyUI-Image-Toolkit"
|
||||
@@ -20339,6 +20391,8 @@
|
||||
"HyVideoEmptyTextEmbeds",
|
||||
"HyVideoEncode",
|
||||
"HyVideoEnhanceAVideo",
|
||||
"HyVideoGetClosestBucketSize",
|
||||
"HyVideoI2VEncode",
|
||||
"HyVideoInverseSampler",
|
||||
"HyVideoLatentPreview",
|
||||
"HyVideoLoraBlockEdit",
|
||||
@@ -21807,27 +21861,6 @@
|
||||
"title_aux": "ComfyUI-InversedNoise"
|
||||
}
|
||||
],
|
||||
"https://github.com/logtd/ComfyUI-LTXTricks": [
|
||||
[
|
||||
"AddLatentGuide",
|
||||
"LTXAttentioOverride",
|
||||
"LTXAttentionBank",
|
||||
"LTXAttnOverride",
|
||||
"LTXFetaEnhance",
|
||||
"LTXFlowEditCFGGuider",
|
||||
"LTXFlowEditSampler",
|
||||
"LTXForwardModelSamplingPred",
|
||||
"LTXPerturbedAttention",
|
||||
"LTXPrepareAttnInjections",
|
||||
"LTXRFForwardODESampler",
|
||||
"LTXRFReverseODESampler",
|
||||
"LTXReverseModelSamplingPred",
|
||||
"ModifyLTXModel"
|
||||
],
|
||||
{
|
||||
"title_aux": "ComfyUI-LTXTricks"
|
||||
}
|
||||
],
|
||||
"https://github.com/logtd/ComfyUI-MochiEdit": [
|
||||
[
|
||||
"MochiPrepareSigmas",
|
||||
@@ -23297,7 +23330,7 @@
|
||||
"SingleBooleanTrigger",
|
||||
"SixBooleanTrigger",
|
||||
"StepsAndCfg",
|
||||
"TextBox",
|
||||
"TextBoxMira",
|
||||
"TextCombinerSix",
|
||||
"TextCombinerTwo",
|
||||
"TextLoopCombiner",
|
||||
@@ -27188,6 +27221,7 @@
|
||||
],
|
||||
"https://github.com/sugarkwork/comfyui_tag_fillter": [
|
||||
[
|
||||
"TagCategory",
|
||||
"TagCategoryEnhance",
|
||||
"TagComparator",
|
||||
"TagEnhance",
|
||||
|
||||
4873
github-stats.json
4873
github-stats.json
File diff suppressed because it is too large
Load Diff
@@ -43,7 +43,7 @@ import manager_downloader
|
||||
from node_package import InstalledNodePackage
|
||||
|
||||
|
||||
version_code = [3, 29]
|
||||
version_code = [3, 30, 2]
|
||||
version_str = f"V{version_code[0]}.{version_code[1]}" + (f'.{version_code[2]}' if len(version_code) > 2 else '')
|
||||
|
||||
|
||||
@@ -847,7 +847,7 @@ class UnifiedManager:
|
||||
else:
|
||||
if os.path.exists(requirements_path) and not no_deps:
|
||||
print("Install: pip packages")
|
||||
pip_fixer = manager_util.PIPFixer(manager_util.get_installed_packages(), comfy_path)
|
||||
pip_fixer = manager_util.PIPFixer(manager_util.get_installed_packages(), comfy_path, manager_files_path)
|
||||
res = True
|
||||
lines = manager_util.robust_readlines(requirements_path)
|
||||
for line in lines:
|
||||
@@ -1902,7 +1902,7 @@ def execute_install_script(url, repo_path, lazy_mode=False, instant_execution=Fa
|
||||
else:
|
||||
if os.path.exists(requirements_path) and not no_deps:
|
||||
print("Install: pip packages")
|
||||
pip_fixer = manager_util.PIPFixer(manager_util.get_installed_packages(), comfy_path)
|
||||
pip_fixer = manager_util.PIPFixer(manager_util.get_installed_packages(), comfy_path, manager_files_path)
|
||||
with open(requirements_path, "r") as requirements_file:
|
||||
for line in requirements_file:
|
||||
#handle comments
|
||||
|
||||
@@ -1599,11 +1599,11 @@ def restart(self):
|
||||
if '--windows-standalone-build' in sys_argv:
|
||||
sys_argv.remove('--windows-standalone-build')
|
||||
|
||||
if sys.platform.startswith('win32'):
|
||||
cmds = ['"' + sys.executable + '"', '"' + sys_argv[0] + '"'] + sys_argv[1:]
|
||||
elif sys_argv[0].endswith("__main__.py"): # this is a python module
|
||||
if sys_argv[0].endswith("__main__.py"): # this is a python module
|
||||
module_name = os.path.basename(os.path.dirname(sys_argv[0]))
|
||||
cmds = [sys.executable, '-m', module_name] + sys_argv[1:]
|
||||
elif sys.platform.startswith('win32'):
|
||||
cmds = ['"' + sys.executable + '"', '"' + sys_argv[0] + '"'] + sys_argv[1:]
|
||||
else:
|
||||
cmds = [sys.executable] + sys_argv
|
||||
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
description:
|
||||
`manager_util` is the lightest module shared across the prestartup_script, main code, and cm-cli of ComfyUI-Manager.
|
||||
"""
|
||||
import traceback
|
||||
|
||||
import aiohttp
|
||||
import json
|
||||
@@ -13,6 +14,7 @@ import sys
|
||||
import re
|
||||
import logging
|
||||
import platform
|
||||
import shlex
|
||||
|
||||
|
||||
cache_lock = threading.Lock()
|
||||
@@ -244,7 +246,8 @@ def get_installed_packages(renew=False):
|
||||
if y[0] == 'Package' or y[0].startswith('-'):
|
||||
continue
|
||||
|
||||
pip_map[y[0]] = y[1]
|
||||
normalized_name = y[0].lower().replace('-', '_')
|
||||
pip_map[normalized_name] = y[1]
|
||||
except subprocess.CalledProcessError:
|
||||
logging.error("[ComfyUI-Manager] Failed to retrieve the information of installed pip packages.")
|
||||
return set()
|
||||
@@ -257,6 +260,46 @@ def clear_pip_cache():
|
||||
pip_map = None
|
||||
|
||||
|
||||
def parse_requirement_line(line):
|
||||
tokens = shlex.split(line)
|
||||
if not tokens:
|
||||
return None
|
||||
|
||||
package_spec = tokens[0]
|
||||
|
||||
pattern = re.compile(
|
||||
r'^(?P<package>[A-Za-z0-9_.+-]+)'
|
||||
r'(?P<operator>==|>=|<=|!=|~=|>|<)?'
|
||||
r'(?P<version>[A-Za-z0-9_.+-]*)$'
|
||||
)
|
||||
m = pattern.match(package_spec)
|
||||
if not m:
|
||||
return None
|
||||
|
||||
package = m.group('package')
|
||||
operator = m.group('operator') or None
|
||||
version = m.group('version') or None
|
||||
|
||||
index_url = None
|
||||
if '--index-url' in tokens:
|
||||
idx = tokens.index('--index-url')
|
||||
if idx + 1 < len(tokens):
|
||||
index_url = tokens[idx + 1]
|
||||
|
||||
res = {'package': package}
|
||||
|
||||
if operator is not None:
|
||||
res['operator'] = operator
|
||||
|
||||
if version is not None:
|
||||
res['version'] = StrictVersion(version)
|
||||
|
||||
if index_url is not None:
|
||||
res['index_url'] = index_url
|
||||
|
||||
return res
|
||||
|
||||
|
||||
torch_torchvision_torchaudio_version_map = {
|
||||
'2.6.0': ('0.21.0', '2.6.0'),
|
||||
'2.5.1': ('0.20.0', '2.5.0'),
|
||||
@@ -276,10 +319,12 @@ torch_torchvision_torchaudio_version_map = {
|
||||
}
|
||||
|
||||
|
||||
|
||||
class PIPFixer:
|
||||
def __init__(self, prev_pip_versions, comfyui_path):
|
||||
def __init__(self, prev_pip_versions, comfyui_path, manager_files_path):
|
||||
self.prev_pip_versions = { **prev_pip_versions }
|
||||
self.comfyui_path = comfyui_path
|
||||
self.manager_files_path = manager_files_path
|
||||
|
||||
def torch_rollback(self):
|
||||
spec = self.prev_pip_versions['torch'].split('+')
|
||||
@@ -374,14 +419,20 @@ class PIPFixer:
|
||||
if StrictVersion(np) >= StrictVersion('2'):
|
||||
cmd = make_pip_cmd(['install', "numpy<2"])
|
||||
subprocess.check_output(cmd , universal_newlines=True)
|
||||
|
||||
logging.info("[ComfyUI-Manager] 'numpy' dependency were fixed")
|
||||
except Exception as e:
|
||||
logging.error("[ComfyUI-Manager] Failed to restore numpy")
|
||||
logging.error(e)
|
||||
|
||||
# fix missing frontend
|
||||
try:
|
||||
front = new_pip_versions.get('comfyui_frontend_package')
|
||||
if front is None:
|
||||
# NOTE: package name in requirements is 'comfyui-frontend-package'
|
||||
# but, package name from `pip freeze` is 'comfyui_frontend_package'
|
||||
# but, package name from `uv pip freeze` is 'comfyui-frontend-package'
|
||||
#
|
||||
# get_installed_packages returns normalized name (i.e. comfyui_frontend_package)
|
||||
if 'comfyui_frontend_package' not in new_pip_versions:
|
||||
requirements_path = os.path.join(self.comfyui_path, 'requirements.txt')
|
||||
|
||||
with open(requirements_path, 'r') as file:
|
||||
@@ -390,10 +441,59 @@ class PIPFixer:
|
||||
front_line = next((line.strip() for line in lines if line.startswith('comfyui-frontend-package')), None)
|
||||
cmd = make_pip_cmd(['install', front_line])
|
||||
subprocess.check_output(cmd , universal_newlines=True)
|
||||
|
||||
logging.info("[ComfyUI-Manager] 'comfyui-frontend-package' dependency were fixed")
|
||||
except Exception as e:
|
||||
logging.error("[ComfyUI-Manager] Failed to restore comfyui_frontend_package")
|
||||
logging.error("[ComfyUI-Manager] Failed to restore comfyui-frontend-package")
|
||||
logging.error(e)
|
||||
|
||||
# restore based on custom list
|
||||
pip_auto_fix_path = os.path.join(self.manager_files_path, "pip_auto_fix.list")
|
||||
if os.path.exists(pip_auto_fix_path):
|
||||
with open(pip_auto_fix_path, 'r', encoding="UTF-8", errors="ignore") as f:
|
||||
fixed_list = []
|
||||
|
||||
for x in f.readlines():
|
||||
try:
|
||||
parsed = parse_requirement_line(x)
|
||||
need_to_reinstall = True
|
||||
|
||||
normalized_name = parsed['package'].lower().replace('-', '_')
|
||||
if normalized_name in new_pip_versions:
|
||||
if 'version' in parsed and 'operator' in parsed:
|
||||
cur = StrictVersion(new_pip_versions[parsed['package']])
|
||||
dest = parsed['version']
|
||||
op = parsed['operator']
|
||||
if cur == dest:
|
||||
if op in ['==', '>=', '<=']:
|
||||
need_to_reinstall = False
|
||||
elif cur < dest:
|
||||
if op in ['<=', '<', '~=', '!=']:
|
||||
need_to_reinstall = False
|
||||
elif cur > dest:
|
||||
if op in ['>=', '>', '~=', '!=']:
|
||||
need_to_reinstall = False
|
||||
|
||||
if need_to_reinstall:
|
||||
cmd_args = ['install']
|
||||
if 'version' in parsed and 'operator' in parsed:
|
||||
cmd_args.append(parsed['package']+parsed['operator']+parsed['version'].version_string)
|
||||
|
||||
if 'index_url' in parsed:
|
||||
cmd_args.append('--index-url')
|
||||
cmd_args.append(parsed['index_url'])
|
||||
|
||||
cmd = make_pip_cmd(cmd_args)
|
||||
subprocess.check_output(cmd, universal_newlines=True)
|
||||
|
||||
fixed_list.append(parsed['package'])
|
||||
except Exception as e:
|
||||
traceback.print_exc()
|
||||
logging.error(f"[ComfyUI-Manager] Failed to restore '{x}'")
|
||||
logging.error(e)
|
||||
|
||||
if len(fixed_list) > 0:
|
||||
logging.info(f"[ComfyUI-Manager] dependencies in pip_auto_fix.json were fixed: {fixed_list}")
|
||||
|
||||
def sanitize(data):
|
||||
return data.replace("<", "<").replace(">", ">")
|
||||
|
||||
@@ -3960,6 +3960,17 @@
|
||||
"url": "https://huggingface.co/Comfy-Org/HunyuanVideo_repackaged/resolve/main/split_files/vae/hunyuan_video_vae_bf16.safetensors",
|
||||
"size": "493MB"
|
||||
},
|
||||
{
|
||||
"name": "Comfy-Org/hunyuan_video_image_to_video_720p_bf16.safetensors",
|
||||
"type": "diffusion_model",
|
||||
"base": "Hunyuan Video",
|
||||
"save_path": "diffusion_models/hunyuan_video",
|
||||
"description": "Huyuan Video Image2Video diffusion model. repackaged version.",
|
||||
"reference": "https://huggingface.co/Comfy-Org/HunyuanVideo_repackaged",
|
||||
"filename": "hunyuan_video_image_to_video_720p_bf16.safetensors",
|
||||
"url": "https://huggingface.co/Comfy-Org/HunyuanVideo_repackaged/resolve/main/split_files/diffusion_models/hunyuan_video_image_to_video_720p_bf16.safetensors",
|
||||
"size": "25.6GB"
|
||||
},
|
||||
|
||||
{
|
||||
"name": "Comfy-Org/llava_llama3_fp8_scaled.safetensors",
|
||||
@@ -3983,6 +3994,17 @@
|
||||
"url": "https://huggingface.co/Comfy-Org/HunyuanVideo_repackaged/resolve/main/split_files/text_encoders/llava_llama3_fp16.safetensors",
|
||||
"size": "16.1GB"
|
||||
},
|
||||
{
|
||||
"name": "Comfy-Org/llava_llama3_vision.safetensors",
|
||||
"type": "clip_vision",
|
||||
"base": "LLaVA-Llama-3",
|
||||
"save_path": "text_encoders",
|
||||
"description": "llava_llama3_vision clip vison model. This is required for using Hunyuan Video Image2Video.",
|
||||
"reference": "https://huggingface.co/Comfy-Org/HunyuanVideo_repackaged",
|
||||
"filename": "llava_llama3_vision.safetensors",
|
||||
"url": "https://huggingface.co/Comfy-Org/HunyuanVideo_repackaged/resolve/main/split_files/clip_vision/llava_llama3_vision.safetensors",
|
||||
"size": "649MB"
|
||||
},
|
||||
|
||||
{
|
||||
"name": "FLUX.1 [Schnell] Diffusion model",
|
||||
@@ -4547,6 +4569,17 @@
|
||||
"url": "https://huggingface.co/Lightricks/LTX-Video/resolve/main/ltx-video-2b-v0.9.1.safetensors",
|
||||
"size": "5.72GB"
|
||||
},
|
||||
{
|
||||
"name": "LTX-Video 2B v0.9.5 Checkpoint",
|
||||
"type": "checkpoint",
|
||||
"base": "LTX-Video",
|
||||
"save_path": "checkpoints/LTXV",
|
||||
"description": "LTX-Video is the first DiT-based video generation model capable of generating high-quality videos in real-time. It produces 24 FPS videos at a 768x512 resolution faster than they can be watched. Trained on a large-scale dataset of diverse videos, the model generates high-resolution videos with realistic and varied content.",
|
||||
"reference": "https://huggingface.co/Lightricks/LTX-Video",
|
||||
"filename": "ltx-video-2b-v0.9.5.safetensors",
|
||||
"url": "https://huggingface.co/Lightricks/LTX-Video/resolve/main/ltx-video-2b-v0.9.5.safetensors",
|
||||
"size": "6.34GB"
|
||||
},
|
||||
|
||||
{
|
||||
"name": "XLabs-AI/flux-canny-controlnet-v3.safetensors",
|
||||
|
||||
@@ -12,6 +12,56 @@
|
||||
|
||||
|
||||
|
||||
{
|
||||
"author": "aria1th",
|
||||
"title": "ComfyUI-camietagger-onnx",
|
||||
"reference": "https://github.com/aria1th/ComfyUI-camietagger-onnx",
|
||||
"files": [
|
||||
"https://github.com/aria1th/ComfyUI-camietagger-onnx"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "NODES: Camie Tagger"
|
||||
},
|
||||
{
|
||||
"author": "zjkhurry",
|
||||
"title": "comfyui_MetalFX [WIP]",
|
||||
"reference": "https://github.com/zjkhurry/comfyui_MetalFX",
|
||||
"files": [
|
||||
"https://github.com/zjkhurry/comfyui_MetalFX"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "A custom node for ComfyUI that enables high-quality image and video upscaling using Apple MetalFX technology.\nNOTE: The files in the repo are not organized."
|
||||
},
|
||||
{
|
||||
"author": "IfnotFr",
|
||||
"title": "ComfyUI-Connect [WIP]",
|
||||
"reference": "https://github.com/IfnotFr/ComfyUI-Connect",
|
||||
"files": [
|
||||
"https://github.com/IfnotFr/ComfyUI-Connect"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "Transform your ComfyUI into a powerful API, exposing all your saved workflows as ready-to-use HTTP endpoints."
|
||||
},
|
||||
{
|
||||
"author": "RoyKillington",
|
||||
"title": "Miscomfy Nodes [WIP]",
|
||||
"reference": "https://github.com/RoyKillington/miscomfy-nodes",
|
||||
"files": [
|
||||
"https://github.com/RoyKillington/miscomfy-nodes"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "A repo of custom nodes for ComfyUI, from interacting with certain APIs to whatever other miscellanea I end up making"
|
||||
},
|
||||
{
|
||||
"author": "xmarked-ai",
|
||||
"title": "ComfyUI_misc",
|
||||
"reference": "https://github.com/xmarked-ai/ComfyUI_misc",
|
||||
"files": [
|
||||
"https://github.com/xmarked-ai/ComfyUI_misc"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "NODES: Ace IntegerX, Ace FloatX, Ace Color FixX, White Balance X, Depth Displace X, Empty Latent X, KSampler Combo X, ..."
|
||||
},
|
||||
{
|
||||
"author": "Elypha",
|
||||
"title": "ComfyUI-Prompt-Helper [WIP]",
|
||||
@@ -804,16 +854,6 @@
|
||||
"install_type": "git-clone",
|
||||
"description": "nodes for deepseek api\nNOTE: The files in the repo are not organized."
|
||||
},
|
||||
{
|
||||
"author": "807502278",
|
||||
"title": "ComfyUI_TensorRT_Merge [WIP]",
|
||||
"reference": "https://github.com/807502278/ComfyUI_TensorRT_Merge",
|
||||
"files": [
|
||||
"https://github.com/807502278/ComfyUI_TensorRT_Merge"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "Non diffusion models supported by TensorRT, merged Comfyui plugin, added onnx automatic download and trt model conversion nodes."
|
||||
},
|
||||
{
|
||||
"author": "IfnotFr",
|
||||
"title": "ComfyUI-Ifnot-Pack",
|
||||
|
||||
@@ -176,27 +176,6 @@
|
||||
"title_aux": "comfyui-promptbymood [WIP]"
|
||||
}
|
||||
],
|
||||
"https://github.com/807502278/ComfyUI_TensorRT_Merge": [
|
||||
[
|
||||
"BiRefNet2_tensort",
|
||||
"BiRefNet_TRT",
|
||||
"Building_TRT",
|
||||
"Custom_Building_TRT",
|
||||
"DepthAnything_Tensorrt",
|
||||
"Dwpose_Tensorrt",
|
||||
"FaceRestoreTensorrt",
|
||||
"RifeTensorrt",
|
||||
"UpscalerTensorrt",
|
||||
"YoloNasPoseTensorrt",
|
||||
"load_BiRefNet2_tensort",
|
||||
"load_BiRefNet_TRT",
|
||||
"load_DepthAnything_Tensorrt",
|
||||
"load_Dwpos_Tensorrt"
|
||||
],
|
||||
{
|
||||
"title_aux": "ComfyUI_TensorRT_Merge [WIP]"
|
||||
}
|
||||
],
|
||||
"https://github.com/A4P7J1N7M05OT/ComfyUI-ManualSigma": [
|
||||
[
|
||||
"ManualSigma"
|
||||
@@ -987,7 +966,6 @@
|
||||
"DeepSeekImageAnalyst",
|
||||
"DeepSeekImageGeneration",
|
||||
"DeepSeekModelLoader",
|
||||
"GoogleDriveUpload",
|
||||
"ImagePreprocessor",
|
||||
"LLM_Loader",
|
||||
"OpenAICompatibleLoader",
|
||||
@@ -1376,22 +1354,28 @@
|
||||
[
|
||||
"A1111_FLUX_DATA_NODE",
|
||||
"CategorizeNode",
|
||||
"Data_handle_Node",
|
||||
"DeepSeek_Node",
|
||||
"Delay_node",
|
||||
"DongShowTextNode",
|
||||
"Dong_Pixelate_Node",
|
||||
"Dong_Text_Node",
|
||||
"Downloader",
|
||||
"FileMoveNode",
|
||||
"FolderIteratorNODE",
|
||||
"Get_cookies_Node",
|
||||
"Get_json_value_Node",
|
||||
"Get_video_Node",
|
||||
"HashCalculationsNode",
|
||||
"HuggingFaceUploadNode",
|
||||
"IMG2URLNode",
|
||||
"Image2GIFNode",
|
||||
"ImageDownloader",
|
||||
"InputDetectionNode",
|
||||
"LLM_Node",
|
||||
"ImageResizeNode",
|
||||
"LibLib_upload_Node",
|
||||
"LogicToolsNode",
|
||||
"LoraIterator",
|
||||
"PromptConcatNode",
|
||||
"RandomNumbersNode",
|
||||
"RenameNode",
|
||||
"ResolutionNode",
|
||||
@@ -1401,6 +1385,7 @@
|
||||
"TranslateAPINode",
|
||||
"ZIPwith7zNode",
|
||||
"img_understanding_Node",
|
||||
"klingai_video_Node",
|
||||
"path_join_Node",
|
||||
"save_img_NODE",
|
||||
"set_api_Node"
|
||||
@@ -1538,6 +1523,14 @@
|
||||
"title_aux": "Comfy UI Robe Nodes [UNSAFE]"
|
||||
}
|
||||
],
|
||||
"https://github.com/RoyKillington/miscomfy-nodes": [
|
||||
[
|
||||
"VeniceUpscale"
|
||||
],
|
||||
{
|
||||
"title_aux": "Miscomfy Nodes [WIP]"
|
||||
}
|
||||
],
|
||||
"https://github.com/SS-snap/ComfyUI-Snap_Processing": [
|
||||
[
|
||||
"AreaCalculator",
|
||||
@@ -2097,6 +2090,14 @@
|
||||
"title_aux": "ComfyUI-SkipCFGSigmas"
|
||||
}
|
||||
],
|
||||
"https://github.com/aria1th/ComfyUI-camietagger-onnx": [
|
||||
[
|
||||
"CamieTagger"
|
||||
],
|
||||
{
|
||||
"title_aux": "ComfyUI-camietagger-onnx"
|
||||
}
|
||||
],
|
||||
"https://github.com/artem-konevskikh/comfyui-split-merge-video": [
|
||||
[
|
||||
"VideoMerger",
|
||||
@@ -2578,6 +2579,7 @@
|
||||
"GLIGENLoader",
|
||||
"GLIGENTextBoxApply",
|
||||
"GrowMask",
|
||||
"HunyuanImageToVideo",
|
||||
"HyperTile",
|
||||
"HypernetworkLoader",
|
||||
"ImageBatch",
|
||||
@@ -2767,6 +2769,7 @@
|
||||
"TestVariadicAverage",
|
||||
"TestWhileLoopClose",
|
||||
"TestWhileLoopOpen",
|
||||
"TextEncodeHunyuanVideo_ImageToVideo",
|
||||
"ThresholdMask",
|
||||
"TomePatchModel",
|
||||
"TorchCompileModel",
|
||||
@@ -3217,8 +3220,12 @@
|
||||
"XIS_FromListGet1Model",
|
||||
"XIS_FromListGet1String",
|
||||
"XIS_INT_Slider",
|
||||
"XIS_ImageMaskMirror",
|
||||
"XIS_InvertMask",
|
||||
"XIS_IsThereAnyData",
|
||||
"XIS_PromptsWithSwitches",
|
||||
"XIS_ResizeImageOrMask"
|
||||
"XIS_ResizeImageOrMask",
|
||||
"XIS_ResizeToDivisible"
|
||||
],
|
||||
{
|
||||
"title_aux": "Xiser_Nodes [WIP]"
|
||||
@@ -3898,6 +3905,8 @@
|
||||
"HyVideoEmptyTextEmbeds",
|
||||
"HyVideoEncode",
|
||||
"HyVideoEnhanceAVideo",
|
||||
"HyVideoGetClosestBucketSize",
|
||||
"HyVideoI2VEncode",
|
||||
"HyVideoInverseSampler",
|
||||
"HyVideoLatentPreview",
|
||||
"HyVideoLoraBlockEdit",
|
||||
@@ -5591,6 +5600,31 @@
|
||||
"title_aux": "CombineMasksNode"
|
||||
}
|
||||
],
|
||||
"https://github.com/xmarked-ai/ComfyUI_misc": [
|
||||
[
|
||||
"AceColorFixX",
|
||||
"AceFloatX",
|
||||
"AceIntegerX",
|
||||
"CheckpointLoaderBNB_X",
|
||||
"CheckpointLoaderNF4_X",
|
||||
"DepthDisplaceX",
|
||||
"EmptyLatentX",
|
||||
"IfConditionX",
|
||||
"ImageTileSquare",
|
||||
"ImageUntileSquare",
|
||||
"KSamplerComboX",
|
||||
"LoopCloseX",
|
||||
"LoopOpenX",
|
||||
"LoraBatchSamplerX",
|
||||
"RelightX",
|
||||
"RemoveBackgroundX",
|
||||
"UnetLoaderBNB_X",
|
||||
"WhiteBalanceX"
|
||||
],
|
||||
{
|
||||
"title_aux": "ComfyUI_misc"
|
||||
}
|
||||
],
|
||||
"https://github.com/yanhuifair/ComfyUI-FairLab": [
|
||||
[
|
||||
"CLIPTranslatedNode",
|
||||
@@ -5674,6 +5708,14 @@
|
||||
"title_aux": "Comfyui_image2prompt"
|
||||
}
|
||||
],
|
||||
"https://github.com/zjkhurry/comfyui_MetalFX": [
|
||||
[
|
||||
"metalFXImg"
|
||||
],
|
||||
{
|
||||
"title_aux": "comfyui_MetalFX [WIP]"
|
||||
}
|
||||
],
|
||||
"https://github.com/zyd232/ComfyUI-zyd232-Nodes": [
|
||||
[
|
||||
"zyd232 ImagesPixelsCompare",
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -11,6 +11,26 @@
|
||||
|
||||
|
||||
|
||||
{
|
||||
"author": "807502278",
|
||||
"title": "ComfyUI_TensorRT_Merge [REMOVED]",
|
||||
"reference": "https://github.com/807502278/ComfyUI_TensorRT_Merge",
|
||||
"files": [
|
||||
"https://github.com/807502278/ComfyUI_TensorRT_Merge"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "Non diffusion models supported by TensorRT, merged Comfyui plugin, added onnx automatic download and trt model conversion nodes."
|
||||
},
|
||||
{
|
||||
"author": "logtd",
|
||||
"title": "ComfyUI-LTXTricks [DEPRECATED]",
|
||||
"reference": "https://github.com/logtd/ComfyUI-LTXTricks",
|
||||
"files": [
|
||||
"https://github.com/logtd/ComfyUI-LTXTricks"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "A set of nodes that provide additional controls for the LTX Video model"
|
||||
},
|
||||
{
|
||||
"author": "JichaoLiang",
|
||||
"title": "Immortal_comfyUI [REMOVED]",
|
||||
|
||||
@@ -10,7 +10,37 @@
|
||||
|
||||
|
||||
|
||||
|
||||
{
|
||||
"author": "GeekyGhost",
|
||||
"title": "ComfyUI-Geeky-Kokoro-TTS",
|
||||
"reference": "https://github.com/GeekyGhost/ComfyUI-Geeky-Kokoro-TTS",
|
||||
"files": [
|
||||
"https://github.com/GeekyGhost/ComfyUI-Geeky-Kokoro-TTS"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "A powerful and feature-rich custom node collection for ComfyUI that integrates the Kokoro TTS (Text-to-Speech) system with advanced voice modification capabilities. This package allows you to generate natural-sounding speech and apply various voice effects within ComfyUI workflows."
|
||||
},
|
||||
{
|
||||
"author": "billwuhao",
|
||||
"title": "ComfyUI_KokoroTTS_MW",
|
||||
"reference": "https://github.com/billwuhao/ComfyUI_KokoroTTS_MW",
|
||||
"files": [
|
||||
"https://github.com/billwuhao/ComfyUI_KokoroTTS_MW"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "A Text To Speech node using Kokoro TTS in ComfyUI. Supports 8 languages and 150 voices"
|
||||
},
|
||||
{
|
||||
"author": "S4MUEL404",
|
||||
"title": "Image Position Blend",
|
||||
"id": "ComfyUI-Image-Position-Blend",
|
||||
"reference": "https://github.com/S4MUEL-404/ComfyUI-Image-Position-Blend",
|
||||
"files": [
|
||||
"https://github.com/S4MUEL-404/ComfyUI-Image-Position-Blend"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "A custom node for conveniently adjusting the overlay position of two images."
|
||||
},
|
||||
{
|
||||
"author": "pxl-pshr",
|
||||
"title": "GlitchNodes",
|
||||
|
||||
@@ -2547,6 +2547,7 @@
|
||||
"Base64ToConditioning",
|
||||
"CLIPTextEncodeFluxUnguided",
|
||||
"ClownRegionalConditioning",
|
||||
"ClownRegionalConditioning3",
|
||||
"Conditioning Recast FP64",
|
||||
"ConditioningAdd",
|
||||
"ConditioningAverageScheduler",
|
||||
@@ -4151,6 +4152,15 @@
|
||||
"title_aux": "ComfyUI-SD3LatentSelectRes"
|
||||
}
|
||||
],
|
||||
"https://github.com/GeekyGhost/ComfyUI-Geeky-Kokoro-TTS": [
|
||||
[
|
||||
"GeekyKokoroAdvancedVoice",
|
||||
"GeekyKokoroTTS"
|
||||
],
|
||||
{
|
||||
"title_aux": "ComfyUI-Geeky-Kokoro-TTS"
|
||||
}
|
||||
],
|
||||
"https://github.com/GeekyGhost/ComfyUI-GeekyRemB": [
|
||||
[
|
||||
"GeekyRemB"
|
||||
@@ -5970,6 +5980,27 @@
|
||||
"title_aux": "ComfyUI-LivePortraitNode (Replicate API)"
|
||||
}
|
||||
],
|
||||
"https://github.com/Lightricks/ComfyUI-LTXVideo": [
|
||||
[
|
||||
"AddLatentGuide",
|
||||
"LTXAttentioOverride",
|
||||
"LTXAttentionBank",
|
||||
"LTXAttnOverride",
|
||||
"LTXFetaEnhance",
|
||||
"LTXFlowEditCFGGuider",
|
||||
"LTXFlowEditSampler",
|
||||
"LTXForwardModelSamplingPred",
|
||||
"LTXPerturbedAttention",
|
||||
"LTXPrepareAttnInjections",
|
||||
"LTXRFForwardODESampler",
|
||||
"LTXRFReverseODESampler",
|
||||
"LTXReverseModelSamplingPred",
|
||||
"ModifyLTXModel"
|
||||
],
|
||||
{
|
||||
"title_aux": "ComfyUI-LTXVideo"
|
||||
}
|
||||
],
|
||||
"https://github.com/Limitex/ComfyUI-Calculation": [
|
||||
[
|
||||
"CenterCalculation",
|
||||
@@ -7862,6 +7893,14 @@
|
||||
"title_aux": "comfyui_io_helpers"
|
||||
}
|
||||
],
|
||||
"https://github.com/S4MUEL-404/ComfyUI-Image-Position-Blend": [
|
||||
[
|
||||
"ImagePositionBlend"
|
||||
],
|
||||
{
|
||||
"title_aux": "Image Position Blend"
|
||||
}
|
||||
],
|
||||
"https://github.com/SEkINVR/ComfyUI-SaveAs": [
|
||||
[
|
||||
"ComfyUISaveAs"
|
||||
@@ -11442,7 +11481,8 @@
|
||||
"https://github.com/aidenli/ComfyUI_NYJY": [
|
||||
[
|
||||
"CivitaiPrompt",
|
||||
"ConverAnyToString",
|
||||
"ConvertAnyToString",
|
||||
"ConvertStringToNumber",
|
||||
"CustomLatentImage-NYJY",
|
||||
"CustomLatentImageSimple",
|
||||
"FloatSlider-NYJY",
|
||||
@@ -12613,6 +12653,15 @@
|
||||
"title_aux": "ComfyUI_TextAssets"
|
||||
}
|
||||
],
|
||||
"https://github.com/billwuhao/ComfyUI_KokoroTTS_MW": [
|
||||
[
|
||||
"Kokoro Run",
|
||||
"Kokoro ZH Run"
|
||||
],
|
||||
{
|
||||
"title_aux": "ComfyUI_KokoroTTS_MW"
|
||||
}
|
||||
],
|
||||
"https://github.com/billwuhao/ComfyUI_OneButtonPrompt_Flux": [
|
||||
[
|
||||
"DeepseekRun",
|
||||
@@ -14700,6 +14749,7 @@
|
||||
"GLIGENLoader",
|
||||
"GLIGENTextBoxApply",
|
||||
"GrowMask",
|
||||
"HunyuanImageToVideo",
|
||||
"HyperTile",
|
||||
"HypernetworkLoader",
|
||||
"ImageBatch",
|
||||
@@ -14889,6 +14939,7 @@
|
||||
"TestVariadicAverage",
|
||||
"TestWhileLoopClose",
|
||||
"TestWhileLoopOpen",
|
||||
"TextEncodeHunyuanVideo_ImageToVideo",
|
||||
"ThresholdMask",
|
||||
"TomePatchModel",
|
||||
"TorchCompileModel",
|
||||
@@ -20005,7 +20056,7 @@
|
||||
"description": "A ComfyUI plugin for efficient image sequence processing. Features frame insertion, duplication, and removal with intuitive controls.",
|
||||
"nickname": "QuickSeq",
|
||||
"title": "Quick Image Sequence Process",
|
||||
"title_aux": "Quick Image Sequence Process"
|
||||
"title_aux": "ComfyUI-QuickImageSequenceProcess"
|
||||
}
|
||||
],
|
||||
"https://github.com/kealiu/ComfyUI-S3-Tools": [
|
||||
@@ -20040,7 +20091,8 @@
|
||||
"BinarizeImage",
|
||||
"BinarizeImageUsingOtsu",
|
||||
"BrightnessTransparency",
|
||||
"GrayscaleImage"
|
||||
"GrayscaleImage",
|
||||
"RemoveWhiteBackgroundNoise"
|
||||
],
|
||||
{
|
||||
"title_aux": "ComfyUI-Image-Toolkit"
|
||||
@@ -20339,6 +20391,8 @@
|
||||
"HyVideoEmptyTextEmbeds",
|
||||
"HyVideoEncode",
|
||||
"HyVideoEnhanceAVideo",
|
||||
"HyVideoGetClosestBucketSize",
|
||||
"HyVideoI2VEncode",
|
||||
"HyVideoInverseSampler",
|
||||
"HyVideoLatentPreview",
|
||||
"HyVideoLoraBlockEdit",
|
||||
@@ -21807,27 +21861,6 @@
|
||||
"title_aux": "ComfyUI-InversedNoise"
|
||||
}
|
||||
],
|
||||
"https://github.com/logtd/ComfyUI-LTXTricks": [
|
||||
[
|
||||
"AddLatentGuide",
|
||||
"LTXAttentioOverride",
|
||||
"LTXAttentionBank",
|
||||
"LTXAttnOverride",
|
||||
"LTXFetaEnhance",
|
||||
"LTXFlowEditCFGGuider",
|
||||
"LTXFlowEditSampler",
|
||||
"LTXForwardModelSamplingPred",
|
||||
"LTXPerturbedAttention",
|
||||
"LTXPrepareAttnInjections",
|
||||
"LTXRFForwardODESampler",
|
||||
"LTXRFReverseODESampler",
|
||||
"LTXReverseModelSamplingPred",
|
||||
"ModifyLTXModel"
|
||||
],
|
||||
{
|
||||
"title_aux": "ComfyUI-LTXTricks"
|
||||
}
|
||||
],
|
||||
"https://github.com/logtd/ComfyUI-MochiEdit": [
|
||||
[
|
||||
"MochiPrepareSigmas",
|
||||
@@ -23297,7 +23330,7 @@
|
||||
"SingleBooleanTrigger",
|
||||
"SixBooleanTrigger",
|
||||
"StepsAndCfg",
|
||||
"TextBox",
|
||||
"TextBoxMira",
|
||||
"TextCombinerSix",
|
||||
"TextCombinerTwo",
|
||||
"TextLoopCombiner",
|
||||
@@ -27188,6 +27221,7 @@
|
||||
],
|
||||
"https://github.com/sugarkwork/comfyui_tag_fillter": [
|
||||
[
|
||||
"TagCategory",
|
||||
"TagCategoryEnhance",
|
||||
"TagComparator",
|
||||
"TagEnhance",
|
||||
|
||||
@@ -1,5 +1,39 @@
|
||||
{
|
||||
"models": [
|
||||
{
|
||||
"name": "Comfy-Org/hunyuan_video_image_to_video_720p_bf16.safetensors",
|
||||
"type": "diffusion_model",
|
||||
"base": "Hunyuan Video",
|
||||
"save_path": "diffusion_models/hunyuan_video",
|
||||
"description": "Huyuan Video Image2Video diffusion model. repackaged version.",
|
||||
"reference": "https://huggingface.co/Comfy-Org/HunyuanVideo_repackaged",
|
||||
"filename": "hunyuan_video_image_to_video_720p_bf16.safetensors",
|
||||
"url": "https://huggingface.co/Comfy-Org/HunyuanVideo_repackaged/resolve/main/split_files/diffusion_models/hunyuan_video_image_to_video_720p_bf16.safetensors",
|
||||
"size": "25.6GB"
|
||||
},
|
||||
{
|
||||
"name": "Comfy-Org/llava_llama3_vision.safetensors",
|
||||
"type": "clip_vision",
|
||||
"base": "LLaVA-Llama-3",
|
||||
"save_path": "text_encoders",
|
||||
"description": "llava_llama3_vision clip vison model. This is required for using Hunyuan Video Image2Video.",
|
||||
"reference": "https://huggingface.co/Comfy-Org/HunyuanVideo_repackaged",
|
||||
"filename": "llava_llama3_vision.safetensors",
|
||||
"url": "https://huggingface.co/Comfy-Org/HunyuanVideo_repackaged/resolve/main/split_files/clip_vision/llava_llama3_vision.safetensors",
|
||||
"size": "649MB"
|
||||
},
|
||||
|
||||
{
|
||||
"name": "LTX-Video 2B v0.9.5 Checkpoint",
|
||||
"type": "checkpoint",
|
||||
"base": "LTX-Video",
|
||||
"save_path": "checkpoints/LTXV",
|
||||
"description": "LTX-Video is the first DiT-based video generation model capable of generating high-quality videos in real-time. It produces 24 FPS videos at a 768x512 resolution faster than they can be watched. Trained on a large-scale dataset of diverse videos, the model generates high-resolution videos with realistic and varied content.",
|
||||
"reference": "https://huggingface.co/Lightricks/LTX-Video",
|
||||
"filename": "ltx-video-2b-v0.9.5.safetensors",
|
||||
"url": "https://huggingface.co/Lightricks/LTX-Video/resolve/main/ltx-video-2b-v0.9.5.safetensors",
|
||||
"size": "6.34GB"
|
||||
},
|
||||
{
|
||||
"name": "kolors/vae/diffusion_pytorch_model.fp16.safetensors",
|
||||
"type": "VAE",
|
||||
|
||||
@@ -507,7 +507,7 @@ check_bypass_ssl()
|
||||
# Perform install
|
||||
processed_install = set()
|
||||
script_list_path = os.path.join(folder_paths.user_directory, "default", "ComfyUI-Manager", "startup-scripts", "install-scripts.txt")
|
||||
pip_fixer = manager_util.PIPFixer(manager_util.get_installed_packages(), comfy_path)
|
||||
pip_fixer = manager_util.PIPFixer(manager_util.get_installed_packages(), comfy_path, manager_files_path)
|
||||
|
||||
|
||||
def is_installed(name):
|
||||
@@ -816,11 +816,11 @@ if script_executed:
|
||||
else:
|
||||
sys_argv = sys.argv.copy()
|
||||
|
||||
if sys.platform.startswith('win32'):
|
||||
cmds = ['"' + sys.executable + '"', '"' + sys_argv[0] + '"'] + sys_argv[1:]
|
||||
elif sys_argv[0].endswith("__main__.py"): # this is a python module
|
||||
if sys_argv[0].endswith("__main__.py"): # this is a python module
|
||||
module_name = os.path.basename(os.path.dirname(sys_argv[0]))
|
||||
cmds = [sys.executable, '-m', module_name] + sys_argv[1:]
|
||||
elif sys.platform.startswith('win32'):
|
||||
cmds = ['"' + sys.executable + '"', '"' + sys_argv[0] + '"'] + sys_argv[1:]
|
||||
else:
|
||||
cmds = [sys.executable] + sys_argv
|
||||
|
||||
|
||||
@@ -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 = "3.29"
|
||||
version = "3.30.2"
|
||||
license = { file = "LICENSE.txt" }
|
||||
dependencies = ["GitPython", "PyGithub", "matrix-client==0.4.0", "transformers", "huggingface-hub>0.20", "typer", "rich", "typing-extensions", "toml", "uv", "chardet"]
|
||||
|
||||
|
||||
Reference in New Issue
Block a user