Draw Things Pipeline Add Custom Field
The escape hatch for any Draw Things API field
- pipeline
- pipeline
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 ofSTRING/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 tovalue_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.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| pipeline | dict | Draw Things pipeline | |
| field | STRING | — | |
| value_type | COMBO | Choose the type of the value | |
| value | STRING | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| pipeline | dict | — |