Extensions/comfyui-watdafox-nodes
ComfyUI Extension

comfyui-watdafox-nodes

A node pack for ComfyUI

By postosh·Created 8 months ago·Updated 8 months ago· 0
OhSeongHyeon/comfyui-watdafox-nodes
Nodes16
On cloudLocal install
Categorywatdafox/parameter, watdafox/loader
Stars0
Updated8 months ago

Nodes (16)

BF Parameters (watdafox)

One node to hold every sampling knob for a base, upscale and detail pass

watdafox/parameter
BF Parameters Simple (watdafox)

Seed, steps, cfg, two denoise values, done

watdafox/parameter
Checkpoint Arg (watdafox)

Pick your checkpoint in one place, log the name everywhere

watdafox/parameter
Checkpoint Loader Advanced (watdafox)

A checkpoint loader that also names your output files for you

watdafox/loader
Cyclic Integer (watdafox)

The integer node that counts up, down, or jumps around — and never repeats a roll

watdafox/number
Detailer Scheduler Arg (watdafox)

The scheduler dropdown that knows about AYS, GITS and the whole modern roster

watdafox/parameter
Ksampler Sampler Arg (watdafox)

The sampler dropdown you can finally wire into other nodes

watdafox/parameter
Ksampler Scheduler Arg (watdafox)

One dropdown to pick your KSampler scheduler — and a string version to boot

watdafox/parameter
Output Dir By Model Name (watdafox)

Never manually type an output filename again — build it from the model name

watdafox/string
Random Image Size Advanced (watdafox)

An empty latent generator that knows the 'right' sizes for SDXL, Flux and Qwen

watdafox/latent
Random Image Size YAML (watdafox)

Random image sizes with presets you can actually edit — no Python required

watdafox/latent
Random Integer (watdafox)

A random number with an off switch

watdafox/number
Unet Arg (watdafox)

A front door for your diffusion models — and the fp8 weight dtype to go with it

watdafox/parameter
Unique Text (watdafox)

Paste your prompt list, get the unique tags in one hand and the duplicates in the other

watdafox/string
Unique Text Advanced (watdafox)

Dedupe tags that aren't actually spelled the same

watdafox/string
VAE Arg (watdafox)

The VAE dropdown you can finally point anywhere

watdafox/parameter
Readme

comfyui-watdafox-nodes

A collection of custom nodes for ComfyUI. Adds utility nodes for resolution selection, integer picking, string list processing, output path helpers, and parameter packs.

Installation

  1. Navigate to your ComfyUI/custom_nodes/ directory.
  2. Clone this repository:
    git clone https://github.com/OhSeongHyeon/comfyui-watdafox-nodes.git
    
  3. Restart ComfyUI.

Included Nodes

  • latent > RandomImageSizeAdvancedYAML: Random or fixed resolution with YAML presets and runtime overrides.
  • latent > RandomImageSizeAdvanced: Same behavior, but uses hardcoded presets.
  • number > CyclicInteger: Fixed, increment, decrement, or random integer selection.
  • number > RandomInteger: Randomize integer on/off toggle.
  • string > UniqueStringList: Split comma-separated strings into unique vs duplicate lists.
  • string > UniqueStringListAdvanced: Unique/duplicate split with normalization options.
  • string > Output Dir By Model Name: Build output path components from model name and time.
  • loader > Checkpoint Loader Advanced: Checkpoint loader with clip/vae options plus output path syncing.
  • parameter > BFParameters: Sampling parameter pack for base/ups/dt groups.
  • parameter > BFParametersSimple: Compact parameter pack for common sampling values.
  • parameter > Checkpoint Arg: Checkpoint name passthrough with string output.
  • parameter > Unet Arg: Unet and weight dtype passthrough with string outputs.
  • parameter > VAE Arg: VAE name passthrough with string output.
  • parameter > Ksampler Sampler Arg: Sampler name passthrough with string output.
  • parameter > Ksampler Scheduler Arg: Scheduler name passthrough with string output.
  • parameter > Detailer Scheduler Arg: Detailer scheduler passthrough with string output.

Node Details

latent > RandomImageSizeAdvancedYAML

Generates an empty latent and supports fixed or random resolution selection. Presets are loaded from yaml/model_resolutions.yaml and can be temporarily extended or overridden at runtime.

Key features

  • YAML-based resolution presets per model key.
  • Random selection from a preset group or from all presets.
  • width_override and height_override take highest precedence.
  • add_random_resolutions extends the random pool.
  • override_random_resolutions replaces the random pool.
  • Resolutions accept NUMBERxNUMBER entries separated by commas, semicolons, or spaces.
  • Width/height are rounded down to multiples of 64 unless overrides are provided.
  • The final resolutions are pushed into str_result_1x_resolution and str_result_nx_resolution in the UI.
  • If the YAML file changes between machines, the node attempts to re-sync its widget options.

Inputs (main)

  • batch_size: Latent batch size.
  • random_pick_state: None, All, or a YAML key.
  • image_size: Used when random_pick_state is None.
  • width_override / height_override: Force final resolution.
  • resolution_multiplier: Scale factor used for nx_width/nx_height and str_result_nx_resolution.

Outputs

  • LATENT, width, height, NX_LATENT, nx_width, nx_height, resolution_multiplier, str_result_1x_resolution, str_result_nx_resolution.

latent > RandomImageSizeAdvanced

Same behavior as RandomImageSizeAdvancedYAML, but uses hardcoded resolution lists inside py/random_image_size.py (SDXL/Qwen/Flux/Flux2 presets).

number > CyclicInteger

Selects an integer based on a mode:

  • fixed: Keep the incoming value.
  • increment: Wrap around within [min_value, max_value].
  • decrement: Wrap around within [min_value, max_value].
  • randomize: Random integer within [min_value, max_value].

Outputs the integer and a string version of it. Also updates the integer widget in the UI.

number > RandomInteger

When random_on_off is true, picks a random integer in [min, max]. Otherwise passes through the input integer. Outputs the integer and a string version of it, and updates the integer widget in the UI.

string > UniqueStringList

Splits a comma-separated string and separates unique and duplicate items. Items containing BREAK are always treated as unique. Whitespace-only items are preserved in the unique output.

Outputs

  • unique_text: Comma-joined unique items.
  • duplicate_text: Comma-joined duplicates.

string > UniqueStringListAdvanced

Splits a comma-separated string into unique and duplicate lists with normalization options.

Key behavior

  • remove_whitespaces: Collapses whitespace and removes empty tokens.
  • remove_underscore: Treats _ as spaces for comparison/output.
  • Items containing uppercase BREAK are always treated as unique.
  • Duplicate detection uses normalized keys, while duplicate output keeps the raw tokens.

Outputs

  • unique_text: Joined unique items (, when whitespace removal is enabled, otherwise ,).
  • duplicate_text: Joined duplicates (, delimiter).

string > Output Dir By Model Name

Builds output_dir, file_name, and full_path from a model name, optional prefixes, and a timestamp. Values are pushed to the UI widgets via the web event listener.

Key inputs

  • model_name: Model name or path string.
  • folder_prefix, extra_filename, extra_number: Optional components.
  • use_first_dir, use_ckpt_name, use_time_folder, use_time_file_name: Toggle output parts.

Outputs

  • str_model_name: Echo of the model name.
  • full_path, output_dir, file_name.

loader > Checkpoint Loader Advanced

Loads a checkpoint with optional clip layer override and optional external VAE, plus the same output path generation used by Output Dir By Model Name.

Key inputs

  • ckpt_name: Checkpoint selection.
  • vae_name: Baked VAE or a specific VAE file.
  • stop_at_clip_layer: 0 uses the default clip, otherwise applies clip skip.
  • enable_make_path and path toggles: Same behavior as Output Dir By Model Name.

Outputs

  • MODEL, CLIP, VAE, ckpt_name.
  • full_path, output_dir, file_name.

parameter > BFParameters

Parameter pack that outputs base, upscaling (ups_*), and secondary (dt_*) sampling values plus string versions of sampler/scheduler names for logging or UI use.

parameter > BFParametersSimple

Compact parameter pack that outputs seed, steps, cfg, sampler/scheduler, detailer scheduler, and two denoise values with string versions of sampler/scheduler names.

parameter > Checkpoint Arg / Unet Arg / VAE Arg / Ksampler Sampler Arg / Ksampler Scheduler Arg / Detailer Scheduler Arg

Lightweight passthrough nodes that expose common UI combos and also output string versions for logging or routing.

Customizing model_resolutions.yaml

Edit yaml/model_resolutions.yaml to define your own resolution presets.

Example:

SDXL:
  - "1024x1024"
  - "1152x896"
  - "896x1152"

Custom:
  - "800x1200"
  - "1200x800"

Web Extension

This pack ships web/js/event-listener.js to sync widget values for certain nodes (resolution strings and output paths). ComfyUI loads the web directory automatically when the custom node is installed.