Nodes/Arctenoxs-Essentials_ComfyUI/Prompt Phase Splitter (Arctenox's Essentials)
ComfyUI Node

Prompt Phase Splitter (Arctenox's Essentials)

Prompt Phase Splitter promises temporal prompts. Read the fine print.

By Arctenox·Created 8 months ago·Updated 2 months ago· 1
Prompt Phase Splitter (Arctenox's Essentials)
  • base_positive
  • base_negative
  • clip
  • positive
  • negative
  • phase_info
  • resolved_wildcards
enable_compositionenabled
composition_promptmasterpiece, best quality, composition, framing, rule of thirds
composition_weight1.0
composition_end_percent0.30
enable_detailenabled
detail_promptintricate details, fine details, sharp focus, high detail
detail_weight1.0
detail_start_percent0.25
detail_end_percent0.65
enable_textureenabled
texture_promptsmooth textures, refined surface, polished finish
texture_weight1.0
texture_start_percent0.60
enable_characterdisabled
character_prompt1girl, detailed face, expressive eyes, natural pose
character_weight1.2
character_start_percent0.00
character_end_percent1.00
blend_modeconcat
wildcard_prompt
wildcard_seed0

Here's the pitch, straight from the README: split generation into three temporal phases - composition, detail, texture - each with its own prompt, weight, and step count. That sounds like per-step prompt scheduling, which is a genuinely useful thing to have.

Here's what the source actually does: it's a prompt blender, not a scheduler. The percentage fields (composition_end_percent, detail_start_percent, and friends) are descriptive - they show up in the phase_info string, but nothing in the node consults them against sampling steps. What really happens is the phase prompts get merged into a single conditioning before it ever reaches your KSampler. If you bought this hoping for true temporal conditioning, you'll be disappointed. If you use it as "organize one prompt into three weighted chunks," it's fine.

How it works

With a CLIP model attached, the node resolves wildcards in every phase prompt using a seeded RNG (wildcard_seed −1 = randomize every run), then combines the active phase prompts with your base conditioning. The blend_mode chooses how:

  • concat (default) - joins all phase prompts into one string, prefixed masterpiece, best quality, and encodes it once. Honestly? This is "build me a longer prompt" in a trench coat.
  • append - adds each phase as its own conditioning entry, the way you'd append conditionings in a vanilla graph.
  • add / subtract - does tensor arithmetic on the conditioning embeddings, scaling each phase by its weight. This is where the node actually earns the "splitter" name, and where the weights do real work.

The negative side passes through untouched - you get base_negative back exactly as you fed it.

The inputs that matter

base_positive and base_negative come from your CLIP Text Encode nodes, and you also feed a clip in. That clip input is the whole mechanism: if it's unconnected, the node shrugs and returns your base conditioning unchanged with a "No CLIP provided" note.

For each of composition, detail and texture there's an enable toggle, a prompt, a weight (0–3) and percent boundaries. The three enable toggles and weights are what you'll actually touch; the percent fields are mostly for your own documentation. There's also an off-by-default enable_character phase for subject emphasis, and a standalone wildcard_prompt that gets appended to composition.

The outputs

  • positive - the combined CONDITIONING, wired into your KSampler.
  • negative - your base negative, passed through.
  • phase_info - a human-readable breakdown of which phases are active and at what weights. Worth glancing at once so you know what you're actually sending to the sampler.
  • resolved_wildcards - shows what each wildcard resolved to, handy when a generation surprises you.

Install

ComfyUI Manager, search Arctenox's Essentials, install, restart. Or:

cd ComfyUI/custom_nodes/
git clone https://github.com/Arctenox/Arctenoxs-Essentials_ComfyUI

Restart, and you're done - no model downloads, just torch, numpy and optional psutil.

Gotchas

  • Set expectations: default concat mode is basically prompt concatenation. Use add or subtract if you want the weighted-blend behavior the phase framing promises.
  • If the output never changes, check that clip is connected. It's the difference between "works" and "silently passes through."
  • The whole pack is marked DEPRECATED - Arctenox is folding it into a new combined pack. Fine for a workflow you're running today, not something to build long-term infrastructure on.
CategoryArctenox Essentials/Sampling

Inputs (24)

NameTypeDefaultDescription
base_positiveCONDITIONING
base_negativeCONDITIONING
enable_compositionCOMBOenabledEnable composition phase
composition_promptSTRINGmasterpiece, best quality, composition, framing, rule of thirdsApplied in early sampling (composition structure). Supports wildcards.
composition_weightFLOAT1.00–3Strength of composition phase
composition_end_percentFLOAT0.300–1When to end composition phase (0.3 = 30% of steps)
enable_detailCOMBOenabledEnable detail phase
detail_promptSTRINGintricate details, fine details, sharp focus, high detailApplied in middle sampling (detail refinement). Supports wildcards.
detail_weightFLOAT1.00–3Strength of detail phase
detail_start_percentFLOAT0.250–1When to start detail phase
detail_end_percentFLOAT0.650–1When to end detail phase
enable_textureCOMBOenabledEnable texture phase
texture_promptSTRINGsmooth textures, refined surface, polished finishApplied in late sampling (texture refinement). Supports wildcards.
texture_weightFLOAT1.00–3Strength of texture phase
texture_start_percentFLOAT0.600–1When to start texture phase
enable_characterCOMBOdisabledEnable character/subject focus phase
character_promptSTRING1girl, detailed face, expressive eyes, natural poseCharacter/subject focus (applied when enabled). Supports wildcards.
character_weightFLOAT1.20–3Strength of character phase
character_start_percentFLOAT0.000–1When to start character phase
character_end_percentFLOAT1.000–1When to end character phase
blend_modeCOMBOconcatconcat (join prompts), append (separate entries), add (strengthen), subtract (weaken)
wildcard_promptSTRINGStandalone wildcard prompt. Appended to composition or base.
wildcard_seedINT0-1–18446744073709550000Seed for wildcards. -1 = Randomize every run. 0+ = Fixed.
clipoptCLIP

Outputs (4)

NameTypeDescription
positiveCONDITIONING
negativeCONDITIONING
phase_infoSTRING
resolved_wildcardsSTRING