pplx-embed-v2-late for storyboard frames: Sume has no embeddings route
Perplexity's pplx-embed-v2-late embeds images and pages. Sume lists no embeddings route; use video_frames_create for stills and index them on your side.

You can use pplx-embed-v2-late to search frames from Sume videos, but Sume does not run it. I found no embeddings route in Sume's public docs or API contract docs. The workable path is to pull stills with video_frames_create, embed them with Perplexity's open-weight model on your own machine, and keep the index yourself.
What is pplx-embed-v2-late?
Per its Hugging Face card, it is a late-interaction (ColBERT-style) retriever for text, images and visual documents, built on Qwen3.5, MIT licensed, with a blog post dated October 7, 2026. It stores a 128-dimension vector per token and scores with MaxSim. The 9B card says it shares an embedding space with the 0.6B variant, and that mixed text-plus-image inputs are not supported. It requires sentence-transformers 6.0.0 or newer.
That last limit matters for a storyboard: a frame with burned-in caption text counts as an image, not as a text-and-image pair.
Does Sume expose embeddings anywhere?
No. The one Sume doc that mentions the word, Sume's repository note on single-clip video understanding, lists "no indexes, collections, hosted search, embedding, batch, generation, or new transcription surfaces" for that feature, and that feature is a development-only opt-in. For the general case, the same answer applies as for other embedding models: there is no Sume endpoint to call.
| Step | Where it happens | Tool |
|---|---|---|
| Cut stills from a finished clip | Sume | video_frames_create |
| Wait for and fetch the stills | Sume | jobs_wait, jobs_result |
| Embed the stills | Your machine | pplx-embed-v2-late (0.6B or 9B) |
| Store and query vectors | Your machine | Your own index |
| Regenerate a matching shot | Sume | generate_video with an idempotency_key |
Which size should I pick for frames?
Because the two models share an embedding space, an index built with the 9B model can be queried with the 0.6B model's query vectors. That is stated on the 9B card. For a few hundred storyboard frames, the 0.6B model is the lower-cost place to start; judge both on your own frames, since the card's retrieval scores are for documents, not video stills.
- Pull one still per shot rather than per second to keep the index small.
- Keep the Sume job id next to each vector so a hit leads back to the clip.
- Cap any regeneration with
max_spend_usdand test it withdry_runfirst.
What can go wrong?
Late-interaction indexes are bigger than single-vector ones, because each frame yields many 128-dimension vectors rather than one. That is a property of how the model scores, as the card describes it, and it means a long project's stills can add up on disk. Decide how many frames you really need before you embed them.
Signed result URLs from a finished job expire, so download the stills when you pull them instead of storing the link. Keep the job id as your stable reference.
Last, the card's headline numbers are for document retrieval. Whether a model tuned for pages ranks cartoon frames or cut-down product shots well is something only your own queries will show.
Sources
Related posts
More in Developers
- What did one script_run cost? Sume script_runs and its children
Sume /v1/usage lists script_runs with rows and money per call, and counts script_run_children in includes. Read the cost of one script_run to the cent.
- Sume 400 invalid_request: read details.errors[].path to find the field
A Sume 400 invalid_request lists each bad field in details.errors with path, loc, message and type. Read them in Python instead of guessing from the message.
- A Sume 400 that returns a job id: input rejected at provider submit
Most Sume 400s create nothing, but a provider input rejected at submit leaves a failed job, a request_id and a refund. How to read it and what key to use.
- Sume 404 resource_not_found: job_not_found and model_not_found overlap
Every Sume 404 reports public_reason resource_not_found, whatever the code. Branch on error.code to tell a missing job from a bad model id or a missing asset.
Written by Sume