mihaiciorobitca's picture
Add files using upload-large-folder tool
fe0de51 verified
import importlib
import os
from . import loaders
from . import sigmas
from . import conditioning
from . import images
from . import models
from . import helper_sigma_preview_image_preproc
from . import nodes_misc
from . import nodes_latents
from . import nodes_precision
import torch
from math import *
from comfy.samplers import SchedulerHandler, SCHEDULER_HANDLERS, SCHEDULER_NAMES
new_scheduler_name = "bong_tangent"
if new_scheduler_name not in SCHEDULER_HANDLERS:
bong_tangent_handler = SchedulerHandler(handler=sigmas.bong_tangent_scheduler, use_ms=True)
SCHEDULER_HANDLERS[new_scheduler_name] = bong_tangent_handler
SCHEDULER_NAMES.append(new_scheduler_name)
from .res4lyf import RESplain
#torch.use_deterministic_algorithms(True)
#torch.backends.cudnn.deterministic = True
#torch.backends.cudnn.benchmark = False
res4lyf.init()
discard_penultimate_sigma_samplers = set((
))
def add_samplers():
from comfy.samplers import KSampler, k_diffusion_sampling
if hasattr(KSampler, "DISCARD_PENULTIMATE_SIGMA_SAMPLERS"):
KSampler.DISCARD_PENULTIMATE_SIGMA_SAMPLERS |= discard_penultimate_sigma_samplers
added = 0
for sampler in extra_samplers: #getattr(self, "sample_{}".format(extra_samplers))
if sampler not in KSampler.SAMPLERS:
try:
idx = KSampler.SAMPLERS.index("uni_pc_bh2") # *should* be last item in samplers list
KSampler.SAMPLERS.insert(idx+1, sampler) # add custom samplers (presumably) to end of list
setattr(k_diffusion_sampling, "sample_{}".format(sampler), extra_samplers[sampler])
added += 1
except ValueError as _err:
pass
if added > 0:
import importlib
importlib.reload(k_diffusion_sampling)
extra_samplers = {}
extra_samplers = dict(reversed(extra_samplers.items()))
NODE_CLASS_MAPPINGS = {
"FluxLoader" : loaders.FluxLoader,
"SD35Loader" : loaders.SD35Loader,
"ClownModelLoader" : loaders.RES4LYFModelLoader,
"TextBox1" : nodes_misc.TextBox1,
"TextBox2" : nodes_misc.TextBox2,
"TextBox3" : nodes_misc.TextBox3,
"TextConcatenate" : nodes_misc.TextConcatenate,
"TextBoxConcatenate" : nodes_misc.TextBoxConcatenate,
"TextLoadFile" : nodes_misc.TextLoadFile,
"TextShuffle" : nodes_misc.TextShuffle,
"TextShuffleAndTruncate" : nodes_misc.TextShuffleAndTruncate,
"TextTruncateTokens" : nodes_misc.TextTruncateTokens,
"SeedGenerator" : nodes_misc.SeedGenerator,
"ClownRegionalConditioning" : conditioning.ClownRegionalConditioning,
"ClownRegionalConditionings" : conditioning.ClownRegionalConditionings,
"ClownRegionalConditioning2" : conditioning.ClownRegionalConditioning2,
"ClownRegionalConditioning3" : conditioning.ClownRegionalConditioning3,
"ClownRegionalConditioning_AB" : conditioning.ClownRegionalConditioning_AB,
"ClownRegionalConditioning_ABC" : conditioning.ClownRegionalConditioning_ABC,
"CLIPTextEncodeFluxUnguided" : conditioning.CLIPTextEncodeFluxUnguided,
"ConditioningOrthoCollin" : conditioning.ConditioningOrthoCollin,
"ConditioningAverageScheduler" : conditioning.ConditioningAverageScheduler,
"ConditioningMultiply" : conditioning.ConditioningMultiply,
"ConditioningAdd" : conditioning.ConditioningAdd,
"Conditioning Recast FP64" : conditioning.Conditioning_Recast64,
"StableCascade_StageB_Conditioning64" : conditioning.StableCascade_StageB_Conditioning64,
"ConditioningZeroAndTruncate" : conditioning.ConditioningZeroAndTruncate,
"ConditioningTruncate" : conditioning.ConditioningTruncate,
"StyleModelApplyStyle" : conditioning.StyleModelApplyStyle,
"CrossAttn_EraseReplace_HiDream" : conditioning.CrossAttn_EraseReplace_HiDream,
"ConditioningDownsample (T5)" : conditioning.ConditioningDownsampleT5,
"ConditioningToBase64" : conditioning.ConditioningToBase64,
"Base64ToConditioning" : conditioning.Base64ToConditioning,
"ConditioningBatch4" : conditioning.ConditioningBatch4,
"ConditioningBatch8" : conditioning.ConditioningBatch8,
"TemporalMaskGenerator" : conditioning.TemporalMaskGenerator,
"TemporalSplitAttnMask" : conditioning.TemporalSplitAttnMask,
"TemporalSplitAttnMask (Midframe)" : conditioning.TemporalSplitAttnMask_Midframe,
"TemporalCrossAttnMask" : conditioning.TemporalCrossAttnMask,
"Set Precision" : nodes_precision.set_precision,
"Set Precision Universal" : nodes_precision.set_precision_universal,
"Set Precision Advanced" : nodes_precision.set_precision_advanced,
"LatentUpscaleWithVAE" : helper_sigma_preview_image_preproc.LatentUpscaleWithVAE,
"LatentNoised" : nodes_latents.LatentNoised,
"LatentNoiseList" : nodes_latents.LatentNoiseList,
"AdvancedNoise" : nodes_latents.AdvancedNoise,
"LatentNoiseBatch_perlin" : nodes_latents.LatentNoiseBatch_perlin,
"LatentNoiseBatch_fractal" : nodes_latents.LatentNoiseBatch_fractal,
"LatentNoiseBatch_gaussian" : nodes_latents.LatentNoiseBatch_gaussian,
"LatentNoiseBatch_gaussian_channels" : nodes_latents.LatentNoiseBatch_gaussian_channels,
"LatentBatch_channels" : nodes_latents.LatentBatch_channels,
"LatentBatch_channels_16" : nodes_latents.LatentBatch_channels_16,
"Latent Get Channel Means" : nodes_latents.latent_get_channel_means,
"Latent Match Channelwise" : nodes_latents.latent_channelwise_match,
"Latent to RawX" : nodes_latents.latent_to_raw_x,
"Latent Clear State Info" : nodes_latents.latent_clear_state_info,
"Latent Replace State Info" : nodes_latents.latent_replace_state_info,
"Latent Display State Info" : nodes_latents.latent_display_state_info,
"Latent Transfer State Info" : nodes_latents.latent_transfer_state_info,
"Latent TrimVideo State Info" : nodes_latents.TrimVideoLatent_state_info,
"Latent to Cuda" : nodes_latents.latent_to_cuda,
"Latent Batcher" : nodes_latents.latent_batch,
"Latent Normalize Channels" : nodes_latents.latent_normalize_channels,
"Latent Channels From To" : nodes_latents.latent_mean_channels_from_to,
"LatentPhaseMagnitude" : nodes_latents.LatentPhaseMagnitude,
"LatentPhaseMagnitudeMultiply" : nodes_latents.LatentPhaseMagnitudeMultiply,
"LatentPhaseMagnitudeOffset" : nodes_latents.LatentPhaseMagnitudeOffset,
"LatentPhaseMagnitudePower" : nodes_latents.LatentPhaseMagnitudePower,
"MaskFloatToBoolean" : nodes_latents.MaskFloatToBoolean,
"MaskToggle" : nodes_latents.MaskToggle,
"MaskEdge" : nodes_latents.MaskEdge,
#"MaskEdgeRatio" : nodes_latents.MaskEdgeRatio,
"Frames Masks Uninterpolate" : nodes_latents.Frames_Masks_Uninterpolate,
"Frames Masks ZeroOut" : nodes_latents.Frames_Masks_ZeroOut,
"Frames Latent ReverseOrder" : nodes_latents.Frames_Latent_ReverseOrder,
"EmptyLatentImage64" : nodes_latents.EmptyLatentImage64,
"EmptyLatentImageCustom" : nodes_latents.EmptyLatentImageCustom,
"StableCascade_StageC_VAEEncode_Exact": nodes_latents.StableCascade_StageC_VAEEncode_Exact,
"PrepForUnsampling" : helper_sigma_preview_image_preproc.VAEEncodeAdvanced,
"VAEEncodeAdvanced" : helper_sigma_preview_image_preproc.VAEEncodeAdvanced,
"VAEStyleTransferLatent" : helper_sigma_preview_image_preproc.VAEStyleTransferLatent,
"SigmasPreview" : helper_sigma_preview_image_preproc.SigmasPreview,
"SigmasSchedulePreview" : helper_sigma_preview_image_preproc.SigmasSchedulePreview,
"TorchCompileModelFluxAdv" : models.TorchCompileModelFluxAdvanced,
"TorchCompileModelAura" : models.TorchCompileModelAura,
"TorchCompileModelSD35" : models.TorchCompileModelSD35,
"TorchCompileModels" : models.TorchCompileModels,
"ClownpileModelWanVideo" : models.ClownpileModelWanVideo,
"ModelTimestepPatcher" : models.ModelSamplingAdvanced,
"ModelSamplingAdvanced" : models.ModelSamplingAdvanced,
"ModelSamplingAdvancedResolution" : models.ModelSamplingAdvancedResolution,
"FluxGuidanceDisable" : models.FluxGuidanceDisable,
"ReWanPatcher" : models.ReWanPatcher,
"ReFluxPatcher" : models.ReFluxPatcher,
"ReChromaPatcher" : models.ReChromaPatcher,
"ReSD35Patcher" : models.ReSD35Patcher,
"ReAuraPatcher" : models.ReAuraPatcher,
"ReLTXVPatcher" : models.ReLTXVPatcher,
"ReHiDreamPatcher" : models.ReHiDreamPatcher,
"ReSDPatcher" : models.ReSDPatcher,
"ReReduxPatcher" : models.ReReduxPatcher,
"ReWanPatcherAdvanced" : models.ReWanPatcherAdvanced,
"ReFluxPatcherAdvanced" : models.ReFluxPatcherAdvanced,
"ReChromaPatcherAdvanced" : models.ReChromaPatcherAdvanced,
"ReSD35PatcherAdvanced" : models.ReSD35PatcherAdvanced,
"ReAuraPatcherAdvanced" : models.ReAuraPatcherAdvanced,
"ReLTXVPatcherAdvanced" : models.ReLTXVPatcherAdvanced,
"ReHiDreamPatcherAdvanced" : models.ReHiDreamPatcherAdvanced,
"LayerPatcher" : loaders.LayerPatcher,
"FluxOrthoCFGPatcher" : models.FluxOrthoCFGPatcher,
"UNetSave" : models.UNetSave,
"Sigmas Recast" : sigmas.set_precision_sigmas,
"Sigmas Noise Inversion" : sigmas.sigmas_noise_inversion,
"Sigmas From Text" : sigmas.sigmas_from_text,
"Sigmas Variance Floor" : sigmas.sigmas_variance_floor,
"Sigmas Truncate" : sigmas.sigmas_truncate,
"Sigmas Start" : sigmas.sigmas_start,
"Sigmas Split" : sigmas.sigmas_split,
"Sigmas Split Value" : sigmas.sigmas_split_value,
"Sigmas Concat" : sigmas.sigmas_concatenate,
"Sigmas Pad" : sigmas.sigmas_pad,
"Sigmas Unpad" : sigmas.sigmas_unpad,
"Sigmas SetFloor" : sigmas.sigmas_set_floor,
"Sigmas DeleteBelowFloor" : sigmas.sigmas_delete_below_floor,
"Sigmas DeleteDuplicates" : sigmas.sigmas_delete_consecutive_duplicates,
"Sigmas Cleanup" : sigmas.sigmas_cleanup,
"Sigmas Mult" : sigmas.sigmas_mult,
"Sigmas Modulus" : sigmas.sigmas_modulus,
"Sigmas Quotient" : sigmas.sigmas_quotient,
"Sigmas Add" : sigmas.sigmas_add,
"Sigmas Power" : sigmas.sigmas_power,
"Sigmas Abs" : sigmas.sigmas_abs,
"Sigmas2 Mult" : sigmas.sigmas2_mult,
"Sigmas2 Add" : sigmas.sigmas2_add,
"Sigmas Rescale" : sigmas.sigmas_rescale,
"Sigmas Count" : sigmas.sigmas_count,
"Sigmas Resample" : sigmas.sigmas_interpolate,
"Sigmas Math1" : sigmas.sigmas_math1,
"Sigmas Math3" : sigmas.sigmas_math3,
"Sigmas Iteration Karras" : sigmas.sigmas_iteration_karras,
"Sigmas Iteration Polyexp" : sigmas.sigmas_iteration_polyexp,
# New Sigma Nodes
"Sigmas Lerp" : sigmas.sigmas_lerp,
"Sigmas InvLerp" : sigmas.sigmas_invlerp,
"Sigmas ArcSine" : sigmas.sigmas_arcsine,
"Sigmas LinearSine" : sigmas.sigmas_linearsine,
"Sigmas Append" : sigmas.sigmas_append,
"Sigmas ArcCosine" : sigmas.sigmas_arccosine,
"Sigmas ArcTangent" : sigmas.sigmas_arctangent,
"Sigmas CrossProduct" : sigmas.sigmas_crossproduct,
"Sigmas DotProduct" : sigmas.sigmas_dotproduct,
"Sigmas Fmod" : sigmas.sigmas_fmod,
"Sigmas Frac" : sigmas.sigmas_frac,
"Sigmas If" : sigmas.sigmas_if,
"Sigmas Logarithm2" : sigmas.sigmas_logarithm2,
"Sigmas SmoothStep" : sigmas.sigmas_smoothstep,
"Sigmas SquareRoot" : sigmas.sigmas_squareroot,
"Sigmas TimeStep" : sigmas.sigmas_timestep,
"Sigmas Sigmoid" : sigmas.sigmas_sigmoid,
"Sigmas Easing" : sigmas.sigmas_easing,
"Sigmas Hyperbolic" : sigmas.sigmas_hyperbolic,
"Sigmas Gaussian" : sigmas.sigmas_gaussian,
"Sigmas Percentile" : sigmas.sigmas_percentile,
"Sigmas KernelSmooth" : sigmas.sigmas_kernel_smooth,
"Sigmas QuantileNorm" : sigmas.sigmas_quantile_norm,
"Sigmas AdaptiveStep" : sigmas.sigmas_adaptive_step,
"Sigmas Chaos" : sigmas.sigmas_chaos,
"Sigmas ReactionDiffusion" : sigmas.sigmas_reaction_diffusion,
"Sigmas Attractor" : sigmas.sigmas_attractor,
"Sigmas CatmullRom" : sigmas.sigmas_catmull_rom,
"Sigmas LambertW" : sigmas.sigmas_lambert_w,
"Sigmas ZetaEta" : sigmas.sigmas_zeta_eta,
"Sigmas GammaBeta" : sigmas.sigmas_gamma_beta,
"Sigmas GaussianCDF" : sigmas.sigmas_gaussian_cdf,
"Sigmas StepwiseMultirate" : sigmas.sigmas_stepwise_multirate,
"Sigmas HarmonicDecay" : sigmas.sigmas_harmonic_decay,
"Sigmas AdaptiveNoiseFloor" : sigmas.sigmas_adaptive_noise_floor,
"Sigmas CollatzIteration" : sigmas.sigmas_collatz_iteration,
"Sigmas ConwaySequence" : sigmas.sigmas_conway_sequence,
"Sigmas GilbreathSequence" : sigmas.sigmas_gilbreath_sequence,
"Sigmas CNFInverse" : sigmas.sigmas_cnf_inverse,
"Sigmas RiemannianFlow" : sigmas.sigmas_riemannian_flow,
"Sigmas LangevinDynamics" : sigmas.sigmas_langevin_dynamics,
"Sigmas PersistentHomology" : sigmas.sigmas_persistent_homology,
"Sigmas NormalizingFlows" : sigmas.sigmas_normalizing_flows,
"ClownScheduler" : sigmas.ClownScheduler, # for modulating parameters
"Tan Scheduler" : sigmas.tan_scheduler,
"Tan Scheduler 2" : sigmas.tan_scheduler_2stage,
"Tan Scheduler 2 Simple" : sigmas.tan_scheduler_2stage_simple,
"Constant Scheduler" : sigmas.constant_scheduler,
"Linear Quadratic Advanced" : sigmas.linear_quadratic_advanced,
"SetImageSizeWithScale" : nodes_misc.SetImageSizeWithScale,
"SetImageSize" : nodes_misc.SetImageSize,
"Mask Bounding Box Aspect Ratio" : images.MaskBoundingBoxAspectRatio,
"Image Get Color Swatches" : images.Image_Get_Color_Swatches,
"Masks From Color Swatches" : images.Masks_From_Color_Swatches,
"Masks From Colors" : images.Masks_From_Colors,
"Masks Unpack 4" : images.Masks_Unpack4,
"Masks Unpack 8" : images.Masks_Unpack8,
"Masks Unpack 16" : images.Masks_Unpack16,
"Image Sharpen FS" : images.ImageSharpenFS,
"Image Channels LAB" : images.Image_Channels_LAB,
"Image Median Blur" : images.ImageMedianBlur,
"Image Gaussian Blur" : images.ImageGaussianBlur,
"Image Pair Split" : images.Image_Pair_Split,
"Image Crop Location Exact" : images.Image_Crop_Location_Exact,
"Film Grain" : images.Film_Grain,
"Frequency Separation Linear Light" : images.Frequency_Separation_Linear_Light,
"Frequency Separation Hard Light" : images.Frequency_Separation_Hard_Light,
"Frequency Separation Hard Light LAB" : images.Frequency_Separation_Hard_Light_LAB,
"Frame Select" : images.Frame_Select,
"Frames Slice" : images.Frames_Slice,
"Frames Concat" : images.Frames_Concat,
"Mask Sketch" : images.MaskSketch,
"Image Grain Add" : images.Image_Grain_Add,
"Image Repeat Tile To Size" : images.ImageRepeatTileToSize,
"Frames Concat Masks" : nodes_latents.Frames_Concat_Masks,
"Frame Select Latent" : nodes_latents.Frame_Select_Latent,
"Frames Slice Latent" : nodes_latents.Frames_Slice_Latent,
"Frames Concat Latent" : nodes_latents.Frames_Concat_Latent,
"Frame Select Latent Raw" : nodes_latents.Frame_Select_Latent_Raw,
"Frames Slice Latent Raw" : nodes_latents.Frames_Slice_Latent_Raw,
"Frames Concat Latent Raw" : nodes_latents.Frames_Concat_Latent_Raw,
}
NODE_DISPLAY_NAME_MAPPINGS = {
}
WEB_DIRECTORY = "./web/js"
flags = {
"zampler" : False,
"beta_samplers" : False,
"legacy_samplers": False,
}
file_path = os.path.join(os.path.dirname(__file__), "zampler_test_code.txt")
if os.path.exists(file_path):
try:
from .zampler import add_zamplers
NODE_CLASS_MAPPINGS, extra_samplers = add_zamplers(NODE_CLASS_MAPPINGS, extra_samplers)
flags["zampler"] = True
RESplain("Importing zampler.")
except ImportError:
try:
import importlib
for module_name in ["RES4LYF.zampler", "res4lyf.zampler"]:
try:
zampler_module = importlib.import_module(module_name)
add_zamplers = zampler_module.add_zamplers
NODE_CLASS_MAPPINGS, extra_samplers = add_zamplers(NODE_CLASS_MAPPINGS, extra_samplers)
flags["zampler"] = True
RESplain(f"Importing zampler via {module_name}.")
break
except ImportError:
continue
else:
raise ImportError("Zampler module not found in any path")
except Exception as e:
print(f"(RES4LYF) Failed to import zamplers: {e}")
try:
from .beta import add_beta
NODE_CLASS_MAPPINGS, NODE_DISPLAY_NAME_MAPPINGS, extra_samplers = add_beta(NODE_CLASS_MAPPINGS, NODE_DISPLAY_NAME_MAPPINGS, extra_samplers)
flags["beta_samplers"] = True
RESplain("Importing beta samplers.")
except ImportError:
try:
import importlib
for module_name in ["RES4LYF.beta", "res4lyf.beta"]:
try:
beta_module = importlib.import_module(module_name)
add_beta = beta_module.add_beta
NODE_CLASS_MAPPINGS, extra_samplers = add_beta(NODE_CLASS_MAPPINGS, extra_samplers)
flags["beta_samplers"] = True
RESplain(f"Importing beta samplers via {module_name}.")
break
except ImportError:
continue
else:
raise ImportError("Beta module not found in any path")
except Exception as e:
print(f"(RES4LYF) Failed to import beta samplers: {e}")
try:
from .legacy import add_legacy
NODE_CLASS_MAPPINGS, NODE_DISPLAY_NAME_MAPPINGS, extra_samplers = add_legacy(NODE_CLASS_MAPPINGS, NODE_DISPLAY_NAME_MAPPINGS, extra_samplers)
flags["legacy_samplers"] = True
RESplain("Importing legacy samplers.")
except ImportError:
try:
import importlib
for module_name in ["RES4LYF.legacy", "res4lyf.legacy"]:
try:
legacy_module = importlib.import_module(module_name)
add_legacy = legacy_module.add_legacy
NODE_CLASS_MAPPINGS, extra_samplers = add_legacy(NODE_CLASS_MAPPINGS, extra_samplers)
flags["legacy_samplers"] = True
RESplain(f"Importing legacy samplers via {module_name}.")
break
except ImportError:
continue
else:
raise ImportError("Legacy module not found in any path")
except Exception as e:
print(f"(RES4LYF) Failed to import legacy samplers: {e}")
add_samplers()
__all__ = ["NODE_CLASS_MAPPINGS", "NODE_DISPLAY_NAME_MAPPINGS", "WEB_DIRECTORY"]