diff --git a/nodes.py b/nodes.py index 0565186..017b89e 100644 --- a/nodes.py +++ b/nodes.py @@ -2778,14 +2778,18 @@ class FlipSigmasAdjusted: def INPUT_TYPES(s): return {"required": {"sigmas": ("SIGMAS", ), + "divide_by_last_sigma": ("BOOLEAN", {"default": False}), + "divide_by": ("FLOAT", {"default": 1,"min": 1, "max": 255, "step": 0.01}), + "offset_by": ("INT", {"default": 1,"min": -100, "max": 100, "step": 1}), } } - RETURN_TYPES = ("SIGMAS",) + RETURN_TYPES = ("SIGMAS", "STRING",) + RETURN_NAMES = ("SIGMAS", "sigmas_string",) CATEGORY = "KJNodes/noise" FUNCTION = "get_sigmas_adjusted" - def get_sigmas_adjusted(self, sigmas): + def get_sigmas_adjusted(self, sigmas, divide_by_last_sigma, divide_by, offset_by): sigmas = sigmas.flip(0) if sigmas[0] == 0: @@ -2793,12 +2797,20 @@ class FlipSigmasAdjusted: adjusted_sigmas = sigmas.clone() #offset sigma for i in range(1, len(sigmas)): - adjusted_sigmas[i] = sigmas[i - 1] - + offset_index = i - offset_by + if 0 <= offset_index < len(sigmas): + adjusted_sigmas[i] = sigmas[offset_index] + else: + adjusted_sigmas[i] = 0.0001 if adjusted_sigmas[0] == 0: adjusted_sigmas[0] = 0.0001 - - return (adjusted_sigmas,) + if divide_by_last_sigma: + adjusted_sigmas = adjusted_sigmas / adjusted_sigmas[-1] + + sigma_np_array = adjusted_sigmas.numpy() + array_string = np.array2string(sigma_np_array, precision=2, separator=', ', threshold=np.inf) + adjusted_sigmas = adjusted_sigmas / divide_by + return (adjusted_sigmas, array_string,) class InjectNoiseToLatent: