Nodes/Umbra Nodes/Power Prompter Websocket
ComfyUI Node

Power Prompter Websocket

Power Prompter Websocket — the node that listens to Umbra's prompt cards

By Nocturne-Ai-Labs·Created 2 months ago·Updated 10 days ago· 0
Power Prompter Websocket
  • clip
  • prompt_text
  • positive
  • empty_latent
  • seed
  • width
  • height
  • batch_size
  • negative
  • negative_prompt_text
prompt_text
negative_prompt
seed0
control_after_generatefixed
increment_step1
style_seed_behaviornormal
aspect_ratioSDXL - 1:1 square 1024x1024
swap_dimensionsOff
width1024
height1024
batch_size1

Most nodes hold a prompt in a text box. Power Prompter Websocket holds a prompt that someone else is typing. It's the ComfyUI-side receiver for Umbra Studio's Power Prompter - the prompt-card system where you build modular cards, variants, and sets that combine into thousands of prompt combos. This node sits in your graph and stays in sync with whatever card set is active in the Umbra UI, so you can browse prompts in one window and queue them against your ComfyUI workflow without copying text around.

The name "Websocket" tells you the transport: it subscribes to the live prompt state and updates its prompt_text and negative_prompt fields in real time. The tooltips in the schema say it plainly - "Active prompt text synced from Umbra Power Prompter websocket." If you're not running Umbra Studio, you can still use the node as a manual prompt holder with nice seed controls, but you're missing its whole reason to exist.

How it works

On each run it takes the current prompt text and:

  • Builds conditioning - with an optional clip input, it encodes positive and negative CONDITIONING the same way ComfyUI's CLIP Text Encode does (via the scheduled encode path, so model-specific encoders keep their metadata). No clip wired, no conditioning - the text outputs still flow.
  • Builds the empty latent - aspect_ratio offers the same 33 SD1.5/SDXL/1536 presets as the Power Prompter node, with custom falling back to width/height, swap_dimensions to flip, and batch_size for the batch. Output empty_latent feeds a KSampler directly.
  • Resolves the seed - seed + control_after_generate (fixed / increment / decrement / randomize, with increment_step controlling the step size) give you per-run seed control right on the node. style_seed_behavior's same_seed_style_cycle keeps the base seed pinned across style-expanded jobs - its tooltip explains exactly why: style-expanded prompt jobs should reuse the same base seed instead of advancing this node's counter, so the variation shows up in the prompt, not the noise.

Outputs: prompt_text, negative_prompt_text, positive, negative, empty_latent, seed, width, height, batch_size.

What a beginner sets

  • prompt_text / negative_prompt - synced from the websocket (or typed by hand).
  • seed and control_after_generate - the two you'll actually fiddle with.
  • aspect_ratio - pick a preset; custom sizes live in width/height.
  • clip (optional) - wire it if you want the conditioning outputs, which means wiring a CLIPLoader or similar upstream.

Installing it

Part of Umbra-Nodes, the ComfyUI companion pack for Umbra Studio (NocturneLabs' open-source local AI creation suite). ComfyUI Manager → search "Umbra Nodes", or:

cd ComfyUI/custom_nodes
git clone https://github.com/Nocturne-Ai-Labs/Umbra-Nodes

Restart ComfyUI. No pip deps of its own. Note this node is registered in a separate module - it loads as long as its imports succeed, and the pack degrades gracefully if they don't, so if the node is missing entirely after install, restart once more and check the console for an import warning.

Gotchas

Because the text arrives from outside the graph, an unwired reader will happily run with stale or empty text - the sync is only live while Umbra Studio is connected. If you use it standalone and it "ignores" your typed prompt, check whether a websocket connection is overriding the field. And since seed increment/decrement use an in-process counter, the node always recomputes in those modes - that's the counter doing its job, not a bug. Keep one seed owner per graph: this node's counter and a downstream sampler's own progression will both advance otherwise.

CategoryUmbra

Inputs (12)

NameTypeDefaultDescription
prompt_textSTRINGActive prompt text synced from Umbra Power Prompter websocket.
negative_promptSTRINGNegative prompt text synced from Umbra Power Prompter websocket.
seedINT00–18446744073709550000Base seed value.
control_after_generateCOMBOfixedHow seed changes after each run.
increment_stepINT11–18446744073709550000Seed step for increment/decrement.
style_seed_behaviorCOMBOnormalWhen same_seed_style_cycle is active, style-expanded prompt jobs reuse the same base seed instead of advancing this websocket node's per-run seed counter.
aspect_ratioCOMBOSDXL - 1:1 square 1024x1024Resolution presets matching SD1.5 and SDXL aspect ratios.
swap_dimensionsCOMBOOffSwap width and height after preset/custom resolution is resolved.
widthINT102464–8192Used when aspect_ratio is custom.
heightINT102464–8192Used when aspect_ratio is custom.
batch_sizeINT11–64Empty latent batch size.
clipoptCLIPCLIP model for positive conditioning output.

Outputs (9)

NameTypeDescription
prompt_textSTRING
positiveCONDITIONING
empty_latentLATENT
seedINT
widthINT
heightINT
batch_sizeINT
negativeCONDITIONING
negative_prompt_textSTRING