comfyUI-enviral-design-node-pack
Small, dependency-light ComfyUI utility nodes from Enviral Design.
The goal of this pack is to keep genuinely useful glue nodes in one place without pulling in a large third-party custom-node bundle just to get one tiny piece of functionality.
Companion use with LatentSlate
This pack is intended to be a stable companion utility pack for LatentSlate-oriented ComfyUI workflows while remaining useful on its own.
The nodes here are intentionally small, stable, and dependency-light. They cover workflow glue that is useful around provider-driven image generation, image-to-video, resizing, resolution snapping, color matching, local LLM calls, and narrow PyTorch model-setting patches.
This repo does not claim to be a required dependency for LatentSlate.
If a LatentSlate workflow package needs one of these nodes, that workflow should
list the dependency explicitly. Planned workflow package notes live in
workflows/README.md.
Included
Text Split (Delimiter)
Splits an input string using a delimiter and returns:
part_1throughpart_20remaindercount
Behavior:
output_countcontrols how many leading parts are emitted before overflow is collected intoremainderstrip_partstrims whitespace around each partskip_emptyremoves empty parts after splittingdelimitersupports common escape strings such as\n,\r\n,\r, and\t
This node intentionally uses a fixed socket layout instead of dynamic outputs so saved workflows stay predictable and easy to debug.
Lazy Index Switch
Selects one of input_0 through input_19 using a zero-based index value.
Behavior:
- accepts any ComfyUI type on its input sockets
- evaluates only the selected input branch
- pairs with combo-style nodes that expose an
INDEXoutput - reports a clear validation error if the selected input is not connected
Enviral Image Resize Kit
Resizes an image with a small set of explicit workflow-friendly modes:
pass-through: keeps the input image resolution and ignores width/heightexplicit resize: stretches the image to the requested width and heightinside fit: preserves the full image, pads to the requested aspect ratio, fills padding withletterbox_color, then outputs the requested width and heightoutside fit: fills the requested aspect ratio and center-crops overflow
Inputs:
image: input image batchmode: resize mode dropdown or linked string aliaswidthandheight: requested output dimensions, ignored bypass-throughletterbox_color: used only byinside fit; accepts simple names,R,G,B,0.0-1.0float triples, or#RRGGBB- optional
mask: transformed with the same geometry as the image
The mode input is a dropdown, but it also accepts linked strings such as
resize, pad, crop, and pass-through. This makes it pair cleanly with
combo nodes that output strings. Optional masks are transformed with the same
geometry and the node returns image, width, height, and mask.
Enviral Color Match V2
Transfers color from a reference image batch to a target image batch.
Inputs:
image_target: image batch to recolorimage_ref: image batch to sample color frommethod:mkl,hm,reinhard,mvgd,hm-mvgd-hm,hm-mkl-hm, orreinhard_lab_gpustrength: blend/extrapolation amount, where0is unchanged and1is the matched resultmultithread: enables threaded CPU processing for multi-image batches
The CPU methods use color-matcher. The reinhard_lab_gpu method uses
ComfyUI's Kornia dependency for Lab-space matching and requires both inputs to
be RGB IMAGE tensors with 3 channels.
Enviral Load LoRA
Native-style LoRA loader that keeps ComfyUI's LoRA application behavior but
allows lora_name to be driven by a linked string.
Inputs:
model: diffusion model to patchclip: CLIP model to patchlora_name: dropdown or linked string matching a LoRA path known to ComfyUIstrength_model: diffusion model LoRA strengthstrength_clip: CLIP LoRA strength
Outputs:
- patched
model - patched
clip
Enviral Load LoRA (Model Only)
Model-only variant for workflows such as WAN where the LoRA chain patches the diffusion model without a CLIP connection.
Inputs:
model: diffusion model to patchlora_name: dropdown or linked string matching a LoRA path known to ComfyUIstrength_model: diffusion model LoRA strength
Output:
- patched
model
Model Patch Torch Settings
Experimental node that patches a compatible ComfyUI MODEL with callbacks for
one CUDA PyTorch backend setting.
Inputs:
model: model to clone and patchenable_fp16_accumulation: togglestorch.backends.cuda.matmul.allow_fp16_accumulationwhile the model runs
When enabled, the patched model turns full FP16 accumulation on before model
execution and turns it back off during cleanup. When disabled, it forces the
setting off before model execution. This requires a PyTorch build that exposes
torch.backends.cuda.matmul.allow_fp16_accumulation and a ComfyUI model patcher
with clone() and add_callback() support.
WAN Resolution Snap
Converts a preset or custom typed resolution into divisor-safe dimensions for WAN video workflows.
Inputs:
preset:customor common square, landscape, portrait, and 4:3 presetswidthandheight: freeform custom dimensions, used whenpresetiscustomsnap:nearest,floor, orceildivisible_by: output divisor, defaulting to32swap: swaps width and height before snapping
Outputs:
widthandheightas integerswidth_floatandheight_floatfor nodes that expect float socketssummary, such as768 x 1344 | 1.03 MP | 4:7 | div32
If snapping changes the requested dimensions, summary also appends the source
size, for example | from 1000 x 540.
LM Studio Unified (URL + API Key)
Sends text, an image, or both to an LM Studio OpenAI-compatible chat endpoint.
Inputs:
base_url: acceptshttp://127.0.0.1:1234/v1,https://lmstudio.example.com, or a full/v1/chat/completionsURLapi_key: optional bearer token for LM Studio API-token authapi_key_env_var: optional environment variable fallback whenapi_keyis blank, defaulting toLMSTUDIO_API_KEY. On Windows, this checks the current process first, then the User and Machine environment variable registry values.model,prompt,system_prompt,seed,max_tokens,temperature, andtimeout_seconds- optional
imageinput for vision-capable models. If the input is an IMAGE batch, each frame is sent as a separateimage_urlcontent part, capped bymax_images user_agent: HTTP User-Agent override for routes that block Python's default urllib signaturedebug: prints request details to the ComfyUI console
For a secured Cloudflare route, use a public base_url such as:
https://lmstudio.enviral-design.com
The node will call:
https://lmstudio.enviral-design.com/v1/chat/completions
Install
Clone this repo into ComfyUI/custom_nodes and restart ComfyUI.
ComfyUI/custom_nodes/comfyUI-enviral-design-node-pack
Most nodes use ComfyUI's existing Python, PyTorch, Pillow, and NumPy
environment. Enviral Color Match V2 also uses color-matcher for its CPU
methods; that dependency is declared in pyproject.toml. If you install this
repo manually and see a missing color_matcher import, install
color-matcher into the same Python environment that runs ComfyUI.
Workflow examples
This repo currently documents nodes and planned workflow packages. It does not
currently bundle executable workflow JSON files. See
workflows/README.md for the planned package list and
status.
Donations & Support
If this saves you time, you can support the work here: