Compare commits
3 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d8f111a5e3 | ||
|
|
ae5565ce68 | ||
|
|
e4c370a7d9 |
@@ -238,7 +238,8 @@
|
|||||||
],
|
],
|
||||||
"https://github.com/1038lab/ComfyUI-VoxCPMTTS": [
|
"https://github.com/1038lab/ComfyUI-VoxCPMTTS": [
|
||||||
[
|
[
|
||||||
"AILab_VoxCPMTTS"
|
"AILab_VoxCPMTTS",
|
||||||
|
"AILab_VoxCPMTTS_Advanced"
|
||||||
],
|
],
|
||||||
{
|
{
|
||||||
"title_aux": "ComfyUI-VoxCPMTTS"
|
"title_aux": "ComfyUI-VoxCPMTTS"
|
||||||
@@ -16319,6 +16320,7 @@
|
|||||||
"BboxSplit",
|
"BboxSplit",
|
||||||
"Cascade",
|
"Cascade",
|
||||||
"ImageFilters",
|
"ImageFilters",
|
||||||
|
"LMS_VisionController",
|
||||||
"Luts",
|
"Luts",
|
||||||
"LutsAdvanced",
|
"LutsAdvanced",
|
||||||
"RemoveAreaByMask",
|
"RemoveAreaByMask",
|
||||||
@@ -16696,6 +16698,9 @@
|
|||||||
"https://github.com/ShootTheSound/comfyUI-Realtime-Lora": [
|
"https://github.com/ShootTheSound/comfyUI-Realtime-Lora": [
|
||||||
[
|
[
|
||||||
"ApplyTrainedLora",
|
"ApplyTrainedLora",
|
||||||
|
"MusubiQwenImageEditLoraTrainer",
|
||||||
|
"MusubiQwenImageLoraTrainer",
|
||||||
|
"MusubiWanLoraTrainer",
|
||||||
"MusubiZImageLoraTrainer",
|
"MusubiZImageLoraTrainer",
|
||||||
"RealtimeLoraTrainer",
|
"RealtimeLoraTrainer",
|
||||||
"SD15LoraTrainer",
|
"SD15LoraTrainer",
|
||||||
@@ -22625,13 +22630,21 @@
|
|||||||
"HSVAdjuster",
|
"HSVAdjuster",
|
||||||
"HeightAmplifier",
|
"HeightAmplifier",
|
||||||
"HeightCombiner",
|
"HeightCombiner",
|
||||||
|
"HeightToNormal",
|
||||||
"ImageBitDepthChecker",
|
"ImageBitDepthChecker",
|
||||||
"ImageEnhancement",
|
"ImageEnhancement",
|
||||||
"LevelsAdjustment",
|
"LevelsAdjustment",
|
||||||
"LotusHeightProcessor",
|
"LotusHeightProcessor",
|
||||||
|
"LotusNormalProcessor",
|
||||||
"MicroDetailOverlay",
|
"MicroDetailOverlay",
|
||||||
"MultiTextureBlender",
|
"MultiTextureBlender",
|
||||||
|
"NormalConverter",
|
||||||
|
"NormalFormatAuto",
|
||||||
|
"NormalFormatBruteForce",
|
||||||
|
"NormalFormatValidator",
|
||||||
|
"NormalIntensity",
|
||||||
"NormalMapCombiner",
|
"NormalMapCombiner",
|
||||||
|
"NormalToDepth",
|
||||||
"PBRAdjuster",
|
"PBRAdjuster",
|
||||||
"PBRBatchToPipe",
|
"PBRBatchToPipe",
|
||||||
"PBRCombiner",
|
"PBRCombiner",
|
||||||
@@ -22651,6 +22664,8 @@
|
|||||||
"SSSMapGenerator",
|
"SSSMapGenerator",
|
||||||
"ScratchesGenerator",
|
"ScratchesGenerator",
|
||||||
"SeamlessTiling",
|
"SeamlessTiling",
|
||||||
|
"SharpenDepth",
|
||||||
|
"SharpenNormal",
|
||||||
"SimpleRecolor",
|
"SimpleRecolor",
|
||||||
"SmartBlur",
|
"SmartBlur",
|
||||||
"SmartTextureResizer",
|
"SmartTextureResizer",
|
||||||
@@ -50270,6 +50285,7 @@
|
|||||||
"vsLinx_BooleanOrOperator",
|
"vsLinx_BooleanOrOperator",
|
||||||
"vsLinx_BypassOnBool",
|
"vsLinx_BypassOnBool",
|
||||||
"vsLinx_FitImageIntoBBoxMask",
|
"vsLinx_FitImageIntoBBoxMask",
|
||||||
|
"vsLinx_ImpactMultilineWildcardText",
|
||||||
"vsLinx_LoadSelectedImagesBatch",
|
"vsLinx_LoadSelectedImagesBatch",
|
||||||
"vsLinx_LoadSelectedImagesList",
|
"vsLinx_LoadSelectedImagesList",
|
||||||
"vsLinx_MuteOnBool"
|
"vsLinx_MuteOnBool"
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
2837
github-stats.json
2837
github-stats.json
File diff suppressed because it is too large
Load Diff
@@ -44,7 +44,7 @@ import manager_migration
|
|||||||
from node_package import InstalledNodePackage
|
from node_package import InstalledNodePackage
|
||||||
|
|
||||||
|
|
||||||
version_code = [3, 38, 2]
|
version_code = [3, 38, 3]
|
||||||
version_str = f"V{version_code[0]}.{version_code[1]}" + (f'.{version_code[2]}' if len(version_code) > 2 else '')
|
version_str = f"V{version_code[0]}.{version_code[1]}" + (f'.{version_code[2]}' if len(version_code) > 2 else '')
|
||||||
|
|
||||||
|
|
||||||
@@ -2531,22 +2531,22 @@ def update_to_stable_comfyui(repo_path):
|
|||||||
logging.error('\t'+branch.name)
|
logging.error('\t'+branch.name)
|
||||||
return "fail", None
|
return "fail", None
|
||||||
|
|
||||||
versions, current_tag, _ = get_comfyui_versions(repo)
|
versions, current_tag, latest_tag = get_comfyui_versions(repo)
|
||||||
|
|
||||||
if len(versions) == 0 or (len(versions) == 1 and versions[0] == 'nightly'):
|
if latest_tag is None:
|
||||||
logging.info("[ComfyUI-Manager] Unable to update to the stable ComfyUI version.")
|
logging.info("[ComfyUI-Manager] Unable to update to the stable ComfyUI version.")
|
||||||
return "fail", None
|
return "fail", None
|
||||||
|
|
||||||
if versions[0] == 'nightly':
|
|
||||||
latest_tag = versions[1]
|
|
||||||
else:
|
|
||||||
latest_tag = versions[0]
|
|
||||||
|
|
||||||
if current_tag == latest_tag:
|
tag_ref = next((t for t in repo.tags if t.name == latest_tag), None)
|
||||||
|
if tag_ref is None:
|
||||||
|
logging.info(f"[ComfyUI-Manager] Unable to locate tag '{latest_tag}' in repository.")
|
||||||
|
return "fail", None
|
||||||
|
|
||||||
|
if repo.head.commit == tag_ref.commit:
|
||||||
return "skip", None
|
return "skip", None
|
||||||
else:
|
else:
|
||||||
logging.info(f"[ComfyUI-Manager] Updating ComfyUI: {current_tag} -> {latest_tag}")
|
logging.info(f"[ComfyUI-Manager] Updating ComfyUI: {current_tag} -> {latest_tag}")
|
||||||
repo.git.checkout(latest_tag)
|
repo.git.checkout(tag_ref.name)
|
||||||
execute_install_script("ComfyUI", repo_path, instant_execution=False, no_deps=False)
|
execute_install_script("ComfyUI", repo_path, instant_execution=False, no_deps=False)
|
||||||
return 'updated', latest_tag
|
return 'updated', latest_tag
|
||||||
except:
|
except:
|
||||||
@@ -3370,36 +3370,80 @@ async def restore_snapshot(snapshot_path, git_helper_extras=None):
|
|||||||
|
|
||||||
|
|
||||||
def get_comfyui_versions(repo=None):
|
def get_comfyui_versions(repo=None):
|
||||||
if repo is None:
|
repo = repo or git.Repo(comfy_path)
|
||||||
repo = git.Repo(comfy_path)
|
|
||||||
|
|
||||||
|
remote_name = None
|
||||||
try:
|
try:
|
||||||
remote = get_remote_name(repo)
|
remote_name = get_remote_name(repo)
|
||||||
repo.remotes[remote].fetch()
|
repo.remotes[remote_name].fetch()
|
||||||
except:
|
except:
|
||||||
logging.error("[ComfyUI-Manager] Failed to fetch ComfyUI")
|
logging.error("[ComfyUI-Manager] Failed to fetch ComfyUI")
|
||||||
|
|
||||||
versions = [x.name for x in repo.tags if x.name.startswith('v')]
|
def parse_semver(tag_name):
|
||||||
|
match = re.match(r'^v(\d+)\.(\d+)\.(\d+)$', tag_name)
|
||||||
|
return tuple(int(x) for x in match.groups()) if match else None
|
||||||
|
|
||||||
# nearest tag
|
def normalize_describe(tag_name):
|
||||||
versions = sorted(versions, key=lambda v: repo.git.log('-1', '--format=%ct', v), reverse=True)
|
if not tag_name:
|
||||||
versions = versions[:4]
|
return None
|
||||||
|
base = tag_name.split('-', 1)[0]
|
||||||
|
return base if parse_semver(base) else None
|
||||||
|
|
||||||
current_tag = repo.git.describe('--tags')
|
# Collect semver tags and sort descending (highest first)
|
||||||
|
semver_tags = []
|
||||||
|
for tag in repo.tags:
|
||||||
|
semver = parse_semver(tag.name)
|
||||||
|
if semver:
|
||||||
|
semver_tags.append((semver, tag.name))
|
||||||
|
semver_tags.sort(key=lambda x: x[0], reverse=True)
|
||||||
|
semver_tags = [name for _, name in semver_tags]
|
||||||
|
|
||||||
if current_tag not in versions:
|
latest_tag = semver_tags[0] if semver_tags else None
|
||||||
versions = sorted(versions + [current_tag], key=lambda v: repo.git.log('-1', '--format=%ct', v), reverse=True)
|
|
||||||
versions = versions[:4]
|
|
||||||
|
|
||||||
main_branch = repo.heads.master
|
try:
|
||||||
latest_commit = main_branch.commit
|
described = repo.git.describe('--tags')
|
||||||
latest_tag = repo.git.describe('--tags', latest_commit.hexsha)
|
except Exception:
|
||||||
|
described = ''
|
||||||
|
|
||||||
if latest_tag != versions[0]:
|
try:
|
||||||
versions.insert(0, 'nightly')
|
exact_tag = repo.git.describe('--tags', '--exact-match')
|
||||||
else:
|
except Exception:
|
||||||
versions[0] = 'nightly'
|
exact_tag = ''
|
||||||
|
|
||||||
|
head_is_default = False
|
||||||
|
if remote_name:
|
||||||
|
try:
|
||||||
|
default_head_ref = repo.refs[f'{remote_name}/HEAD']
|
||||||
|
default_commit = default_head_ref.reference.commit
|
||||||
|
head_is_default = repo.head.commit == default_commit
|
||||||
|
except Exception:
|
||||||
|
head_is_default = False
|
||||||
|
|
||||||
|
nearest_semver = normalize_describe(described)
|
||||||
|
exact_semver = exact_tag if parse_semver(exact_tag) else None
|
||||||
|
|
||||||
|
if head_is_default and not exact_tag:
|
||||||
current_tag = 'nightly'
|
current_tag = 'nightly'
|
||||||
|
else:
|
||||||
|
current_tag = exact_tag or described or 'nightly'
|
||||||
|
|
||||||
|
# Prepare semver list for display: top 4 plus the current/nearest semver if missing
|
||||||
|
display_semver_tags = semver_tags[:4]
|
||||||
|
if exact_semver and exact_semver not in display_semver_tags:
|
||||||
|
display_semver_tags.append(exact_semver)
|
||||||
|
elif nearest_semver and nearest_semver not in display_semver_tags:
|
||||||
|
display_semver_tags.append(nearest_semver)
|
||||||
|
|
||||||
|
versions = ['nightly']
|
||||||
|
|
||||||
|
if current_tag and not exact_semver and current_tag not in versions and current_tag not in display_semver_tags:
|
||||||
|
versions.append(current_tag)
|
||||||
|
|
||||||
|
for tag in display_semver_tags:
|
||||||
|
if tag not in versions:
|
||||||
|
versions.append(tag)
|
||||||
|
|
||||||
|
versions = versions[:6]
|
||||||
|
|
||||||
return versions, current_tag, latest_tag
|
return versions, current_tag, latest_tag
|
||||||
|
|
||||||
|
|||||||
@@ -9000,6 +9000,9 @@
|
|||||||
"AudioResampler",
|
"AudioResampler",
|
||||||
"CollectKeyedVideosNode",
|
"CollectKeyedVideosNode",
|
||||||
"CollectVideosNode",
|
"CollectVideosNode",
|
||||||
|
"ConformAudio",
|
||||||
|
"ConformVideo",
|
||||||
|
"ExtendVideoNearestFrame",
|
||||||
"ImageDelay",
|
"ImageDelay",
|
||||||
"IntToString",
|
"IntToString",
|
||||||
"KlingVideoHandler",
|
"KlingVideoHandler",
|
||||||
@@ -9010,7 +9013,6 @@
|
|||||||
"StringSplitSelect",
|
"StringSplitSelect",
|
||||||
"Unbroken-Video-Handler",
|
"Unbroken-Video-Handler",
|
||||||
"VideoHandler",
|
"VideoHandler",
|
||||||
"VideoSanitizer",
|
|
||||||
"WorkflowLoggerNode"
|
"WorkflowLoggerNode"
|
||||||
],
|
],
|
||||||
{
|
{
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -238,7 +238,8 @@
|
|||||||
],
|
],
|
||||||
"https://github.com/1038lab/ComfyUI-VoxCPMTTS": [
|
"https://github.com/1038lab/ComfyUI-VoxCPMTTS": [
|
||||||
[
|
[
|
||||||
"AILab_VoxCPMTTS"
|
"AILab_VoxCPMTTS",
|
||||||
|
"AILab_VoxCPMTTS_Advanced"
|
||||||
],
|
],
|
||||||
{
|
{
|
||||||
"title_aux": "ComfyUI-VoxCPMTTS"
|
"title_aux": "ComfyUI-VoxCPMTTS"
|
||||||
@@ -16319,6 +16320,7 @@
|
|||||||
"BboxSplit",
|
"BboxSplit",
|
||||||
"Cascade",
|
"Cascade",
|
||||||
"ImageFilters",
|
"ImageFilters",
|
||||||
|
"LMS_VisionController",
|
||||||
"Luts",
|
"Luts",
|
||||||
"LutsAdvanced",
|
"LutsAdvanced",
|
||||||
"RemoveAreaByMask",
|
"RemoveAreaByMask",
|
||||||
@@ -16696,6 +16698,9 @@
|
|||||||
"https://github.com/ShootTheSound/comfyUI-Realtime-Lora": [
|
"https://github.com/ShootTheSound/comfyUI-Realtime-Lora": [
|
||||||
[
|
[
|
||||||
"ApplyTrainedLora",
|
"ApplyTrainedLora",
|
||||||
|
"MusubiQwenImageEditLoraTrainer",
|
||||||
|
"MusubiQwenImageLoraTrainer",
|
||||||
|
"MusubiWanLoraTrainer",
|
||||||
"MusubiZImageLoraTrainer",
|
"MusubiZImageLoraTrainer",
|
||||||
"RealtimeLoraTrainer",
|
"RealtimeLoraTrainer",
|
||||||
"SD15LoraTrainer",
|
"SD15LoraTrainer",
|
||||||
@@ -22625,13 +22630,21 @@
|
|||||||
"HSVAdjuster",
|
"HSVAdjuster",
|
||||||
"HeightAmplifier",
|
"HeightAmplifier",
|
||||||
"HeightCombiner",
|
"HeightCombiner",
|
||||||
|
"HeightToNormal",
|
||||||
"ImageBitDepthChecker",
|
"ImageBitDepthChecker",
|
||||||
"ImageEnhancement",
|
"ImageEnhancement",
|
||||||
"LevelsAdjustment",
|
"LevelsAdjustment",
|
||||||
"LotusHeightProcessor",
|
"LotusHeightProcessor",
|
||||||
|
"LotusNormalProcessor",
|
||||||
"MicroDetailOverlay",
|
"MicroDetailOverlay",
|
||||||
"MultiTextureBlender",
|
"MultiTextureBlender",
|
||||||
|
"NormalConverter",
|
||||||
|
"NormalFormatAuto",
|
||||||
|
"NormalFormatBruteForce",
|
||||||
|
"NormalFormatValidator",
|
||||||
|
"NormalIntensity",
|
||||||
"NormalMapCombiner",
|
"NormalMapCombiner",
|
||||||
|
"NormalToDepth",
|
||||||
"PBRAdjuster",
|
"PBRAdjuster",
|
||||||
"PBRBatchToPipe",
|
"PBRBatchToPipe",
|
||||||
"PBRCombiner",
|
"PBRCombiner",
|
||||||
@@ -22651,6 +22664,8 @@
|
|||||||
"SSSMapGenerator",
|
"SSSMapGenerator",
|
||||||
"ScratchesGenerator",
|
"ScratchesGenerator",
|
||||||
"SeamlessTiling",
|
"SeamlessTiling",
|
||||||
|
"SharpenDepth",
|
||||||
|
"SharpenNormal",
|
||||||
"SimpleRecolor",
|
"SimpleRecolor",
|
||||||
"SmartBlur",
|
"SmartBlur",
|
||||||
"SmartTextureResizer",
|
"SmartTextureResizer",
|
||||||
@@ -50270,6 +50285,7 @@
|
|||||||
"vsLinx_BooleanOrOperator",
|
"vsLinx_BooleanOrOperator",
|
||||||
"vsLinx_BypassOnBool",
|
"vsLinx_BypassOnBool",
|
||||||
"vsLinx_FitImageIntoBBoxMask",
|
"vsLinx_FitImageIntoBBoxMask",
|
||||||
|
"vsLinx_ImpactMultilineWildcardText",
|
||||||
"vsLinx_LoadSelectedImagesBatch",
|
"vsLinx_LoadSelectedImagesBatch",
|
||||||
"vsLinx_LoadSelectedImagesList",
|
"vsLinx_LoadSelectedImagesList",
|
||||||
"vsLinx_MuteOnBool"
|
"vsLinx_MuteOnBool"
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
[project]
|
[project]
|
||||||
name = "comfyui-manager"
|
name = "comfyui-manager"
|
||||||
description = "ComfyUI-Manager provides features to install and manage custom nodes for ComfyUI, as well as various functionalities to assist with ComfyUI."
|
description = "ComfyUI-Manager provides features to install and manage custom nodes for ComfyUI, as well as various functionalities to assist with ComfyUI."
|
||||||
version = "3.38.2"
|
version = "3.38.3"
|
||||||
license = { file = "LICENSE.txt" }
|
license = { file = "LICENSE.txt" }
|
||||||
dependencies = ["GitPython", "PyGithub", "matrix-nio", "transformers", "huggingface-hub>0.20", "typer", "rich", "typing-extensions", "toml", "uv", "chardet"]
|
dependencies = ["GitPython", "PyGithub", "matrix-nio", "transformers", "huggingface-hub>0.20", "typer", "rich", "typing-extensions", "toml", "uv", "chardet"]
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user