Nodes/MOSS SoundEffect v2/MOSS SoundEffect v2 生成
ComfyUI Node

MOSS SoundEffect v2 生成

11GB of DiT for the Sound of a Keyboard

By HuizhiXu·Created 23 days ago·Updated 22 days ago· 1
MOSS SoundEffect v2 生成
  • pipeline
  • audio
◄promptThe crisp, rhythmic click-clack of fast typing on a mechanical keyboard.►
◄negative_prompt►
◄seconds10.0►
◄steps100►
◄cfg_scale4.0►
◄sigma_shift5.0►
◄seed0►

You want the sound of a keyboard being typed on. Or rain hitting a tin roof, or a car door closing in an empty garage. Not a song, not a voice - a sound. That is the whole job of this node, and it's a job the local ecosystem mostly doesn't have a slot for.

Where this fits

Audio in ComfyUI is the thinnest layer in the stack - bolted on after video got good enough to want a soundtrack, and still living at the edges in packs with their own dependency stacks. The usual foley tools, MMAudio and HunyuanVideo-Foley, need a video to work from. This is the other direction: text straight to sound effect. Generate a glass shatter, drop it under a Wan render, done.

Fair warning: this is early. The model is brand new and the community footprint is tiny - searching the Reddit corpus for MOSS-SoundEffect turns up two threads, one of which is someone announcing a different pack for the same weights. You are not following a crowd; expect to figure some things out yourself.

How it works

The weights are a 1.3B DiT with a DAC VAE (48 kHz, mono) and a Qwen3 text encoder, driven by a flow-matching scheduler - the pack vendors its own sliced-down diffusers-style stack for it, and the architecture presets range from 100M to 5B. Same shape of machinery as an image sampler: prompt gets encoded, noise gets denoised, a decoder turns latents into samples.

Two details explain most of the behavior you'll observe.

The latent is always 30 seconds. The pipeline denoises a fixed-size latent and then crops the result down to your seconds value. So a 3-second effect costs roughly what a 30-second one costs. There is no "short is cheap" mode.

The duration is conditioned, and it's appended for you. The pipeline rewrites your prompt into "<your text> duration: 10.0s" before the text encoder ever sees it, matching the training convention. That's why seconds actually changes what the model generates instead of just trimming it - and why you shouldn't try to write the duration into the prompt yourself.

Inference does not run inside ComfyUI's process. The pack spawns a worker in its own Python, talks to it one JSON line at a time, and hands back a standard ComfyUI AUDIO dict - so Preview Audio, Save Audio and anything else that eats AUDIO just work.

The inputs you'll set

  • prompt - the author's default is The crisp, rhythmic click-clack of fast typing on a mechanical keyboard. Copy that register: material, action, space. "The low, wet thud of a heavy wooden door closing in a tiled hallway" beats "door sound" every time.
  • seconds - 0.1 to 30, default 10. Same cost anywhere in that range, so ask for 30 and cut what you like.
  • steps - default 100, range 1–250. This is your main speed dial, and 100 is generous. Drop it first.
  • cfg_scale - default 4. How hard it follows the prompt. Higher is more literal, and eventually more harsh.
  • negative_prompt - empty by default. Reaching for this is a last resort; sound effects don't accumulate the junk prompts that image models do.
  • sigma_shift - default 5. The flow-match scheduler shift. Leave it unless you know why you're touching it.
  • seed - default 0, with the usual post-generate control. Effects are short and cheap enough to re-roll.

Everything above is required, and pipeline comes from the loader node. One output: audio, an AUDIO - wire it to Preview Audio or Save Audio, and also to the Unload node so the worker gets shut down.

Install

From ComfyUI Manager, search the pack's display name, MOSS SoundEffect v2. Or by hand:

cd ComfyUI/custom_nodes
git clone https://github.com/HuizhiXu/comfyui-moss-soundeffect-v2

The nodes appear under right-click → audio/moss. The pack ships no weights - you download those yourself:

huggingface-cli download OpenMOSS-Team/MOSS-SoundEffect-v2.0 \
  --local-dir ComfyUI/models/moss-soundeffect-v2/MOSS-SoundEffect-v2.0

After a restart or refresh, that directory shows up in the loader's model dropdown. It must contain model_index.json or the dropdown won't see it.

On dependencies: requirements.txt is deliberately empty, and that's the smartest thing in this repo. Manager installs a pack's requirements.txt into ComfyUI's own Python - the shared environment where audio packs fight each other over transformers and torch. Here the real list lives in requirements-runtime.txt and goes into a node-local .venv, Python 3.12 via uv, Torch 2.9 picked per your driver (cu128 on CUDA 12.8+, cu126 on 12.6/12.7). ComfyUI's Python is untouched. Budget ~8GB of disk for that environment plus ~11GB of weights - and note that with no NVIDIA driver, on ROCm, or on macOS, the pack refuses to auto-install and expects an interpreter you supply via the loader's python field.

Where people get burned

The first generation looks frozen. The DiT compiles with CUDA graphs the first time, which takes minutes, and progress sits at 0 for the whole slog. It is not hung. Go make tea; subsequent runs reuse the compiled graph.

Two loader nodes with different settings. There's exactly one inference worker. Change any loader setting - model, device, dtype, vram management - and the pack tears the current one down and starts a fresh one, weights and compile included, between generations. Decide once.

It holds about 11GB of VRAM while resident. On a 24GB card that's survivable; alongside a video model it is not. That's what the unload node is for.

Interrupt kills the whole thing. The interrupt button stops the worker process, not just the current step - so you pay the load again next run.

Categoryaudio/moss

Inputs (8)

NameTypeDefaultDescription
pipelineMOSS_SFX_PIPE—
promptSTRINGThe crisp, rhythmic click-clack of fast typing on a mechanical keyboard.—
negative_promptSTRING—
secondsFLOAT10.00.1–30—
stepsINT1001–250—
cfg_scaleFLOAT4.01–20—
sigma_shiftFLOAT5.00–20—
seedINT00–18446744073709550000—

Outputs (1)

NameTypeDescription
audioAUDIO—