Compare commits

...
6 Commits
Author SHA1 Message Date
Dr.Lt.Data ec29936d16 fix: IPAdapterModelHelper - compatibility patch
- `insightface_model_name` is added.
2024-08-15 21:16:52 +09:00
Dr.Lt.Data 0bd92419de improve: FloatRange - support decrement 2024-08-14 12:43:03 +09:00
Dr.Lt.Data ec6831fd68 version marker 2024-08-07 23:13:40 +09:00
Dr.Lt.Data c876e477e8 Merge pull request #136 from bvhari/main
Add cosine interpolation for Scheduled CFG
2024-08-07 23:13:01 +09:00
BVH 0de0e4232c Change newline to fix diff 2024-08-07 03:14:06 +05:30
BVH 61ba155cf1 Add cosine interpolation for Scheduled CFG 2024-08-04 23:59:46 +05:30
5 changed files with 31 additions and 7 deletions
+1 -1
View File
@@ -7,7 +7,7 @@
import importlib
version_code = [0, 82, 7]
version_code = [0, 84, 1]
version_str = f"V{version_code[0]}.{version_code[1]}" + (f'.{version_code[2]}' if len(version_code) > 2 else '')
print(f"### Loading: ComfyUI-Inspire-Pack ({version_str})")
+9 -1
View File
@@ -18,9 +18,14 @@ class FloatRange:
CATEGORY = "InspirePack/Util"
def doit(self, start, stop, step, limit, ensure_end):
if start >= stop or step == 0:
if start == stop or step == 0:
return ([start], )
reverse = False
if start > stop:
reverse = True
start, stop = stop, start
res = []
x = start
last = x
@@ -36,6 +41,9 @@ class FloatRange:
res.append(stop)
if reverse:
res.reverse()
return (res, )
+5 -2
View File
@@ -63,6 +63,9 @@ class IPAdapterModelHelper:
"insightface_provider": (["CPU", "CUDA", "ROCM"], ),
"cache_mode": (["insightface only", "clip_vision only", "all", "none"], {"default": "insightface only"}),
},
"optional": {
"insightface_model_name": (['buffalo_l', 'antelopev2'],),
},
"hidden": {"unique_id": "UNIQUE_ID"}
}
@@ -72,7 +75,7 @@ class IPAdapterModelHelper:
CATEGORY = "InspirePack/models"
def doit(self, model, clip, preset, lora_strength_model, lora_strength_clip, insightface_provider, cache_mode="none", unique_id=None):
def doit(self, model, clip, preset, lora_strength_model, lora_strength_clip, insightface_provider, cache_mode="none", unique_id=None, insightface_model_name='buffalo_l'):
if 'IPAdapter' not in nodes.NODE_CLASS_MAPPINGS:
utils.try_install_custom_node('https://github.com/cubiq/ComfyUI_IPAdapter_plus',
"To use 'IPAdapterModelHelper' node, 'ComfyUI IPAdapter Plus' extension is required.")
@@ -157,7 +160,7 @@ class IPAdapterModelHelper:
if cache_mode in ["insightface only", "all"]:
icache_key = 'insightface-' + insightface_provider
if icache_key not in backend_support.cache:
backend_support.update_cache(icache_key, "insightface", (False, insight_face_loader(insightface_provider)[0]))
backend_support.update_cache(icache_key, "insightface", (False, insight_face_loader(provider=insightface_provider, model_name=insightface_model_name)[0]))
_, (_, insightface) = backend_support.cache[icache_key]
else:
insightface = insight_face_loader(insightface_provider)[0]
+15 -2
View File
@@ -172,6 +172,15 @@ def logarithmic_interpolation(from_cfg, to_cfg, i, steps):
return from_cfg + (to_cfg - from_cfg) * t
def cosine_interpolation(from_cfg, to_cfg, i, steps):
if (i == 0) or (i == steps-1):
return from_cfg
t = (1.0 + math.cos(math.pi*2*(i/steps))) / 2
return from_cfg + (to_cfg - from_cfg) * t
class Guider_scheduled(CFGGuider):
def __init__(self, model_patcher, sigmas, from_cfg, to_cfg, schedule):
super().__init__(model_patcher)
@@ -201,6 +210,8 @@ class Guider_scheduled(CFGGuider):
self.cfg_sigmas[k] = exponential_interpolation(self.from_cfg, self.to_cfg, i, steps), i
elif self.schedule == 'log':
self.cfg_sigmas[k] = logarithmic_interpolation(self.from_cfg, self.to_cfg, i, steps), i
elif self.schedule == 'cos':
self.cfg_sigmas[k] = cosine_interpolation(self.from_cfg, self.to_cfg, i, steps), i
else:
self.cfg_sigmas[k] = self.from_cfg + delta * i / steps, i
@@ -252,6 +263,8 @@ class Guider_PerpNeg_scheduled(Guider_PerpNeg):
self.cfg_sigmas[k] = exponential_interpolation(self.from_cfg, self.to_cfg, i, steps), i
elif self.schedule == 'log':
self.cfg_sigmas[k] = logarithmic_interpolation(self.from_cfg, self.to_cfg, i, steps), i
elif self.schedule == 'cos':
self.cfg_sigmas[k] = cosine_interpolation(self.from_cfg, self.to_cfg, i, steps), i
else:
self.cfg_sigmas[k] = self.from_cfg + delta * i / steps, i
@@ -283,7 +296,7 @@ class ScheduledCFGGuider:
"sigmas": ("SIGMAS", ),
"from_cfg": ("FLOAT", {"default": 6.5, "min": 0.0, "max": 100.0, "step": 0.1, "round": 0.01}),
"to_cfg": ("FLOAT", {"default": 1.0, "min": 0.0, "max": 100.0, "step": 0.1, "round": 0.01}),
"schedule": (["linear", "log", "exp"], {'default': 'log'})
"schedule": (["linear", "log", "exp", "cos"], {'default': 'log'})
}
}
@@ -310,7 +323,7 @@ class ScheduledPerpNegCFGGuider:
"sigmas": ("SIGMAS", ),
"from_cfg": ("FLOAT", {"default": 6.5, "min": 0.0, "max": 100.0, "step": 0.1, "round": 0.01}),
"to_cfg": ("FLOAT", {"default": 1.0, "min": 0.0, "max": 100.0, "step": 0.1, "round": 0.01}),
"schedule": (["linear", "log", "exp"], {'default': 'log'})
"schedule": (["linear", "log", "exp", "cos"], {'default': 'log'})
}
}
+1 -1
View File
@@ -1,7 +1,7 @@
[project]
name = "comfyui-inspire-pack"
description = "This extension provides various nodes to support Lora Block Weight and the Impact Pack. Provides many easily applicable regional features and applications for Variation Seed."
version = "0.82.7"
version = "0.84.1"
license = { file = "LICENSE" }
dependencies = ["matplotlib", "cachetools"]