ComfyUI Extension: comfyui-watdafox-nodes
Run ComfyUI workflows without the setup
No installs, no CUDA version roulette, no GPU sitting idle on your bill. Bring a workflow and run it in the browser.
A node pack for ComfyUI
Looking for a different extension?
Custom Nodes (16)
- BF Parameters (watdafox)
- BF Parameters Simple (watdafox)
- Checkpoint Arg (watdafox)
- Checkpoint Loader Advanced (watdafox)
- Cyclic Integer (watdafox)
- Detailer Scheduler Arg (watdafox)
- Ksampler Sampler Arg (watdafox)
- Ksampler Scheduler Arg (watdafox)
- Output Dir By Model Name (watdafox)
- Random Image Size Advanced (watdafox)
- Random Image Size YAML (watdafox)
- Random Integer (watdafox)
- Unet Arg (watdafox)
- Unique Text (watdafox)
- Unique Text Advanced (watdafox)
- VAE Arg (watdafox)
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
- Navigate to your
ComfyUI/custom_nodes/directory. - Clone this repository:
git clone https://github.com/OhSeongHyeon/comfyui-watdafox-nodes.git - 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_overrideandheight_overridetake highest precedence.add_random_resolutionsextends the random pool.override_random_resolutionsreplaces the random pool.- Resolutions accept
NUMBERxNUMBERentries 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_resolutionandstr_result_nx_resolutionin 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 whenrandom_pick_stateisNone.width_override/height_override: Force final resolution.resolution_multiplier: Scale factor used fornx_width/nx_heightandstr_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
BREAKare 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 VAEor a specific VAE file.stop_at_clip_layer: 0 uses the default clip, otherwise applies clip skip.enable_make_pathand 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.
Run ComfyUI workflows without the setup
No installs, no CUDA version roulette, no GPU sitting idle on your bill. Bring a workflow and run it in the browser.