Workers AI - Clef-omni adds audio and video input, Clef-flash is now cheaper, and Clef is faster
- Announced
- Tags
- Workers-AI
- Severity
- info, set by
reef/rss-rule-v1 - Source
- https://developers.cloudflare.com/changelog/post/2026-10-09-clef-omni-workers-ai/
<p><a href="https://developers.cloudflare.com/workers-ai/models/clef-omni/"><code>@cf/cloudflare/clef-omni</code></a> is now available on Workers AI. Clef-omni is a decision model that takes audio (WAV or MP3) and video (MP4 or WebM) input alongside text and images. It joins <a href="https://developers.cloudflare.com/workers-ai/models/clef/">Clef</a> and <a href="https://developers.cloudflare.com/workers-ai/models/clef-flash/">Clef-flash</a> in the Clef family of open-weight decision models. We also cut the price of Clef-flash, so it now costs less than Jev, and made Clef faster.</p> <div tabindex="-1" class="heading-wrapper level-h4"><h4 id="clef-omni-one-decision-model-for-every-modality">Clef-omni: one decision model for every modality</h4><a class="anchor-link" href="#clef-omni-one-decision-model-for-every-modality"><span aria-hidden="true" class="anchor-icon"><svg width="16" height="16" viewBox="0 0 24 24"><path fill="currentcolor" d="m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z"></path></svg></span></a></div> <p>Previously, making a decision about a voice recording or a video meant chaining models together: transcribe the speech, split the audio and visual tracks, then pass the results to a text decision model. Clef-omni reads every modality directly in one request. A video's soundtrack is aligned with its frames, so the model can reason over what is seen and heard at the same time.</p> <p>Clef-omni is built on a 30B-parameter mixture-of-experts (MoE) backbone with 3B active parameters. Like the rest of the Clef family, it does not generate text. It scores every allowed answer in a single pass, so decisions return quickly:</p> <ul> <li>Text requests: about 20 ms</li> <li>Image or audio inputs: under 100 ms</li> <li>A 21-second video clip with sound: about 300 ms</li> </ul> <p>Pass media as base64 data URLs in the <code>images</code>, <code>audio</code>, and <code>videos</code> fields:</p> <div><div data-nb-tabs data-nb-sync-key="workersExamples" class><div class="relative flex border-b border-border" role="tablist" data-nb-tabs-list><span class="bg-primary pointer-events-none absolute -bottom-px h-0.5 rounded-t-sm transition-[left,width] duration-200 ease-out" data-nb-tabs-indicator aria-hidden="true"></span></div><div class="mt-3"><div role="tabpanel" data-nb-tabs-content data-nb-tab-label="JavaScript" class><figure class="nb-code-figure" data-nb-lang="js"><pre class="astro-code astro-code-themes github-light github-dark nb-shiki-c6xiwz" tabindex="0" data-language="js" data-nb-lang="js"><code><span class="line"><span class="nb-shiki-1itgoe">const</span><span class="nb-shiki-dzsirb"> response</span><span class="nb-shiki-1itgoe"> =</span><span class="nb-shiki-1itgoe"> await</span><span class="nb-shiki-140thh"> env.</span><span class="nb-shiki-dzsirb">AI</span><span class="nb-shiki-140thh">.</span><span class="nb-shiki-1t8gfj">run</span><span class="nb-shiki-140thh">(</span><span class="nb-shiki-mdbnqw">"@cf/cloudflare/clef-omni"</span><span class="nb-shiki-140thh">, {</span></span> <span class="line"><span class="nb-shiki-140thh"> model: </span><span class="nb-shiki-mdbnqw">"clef-omni"</span><span class="nb-shiki-140thh">,</span></span> <span class="line"><span class="nb-shiki-140thh"> state:</span></span> <span class="line"><span class="nb-shiki-mdbnqw"> "Review the installation: a photo of the unit, an audio recording of it running, and a video of the fan."</span><span class="nb-shiki-140thh">,</span></span> <span class="line"><span class="nb-shiki-140thh"> images: [</span><span class="nb-shiki-mdbnqw">"data:image/png;base64,<base64-png>"</span><span class="nb-shiki-140thh">],</span></span> <span class="line"><span class="nb-shiki-140thh"> audio: [</span><span class="nb-shiki-mdbnqw">"data:audio/mpeg;base64,<base64-mp3>"</span><span class="nb-shiki-140thh">],</span></span> <span class="line"><span class="nb-shiki-140thh"> videos: [</span><span class="nb-shiki-mdbnqw">"data:video/mp4;base64,<base64-mp4>"</span><span class="nb-shiki-140thh">],</span></span> <span class="line"><span class="nb-shiki-140thh"> questions: {</span></span> <span class="line"><span class="nb-shiki-140thh"> label_visible: {</span></span> <span class="line"><span class="nb-shiki-140thh"> type: </span><span class="nb-shiki-mdbnqw">"noul"</span><span class="nb-shiki-140thh">,</span></span> <span class="line"><span class="nb-shiki-140thh"> instructions:</span></span> <span class="line"><span class="nb-shiki-mdbnqw"> "Is the model and serial number label visible in the photo?"</span><span class="nb-shiki-140thh">,</span></span> <span class="line"><span class="nb-shiki-140thh"> },</span></span> <span class="line"><span class="nb-shiki-140thh"> sounds_normal: {</span></span> <span class="line"><span class="nb-shiki-140thh"> type: </span><span class="nb-shiki-mdbnqw">"noul"</span><span class="nb-shiki-140thh">,</span></span> <span class="line"><span class="nb-shiki-140thh"> instructions:</span></span> <span class="line"><span class="nb-shiki-mdbnqw"> "Does the unit sound like it is running smoothly, without rattling or grinding?"</span><span class="nb-shiki-140thh">,</span></span> <span class="line"><span class="nb-shiki-140thh"> },</span></span> <span class="line"><span class="nb-shiki-140thh"> fan_running: {</span></span> <span class="line"><span class="nb-shiki-140thh"> type: </span><span class="nb-shiki-mdbnqw">"noul"</span><span class="nb-shiki-140thh">,</span></span> <span class="line"><span class="nb-shiki-140thh"> instructions: </span><span class="nb-shiki-mdbnqw">"Is the fan running in the video?"</span><span class="nb-shiki-140thh">,</span></span> <span class="line"><span class="nb-shiki-140thh"> },</span></span> <span class="line"><span class="nb-shiki-140thh"> },</span></span> <span class="line"><span class="nb-shiki-140thh">});</span></span></code></pre></figure></div><div role="tabpanel" data-nb-tabs-content data-nb-tab-label="TypeScript" class><figure class="nb-code-figure" data-nb-lang="ts"><pre class="astro-code astro-code-themes github-light github-dark nb-shiki-c6xiwz" tabindex="0" data-language="ts" data-nb-lang="ts"><code><span class="line"><span class="nb-shiki-1itgoe">const</span><span class="nb-shiki-dzsirb"> response</span><span class="nb-shiki-1itgoe"> =</span><span class="nb-shiki-1itgoe"> await</span><span class="nb-shiki-140thh"> env.</span><span class="nb-shiki-dzsirb">AI</span><span class="nb-shiki-140thh">.</span><span class="nb-shiki-1t8gfj">run</span><span class="nb-shiki-140thh">(</span><span class="nb-shiki-mdbnqw">"@cf/cloudflare/clef-omni"</span><span class="nb-shiki-140thh">, {</span></span> <span class="line"><span class="nb-shiki-140thh"> model: </span><span class="nb-shiki-mdbnqw">"clef-omni"</span><span class="nb-shiki-140thh">,</span></span> <span class="line"><span class="nb-shiki-140thh"> state:</span></span> <span class="line"><span class="nb-shiki-mdbnqw"> "Review the installation: a photo of the unit, an audio recording of it running, and a video of the fan."</span><span class="nb-shiki-140thh">,</span></span> <span class="line"><span class="nb-shiki-140thh"> images: [</span><span class="nb-shiki-mdbnqw">"data:image/png;base64,<base64-png>"</span><span class="nb-shiki-140thh">],</span></span> <span class="line"><span class="nb-shiki-140thh"> audio: [</span><span class="nb-shiki-mdbnqw">"data:audio/mpeg;base64,<base64-mp3>"</span><span class="nb-shiki-140thh">],</span></span> <span class="line"><span class="nb-shiki-140thh"> videos: [</span><span class="nb-shiki-mdbnqw">"data:video/mp4;base64,<base64-mp4>"</span><span class="nb-shiki-140thh">],</span></span> <span class="line"><span class="nb-shiki-140thh"> questions: {</span></span> <span class="line"><span class="nb-shiki-140thh"> label_visible: {</span></span> <span class="line"><span class="nb-shiki-140thh"> type: </span><span class="nb-shiki-mdbnqw">"noul"</span><span class="nb-shiki-140thh">,</span></span> <span class="line"><span class="nb-shiki-140thh"> instructions:</span></span> <span class="line"><span class="nb-shiki-mdbnqw"> "Is the model and serial number label visible in the photo?"</span><span class="nb-shiki-140thh">,</span></span> <span class="line"><span class="nb-shiki-140thh"> },</span></span> <span class="line"><span class="nb-shiki-140thh"> sounds_normal: {</span></span> <span class="line"><span class="nb-shiki-140thh"> type: </span><span class="nb-shiki-mdbnqw">"noul"</span><span class="nb-shiki-140thh">,</span></span> <span class="line"><span class="nb-shiki-140thh"> instructions:</span></span> <span class="line"><span class="nb-shiki-mdbnqw"> "Does the unit sound like it is running smoothly, without rattling or grinding?"</span><span class="nb-shiki-140thh">,</span></span> <span class="line"><span class="nb-shiki-140thh"> },</span></span> <span class="line"><span class="nb-shiki-140thh"> fan_running: {</span></span> <span class="line"><span class="nb-shiki-140thh"> type: </span><span class="nb-shiki-mdbnqw">"noul"</span><span class="nb-shiki-140thh">,</span></span> <span class="line"><span class="nb-shiki-140thh"> instructions: </span><span class="nb-shiki-mdbnqw">"Is the fan running in the video?"</span><span class="nb-shiki-140thh">,</span></span> <span class="line"><span class="nb-shiki-140thh"> },</span></span> <span class="line"><span class="nb-shiki-140thh"> },</span></span> <span class="line"><span class="nb-shiki-140thh">});</span></span></code></pre></figure></div></div></div><script type="module" src="https://developers.cloudflare.com/home/runner/work/cloudflare-docs/cloudflare-docs/src/components/ui/tabs/Tabs.astro?astro&type=script&index=0&lang.ts"></script></div> <p>Clef-omni scores highest of the Clef family on BANKING77, CLINC150+OOS, and Amazon ESCI:</p> <div class="table-scroll" tabindex="0" role="region" aria-label="Table"><table> <thead> <tr> <th>Benchmark</th> <th>Clef-omni</th> <th>Clef</th> <th>Clef-flash</th> <th>Jev</th> </tr> </thead> <tbody> <tr> <td>BFCL (case exact)</td> <td>98.2</td> <td>98.47</td> <td><strong>98.76</strong></td> <td>95.75</td> </tr> <tr> <td>BANKING77 (macro-F1)</td> <td><strong>94.8</strong></td> <td>94.20</td> <td>90.93</td> <td>79.74</td> </tr> <tr> <td>CLINC150+OOS (macro-F1)</td> <td><strong>97.7</strong></td> <td>97.43</td> <td>66.77</td> <td>89.27</td> </tr> <tr> <td>Amazon ESCI (macro-F1)</td> <td><strong>57.8</strong></td> <td>57.48</td> <td>57.39</td> <td>55.21</td> </tr> <tr> <td>PhishNChips (accuracy)</td> <td>73.2</td> <td><strong>79.60</strong></td> <td>75.05</td> <td>62.55</td> </tr> </tbody> </table></div> <div tabindex="-1" class="heading-wrapper level-h4"><h4 id="clef-flash-is-now-cheaper">Clef-flash is now cheaper</h4><a class="anchor-link" href="#clef-flash-is-now-cheaper"><span aria-hidden="true" class="anchor-icon"><svg width="16" height="16" viewBox="0 0 24 24"><path fill="currentcolor" d="m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z"></path></svg></span></a></div> <p>Clef-flash now costs <strong>$0.038 per million input tokens</strong>, down from $0.090, which makes it cheaper than Jev. To offer this price, the hosted Clef-flash context window is now 24K tokens, down from 64K. Based on usage data, only 0.24% of requests exceed 24K input tokens. If you need a larger context window, use Clef, which keeps its 64K context window.</p> <p>The Clef-flash weights on Hugging Face are unchanged and support up to a 256K context window if you self-host.</p> <div class="table-scroll" tabindex="0" role="region" aria-label="Table"><table> <thead> <tr> <th>Model</th> <th>Price</th> <th>Context window</th> </tr> </thead> <tbody> <tr> <td><a href="https://developers.cloudflare.com/workers-ai/models/clef-flash/"><code>@cf/cloudflare/clef-flash</code></a></td> <td>$0.038 per M input tokens</td> <td>24K tokens</td> </tr> <tr> <td><a href="https://developers.cloudflare.com/workers-ai/models/clef/"><code>@cf/cloudflare/clef</code></a></td> <td>$0.240 per M input tokens</td> <td>64K tokens</td> </tr> <tr> <td><a href="https://developers.cloudflare.com/workers-ai/models/clef-omni/"><code>@cf/cloudflare/clef-omni</code></a></td> <td>$0.150 per M input tokens</td> <td>64K tokens</td> </tr> </tbody> </table></div> <p>All Clef models convert image inputs to input tokens, and Clef-omni does the same for audio and video. For details on how each input type is tokenized, refer to the <a href="https://developers.cloudflare.com/workers-ai/models/clef/">Clef</a>, <a href="https://developers.cloudflare.com/workers-ai/models/clef-flash/">Clef-flash</a>, and <a href="https://developers.cloudflare.com/workers-ai/models/clef-omni/">Clef-omni</a> model pages.</p> <div tabindex="-1" class="heading-wrapper level-h4"><h4 id="clef-is-now-faster">Clef is now faster</h4><a class="anchor-link" href="#clef-is-now-faster"><span aria-hidden="true" class="anchor-icon"><svg width="16" height="16" viewBox="0 0 24 24"><path fill="currentcolor" d="m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z"></path></svg></span></a></div> <p>We optimized how Clef is served on Workers AI, so it now returns decisions up to 2x faster. The model weights are unchanged.</p> <div class="table-scroll" tabindex="0" role="region" aria-label="Table"><table> <thead> <tr> <th>Input size</th> <th>Before: median / p95 (ms)</th> <th>Now: median / p95 (ms)</th> <th>Median speedup</th> </tr> </thead> <tbody> <tr> <td>~800 tokens</td> <td>262 / 438</td> <td>152 / 351</td> <td>1.7x</td> </tr> <tr> <td>~3,400 tokens</td> <td>616 / 777</td> <td>305 / 531</td> <td>2.0x</td> </tr> <tr> <td>~16,000 tokens</td> <td>2,721 / 3,250</td> <td>1,635 / 1,805</td> <td>1.7x</td> </tr> </tbody> </table></div> <p>Part of this speedup comes from moving Clef to <a href="https://github.com/sgl-project/sglang" target="_blank" rel="noopener">SGLang<span class="external-link"> ↗︎</span></a>. Clef support is coming to SGLang in version 0.5.22 (<a href="https://github.com/sgl-project/sglang/pull/42721" target="_blank" rel="noopener">PR #42721<span class="external-link"> ↗︎</span></a>). If you self-host Clef, launch commands are available in the <a href="https://huggingface.co/collections/Cloudflare/clef" target="_blank" rel="noopener">Clef collection on Hugging Face<span class="external-link"> ↗︎</span></a>.</p> <div tabindex="-1" class="heading-wrapper level-h4"><h4 id="get-started">Get started</h4><a class="anchor-link" href="#get-started"><span aria-hidden="true" class="anchor-icon"><svg width="16" height="16" viewBox="0 0 24 24"><path fill="currentcolor" d="m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z"></path></svg></span></a></div> <p>Clef-omni follows the same System One API as Clef and Clef-flash, and works with <a href="https://developers.cloudflare.com/ai-gateway/">AI Gateway</a>. To try it, change the model ID to <code>@cf/cloudflare/clef-omni</code> and set the <code>model</code> selector to <code>clef-omni</code>.</p> <p>For more information, refer to the <a href="https://developers.cloudflare.com/workers-ai/models/clef-omni/">Clef-omni model page</a> and <a href="https://developers.cloudflare.com/workers-ai/platform/pricing/">pricing</a>.</p>
The text above is the source's. reef added the severity, the dates it could read from the text, and the endpoints and scopes named in code.