Files
jaidaken f09734b0ee
Some checks failed
Python Linting / Run Ruff (push) Has been cancelled
Python Linting / Run Pylint (push) Has been cancelled
Full Comfy CI Workflow Runs / test-stable (12.1, , linux, 3.10, [self-hosted Linux], stable) (push) Has been cancelled
Full Comfy CI Workflow Runs / test-stable (12.1, , linux, 3.11, [self-hosted Linux], stable) (push) Has been cancelled
Full Comfy CI Workflow Runs / test-stable (12.1, , linux, 3.12, [self-hosted Linux], stable) (push) Has been cancelled
Full Comfy CI Workflow Runs / test-unix-nightly (12.1, , linux, 3.11, [self-hosted Linux], nightly) (push) Has been cancelled
Execution Tests / test (macos-latest) (push) Has been cancelled
Execution Tests / test (ubuntu-latest) (push) Has been cancelled
Execution Tests / test (windows-latest) (push) Has been cancelled
Test server launches without errors / test (push) Has been cancelled
Unit Tests / test (macos-latest) (push) Has been cancelled
Unit Tests / test (ubuntu-latest) (push) Has been cancelled
Unit Tests / test (windows-2022) (push) Has been cancelled
Add custom nodes, Civitai loras (LFS), and vast.ai setup script
Includes 30 custom nodes committed directly, 7 Civitai-exclusive
loras stored via Git LFS, and a setup script that installs all
dependencies and downloads HuggingFace-hosted models on vast.ai.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-09 00:56:42 +00:00

120 lines
2.8 KiB
Python

# ComfyUI - mxToolkit - Max Smirnov 2024
import nodes
class AnyType(str):
def __ne__(self, __value: object) -> bool:
return False
any = AnyType("*")
class mxSeed:
@classmethod
def INPUT_TYPES(s):
return {
"required": {
"X": ("INT", {"default": 0, "min": 0, "max": 4294967296}),
},
}
RETURN_TYPES = ("INT",)
RETURN_NAMES = ("X",)
FUNCTION = "main"
CATEGORY = 'utils/mxToolkit'
def main(self, X,):
return (X,)
class mxStop:
@classmethod
def INPUT_TYPES(s):
return {
"required": {
"In": (any,),
},
}
@classmethod
def VALIDATE_INPUTS(s, **kwargs):
return True
RETURN_TYPES = (any,)
FUNCTION = "main"
CATEGORY = 'utils/mxToolkit'
def main(self, In):
out = In;
nodes.interrupt_processing();
return (out,)
class mxSlider:
@classmethod
def INPUT_TYPES(s):
return {
"required": {
"Xi": ("INT", {"default": 20, "min": -4294967296, "max": 4294967296}),
"Xf": ("FLOAT", {"default": 20, "min": -4294967296, "max": 4294967296}),
"isfloatX": ("INT", {"default": 0, "min": 0, "max": 1}),
},
}
RETURN_TYPES = (any,)
RETURN_NAMES = ("X",)
FUNCTION = "main"
CATEGORY = 'utils/mxToolkit'
def main(self, Xi, Xf, isfloatX):
if isfloatX > 0:
out = Xf
else:
out = Xi
return (out,)
class mxSlider2D:
@classmethod
def INPUT_TYPES(s):
return {
"required": {
"Xi": ("INT", {"default": 512, "min": -4294967296, "max": 4294967296}),
"Xf": ("FLOAT", {"default": 512, "min": -4294967296, "max": 4294967296}),
"Yi": ("INT", {"default": 512, "min": -4294967296, "max": 4294967296}),
"Yf": ("FLOAT", {"default": 512, "min": -4294967296, "max": 4294967296}),
"isfloatX": ("INT", {"default": 0, "min": 0, "max": 1}),
"isfloatY": ("INT", {"default": 0, "min": 0, "max": 1}),
},
}
RETURN_TYPES = (any, any,)
RETURN_NAMES = ("X","Y",)
FUNCTION = "main"
CATEGORY = 'utils/mxToolkit'
def main(self, Xi, Xf, isfloatX, Yi, Yf, isfloatY):
if isfloatX > 0:
outX = Xf
else:
outX = Xi
if isfloatY > 0:
outY = Yf
else:
outY = Yi
return (outX, outY,)
NODE_CLASS_MAPPINGS = {
"mxSeed": mxSeed,
"mxStop": mxStop,
"mxSlider": mxSlider,
"mxSlider2D": mxSlider2D,
}
NODE_DISPLAY_NAME_MAPPINGS = {
"mxSeed": "Seed",
"mxStop": "Stop",
"mxSlider": "Slider",
"mxSlider2D": "Slider 2D",
}