Nodes/ComfyUI-STARWrapper/STAR Text Encode
ComfyUI Node

STAR Text Encode

A soft steering wheel, not a command line

By vjumpkung·Created 9 months ago·Updated 12 days ago· 3
STAR Text Encode
  • star_model
  • STAR conditioning
prompta good video

STAR is a text-guided video upscaler, and STAR Text Encode is where you type the text. It takes the model object from STAR Model Loader plus a prompt, and hands a STAR conditioning object to STAR Sample. Two inputs, one output, and a surprisingly big effect on the personality of your output - as long as you understand what the text is actually doing.

How it works

STAR's trick (from the paper) is that it doesn't just stretch pixels - it runs an image-to-video diffusion model (an I2VGen-XL architecture) that regenerates your frames at higher resolution, guided by the low-res source and by a text description of what good output should look like. That text conditioning is computed here, once. The prompt goes through the OpenCLIP text encoder that loads alongside the model (the laion2b_s32b_b79k weights), and the resulting embeddings get cached so that changing sampling settings downstream never re-encodes your prompt.

The settings:

  • star_model - the STARVSR_MODEL from STAR Model Loader.
  • prompt - a multiline string, default "a good video". Leave it blank and the node falls back to the model's own baked-in default, which is a long cinematic rhapsody about Canon EOS cameras and "skin pore detailing" - fun, but the fact it exists tells you something important.

That something: the prompt is a soft steering wheel, not a command. You're not telling STAR "make it a car chase." You're describing the kind of enhancement you want. The paper's own advice is essentially what's in the box - a prompt like "a high quality video" - and the community's early hands-on runs of STAR got good results mostly by picking the right degradation model, not by prose. Where the text matters is nudging the regeneration away from artifacts: if your source is film grain, VHS noise, or compressed streaming, adding "clean, sharp, natural" or the model's own avoidance vocabulary (blur, artifacts, low quality) biases the denoise toward fixing exactly that.

One honest gap: you only control the positive side. The negative prompt that CFG uses against your conditioning is hardcoded inside the model config - a sensible blocklist of "painting, cartoon, watermark, jpeg artifacts, low quality" - and this node exposes no way to edit it. So don't go hunting for a negative prompt field; it isn't here.

Where it sits

Wire the conditioning output into STAR Sample alongside the prepared video and model. Because encoding is its own node, ComfyUI caches it: change the seed, CFG, steps, or sampler downstream and the text pass doesn't rerun. Change the prompt and only this small node reruns - the multi-gigabyte model and your prepared frames stay cached. That's the whole reason the pack is split up, and it makes prompt iteration cheap in a pipeline where every actual upscale is expensive.

Installing the pack

Search ComfyUI-STARWrapper in ComfyUI Manager, or clone and install:

cd ComfyUI/custom_nodes
git clone https://github.com/vjumpkung/ComfyUI-STARWrapper
cd ComfyUI-STARWrapper
pip install -r requirements.txt

Then restart ComfyUI. Same pack-level caveats apply everywhere here: you need a current ComfyUI (the pack uses the newer comfy_api.latest V3 node API), CUDA PyTorch, a matching xformers, and the pack's heavy dependency list including open-clip-torch pinned to 2.20.0 - which is the piece this node leans on, so it's not optional.

Troubleshooting

  • Changing the prompt seems to change almost nothing - expected. The prompt shapes enhancement direction; the degradation model and resolution do the heavy lifting. If you want a visibly different result, try the other model in the loader or a different CFG.
  • Empty prompt surprise - you'll get the baked-in cinematic default, not "no guidance." If you want a literal, plain result, write something like "realistic video, natural colors, no enhancement" rather than leaving it blank.

If you're here, the next node is STAR Sample, and that's where your video actually gets upscaled - and where you'll wait.

Categoryvideo/upscaling/STAR

Inputs (2)

NameTypeDefaultDescription
star_modelSTARVSR_MODEL
promptSTRINGa good video

Outputs (1)

NameTypeDescription
STAR conditioningSTARVSR_CONDITIONING