Nodes/comfyui-timesaver/TS Super Prompt RT
ComfyUI Node

TS Super Prompt RT

Prompt enhancement on Google's phone runtime — twice as fast, a fifth of the VRAM

By AlexYez·Created 2 years ago·Updated a day ago· 11
TS Super Prompt RT
  • images
  • audio
  • text
text
high_qualityfalse
system_presetPrompts enhance
attached_image
attached_image_2
keep_loadedfalse

TS Super Prompt RT is the prompt-enhancer node from Timesaver running on a different engine than everything else: Gemma 4 through Google's LiteRT-LM, the on-device runtime behind AI Edge - the stack meant for phones, not your 3090. Measured on the author's laptop it does 43 tokens/s against 20 for the transformers path, sits at ~1.7 GB of VRAM against 8.5, and the same model both writes the prompt and transcribes speech, so there's no Whisper in the chain at all.

Why you'd care: the local prompt enhancer is one of the most-used node types in this ecosystem - type a rough idea, a small model rewrites it into a structured, model-appropriate prompt, and that prompt feeds your text encoder. It's a popular pattern precisely because it's local: free per call, offline, uncensored. The RT version is the same job on a much lighter engine, which matters when the LLM is sharing your card with the diffusion model.

One switch, two jobs

high_quality picks between Gemma 4 E2B (2.4 GB, quicker) and E4B (3.4 GB, better prompts and a more careful ear). Because it's one model doing both the enhancement and the transcription, one switch decides both - there's no separate Whisper model to keep in sync. The weights pull from hfmaster/Gemma-4-RT into models/LLM/litert on first use, public and token-free, and they're the abliterated builds - refusal behaviour trained out, which matters when the node's whole job is writing prompts.

The other inputs: text is where recognised speech lands and the Enhance button replaces it with the written prompt; system_preset draws from the same preset set the Qwen node uses; keep_loaded is off by default and the tooltip says plainly why. The optional images socket takes up to four reference frames from the graph (each shrunk to 1024 px - every pixel costs context in a 4096-token window), and audio is a recording transcribed straight into a prompt. Output is the text STRING, wired into your text encoder.

The part that actually bites

LiteRT runs on WebGPU, not CUDA, and ComfyUI's memory manager can't see a byte of that memory - torch.cuda.mem_get_info reported the same free memory whether Gemma was resident or not. So the model is unloaded the moment the work is done (about a second), and keep_loaded trades a ~5 s reload for memory ComfyUI believes it still has - turn it on and the sampler that follows plans as if the card were free. That's why the default is off. The 4096-token context is the artifact's limit, not Gemma's, so a prompt that wouldn't fit is refused before the 3 GB download starts, and LiteRT holds one engine per process, so simultaneous requests queue and say so instead of looking frozen.

Windows and macOS only

LiteRT-LM publishes no Linux wheels, so it's deliberately not in requirements.txt - a hard dependency there would break install for every Linux box. On Linux the node loads and explains itself instead of failing obscurely; use the plain TS Super Prompt (transformers-based) there. On Windows or macOS you install the runtime separately:

python -m pip install litert-lm==0.16.1

Then the usual pack install: ComfyUI Manager → search "Timesaver", or cd ComfyUI/custom_nodes && git clone https://github.com/AlexYez/comfyui-timesaver, and restart.

Common issues

Where people get burned: installing the pack on Linux and wondering why this node won't run - it's the wheels, not you. And flipping keep_loaded on for speed, then watching a sampler OOM an hour later. Leave it off and let the second-per-call unload do its thing.

CategoryTS/LLM

Inputs (8)

NameTypeDefaultDescription
textSTRINGPrompt field: recognised speech lands here, and the Enhance button replaces the text with the written prompt.
high_qualityBOOLEANfalseOff: Gemma 4 E2B — quicker, 2.4 GB. On: E4B — better prompts and a more careful ear, 3.4 GB. The same model does both the prompt and the speech, so this one switch decides both.
system_presetCOMBOPrompts enhanceSystem preset from qwen_3_vl_presets.json — the same set the Qwen node uses.
attached_imageSTRINGInternal field: path of the image attached in the node.
attached_image_2STRINGInternal field: path of the second attached image.
keep_loadedBOOLEANfalseOff: the model leaves the card as soon as the prompt is written (about a second) and comes back in roughly five. On: it stays resident — faster on repeated presses, but ComfyUI CANNOT see this memory and will plan its own sampling as if the card were free.
imagesoptIMAGEOptional reference images from the graph. Takes precedence over images attached in the node. Up to four frames, each shrunk to 1024 px on the way in — every pixel costs context, and the window is 4096 tokens.
audiooptAUDIOOptional recording to transcribe. The transcript replaces the text field before enhancement, so a spoken idea can go straight into a prompt. Longer recordings are transcribed in 30-second segments.

Outputs (1)

NameTypeDescription
textSTRINGPrompt text — enhanced when enhancement runs, otherwise passed through.