Nodes/Symbiotica/NS WaveSpeed Flux ControlNet Union Pro 2
ComfyUI Node

NS WaveSpeed Flux ControlNet Union Pro 2

Hosted Flux With a Real ControlNet Knob

By symbiotica-ai·Created 6 months ago·Updated about 13 hours ago· 2
NS WaveSpeed Flux ControlNet Union Pro 2
  • client
  • output_image
prompt
control_image
size1024*1024
num_inference_steps28
guidance_scale3.5
controlnet_conditioning_scale0.7
control_guidance_start0.00
control_guidance_end0.80
seed-1
num_images1
output_formatjpeg
enable_sync_modetrue
custom_size

ControlNet is the single highest-leverage trick in this hobby: it takes a pose, a depth map, an edge map - the shape of a picture - and makes the model build within it. On a local Flux install, a union ControlNet means downloading the base model, the controlnet weights, the text encoder, and finding a preprocessor. NSWaveSpeedFluxControlNetUnionPro2 skips all of that: it runs Flux ControlNet Union Pro 2 on WaveSpeed's servers. Paste a control image's URL, write a prompt, and the structure is respected without a single weight on your disk.

The trade-off is the same as every cloud node in this pack: it's hosted, it costs per call, and your image leaves the machine. For a first pass at a composition, or a run on a machine with no GPU headroom, that's often the right price.

How it works

The node calls WaveSpeed's Flux ControlNet Union Pro 2 endpoint with your prompt, the control image, and the conditioning knobs. The interesting ones:

  • control_image - a URL string, not an IMAGE tensor. The tooltip says "connect from Upload Image node": you need a node that hands back a URL (this pack's uploader or any URL-producing node). This trips people up constantly - an IMAGE socket won't plug into it.
  • controlnet_conditioning_scale - 0–2, default 0.7. How hard the control pulls. On union models the current advice is lower than the old SD-era 1.0; 0.7 is a sane start, and 0.4–0.5 gives structure without strangling the prompt.
  • control_guidance_start / control_guidance_end - when in denoising the control applies (defaults 0 → 0.8). The community's standing tip applies here: let composition form under the control, then release it for the detail phase. Ending at 0.8 instead of 1.0 does exactly that.
  • guidance_scale (default 3.5), num_inference_steps (default 28) - Flux is a low-guidance model; 3.5 is in the right band. 28 steps is plenty for hosted Flux.
  • size - 11 presets from 1024×1024 up to 1536×640/640×1536, or custom_size as a "1920*1080" string that overrides the dropdown.
  • seed (-1 = random), num_images (1–4), output_format (jpeg/png/webp), enable_sync_mode (wait for the result).

Output: output_image as an IMAGE tensor, dropped back into your graph like any local generator.

Install and setup

Part of the Symbiotica pack. ComfyUI Manager → search "Symbiotica", or:

cd ComfyUI/custom_nodes
git clone https://github.com/symbiotica-ai/comfyui-nodes.git symbiotica
pip install -r symbiotica/requirements.txt

Restart, then build the client: wire a NSWaveSpeedClient node (key in Settings → Symbiotica) into this node's client socket.

Troubleshooting

  • "control_image" won't accept my image - it's a URL string, not an IMAGE socket. Feed it from a node that outputs a URL.
  • The control is ignored - controlnet_conditioning_scale too low, or the control image is too weak (a blank edge map conditions nothing). Crank to ~1.0 to confirm the pipeline, then dial back.
  • Too much of the control, not enough of the prompt - lower the conditioning scale and end guidance earlier (0.6 instead of 0.8). You want structure, not a photocopy.
  • Costs creep up - every call is metered, and num_images 4 is four billable renders. Iterate at 1 image, sync mode on, and only fan out when the composition is locked.
Categoryneuralsins/WaveSpeed

Inputs (14)

NameTypeDefaultDescription
clientWAVESPEED_AI_API_CLIENT
promptSTRINGText description of the image to generate
control_imageSTRINGURL of control image for ControlNet guidance (connect from Upload Image node)
sizeCOMBO1024*1024Resolution of the generated image
num_inference_stepsINT281–50Number of denoising steps (higher = better quality, slower)
guidance_scaleFLOAT3.50–20How closely to follow the prompt (higher = more adherence)
controlnet_conditioning_scaleFLOAT0.70–2Influence of control image on generation (0=none, 2=maximum)
control_guidance_startFLOAT0.000–1When to start applying control (0=beginning)
control_guidance_endFLOAT0.800–1When to stop applying control (1=end)
seedINT-1-1–18446744073709550000Random seed for reproducible results. -1 for random seed
num_imagesINT11–4Number of images to generate (1-4)
output_formatCOMBOjpegFormat of the output image
enable_sync_modeBOOLEANtrueWait for generation to complete before returning
custom_sizeoptSTRINGCustom size as 'width*height' (e.g. '1920*1080'). Overrides size dropdown if provided.

Outputs (1)

NameTypeDescription
output_imageIMAGE