Spaces:
Running
Running
| <html lang="en"> | |
| <head> | |
| <meta charset="utf-8" /> | |
| <meta name="viewport" content="width=device-width,initial-scale=1" /> | |
| <title>Home | TeamAudiyo</title> | |
| <meta name="title" content="Home | TeamAudiyo" /> | |
| <meta name="description" content="TeamAudiyo is a minimal blog about audio AI — Audiyo, Stable Audio Open and MiniMax-Music3 on small GPUs." /> | |
| <link rel="preconnect" href="https://fonts.googleapis.com" /> | |
| <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin /> | |
| <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;600&family=Lora:wght@400;600&display=swap" rel="stylesheet" /> | |
| <link rel="stylesheet" href="style.css" /> | |
| <link rel="icon" href="https://cdn-avatars.huggingface.co/v1/production/uploads/6a5f8c87a38cac087c2c6c05/ONztC248ULRPDG8M8h5J0.jpeg" /> | |
| </head> | |
| <body> | |
| <header> | |
| <div class="container"> | |
| <div class="header-row"> | |
| <a href="#" class="site-name">TeamAudiyo</a> | |
| <nav> | |
| <a href="#posts">posts</a><span>/</span><a href="#guides">guides</a><span>/</span><a href="#connect">connect</a> | |
| </nav> | |
| </div> | |
| </div> | |
| </header> | |
| <main> | |
| <div class="container"> | |
| <div class="stack"> | |
| <section> | |
| <div class="animate greet"> | |
| <a href="https://huggingface.co/Monster-Code" target="_blank" rel="noopener" aria-label="Monster-Code on Hugging Face"><img src="https://cdn-avatars.huggingface.co/v1/production/uploads/6a5f8c87a38cac087c2c6c05/hhLWVr4Q6fDSnG_a1m4QB.png" alt="Monster-Code" /></a> | |
| <h4>Hi, I'm <a href="https://huggingface.co/Monster-Code" target="_blank" rel="noopener">Monster-Code</a></h4> | |
| </div> | |
| <article class="flow"> | |
| <p class="animate"> | |
| I'm the sole founder of TeamAudiyo. I build <a href="https://github.com/TeamAudiyo/Audiyo" target="_blank" rel="noopener">Audiyo</a>, | |
| a small Python library that runs Stable Audio Open and MiniMax-Music3 on small GPUs — | |
| with seeded output, memory presets, and LoRA fine-tuning for both backends. | |
| </p> | |
| <p class="animate"> | |
| This blog collects our announcements and guides: release notes, VRAM benchmarks, | |
| memory presets, and fine-tuning recipes. Everything is tested on real consumer hardware. | |
| </p> | |
| <p class="animate"> | |
| Audiyo is open source under Apache 2.0. | |
| <a href="https://pypi.org/project/audiyo/" target="_blank" rel="noopener">Install it from PyPI</a> | |
| or star it on GitHub. | |
| </p> | |
| </article> | |
| </section> | |
| <section id="posts" class="animate block"> | |
| <div class="row"> | |
| <h5>Latest posts</h5> | |
| </div> | |
| <ul class="cards"> | |
| <li><a href="#" class="arrow-card" data-open="t-v033"><span class="arrow-text"><span class="arrow-title">Audiyo 0.3.3 + 0.3.4: quantization flag fixes</span><span class="arrow-desc">Two small releases, one story — stop the pipeline rejecting quant flags.</span></span><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><line x1="5" y1="12" x2="19" y2="12" class="shaft" /><polyline points="12 5 19 12 12 19" class="head" /></svg></a></li> | |
| <li><a href="#" class="arrow-card" data-open="t-v032"><span class="arrow-text"><span class="arrow-title">Audiyo 0.3.2: music loader fix</span><span class="arrow-desc">Repo rename, GGUF component fallbacks, per-backend call args. 120 tests green.</span></span><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><line x1="5" y1="12" x2="19" y2="12" class="shaft" /><polyline points="12 5 19 12 12 19" class="head" /></svg></a></li> | |
| <li><a href="#" class="arrow-card" data-open="t-v031"><span class="arrow-text"><span class="arrow-title">Audiyo 0.3.1: quality checks and a web demo</span><span class="arrow-desc">Compare takes, score quality, estimate VRAM — plus a local web UI.</span></span><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><line x1="5" y1="12" x2="19" y2="12" class="shaft" /><polyline points="12 5 19 12 12 19" class="head" /></svg></a></li> | |
| <li><a href="#" class="arrow-card" data-open="t-hello"><span class="arrow-text"><span class="arrow-title">Hello World</span><span class="arrow-desc">Welcome to the TeamAudiyo blog — say hello to Audiyo.</span></span><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><line x1="5" y1="12" x2="19" y2="12" class="shaft" /><polyline points="12 5 19 12 12 19" class="head" /></svg></a></li> | |
| </ul> | |
| <div class="load-wrap"><button class="load-more"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><line x1="12" y1="5" x2="12" y2="19" class="shaft" /><polyline points="5 12 12 19 19 12" class="head" /></svg><span>Load more</span></button></div> | |
| </section> | |
| <section id="guides" class="animate block"> | |
| <div class="row"> | |
| <h5>Guides</h5> | |
| </div> | |
| <ul class="cards"> | |
| <li><a href="#" class="arrow-card" data-open="t-colab"><span class="arrow-text"><span class="arrow-title">Run MiniMax-Music3 in Colab</span><span class="arrow-desc">Notebook recipe: int8 offload, 15 seconds of synth-pop, audio preview.</span></span><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><line x1="5" y1="12" x2="19" y2="12" class="shaft" /><polyline points="12 5 19 12 12 19" class="head" /></svg></a></li> | |
| <li><a href="#" class="arrow-card" data-open="t-music3"><span class="arrow-text"><span class="arrow-title">Songs from lyrics with MiniMax-Music3</span><span class="arrow-desc">Verse and chorus tags in, a full song out — on a 6GB card.</span></span><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><line x1="5" y1="12" x2="19" y2="12" class="shaft" /><polyline points="12 5 19 12 12 19" class="head" /></svg></a></li> | |
| <li><a href="#" class="arrow-card" data-open="t-ram"><span class="arrow-text"><span class="arrow-title">Run Stable Audio Open on 8GB of RAM</span><span class="arrow-desc">Vanilla Diffusers wants 13.8 GB. Balanced needs 5.86 GB.</span></span><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><line x1="5" y1="12" x2="19" y2="12" class="shaft" /><polyline points="12 5 19 12 12 19" class="head" /></svg></a></li> | |
| </ul> | |
| <div class="load-wrap"><button class="load-more"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><line x1="12" y1="5" x2="12" y2="19" class="shaft" /><polyline points="5 12 12 19 19 12" class="head" /></svg><span>Load more</span></button></div> | |
| </section> | |
| <section id="connect" class="animate block"> | |
| <h5>Let's Connect</h5> | |
| <article> | |
| <p> | |
| If you want to get in touch about Audiyo or just to say hi, | |
| reach out on GitHub or Hugging Face. | |
| </p> | |
| </article> | |
| <ul class="socials"> | |
| <li><a href="https://github.com/TeamAudiyo/Audiyo" target="_blank" rel="noopener" aria-label="TeamAudiyo on github">github</a><span>/</span></li> | |
| <li><a href="https://huggingface.co/TeamAudiyo" target="_blank" rel="noopener" aria-label="TeamAudiyo on huggingface">huggingface</a></li> | |
| </ul> | |
| </section> | |
| </div> | |
| </div> | |
| </main> | |
| <footer class="animate"> | |
| <div class="container"> | |
| <div class="to-top-wrap"> | |
| <button id="back-to-top"> | |
| <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><line x1="5" y1="12" x2="19" y2="12" class="shaft" /><polyline points="12 5 5 12 12 19" class="head" /></svg> | |
| <span>Back to top</span> | |
| </button> | |
| </div> | |
| <div class="foot-row"> | |
| <div>© 2026 | TeamAudiyo</div> | |
| <div class="theme-btns"> | |
| <button id="light-theme-button" aria-label="Light theme"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="5"></circle><line x1="12" y1="1" x2="12" y2="3"></line><line x1="12" y1="21" x2="12" y2="23"></line><line x1="4.22" y1="4.22" x2="5.64" y2="5.64"></line><line x1="18.36" y1="18.36" x2="19.78" y2="19.78"></line><line x1="1" y1="12" x2="3" y2="12"></line><line x1="21" y1="12" x2="23" y2="12"></line><line x1="4.22" y1="19.78" x2="5.64" y2="18.36"></line><line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line></svg></button> | |
| <button id="dark-theme-button" aria-label="Dark theme"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"></path></svg></button> | |
| <button id="system-theme-button" aria-label="System theme"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><rect x="2" y="3" width="20" height="14" rx="2" ry="2"></rect><line x1="8" y1="21" x2="16" y2="21"></line><line x1="12" y1="17" x2="12" y2="21"></line></svg></button> | |
| </div> | |
| </div> | |
| </div> | |
| </footer> | |
| <!-- READER DIALOG --> | |
| <dialog id="postDialog" aria-label="Blog post"> | |
| <div class="dlg-scroll"> | |
| <div id="dlgContent"></div> | |
| <div class="dlg-fade"></div> | |
| </div> | |
| </dialog> | |
| <!-- POST BODIES --> | |
| <template id="t-hello"> | |
| <button class="back-btn" data-close><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><line x1="5" y1="12" x2="19" y2="12" class="shaft" /><polyline points="12 5 5 12 12 19" class="head" /></svg><span>Back to posts</span></button> | |
| <div class="post-meta"><span>Sep 11, 2026</span><span>•</span><span>2 min read</span></div> | |
| <h2>Hello World</h2> | |
| <article> | |
| <p>Welcome to the TeamAudiyo blog. This is where we'll post announcements, guides, and notes on building audio AI — starting with a proper hello.</p> | |
| <p><strong>Audiyo</strong> is a small Python library that runs Stable Audio Open on as little as 8GB of RAM, with seeded output, memory presets, and a LoRA fine-tuning path. Install it and say your first hello:</p> | |
| <div class="shiki"><div><button type="button">Copy</button><pre><code><span style="color: #116329;">pip install audiyo torchsde</span> | |
| <span style="color: #cf222e;">from</span> audiyo <span style="color: #cf222e;">import</span> AudioModel | |
| model = AudioModel.<span style="color: #8250df;">from_pretrained</span>( | |
| <span style="color: #0a3069;">"stabilityai/stable-audio-open-1.0"</span>, | |
| device=<span style="color: #0a3069;">"auto"</span>, | |
| memory_mode=<span style="color: #0a3069;">"balanced"</span>, | |
| ) | |
| result = model.<span style="color: #8250df;">generate</span>( | |
| prompt=<span style="color: #0a3069;">"Rain against a window with distant thunder"</span>, | |
| duration_seconds=<span style="color: #0550ae;">10</span>, | |
| seed=<span style="color: #0550ae;">42</span>, | |
| ) | |
| result.<span style="color: #8250df;">save</span>(<span style="color: #0a3069;">"rain.wav"</span>)</code></pre></div></div> | |
| <p>That's it — one install, ten seconds of rain. More guides, releases, and benchmarks are on the way. See you in the next post.</p> | |
| <p><a href="https://github.com/TeamAudiyo/Audiyo" target="_blank" rel="noopener">Audiyo on GitHub</a> and <a href="https://huggingface.co/TeamAudiyo" target="_blank" rel="noopener">TeamAudiyo on Hugging Face</a>.</p> | |
| </article> | |
| </template> | |
| <template id="t-v033"> | |
| <button class="back-btn" data-close><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><line x1="5" y1="12" x2="19" y2="12" class="shaft" /><polyline points="12 5 5 12 12 19" class="head" /></svg><span>Back to posts</span></button> | |
| <div class="post-meta"><span>Sep 18, 2026</span><span>•</span><span>2 min read</span></div> | |
| <h2>Audiyo 0.3.3 + 0.3.4: quantization flag fixes</h2> | |
| <article> | |
| <p>Two fix releases in two days, both about the same thing: quantization flags tripping up the Music3 loader. Straight from the GitHub release notes.</p> | |
| <p><strong>0.3.3</strong> (Sep 17): the loader no longer sends quantization flags to the pipeline itself, which rejected them. Quantization now applies to the language model on its own after loading. It also ships the GGUF smoke-test script under <code>scripts/</code>.</p> | |
| <p><strong>0.3.4</strong> (Sep 18, latest): quantized music loads use a proper quantization config object on current transformers instead of a bare flag that newer versions reject.</p> | |
| <div class="shiki"><div><button type="button">Copy</button><pre><code><span style="color: #116329;">pip install -U audiyo</span></code></pre></div></div> | |
| <div class="dlg-links"> | |
| <a href="https://github.com/TeamAudiyo/Audiyo/releases" target="_blank" rel="noopener">All releases on GitHub →</a> | |
| </div> | |
| </article> | |
| </template> | |
| <template id="t-v032"> | |
| <button class="back-btn" data-close><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><line x1="5" y1="12" x2="19" y2="12" class="shaft" /><polyline points="12 5 5 12 12 19" class="head" /></svg><span>Back to posts</span></button> | |
| <div class="post-meta"><span>Sep 17, 2026</span><span>•</span><span>4 min read</span></div> | |
| <h2>Audiyo 0.3.2: music loader fix</h2> | |
| <article> | |
| <p>Yesterday was 0.3.1. Today is the fix release: the earlier build did not load the GGUFS correctly, so 0.3.2 reworks how Music3 models load and get called. Three changes, all verified.</p> | |
| <p><strong>Repo rename.</strong> We were still pointing at the old id in code, README, and docs. Everything now uses <code>TeamAudiyo/Minimax-Music3-GGUF</code> — config, backend dispatcher, estimator, tests, README, backend docs. Same six quant files (<code>q3_k_m</code> through <code>f16</code>), no trace of the old id, no alias kept:</p> | |
| <div class="shiki"><div><button type="button">Copy</button><pre><code>model = AudioModel.<span style="color: #8250df;">from_pretrained</span>( | |
| <span style="color: #0a3069;">"TeamAudiyo/Minimax-Music3-GGUF"</span>, | |
| memory_mode=<span style="color: #0a3069;">"balanced"</span>, | |
| )</code></pre></div></div> | |
| <p><strong>GGUF component loading.</strong> GGUF splits sometimes ship without the tokenizer, language model, or depth decoder — the exact thing that broke generation. After the pipeline loads, the new loader checks all three and pulls anything missing from the matching subfolder in <code>MiniMaxAI/MiniMax-Music3</code>, carrying your 8-bit/4-bit choice over to the language model. Filled pieces are recorded on the pipe, and if a piece can't load it fails naming the exact piece instead of generating wrong audio.</p> | |
| <p><strong>Call args per backend.</strong> This was the warnings fix. Stable Audio keeps its full call (timing window, guidance, negative prompt), while Music3 gets exactly what its blocks accept — prompt, lyrics, duration, steps, seed. Lyrics are now required for music with a clear error, clips always start at zero, one clip per call (use seeds for more takes), and the music duration cap is fixed to 360 seconds instead of the wrong 47. Every result records its backend and call args in settings.</p> | |
| <p><strong>Proof:</strong> 120 passed, 2 skipped, plus 8 new tests covering fallbacks, failure naming, call shapes, and an end-to-end music generate. Shipped as tag <code>v0.3.2</code>. Verify a CUDA box yourself:</p> | |
| <div class="shiki"><div><button type="button">Copy</button><pre><code><span style="color: #116329;">python scripts/test_minimax_music3_gguf.py --duration 20 --seed 42</span> | |
| <span style="color: #6e7781;"># needs: CUDA GPU, diffusers>=0.40, huggingface-cli login</span></code></pre></div></div> | |
| </article> | |
| </template> | |
| <template id="t-v031"> | |
| <button class="back-btn" data-close><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><line x1="5" y1="12" x2="19" y2="12" class="shaft" /><polyline points="12 5 5 12 12 19" class="head" /></svg><span>Back to posts</span></button> | |
| <div class="post-meta"><span>Sep 17, 2026</span><span>•</span><span>3 min read</span></div> | |
| <h2>Audiyo 0.3.1: quality checks and a web demo</h2> | |
| <article> | |
| <p>Fresh out today: Audiyo 0.3.1 keeps the same solid base and adds easier generation controls, quick quality checks, and a simple local web demo. Update once:</p> | |
| <div class="shiki"><div><button type="button">Copy</button><pre><code><span style="color: #116329;">pip install -U audiyo</span></code></pre></div></div> | |
| <p>New since 0.2.1: score any clip with <code>audiyo quality</code>, A/B two renders with <code>audiyo compare</code>, batch-listen a folder into a CSV sheet, estimate VRAM before you commit with <code>audiyo estimate</code> — and try three seeds in one command:</p> | |
| <div class="shiki"><div><button type="button">Copy</button><pre><code>audiyo generate <span style="color: #0a3069;">"Rain on a roof"</span> --seeds <span style="color: #0550ae;">1</span>,<span style="color: #0550ae;">2</span>,<span style="color: #0550ae;">3</span> -o rain.wav | |
| audiyo quality rain.wav | |
| audiyo compare before.wav after.wav | |
| audiyo ui <span style="color: #6e7781;"># local web demo</span></code></pre></div></div> | |
| <p>Extras now cover <code>lora</code>, <code>train</code>, <code>bench</code>, <code>test</code>, <code>ui</code>, and <code>all</code> — install only what you need. Full notes live in the repo docs under <code>docs/quality.md</code> and <code>docs/ui.md</code>.</p> | |
| </article> | |
| </template> | |
| <template id="t-music3"> | |
| <button class="back-btn" data-close><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><line x1="5" y1="12" x2="19" y2="12" class="shaft" /><polyline points="12 5 5 12 12 19" class="head" /></svg><span>Back to posts</span></button> | |
| <div class="post-meta"><span>Sep 14, 2026</span><span>•</span><span>5 min read</span></div> | |
| <h2>Songs from lyrics with MiniMax-Music3</h2> | |
| <article> | |
| <p>Since 0.2.1, Audiyo runs a second backend: MiniMax-Music3 via the <code>TeamAudiyo/Minimax-Music3-GGUF</code> checkpoint. Lyrics follow the MiniMax tag format — section tags alone on their own line — and songs run up to about six minutes:</p> | |
| <div class="shiki"><div><button type="button">Copy</button><pre><code><span style="color: #cf222e;">from</span> audiyo <span style="color: #cf222e;">import</span> AudioModel | |
| model = AudioModel.<span style="color: #8250df;">from_pretrained</span>( | |
| <span style="color: #0a3069;">"TeamAudiyo/Minimax-Music3-GGUF"</span>, | |
| memory_mode=<span style="color: #0a3069;">"balanced"</span>, | |
| ) | |
| result = model.<span style="color: #8250df;">generate</span>( | |
| prompt=<span style="color: #0a3069;">"upbeat synth-pop, bright analog arps"</span>, | |
| lyrics=<span style="color: #0a3069;">"[verse]\nMorning light\n[chorus]\nWe run the night"</span>, | |
| duration_seconds=<span style="color: #0550ae;">30</span>, | |
| seed=<span style="color: #0550ae;">42</span>, | |
| ) | |
| result.<span style="color: #8250df;">save</span>(<span style="color: #0a3069;">"song.wav"</span>)</code></pre></div></div> | |
| <p>Why it fits small GPUs: the 8B LLM, DiT, and vocoder swap in and out of VRAM sequentially, so a 6GB card handles the default <code>q4_k_m</code> quant (1.49 GB). Need more fidelity? Step up to <code>q8_0</code> or <code>f16</code> — same call.</p> | |
| </article> | |
| </template> | |
| <template id="t-colab"> | |
| <button class="back-btn" data-close><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><line x1="5" y1="12" x2="19" y2="12" class="shaft" /><polyline points="12 5 5 12 12 19" class="head" /></svg><span>Back to posts</span></button> | |
| <div class="post-meta"><span>Sep 18, 2026</span><span>•</span><span>4 min read</span></div> | |
| <h2>Run MiniMax-Music3 in Colab</h2> | |
| <article> | |
| <p>Prefer notebooks? This Colab recipe installs everything, loads the GGUF Music3 checkpoint with int8 CPU offload for the language model, synthesizes 15 seconds, and saves the result for preview:</p> | |
| <div class="shiki"><div><button type="button">Copy</button><pre><code><span style="color: #116329;">!pip install audiyo torchsde</span> | |
| <span style="color: #116329;">!pip install -U "diffusers>=0.40" bitsandbytes</span> | |
| <span style="color: #cf222e;">import</span> torch | |
| <span style="color: #cf222e;">import</span> gc | |
| <span style="color: #cf222e;">from</span> audiyo <span style="color: #cf222e;">import</span> AudioModel | |
| <span style="color: #cf222e;">import</span> IPython.display <span style="color: #cf222e;">as</span> ipd | |
| <span style="color: #6e7781;"># Optimize CUDA memory state</span> | |
| gc.<span style="color: #8250df;">collect</span>() | |
| torch.cuda.<span style="color: #8250df;">empty_cache</span>() | |
| <span style="color: #8250df;">print</span>(<span style="color: #0a3069;">"Step 1: Loading model 'TeamAudiyo/Minimax-Music3-GGUF'..."</span>) | |
| <span style="color: #cf222e;">try</span>: | |
| <span style="color: #6e7781;"># Pass the required parameters inside model_kwargs to configure the inner quantized engine safely</span> | |
| model = AudioModel.<span style="color: #8250df;">from_pretrained</span>( | |
| <span style="color: #0a3069;">"TeamAudiyo/Minimax-Music3-GGUF"</span>, | |
| model_kwargs={ | |
| <span style="color: #0a3069;">"device_map"</span>: <span style="color: #0a3069;">"auto"</span>, | |
| <span style="color: #0a3069;">"llm_int8_enable_fp32_cpu_offload"</span>: True | |
| } | |
| ) | |
| <span style="color: #8250df;">print</span>(<span style="color: #0a3069;">"\nStep 2: Model successfully loaded! Preparing sound synthesis..."</span>) | |
| result = model.<span style="color: #8250df;">generate</span>( | |
| prompt=<span style="color: #0a3069;">"upbeat synth-pop, bright analog arps"</span>, | |
| lyrics=<span style="color: #0a3069;">"[verse]\nMorning light\n[chorus]\nWe run the night"</span>, | |
| duration_seconds=<span style="color: #0550ae;">15</span>, | |
| seed=<span style="color: #0550ae;">42</span>, | |
| ) | |
| <span style="color: #8250df;">print</span>(<span style="color: #0a3069;">"\nStep 3: Synthesis finished! Saving audio waveform to 'song.wav'..."</span>) | |
| result.<span style="color: #8250df;">save</span>(<span style="color: #0a3069;">"song.wav"</span>) | |
| <span style="color: #8250df;">print</span>(<span style="color: #0a3069;">"Step 4: Waveform saved! Rendering audio preview below:"</span>) | |
| <span style="color: #cf222e;">except</span> Exception <span style="color: #cf222e;">as</span> e: | |
| <span style="color: #8250df;">print</span>(<span style="color: #0a3069;">f"\nAn error occurred during execution: {e}"</span>)</code></pre></div></div> | |
| <p>Two cells, one song. The <code>model_kwargs</code> pass-through keeps the quantized engine happy — no stray flags, matching the 0.3.3+ loader behavior. Swap the prompt and lyrics for your own track.</p> | |
| </article> | |
| </template> | |
| <template id="t-ram"> | |
| <button class="back-btn" data-close><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><line x1="5" y1="12" x2="19" y2="12" class="shaft" /><polyline points="12 5 5 12 12 19" class="head" /></svg><span>Back to posts</span></button> | |
| <div class="post-meta"><span>Sep 12, 2026</span><span>•</span><span>6 min read</span></div> | |
| <h2>Run Stable Audio Open on 8GB of RAM</h2> | |
| <article> | |
| <p>Stock Diffusers needs ~13.8 GB of VRAM for 10 seconds of stereo. Audiyo's presets trade speed for memory with offloading and tiling — measured on a Tesla T4:</p> | |
| <div class="shiki"><div><button type="button">Copy</button><pre><code><span style="color: #6e7781;"># peak VRAM, 10s stereo, T4 / bfloat16</span> | |
| vanilla diffusers ~<span style="color: #0550ae;">13.80</span> GB | |
| performance <span style="color: #0550ae;">12.10</span> GB <span style="color: #6e7781;"># RTX 3090, A100</span> | |
| balanced <span style="color: #0550ae;">5.86</span> GB <span style="color: #6e7781;"># default: 3060, 4060, T4</span> | |
| low <span style="color: #0550ae;">4.20</span> GB <span style="color: #6e7781;"># GTX 1080, 2060</span> | |
| minimal <span style="color: #0550ae;">3.10</span> GB <span style="color: #6e7781;"># legacy 4GB cards</span></code></pre></div></div> | |
| <p>Start on <code>balanced</code> and step down only if you hit out-of-memory. Preview the cost up front, then verify after a run:</p> | |
| <div class="shiki"><div><button type="button">Copy</button><pre><code>audiyo estimate --memory-mode balanced | |
| audiyo benchmark --duration <span style="color: #0550ae;">10</span> --steps <span style="color: #0550ae;">20</span></code></pre></div></div> | |
| <p>Lower presets are slower but bit-identical in output. Pick the fastest preset that fits your card — for most 8GB GPUs, that's <code>balanced</code>.</p> | |
| </article> | |
| </template> | |
| <script> | |
| // reader dialog | |
| const dialog = document.getElementById('postDialog'); | |
| const content = document.getElementById('dlgContent'); | |
| const scroller = dialog.querySelector('.dlg-scroll'); | |
| function openPost(id) { | |
| content.innerHTML = document.getElementById(id).innerHTML; | |
| scroller.scrollTop = 0; | |
| dialog.showModal(); | |
| } | |
| document.querySelectorAll('[data-open]').forEach(el => { | |
| el.addEventListener('click', e => { e.preventDefault(); openPost(el.dataset.open); }); | |
| }); | |
| dialog.addEventListener('click', e => { | |
| if (e.target === dialog) dialog.close(); | |
| if (e.target.closest('[data-close]')) dialog.close(); | |
| const a = e.target.closest('a[target="_blank"]'); | |
| if (a) dialog.close(); | |
| const b = e.target.closest('.shiki button'); | |
| if (b) { | |
| e.stopPropagation(); | |
| navigator.clipboard.writeText(b.parentElement.querySelector('code').innerText); | |
| b.textContent = 'Copied'; | |
| setTimeout(() => b.textContent = 'Copy', 1200); | |
| } | |
| }); | |
| // ported from astro-nano Head.astro (minus view transitions) | |
| function init() { | |
| preloadTheme(); | |
| onScroll(); | |
| animate(); | |
| document.getElementById('back-to-top')?.addEventListener('click', scrollToTop); | |
| document.getElementById('light-theme-button')?.addEventListener('click', () => { localStorage.setItem('theme', 'light'); toggleTheme(false); }); | |
| document.getElementById('dark-theme-button')?.addEventListener('click', () => { localStorage.setItem('theme', 'dark'); toggleTheme(true); }); | |
| document.getElementById('system-theme-button')?.addEventListener('click', () => { localStorage.setItem('theme', 'system'); toggleTheme(window.matchMedia('(prefers-color-scheme: dark)').matches); }); | |
| window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', event => { | |
| if (localStorage.theme === 'system' || !localStorage.theme) toggleTheme(event.matches); | |
| }); | |
| document.addEventListener('scroll', onScroll); | |
| } | |
| function animate() { | |
| document.querySelectorAll('.animate').forEach((el, i) => { | |
| setTimeout(() => el.classList.add('show'), i * 150); | |
| }); | |
| } | |
| function onScroll() { | |
| document.documentElement.classList.toggle('scrolled', window.scrollY > 0); | |
| } | |
| function scrollToTop(event) { | |
| event.preventDefault(); | |
| window.scrollTo({ top: 0, behavior: 'smooth' }); | |
| } | |
| function toggleTheme(dark) { | |
| const css = document.createElement('style'); | |
| css.appendChild(document.createTextNode('*{transition:none !important}')); | |
| document.head.appendChild(css); | |
| document.documentElement.classList.toggle('dark', dark); | |
| window.getComputedStyle(css).opacity; | |
| document.head.removeChild(css); | |
| } | |
| function preloadTheme() { | |
| const userTheme = localStorage.theme; | |
| if (userTheme === 'light' || userTheme === 'dark') toggleTheme(userTheme === 'dark'); | |
| else toggleTheme(window.matchMedia('(prefers-color-scheme: dark)').matches); | |
| } | |
| // per-section load more: 3 at a time, then load less | |
| const PAGE = 3; | |
| document.querySelectorAll('.load-more').forEach(btn => { | |
| const sec = btn.closest('section'); | |
| const items = [...sec.querySelectorAll('.cards li')]; | |
| let shown = PAGE; | |
| const label = btn.querySelector('span'); | |
| function render() { | |
| items.forEach((li, i) => { li.style.display = i < shown ? '' : 'none'; }); | |
| const done = shown >= items.length; | |
| label.textContent = done ? 'Load less' : 'Load more'; | |
| btn.classList.toggle('less', done); | |
| btn.closest('.load-wrap').style.display = items.length > PAGE ? '' : 'none'; | |
| } | |
| btn.addEventListener('click', () => { | |
| shown = shown >= items.length ? PAGE : shown + PAGE; | |
| render(); | |
| }); | |
| render(); | |
| }); | |
| document.addEventListener('DOMContentLoaded', init); | |
| preloadTheme(); | |
| </script> | |
| </body> | |
| </html> | |