ComfyUI Node

OCS MultiParam

The same idea as OCS Param, minus the node spaghetti

By blepping·Created 2 years ago·Updated 2 months ago· 30
OCS MultiParam
  • params_opt
  • value_opt_1
  • value_opt_2
  • value_opt_3
  • value_opt_4
  • value_opt_5
  • OCS_PARAMS
key_1
key_2
key_3
key_4
key_5
parameters

If you've already met OCS Param, this is the same node with five slots instead of one. OCS MultiParam lets you bundle several custom parameters - a custom noise generator and a VAE and a merge sampler - into a single OCS_PARAMS output instead of daisy-chaining five OCS Param nodes. It's the tidier option, and for that reason alone it's usually the better first choice.

What it is

A parameter definition node with five parallel key/value pairs. Each key_N selects a parameter type, and the matching value_opt_N carries the actual object. All five compile into one OCS_PARAMS stream that you feed into the params_opt input of an OCS Sampler, OCS Group, or OCS Substeps. The receiving node merges everything into its parameter bag.

The inputs that matter

  • key_1key_5 (required) - the parameter types. Same enum as OCS Param: custom_noise, restart_custom_noise, merge_sampler, sampler, vae, upscale_model, or empty (leave a slot unused).
  • value_opt_1value_opt_5 (optional) - the actual wired objects. Each accepts SIGMAS, OCS_NOISE, SONAR_CUSTOM_NOISE, SAMPLER, VAE, IMAGE, or UPSCALE_MODEL. As with OCS Param, there's no type checking until you execute - connect the wrong kind of thing and the error shows up at runtime.
  • params_opt (optional) - chain other Param nodes here for even more parameters.
  • parameters (optional) - YAML/JSON text block. Here rename works per-index: instead of a single rename: test, you write an object keyed by slot number, e.g.
1:
    rename: test1
2:
    rename: test2

so the receiving node's YAML can reference custom_noise: test1 to use the generator on slot 1.

The single OCS_PARAMS output is the whole point - one wire carrying up to five parameters.

The realistic workflow

Wire OCSNoise PerlinSimple into value_opt_1 with key_1: custom_noise, connect a VAE into value_opt_2 with key_2: vae, and run that single output into the OCS Sampler. One node, two custom parameters, no chain of intermediates. The slots also self-document: you can read at a glance exactly which noise and which VAE are going into the sampler, which beats chasing wires across five nodes.

Installing and gotchas

Installed with the pack - ComfyUI Manager search "Overly Complicated Sampling", or git clone https://github.com/blepping/comfyui_overly_complicated_sampling into ComfyUI/custom_nodes plus restart. No models or mandatory dependencies.

The traps are the same ones as OCS Param: the value inputs are untyped, so a wrong-typed connection fails at runtime rather than at wiring time, and slots with an empty key do nothing but still render. Also note the restart_custom_noise and merge_sampler keys only matter for specific merge strategies (overshoot, lookahead) - if your Group uses simple or divide, leave those slots empty and stop worrying about them.

Categorysampling/custom_sampling/OCS

Inputs (12)

NameTypeDefaultDescription
key_1COMBOUsed to set the type of custom parameter.
key_2COMBOUsed to set the type of custom parameter.
key_3COMBOUsed to set the type of custom parameter.
key_4COMBOUsed to set the type of custom parameter.
key_5COMBOUsed to set the type of custom parameter.
params_optoptOCS_PARAMSYou may optionally connect the output from other OCS MultiParam or OCS Param nodes here to set multiple parameters.
parametersoptSTRINGThe text parameter block allows setting custom parameters using YAML (recommended) or JSON. Optional, may be left blank.
value_opt_1optSIGMAS,OCS_NOISE,VAE,SONAR_CUSTOM_NOISE,SAMPLER,IMAGE,UPSCALE_MODELConnect the type of value expected by the corresponding key. Allows connecting output from any type of node HOWEVER if it is the wrong type expected by the corresponding key you will get an error when you run the workflow. The following input types are supported: SIGMAS, OCS_NOISE, VAE, SONAR_CUSTOM_NOISE, SAMPLER, IMAGE, UPSCALE_MODEL
value_opt_2optSIGMAS,OCS_NOISE,VAE,SONAR_CUSTOM_NOISE,SAMPLER,IMAGE,UPSCALE_MODELConnect the type of value expected by the corresponding key. Allows connecting output from any type of node HOWEVER if it is the wrong type expected by the corresponding key you will get an error when you run the workflow. The following input types are supported: SIGMAS, OCS_NOISE, VAE, SONAR_CUSTOM_NOISE, SAMPLER, IMAGE, UPSCALE_MODEL
value_opt_3optSIGMAS,OCS_NOISE,VAE,SONAR_CUSTOM_NOISE,SAMPLER,IMAGE,UPSCALE_MODELConnect the type of value expected by the corresponding key. Allows connecting output from any type of node HOWEVER if it is the wrong type expected by the corresponding key you will get an error when you run the workflow. The following input types are supported: SIGMAS, OCS_NOISE, VAE, SONAR_CUSTOM_NOISE, SAMPLER, IMAGE, UPSCALE_MODEL
value_opt_4optSIGMAS,OCS_NOISE,VAE,SONAR_CUSTOM_NOISE,SAMPLER,IMAGE,UPSCALE_MODELConnect the type of value expected by the corresponding key. Allows connecting output from any type of node HOWEVER if it is the wrong type expected by the corresponding key you will get an error when you run the workflow. The following input types are supported: SIGMAS, OCS_NOISE, VAE, SONAR_CUSTOM_NOISE, SAMPLER, IMAGE, UPSCALE_MODEL
value_opt_5optSIGMAS,OCS_NOISE,VAE,SONAR_CUSTOM_NOISE,SAMPLER,IMAGE,UPSCALE_MODELConnect the type of value expected by the corresponding key. Allows connecting output from any type of node HOWEVER if it is the wrong type expected by the corresponding key you will get an error when you run the workflow. The following input types are supported: SIGMAS, OCS_NOISE, VAE, SONAR_CUSTOM_NOISE, SAMPLER, IMAGE, UPSCALE_MODEL

Outputs (1)

NameTypeDescription
OCS_PARAMSOCS_PARAMSCan be connected to another OCS Param or OCS MultiParam node or any other OCS node that takes OCS_PARAMS as an input.