OCS MultiParam
The same idea as OCS Param, minus the node spaghetti
- params_opt
- value_opt_1
- value_opt_2
- value_opt_3
- value_opt_4
- value_opt_5
- OCS_PARAMS
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_1…key_5(required) - the parameter types. Same enum asOCS Param:custom_noise,restart_custom_noise,merge_sampler,sampler,vae,upscale_model, or empty (leave a slot unused).value_opt_1…value_opt_5(optional) - the actual wired objects. Each acceptsSIGMAS,OCS_NOISE,SONAR_CUSTOM_NOISE,SAMPLER,VAE,IMAGE, orUPSCALE_MODEL. As withOCS 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. Hererenameworks per-index: instead of a singlerename: 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.
Inputs (12)
| Name | Type | Default | Description |
|---|---|---|---|
| key_1 | COMBO | Used to set the type of custom parameter. | |
| key_2 | COMBO | Used to set the type of custom parameter. | |
| key_3 | COMBO | Used to set the type of custom parameter. | |
| key_4 | COMBO | Used to set the type of custom parameter. | |
| key_5 | COMBO | Used to set the type of custom parameter. | |
| params_optopt | OCS_PARAMS | You may optionally connect the output from other OCS MultiParam or OCS Param nodes here to set multiple parameters. | |
| parametersopt | STRING | The text parameter block allows setting custom parameters using YAML (recommended) or JSON. Optional, may be left blank. | |
| value_opt_1opt | SIGMAS,OCS_NOISE,VAE,SONAR_CUSTOM_NOISE,SAMPLER,IMAGE,UPSCALE_MODEL | Connect 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_2opt | SIGMAS,OCS_NOISE,VAE,SONAR_CUSTOM_NOISE,SAMPLER,IMAGE,UPSCALE_MODEL | Connect 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_3opt | SIGMAS,OCS_NOISE,VAE,SONAR_CUSTOM_NOISE,SAMPLER,IMAGE,UPSCALE_MODEL | Connect 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_4opt | SIGMAS,OCS_NOISE,VAE,SONAR_CUSTOM_NOISE,SAMPLER,IMAGE,UPSCALE_MODEL | Connect 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_5opt | SIGMAS,OCS_NOISE,VAE,SONAR_CUSTOM_NOISE,SAMPLER,IMAGE,UPSCALE_MODEL | Connect 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)
| Name | Type | Description |
|---|---|---|
| OCS_PARAMS | OCS_PARAMS | Can be connected to another OCS Param or OCS MultiParam node or any other OCS node that takes OCS_PARAMS as an input. |