Nodes/ComfyUI_EmAySee_CustomNodes/EmAySee Scenema Audio Connector
ComfyUI Node

EmAySee Scenema Audio Connector

It doesn't make audio — it asks your local TTS server to

By EmAySee·Created about a year ago·Updated 4 months ago· 2
EmAySee Scenema Audio Connector
  • reference_audio
  • audio
  • status
prompt<speak voice="Gravelly male voice, fast talking, rough." gender="male"> <action>He completely loses it, shouting</action> What are you waiting for?! </speak>
api_urlhttp://10.0.0.71:8000/generate
seed42
steps50
guidance_scale7.0
output_sample_rate44100

Read the name as "Scenema Audio Connector," because that's the honest job: it doesn't synthesize anything itself. You give it a prompt, it POSTs it to a TTS API server - the default URL is http://10.0.0.71:8000/generate, a LAN address from the author's own setup - and it turns the returned WAV into a ComfyUI AUDIO tensor you can feed straight into a video or audio output node. No model downloads, no local TTS weights. Just a client for a server that's already running somewhere.

How it works

The prompt field is interesting: it's written in a <speak>-style markup with a voice attribute and <action> tags - the kind of rich, SSML-flavored prompt an expressive TTS model (think "Scenema"-style voice acting servers) expects. The default gives you a working example of the format. The node wraps your prompt, seed, steps, guidance, and sample rate into JSON, sends it to api_url, and decodes the base64 WAV response back into an AUDIO output. If you also feed an reference_audio (AUDIO) input, it re-encodes that clip and sends it along too - voice-cloning support, assuming your server accepts it.

The knobs that matter:

  • api_url - the only input you're guaranteed to change. Point it at your TTS server's /generate endpoint. The default is someone's home network IP and will not work for you.
  • prompt - the speech text plus voice/directing markup.
  • seed (42), steps (50), guidance_scale (7) - sampler settings your server interprets.
  • output_sample_rate (24000 / 44100 / 48000, default 44100) - what the server should produce.

Outputs: audio (AUDIO) and status (STRING) - "Success" on a good run, or an error string like Connection Failed: ... when the server is unreachable.

The two failure modes you'll actually hit

Server unreachable. The default IP is from the author's LAN. Unless your TTS server lives at that exact address, every run returns (None, "Connection Failed: ...") - the node won't hang, but it won't produce audio either. Fix api_url first, every time.

Server shape mismatch. This node assumes the response JSON has an "audio" key holding a base64 WAV, and that the request body matches {prompt, seed, steps, guidance_scale, sample_rate}. Not every TTS API speaks that contract. If your server uses different field names or returns raw audio, you'll see the "JSON missing 'audio' key" status. It's a connector for a specific API shape, not a universal wrapper.

It also needs requests installed in your ComfyUI Python env - the pack ships no requirements.txt, so if you get a requests import error, pip install requests (it's almost always already present).

Installing it

Part of ComfyUI_EmAySee_CustomNodes. ComfyUI Manager → search the pack title → Install, or:

cd ComfyUI/custom_nodes
git clone https://github.com/EmAySee/ComfyUI_EmAySee_CustomNodes
# restart ComfyUI

Under EmAySee/Audio, no model files.

Bottom line

Useful if you already run a compatible local TTS server (or want to stand one up) and you want its output to flow into ComfyUI video work. It's a client, not a generator - budget your time for wiring your server to its expected request/response shape.

CategoryEmAySee/Audio

Inputs (7)

NameTypeDefaultDescription
promptSTRING<speak voice="Gravelly male voice, fast talking, rough." gender="male"> <action>He completely loses it, shouting</action> What are you waiting for?! </speak>
api_urlSTRINGhttp://10.0.0.71:8000/generate
seedINT420–18446744073709550000
stepsINT501–200
guidance_scaleFLOAT7.00–20
output_sample_rateCOMBO441003 options: 24000, 44100, 48000
reference_audiooptAUDIO

Outputs (2)

NameTypeDescription
audioAUDIO
statusSTRING