Nodes/ComfyUI-DrawThingsWrapper/Draw Things Pipeline Add Custom Field
ComfyUI Node

Draw Things Pipeline Add Custom Field

The escape hatch for any Draw Things API field

By JosephThomasParker·Created 2 years ago·Updated about a year ago· 53
Draw Things Pipeline Add Custom Field
  • pipeline
  • pipeline
field
value_type
value

This is the "I know what I'm doing, let me set that field myself" node. The other Draw Things pipeline nodes expose a curated handful of settings - model, prompt, sampler, LoRA, control. But the Draw Things API accepts a lot more than that, and DrawThingsPipelineAddCustom lets you write any key into the pipeline dict by hand: a field name, its type, and a value. It's a generic escape hatch.

You reach for this when the setting you need isn't a dropdown on any other node. Draw Things exposes options through its API - things like shift, refiner settings, clip skip, seed mode, and plenty of others - and rather than build a node per option, the author gave you one node that can set them all. The trade-off is there's no hand-holding: you have to know the exact field name the Draw Things API expects and give it a valid value. Get the name wrong and it's silently ignored; get the type wrong and Draw Things may choke on it.

Honestly, most people never need this. If you're doing standard txt2img/img2img with a LoRA or a control, the dedicated nodes cover you. This one is for the power user who's read the Draw Things API docs and wants a specific knob.

How it works

The node takes the incoming pipeline dict and writes a single key/value pair into it, casting the value to the type you specify. Then it passes the dict on. Nothing generates - like the other Add-nodes, it's a pass-through editor. The value only takes effect when DrawThingsGenerateFromPipeline sends the finished dict to the Draw Things API.

The inputs and outputs that matter

  • pipeline (dict) - the config coming from an upstream pipeline node. Required.
  • field (string) - the exact Draw Things API parameter name you want to set. This has to match what the API expects; check the Draw Things scripting/API docs for valid names.
  • value_type - enum of STRING / INT / FLOAT - how to interpret the value. Pick the type the field actually expects.
  • value (string) - the value, entered as text; it's cast according to value_type.

Output is pipeline (dict) - chain another Add-node or feed DrawThingsGenerateFromPipeline.

How to install it

Part of the Draw Things pack. In Draw Things, open Advanced → enable API Server (HTTP, Port 7860, localhost). Then install via ComfyUI Manager (search ComfyUI-DrawThingsWrapper) or manually:

cd ComfyUI/custom_nodes
git clone https://github.com/JosephThomasParker/ComfyUI-DrawThingsWrapper
cd ComfyUI-DrawThingsWrapper
pip install -r requirements.txt

then restart ComfyUI.

Common issues & troubleshooting

Your custom field is ignored. The field name almost certainly doesn't match what the Draw Things API expects. There's no autocomplete here - cross-check the exact key against the Draw Things API documentation, spelling and casing included.

Draw Things errors or behaves oddly after adding it. Wrong value_type. A field that wants an integer won't like a float, and vice versa. Match the type to what the API expects, and keep the value string parseable as that type.

You're using this for something a real node already does. Don't. If a dedicated node exists (Add-Lora, Add-Control, or a field on the pipeline builder), use it - it validates and formats things this generic node won't. Save Add-Custom for genuinely unexposed settings.

Nothing renders. This node only edits the pipeline. DrawThingsGenerateFromPipeline has to be downstream, with the dict flowing through this node to reach it.

CategoryDrawThingsWrapper

Inputs (4)

NameTypeDefaultDescription
pipelinedictDraw Things pipeline
fieldSTRING
value_typeCOMBOChoose the type of the value
valueSTRING

Outputs (1)

NameTypeDescription
pipelinedict