Nodes/ComfyUI-DrawThingsWrapper/Draw Things Img2Img Pipeline
ComfyUI Node

Draw Things Img2Img Pipeline

An editable img2img config for the Draw Things wrapper

By JosephThomasParker·Created 2 years ago·Updated 2 years ago· 53
Draw Things Img2Img Pipeline
  • images
  • pipeline
modelflux_1_dev_q8p.ckpt
prompt
seed42
guidance_scale3.5
samplerEuler A Trailing
steps20
denoise1.00

This is the pipeline-mode counterpart to the basic Draw Things img2img node. It takes an image plus the usual settings and, instead of running the generation, outputs a settings blob (a "pipeline") you can edit before it fires. The actual render happens in DrawThingsGenerateFromPipeline, which sits at the end of the chain.

The reason to use it over the plain DrawThingsImg2Img node is the editable gap in the middle. With a pipeline in hand you can pipe it through DrawThingsPipelineAddLora, DrawThingsPipelineAddControl, or DrawThingsPipelineAddCustom to layer on a LoRA, a ControlNet, or any raw Draw Things API field the basic nodes don't surface - all without leaving ComfyUI. The basic img2img node bundles build-and-generate into one step, so there's nowhere to slot those extras. This node is what you reach for when a straight img2img isn't enough and you want to stack options from inside the graph.

Doing plain image-to-image with nothing fancy on top? Skip this and use DrawThingsImg2Img - fewer wires, same result.

How it works

The node packs your image and inputs into a Python dict of Draw Things parameters and outputs that dict. No network call, no image yet. It's the exact payload the basic node would have sent to the Draw Things API, just held so you can modify it. When DrawThingsGenerateFromPipeline receives the (possibly edited) dict, it POSTs it to Draw Things on port 7860 and Draw Things does the img2img pass on Apple Silicon.

The inputs and outputs that matter

Inputs mirror the basic img2img node:

  • images (IMAGE) - the source picture. Note there's no width/height; geometry follows the input.
  • denoise (default 1.0, range 0–1) - the defining img2img control. 1.0 basically ignores the source; pull it toward 0.4–0.6 to keep the original composition and just restyle. This is the knob you'll tune most.
  • model - a string matching the Draw Things filename exactly, e.g. flux_1_dev_q8p.ckpt. Get it from Draw Things' "..." → Copy configuration; don't retype from memory.
  • prompt, seed (42), steps (20), guidance_scale (3.5).
  • sampler - enum of 17 Draw Things samplers, default Euler A Trailing.

Output is pipeline (dict) - send it to an Add-node or straight to DrawThingsGenerateFromPipeline.

How to install it

Ships with the whole 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

No image comes out. By design - this node only builds a dict. You need DrawThingsGenerateFromPipeline downstream to render. Forgetting it is the most common mistake with the pipeline route.

Denoise behaves like a light switch. 1.0 discards the input entirely; if your output looks unrelated to the source, lower denoise. Around 0.4–0.6 keeps structure while changing style.

Model name errors. model is a literal Draw Things filename - Copy configuration, paste, use verbatim.

Inpainting won't work. The Draw Things API can't take masks, so no node in this pack can inpaint. Do masked edits inside the Draw Things app itself.

Added modifiers do nothing. An Add-Lora/Add-Control node has to sit inline between this node and the generate node so the pipeline dict flows through it. Off to the side, it's ignored.

CategoryDrawThingsWrapper

Inputs (8)

NameTypeDefaultDescription
imagesIMAGEinput image
modelSTRINGflux_1_dev_q8p.ckpt
promptSTRING
seedINT42
guidance_scaleFLOAT3.50–25
samplerCOMBOEuler A Trailing17 options: UniPC, DPM++ 2M Karras, Euler a, DPM++ SDE Karras, PLMS, DDIM, +11
stepsINT201–150
denoiseFLOAT1.000–1

Outputs (1)

NameTypeDescription
pipelinedict