PyramidFlow Text Encode
The dual-clip brain behind your prompt
- clip
- prompt_embeds
PyramidFlow Text Encode is where your prompt becomes something the model can actually read. It takes a CLIP, runs your positive and negative prompts through it, and hands the finished conditioning to the sampler. If you've used a Flux workflow you've basically met it - PyramidFlow's miniflux transformer is Flux architecture, which means it wants the same dual text encoder: a T5-XXL for the long-form semantic understanding plus a CLIP-L for the pooled summary.
The inputs
clip- a CLIP input, and it should be the dual encoder. In practice that means loading it with ComfyUI'sDualCLIPLoaderusing t5xxl + clip_l, exactly like a Flux workflow. Kijai's own example workflows do precisely that, so this isn't a guess - the node reaches intoclip.tokenizer.t5xxlandclip.tokenizer.clip_land reads both.positive_prompt- defaults tohyper quality, Ultra HD, 8K. Multiline. This is your subject and scene; the defaults are just quality tags and nothing about the actual content, so they read as a nudge to write a real prompt.negative_prompt- pre-filled with a long, sensible blocklist:cartoon style, worst quality, low quality, blurry, absolute black, absolute white, low res, extra limbs, extra digits, misplaced objects, mutated anatomy, monochrome, horror. Honestly a decent default. Trim it if you want, but the anatomy and quality tags are carrying real weight with this model.force_offload- defaulttrue. After encoding, it shoves the text encoder back to CPU so it's not eating VRAM during sampling. Leave it on.
How it works
The node tokenizes your positive prompt through both encoders - T5 padded to 128 tokens, CLIP-L to its usual 77 - and encodes positive and negative into a single bundle: text embeddings, attention masks, and pooled embeddings, with attention masks explicitly enabled for the T5 side. That bundle comes out as a single output:
prompt_embeds(PYRAMIDFLOWPROMPT) - wires into theprompt_embedsinput on PyramidFlow Sampler.
Nothing about the node calls an API or needs a key; it's all local CLIP inference. The force_offload toggle is the only knob you'd realistically touch.
One thing that will trip you up
Look at the node's category in ComfyUI: it says CogVideoWrapper. That's not a mistake on your end - it's a copy-paste artifact from Kijai's other wrapper packs (the torch compile node in this same pack is labeled MochiWrapper). Ignore it, search "PyramidFlow Text Encode" and it's there. It's a small, very Kijai tell that these wrappers share DNA.
Install
Standard for this pack: ComfyUI Manager → "PyramidFlow Wrapper", or clone into custom_nodes and restart. The text encoder itself is ComfyUI's stock dual clip - the pack README doesn't ask you to download a special text encoder, because you already have one if you've ever run Flux. Download the PyramidFlow models (into diffusion_models and vae), wire a DualCLIPLoader into this node, and you're done. If your sampler output looks like it's ignoring the prompt entirely, check that the CLIP feeding this node is actually dual - a single CLIP-L will encode fine but produce weak, near-random conditioning for a model trained on T5 + CLIP pairs.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| clip | CLIP | — | |
| positive_prompt | STRING | hyper quality, Ultra HD, 8K | — |
| negative_prompt | STRING | cartoon style, worst quality, low quality, blurry, absolute black, absolute white, low res, extra limbs, extra digits, misplaced objects, mutated anatomy, monochrome, horror | — |
| force_offload | BOOLEAN | true | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| prompt_embeds | PYRAMIDFLOWPROMPT | — |