desert-ant-labs / clips

huggingface.co
Total runs: 664
24-hour runs: -6
7-day runs: 403
30-day runs: 638
Model's Last Updated: October 03 2026
text-ranking

Introduction of clips

Model Details of clips

Clips

Create short videos and highlight clips.

Short clips and highlights from talking video and audio: podcasts, interviews, meetings. On-device.

Platforms iOS, macOS, tvOS, visionOS, Linux, Windows
Weights v0.1.0
Install

Swift ( requirements )

.package(url: "https://github.com/Desert-Ant-Labs/desert-ant-core.git", from: "3.1.0")

Then add the Clips product to your target.

What the model does

Point Clips at a transcript and get the moments worth cutting, ranked best first and never overlapping. Nothing is uploaded, so clipping a back catalogue costs the same as clipping one video.

One xlm-roberta-base trunk, 278M parameters, carrying four heads. 284MB as a single int8 Core ML package on Apple platforms, or two 283MB LiteRT files elsewhere. 100 languages.

Clips carry no title. Pairing them with words is a separate model, desert-ant-labs/title .

Maximum video length

There's no context window. Clips never reads a transcript whole: sentences run through the selector in batches of 16 and each candidate clip is scored on its own, so length is bounded by time rather than by a token limit. The longest we've run is an 835 sentence podcast.

transcript iPhone 17 Pro iPhone 15 Pro
404 sentences, 25 minutes of video, 12 clips 9.19s 10.22s
57 sentences 2.23s
per candidate, encoder only 2.78ms 3.13ms

Measured on device at batch 16, pinned to .cpuAndNeuralEngine .

How selection works

The model scores first and builds clips second.

Four heads sit on the shared trunk: saliency, start-of-clip, end-of-clip, and a clip scorer. The first three run once per sentence, pick the anchors, and propose candidate spans around each one. The scorer reads each candidate span whole, as text, and ranks it.

Weighted interval scheduling returns the highest-scoring set of non-overlapping spans within a budget, and a redundancy guard drops any clip that repeats the wording of one already kept.

The selector reads five discourse scalars per sentence that the scorer never sees, so the two ship as separate graphs.

Files
File Format Size Contents
clips.mlmodelc/ Compiled Core ML, int8 per-channel 284MB Multifunction package. Function select : ids , mask , disc to saliency , start_p , end_p . Function score : ids , mask to score
clips-selector.tflite LiteRT, int8 weight-only 283MB The selector, for Android, Linux and Windows. Converted from PyTorch through StableHLO
clips-scorer.tflite LiteRT, int8 weight-only 283MB The scorer, for Android, Linux and Windows
clip_tokenizer.bin Unigram tokenizer 4MB The 250,002 xlm-roberta SentencePiece pieces and scores, in the compact binary the runtimes read
clips_meta.json JSON tiny Graph widths, input roles, discourse feature order, per-platform quantization scheme
checkpoint/ safetensors and PyTorch 1.1GB The checkpoint both exports were built from: the encoder as safetensors, the two head files, and run_manifest.json describing the training run

On Apple platforms both graphs live in one Core ML package over a single stored copy of the trunk , which costs 3MB over a single-shape package. LiteRT has no equivalent packaging, so the other platforms ship two files and store the trunk twice.

The selector graph is 128 tokens wide, the scorer 256, both at a fixed batch of 16 sentences. A sentence longer than 64 tokens is truncated before it reaches the selector.

Core ML functions

Set MLModelConfiguration.functionName to select or score . A path names the package, not the graph, and Core ML loads the default function silently, so without it both halves of your pipeline run the selector.

Input roles on LiteRT

The LiteRT graphs take int64 ids and mask , and name their inputs positionally, args_0 upward, so clips_meta.json carries the mapping. Feed ids and mask swapped and the graph returns finite, plausibly scaled numbers and a pipeline that quietly builds the wrong pool.

Quantization

Core ML ships int8 per-channel, embeddings included, which costs 0.001 correlation against an fp32 baseline. LiteRT ships int8 weight-only. clips_meta.json records which scheme applies to which file.

Thresholds

Clip.score runs 1 to 5 and is not calibrated between videos. Threshold on percentile instead. An absolute cut at 0.65 returns nothing on 21% of videos, and at 0.75 on half of them. Per-video 95th percentiles range from 0.33 to 0.95.

percentile cut clips per video share of the video covered use
0.8 5.0 17% highlights
0.3 32.1 74% auto edit
Limits
  • Clip edges are the weak spot. A clip can open on a pronoun whose referent was in the sentence before it, fuse two topics into one, cut before the payoff lands, or swallow a sponsor read.
  • Short videos return few clips. A two minute transcript comes back with fewer clips than a server-side editor would cut, and a transcript under three sentences returns none.
  • The clip limit is a cap, not a quota. Asking for 10 doesn't mean receiving 10.
  • Selection is sensitive to small score changes. Candidate spans around one moment score very close together, so a different runtime, compute unit or quantization returns a different but comparable set.
  • Non-Latin scripts are under-tested. Our evaluation corpus is overwhelmingly Latin script.
  • Duration is a soft prior. A clip can come back shorter or longer than a typical Short.
  • The LiteRT files don't load through the Desert Ant SDK. The graphs take int64 ids where the SDK builds int32. Drive them from a LiteRT runtime directly.
  • Android needs headroom. The shipped int8 weight-only build peaks at 2136MB resident, measured on 6,395 real candidate spans. That fits a high-end phone and not a mid-range one, which is why there is no Android SDK yet rather than any limit in the artifact.
Requirements

iOS 18, macOS 15, tvOS 18, visionOS 2, watchOS 11. Android, Linux and Windows through LiteRT, driven directly rather than through the SDK.

Built on

FacebookAI/xlm-roberta-base (MIT), the shared encoder trunk and its SentencePiece vocabulary. See THIRD_PARTY_NOTICES.md .

License

Desert Ant Labs Source-Available License . Free for most apps, and a commercial license is required at scale. Full terms are at the link. Licensing: [email protected] .

See THIRD_PARTY_NOTICES.md .

Citation
@software{clips_2026,
  title  = {Clips: Short clips and highlights from talking video and audio: podcasts, interviews, meetings. On-device},
  author = {Desert Ant Labs},
  year   = {2026},
  url    = {https://huggingface.co/desert-ant-labs/clips},
}

© 2026 Desert Ant Labs · https://desertant.com

Runs of desert-ant-labs clips on huggingface.co

664
Total runs
-6
24-hour runs
406
3-day runs
403
7-day runs
638
30-day runs

More Information About clips huggingface.co Model

clips huggingface.co

clips huggingface.co is an AI model on huggingface.co that provides clips's model effect (), which can be used instantly with this desert-ant-labs clips model. huggingface.co supports a free trial of the clips model, and also provides paid use of the clips. Support call clips model through api, including Node.js, Python, http.

desert-ant-labs clips online free

clips huggingface.co is an online trial and call api platform, which integrates clips's modeling effects, including api services, and provides a free online trial of clips, you can try clips online for free by clicking the link below.

desert-ant-labs clips online free url in huggingface.co:

https://huggingface.co/desert-ant-labs/clips

clips install

clips is an open source model from GitHub that offers a free installation service, and any user can find clips on GitHub to install. At the same time, huggingface.co provides the effect of clips install, users can directly use clips installed effect in huggingface.co for debugging and trial. It also supports api for free installation.

clips install url in huggingface.co:

https://huggingface.co/desert-ant-labs/clips

Url of clips

Provider of clips huggingface.co

desert-ant-labs
ORGANIZATIONS

Other API from desert-ant-labs

huggingface.co

Total runs: 28.2K
Run Growth: 27.3K
Growth Rate: 96.60%
Updated:October 03 2026
huggingface.co

Total runs: 26.9K
Run Growth: 2.9K
Growth Rate: 10.55%
Updated:October 03 2026
huggingface.co

Total runs: 5.0K
Run Growth: 4.8K
Growth Rate: 97.82%
Updated:October 03 2026
huggingface.co

Total runs: 2.7K
Run Growth: 1.2K
Growth Rate: 44.73%
Updated:October 03 2026
huggingface.co

Total runs: 1.5K
Run Growth: 1.0K
Growth Rate: 61.09%
Updated:October 03 2026
huggingface.co

Total runs: 921
Run Growth: 921
Growth Rate: 100.00%
Updated:October 03 2026
huggingface.co

Total runs: 829
Run Growth: 565
Growth Rate: 68.15%
Updated:October 03 2026
huggingface.co

Total runs: 384
Run Growth: 377
Growth Rate: 100.00%
Updated:September 28 2026
huggingface.co

Total runs: 134
Run Growth: 68
Growth Rate: 50.75%
Updated:September 11 2026
huggingface.co

Total runs: 0
Run Growth: 0
Growth Rate: 0.00%
Updated:August 03 2026