A0 smoke — bake harness / four media gateways

Everything below was generated by scripts/bake-assets.ts against the sponsored gateways and written to public/assets/. Seeds are pinned, so the bake is re-runnable and idempotent.

assets baked
156 / 157
gateways
5
total billed
$0.5265
manifest
v1
a0-keyart-karsisimage
baked
a0-keyart-karsis
model
tongyi/z-image-turbo
gateway
MAYHEM_ZIMAGE_URL
endpoint
/images/generations
output
public/assets/img/a0-keyart-karsis.png
served
/assets/img/a0-keyart-karsis.png
bytes
1.67 MB
generated in
33s
cost
$0.0033
usage
{"image":1,"step":32}
generated at
2026-07-26T22:36:29.337Z

A0 smoke still and the sulphur conditioning reference (§3 coherence pipeline step 2). Not the approved style bible — that is the first A1 deliverable.

request params
{
  "model": "tongyi/z-image-turbo",
  "prompt": "<base64 408 chars>",
  "negative_prompt": "text, watermark, logo, signature, ui overlay, blurry, lowres, cartoon, anime, oversaturated neon, modern city, lush vegetation, water",
  "n": 1,
  "size": "1024x1024",
  "steps": 8,
  "cfg_scale": 1,
  "shift": 3,
  "seed": 20260727,
  "response_format": "b64_json"
}
a0-menu-bedmusic
baked
model
acestep/ace-step-1.5
gateway
MAYHEM_ACE_URL
endpoint
/music/generations
output
public/assets/music/a0-menu-bed.flac
served
/assets/music/a0-menu-bed.flac
bytes
831.7 KB
duration
10s
generated in
22.5s
cost
$0.0010
usage
{"audio_second":10,"input_character":242}
generated at
2026-07-26T22:49:08.970Z

A0 smoke: ambient desert menu bed. PLAN §3 asks for ~60s, but the live ACE route advertises caps.modality_capacity.audio = { unit: second, max_item_units: 10 }, so any duration > 10 is unroutable and the gateway answers 503 'no eligible provider became available before X-Mayhem-Max-Wait-Ms'. The A0 smoke therefore bakes the 10s ceiling; full-length beds need a longer-capacity route (or client-side looping) at A1. n=1 keeps the bill at one take.

request params
{
  "model": "acestep/ace-step-1.5",
  "prompt": "Slow brooding desert menu bed for a strategy game: drone, distant percussion, wind.",
  "tags": "ambient, desert, dark drone, sparse taiko, wind, cinematic, sci-fi, brooding, no vocals",
  "instrumental": true,
  "duration": 10,
  "n": 1,
  "seed": 20260727,
  "response_format": "flac"
}
a0-voice-infantry-moving-outvoice
baked
model
ResembleAI/chatterbox
gateway
MAYHEM_CHATTERBOX_URL
endpoint
/audio/speech
output
public/assets/voice/a0-infantry-moving-out.wav
served
/assets/voice/a0-infantry-moving-out.wav
bytes
41.3 KB
generated in
13.9s
cost
$0.0001
usage
{"audio_second":1,"input_character":11}
reference audio
assets-src/voice-refs/persona-infantry.wav
generated at
2026-07-26T22:38:58.607Z

A0 smoke: infantry persona acknowledgment, zero-shot cloned from the checked-in reference clip. The clip is 25s; the chatterbox provider caps reference_audio at 7 audio-seconds / 319724 bytes, so the first 6s are sent (trimmed in memory; assets-src/ is untouched).

request params
{
  "model": "ResembleAI/chatterbox",
  "input": "Moving out.",
  "voice": "default",
  "exaggeration": 0.6,
  "cfg_weight": 0.5,
  "temperature": 0.8,
  "seed": 20260727,
  "response_format": "wav",
  "reference_audio": {
    "content_type": "audio/wav",
    "encoding": "base64",
    "data": "<base64 384316 chars>"
  }
}
a0-cinematic-dune-passvideo
baked
model
SulphurAI/Sulphur-2-base
gateway
MAYHEM_SULPHUR_URL
endpoint
/videos
output
public/assets/video/a0-cinematic-dune-pass.mp4
served
/assets/video/a0-cinematic-dune-pass.mp4
bytes
338.1 KB
duration
5s
generated in
282.8s
cost
$0.1500
usage
{"frame":113,"video_second":5}
input_reference
conditioned on a0-keyart-karsis
generated at
2026-07-26T22:54:02.467Z

A0 smoke: clip conditioned on the Z-Image still so video inherits the film look (§3 step 2). PLAN §3 asks for 10s, but the live Sulphur route advertises caps.modality_capacity.video = { unit: frame, max_item_units: 121 }, so 10s x 24fps = 240 frames is unroutable; 5s x 24fps = 120 frames is the longest 24fps clip this route will take. The same route caps the conditioning image at 315392 pixels / 38181 bytes, so the 1024x1024 PNG master is downscaled to a JPEG in memory (the master is untouched). Billed at video_second = 3e16 au = $0.03/s.

request params
{
  "model": "SulphurAI/Sulphur-2-base",
  "prompt": "slow cinematic push across the dune field, sand streaming off the crest, the ore harvester grinding forward through heat haze, dust motes catching the low sun",
  "negative_prompt": "text, watermark, logo, signature, ui overlay, blurry, lowres, cartoon, anime, oversaturated neon, modern city, lush vegetation, water",
  "seconds": "5",
  "fps": 24,
  "size": "512x512",
  "seed": 20260727,
  "n": 1,
  "input_reference": {
    "image_url": "<base64 44811 chars>"
  }
}
sb-palette-boardimage
baked
sb-palette-board
model
tongyi/z-image-turbo
gateway
MAYHEM_ZIMAGE_URL
endpoint
/images/generations
output
public/assets/img/sb-palette-board.png
served
/assets/img/sb-palette-board.png
bytes
1.87 MB
generated in
26.3s
cost
$0.0033
usage
{"image":1,"step":32}
generated at
2026-07-27T00:14:38.638Z

STYLE BIBLE CANDIDATE (PLAN §3 coherence pipeline step 1). Palette and materials board: the colour/material law every later image and the in-game gritty kit calibrate against. Retry 1 of 1 (seed 20260728 -> 20260738): the first take framed the board on a dune with a truck driving past, which contaminates a reference meant to be pure colour and material. Re-shot as a straight-down flat lay filling the frame.

request params
{
  "model": "tongyi/z-image-turbo",
  "prompt": "<base64 1255 chars>",
  "negative_prompt": "<base64 352 chars>",
  "n": 1,
  "size": "1024x1024",
  "steps": 8,
  "cfg_scale": 1,
  "shift": 3,
  "seed": 20260738,
  "response_format": "b64_json"
}
sb-vista-karsisimage
baked
sb-vista-karsis
model
tongyi/z-image-turbo
gateway
MAYHEM_ZIMAGE_URL
endpoint
/images/generations
output
public/assets/img/sb-vista-karsis.png
served
/assets/img/sb-vista-karsis.png
bytes
1.66 MB
generated in
24s
cost
$0.0033
usage
{"image":1,"step":32}
generated at
2026-07-27T00:11:18.878Z

STYLE BIBLE CANDIDATE. Wide cinematic Karsis vista. The model advertises width/height 576-2048 in multiples of 16, but the online z-image room would not route 1536x864 (1.33 MP): two attempts returned HTTP 503 "no eligible provider became available" (param: model). 1344x768 (1.03 MP) routes, so the ultrawide frame lands one notch under a ~1.05 MP provider ceiling instead of falling back to 1024 square. Shares seed 20260727 with the A0 key art (family root).

request params
{
  "model": "tongyi/z-image-turbo",
  "prompt": "<base64 911 chars>",
  "negative_prompt": "<base64 352 chars>",
  "n": 1,
  "size": "1344x768",
  "steps": 8,
  "cfg_scale": 1,
  "shift": 3,
  "seed": 20260727,
  "response_format": "b64_json"
}
sb-house-falconimage
baked
sb-house-falcon
model
tongyi/z-image-turbo
gateway
MAYHEM_ZIMAGE_URL
endpoint
/images/generations
output
public/assets/img/sb-house-falcon.png
served
/assets/img/sb-house-falcon.png
bytes
1.97 MB
generated in
21.7s
cost
$0.0033
usage
{"image":1,"step":32}
generated at
2026-07-27T00:11:46.298Z

STYLE BIBLE CANDIDATE. Haus Falcon identity sheet: balanced forces, steel/amber accent, falcon iconography. Note for owner: PLAN §5.2 currently lists Falcon as azure/gold — the A1 brief supplied steel/amber. Approval should settle which wins.

request params
{
  "model": "tongyi/z-image-turbo",
  "prompt": "<base64 1060 chars>",
  "negative_prompt": "<base64 352 chars>",
  "n": 1,
  "size": "1024x1024",
  "steps": 8,
  "cfg_scale": 1,
  "shift": 3,
  "seed": 20260729,
  "response_format": "b64_json"
}
sb-house-jackalimage
baked
sb-house-jackal
model
tongyi/z-image-turbo
gateway
MAYHEM_ZIMAGE_URL
endpoint
/images/generations
output
public/assets/img/sb-house-jackal.png
served
/assets/img/sb-house-jackal.png
bytes
1.91 MB
generated in
20.1s
cost
$0.0033
usage
{"image":1,"step":32}
generated at
2026-07-27T00:14:58.914Z

STYLE BIBLE CANDIDATE. Haus Jackal identity sheet: heavy armour, rust/dark iron accent, jackal iconography. PLAN §5.2 lists crimson/black — the A1 brief supplied rust/dark iron. Retry 1 of 1 (seed 20260730 -> 20260740): the first take split into a 2x2 contact-sheet grid of near-duplicate panels. Re-prompted as one continuous scene.

request params
{
  "model": "tongyi/z-image-turbo",
  "prompt": "<base64 1136 chars>",
  "negative_prompt": "<base64 352 chars>",
  "n": 1,
  "size": "1024x1024",
  "steps": 8,
  "cfg_scale": 1,
  "shift": 3,
  "seed": 20260740,
  "response_format": "b64_json"
}
sb-house-viperimage
baked
sb-house-viper
model
tongyi/z-image-turbo
gateway
MAYHEM_ZIMAGE_URL
endpoint
/images/generations
output
public/assets/img/sb-house-viper.png
served
/assets/img/sb-house-viper.png
bytes
1.87 MB
generated in
20.8s
cost
$0.0033
usage
{"image":1,"step":32}
generated at
2026-07-27T00:15:19.918Z

STYLE BIBLE CANDIDATE. Haus Viper identity sheet: fast raiders, pale venom-green accent, serpent iconography. PLAN §5.2 lists jade/silver — the A1 brief supplied venom-green. Retry 1 of 1 (seed 20260731 -> 20260741): the first take split into two stacked panels and the green read as saturated signage rather than a weathered accent.

request params
{
  "model": "tongyi/z-image-turbo",
  "prompt": "<base64 1162 chars>",
  "negative_prompt": "<base64 352 chars>",
  "n": 1,
  "size": "1024x1024",
  "steps": 8,
  "cfg_scale": 1,
  "shift": 3,
  "seed": 20260741,
  "response_format": "b64_json"
}
sb-glimmer-fieldimage
baked
sb-glimmer-field
model
tongyi/z-image-turbo
gateway
MAYHEM_ZIMAGE_URL
endpoint
/images/generations
output
public/assets/img/sb-glimmer-field.png
served
/assets/img/sb-glimmer-field.png
bytes
1.84 MB
generated in
22.1s
cost
$0.0033
usage
{"image":1,"step":32}
generated at
2026-07-27T00:15:42.195Z

STYLE BIBLE CANDIDATE. Glimmer terrain study — the calibration target for the in-game procedural terrain painters (PLAN §7 gritty kit). Retry 1 of 1 (seed 20260732 -> 20260742): the first take put a harvester and a horizon in frame and gave a single small crystal cluster instead of a field, so it was useless as a terrain-painter calibration target.

request params
{
  "model": "tongyi/z-image-turbo",
  "prompt": "<base64 1111 chars>",
  "negative_prompt": "<base64 352 chars>",
  "n": 1,
  "size": "1024x1024",
  "steps": 8,
  "cfg_scale": 1,
  "shift": 3,
  "seed": 20260742,
  "response_format": "b64_json"
}
mus-menumusic
baked
model
acestep/ace-step-1.5
gateway
MAYHEM_ACE_URL
endpoint
/music/generations
output
public/assets/audio/music/menu.flac
served
/assets/audio/music/menu.flac
bytes
767.2 KB
duration
10s
generated in
13.2s
cost
$0.0010
usage
{"audio_second":10,"input_character":513}
generated at
2026-07-27T06:27:54.205Z

Main theme — generated first; every other cue shares its key, tempo family and style tags. Route cap: caps.modality_capacity.audio.max_item_units = 10 (seconds), max_items_per_request = 1, so 10s is the longest single item the gateway will route and the harness has no stitching pass — the client loops the bed with an equal-power crossfade instead. flac, not the PLAN’s flac→opus transcode: the live route advertises response_format mp3/opus/aac but the provider answers provider_response_failed on anything but flac/wav (measured 2026-07-27), and Safari decodeAudioData does not take Ogg Opus anyway. Lossless flac also decodes to sample-exact PCM, so the loop has no encoder padding to hide.

request params
{
  "model": "acestep/ace-step-1.5",
  "prompt": "Brooding main menu theme for a desert war strategy game: a slow low brass drone under a distant hand-struck metal pulse, wind noise, one bleak four-note motif that the rest of the score answers to.",
  "tags": "gritty desert industrial, sand-blasted metal percussion, low brass drone, dry taiko, analog tape grain, 1990s military sci-fi score, instrumental, no vocals, no singing, dark ambient, drone, sparse percussion, wind, cinematic, brooding, patient",
  "instrumental": true,
  "duration": 10,
  "bpm": 72,
  "key": "D minor",
  "steps": 60,
  "guidance_scale": 7,
  "n": 1,
  "seed": 20260728,
  "response_format": "flac"
}
mus-calmmusic
baked
model
acestep/ace-step-1.5
gateway
MAYHEM_ACE_URL
endpoint
/music/generations
output
public/assets/audio/music/calm.flac
served
/assets/audio/music/calm.flac
bytes
762.1 KB
duration
10s
generated in
13.6s
cost
$0.0010
usage
{"audio_second":10,"input_character":490}
generated at
2026-07-27T06:28:07.854Z

Between-firefight layer. Sits under the menu theme motif at a near tempo. Route cap: caps.modality_capacity.audio.max_item_units = 10 (seconds), max_items_per_request = 1, so 10s is the longest single item the gateway will route and the harness has no stitching pass — the client loops the bed with an equal-power crossfade instead. flac, not the PLAN’s flac→opus transcode: the live route advertises response_format mp3/opus/aac but the provider answers provider_response_failed on anything but flac/wav (measured 2026-07-27), and Safari decodeAudioData does not take Ogg Opus anyway. Lossless flac also decodes to sample-exact PCM, so the loop has no encoder padding to hide.

request params
{
  "model": "acestep/ace-step-1.5",
  "prompt": "Sparse tension bed for base building between firefights: the same bleak motif thinned to a single sustained note, dry ticking metal, deep sub swell, nothing resolving.",
  "tags": "gritty desert industrial, sand-blasted metal percussion, low brass drone, dry taiko, analog tape grain, 1990s military sci-fi score, instrumental, no vocals, no singing, ambient, minimal, tension, sustained strings, ticking metal, sub bass, unresolved",
  "instrumental": true,
  "duration": 10,
  "bpm": 78,
  "key": "D minor",
  "steps": 60,
  "guidance_scale": 7,
  "n": 1,
  "seed": 20260729,
  "response_format": "flac"
}
mus-battlemusic
baked
model
acestep/ace-step-1.5
gateway
MAYHEM_ACE_URL
endpoint
/music/generations
output
public/assets/audio/music/battle.flac
served
/assets/audio/music/battle.flac
bytes
627.3 KB
duration
10s
generated in
10.6s
cost
$0.0010
usage
{"audio_second":10,"input_character":478}
generated at
2026-07-27T06:28:18.487Z

Combat layer. Double-time restatement of the menu motif. Route cap: caps.modality_capacity.audio.max_item_units = 10 (seconds), max_items_per_request = 1, so 10s is the longest single item the gateway will route and the harness has no stitching pass — the client loops the bed with an equal-power crossfade instead. flac, not the PLAN’s flac→opus transcode: the live route advertises response_format mp3/opus/aac but the provider answers provider_response_failed on anything but flac/wav (measured 2026-07-27), and Safari decodeAudioData does not take Ogg Opus anyway. Lossless flac also decodes to sample-exact PCM, so the loop has no encoder padding to hide.

request params
{
  "model": "acestep/ace-step-1.5",
  "prompt": "Driving combat cue: hammered taiko and scrap-metal percussion under an urgent low brass ostinato on the main motif, distorted bass pulse, no let-up.",
  "tags": "<base64 258 chars>",
  "instrumental": true,
  "duration": 10,
  "bpm": 132,
  "key": "D minor",
  "steps": 60,
  "guidance_scale": 7,
  "n": 1,
  "seed": 20260730,
  "response_format": "flac"
}
mus-victorymusic
baked
model
acestep/ace-step-1.5
gateway
MAYHEM_ACE_URL
endpoint
/music/generations
output
public/assets/audio/music/victory.flac
served
/assets/audio/music/victory.flac
bytes
870.2 KB
duration
10s
generated in
11.8s
cost
$0.0010
usage
{"audio_second":10,"input_character":443}
generated at
2026-07-27T06:28:30.277Z

Victory stinger. Same motif, major-lift ending; played once, never looped. Route cap: caps.modality_capacity.audio.max_item_units = 10 (seconds), max_items_per_request = 1, so 10s is the longest single item the gateway will route and the harness has no stitching pass — the client loops the bed with an equal-power crossfade instead. flac, not the PLAN’s flac→opus transcode: the live route advertises response_format mp3/opus/aac but the provider answers provider_response_failed on anything but flac/wav (measured 2026-07-27), and Safari decodeAudioData does not take Ogg Opus anyway. Lossless flac also decodes to sample-exact PCM, so the loop has no encoder padding to hide.

request params
{
  "model": "acestep/ace-step-1.5",
  "prompt": "Short victory stinger: the main motif lifted into a bright brass fanfare over one heavy drum hit, ringing metal tail, ends clean.",
  "tags": "gritty desert industrial, sand-blasted metal percussion, low brass drone, dry taiko, analog tape grain, 1990s military sci-fi score, instrumental, no vocals, no singing, fanfare, brass, triumphant, heavy drum hit, ringing metal, short stinger",
  "instrumental": true,
  "duration": 10,
  "bpm": 96,
  "key": "D minor",
  "steps": 60,
  "guidance_scale": 7,
  "n": 1,
  "seed": 20260731,
  "response_format": "flac"
}
mus-defeatmusic
baked
model
acestep/ace-step-1.5
gateway
MAYHEM_ACE_URL
endpoint
/music/generations
output
public/assets/audio/music/defeat.flac
served
/assets/audio/music/defeat.flac
bytes
858.0 KB
duration
10s
generated in
9.6s
cost
$0.0010
usage
{"audio_second":10,"input_character":449}
generated at
2026-07-27T06:28:39.904Z

Defeat stinger. Same motif, collapsing ending; played once, never looped. Route cap: caps.modality_capacity.audio.max_item_units = 10 (seconds), max_items_per_request = 1, so 10s is the longest single item the gateway will route and the harness has no stitching pass — the client loops the bed with an equal-power crossfade instead. flac, not the PLAN’s flac→opus transcode: the live route advertises response_format mp3/opus/aac but the provider answers provider_response_failed on anything but flac/wav (measured 2026-07-27), and Safari decodeAudioData does not take Ogg Opus anyway. Lossless flac also decodes to sample-exact PCM, so the loop has no encoder padding to hide.

request params
{
  "model": "acestep/ace-step-1.5",
  "prompt": "Short defeat stinger: the main motif collapsing into a detuned low brass fall, one dead drum thud, wind and tape hiss left behind.",
  "tags": "gritty desert industrial, sand-blasted metal percussion, low brass drone, dry taiko, analog tape grain, 1990s military sci-fi score, instrumental, no vocals, no singing, downfall, detuned brass, low drone, dead drum, wind, tape hiss, short stinger",
  "instrumental": true,
  "duration": 10,
  "bpm": 60,
  "key": "D minor",
  "steps": 60,
  "guidance_scale": 7,
  "n": 1,
  "seed": 20260732,
  "response_format": "flac"
}
own-menu-mastermusic
not baked
no bake recorded — run npm run bake
model
gateway
MAYHEM_undefined_URL
endpoint
output
public/assets/audio/music/DesertTwoIntro.mp3
served
/assets/audio/music/DesertTwoIntro.mp3

Owner-supplied master, NOT a bake. DesertTwoIntro was written and delivered by the owner on 2026-08-03 and it is what the title screen and the main menu play; the mus-menu row above is left exactly as it stands, because it is a spend receipt and a receipt does not get rewritten to match a later decision. There is no model, no seed, no gateway, no endpoint and no price on this row: nothing was routed and nothing was billed, so the fields that exist to police routing and spend are absent rather than filled in with zeroes. public/assets/audio/music/menu.flac stays on disk as the artifact that was paid for. Format is mp3 where every bake ships flac, because this is 75s rather than the route cap of 10 and lossless at that length is ~40 MB down the wire for a menu; lib/client/audio/engine.ts loadBuffer switches on nothing, so decodeAudioData takes it on the same path as the flac cues. The measurements below were taken off the delivered file, not off a delivery note.

request params
vox-infantry-moving-outvoice
baked
model
ResembleAI/chatterbox
gateway
MAYHEM_CHATTERBOX_URL
endpoint
/audio/speech
output
public/assets/audio/voice/infantry/moving-out.wav
served
/assets/audio/voice/infantry/moving-out.wav
bytes
53.5 KB
duration
1.14s
generated in
8.7s
cost
$0.0001
usage
{"audio_second":2,"input_character":11}
reference audio
assets-src/voice-refs/persona-infantry.wav
generated at
2026-07-27T06:28:59.277Z

Unit acknowledgment, infantry persona (dismounted rifleman: rough, clipped, close to the mic). Zero-shot cloned from the checked-in public-domain reference clip; the leading 6.5s window is sent because the route caps a reference item at 7s AND 319724 B, and 7s of 24 kHz mono PCM is 336044 B. No radio filter is baked in — the highpass/lowpass/squelch chain is applied live in lib/client/audio/voice.ts so one clip serves every distance and every unit.

request params
{
  "model": "ResembleAI/chatterbox",
  "input": "Moving out.",
  "voice": "default",
  "exaggeration": 0.75,
  "cfg_weight": 0.45,
  "temperature": 0.8,
  "seed": 20260731,
  "response_format": "wav",
  "reference_audio": {
    "content_type": "audio/wav",
    "encoding": "base64",
    "data": "<base64 416316 chars>"
  }
}
vox-infantry-affirmativevoice
baked
model
ResembleAI/chatterbox
gateway
MAYHEM_CHATTERBOX_URL
endpoint
/audio/speech
output
public/assets/audio/voice/infantry/affirmative.wav
served
/assets/audio/voice/infantry/affirmative.wav
bytes
49.7 KB
duration
1.06s
generated in
7s
cost
$0.0002
usage
{"audio_second":2,"input_character":12}
reference audio
assets-src/voice-refs/persona-infantry.wav
generated at
2026-07-27T06:41:16.335Z

Unit acknowledgment, infantry persona (dismounted rifleman: rough, clipped, close to the mic). Zero-shot cloned from the checked-in public-domain reference clip; the leading 6.5s window is sent because the route caps a reference item at 7s AND 319724 B, and 7s of 24 kHz mono PCM is 336044 B. No radio filter is baked in — the highpass/lowpass/squelch chain is applied live in lib/client/audio/voice.ts so one clip serves every distance and every unit.

request params
{
  "model": "ResembleAI/chatterbox",
  "input": "Affirmative.",
  "voice": "default",
  "exaggeration": 0.75,
  "cfg_weight": 0.45,
  "temperature": 0.8,
  "seed": 20260732,
  "response_format": "wav",
  "reference_audio": {
    "content_type": "audio/wav",
    "encoding": "base64",
    "data": "<base64 416316 chars>"
  }
}
vox-infantry-under-attackvoice
baked
model
ResembleAI/chatterbox
gateway
MAYHEM_CHATTERBOX_URL
endpoint
/audio/speech
output
public/assets/audio/voice/infantry/under-attack.wav
served
/assets/audio/voice/infantry/under-attack.wav
bytes
55.4 KB
duration
1.18s
generated in
9.5s
cost
$0.0002
usage
{"audio_second":2,"input_character":13}
reference audio
assets-src/voice-refs/persona-infantry.wav
generated at
2026-07-27T06:41:25.883Z

Unit acknowledgment, infantry persona (dismounted rifleman: rough, clipped, close to the mic). Zero-shot cloned from the checked-in public-domain reference clip; the leading 6.5s window is sent because the route caps a reference item at 7s AND 319724 B, and 7s of 24 kHz mono PCM is 336044 B. No radio filter is baked in — the highpass/lowpass/squelch chain is applied live in lib/client/audio/voice.ts so one clip serves every distance and every unit.

request params
{
  "model": "ResembleAI/chatterbox",
  "input": "Under attack!",
  "voice": "default",
  "exaggeration": 0.75,
  "cfg_weight": 0.45,
  "temperature": 0.8,
  "seed": 20260733,
  "response_format": "wav",
  "reference_audio": {
    "content_type": "audio/wav",
    "encoding": "base64",
    "data": "<base64 416316 chars>"
  }
}
vox-infantry-target-sightedvoice
baked
model
ResembleAI/chatterbox
gateway
MAYHEM_CHATTERBOX_URL
endpoint
/audio/speech
output
public/assets/audio/voice/infantry/target-sighted.wav
served
/assets/audio/voice/infantry/target-sighted.wav
bytes
77.9 KB
duration
1.66s
generated in
12s
cost
$0.0002
usage
{"audio_second":2,"input_character":15}
reference audio
assets-src/voice-refs/persona-infantry.wav
generated at
2026-07-27T06:41:37.923Z

Unit acknowledgment, infantry persona (dismounted rifleman: rough, clipped, close to the mic). Zero-shot cloned from the checked-in public-domain reference clip; the leading 6.5s window is sent because the route caps a reference item at 7s AND 319724 B, and 7s of 24 kHz mono PCM is 336044 B. No radio filter is baked in — the highpass/lowpass/squelch chain is applied live in lib/client/audio/voice.ts so one clip serves every distance and every unit.

request params
{
  "model": "ResembleAI/chatterbox",
  "input": "Target sighted.",
  "voice": "default",
  "exaggeration": 0.75,
  "cfg_weight": 0.45,
  "temperature": 0.8,
  "seed": 20260734,
  "response_format": "wav",
  "reference_audio": {
    "content_type": "audio/wav",
    "encoding": "base64",
    "data": "<base64 416316 chars>"
  }
}
vox-infantry-holding-positionvoice
baked
model
ResembleAI/chatterbox
gateway
MAYHEM_CHATTERBOX_URL
endpoint
/audio/speech
output
public/assets/audio/voice/infantry/holding-position.wav
served
/assets/audio/voice/infantry/holding-position.wav
bytes
68.5 KB
duration
1.46s
generated in
9.6s
cost
$0.0002
usage
{"audio_second":2,"input_character":17}
reference audio
assets-src/voice-refs/persona-infantry.wav
generated at
2026-07-27T06:41:47.531Z

Unit acknowledgment, infantry persona (dismounted rifleman: rough, clipped, close to the mic). Zero-shot cloned from the checked-in public-domain reference clip; the leading 6.5s window is sent because the route caps a reference item at 7s AND 319724 B, and 7s of 24 kHz mono PCM is 336044 B. No radio filter is baked in — the highpass/lowpass/squelch chain is applied live in lib/client/audio/voice.ts so one clip serves every distance and every unit.

request params
{
  "model": "ResembleAI/chatterbox",
  "input": "Holding position.",
  "voice": "default",
  "exaggeration": 0.75,
  "cfg_weight": 0.45,
  "temperature": 0.8,
  "seed": 20260735,
  "response_format": "wav",
  "reference_audio": {
    "content_type": "audio/wav",
    "encoding": "base64",
    "data": "<base64 416316 chars>"
  }
}
vox-infantry-on-my-wayvoice
baked
model
ResembleAI/chatterbox
gateway
MAYHEM_CHATTERBOX_URL
endpoint
/audio/speech
output
public/assets/audio/voice/infantry/on-my-way.wav
served
/assets/audio/voice/infantry/on-my-way.wav
bytes
68.5 KB
duration
1.46s
generated in
13.4s
cost
$0.0002
usage
{"audio_second":2,"input_character":10}
reference audio
assets-src/voice-refs/persona-infantry.wav
generated at
2026-07-27T06:42:00.911Z

Unit acknowledgment, infantry persona (dismounted rifleman: rough, clipped, close to the mic). Zero-shot cloned from the checked-in public-domain reference clip; the leading 6.5s window is sent because the route caps a reference item at 7s AND 319724 B, and 7s of 24 kHz mono PCM is 336044 B. No radio filter is baked in — the highpass/lowpass/squelch chain is applied live in lib/client/audio/voice.ts so one clip serves every distance and every unit.

request params
{
  "model": "ResembleAI/chatterbox",
  "input": "On my way.",
  "voice": "default",
  "exaggeration": 0.75,
  "cfg_weight": 0.45,
  "temperature": 0.8,
  "seed": 20260736,
  "response_format": "wav",
  "reference_audio": {
    "content_type": "audio/wav",
    "encoding": "base64",
    "data": "<base64 416316 chars>"
  }
}
vox-infantry-enemy-destroyedvoice
baked
model
ResembleAI/chatterbox
gateway
MAYHEM_CHATTERBOX_URL
endpoint
/audio/speech
output
public/assets/audio/voice/infantry/enemy-destroyed.wav
served
/assets/audio/voice/infantry/enemy-destroyed.wav
bytes
70.4 KB
duration
1.5s
generated in
8.5s
cost
$0.0002
usage
{"audio_second":2,"input_character":16}
reference audio
assets-src/voice-refs/persona-infantry.wav
generated at
2026-07-27T06:42:09.363Z

Unit acknowledgment, infantry persona (dismounted rifleman: rough, clipped, close to the mic). Zero-shot cloned from the checked-in public-domain reference clip; the leading 6.5s window is sent because the route caps a reference item at 7s AND 319724 B, and 7s of 24 kHz mono PCM is 336044 B. No radio filter is baked in — the highpass/lowpass/squelch chain is applied live in lib/client/audio/voice.ts so one clip serves every distance and every unit.

request params
{
  "model": "ResembleAI/chatterbox",
  "input": "Enemy destroyed.",
  "voice": "default",
  "exaggeration": 0.75,
  "cfg_weight": 0.45,
  "temperature": 0.8,
  "seed": 20260737,
  "response_format": "wav",
  "reference_audio": {
    "content_type": "audio/wav",
    "encoding": "base64",
    "data": "<base64 416316 chars>"
  }
}
vox-infantry-need-repairsvoice
baked
model
ResembleAI/chatterbox
gateway
MAYHEM_CHATTERBOX_URL
endpoint
/audio/speech
output
public/assets/audio/voice/infantry/need-repairs.wav
served
/assets/audio/voice/infantry/need-repairs.wav
bytes
59.1 KB
duration
1.26s
generated in
13.9s
cost
$0.0002
usage
{"audio_second":2,"input_character":13}
reference audio
assets-src/voice-refs/persona-infantry.wav
generated at
2026-07-27T06:42:23.285Z

Unit acknowledgment, infantry persona (dismounted rifleman: rough, clipped, close to the mic). Zero-shot cloned from the checked-in public-domain reference clip; the leading 6.5s window is sent because the route caps a reference item at 7s AND 319724 B, and 7s of 24 kHz mono PCM is 336044 B. No radio filter is baked in — the highpass/lowpass/squelch chain is applied live in lib/client/audio/voice.ts so one clip serves every distance and every unit.

request params
{
  "model": "ResembleAI/chatterbox",
  "input": "Need repairs.",
  "voice": "default",
  "exaggeration": 0.75,
  "cfg_weight": 0.45,
  "temperature": 0.8,
  "seed": 20260738,
  "response_format": "wav",
  "reference_audio": {
    "content_type": "audio/wav",
    "encoding": "base64",
    "data": "<base64 416316 chars>"
  }
}
vox-infantry-in-positionvoice
baked
model
ResembleAI/chatterbox
gateway
MAYHEM_CHATTERBOX_URL
endpoint
/audio/speech
output
public/assets/audio/voice/infantry/in-position.wav
served
/assets/audio/voice/infantry/in-position.wav
bytes
46.0 KB
duration
0.98s
generated in
15.4s
cost
$0.0001
usage
{"audio_second":1,"input_character":12}
reference audio
assets-src/voice-refs/persona-infantry.wav
generated at
2026-07-27T06:42:38.692Z

Unit acknowledgment, infantry persona (dismounted rifleman: rough, clipped, close to the mic). Zero-shot cloned from the checked-in public-domain reference clip; the leading 6.5s window is sent because the route caps a reference item at 7s AND 319724 B, and 7s of 24 kHz mono PCM is 336044 B. No radio filter is baked in — the highpass/lowpass/squelch chain is applied live in lib/client/audio/voice.ts so one clip serves every distance and every unit.

request params
{
  "model": "ResembleAI/chatterbox",
  "input": "In position.",
  "voice": "default",
  "exaggeration": 0.75,
  "cfg_weight": 0.45,
  "temperature": 0.8,
  "seed": 20260739,
  "response_format": "wav",
  "reference_audio": {
    "content_type": "audio/wav",
    "encoding": "base64",
    "data": "<base64 416316 chars>"
  }
}
vox-infantry-say-againvoice
baked
model
ResembleAI/chatterbox
gateway
MAYHEM_CHATTERBOX_URL
endpoint
/audio/speech
output
public/assets/audio/voice/infantry/say-again.wav
served
/assets/audio/voice/infantry/say-again.wav
bytes
62.9 KB
duration
1.34s
generated in
19.9s
cost
$0.0002
usage
{"audio_second":2,"input_character":10}
reference audio
assets-src/voice-refs/persona-infantry.wav
generated at
2026-07-27T06:42:58.584Z

Unit acknowledgment, infantry persona (dismounted rifleman: rough, clipped, close to the mic). Zero-shot cloned from the checked-in public-domain reference clip; the leading 6.5s window is sent because the route caps a reference item at 7s AND 319724 B, and 7s of 24 kHz mono PCM is 336044 B. No radio filter is baked in — the highpass/lowpass/squelch chain is applied live in lib/client/audio/voice.ts so one clip serves every distance and every unit.

request params
{
  "model": "ResembleAI/chatterbox",
  "input": "Say again?",
  "voice": "default",
  "exaggeration": 0.75,
  "cfg_weight": 0.45,
  "temperature": 0.8,
  "seed": 20260740,
  "response_format": "wav",
  "reference_audio": {
    "content_type": "audio/wav",
    "encoding": "base64",
    "data": "<base64 416316 chars>"
  }
}
vox-infantry-harvest-under-wayvoice
baked
model
ResembleAI/chatterbox
gateway
MAYHEM_CHATTERBOX_URL
endpoint
/audio/speech
output
public/assets/audio/voice/infantry/harvest-under-way.wav
served
/assets/audio/voice/infantry/harvest-under-way.wav
bytes
72.2 KB
duration
1.54s
generated in
10.7s
cost
$0.0002
usage
{"audio_second":2,"input_character":18}
reference audio
assets-src/voice-refs/persona-infantry.wav
generated at
2026-07-27T06:43:09.320Z

Unit acknowledgment, infantry persona (dismounted rifleman: rough, clipped, close to the mic). Zero-shot cloned from the checked-in public-domain reference clip; the leading 6.5s window is sent because the route caps a reference item at 7s AND 319724 B, and 7s of 24 kHz mono PCM is 336044 B. No radio filter is baked in — the highpass/lowpass/squelch chain is applied live in lib/client/audio/voice.ts so one clip serves every distance and every unit.

request params
{
  "model": "ResembleAI/chatterbox",
  "input": "Harvest under way.",
  "voice": "default",
  "exaggeration": 0.75,
  "cfg_weight": 0.45,
  "temperature": 0.8,
  "seed": 20260741,
  "response_format": "wav",
  "reference_audio": {
    "content_type": "audio/wav",
    "encoding": "base64",
    "data": "<base64 416316 chars>"
  }
}
vox-infantry-returningvoice
baked
model
ResembleAI/chatterbox
gateway
MAYHEM_CHATTERBOX_URL
endpoint
/audio/speech
output
public/assets/audio/voice/infantry/returning.wav
served
/assets/audio/voice/infantry/returning.wav
bytes
40.4 KB
duration
0.86s
generated in
7.6s
cost
$0.0001
usage
{"audio_second":1,"input_character":10}
reference audio
assets-src/voice-refs/persona-infantry.wav
generated at
2026-07-27T06:43:16.877Z

Unit acknowledgment, infantry persona (dismounted rifleman: rough, clipped, close to the mic). Zero-shot cloned from the checked-in public-domain reference clip; the leading 6.5s window is sent because the route caps a reference item at 7s AND 319724 B, and 7s of 24 kHz mono PCM is 336044 B. No radio filter is baked in — the highpass/lowpass/squelch chain is applied live in lib/client/audio/voice.ts so one clip serves every distance and every unit.

request params
{
  "model": "ResembleAI/chatterbox",
  "input": "Returning.",
  "voice": "default",
  "exaggeration": 0.75,
  "cfg_weight": 0.45,
  "temperature": 0.8,
  "seed": 20260742,
  "response_format": "wav",
  "reference_audio": {
    "content_type": "audio/wav",
    "encoding": "base64",
    "data": "<base64 416316 chars>"
  }
}
vox-vehicle-moving-outvoice
baked
model
ResembleAI/chatterbox
gateway
MAYHEM_CHATTERBOX_URL
endpoint
/audio/speech
output
public/assets/audio/voice/vehicle/moving-out.wav
served
/assets/audio/voice/vehicle/moving-out.wav
bytes
47.9 KB
duration
1.02s
generated in
9.3s
cost
$0.0002
usage
{"audio_second":2,"input_character":11}
reference audio
assets-src/voice-refs/persona-vehicle.wav
generated at
2026-07-27T06:43:26.193Z

Unit acknowledgment, vehicle persona (crew radio: calm, flat, unhurried). Zero-shot cloned from the checked-in public-domain reference clip; the leading 6.5s window is sent because the route caps a reference item at 7s AND 319724 B, and 7s of 24 kHz mono PCM is 336044 B. No radio filter is baked in — the highpass/lowpass/squelch chain is applied live in lib/client/audio/voice.ts so one clip serves every distance and every unit.

request params
{
  "model": "ResembleAI/chatterbox",
  "input": "Moving out.",
  "voice": "default",
  "exaggeration": 0.35,
  "cfg_weight": 0.6,
  "temperature": 0.65,
  "seed": 20260741,
  "response_format": "wav",
  "reference_audio": {
    "content_type": "audio/wav",
    "encoding": "base64",
    "data": "<base64 416320 chars>"
  }
}
vox-vehicle-affirmativevoice
baked
model
ResembleAI/chatterbox
gateway
MAYHEM_CHATTERBOX_URL
endpoint
/audio/speech
output
public/assets/audio/voice/vehicle/affirmative.wav
served
/assets/audio/voice/vehicle/affirmative.wav
bytes
79.7 KB
duration
1.7s
generated in
10.4s
cost
$0.0002
usage
{"audio_second":2,"input_character":12}
reference audio
assets-src/voice-refs/persona-vehicle.wav
generated at
2026-07-27T06:43:36.636Z

Unit acknowledgment, vehicle persona (crew radio: calm, flat, unhurried). Zero-shot cloned from the checked-in public-domain reference clip; the leading 6.5s window is sent because the route caps a reference item at 7s AND 319724 B, and 7s of 24 kHz mono PCM is 336044 B. No radio filter is baked in — the highpass/lowpass/squelch chain is applied live in lib/client/audio/voice.ts so one clip serves every distance and every unit.

request params
{
  "model": "ResembleAI/chatterbox",
  "input": "Affirmative.",
  "voice": "default",
  "exaggeration": 0.35,
  "cfg_weight": 0.6,
  "temperature": 0.65,
  "seed": 20260742,
  "response_format": "wav",
  "reference_audio": {
    "content_type": "audio/wav",
    "encoding": "base64",
    "data": "<base64 416320 chars>"
  }
}
vox-vehicle-under-attackvoice
baked
model
ResembleAI/chatterbox
gateway
MAYHEM_CHATTERBOX_URL
endpoint
/audio/speech
output
public/assets/audio/voice/vehicle/under-attack.wav
served
/assets/audio/voice/vehicle/under-attack.wav
bytes
64.7 KB
duration
1.38s
generated in
7.7s
cost
$0.0002
usage
{"audio_second":2,"input_character":13}
reference audio
assets-src/voice-refs/persona-vehicle.wav
generated at
2026-07-27T06:43:44.377Z

Unit acknowledgment, vehicle persona (crew radio: calm, flat, unhurried). Zero-shot cloned from the checked-in public-domain reference clip; the leading 6.5s window is sent because the route caps a reference item at 7s AND 319724 B, and 7s of 24 kHz mono PCM is 336044 B. No radio filter is baked in — the highpass/lowpass/squelch chain is applied live in lib/client/audio/voice.ts so one clip serves every distance and every unit.

request params
{
  "model": "ResembleAI/chatterbox",
  "input": "Under attack!",
  "voice": "default",
  "exaggeration": 0.35,
  "cfg_weight": 0.6,
  "temperature": 0.65,
  "seed": 20260743,
  "response_format": "wav",
  "reference_audio": {
    "content_type": "audio/wav",
    "encoding": "base64",
    "data": "<base64 416320 chars>"
  }
}
vox-vehicle-target-sightedvoice
baked
model
ResembleAI/chatterbox
gateway
MAYHEM_CHATTERBOX_URL
endpoint
/audio/speech
output
public/assets/audio/voice/vehicle/target-sighted.wav
served
/assets/audio/voice/vehicle/target-sighted.wav
bytes
89.1 KB
duration
1.9s
generated in
9.4s
cost
$0.0002
usage
{"audio_second":2,"input_character":15}
reference audio
assets-src/voice-refs/persona-vehicle.wav
generated at
2026-07-27T06:43:53.799Z

Unit acknowledgment, vehicle persona (crew radio: calm, flat, unhurried). Zero-shot cloned from the checked-in public-domain reference clip; the leading 6.5s window is sent because the route caps a reference item at 7s AND 319724 B, and 7s of 24 kHz mono PCM is 336044 B. No radio filter is baked in — the highpass/lowpass/squelch chain is applied live in lib/client/audio/voice.ts so one clip serves every distance and every unit.

request params
{
  "model": "ResembleAI/chatterbox",
  "input": "Target sighted.",
  "voice": "default",
  "exaggeration": 0.35,
  "cfg_weight": 0.6,
  "temperature": 0.65,
  "seed": 20260744,
  "response_format": "wav",
  "reference_audio": {
    "content_type": "audio/wav",
    "encoding": "base64",
    "data": "<base64 416320 chars>"
  }
}
vox-vehicle-holding-positionvoice
baked
model
ResembleAI/chatterbox
gateway
MAYHEM_CHATTERBOX_URL
endpoint
/audio/speech
output
public/assets/audio/voice/vehicle/holding-position.wav
served
/assets/audio/voice/vehicle/holding-position.wav
bytes
72.2 KB
duration
1.54s
generated in
13.6s
cost
$0.0002
usage
{"audio_second":2,"input_character":17}
reference audio
assets-src/voice-refs/persona-vehicle.wav
generated at
2026-07-27T06:44:07.379Z

Unit acknowledgment, vehicle persona (crew radio: calm, flat, unhurried). Zero-shot cloned from the checked-in public-domain reference clip; the leading 6.5s window is sent because the route caps a reference item at 7s AND 319724 B, and 7s of 24 kHz mono PCM is 336044 B. No radio filter is baked in — the highpass/lowpass/squelch chain is applied live in lib/client/audio/voice.ts so one clip serves every distance and every unit.

request params
{
  "model": "ResembleAI/chatterbox",
  "input": "Holding position.",
  "voice": "default",
  "exaggeration": 0.35,
  "cfg_weight": 0.6,
  "temperature": 0.65,
  "seed": 20260745,
  "response_format": "wav",
  "reference_audio": {
    "content_type": "audio/wav",
    "encoding": "base64",
    "data": "<base64 416320 chars>"
  }
}
vox-vehicle-on-my-wayvoice
baked
model
ResembleAI/chatterbox
gateway
MAYHEM_CHATTERBOX_URL
endpoint
/audio/speech
output
public/assets/audio/voice/vehicle/on-my-way.wav
served
/assets/audio/voice/vehicle/on-my-way.wav
bytes
38.5 KB
duration
0.82s
generated in
11.4s
cost
$0.0001
usage
{"audio_second":1,"input_character":10}
reference audio
assets-src/voice-refs/persona-vehicle.wav
generated at
2026-07-27T06:44:18.823Z

Unit acknowledgment, vehicle persona (crew radio: calm, flat, unhurried). Zero-shot cloned from the checked-in public-domain reference clip; the leading 6.5s window is sent because the route caps a reference item at 7s AND 319724 B, and 7s of 24 kHz mono PCM is 336044 B. No radio filter is baked in — the highpass/lowpass/squelch chain is applied live in lib/client/audio/voice.ts so one clip serves every distance and every unit.

request params
{
  "model": "ResembleAI/chatterbox",
  "input": "On my way.",
  "voice": "default",
  "exaggeration": 0.35,
  "cfg_weight": 0.6,
  "temperature": 0.65,
  "seed": 20260746,
  "response_format": "wav",
  "reference_audio": {
    "content_type": "audio/wav",
    "encoding": "base64",
    "data": "<base64 416320 chars>"
  }
}
vox-vehicle-enemy-destroyedvoice
baked
model
ResembleAI/chatterbox
gateway
MAYHEM_CHATTERBOX_URL
endpoint
/audio/speech
output
public/assets/audio/voice/vehicle/enemy-destroyed.wav
served
/assets/audio/voice/vehicle/enemy-destroyed.wav
bytes
59.1 KB
duration
1.26s
generated in
11s
cost
$0.0002
usage
{"audio_second":2,"input_character":16}
reference audio
assets-src/voice-refs/persona-vehicle.wav
generated at
2026-07-27T06:44:29.795Z

Unit acknowledgment, vehicle persona (crew radio: calm, flat, unhurried). Zero-shot cloned from the checked-in public-domain reference clip; the leading 6.5s window is sent because the route caps a reference item at 7s AND 319724 B, and 7s of 24 kHz mono PCM is 336044 B. No radio filter is baked in — the highpass/lowpass/squelch chain is applied live in lib/client/audio/voice.ts so one clip serves every distance and every unit.

request params
{
  "model": "ResembleAI/chatterbox",
  "input": "Enemy destroyed.",
  "voice": "default",
  "exaggeration": 0.35,
  "cfg_weight": 0.6,
  "temperature": 0.65,
  "seed": 20260747,
  "response_format": "wav",
  "reference_audio": {
    "content_type": "audio/wav",
    "encoding": "base64",
    "data": "<base64 416320 chars>"
  }
}
vox-vehicle-need-repairsvoice
baked
model
ResembleAI/chatterbox
gateway
MAYHEM_CHATTERBOX_URL
endpoint
/audio/speech
output
public/assets/audio/voice/vehicle/need-repairs.wav
served
/assets/audio/voice/vehicle/need-repairs.wav
bytes
74.1 KB
duration
1.58s
generated in
13.7s
cost
$0.0002
usage
{"audio_second":2,"input_character":13}
reference audio
assets-src/voice-refs/persona-vehicle.wav
generated at
2026-07-27T06:44:43.534Z

Unit acknowledgment, vehicle persona (crew radio: calm, flat, unhurried). Zero-shot cloned from the checked-in public-domain reference clip; the leading 6.5s window is sent because the route caps a reference item at 7s AND 319724 B, and 7s of 24 kHz mono PCM is 336044 B. No radio filter is baked in — the highpass/lowpass/squelch chain is applied live in lib/client/audio/voice.ts so one clip serves every distance and every unit.

request params
{
  "model": "ResembleAI/chatterbox",
  "input": "Need repairs.",
  "voice": "default",
  "exaggeration": 0.35,
  "cfg_weight": 0.6,
  "temperature": 0.65,
  "seed": 20260748,
  "response_format": "wav",
  "reference_audio": {
    "content_type": "audio/wav",
    "encoding": "base64",
    "data": "<base64 416320 chars>"
  }
}
vox-vehicle-in-positionvoice
baked
model
ResembleAI/chatterbox
gateway
MAYHEM_CHATTERBOX_URL
endpoint
/audio/speech
output
public/assets/audio/voice/vehicle/in-position.wav
served
/assets/audio/voice/vehicle/in-position.wav
bytes
44.1 KB
duration
0.94s
generated in
5.9s
cost
$0.0001
usage
{"audio_second":1,"input_character":12}
reference audio
assets-src/voice-refs/persona-vehicle.wav
generated at
2026-07-27T06:44:49.392Z

Unit acknowledgment, vehicle persona (crew radio: calm, flat, unhurried). Zero-shot cloned from the checked-in public-domain reference clip; the leading 6.5s window is sent because the route caps a reference item at 7s AND 319724 B, and 7s of 24 kHz mono PCM is 336044 B. No radio filter is baked in — the highpass/lowpass/squelch chain is applied live in lib/client/audio/voice.ts so one clip serves every distance and every unit.

request params
{
  "model": "ResembleAI/chatterbox",
  "input": "In position.",
  "voice": "default",
  "exaggeration": 0.35,
  "cfg_weight": 0.6,
  "temperature": 0.65,
  "seed": 20260749,
  "response_format": "wav",
  "reference_audio": {
    "content_type": "audio/wav",
    "encoding": "base64",
    "data": "<base64 416320 chars>"
  }
}
vox-vehicle-say-againvoice
baked
model
ResembleAI/chatterbox
gateway
MAYHEM_CHATTERBOX_URL
endpoint
/audio/speech
output
public/assets/audio/voice/vehicle/say-again.wav
served
/assets/audio/voice/vehicle/say-again.wav
bytes
38.5 KB
duration
0.82s
generated in
6.9s
cost
$0.0001
usage
{"audio_second":1,"input_character":10}
reference audio
assets-src/voice-refs/persona-vehicle.wav
generated at
2026-07-27T06:44:56.338Z

Unit acknowledgment, vehicle persona (crew radio: calm, flat, unhurried). Zero-shot cloned from the checked-in public-domain reference clip; the leading 6.5s window is sent because the route caps a reference item at 7s AND 319724 B, and 7s of 24 kHz mono PCM is 336044 B. No radio filter is baked in — the highpass/lowpass/squelch chain is applied live in lib/client/audio/voice.ts so one clip serves every distance and every unit.

request params
{
  "model": "ResembleAI/chatterbox",
  "input": "Say again?",
  "voice": "default",
  "exaggeration": 0.35,
  "cfg_weight": 0.6,
  "temperature": 0.65,
  "seed": 20260750,
  "response_format": "wav",
  "reference_audio": {
    "content_type": "audio/wav",
    "encoding": "base64",
    "data": "<base64 416320 chars>"
  }
}
vox-vehicle-harvest-under-wayvoice
baked
model
ResembleAI/chatterbox
gateway
MAYHEM_CHATTERBOX_URL
endpoint
/audio/speech
output
public/assets/audio/voice/vehicle/harvest-under-way.wav
served
/assets/audio/voice/vehicle/harvest-under-way.wav
bytes
79.7 KB
duration
1.7s
generated in
13.5s
cost
$0.0001
usage
{"audio_second":2,"input_character":18}
reference audio
assets-src/voice-refs/persona-vehicle.wav
generated at
2026-07-27T06:45:09.799Z

Unit acknowledgment, vehicle persona (crew radio: calm, flat, unhurried). Zero-shot cloned from the checked-in public-domain reference clip; the leading 6.5s window is sent because the route caps a reference item at 7s AND 319724 B, and 7s of 24 kHz mono PCM is 336044 B. No radio filter is baked in — the highpass/lowpass/squelch chain is applied live in lib/client/audio/voice.ts so one clip serves every distance and every unit.

request params
{
  "model": "ResembleAI/chatterbox",
  "input": "Harvest under way.",
  "voice": "default",
  "exaggeration": 0.35,
  "cfg_weight": 0.6,
  "temperature": 0.65,
  "seed": 20260751,
  "response_format": "wav",
  "reference_audio": {
    "content_type": "audio/wav",
    "encoding": "base64",
    "data": "<base64 416320 chars>"
  }
}
vox-vehicle-returningvoice
baked
model
ResembleAI/chatterbox
gateway
MAYHEM_CHATTERBOX_URL
endpoint
/audio/speech
output
public/assets/audio/voice/vehicle/returning.wav
served
/assets/audio/voice/vehicle/returning.wav
bytes
42.2 KB
duration
0.9s
generated in
7.2s
cost
$0.0001
usage
{"audio_second":1,"input_character":10}
reference audio
assets-src/voice-refs/persona-vehicle.wav
generated at
2026-07-27T06:45:17.007Z

Unit acknowledgment, vehicle persona (crew radio: calm, flat, unhurried). Zero-shot cloned from the checked-in public-domain reference clip; the leading 6.5s window is sent because the route caps a reference item at 7s AND 319724 B, and 7s of 24 kHz mono PCM is 336044 B. No radio filter is baked in — the highpass/lowpass/squelch chain is applied live in lib/client/audio/voice.ts so one clip serves every distance and every unit.

request params
{
  "model": "ResembleAI/chatterbox",
  "input": "Returning.",
  "voice": "default",
  "exaggeration": 0.35,
  "cfg_weight": 0.6,
  "temperature": 0.65,
  "seed": 20260752,
  "response_format": "wav",
  "reference_audio": {
    "content_type": "audio/wav",
    "encoding": "base64",
    "data": "<base64 416320 chars>"
  }
}
vox-strategist-falcon-1voice
baked
model
ResembleAI/chatterbox
gateway
MAYHEM_CHATTERBOX_URL
endpoint
/audio/speech
output
public/assets/audio/voice/strategist/falcon-1.wav
served
/assets/audio/voice/strategist/falcon-1.wav
bytes
1.28 MB
duration
27.9s
generated in
52.1s
cost
$0.0017
usage
{"chunks":[{"audio_second":6,"input_character":78},{"audio_second":6,"input_character":78},{"audio_second":3,"input_character":44},{"audio_second":5,"input_character":77},{"audio_second":4,"input_character":65},{"audio_second":5,"input_character":56}]}
reference audio
assets-src/voice-refs/persona-advisor.wav
generated at
2026-08-07T00:52:48.654Z

Strategist briefing narration for falcon-1 ("Landfall"). Text is read verbatim from lib/shared/data/missions/falcon.ts — the briefing screen and the voice line cannot drift apart. Typographic quotes and the German sharp names are left as written; only the right single quote is normalised to an apostrophe so the model does not read it as a pause.

request params
{
  "model": "ResembleAI/chatterbox",
  "input": "<base64 403 chars>",
  "voice": "default",
  "exaggeration": 0.5,
  "cfg_weight": 0.55,
  "temperature": 0.7,
  "seed": 20260751,
  "response_format": "wav",
  "reference_audio": {
    "content_type": "audio/wav",
    "encoding": "base64",
    "data": "<base64 416272 chars>"
  }
}
vox-strategist-falcon-2voice
baked
model
ResembleAI/chatterbox
gateway
MAYHEM_CHATTERBOX_URL
endpoint
/audio/speech
output
public/assets/audio/voice/strategist/falcon-2.wav
served
/assets/audio/voice/strategist/falcon-2.wav
bytes
1.32 MB
duration
28.74s
generated in
47.3s
cost
$0.0018
usage
{"chunks":[{"audio_second":4,"input_character":53},{"audio_second":5,"input_character":78},{"audio_second":6,"input_character":79},{"audio_second":6,"input_character":77},{"audio_second":5,"input_character":66},{"audio_second":4,"input_character":38}]}
reference audio
assets-src/voice-refs/persona-advisor.wav
generated at
2026-08-07T00:53:37.427Z

Strategist briefing narration for falcon-2 ("Eyes and Rifles"). Text is read verbatim from lib/shared/data/missions/falcon.ts — the briefing screen and the voice line cannot drift apart. Typographic quotes and the German sharp names are left as written; only the right single quote is normalised to an apostrophe so the model does not read it as a pause.

request params
{
  "model": "ResembleAI/chatterbox",
  "input": "<base64 396 chars>",
  "voice": "default",
  "exaggeration": 0.5,
  "cfg_weight": 0.55,
  "temperature": 0.7,
  "seed": 20260752,
  "response_format": "wav",
  "reference_audio": {
    "content_type": "audio/wav",
    "encoding": "base64",
    "data": "<base64 416272 chars>"
  }
}
vox-strategist-falcon-3voice
baked
model
ResembleAI/chatterbox
gateway
MAYHEM_CHATTERBOX_URL
endpoint
/audio/speech
output
public/assets/audio/voice/strategist/falcon-3.wav
served
/assets/audio/voice/strategist/falcon-3.wav
bytes
1.10 MB
duration
23.98s
generated in
46s
cost
$0.0016
usage
{"chunks":[{"audio_second":5,"input_character":72},{"audio_second":6,"input_character":78},{"audio_second":6,"input_character":79},{"audio_second":3,"input_character":47},{"audio_second":3,"input_character":51},{"audio_second":3,"input_character":47}]}
reference audio
assets-src/voice-refs/persona-advisor.wav
generated at
2026-08-07T00:54:24.915Z

Strategist briefing narration for falcon-3 ("The Quad Line"). Text is read verbatim from lib/shared/data/missions/falcon.ts — the briefing screen and the voice line cannot drift apart. Typographic quotes and the German sharp names are left as written; only the right single quote is normalised to an apostrophe so the model does not read it as a pause.

request params
{
  "model": "ResembleAI/chatterbox",
  "input": "<base64 379 chars>",
  "voice": "default",
  "exaggeration": 0.5,
  "cfg_weight": 0.55,
  "temperature": 0.7,
  "seed": 20260753,
  "response_format": "wav",
  "reference_audio": {
    "content_type": "audio/wav",
    "encoding": "base64",
    "data": "<base64 416272 chars>"
  }
}
vox-strategist-falcon-4voice
baked
model
ResembleAI/chatterbox
gateway
MAYHEM_CHATTERBOX_URL
endpoint
/audio/speech
output
public/assets/audio/voice/strategist/falcon-4.wav
served
/assets/audio/voice/strategist/falcon-4.wav
bytes
1.11 MB
duration
24.18s
generated in
51.5s
cost
$0.0016
usage
{"chunks":[{"audio_second":3,"input_character":57},{"audio_second":6,"input_character":77},{"audio_second":4,"input_character":55},{"audio_second":5,"input_character":66},{"audio_second":4,"input_character":67},{"audio_second":4,"input_character":66}]}
reference audio
assets-src/voice-refs/persona-advisor.wav
generated at
2026-08-07T00:55:17.916Z

Strategist briefing narration for falcon-4 ("Steel on the Plateau"). Text is read verbatim from lib/shared/data/missions/falcon.ts — the briefing screen and the voice line cannot drift apart. Typographic quotes and the German sharp names are left as written; only the right single quote is normalised to an apostrophe so the model does not read it as a pause.

request params
{
  "model": "ResembleAI/chatterbox",
  "input": "<base64 393 chars>",
  "voice": "default",
  "exaggeration": 0.5,
  "cfg_weight": 0.55,
  "temperature": 0.7,
  "seed": 20260754,
  "response_format": "wav",
  "reference_audio": {
    "content_type": "audio/wav",
    "encoding": "base64",
    "data": "<base64 416272 chars>"
  }
}
vox-strategist-falcon-5voice
baked
model
ResembleAI/chatterbox
gateway
MAYHEM_CHATTERBOX_URL
endpoint
/audio/speech
output
public/assets/audio/voice/strategist/falcon-5.wav
served
/assets/audio/voice/strategist/falcon-5.wav
bytes
1.20 MB
duration
26.26s
generated in
49.9s
cost
$0.0016
usage
{"chunks":[{"audio_second":5,"input_character":76},{"audio_second":5,"input_character":77},{"audio_second":5,"input_character":77},{"audio_second":6,"input_character":78},{"audio_second":3,"input_character":50},{"audio_second":3,"input_character":32}]}
reference audio
assets-src/voice-refs/persona-advisor.wav
generated at
2026-08-07T00:56:09.348Z

Strategist briefing narration for falcon-5 ("Wings and Wrenches"). Text is read verbatim from lib/shared/data/missions/falcon.ts — the briefing screen and the voice line cannot drift apart. Typographic quotes and the German sharp names are left as written; only the right single quote is normalised to an apostrophe so the model does not read it as a pause.

request params
{
  "model": "ResembleAI/chatterbox",
  "input": "<base64 395 chars>",
  "voice": "default",
  "exaggeration": 0.5,
  "cfg_weight": 0.55,
  "temperature": 0.7,
  "seed": 20260755,
  "response_format": "wav",
  "reference_audio": {
    "content_type": "audio/wav",
    "encoding": "base64",
    "data": "<base64 416272 chars>"
  }
}
vox-strategist-falcon-6voice
baked
model
ResembleAI/chatterbox
gateway
MAYHEM_CHATTERBOX_URL
endpoint
/audio/speech
output
public/assets/audio/voice/strategist/falcon-6.wav
served
/assets/audio/voice/strategist/falcon-6.wav
bytes
1.17 MB
duration
25.66s
generated in
45.5s
cost
$0.0016
usage
{"chunks":[{"audio_second":5,"input_character":67},{"audio_second":6,"input_character":71},{"audio_second":5,"input_character":75},{"audio_second":6,"input_character":80},{"audio_second":5,"input_character":68}]}
reference audio
assets-src/voice-refs/persona-advisor.wav
generated at
2026-08-07T00:56:56.382Z

Strategist briefing narration for falcon-6 ("Siege Weather"). Text is read verbatim from lib/shared/data/missions/falcon.ts — the briefing screen and the voice line cannot drift apart. Typographic quotes and the German sharp names are left as written; only the right single quote is normalised to an apostrophe so the model does not read it as a pause.

request params
{
  "model": "ResembleAI/chatterbox",
  "input": "<base64 365 chars>",
  "voice": "default",
  "exaggeration": 0.5,
  "cfg_weight": 0.55,
  "temperature": 0.7,
  "seed": 20260756,
  "response_format": "wav",
  "reference_audio": {
    "content_type": "audio/wav",
    "encoding": "base64",
    "data": "<base64 416272 chars>"
  }
}
vox-strategist-falcon-7voice
baked
model
ResembleAI/chatterbox
gateway
MAYHEM_CHATTERBOX_URL
endpoint
/audio/speech
output
public/assets/audio/voice/strategist/falcon-7.wav
served
/assets/audio/voice/strategist/falcon-7.wav
bytes
1.13 MB
duration
24.66s
generated in
47.9s
cost
$0.0016
usage
{"chunks":[{"audio_second":5,"input_character":74},{"audio_second":6,"input_character":80},{"audio_second":4,"input_character":63},{"audio_second":3,"input_character":44},{"audio_second":6,"input_character":75},{"audio_second":3,"input_character":32}]}
reference audio
assets-src/voice-refs/persona-advisor.wav
generated at
2026-08-07T00:57:45.807Z

Strategist briefing narration for falcon-7 ("The Laboratory"). Text is read verbatim from lib/shared/data/missions/falcon.ts — the briefing screen and the voice line cannot drift apart. Typographic quotes and the German sharp names are left as written; only the right single quote is normalised to an apostrophe so the model does not read it as a pause.

request params
{
  "model": "ResembleAI/chatterbox",
  "input": "<base64 373 chars>",
  "voice": "default",
  "exaggeration": 0.5,
  "cfg_weight": 0.55,
  "temperature": 0.7,
  "seed": 20260757,
  "response_format": "wav",
  "reference_audio": {
    "content_type": "audio/wav",
    "encoding": "base64",
    "data": "<base64 416272 chars>"
  }
}
vox-strategist-falcon-8voice
baked
model
ResembleAI/chatterbox
gateway
MAYHEM_CHATTERBOX_URL
endpoint
/audio/speech
output
public/assets/audio/voice/strategist/falcon-8.wav
served
/assets/audio/voice/strategist/falcon-8.wav
bytes
1.12 MB
duration
24.46s
generated in
61.5s
cost
$0.0015
usage
{"chunks":[{"audio_second":6,"input_character":76},{"audio_second":4,"input_character":58},{"audio_second":5,"input_character":75},{"audio_second":3,"input_character":48},{"audio_second":3,"input_character":47},{"audio_second":4,"input_character":61}]}
reference audio
assets-src/voice-refs/persona-advisor.wav
generated at
2026-08-07T00:58:48.846Z

Strategist briefing narration for falcon-8 ("Two Banners"). Text is read verbatim from lib/shared/data/missions/falcon.ts — the briefing screen and the voice line cannot drift apart. Typographic quotes and the German sharp names are left as written; only the right single quote is normalised to an apostrophe so the model does not read it as a pause.

request params
{
  "model": "ResembleAI/chatterbox",
  "input": "<base64 370 chars>",
  "voice": "default",
  "exaggeration": 0.5,
  "cfg_weight": 0.55,
  "temperature": 0.7,
  "seed": 20260758,
  "response_format": "wav",
  "reference_audio": {
    "content_type": "audio/wav",
    "encoding": "base64",
    "data": "<base64 416272 chars>"
  }
}
vox-strategist-falcon-9voice
baked
model
ResembleAI/chatterbox
gateway
MAYHEM_CHATTERBOX_URL
endpoint
/audio/speech
output
public/assets/audio/voice/strategist/falcon-9.wav
served
/assets/audio/voice/strategist/falcon-9.wav
bytes
1.16 MB
duration
25.26s
generated in
81.7s
cost
$0.0016
usage
{"chunks":[{"audio_second":6,"input_character":73},{"audio_second":6,"input_character":77},{"audio_second":6,"input_character":78},{"audio_second":4,"input_character":77},{"audio_second":5,"input_character":73}]}
reference audio
assets-src/voice-refs/persona-advisor.wav
generated at
2026-08-07T01:00:12.011Z

Strategist briefing narration for falcon-9 ("The Regent’s Reckoning"). Text is read verbatim from lib/shared/data/missions/falcon.ts — the briefing screen and the voice line cannot drift apart. Typographic quotes and the German sharp names are left as written; only the right single quote is normalised to an apostrophe so the model does not read it as a pause.

request params
{
  "model": "ResembleAI/chatterbox",
  "input": "<base64 382 chars>",
  "voice": "default",
  "exaggeration": 0.5,
  "cfg_weight": 0.55,
  "temperature": 0.7,
  "seed": 20260759,
  "response_format": "wav",
  "reference_audio": {
    "content_type": "audio/wav",
    "encoding": "base64",
    "data": "<base64 416272 chars>"
  }
}
vox-strategist-jackal-1voice
baked
model
ResembleAI/chatterbox
gateway
MAYHEM_CHATTERBOX_URL
endpoint
/audio/speech
output
public/assets/audio/voice/strategist/jackal-1.wav
served
/assets/audio/voice/strategist/jackal-1.wav
bytes
1.12 MB
duration
24.42s
generated in
126.3s
cost
$0.0015
usage
{"chunks":[{"audio_second":3,"input_character":41},{"audio_second":5,"input_character":56},{"audio_second":5,"input_character":75},{"audio_second":3,"input_character":42},{"audio_second":5,"input_character":72},{"audio_second":4,"input_character":57}]}
reference audio
assets-src/voice-refs/persona-advisor.wav
generated at
2026-08-07T01:02:19.773Z

Strategist briefing narration for jackal-1 ("Open the Ground"). Text is read verbatim from lib/shared/data/missions/jackal.ts — the briefing screen and the voice line cannot drift apart. Typographic quotes and the German sharp names are left as written; only the right single quote is normalised to an apostrophe so the model does not read it as a pause.

request params
{
  "model": "ResembleAI/chatterbox",
  "input": "<base64 348 chars>",
  "voice": "default",
  "exaggeration": 0.5,
  "cfg_weight": 0.55,
  "temperature": 0.7,
  "seed": 20260760,
  "response_format": "wav",
  "reference_audio": {
    "content_type": "audio/wav",
    "encoding": "base64",
    "data": "<base64 416272 chars>"
  }
}
vox-strategist-jackal-2voice
baked
model
ResembleAI/chatterbox
gateway
MAYHEM_CHATTERBOX_URL
endpoint
/audio/speech
output
public/assets/audio/voice/strategist/jackal-2.wav
served
/assets/audio/voice/strategist/jackal-2.wav
bytes
1.17 MB
duration
25.5s
generated in
128.9s
cost
$0.0017
usage
{"chunks":[{"audio_second":4,"input_character":48},{"audio_second":5,"input_character":78},{"audio_second":2,"input_character":20},{"audio_second":5,"input_character":65},{"audio_second":6,"input_character":77},{"audio_second":2,"input_character":22},{"audio_second":4,"input_character":39}]}
reference audio
assets-src/voice-refs/persona-advisor.wav
generated at
2026-08-07T01:04:30.197Z

Strategist briefing narration for jackal-2 ("Iron and Rifles"). Text is read verbatim from lib/shared/data/missions/jackal.ts — the briefing screen and the voice line cannot drift apart. Typographic quotes and the German sharp names are left as written; only the right single quote is normalised to an apostrophe so the model does not read it as a pause.

request params
{
  "model": "ResembleAI/chatterbox",
  "input": "<base64 355 chars>",
  "voice": "default",
  "exaggeration": 0.5,
  "cfg_weight": 0.55,
  "temperature": 0.7,
  "seed": 20260761,
  "response_format": "wav",
  "reference_audio": {
    "content_type": "audio/wav",
    "encoding": "base64",
    "data": "<base64 416272 chars>"
  }
}
vox-strategist-jackal-3voice
baked
model
ResembleAI/chatterbox
gateway
MAYHEM_CHATTERBOX_URL
endpoint
/audio/speech
output
public/assets/audio/voice/strategist/jackal-3.wav
served
/assets/audio/voice/strategist/jackal-3.wav
bytes
1.18 MB
duration
25.86s
generated in
146.3s
cost
$0.0017
usage
{"chunks":[{"audio_second":4,"input_character":58},{"audio_second":5,"input_character":67},{"audio_second":4,"input_character":40},{"audio_second":5,"input_character":75},{"audio_second":2,"input_character":15},{"audio_second":5,"input_character":70},{"audio_second":3,"input_character":33}]}
reference audio
assets-src/voice-refs/persona-advisor.wav
generated at
2026-08-07T01:06:58.030Z

Strategist briefing narration for jackal-3 ("Quads Off the Line"). Text is read verbatim from lib/shared/data/missions/jackal.ts — the briefing screen and the voice line cannot drift apart. Typographic quotes and the German sharp names are left as written; only the right single quote is normalised to an apostrophe so the model does not read it as a pause.

request params
{
  "model": "ResembleAI/chatterbox",
  "input": "<base64 364 chars>",
  "voice": "default",
  "exaggeration": 0.5,
  "cfg_weight": 0.55,
  "temperature": 0.7,
  "seed": 20260762,
  "response_format": "wav",
  "reference_audio": {
    "content_type": "audio/wav",
    "encoding": "base64",
    "data": "<base64 416272 chars>"
  }
}
vox-strategist-jackal-4voice
baked
model
ResembleAI/chatterbox
gateway
MAYHEM_CHATTERBOX_URL
endpoint
/audio/speech
output
public/assets/audio/voice/strategist/jackal-4.wav
served
/assets/audio/voice/strategist/jackal-4.wav
bytes
1.08 MB
duration
23.62s
generated in
161.2s
cost
$0.0015
usage
{"chunks":[{"audio_second":3,"input_character":32},{"audio_second":5,"input_character":77},{"audio_second":3,"input_character":45},{"audio_second":4,"input_character":55},{"audio_second":5,"input_character":77},{"audio_second":1,"input_character":8},{"audio_second":4,"input_character":70}]}
reference audio
assets-src/voice-refs/persona-advisor.wav
generated at
2026-08-07T01:09:40.738Z

Strategist briefing narration for jackal-4 ("The Heavy Works"). Text is read verbatim from lib/shared/data/missions/jackal.ts — the briefing screen and the voice line cannot drift apart. Typographic quotes and the German sharp names are left as written; only the right single quote is normalised to an apostrophe so the model does not read it as a pause.

request params
{
  "model": "ResembleAI/chatterbox",
  "input": "<base64 370 chars>",
  "voice": "default",
  "exaggeration": 0.5,
  "cfg_weight": 0.55,
  "temperature": 0.7,
  "seed": 20260763,
  "response_format": "wav",
  "reference_audio": {
    "content_type": "audio/wav",
    "encoding": "base64",
    "data": "<base64 416272 chars>"
  }
}
vox-strategist-jackal-5voice
baked
model
ResembleAI/chatterbox
gateway
MAYHEM_CHATTERBOX_URL
endpoint
/audio/speech
output
public/assets/audio/voice/strategist/jackal-5.wav
served
/assets/audio/voice/strategist/jackal-5.wav
bytes
1.10 MB
duration
24.06s
generated in
116.5s
cost
$0.0016
usage
{"chunks":[{"audio_second":5,"input_character":77},{"audio_second":6,"input_character":75},{"audio_second":5,"input_character":70},{"audio_second":3,"input_character":35},{"audio_second":3,"input_character":36},{"audio_second":3,"input_character":40},{"audio_second":2,"input_character":22}]}
reference audio
assets-src/voice-refs/persona-advisor.wav
generated at
2026-08-07T01:11:38.706Z

Strategist briefing narration for jackal-5 ("Lift and Weld"). Text is read verbatim from lib/shared/data/missions/jackal.ts — the briefing screen and the voice line cannot drift apart. Typographic quotes and the German sharp names are left as written; only the right single quote is normalised to an apostrophe so the model does not read it as a pause.

request params
{
  "model": "ResembleAI/chatterbox",
  "input": "<base64 361 chars>",
  "voice": "default",
  "exaggeration": 0.5,
  "cfg_weight": 0.55,
  "temperature": 0.7,
  "seed": 20260764,
  "response_format": "wav",
  "reference_audio": {
    "content_type": "audio/wav",
    "encoding": "base64",
    "data": "<base64 416272 chars>"
  }
}
vox-strategist-jackal-6voice
baked
model
ResembleAI/chatterbox
gateway
MAYHEM_CHATTERBOX_URL
endpoint
/audio/speech
output
public/assets/audio/voice/strategist/jackal-6.wav
served
/assets/audio/voice/strategist/jackal-6.wav
bytes
1.16 MB
duration
25.42s
generated in
188s
cost
$0.0017
usage
{"chunks":[{"audio_second":4,"input_character":50},{"audio_second":3,"input_character":26},{"audio_second":5,"input_character":74},{"audio_second":2,"input_character":23},{"audio_second":5,"input_character":75},{"audio_second":2,"input_character":25},{"audio_second":3,"input_character":42},{"audio_second":4,"input_character":55}]}
reference audio
assets-src/voice-refs/persona-advisor.wav
generated at
2026-08-07T01:14:48.252Z

Strategist briefing narration for jackal-6 ("Break the Wall"). Text is read verbatim from lib/shared/data/missions/jackal.ts — the briefing screen and the voice line cannot drift apart. Typographic quotes and the German sharp names are left as written; only the right single quote is normalised to an apostrophe so the model does not read it as a pause.

request params
{
  "model": "ResembleAI/chatterbox",
  "input": "<base64 377 chars>",
  "voice": "default",
  "exaggeration": 0.5,
  "cfg_weight": 0.55,
  "temperature": 0.7,
  "seed": 20260765,
  "response_format": "wav",
  "reference_audio": {
    "content_type": "audio/wav",
    "encoding": "base64",
    "data": "<base64 416272 chars>"
  }
}
vox-strategist-jackal-7voice
baked
model
ResembleAI/chatterbox
gateway
MAYHEM_CHATTERBOX_URL
endpoint
/audio/speech
output
public/assets/audio/voice/strategist/jackal-7.wav
served
/assets/audio/voice/strategist/jackal-7.wav
bytes
1.16 MB
duration
25.3s
generated in
100s
cost
$0.0017
usage
{"chunks":[{"audio_second":2,"input_character":23},{"audio_second":6,"input_character":77},{"audio_second":4,"input_character":52},{"audio_second":4,"input_character":41},{"audio_second":5,"input_character":79},{"audio_second":4,"input_character":66},{"audio_second":3,"input_character":40}]}
reference audio
assets-src/voice-refs/persona-advisor.wav
generated at
2026-08-07T01:16:29.761Z

Strategist briefing narration for jackal-7 ("The Laboratory"). Text is read verbatim from lib/shared/data/missions/jackal.ts — the briefing screen and the voice line cannot drift apart. Typographic quotes and the German sharp names are left as written; only the right single quote is normalised to an apostrophe so the model does not read it as a pause.

request params
{
  "model": "ResembleAI/chatterbox",
  "input": "<base64 384 chars>",
  "voice": "default",
  "exaggeration": 0.5,
  "cfg_weight": 0.55,
  "temperature": 0.7,
  "seed": 20260766,
  "response_format": "wav",
  "reference_audio": {
    "content_type": "audio/wav",
    "encoding": "base64",
    "data": "<base64 416272 chars>"
  }
}
vox-strategist-jackal-8voice
baked
model
ResembleAI/chatterbox
gateway
MAYHEM_CHATTERBOX_URL
endpoint
/audio/speech
output
public/assets/audio/voice/strategist/jackal-8.wav
served
/assets/audio/voice/strategist/jackal-8.wav
bytes
1.17 MB
duration
25.46s
generated in
117s
cost
$0.0016
usage
{"chunks":[{"audio_second":5,"input_character":76},{"audio_second":6,"input_character":75},{"audio_second":4,"input_character":51},{"audio_second":5,"input_character":75},{"audio_second":2,"input_character":7},{"audio_second":3,"input_character":43},{"audio_second":2,"input_character":32}]}
reference audio
assets-src/voice-refs/persona-advisor.wav
generated at
2026-08-07T01:18:28.228Z

Strategist briefing narration for jackal-8 ("Two Fronts"). Text is read verbatim from lib/shared/data/missions/jackal.ts — the briefing screen and the voice line cannot drift apart. Typographic quotes and the German sharp names are left as written; only the right single quote is normalised to an apostrophe so the model does not read it as a pause.

request params
{
  "model": "ResembleAI/chatterbox",
  "input": "<base64 365 chars>",
  "voice": "default",
  "exaggeration": 0.5,
  "cfg_weight": 0.55,
  "temperature": 0.7,
  "seed": 20260767,
  "response_format": "wav",
  "reference_audio": {
    "content_type": "audio/wav",
    "encoding": "base64",
    "data": "<base64 416272 chars>"
  }
}
vox-strategist-jackal-9voice
baked
model
ResembleAI/chatterbox
gateway
MAYHEM_CHATTERBOX_URL
endpoint
/audio/speech
output
public/assets/audio/voice/strategist/jackal-9.wav
served
/assets/audio/voice/strategist/jackal-9.wav
bytes
1.09 MB
duration
23.74s
generated in
82.7s
cost
$0.0016
usage
{"chunks":[{"audio_second":4,"input_character":73},{"audio_second":3,"input_character":30},{"audio_second":3,"input_character":29},{"audio_second":4,"input_character":61},{"audio_second":5,"input_character":46},{"audio_second":3,"input_character":51},{"audio_second":4,"input_character":55}]}
reference audio
assets-src/voice-refs/persona-advisor.wav
generated at
2026-08-07T01:19:52.484Z

Strategist briefing narration for jackal-9 ("The Regent’s Debt"). Text is read verbatim from lib/shared/data/missions/jackal.ts — the briefing screen and the voice line cannot drift apart. Typographic quotes and the German sharp names are left as written; only the right single quote is normalised to an apostrophe so the model does not read it as a pause.

request params
{
  "model": "ResembleAI/chatterbox",
  "input": "<base64 351 chars>",
  "voice": "default",
  "exaggeration": 0.5,
  "cfg_weight": 0.55,
  "temperature": 0.7,
  "seed": 20260768,
  "response_format": "wav",
  "reference_audio": {
    "content_type": "audio/wav",
    "encoding": "base64",
    "data": "<base64 416272 chars>"
  }
}
vox-strategist-viper-1voice
baked
model
ResembleAI/chatterbox
gateway
MAYHEM_CHATTERBOX_URL
endpoint
/audio/speech
output
public/assets/audio/voice/strategist/viper-1.wav
served
/assets/audio/voice/strategist/viper-1.wav
bytes
1.16 MB
duration
25.38s
generated in
129.7s
cost
$0.0017
usage
{"chunks":[{"audio_second":6,"input_character":77},{"audio_second":5,"input_character":73},{"audio_second":2,"input_character":8},{"audio_second":5,"input_character":65},{"audio_second":3,"input_character":39},{"audio_second":2,"input_character":14},{"audio_second":5,"input_character":76}]}
reference audio
assets-src/voice-refs/persona-advisor.wav
generated at
2026-08-07T01:22:03.669Z

Strategist briefing narration for viper-1 ("The Quiet Purchase"). Text is read verbatim from lib/shared/data/missions/viper.ts — the briefing screen and the voice line cannot drift apart. Typographic quotes and the German sharp names are left as written; only the right single quote is normalised to an apostrophe so the model does not read it as a pause.

request params
{
  "model": "ResembleAI/chatterbox",
  "input": "<base64 358 chars>",
  "voice": "default",
  "exaggeration": 0.5,
  "cfg_weight": 0.55,
  "temperature": 0.7,
  "seed": 20260769,
  "response_format": "wav",
  "reference_audio": {
    "content_type": "audio/wav",
    "encoding": "base64",
    "data": "<base64 416272 chars>"
  }
}
vox-strategist-viper-2voice
baked
model
ResembleAI/chatterbox
gateway
MAYHEM_CHATTERBOX_URL
endpoint
/audio/speech
output
public/assets/audio/voice/strategist/viper-2.wav
served
/assets/audio/voice/strategist/viper-2.wav
bytes
1.11 MB
duration
24.18s
generated in
110.4s
cost
$0.0016
usage
{"chunks":[{"audio_second":5,"input_character":75},{"audio_second":4,"input_character":52},{"audio_second":5,"input_character":79},{"audio_second":1,"input_character":10},{"audio_second":5,"input_character":58},{"audio_second":3,"input_character":35},{"audio_second":3,"input_character":45}]}
reference audio
assets-src/voice-refs/persona-advisor.wav
generated at
2026-08-07T01:23:55.579Z

Strategist briefing narration for viper-2 ("Eyes Before Guns"). Text is read verbatim from lib/shared/data/missions/viper.ts — the briefing screen and the voice line cannot drift apart. Typographic quotes and the German sharp names are left as written; only the right single quote is normalised to an apostrophe so the model does not read it as a pause.

request params
{
  "model": "ResembleAI/chatterbox",
  "input": "<base64 360 chars>",
  "voice": "default",
  "exaggeration": 0.5,
  "cfg_weight": 0.55,
  "temperature": 0.7,
  "seed": 20260770,
  "response_format": "wav",
  "reference_audio": {
    "content_type": "audio/wav",
    "encoding": "base64",
    "data": "<base64 416272 chars>"
  }
}
vox-strategist-viper-3voice
baked
model
ResembleAI/chatterbox
gateway
MAYHEM_CHATTERBOX_URL
endpoint
/audio/speech
output
public/assets/audio/voice/strategist/viper-3.wav
served
/assets/audio/voice/strategist/viper-3.wav
bytes
1.14 MB
duration
24.86s
generated in
120s
cost
$0.0016
usage
{"chunks":[{"audio_second":5,"input_character":79},{"audio_second":2,"input_character":13},{"audio_second":2,"input_character":26},{"audio_second":5,"input_character":74},{"audio_second":4,"input_character":57},{"audio_second":3,"input_character":41},{"audio_second":5,"input_character":78}]}
reference audio
assets-src/voice-refs/persona-advisor.wav
generated at
2026-08-07T01:25:57.131Z

Strategist briefing narration for viper-3 ("Cheaper Than Tanks"). Text is read verbatim from lib/shared/data/missions/viper.ts — the briefing screen and the voice line cannot drift apart. Typographic quotes and the German sharp names are left as written; only the right single quote is normalised to an apostrophe so the model does not read it as a pause.

request params
{
  "model": "ResembleAI/chatterbox",
  "input": "<base64 374 chars>",
  "voice": "default",
  "exaggeration": 0.5,
  "cfg_weight": 0.55,
  "temperature": 0.7,
  "seed": 20260771,
  "response_format": "wav",
  "reference_audio": {
    "content_type": "audio/wav",
    "encoding": "base64",
    "data": "<base64 416272 chars>"
  }
}
vox-strategist-viper-4voice
baked
model
ResembleAI/chatterbox
gateway
MAYHEM_CHATTERBOX_URL
endpoint
/audio/speech
output
public/assets/audio/voice/strategist/viper-4.wav
served
/assets/audio/voice/strategist/viper-4.wav
bytes
1.18 MB
duration
25.82s
generated in
146s
cost
$0.0017
usage
{"chunks":[{"audio_second":5,"input_character":78},{"audio_second":1,"input_character":7},{"audio_second":3,"input_character":37},{"audio_second":5,"input_character":62},{"audio_second":5,"input_character":79},{"audio_second":1,"input_character":8},{"audio_second":4,"input_character":64},{"audio_second":4,"input_character":46}]}
reference audio
assets-src/voice-refs/persona-advisor.wav
generated at
2026-08-07T01:28:24.684Z

Strategist briefing narration for viper-4 ("Buying Weight"). Text is read verbatim from lib/shared/data/missions/viper.ts — the briefing screen and the voice line cannot drift apart. Typographic quotes and the German sharp names are left as written; only the right single quote is normalised to an apostrophe so the model does not read it as a pause.

request params
{
  "model": "ResembleAI/chatterbox",
  "input": "<base64 388 chars>",
  "voice": "default",
  "exaggeration": 0.5,
  "cfg_weight": 0.55,
  "temperature": 0.7,
  "seed": 20260772,
  "response_format": "wav",
  "reference_audio": {
    "content_type": "audio/wav",
    "encoding": "base64",
    "data": "<base64 416272 chars>"
  }
}
vox-strategist-viper-5voice
baked
model
ResembleAI/chatterbox
gateway
MAYHEM_CHATTERBOX_URL
endpoint
/audio/speech
output
public/assets/audio/voice/strategist/viper-5.wav
served
/assets/audio/voice/strategist/viper-5.wav
bytes
1.12 MB
duration
24.5s
generated in
227.1s
cost
$0.0019
usage
{"chunks":[{"audio_second":5,"input_character":76},{"audio_second":2,"input_character":11},{"audio_second":5,"input_character":71},{"audio_second":5,"input_character":71},{"audio_second":2,"input_character":24},{"audio_second":3,"input_character":38},{"audio_second":5,"input_character":77}]}
reference audio
assets-src/voice-refs/persona-advisor.wav
generated at
2026-08-07T01:32:13.244Z

Strategist briefing narration for viper-5 ("Freight and Repair"). Text is read verbatim from lib/shared/data/missions/viper.ts — the briefing screen and the voice line cannot drift apart. Typographic quotes and the German sharp names are left as written; only the right single quote is normalised to an apostrophe so the model does not read it as a pause.

request params
{
  "model": "ResembleAI/chatterbox",
  "input": "<base64 374 chars>",
  "voice": "default",
  "exaggeration": 0.5,
  "cfg_weight": 0.55,
  "temperature": 0.7,
  "seed": 20260773,
  "response_format": "wav",
  "reference_audio": {
    "content_type": "audio/wav",
    "encoding": "base64",
    "data": "<base64 416272 chars>"
  }
}
vox-strategist-viper-6voice
baked
model
ResembleAI/chatterbox
gateway
MAYHEM_CHATTERBOX_URL
endpoint
/audio/speech
output
public/assets/audio/voice/strategist/viper-6.wav
served
/assets/audio/voice/strategist/viper-6.wav
bytes
1.13 MB
duration
24.66s
generated in
83s
cost
$0.0023
usage
{"chunks":[{"audio_second":5,"input_character":64},{"audio_second":5,"input_character":67},{"audio_second":3,"input_character":34},{"audio_second":5,"input_character":75},{"audio_second":4,"input_character":63},{"audio_second":4,"input_character":68}]}
reference audio
assets-src/voice-refs/persona-advisor.wav
generated at
2026-08-07T01:33:37.800Z

Strategist briefing narration for viper-6 ("Sappers’ Discount"). Text is read verbatim from lib/shared/data/missions/viper.ts — the briefing screen and the voice line cannot drift apart. Typographic quotes and the German sharp names are left as written; only the right single quote is normalised to an apostrophe so the model does not read it as a pause.

request params
{
  "model": "ResembleAI/chatterbox",
  "input": "<base64 376 chars>",
  "voice": "default",
  "exaggeration": 0.5,
  "cfg_weight": 0.55,
  "temperature": 0.7,
  "seed": 20260774,
  "response_format": "wav",
  "reference_audio": {
    "content_type": "audio/wav",
    "encoding": "base64",
    "data": "<base64 416272 chars>"
  }
}
vox-strategist-viper-7voice
baked
model
ResembleAI/chatterbox
gateway
MAYHEM_CHATTERBOX_URL
endpoint
/audio/speech
output
public/assets/audio/voice/strategist/viper-7.wav
served
/assets/audio/voice/strategist/viper-7.wav
bytes
1.13 MB
duration
24.78s
generated in
101.7s
cost
$0.0024
usage
{"chunks":[{"audio_second":5,"input_character":73},{"audio_second":2,"input_character":9},{"audio_second":3,"input_character":30},{"audio_second":5,"input_character":70},{"audio_second":5,"input_character":74},{"audio_second":2,"input_character":11},{"audio_second":5,"input_character":73}]}
reference audio
assets-src/voice-refs/persona-advisor.wav
generated at
2026-08-07T01:35:20.992Z

Strategist briefing narration for viper-7 ("The Laboratory"). Text is read verbatim from lib/shared/data/missions/viper.ts — the briefing screen and the voice line cannot drift apart. Typographic quotes and the German sharp names are left as written; only the right single quote is normalised to an apostrophe so the model does not read it as a pause.

request params
{
  "model": "ResembleAI/chatterbox",
  "input": "<base64 346 chars>",
  "voice": "default",
  "exaggeration": 0.5,
  "cfg_weight": 0.55,
  "temperature": 0.7,
  "seed": 20260775,
  "response_format": "wav",
  "reference_audio": {
    "content_type": "audio/wav",
    "encoding": "base64",
    "data": "<base64 416272 chars>"
  }
}
vox-strategist-viper-8voice
baked
model
ResembleAI/chatterbox
gateway
MAYHEM_CHATTERBOX_URL
endpoint
/audio/speech
output
public/assets/audio/voice/strategist/viper-8.wav
served
/assets/audio/voice/strategist/viper-8.wav
bytes
1015.4 KB
duration
21.66s
generated in
82.4s
cost
$0.0021
usage
{"chunks":[{"audio_second":4,"input_character":66},{"audio_second":5,"input_character":77},{"audio_second":2,"input_character":8},{"audio_second":5,"input_character":77},{"audio_second":4,"input_character":68},{"audio_second":3,"input_character":43}]}
reference audio
assets-src/voice-refs/persona-advisor.wav
generated at
2026-08-07T01:36:44.935Z

Strategist briefing narration for viper-8 ("Both Ledgers"). Text is read verbatim from lib/shared/data/missions/viper.ts — the briefing screen and the voice line cannot drift apart. Typographic quotes and the German sharp names are left as written; only the right single quote is normalised to an apostrophe so the model does not read it as a pause.

request params
{
  "model": "ResembleAI/chatterbox",
  "input": "<base64 344 chars>",
  "voice": "default",
  "exaggeration": 0.5,
  "cfg_weight": 0.55,
  "temperature": 0.7,
  "seed": 20260776,
  "response_format": "wav",
  "reference_audio": {
    "content_type": "audio/wav",
    "encoding": "base64",
    "data": "<base64 416272 chars>"
  }
}
vox-strategist-viper-9voice
baked
model
ResembleAI/chatterbox
gateway
MAYHEM_CHATTERBOX_URL
endpoint
/audio/speech
output
public/assets/audio/voice/strategist/viper-9.wav
served
/assets/audio/voice/strategist/viper-9.wav
bytes
1.07 MB
duration
23.34s
generated in
106.9s
cost
$0.0023
usage
{"chunks":[{"audio_second":5,"input_character":77},{"audio_second":5,"input_character":75},{"audio_second":5,"input_character":71},{"audio_second":1,"input_character":13},{"audio_second":4,"input_character":48},{"audio_second":3,"input_character":34},{"audio_second":2,"input_character":15}]}
reference audio
assets-src/voice-refs/persona-advisor.wav
generated at
2026-08-07T01:38:33.339Z

Strategist briefing narration for viper-9 ("The Regent’s Price"). Text is read verbatim from lib/shared/data/missions/viper.ts — the briefing screen and the voice line cannot drift apart. Typographic quotes and the German sharp names are left as written; only the right single quote is normalised to an apostrophe so the model does not read it as a pause.

request params
{
  "model": "ResembleAI/chatterbox",
  "input": "<base64 339 chars>",
  "voice": "default",
  "exaggeration": 0.5,
  "cfg_weight": 0.55,
  "temperature": 0.7,
  "seed": 20260777,
  "response_format": "wav",
  "reference_audio": {
    "content_type": "audio/wav",
    "encoding": "base64",
    "data": "<base64 416272 chars>"
  }
}
backdrop-falcon-act1image
baked
backdrop-falcon-act1
model
tongyi/z-image-turbo
gateway
MAYHEM_ZIMAGE_URL
endpoint
/images/generations
output
assets-src/art-src/backdrop-falcon-act1.png
served
/assets/art/backdrop-falcon-act1.webp
bytes
1.73 MB
generated in
20.7s
cost
$0.0033
usage
{"image":1,"step":32}
generated at
2026-07-27T12:04:35.039Z

Briefing backdrop for Haus Falcon missions 1–3 (frontier landfall). House accents follow the approved style bible, which settled the PLAN §5.2 palette question in favour of the A1 brief. Composed to leave the frame centre quiet because the briefing panel sits over it. Size is capped at the provider ceiling measured during the style bible bake: 1344x768 (1.03 MP) routes, 1536x864 (1.33 MP) answers HTTP 503 "no eligible provider". The 2048x1152 masters the A1 brief asked for are therefore unroutable on this gateway. The provider PNG is the bake source under assets-src/art-src/; what ships is the WebP q85 plate named in `ship`.

request params
{
  "model": "tongyi/z-image-turbo",
  "prompt": "<base64 1423 chars>",
  "negative_prompt": "<base64 352 chars>",
  "n": 1,
  "size": "1344x768",
  "steps": 8,
  "cfg_scale": 1,
  "shift": 3,
  "seed": 20260780,
  "response_format": "b64_json"
}
backdrop-falcon-act2image
baked
backdrop-falcon-act2
model
tongyi/z-image-turbo
gateway
MAYHEM_ZIMAGE_URL
endpoint
/images/generations
output
assets-src/art-src/backdrop-falcon-act2.png
served
/assets/art/backdrop-falcon-act2.webp
bytes
1.95 MB
generated in
23.6s
cost
$0.0033
usage
{"image":1,"step":32}
generated at
2026-07-27T12:05:29.840Z

Briefing backdrop for Haus Falcon missions 4–6 (industrial war). House accents follow the approved style bible, which settled the PLAN §5.2 palette question in favour of the A1 brief. Composed to leave the frame centre quiet because the briefing panel sits over it. Size is capped at the provider ceiling measured during the style bible bake: 1344x768 (1.03 MP) routes, 1536x864 (1.33 MP) answers HTTP 503 "no eligible provider". The 2048x1152 masters the A1 brief asked for are therefore unroutable on this gateway. The provider PNG is the bake source under assets-src/art-src/; what ships is the WebP q85 plate named in `ship`.

request params
{
  "model": "tongyi/z-image-turbo",
  "prompt": "<base64 1399 chars>",
  "negative_prompt": "<base64 352 chars>",
  "n": 1,
  "size": "1344x768",
  "steps": 8,
  "cfg_scale": 1,
  "shift": 3,
  "seed": 20260781,
  "response_format": "b64_json"
}
backdrop-falcon-act3image
baked
backdrop-falcon-act3
model
tongyi/z-image-turbo
gateway
MAYHEM_ZIMAGE_URL
endpoint
/images/generations
output
assets-src/art-src/backdrop-falcon-act3.png
served
/assets/art/backdrop-falcon-act3.webp
bytes
1.82 MB
generated in
21.8s
cost
$0.0033
usage
{"image":1,"step":32}
generated at
2026-07-27T12:05:51.675Z

Briefing backdrop for Haus Falcon missions 7–9 (final assault). House accents follow the approved style bible, which settled the PLAN §5.2 palette question in favour of the A1 brief. Composed to leave the frame centre quiet because the briefing panel sits over it. Size is capped at the provider ceiling measured during the style bible bake: 1344x768 (1.03 MP) routes, 1536x864 (1.33 MP) answers HTTP 503 "no eligible provider". The 2048x1152 masters the A1 brief asked for are therefore unroutable on this gateway. The provider PNG is the bake source under assets-src/art-src/; what ships is the WebP q85 plate named in `ship`.

request params
{
  "model": "tongyi/z-image-turbo",
  "prompt": "<base64 1414 chars>",
  "negative_prompt": "<base64 352 chars>",
  "n": 1,
  "size": "1344x768",
  "steps": 8,
  "cfg_scale": 1,
  "shift": 3,
  "seed": 20260782,
  "response_format": "b64_json"
}
backdrop-jackal-act1image
baked
backdrop-jackal-act1
model
tongyi/z-image-turbo
gateway
MAYHEM_ZIMAGE_URL
endpoint
/images/generations
output
assets-src/art-src/backdrop-jackal-act1.png
served
/assets/art/backdrop-jackal-act1.webp
bytes
1.74 MB
generated in
26.8s
cost
$0.0033
usage
{"image":1,"step":32}
generated at
2026-07-27T12:06:18.591Z

Briefing backdrop for Haus Jackal missions 1–3 (frontier landfall). House accents follow the approved style bible, which settled the PLAN §5.2 palette question in favour of the A1 brief. Composed to leave the frame centre quiet because the briefing panel sits over it. Size is capped at the provider ceiling measured during the style bible bake: 1344x768 (1.03 MP) routes, 1536x864 (1.33 MP) answers HTTP 503 "no eligible provider". The 2048x1152 masters the A1 brief asked for are therefore unroutable on this gateway. The provider PNG is the bake source under assets-src/art-src/; what ships is the WebP q85 plate named in `ship`.

request params
{
  "model": "tongyi/z-image-turbo",
  "prompt": "<base64 1434 chars>",
  "negative_prompt": "<base64 352 chars>",
  "n": 1,
  "size": "1344x768",
  "steps": 8,
  "cfg_scale": 1,
  "shift": 3,
  "seed": 20260783,
  "response_format": "b64_json"
}
backdrop-jackal-act2image
baked
backdrop-jackal-act2
model
tongyi/z-image-turbo
gateway
MAYHEM_ZIMAGE_URL
endpoint
/images/generations
output
assets-src/art-src/backdrop-jackal-act2.png
served
/assets/art/backdrop-jackal-act2.webp
bytes
1.94 MB
generated in
24.5s
cost
$0.0033
usage
{"image":1,"step":32}
generated at
2026-07-27T12:06:43.211Z

Briefing backdrop for Haus Jackal missions 4–6 (industrial war). House accents follow the approved style bible, which settled the PLAN §5.2 palette question in favour of the A1 brief. Composed to leave the frame centre quiet because the briefing panel sits over it. Size is capped at the provider ceiling measured during the style bible bake: 1344x768 (1.03 MP) routes, 1536x864 (1.33 MP) answers HTTP 503 "no eligible provider". The 2048x1152 masters the A1 brief asked for are therefore unroutable on this gateway. The provider PNG is the bake source under assets-src/art-src/; what ships is the WebP q85 plate named in `ship`.

request params
{
  "model": "tongyi/z-image-turbo",
  "prompt": "<base64 1410 chars>",
  "negative_prompt": "<base64 352 chars>",
  "n": 1,
  "size": "1344x768",
  "steps": 8,
  "cfg_scale": 1,
  "shift": 3,
  "seed": 20260784,
  "response_format": "b64_json"
}
backdrop-jackal-act3image
baked
backdrop-jackal-act3
model
tongyi/z-image-turbo
gateway
MAYHEM_ZIMAGE_URL
endpoint
/images/generations
output
assets-src/art-src/backdrop-jackal-act3.png
served
/assets/art/backdrop-jackal-act3.webp
bytes
1.74 MB
generated in
28.8s
cost
$0.0033
usage
{"image":1,"step":32}
generated at
2026-07-27T12:07:12.089Z

Briefing backdrop for Haus Jackal missions 7–9 (final assault). House accents follow the approved style bible, which settled the PLAN §5.2 palette question in favour of the A1 brief. Composed to leave the frame centre quiet because the briefing panel sits over it. Size is capped at the provider ceiling measured during the style bible bake: 1344x768 (1.03 MP) routes, 1536x864 (1.33 MP) answers HTTP 503 "no eligible provider". The 2048x1152 masters the A1 brief asked for are therefore unroutable on this gateway. The provider PNG is the bake source under assets-src/art-src/; what ships is the WebP q85 plate named in `ship`.

request params
{
  "model": "tongyi/z-image-turbo",
  "prompt": "<base64 1425 chars>",
  "negative_prompt": "<base64 352 chars>",
  "n": 1,
  "size": "1344x768",
  "steps": 8,
  "cfg_scale": 1,
  "shift": 3,
  "seed": 20260785,
  "response_format": "b64_json"
}
backdrop-viper-act1image
baked
backdrop-viper-act1
model
tongyi/z-image-turbo
gateway
MAYHEM_ZIMAGE_URL
endpoint
/images/generations
output
assets-src/art-src/backdrop-viper-act1.png
served
/assets/art/backdrop-viper-act1.webp
bytes
1.74 MB
generated in
22s
cost
$0.0033
usage
{"image":1,"step":32}
generated at
2026-07-27T12:07:34.196Z

Briefing backdrop for Haus Viper missions 1–3 (frontier landfall). House accents follow the approved style bible, which settled the PLAN §5.2 palette question in favour of the A1 brief. Composed to leave the frame centre quiet because the briefing panel sits over it. Size is capped at the provider ceiling measured during the style bible bake: 1344x768 (1.03 MP) routes, 1536x864 (1.33 MP) answers HTTP 503 "no eligible provider". The 2048x1152 masters the A1 brief asked for are therefore unroutable on this gateway. The provider PNG is the bake source under assets-src/art-src/; what ships is the WebP q85 plate named in `ship`.

request params
{
  "model": "tongyi/z-image-turbo",
  "prompt": "<base64 1433 chars>",
  "negative_prompt": "<base64 352 chars>",
  "n": 1,
  "size": "1344x768",
  "steps": 8,
  "cfg_scale": 1,
  "shift": 3,
  "seed": 20260786,
  "response_format": "b64_json"
}
backdrop-viper-act2image
baked
backdrop-viper-act2
model
tongyi/z-image-turbo
gateway
MAYHEM_ZIMAGE_URL
endpoint
/images/generations
output
assets-src/art-src/backdrop-viper-act2.png
served
/assets/art/backdrop-viper-act2.webp
bytes
1.86 MB
generated in
27.4s
cost
$0.0033
usage
{"image":1,"step":32}
generated at
2026-07-27T12:08:01.662Z

Briefing backdrop for Haus Viper missions 4–6 (industrial war). House accents follow the approved style bible, which settled the PLAN §5.2 palette question in favour of the A1 brief. Composed to leave the frame centre quiet because the briefing panel sits over it. Size is capped at the provider ceiling measured during the style bible bake: 1344x768 (1.03 MP) routes, 1536x864 (1.33 MP) answers HTTP 503 "no eligible provider". The 2048x1152 masters the A1 brief asked for are therefore unroutable on this gateway. The provider PNG is the bake source under assets-src/art-src/; what ships is the WebP q85 plate named in `ship`.

request params
{
  "model": "tongyi/z-image-turbo",
  "prompt": "<base64 1409 chars>",
  "negative_prompt": "<base64 352 chars>",
  "n": 1,
  "size": "1344x768",
  "steps": 8,
  "cfg_scale": 1,
  "shift": 3,
  "seed": 20260787,
  "response_format": "b64_json"
}
backdrop-viper-act3image
baked
backdrop-viper-act3
model
tongyi/z-image-turbo
gateway
MAYHEM_ZIMAGE_URL
endpoint
/images/generations
output
assets-src/art-src/backdrop-viper-act3.png
served
/assets/art/backdrop-viper-act3.webp
bytes
1.78 MB
generated in
28.6s
cost
$0.0033
usage
{"image":1,"step":32}
generated at
2026-07-27T12:08:30.335Z

Briefing backdrop for Haus Viper missions 7–9 (final assault). House accents follow the approved style bible, which settled the PLAN §5.2 palette question in favour of the A1 brief. Composed to leave the frame centre quiet because the briefing panel sits over it. Size is capped at the provider ceiling measured during the style bible bake: 1344x768 (1.03 MP) routes, 1536x864 (1.33 MP) answers HTTP 503 "no eligible provider". The 2048x1152 masters the A1 brief asked for are therefore unroutable on this gateway. The provider PNG is the bake source under assets-src/art-src/; what ships is the WebP q85 plate named in `ship`.

request params
{
  "model": "tongyi/z-image-turbo",
  "prompt": "<base64 1424 chars>",
  "negative_prompt": "<base64 352 chars>",
  "n": 1,
  "size": "1344x768",
  "steps": 8,
  "cfg_scale": 1,
  "shift": 3,
  "seed": 20260788,
  "response_format": "b64_json"
}
portrait-strategist-falconimage
baked
portrait-strategist-falcon
model
tongyi/z-image-turbo
gateway
MAYHEM_ZIMAGE_URL
endpoint
/images/generations
output
assets-src/art-src/portrait-strategist-falcon.png
served
/assets/art/portrait-strategist-falcon.webp
bytes
1.76 MB
generated in
25.8s
cost
$0.0033
usage
{"image":1,"step":32}
generated at
2026-07-27T12:08:56.239Z

Strategist advisor portrait for Haus Falcon (PLAN §3: three Strategist portraits). Shown beside the briefing header. All three are cast as the same rank and bearing because one cloned reference voice (assets-src/voice-refs/persona-advisor.wav) reads all 27 briefings. Invented character, no likeness of any real or identifiable person. 832x1216 = 1.01 MP, inside the routable ceiling.

request params
{
  "model": "tongyi/z-image-turbo",
  "prompt": "<base64 1124 chars>",
  "negative_prompt": "<base64 352 chars>",
  "n": 1,
  "size": "832x1216",
  "steps": 8,
  "cfg_scale": 1,
  "shift": 3,
  "seed": 20260790,
  "response_format": "b64_json"
}
portrait-strategist-jackalimage
baked
portrait-strategist-jackal
model
tongyi/z-image-turbo
gateway
MAYHEM_ZIMAGE_URL
endpoint
/images/generations
output
assets-src/art-src/portrait-strategist-jackal.png
served
/assets/art/portrait-strategist-jackal.webp
bytes
1.79 MB
generated in
19.1s
cost
$0.0033
usage
{"image":1,"step":32}
generated at
2026-07-27T12:09:15.426Z

Strategist advisor portrait for Haus Jackal (PLAN §3: three Strategist portraits). Shown beside the briefing header. All three are cast as the same rank and bearing because one cloned reference voice (assets-src/voice-refs/persona-advisor.wav) reads all 27 briefings. Invented character, no likeness of any real or identifiable person. 832x1216 = 1.01 MP, inside the routable ceiling.

request params
{
  "model": "tongyi/z-image-turbo",
  "prompt": "<base64 1129 chars>",
  "negative_prompt": "<base64 352 chars>",
  "n": 1,
  "size": "832x1216",
  "steps": 8,
  "cfg_scale": 1,
  "shift": 3,
  "seed": 20260791,
  "response_format": "b64_json"
}
portrait-strategist-viperimage
baked
portrait-strategist-viper
model
tongyi/z-image-turbo
gateway
MAYHEM_ZIMAGE_URL
endpoint
/images/generations
output
assets-src/art-src/portrait-strategist-viper.png
served
/assets/art/portrait-strategist-viper.webp
bytes
1.83 MB
generated in
24.8s
cost
$0.0033
usage
{"image":1,"step":32}
generated at
2026-07-27T12:09:40.244Z

Strategist advisor portrait for Haus Viper (PLAN §3: three Strategist portraits). Shown beside the briefing header. All three are cast as the same rank and bearing because one cloned reference voice (assets-src/voice-refs/persona-advisor.wav) reads all 27 briefings. Invented character, no likeness of any real or identifiable person. 832x1216 = 1.01 MP, inside the routable ceiling.

request params
{
  "model": "tongyi/z-image-turbo",
  "prompt": "<base64 1112 chars>",
  "negative_prompt": "<base64 352 chars>",
  "n": 1,
  "size": "832x1216",
  "steps": 8,
  "cfg_scale": 1,
  "shift": 3,
  "seed": 20260792,
  "response_format": "b64_json"
}
emblem-falconimage
baked
emblem-falcon
model
tongyi/z-image-turbo
gateway
MAYHEM_ZIMAGE_URL
endpoint
/images/generations
output
assets-src/art-src/emblem-falcon.png
served
/assets/art/emblem-falcon.png
bytes
1.49 MB
generated in
21.7s
cost
$0.0033
usage
{"image":1,"step":32}
generated at
2026-07-27T12:10:01.959Z

House emblem for Haus Falcon, on a dark ground for compositing over the menu house-select cards. Deliberately prompted as a struck metal badge rather than a mark, because the approved negative prompt bans "logo" and "vector art" verbatim and is reused unchanged here — a physical object is also what the §7 gritty kit calls for.

request params
{
  "model": "tongyi/z-image-turbo",
  "prompt": "<base64 1033 chars>",
  "negative_prompt": "<base64 352 chars>",
  "n": 1,
  "size": "1024x1024",
  "steps": 8,
  "cfg_scale": 1,
  "shift": 3,
  "seed": 20260794,
  "response_format": "b64_json"
}
emblem-jackalimage
baked
emblem-jackal
model
tongyi/z-image-turbo
gateway
MAYHEM_ZIMAGE_URL
endpoint
/images/generations
output
assets-src/art-src/emblem-jackal.png
served
/assets/art/emblem-jackal.png
bytes
1.37 MB
generated in
26s
cost
$0.0033
usage
{"image":1,"step":32}
generated at
2026-07-27T12:10:27.999Z

House emblem for Haus Jackal, on a dark ground for compositing over the menu house-select cards. Deliberately prompted as a struck metal badge rather than a mark, because the approved negative prompt bans "logo" and "vector art" verbatim and is reused unchanged here — a physical object is also what the §7 gritty kit calls for.

request params
{
  "model": "tongyi/z-image-turbo",
  "prompt": "<base64 1006 chars>",
  "negative_prompt": "<base64 352 chars>",
  "n": 1,
  "size": "1024x1024",
  "steps": 8,
  "cfg_scale": 1,
  "shift": 3,
  "seed": 20260795,
  "response_format": "b64_json"
}
emblem-viperimage
baked
emblem-viper
model
tongyi/z-image-turbo
gateway
MAYHEM_ZIMAGE_URL
endpoint
/images/generations
output
assets-src/art-src/emblem-viper.png
served
/assets/art/emblem-viper.png
bytes
1.43 MB
generated in
22.4s
cost
$0.0033
usage
{"image":1,"step":32}
generated at
2026-07-27T12:10:50.388Z

House emblem for Haus Viper, on a dark ground for compositing over the menu house-select cards. Deliberately prompted as a struck metal badge rather than a mark, because the approved negative prompt bans "logo" and "vector art" verbatim and is reused unchanged here — a physical object is also what the §7 gritty kit calls for.

request params
{
  "model": "tongyi/z-image-turbo",
  "prompt": "<base64 1015 chars>",
  "negative_prompt": "<base64 352 chars>",
  "n": 1,
  "size": "1024x1024",
  "steps": 8,
  "cfg_scale": 1,
  "shift": 3,
  "seed": 20260796,
  "response_format": "b64_json"
}
territory-karsisimage
baked
territory-karsis
model
tongyi/z-image-turbo
gateway
MAYHEM_ZIMAGE_URL
endpoint
/images/generations
output
assets-src/art-src/territory-karsis.png
served
/assets/art/territory-karsis.webp
bytes
1.87 MB
generated in
24.6s
cost
$0.0033
usage
{"image":1,"step":32}
generated at
2026-07-27T12:19:09.605Z

Painted Karsis for the territory screen. TerritoryMap draws its interactive wedges OVER this. TWO BAKES, BOTH OFF-BRIEF (seed 20260798 -> 20260803): the brief asked for a flat, low-contrast, machinery-free survey chart, and both takes returned a cinematic landscape with a rusted hauler in the foreground. The cause is structural, not a bad prompt: the APPROVED style bible is prepended verbatim to every image and it mandates "weathered industrial mining machinery with sand-blasted plating, rivets, oil stains" and "cinematic composition". A machinery-free chart is therefore not reachable without editing the binding art contract, which this wave may not do. Resolution: the plate is composited in soft-light at alpha 0.5 UNDER the interactive layer, so it contributes pigment and brush grain to the procedural relief rather than scene content — the relief still supplies all map geometry. If a true chart is wanted later it needs a style-bible exemption for this one row, which is an owner decision. Size is capped at the provider ceiling measured during the style bible bake: 1344x768 (1.03 MP) routes, 1536x864 (1.33 MP) answers HTTP 503 "no eligible provider". The provider PNG is the bake source under assets-src/art-src/; what ships is the WebP q85 plate named in `ship`.

request params
{
  "model": "tongyi/z-image-turbo",
  "prompt": "<base64 1168 chars>",
  "negative_prompt": "<base64 352 chars>",
  "n": 1,
  "size": "1344x768",
  "steps": 8,
  "cfg_scale": 1,
  "shift": 3,
  "seed": 20260803,
  "response_format": "b64_json"
}
keyart-menuimage
baked
keyart-menu
model
tongyi/z-image-turbo
gateway
MAYHEM_ZIMAGE_URL
endpoint
/images/generations
output
assets-src/art-src/keyart-menu.png
served
/assets/art/keyart-menu.webp
bytes
1.68 MB
generated in
22.7s
cost
$0.0033
usage
{"image":1,"step":32}
generated at
2026-07-27T12:11:36.351Z

Main menu key art (PLAN §7.2 "animated key-art menu backdrop with parallax dust"). The CSS dust parallax stays layered over this. Also the conditioning still for the intro cinematic (§3 coherence step 2). Size is capped at the provider ceiling measured during the style bible bake: 1344x768 (1.03 MP) routes, 1536x864 (1.33 MP) answers HTTP 503 "no eligible provider". The 2048x1152 masters the A1 brief asked for are therefore unroutable on this gateway. The provider PNG is the bake source under assets-src/art-src/; what ships is the WebP q85 plate named in `ship`.

request params
{
  "model": "tongyi/z-image-turbo",
  "prompt": "<base64 1217 chars>",
  "negative_prompt": "<base64 352 chars>",
  "n": 1,
  "size": "1344x768",
  "steps": 8,
  "cfg_scale": 1,
  "shift": 3,
  "seed": 20260799,
  "response_format": "b64_json"
}
still-loadingimage
baked
still-loading
model
tongyi/z-image-turbo
gateway
MAYHEM_ZIMAGE_URL
endpoint
/images/generations
output
assets-src/art-src/still-loading.png
served
/assets/art/still-loading.webp
bytes
1.66 MB
generated in
23.4s
cost
$0.0033
usage
{"image":1,"step":32}
generated at
2026-07-27T12:11:59.791Z

Loading still (PLAN §3 names loading screens in the Z-Image role). Size is capped at the provider ceiling measured during the style bible bake: 1344x768 (1.03 MP) routes, 1536x864 (1.33 MP) answers HTTP 503 "no eligible provider". The 2048x1152 masters the A1 brief asked for are therefore unroutable on this gateway. The provider PNG is the bake source under assets-src/art-src/; what ships is the WebP q85 plate named in `ship`.

request params
{
  "model": "tongyi/z-image-turbo",
  "prompt": "<base64 1061 chars>",
  "negative_prompt": "<base64 352 chars>",
  "n": 1,
  "size": "1344x768",
  "steps": 8,
  "cfg_scale": 1,
  "shift": 3,
  "seed": 20260800,
  "response_format": "b64_json"
}
still-victoryimage
baked
still-victory
model
tongyi/z-image-turbo
gateway
MAYHEM_ZIMAGE_URL
endpoint
/images/generations
output
assets-src/art-src/still-victory.png
served
/assets/art/still-victory.webp
bytes
1.70 MB
generated in
33.9s
cost
$0.0033
usage
{"image":1,"step":32}
generated at
2026-07-27T12:12:33.753Z

Victory still. PLAN §3 specifies per-house victory CLIPS on Sulphur at ~$2; a single shared still is the ≤$0.60 A1 answer and the clips remain a later wave. Size is capped at the provider ceiling measured during the style bible bake: 1344x768 (1.03 MP) routes, 1536x864 (1.33 MP) answers HTTP 503 "no eligible provider". The 2048x1152 masters the A1 brief asked for are therefore unroutable on this gateway. The provider PNG is the bake source under assets-src/art-src/; what ships is the WebP q85 plate named in `ship`.

request params
{
  "model": "tongyi/z-image-turbo",
  "prompt": "<base64 1086 chars>",
  "negative_prompt": "<base64 352 chars>",
  "n": 1,
  "size": "1344x768",
  "steps": 8,
  "cfg_scale": 1,
  "shift": 3,
  "seed": 20260801,
  "response_format": "b64_json"
}
still-defeatimage
baked
still-defeat
model
tongyi/z-image-turbo
gateway
MAYHEM_ZIMAGE_URL
endpoint
/images/generations
output
assets-src/art-src/still-defeat.png
served
/assets/art/still-defeat.webp
bytes
1.64 MB
generated in
26.3s
cost
$0.0033
usage
{"image":1,"step":32}
generated at
2026-07-27T12:13:00.157Z

Defeat still. Same reasoning as the victory still. Size is capped at the provider ceiling measured during the style bible bake: 1344x768 (1.03 MP) routes, 1536x864 (1.33 MP) answers HTTP 503 "no eligible provider". The 2048x1152 masters the A1 brief asked for are therefore unroutable on this gateway. The provider PNG is the bake source under assets-src/art-src/; what ships is the WebP q85 plate named in `ship`.

request params
{
  "model": "tongyi/z-image-turbo",
  "prompt": "<base64 1082 chars>",
  "negative_prompt": "<base64 352 chars>",
  "n": 1,
  "size": "1344x768",
  "steps": 8,
  "cfg_scale": 1,
  "shift": 3,
  "seed": 20260802,
  "response_format": "b64_json"
}
cine-introvideo
baked
model
SulphurAI/Sulphur-2-base
gateway
MAYHEM_SULPHUR_URL
endpoint
/videos
output
public/assets/video/cine-intro.mp4
served
/assets/video/cine-intro.mp4
bytes
284.8 KB
duration
5s
generated in
207.2s
cost
$0.1500
usage
{"frame":113,"video_second":5}
input_reference
conditioned on keyart-menu
generated at
2026-07-27T12:16:27.347Z

Intro cinematic, played once on the first menu visit. Conditioned on the menu key art so the clip inherits the approved look (§3 coherence step 2). The live Sulphur route caps video at 121 frames, so 5s x 24fps = 120 frames is the longest clip it accepts; the conditioning still is downscaled in memory to the route caps of 315392 px / 38181 B. LAST item in the bake order — it is the single most expensive row and is skipped if the budget is spent.

request params
{
  "model": "SulphurAI/Sulphur-2-base",
  "prompt": "slow cinematic push in across the dune sea towards the converging war machines, sand streaming off the dune crests, heat shimmer rising, dust motes catching the low amber sun, the storm wall building on the horizon",
  "negative_prompt": "<base64 352 chars>",
  "seconds": "5",
  "fps": 24,
  "size": "512x512",
  "seed": 20260805,
  "n": 1,
  "input_reference": {
    "image_url": "<base64 39739 chars>"
  }
}
mp-wartableimage
baked
mp-wartable
model
tongyi/z-image-turbo
gateway
MAYHEM_ZIMAGE_URL
endpoint
/images/generations
output
assets-src/art-src/mp-wartable.png
served
/assets/art/mp-wartable.webp
bytes
1.70 MB
generated in
86.2s
cost
$0.0033
usage
{"image":1,"step":32}
generated at
2026-08-03T20:54:44.469Z

M5 lobby dressing plate (MULTIPLAYER.md §2 M5, ruling 20). Same shape and same treatment as the title screen's dressing (keyart-menu): 1344x768, the provider ceiling measured during the style bible bake, with the subject weighted to the lower third and the frame edges and the centre left deliberately empty, because the screen's own chrome is what goes there. The provider PNG is the bake source under assets-src/art-src/; what ships is the WebP q85 plate named in `ship`. This one dresses the War Table (create) screen.

request params
{
  "model": "tongyi/z-image-turbo",
  "prompt": "<base64 1184 chars>",
  "negative_prompt": "<base64 352 chars>",
  "n": 1,
  "size": "1344x768",
  "steps": 8,
  "cfg_scale": 1,
  "shift": 3,
  "seed": 20260810,
  "response_format": "b64_json"
}
mp-frequencyimage
baked
mp-frequency
model
tongyi/z-image-turbo
gateway
MAYHEM_ZIMAGE_URL
endpoint
/images/generations
output
assets-src/art-src/mp-frequency.png
served
/assets/art/mp-frequency.webp
bytes
1.64 MB
generated in
21.1s
cost
$0.0033
usage
{"image":1,"step":32}
generated at
2026-08-03T20:55:07.610Z

M5 lobby dressing plate (MULTIPLAYER.md §2 M5, ruling 20). Same shape and same treatment as the title screen's dressing (keyart-menu): 1344x768, the provider ceiling measured during the style bible bake, with the subject weighted to the lower third and the frame edges and the centre left deliberately empty, because the screen's own chrome is what goes there. The provider PNG is the bake source under assets-src/art-src/; what ships is the WebP q85 plate named in `ship`. This one dresses the Frequency Board (discover) screen.

request params
{
  "model": "tongyi/z-image-turbo",
  "prompt": "<base64 1052 chars>",
  "negative_prompt": "<base64 352 chars>",
  "n": 1,
  "size": "1344x768",
  "steps": 8,
  "cfg_scale": 1,
  "shift": 3,
  "seed": 20260811,
  "response_format": "b64_json"
}
mp-chair-humanimage
baked
mp-chair-human
model
tongyi/z-image-turbo
gateway
MAYHEM_ZIMAGE_URL
endpoint
/images/generations
output
assets-src/art-src/mp-chair-human.png
served
/assets/art/mp-chair-human.webp
bytes
486.9 KB
generated in
8.2s
cost
$0.0017
usage
{"image":1,"step":16}
generated at
2026-08-03T20:55:38.931Z

M5 chair-state plate (MULTIPLAYER.md §2 M5). One plate per SeatKind, and the four are the four the compiler already knows (components/lobby/SeatIcons.tsx BY_KIND: helmet / chip / antenna / struck chair). It is the PHOTOGRAPHED OBJECT behind the glyph, not a second glyph: the inline SVGs stay the thing that reads at 13px on a row, and these dress the chair card. Prompted as a physical object on flat black in the emblem-falcon idiom, because the approved negative prompt bans "logo", "vector art" and "ui overlay" verbatim and is reused unchanged. 576x576 is the route floor (Z-Image advertises 576–2048 in multiples of 16) and a UI plate has no use for more. HUMAN — the helmet the seat glyph draws.

request params
{
  "model": "tongyi/z-image-turbo",
  "prompt": "<base64 1000 chars>",
  "negative_prompt": "<base64 352 chars>",
  "n": 1,
  "size": "576x576",
  "steps": 8,
  "cfg_scale": 1,
  "shift": 3,
  "seed": 20260812,
  "response_format": "b64_json"
}
mp-chair-houseimage
baked
mp-chair-house
model
tongyi/z-image-turbo
gateway
MAYHEM_ZIMAGE_URL
endpoint
/images/generations
output
assets-src/art-src/mp-chair-house.png
served
/assets/art/mp-chair-house.webp
bytes
494.8 KB
generated in
30.5s
cost
$0.0011
usage
{"image":1,"step":16}
generated at
2026-08-03T20:58:01.620Z

M5 chair-state plate (MULTIPLAYER.md §2 M5). One plate per SeatKind, and the four are the four the compiler already knows (components/lobby/SeatIcons.tsx BY_KIND: helmet / chip / antenna / struck chair). It is the PHOTOGRAPHED OBJECT behind the glyph, not a second glyph: the inline SVGs stay the thing that reads at 13px on a row, and these dress the chair card. Prompted as a physical object on flat black in the emblem-falcon idiom, because the approved negative prompt bans "logo", "vector art" and "ui overlay" verbatim and is reused unchanged. 576x576 is the route floor (Z-Image advertises 576–2048 in multiples of 16) and a UI plate has no use for more. HOUSE AI — the chip the seat glyph draws.

request params
{
  "model": "tongyi/z-image-turbo",
  "prompt": "<base64 1166 chars>",
  "negative_prompt": "<base64 352 chars>",
  "n": 1,
  "size": "576x576",
  "steps": 8,
  "cfg_scale": 1,
  "shift": 3,
  "seed": 20260892,
  "response_format": "b64_json"
}
mp-chair-uplinkimage
baked
mp-chair-uplink
model
tongyi/z-image-turbo
gateway
MAYHEM_ZIMAGE_URL
endpoint
/images/generations
output
assets-src/art-src/mp-chair-uplink.png
served
/assets/art/mp-chair-uplink.webp
bytes
527.7 KB
generated in
7.6s
cost
$0.0017
usage
{"image":1,"step":16}
generated at
2026-08-03T20:55:59.629Z

M5 chair-state plate (MULTIPLAYER.md §2 M5). One plate per SeatKind, and the four are the four the compiler already knows (components/lobby/SeatIcons.tsx BY_KIND: helmet / chip / antenna / struck chair). It is the PHOTOGRAPHED OBJECT behind the glyph, not a second glyph: the inline SVGs stay the thing that reads at 13px on a row, and these dress the chair card. Prompted as a physical object on flat black in the emblem-falcon idiom, because the approved negative prompt bans "logo", "vector art" and "ui overlay" verbatim and is reused unchanged. 576x576 is the route floor (Z-Image advertises 576–2048 in multiples of 16) and a UI plate has no use for more. UPLINK-AWAITING — the antenna the seat glyph draws, unmanned: the chair is minted and the agent has not authenticated yet.

request params
{
  "model": "tongyi/z-image-turbo",
  "prompt": "<base64 976 chars>",
  "negative_prompt": "<base64 352 chars>",
  "n": 1,
  "size": "576x576",
  "steps": 8,
  "cfg_scale": 1,
  "shift": 3,
  "seed": 20260814,
  "response_format": "b64_json"
}
mp-chair-closedimage
baked
mp-chair-closed
model
tongyi/z-image-turbo
gateway
MAYHEM_ZIMAGE_URL
endpoint
/images/generations
output
assets-src/art-src/mp-chair-closed.png
served
/assets/art/mp-chair-closed.webp
bytes
536.7 KB
generated in
28.9s
cost
$0.0011
usage
{"image":1,"step":16}
generated at
2026-08-03T20:58:32.573Z

M5 chair-state plate (MULTIPLAYER.md §2 M5). One plate per SeatKind, and the four are the four the compiler already knows (components/lobby/SeatIcons.tsx BY_KIND: helmet / chip / antenna / struck chair). It is the PHOTOGRAPHED OBJECT behind the glyph, not a second glyph: the inline SVGs stay the thing that reads at 13px on a row, and these dress the chair card. Prompted as a physical object on flat black in the emblem-falcon idiom, because the approved negative prompt bans "logo", "vector art" and "ui overlay" verbatim and is reused unchanged. 576x576 is the route floor (Z-Image advertises 576–2048 in multiples of 16) and a UI plate has no use for more. CLOSED — a chair that will not exist. The server drops closed chairs at mint (rooms/seats.ts: "A CHAIR IS NOT A SEAT"), so the plate has to read as refused rather than empty.

request params
{
  "model": "tongyi/z-image-turbo",
  "prompt": "<base64 1024 chars>",
  "negative_prompt": "<base64 352 chars>",
  "n": 1,
  "size": "576x576",
  "steps": 8,
  "cfg_scale": 1,
  "shift": 3,
  "seed": 20260893,
  "response_format": "b64_json"
}
mp-merc-frameimage
baked
mp-merc-frame
model
tongyi/z-image-turbo
gateway
MAYHEM_ZIMAGE_URL
endpoint
/images/generations
output
assets-src/art-src/mp-merc-frame.png
served
/assets/art/mp-merc-frame.webp
bytes
1.47 MB
generated in
86.3s
cost
$0.0033
usage
{"image":1,"step":32}
generated at
2026-08-03T21:00:00.986Z

M5 mercenary frame (MULTIPLAYER.md §2 M5: "the mercenary frame for uplink seats"). An uplink chair holds somebody else's AI: it has no persona and therefore no portrait, so this is what stands in the portrait slot. Same 832x1216 shape as the persona portraits by construction — it has to drop into the same hole without the card resizing — and deliberately EMPTY where a face would be, because the thing seated there is a stranger.

request params
{
  "model": "tongyi/z-image-turbo",
  "prompt": "<base64 1151 chars>",
  "negative_prompt": "<base64 352 chars>",
  "n": 1,
  "size": "832x1216",
  "steps": 8,
  "cfg_scale": 1,
  "shift": 3,
  "seed": 20260894,
  "response_format": "b64_json"
}
persona-rustwolfimage
baked
persona-rustwolf
model
tongyi/z-image-turbo
gateway
MAYHEM_ZIMAGE_URL
endpoint
/images/generations
output
assets-src/art-src/persona-rustwolf.png
served
/assets/art/persona-rustwolf.webp
bytes
1.69 MB
generated in
58.5s
cost
$0.0022
usage
{"image":1,"step":32}
generated at
2026-08-03T21:10:22.858Z

M5 persona portrait (MULTIPLAYER.md §2 M5, ruling 18). The manifest id IS the roster's `portraitSlot` (lib/shared/data/personas.ts asserts portraitSlot === `persona-${id}` at module load), so the bake and the roster cannot drift. 832x1216 matches the campaign's Strategist portraits — same slot shape, same 1.01 MP ceiling. The character is read off the persona's own doctrine sentence and dressed in one of the three approved house accents; the accent is COLOUR ONLY and binds nothing — a persona has no house in the sim. Doctrine: leads with the heaviest thing the works have finished and never gives ground back.

request params
{
  "model": "tongyi/z-image-turbo",
  "prompt": "<base64 1063 chars>",
  "negative_prompt": "<base64 352 chars>",
  "n": 1,
  "size": "832x1216",
  "steps": 8,
  "cfg_scale": 1,
  "shift": 3,
  "seed": 20260900,
  "response_format": "b64_json"
}
persona-greyhawkimage
baked
persona-greyhawk
model
tongyi/z-image-turbo
gateway
MAYHEM_ZIMAGE_URL
endpoint
/images/generations
output
assets-src/art-src/persona-greyhawk.png
served
/assets/art/persona-greyhawk.webp
bytes
1.73 MB
generated in
58.6s
cost
$0.0022
usage
{"image":1,"step":32}
generated at
2026-08-03T21:11:23.555Z

M5 persona portrait (MULTIPLAYER.md §2 M5, ruling 18). The manifest id IS the roster's `portraitSlot` (lib/shared/data/personas.ts asserts portraitSlot === `persona-${id}` at module load), so the bake and the roster cannot drift. 832x1216 matches the campaign's Strategist portraits — same slot shape, same 1.01 MP ceiling. The character is read off the persona's own doctrine sentence and dressed in one of the three approved house accents; the accent is COLOUR ONLY and binds nothing — a persona has no house in the sim. Doctrine: fights by the book, in clipped drill orders, and does not repeat itself.

request params
{
  "model": "tongyi/z-image-turbo",
  "prompt": "<base64 1046 chars>",
  "negative_prompt": "<base64 352 chars>",
  "n": 1,
  "size": "832x1216",
  "steps": 8,
  "cfg_scale": 1,
  "shift": 3,
  "seed": 20260901,
  "response_format": "b64_json"
}
persona-saltwidowimage
baked
persona-saltwidow
model
tongyi/z-image-turbo
gateway
MAYHEM_ZIMAGE_URL
endpoint
/images/generations
output
assets-src/art-src/persona-saltwidow.png
served
/assets/art/persona-saltwidow.webp
bytes
1.77 MB
generated in
59s
cost
$0.0022
usage
{"image":1,"step":32}
generated at
2026-08-03T21:12:24.665Z

M5 persona portrait (MULTIPLAYER.md §2 M5, ruling 18). The manifest id IS the roster's `portraitSlot` (lib/shared/data/personas.ts asserts portraitSlot === `persona-${id}` at module load), so the bake and the roster cannot drift. 832x1216 matches the campaign's Strategist portraits — same slot shape, same 1.01 MP ceiling. The character is read off the persona's own doctrine sentence and dressed in one of the three approved house accents; the accent is COLOUR ONLY and binds nothing — a persona has no house in the sim. Doctrine: fights the economy first and offers her condolences for every loss she arranged.

request params
{
  "model": "tongyi/z-image-turbo",
  "prompt": "<base64 1023 chars>",
  "negative_prompt": "<base64 352 chars>",
  "n": 1,
  "size": "832x1216",
  "steps": 8,
  "cfg_scale": 1,
  "shift": 3,
  "seed": 20260902,
  "response_format": "b64_json"
}
persona-nightglassimage
baked
persona-nightglass
model
tongyi/z-image-turbo
gateway
MAYHEM_ZIMAGE_URL
endpoint
/images/generations
output
assets-src/art-src/persona-nightglass.png
served
/assets/art/persona-nightglass.webp
bytes
1.76 MB
generated in
59.4s
cost
$0.0022
usage
{"image":1,"step":32}
generated at
2026-08-03T21:13:26.114Z

M5 persona portrait (MULTIPLAYER.md §2 M5, ruling 18). The manifest id IS the roster's `portraitSlot` (lib/shared/data/personas.ts asserts portraitSlot === `persona-${id}` at module load), so the bake and the roster cannot drift. 832x1216 matches the campaign's Strategist portraits — same slot shape, same 1.01 MP ceiling. The character is read off the persona's own doctrine sentence and dressed in one of the three approved house accents; the accent is COLOUR ONLY and binds nothing — a persona has no house in the sim. Doctrine: buys information before ground and narrates what it can see.

request params
{
  "model": "tongyi/z-image-turbo",
  "prompt": "<base64 1098 chars>",
  "negative_prompt": "<base64 352 chars>",
  "n": 1,
  "size": "832x1216",
  "steps": 8,
  "cfg_scale": 1,
  "shift": 3,
  "seed": 20260903,
  "response_format": "b64_json"
}
persona-heatbaronimage
baked
persona-heatbaron
model
tongyi/z-image-turbo
gateway
MAYHEM_ZIMAGE_URL
endpoint
/images/generations
output
assets-src/art-src/persona-heatbaron.png
served
/assets/art/persona-heatbaron.webp
bytes
1.74 MB
generated in
58.9s
cost
$0.0022
usage
{"image":1,"step":32}
generated at
2026-08-03T21:14:27.058Z

M5 persona portrait (MULTIPLAYER.md §2 M5, ruling 18). The manifest id IS the roster's `portraitSlot` (lib/shared/data/personas.ts asserts portraitSlot === `persona-${id}` at module load), so the bake and the roster cannot drift. 832x1216 matches the campaign's Strategist portraits — same slot shape, same 1.01 MP ceiling. The character is read off the persona's own doctrine sentence and dressed in one of the three approved house accents; the accent is COLOUR ONLY and binds nothing — a persona has no house in the sim. Doctrine: makes wealth the weapon and prices everything, including other people's armies.

request params
{
  "model": "tongyi/z-image-turbo",
  "prompt": "<base64 1064 chars>",
  "negative_prompt": "<base64 352 chars>",
  "n": 1,
  "size": "832x1216",
  "steps": 8,
  "cfg_scale": 1,
  "shift": 3,
  "seed": 20260904,
  "response_format": "b64_json"
}
persona-gravelkingimage
baked
persona-gravelking
model
tongyi/z-image-turbo
gateway
MAYHEM_ZIMAGE_URL
endpoint
/images/generations
output
assets-src/art-src/persona-gravelking.png
served
/assets/art/persona-gravelking.webp
bytes
1.66 MB
generated in
58.4s
cost
$0.0022
usage
{"image":1,"step":32}
generated at
2026-08-03T21:15:27.574Z

M5 persona portrait (MULTIPLAYER.md §2 M5, ruling 18). The manifest id IS the roster's `portraitSlot` (lib/shared/data/personas.ts asserts portraitSlot === `persona-${id}` at module load), so the bake and the roster cannot drift. 832x1216 matches the campaign's Strategist portraits — same slot shape, same 1.01 MP ceiling. The character is read off the persona's own doctrine sentence and dressed in one of the three approved house accents; the accent is COLOUR ONLY and binds nothing — a persona has no house in the sim. Doctrine: takes ground and keeps it, and measures the war in tiles held.

request params
{
  "model": "tongyi/z-image-turbo",
  "prompt": "<base64 1049 chars>",
  "negative_prompt": "<base64 352 chars>",
  "n": 1,
  "size": "832x1216",
  "steps": 8,
  "cfg_scale": 1,
  "shift": 3,
  "seed": 20260905,
  "response_format": "b64_json"
}
persona-dunepriestimage
baked
persona-dunepriest
model
tongyi/z-image-turbo
gateway
MAYHEM_ZIMAGE_URL
endpoint
/images/generations
output
assets-src/art-src/persona-dunepriest.png
served
/assets/art/persona-dunepriest.webp
bytes
1.69 MB
generated in
58.3s
cost
$0.0022
usage
{"image":1,"step":32}
generated at
2026-08-03T21:16:27.986Z

M5 persona portrait (MULTIPLAYER.md §2 M5, ruling 18). The manifest id IS the roster's `portraitSlot` (lib/shared/data/personas.ts asserts portraitSlot === `persona-${id}` at module load), so the bake and the roster cannot drift. 832x1216 matches the campaign's Strategist portraits — same slot shape, same 1.01 MP ceiling. The character is read off the persona's own doctrine sentence and dressed in one of the three approved house accents; the accent is COLOUR ONLY and binds nothing — a persona has no house in the sim. Doctrine: spends men like ammunition and preaches a little before each wave.

request params
{
  "model": "tongyi/z-image-turbo",
  "prompt": "<base64 1041 chars>",
  "negative_prompt": "<base64 352 chars>",
  "n": 1,
  "size": "832x1216",
  "steps": 8,
  "cfg_scale": 1,
  "shift": 3,
  "seed": 20260906,
  "response_format": "b64_json"
}
persona-drymouthimage
baked
persona-drymouth
model
tongyi/z-image-turbo
gateway
MAYHEM_ZIMAGE_URL
endpoint
/images/generations
output
assets-src/art-src/persona-drymouth.png
served
/assets/art/persona-drymouth.webp
bytes
1.74 MB
generated in
59.1s
cost
$0.0022
usage
{"image":1,"step":32}
generated at
2026-08-03T21:17:29.112Z

M5 persona portrait (MULTIPLAYER.md §2 M5, ruling 18). The manifest id IS the roster's `portraitSlot` (lib/shared/data/personas.ts asserts portraitSlot === `persona-${id}` at module load), so the bake and the roster cannot drift. 832x1216 matches the campaign's Strategist portraits — same slot shape, same 1.01 MP ceiling. The character is read off the persona's own doctrine sentence and dressed in one of the three approved house accents; the accent is COLOUR ONLY and binds nothing — a persona has no house in the sim. Doctrine: never takes a pitched battle, answers in dry one-liners, always sounds thirsty.

request params
{
  "model": "tongyi/z-image-turbo",
  "prompt": "<base64 1084 chars>",
  "negative_prompt": "<base64 352 chars>",
  "n": 1,
  "size": "832x1216",
  "steps": 8,
  "cfg_scale": 1,
  "shift": 3,
  "seed": 20260907,
  "response_format": "b64_json"
}
persona-ironnurseimage
baked
persona-ironnurse
model
tongyi/z-image-turbo
gateway
MAYHEM_ZIMAGE_URL
endpoint
/images/generations
output
assets-src/art-src/persona-ironnurse.png
served
/assets/art/persona-ironnurse.webp
bytes
1.65 MB
generated in
58.4s
cost
$0.0022
usage
{"image":1,"step":32}
generated at
2026-08-03T21:18:29.593Z

M5 persona portrait (MULTIPLAYER.md §2 M5, ruling 18). The manifest id IS the roster's `portraitSlot` (lib/shared/data/personas.ts asserts portraitSlot === `persona-${id}` at module load), so the bake and the roster cannot drift. 832x1216 matches the campaign's Strategist portraits — same slot shape, same 1.01 MP ceiling. The character is read off the persona's own doctrine sentence and dressed in one of the three approved house accents; the accent is COLOUR ONLY and binds nothing — a persona has no house in the sim. Doctrine: lets nothing of hers die of neglect and talks about machines like children.

request params
{
  "model": "tongyi/z-image-turbo",
  "prompt": "<base64 1118 chars>",
  "negative_prompt": "<base64 352 chars>",
  "n": 1,
  "size": "832x1216",
  "steps": 8,
  "cfg_scale": 1,
  "shift": 3,
  "seed": 20260908,
  "response_format": "b64_json"
}
persona-tinwardenimage
baked
persona-tinwarden
model
tongyi/z-image-turbo
gateway
MAYHEM_ZIMAGE_URL
endpoint
/images/generations
output
assets-src/art-src/persona-tinwarden.png
served
/assets/art/persona-tinwarden.webp
bytes
1.76 MB
generated in
59.3s
cost
$0.0022
usage
{"image":1,"step":32}
generated at
2026-08-03T21:19:30.948Z

M5 persona portrait (MULTIPLAYER.md §2 M5, ruling 18). The manifest id IS the roster's `portraitSlot` (lib/shared/data/personas.ts asserts portraitSlot === `persona-${id}` at module load), so the bake and the roster cannot drift. 832x1216 matches the campaign's Strategist portraits — same slot shape, same 1.01 MP ceiling. The character is read off the persona's own doctrine sentence and dressed in one of the three approved house accents; the accent is COLOUR ONLY and binds nothing — a persona has no house in the sim. Doctrine: runs the war to a timetable and is never late.

request params
{
  "model": "tongyi/z-image-turbo",
  "prompt": "<base64 1068 chars>",
  "negative_prompt": "<base64 352 chars>",
  "n": 1,
  "size": "832x1216",
  "steps": 8,
  "cfg_scale": 1,
  "shift": 3,
  "seed": 20260909,
  "response_format": "b64_json"
}
emblem-00image
baked
emblem-00
model
tongyi/z-image-turbo
gateway
MAYHEM_ZIMAGE_URL
endpoint
/images/generations
output
assets-src/art-src/emblem-00.png
served
/assets/art/emblem-00.webp
bytes
449.6 KB
generated in
14.8s
cost
$0.0011
usage
{"image":1,"step":16}
generated at
2026-08-03T21:20:14.019Z

M5 room emblem, slot 00 of 30 (MULTIPLAYER.md §2 M5: "~30 room emblems; a room shows the emblem picked by hash of its code"). THE HASH RECIPE — the stable, documented mapping from a room code to a slot. It is recorded here rather than in a shared module because M5 bakes the assets and a later agent wires the UI; that agent should lift this function verbatim rather than invent a second one, because two recipes mean the same room wears two different crests. // FNV-1a over the FOLDED code, so DESERT-COBRA, desert-cobra and 'desert cobra' — // one room by lib/server/rooms/codes.ts codeKey() — are one emblem. Folding // first is the whole point: the display form is not the identity. export function roomEmblemSlot(code: string): string { const key = codeKey(code) let h = 0x811c9dc5 for (let i = 0; i < key.length; i++) { h ^= key.charCodeAt(i) h = Math.imul(h, 0x01000193) >>> 0 } return 'emblem-' + String(h % 30).padStart(2, '0') } Total and pure: any string lands on a slot, the slot always exists (30 rows, 00–29), and the same code always lands on the same one across processes and restarts — no Math.random, no Date, no store read. scripts/qa-art.ts rule C10 runs this recipe over the whole minted code space and gates both properties (in range, and every slot reachable). 576x576 is the route floor and a lobby badge has no use for more; the family ships WebP q85 rather than the A1 emblems' PNG because these are thirty plates rather than three — thirty 1.5 MB masters is a 45 MB lobby — and the alpha the A1 note protects does not exist in a Z-Image master anyway (they decode colour type 2, RGB).

request params
{
  "model": "tongyi/z-image-turbo",
  "prompt": "<base64 910 chars>",
  "negative_prompt": "<base64 352 chars>",
  "n": 1,
  "size": "576x576",
  "steps": 8,
  "cfg_scale": 1,
  "shift": 3,
  "seed": 20260840,
  "response_format": "b64_json"
}
emblem-01image
baked
emblem-01
model
tongyi/z-image-turbo
gateway
MAYHEM_ZIMAGE_URL
endpoint
/images/generations
output
assets-src/art-src/emblem-01.png
served
/assets/art/emblem-01.webp
bytes
277.7 KB
generated in
14.4s
cost
$0.0011
usage
{"image":1,"step":16}
generated at
2026-08-03T21:20:30.408Z

M5 room emblem, one slot of 30 (MULTIPLAYER.md §2 M5). The family is arbitrary by construction — a room is dealt one by the hash of its code, so no slot means anything and no slot may read as a HOUSE crest (falcon, jackal, serpent are deliberately absent). The hash recipe is documented once, on emblem-00.

request params
{
  "model": "tongyi/z-image-turbo",
  "prompt": "<base64 899 chars>",
  "negative_prompt": "<base64 352 chars>",
  "n": 1,
  "size": "576x576",
  "steps": 8,
  "cfg_scale": 1,
  "shift": 3,
  "seed": 20260841,
  "response_format": "b64_json"
}
emblem-02image
baked
emblem-02
model
tongyi/z-image-turbo
gateway
MAYHEM_ZIMAGE_URL
endpoint
/images/generations
output
assets-src/art-src/emblem-02.png
served
/assets/art/emblem-02.webp
bytes
367.5 KB
generated in
14.6s
cost
$0.0011
usage
{"image":1,"step":16}
generated at
2026-08-03T21:20:47.074Z

M5 room emblem, one slot of 30 (MULTIPLAYER.md §2 M5). The family is arbitrary by construction — a room is dealt one by the hash of its code, so no slot means anything and no slot may read as a HOUSE crest (falcon, jackal, serpent are deliberately absent). The hash recipe is documented once, on emblem-00.

request params
{
  "model": "tongyi/z-image-turbo",
  "prompt": "<base64 908 chars>",
  "negative_prompt": "<base64 352 chars>",
  "n": 1,
  "size": "576x576",
  "steps": 8,
  "cfg_scale": 1,
  "shift": 3,
  "seed": 20260842,
  "response_format": "b64_json"
}
emblem-03image
baked
emblem-03
model
tongyi/z-image-turbo
gateway
MAYHEM_ZIMAGE_URL
endpoint
/images/generations
output
assets-src/art-src/emblem-03.png
served
/assets/art/emblem-03.webp
bytes
199.3 KB
generated in
14.2s
cost
$0.0011
usage
{"image":1,"step":16}
generated at
2026-08-03T21:21:03.318Z

M5 room emblem, one slot of 30 (MULTIPLAYER.md §2 M5). The family is arbitrary by construction — a room is dealt one by the hash of its code, so no slot means anything and no slot may read as a HOUSE crest (falcon, jackal, serpent are deliberately absent). The hash recipe is documented once, on emblem-00.

request params
{
  "model": "tongyi/z-image-turbo",
  "prompt": "<base64 898 chars>",
  "negative_prompt": "<base64 352 chars>",
  "n": 1,
  "size": "576x576",
  "steps": 8,
  "cfg_scale": 1,
  "shift": 3,
  "seed": 20260843,
  "response_format": "b64_json"
}
emblem-04image
baked
emblem-04
model
tongyi/z-image-turbo
gateway
MAYHEM_ZIMAGE_URL
endpoint
/images/generations
output
assets-src/art-src/emblem-04.png
served
/assets/art/emblem-04.webp
bytes
356.6 KB
generated in
15s
cost
$0.0011
usage
{"image":1,"step":16}
generated at
2026-08-03T21:34:35.661Z

M5 room emblem, one slot of 30 (MULTIPLAYER.md §2 M5). The family is arbitrary by construction — a room is dealt one by the hash of its code, so no slot means anything and no slot may read as a HOUSE crest (falcon, jackal, serpent are deliberately absent). The hash recipe is documented once, on emblem-00.

request params
{
  "model": "tongyi/z-image-turbo",
  "prompt": "<base64 984 chars>",
  "negative_prompt": "<base64 352 chars>",
  "n": 1,
  "size": "576x576",
  "steps": 8,
  "cfg_scale": 1,
  "shift": 3,
  "seed": 20260920,
  "response_format": "b64_json"
}
emblem-05image
baked
emblem-05
model
tongyi/z-image-turbo
gateway
MAYHEM_ZIMAGE_URL
endpoint
/images/generations
output
assets-src/art-src/emblem-05.png
served
/assets/art/emblem-05.webp
bytes
308.3 KB
generated in
14.8s
cost
$0.0011
usage
{"image":1,"step":16}
generated at
2026-08-03T21:34:52.530Z

M5 room emblem, one slot of 30 (MULTIPLAYER.md §2 M5). The family is arbitrary by construction — a room is dealt one by the hash of its code, so no slot means anything and no slot may read as a HOUSE crest (falcon, jackal, serpent are deliberately absent). The hash recipe is documented once, on emblem-00.

request params
{
  "model": "tongyi/z-image-turbo",
  "prompt": "<base64 970 chars>",
  "negative_prompt": "<base64 352 chars>",
  "n": 1,
  "size": "576x576",
  "steps": 8,
  "cfg_scale": 1,
  "shift": 3,
  "seed": 20260921,
  "response_format": "b64_json"
}
emblem-06image
baked
emblem-06
model
tongyi/z-image-turbo
gateway
MAYHEM_ZIMAGE_URL
endpoint
/images/generations
output
assets-src/art-src/emblem-06.png
served
/assets/art/emblem-06.webp
bytes
305.8 KB
generated in
14.6s
cost
$0.0011
usage
{"image":1,"step":16}
generated at
2026-08-03T21:35:09.107Z

M5 room emblem, one slot of 30 (MULTIPLAYER.md §2 M5). The family is arbitrary by construction — a room is dealt one by the hash of its code, so no slot means anything and no slot may read as a HOUSE crest (falcon, jackal, serpent are deliberately absent). The hash recipe is documented once, on emblem-00.

request params
{
  "model": "tongyi/z-image-turbo",
  "prompt": "<base64 961 chars>",
  "negative_prompt": "<base64 352 chars>",
  "n": 1,
  "size": "576x576",
  "steps": 8,
  "cfg_scale": 1,
  "shift": 3,
  "seed": 20260922,
  "response_format": "b64_json"
}
emblem-07image
baked
emblem-07
model
tongyi/z-image-turbo
gateway
MAYHEM_ZIMAGE_URL
endpoint
/images/generations
output
assets-src/art-src/emblem-07.png
served
/assets/art/emblem-07.webp
bytes
329.6 KB
generated in
14.2s
cost
$0.0011
usage
{"image":1,"step":16}
generated at
2026-08-03T21:35:25.346Z

M5 room emblem, one slot of 30 (MULTIPLAYER.md §2 M5). The family is arbitrary by construction — a room is dealt one by the hash of its code, so no slot means anything and no slot may read as a HOUSE crest (falcon, jackal, serpent are deliberately absent). The hash recipe is documented once, on emblem-00.

request params
{
  "model": "tongyi/z-image-turbo",
  "prompt": "<base64 933 chars>",
  "negative_prompt": "<base64 352 chars>",
  "n": 1,
  "size": "576x576",
  "steps": 8,
  "cfg_scale": 1,
  "shift": 3,
  "seed": 20260923,
  "response_format": "b64_json"
}
emblem-08image
baked
emblem-08
model
tongyi/z-image-turbo
gateway
MAYHEM_ZIMAGE_URL
endpoint
/images/generations
output
assets-src/art-src/emblem-08.png
served
/assets/art/emblem-08.webp
bytes
347.8 KB
generated in
14.3s
cost
$0.0011
usage
{"image":1,"step":16}
generated at
2026-08-03T21:22:26.872Z

M5 room emblem, one slot of 30 (MULTIPLAYER.md §2 M5). The family is arbitrary by construction — a room is dealt one by the hash of its code, so no slot means anything and no slot may read as a HOUSE crest (falcon, jackal, serpent are deliberately absent). The hash recipe is documented once, on emblem-00.

request params
{
  "model": "tongyi/z-image-turbo",
  "prompt": "<base64 910 chars>",
  "negative_prompt": "<base64 352 chars>",
  "n": 1,
  "size": "576x576",
  "steps": 8,
  "cfg_scale": 1,
  "shift": 3,
  "seed": 20260848,
  "response_format": "b64_json"
}
emblem-09image
baked
emblem-09
model
tongyi/z-image-turbo
gateway
MAYHEM_ZIMAGE_URL
endpoint
/images/generations
output
assets-src/art-src/emblem-09.png
served
/assets/art/emblem-09.webp
bytes
336.3 KB
generated in
14.5s
cost
$0.0011
usage
{"image":1,"step":16}
generated at
2026-08-03T21:22:43.352Z

M5 room emblem, one slot of 30 (MULTIPLAYER.md §2 M5). The family is arbitrary by construction — a room is dealt one by the hash of its code, so no slot means anything and no slot may read as a HOUSE crest (falcon, jackal, serpent are deliberately absent). The hash recipe is documented once, on emblem-00.

request params
{
  "model": "tongyi/z-image-turbo",
  "prompt": "<base64 916 chars>",
  "negative_prompt": "<base64 352 chars>",
  "n": 1,
  "size": "576x576",
  "steps": 8,
  "cfg_scale": 1,
  "shift": 3,
  "seed": 20260849,
  "response_format": "b64_json"
}
emblem-10image
baked
emblem-10
model
tongyi/z-image-turbo
gateway
MAYHEM_ZIMAGE_URL
endpoint
/images/generations
output
assets-src/art-src/emblem-10.png
served
/assets/art/emblem-10.webp
bytes
344.6 KB
generated in
15.7s
cost
$0.0011
usage
{"image":1,"step":16}
generated at
2026-08-03T21:23:01.052Z

M5 room emblem, one slot of 30 (MULTIPLAYER.md §2 M5). The family is arbitrary by construction — a room is dealt one by the hash of its code, so no slot means anything and no slot may read as a HOUSE crest (falcon, jackal, serpent are deliberately absent). The hash recipe is documented once, on emblem-00.

request params
{
  "model": "tongyi/z-image-turbo",
  "prompt": "<base64 904 chars>",
  "negative_prompt": "<base64 352 chars>",
  "n": 1,
  "size": "576x576",
  "steps": 8,
  "cfg_scale": 1,
  "shift": 3,
  "seed": 20260850,
  "response_format": "b64_json"
}
emblem-11image
baked
emblem-11
model
tongyi/z-image-turbo
gateway
MAYHEM_ZIMAGE_URL
endpoint
/images/generations
output
assets-src/art-src/emblem-11.png
served
/assets/art/emblem-11.webp
bytes
292.4 KB
generated in
14.4s
cost
$0.0011
usage
{"image":1,"step":16}
generated at
2026-08-03T21:35:41.809Z

M5 room emblem, one slot of 30 (MULTIPLAYER.md §2 M5). The family is arbitrary by construction — a room is dealt one by the hash of its code, so no slot means anything and no slot may read as a HOUSE crest (falcon, jackal, serpent are deliberately absent). The hash recipe is documented once, on emblem-00.

request params
{
  "model": "tongyi/z-image-turbo",
  "prompt": "<base64 942 chars>",
  "negative_prompt": "<base64 352 chars>",
  "n": 1,
  "size": "576x576",
  "steps": 8,
  "cfg_scale": 1,
  "shift": 3,
  "seed": 20260924,
  "response_format": "b64_json"
}
emblem-12image
baked
emblem-12
model
tongyi/z-image-turbo
gateway
MAYHEM_ZIMAGE_URL
endpoint
/images/generations
output
assets-src/art-src/emblem-12.png
served
/assets/art/emblem-12.webp
bytes
403.0 KB
generated in
14.4s
cost
$0.0011
usage
{"image":1,"step":16}
generated at
2026-08-03T21:24:09.550Z

M5 room emblem, one slot of 30 (MULTIPLAYER.md §2 M5). The family is arbitrary by construction — a room is dealt one by the hash of its code, so no slot means anything and no slot may read as a HOUSE crest (falcon, jackal, serpent are deliberately absent). The hash recipe is documented once, on emblem-00.

request params
{
  "model": "tongyi/z-image-turbo",
  "prompt": "<base64 906 chars>",
  "negative_prompt": "<base64 352 chars>",
  "n": 1,
  "size": "576x576",
  "steps": 8,
  "cfg_scale": 1,
  "shift": 3,
  "seed": 20260852,
  "response_format": "b64_json"
}
emblem-13image
baked
emblem-13
model
tongyi/z-image-turbo
gateway
MAYHEM_ZIMAGE_URL
endpoint
/images/generations
output
assets-src/art-src/emblem-13.png
served
/assets/art/emblem-13.webp
bytes
381.3 KB
generated in
15.3s
cost
$0.0011
usage
{"image":1,"step":16}
generated at
2026-08-03T21:24:26.842Z

M5 room emblem, one slot of 30 (MULTIPLAYER.md §2 M5). The family is arbitrary by construction — a room is dealt one by the hash of its code, so no slot means anything and no slot may read as a HOUSE crest (falcon, jackal, serpent are deliberately absent). The hash recipe is documented once, on emblem-00.

request params
{
  "model": "tongyi/z-image-turbo",
  "prompt": "<base64 913 chars>",
  "negative_prompt": "<base64 352 chars>",
  "n": 1,
  "size": "576x576",
  "steps": 8,
  "cfg_scale": 1,
  "shift": 3,
  "seed": 20260853,
  "response_format": "b64_json"
}
emblem-14image
baked
emblem-14
model
tongyi/z-image-turbo
gateway
MAYHEM_ZIMAGE_URL
endpoint
/images/generations
output
assets-src/art-src/emblem-14.png
served
/assets/art/emblem-14.webp
bytes
418.0 KB
generated in
14.1s
cost
$0.0011
usage
{"image":1,"step":16}
generated at
2026-08-03T21:24:42.948Z

M5 room emblem, one slot of 30 (MULTIPLAYER.md §2 M5). The family is arbitrary by construction — a room is dealt one by the hash of its code, so no slot means anything and no slot may read as a HOUSE crest (falcon, jackal, serpent are deliberately absent). The hash recipe is documented once, on emblem-00.

request params
{
  "model": "tongyi/z-image-turbo",
  "prompt": "<base64 911 chars>",
  "negative_prompt": "<base64 352 chars>",
  "n": 1,
  "size": "576x576",
  "steps": 8,
  "cfg_scale": 1,
  "shift": 3,
  "seed": 20260854,
  "response_format": "b64_json"
}
emblem-15image
baked
emblem-15
model
tongyi/z-image-turbo
gateway
MAYHEM_ZIMAGE_URL
endpoint
/images/generations
output
assets-src/art-src/emblem-15.png
served
/assets/art/emblem-15.webp
bytes
354.4 KB
generated in
14.7s
cost
$0.0011
usage
{"image":1,"step":16}
generated at
2026-08-03T21:24:59.637Z

M5 room emblem, one slot of 30 (MULTIPLAYER.md §2 M5). The family is arbitrary by construction — a room is dealt one by the hash of its code, so no slot means anything and no slot may read as a HOUSE crest (falcon, jackal, serpent are deliberately absent). The hash recipe is documented once, on emblem-00.

request params
{
  "model": "tongyi/z-image-turbo",
  "prompt": "<base64 897 chars>",
  "negative_prompt": "<base64 352 chars>",
  "n": 1,
  "size": "576x576",
  "steps": 8,
  "cfg_scale": 1,
  "shift": 3,
  "seed": 20260855,
  "response_format": "b64_json"
}
emblem-16image
baked
emblem-16
model
tongyi/z-image-turbo
gateway
MAYHEM_ZIMAGE_URL
endpoint
/images/generations
output
assets-src/art-src/emblem-16.png
served
/assets/art/emblem-16.webp
bytes
332.9 KB
generated in
14.9s
cost
$0.0011
usage
{"image":1,"step":16}
generated at
2026-08-03T21:25:16.568Z

M5 room emblem, one slot of 30 (MULTIPLAYER.md §2 M5). The family is arbitrary by construction — a room is dealt one by the hash of its code, so no slot means anything and no slot may read as a HOUSE crest (falcon, jackal, serpent are deliberately absent). The hash recipe is documented once, on emblem-00.

request params
{
  "model": "tongyi/z-image-turbo",
  "prompt": "<base64 910 chars>",
  "negative_prompt": "<base64 352 chars>",
  "n": 1,
  "size": "576x576",
  "steps": 8,
  "cfg_scale": 1,
  "shift": 3,
  "seed": 20260856,
  "response_format": "b64_json"
}
emblem-17image
baked
emblem-17
model
tongyi/z-image-turbo
gateway
MAYHEM_ZIMAGE_URL
endpoint
/images/generations
output
assets-src/art-src/emblem-17.png
served
/assets/art/emblem-17.webp
bytes
330.9 KB
generated in
14.3s
cost
$0.0011
usage
{"image":1,"step":16}
generated at
2026-08-03T21:25:32.898Z

M5 room emblem, one slot of 30 (MULTIPLAYER.md §2 M5). The family is arbitrary by construction — a room is dealt one by the hash of its code, so no slot means anything and no slot may read as a HOUSE crest (falcon, jackal, serpent are deliberately absent). The hash recipe is documented once, on emblem-00.

request params
{
  "model": "tongyi/z-image-turbo",
  "prompt": "<base64 897 chars>",
  "negative_prompt": "<base64 352 chars>",
  "n": 1,
  "size": "576x576",
  "steps": 8,
  "cfg_scale": 1,
  "shift": 3,
  "seed": 20260857,
  "response_format": "b64_json"
}
emblem-18image
baked
emblem-18
model
tongyi/z-image-turbo
gateway
MAYHEM_ZIMAGE_URL
endpoint
/images/generations
output
assets-src/art-src/emblem-18.png
served
/assets/art/emblem-18.webp
bytes
459.3 KB
generated in
14.4s
cost
$0.0011
usage
{"image":1,"step":16}
generated at
2026-08-03T21:25:49.354Z

M5 room emblem, one slot of 30 (MULTIPLAYER.md §2 M5). The family is arbitrary by construction — a room is dealt one by the hash of its code, so no slot means anything and no slot may read as a HOUSE crest (falcon, jackal, serpent are deliberately absent). The hash recipe is documented once, on emblem-00.

request params
{
  "model": "tongyi/z-image-turbo",
  "prompt": "<base64 905 chars>",
  "negative_prompt": "<base64 352 chars>",
  "n": 1,
  "size": "576x576",
  "steps": 8,
  "cfg_scale": 1,
  "shift": 3,
  "seed": 20260858,
  "response_format": "b64_json"
}
emblem-19image
baked
emblem-19
model
tongyi/z-image-turbo
gateway
MAYHEM_ZIMAGE_URL
endpoint
/images/generations
output
assets-src/art-src/emblem-19.png
served
/assets/art/emblem-19.webp
bytes
453.9 KB
generated in
14.7s
cost
$0.0011
usage
{"image":1,"step":16}
generated at
2026-08-03T21:26:06.091Z

M5 room emblem, one slot of 30 (MULTIPLAYER.md §2 M5). The family is arbitrary by construction — a room is dealt one by the hash of its code, so no slot means anything and no slot may read as a HOUSE crest (falcon, jackal, serpent are deliberately absent). The hash recipe is documented once, on emblem-00.

request params
{
  "model": "tongyi/z-image-turbo",
  "prompt": "<base64 913 chars>",
  "negative_prompt": "<base64 352 chars>",
  "n": 1,
  "size": "576x576",
  "steps": 8,
  "cfg_scale": 1,
  "shift": 3,
  "seed": 20260859,
  "response_format": "b64_json"
}
emblem-20image
baked
emblem-20
model
tongyi/z-image-turbo
gateway
MAYHEM_ZIMAGE_URL
endpoint
/images/generations
output
assets-src/art-src/emblem-20.png
served
/assets/art/emblem-20.webp
bytes
413.9 KB
generated in
15.5s
cost
$0.0011
usage
{"image":1,"step":16}
generated at
2026-08-03T21:35:59.319Z

M5 room emblem, one slot of 30 (MULTIPLAYER.md §2 M5). The family is arbitrary by construction — a room is dealt one by the hash of its code, so no slot means anything and no slot may read as a HOUSE crest (falcon, jackal, serpent are deliberately absent). The hash recipe is documented once, on emblem-00.

request params
{
  "model": "tongyi/z-image-turbo",
  "prompt": "<base64 950 chars>",
  "negative_prompt": "<base64 352 chars>",
  "n": 1,
  "size": "576x576",
  "steps": 8,
  "cfg_scale": 1,
  "shift": 3,
  "seed": 20260925,
  "response_format": "b64_json"
}
emblem-21image
baked
emblem-21
model
tongyi/z-image-turbo
gateway
MAYHEM_ZIMAGE_URL
endpoint
/images/generations
output
assets-src/art-src/emblem-21.png
served
/assets/art/emblem-21.webp
bytes
463.3 KB
generated in
14.8s
cost
$0.0011
usage
{"image":1,"step":16}
generated at
2026-08-03T21:26:39.915Z

M5 room emblem, one slot of 30 (MULTIPLAYER.md §2 M5). The family is arbitrary by construction — a room is dealt one by the hash of its code, so no slot means anything and no slot may read as a HOUSE crest (falcon, jackal, serpent are deliberately absent). The hash recipe is documented once, on emblem-00.

request params
{
  "model": "tongyi/z-image-turbo",
  "prompt": "<base64 914 chars>",
  "negative_prompt": "<base64 352 chars>",
  "n": 1,
  "size": "576x576",
  "steps": 8,
  "cfg_scale": 1,
  "shift": 3,
  "seed": 20260861,
  "response_format": "b64_json"
}
emblem-22image
baked
emblem-22
model
tongyi/z-image-turbo
gateway
MAYHEM_ZIMAGE_URL
endpoint
/images/generations
output
assets-src/art-src/emblem-22.png
served
/assets/art/emblem-22.webp
bytes
392.8 KB
generated in
14.3s
cost
$0.0011
usage
{"image":1,"step":16}
generated at
2026-08-03T21:26:56.288Z

M5 room emblem, one slot of 30 (MULTIPLAYER.md §2 M5). The family is arbitrary by construction — a room is dealt one by the hash of its code, so no slot means anything and no slot may read as a HOUSE crest (falcon, jackal, serpent are deliberately absent). The hash recipe is documented once, on emblem-00.

request params
{
  "model": "tongyi/z-image-turbo",
  "prompt": "<base64 900 chars>",
  "negative_prompt": "<base64 352 chars>",
  "n": 1,
  "size": "576x576",
  "steps": 8,
  "cfg_scale": 1,
  "shift": 3,
  "seed": 20260862,
  "response_format": "b64_json"
}
emblem-23image
baked
emblem-23
model
tongyi/z-image-turbo
gateway
MAYHEM_ZIMAGE_URL
endpoint
/images/generations
output
assets-src/art-src/emblem-23.png
served
/assets/art/emblem-23.webp
bytes
410.1 KB
generated in
14.2s
cost
$0.0011
usage
{"image":1,"step":16}
generated at
2026-08-03T21:27:12.550Z

M5 room emblem, one slot of 30 (MULTIPLAYER.md §2 M5). The family is arbitrary by construction — a room is dealt one by the hash of its code, so no slot means anything and no slot may read as a HOUSE crest (falcon, jackal, serpent are deliberately absent). The hash recipe is documented once, on emblem-00.

request params
{
  "model": "tongyi/z-image-turbo",
  "prompt": "<base64 912 chars>",
  "negative_prompt": "<base64 352 chars>",
  "n": 1,
  "size": "576x576",
  "steps": 8,
  "cfg_scale": 1,
  "shift": 3,
  "seed": 20260863,
  "response_format": "b64_json"
}
emblem-24image
baked
emblem-24
model
tongyi/z-image-turbo
gateway
MAYHEM_ZIMAGE_URL
endpoint
/images/generations
output
assets-src/art-src/emblem-24.png
served
/assets/art/emblem-24.webp
bytes
294.1 KB
generated in
14.9s
cost
$0.0011
usage
{"image":1,"step":16}
generated at
2026-08-03T21:27:29.539Z

M5 room emblem, one slot of 30 (MULTIPLAYER.md §2 M5). The family is arbitrary by construction — a room is dealt one by the hash of its code, so no slot means anything and no slot may read as a HOUSE crest (falcon, jackal, serpent are deliberately absent). The hash recipe is documented once, on emblem-00.

request params
{
  "model": "tongyi/z-image-turbo",
  "prompt": "<base64 907 chars>",
  "negative_prompt": "<base64 352 chars>",
  "n": 1,
  "size": "576x576",
  "steps": 8,
  "cfg_scale": 1,
  "shift": 3,
  "seed": 20260864,
  "response_format": "b64_json"
}
emblem-25image
baked
emblem-25
model
tongyi/z-image-turbo
gateway
MAYHEM_ZIMAGE_URL
endpoint
/images/generations
output
assets-src/art-src/emblem-25.png
served
/assets/art/emblem-25.webp
bytes
260.0 KB
generated in
14.4s
cost
$0.0011
usage
{"image":1,"step":16}
generated at
2026-08-03T21:27:45.970Z

M5 room emblem, one slot of 30 (MULTIPLAYER.md §2 M5). The family is arbitrary by construction — a room is dealt one by the hash of its code, so no slot means anything and no slot may read as a HOUSE crest (falcon, jackal, serpent are deliberately absent). The hash recipe is documented once, on emblem-00.

request params
{
  "model": "tongyi/z-image-turbo",
  "prompt": "<base64 919 chars>",
  "negative_prompt": "<base64 352 chars>",
  "n": 1,
  "size": "576x576",
  "steps": 8,
  "cfg_scale": 1,
  "shift": 3,
  "seed": 20260865,
  "response_format": "b64_json"
}
emblem-26image
baked
emblem-26
model
tongyi/z-image-turbo
gateway
MAYHEM_ZIMAGE_URL
endpoint
/images/generations
output
assets-src/art-src/emblem-26.png
served
/assets/art/emblem-26.webp
bytes
324.7 KB
generated in
14s
cost
$0.0011
usage
{"image":1,"step":16}
generated at
2026-08-03T21:28:02.035Z

M5 room emblem, one slot of 30 (MULTIPLAYER.md §2 M5). The family is arbitrary by construction — a room is dealt one by the hash of its code, so no slot means anything and no slot may read as a HOUSE crest (falcon, jackal, serpent are deliberately absent). The hash recipe is documented once, on emblem-00.

request params
{
  "model": "tongyi/z-image-turbo",
  "prompt": "<base64 899 chars>",
  "negative_prompt": "<base64 352 chars>",
  "n": 1,
  "size": "576x576",
  "steps": 8,
  "cfg_scale": 1,
  "shift": 3,
  "seed": 20260866,
  "response_format": "b64_json"
}
emblem-27image
baked
emblem-27
model
tongyi/z-image-turbo
gateway
MAYHEM_ZIMAGE_URL
endpoint
/images/generations
output
assets-src/art-src/emblem-27.png
served
/assets/art/emblem-27.webp
bytes
384.8 KB
generated in
14.2s
cost
$0.0011
usage
{"image":1,"step":16}
generated at
2026-08-03T21:28:18.294Z

M5 room emblem, one slot of 30 (MULTIPLAYER.md §2 M5). The family is arbitrary by construction — a room is dealt one by the hash of its code, so no slot means anything and no slot may read as a HOUSE crest (falcon, jackal, serpent are deliberately absent). The hash recipe is documented once, on emblem-00.

request params
{
  "model": "tongyi/z-image-turbo",
  "prompt": "<base64 923 chars>",
  "negative_prompt": "<base64 352 chars>",
  "n": 1,
  "size": "576x576",
  "steps": 8,
  "cfg_scale": 1,
  "shift": 3,
  "seed": 20260867,
  "response_format": "b64_json"
}
emblem-28image
baked
emblem-28
model
tongyi/z-image-turbo
gateway
MAYHEM_ZIMAGE_URL
endpoint
/images/generations
output
assets-src/art-src/emblem-28.png
served
/assets/art/emblem-28.webp
bytes
463.3 KB
generated in
15.5s
cost
$0.0011
usage
{"image":1,"step":16}
generated at
2026-08-03T21:28:35.817Z

M5 room emblem, one slot of 30 (MULTIPLAYER.md §2 M5). The family is arbitrary by construction — a room is dealt one by the hash of its code, so no slot means anything and no slot may read as a HOUSE crest (falcon, jackal, serpent are deliberately absent). The hash recipe is documented once, on emblem-00.

request params
{
  "model": "tongyi/z-image-turbo",
  "prompt": "<base64 913 chars>",
  "negative_prompt": "<base64 352 chars>",
  "n": 1,
  "size": "576x576",
  "steps": 8,
  "cfg_scale": 1,
  "shift": 3,
  "seed": 20260868,
  "response_format": "b64_json"
}
emblem-29image
baked
emblem-29
model
tongyi/z-image-turbo
gateway
MAYHEM_ZIMAGE_URL
endpoint
/images/generations
output
assets-src/art-src/emblem-29.png
served
/assets/art/emblem-29.webp
bytes
349.5 KB
generated in
14.6s
cost
$0.0011
usage
{"image":1,"step":16}
generated at
2026-08-03T21:28:52.475Z

M5 room emblem, one slot of 30 (MULTIPLAYER.md §2 M5). The family is arbitrary by construction — a room is dealt one by the hash of its code, so no slot means anything and no slot may read as a HOUSE crest (falcon, jackal, serpent are deliberately absent). The hash recipe is documented once, on emblem-00.

request params
{
  "model": "tongyi/z-image-turbo",
  "prompt": "<base64 912 chars>",
  "negative_prompt": "<base64 352 chars>",
  "n": 1,
  "size": "576x576",
  "steps": 8,
  "cfg_scale": 1,
  "shift": 3,
  "seed": 20260869,
  "response_format": "b64_json"
}
sting-match-foundvoice
baked
model
ResembleAI/chatterbox
gateway
MAYHEM_CHATTERBOX_URL
endpoint
/audio/speech
output
public/assets/audio/voice/lobby/match-found.wav
served
/assets/audio/voice/lobby/match-found.wav
bytes
203.5 KB
duration
4.34s
generated in
11.3s
cost
$0.0005
usage
{"audio_second":5,"input_character":56}
reference audio
assets-src/voice-refs/persona-advisor.wav
generated at
2026-08-03T21:29:22.651Z

M5 match-found narration sting (owner-approved audio inventory, 2026-08-03, item 1). Routed through the narration path — the same chatterbox voice and the same exaggeration/cfg/temperature the Strategist briefings use (vox-strategist-*), because this is the same narrator telling you the room filled. One line, lowercase, and short enough to be a single billed call.

request params
{
  "model": "ResembleAI/chatterbox",
  "input": "signal locked. the table is full. stand by for landfall.",
  "voice": "default",
  "exaggeration": 0.5,
  "cfg_weight": 0.55,
  "temperature": 0.7,
  "seed": 20260870,
  "response_format": "wav",
  "reference_audio": {
    "content_type": "audio/wav",
    "encoding": "base64",
    "data": "<base64 416272 chars>"
  }
}
sting-victory-rustwolfvoice
baked
model
ResembleAI/chatterbox
gateway
MAYHEM_CHATTERBOX_URL
endpoint
/audio/speech
output
public/assets/audio/voice/persona/rustwolf-victory.wav
served
/assets/audio/voice/persona/rustwolf-victory.wav
bytes
160.4 KB
duration
3.42s
generated in
8.4s
cost
$0.0004
usage
{"audio_second":4,"input_character":52}
reference audio
assets-src/voice-refs/persona-infantry.wav
generated at
2026-08-03T21:29:32.522Z

M5 persona stinger (MULTIPLAYER.md §2 M5; audio inventory approved verbatim by the owner 2026-08-03: one narrated match-found line, one victory and one defeat stinger per persona, one lobby ambience bed — nothing else). One short line, written in this commander's own voice off its doctrine sentence, lowercase in the register the roster's baked greetings already use. Under the ~80-character ceiling the chatterbox route projects an item at, so it is one billed call and needs no chunking. Ruling 24 stands: this is a BAKED commander line, and no player-typed text is ever voiced. VICTORY line for RUSTWOLF.

request params
{
  "model": "ResembleAI/chatterbox",
  "input": "ground taken. it stays taken. count the scrap later.",
  "voice": "default",
  "exaggeration": 0.8,
  "cfg_weight": 0.4,
  "temperature": 0.85,
  "seed": 20260871,
  "response_format": "wav",
  "reference_audio": {
    "content_type": "audio/wav",
    "encoding": "base64",
    "data": "<base64 416316 chars>"
  }
}
sting-defeat-rustwolfvoice
baked
model
ResembleAI/chatterbox
gateway
MAYHEM_CHATTERBOX_URL
endpoint
/audio/speech
output
public/assets/audio/voice/persona/rustwolf-defeat.wav
served
/assets/audio/voice/persona/rustwolf-defeat.wav
bytes
126.6 KB
duration
2.7s
generated in
7.7s
cost
$0.0003
usage
{"audio_second":3,"input_character":42}
reference audio
assets-src/voice-refs/persona-infantry.wav
generated at
2026-08-03T21:29:41.756Z

M5 persona stinger (MULTIPLAYER.md §2 M5; audio inventory approved verbatim by the owner 2026-08-03: one narrated match-found line, one victory and one defeat stinger per persona, one lobby ambience bed — nothing else). One short line, written in this commander's own voice off its doctrine sentence, lowercase in the register the roster's baked greetings already use. Under the ~80-character ceiling the chatterbox route projects an item at, so it is one billed call and needs no chunking. Ruling 24 stands: this is a BAKED commander line, and no player-typed text is ever voiced. DEFEAT line for RUSTWOLF.

request params
{
  "model": "ResembleAI/chatterbox",
  "input": "we lost the ground. write it off as scrap.",
  "voice": "default",
  "exaggeration": 0.8,
  "cfg_weight": 0.4,
  "temperature": 0.85,
  "seed": 20260881,
  "response_format": "wav",
  "reference_audio": {
    "content_type": "audio/wav",
    "encoding": "base64",
    "data": "<base64 416316 chars>"
  }
}
sting-victory-greyhawkvoice
baked
model
ResembleAI/chatterbox
gateway
MAYHEM_CHATTERBOX_URL
endpoint
/audio/speech
output
public/assets/audio/voice/persona/greyhawk-victory.wav
served
/assets/audio/voice/persona/greyhawk-victory.wav
bytes
218.5 KB
duration
4.66s
generated in
8.3s
cost
$0.0005
usage
{"audio_second":5,"input_character":53}
reference audio
assets-src/voice-refs/persona-vehicle.wav
generated at
2026-08-03T21:29:51.571Z

M5 persona stinger (MULTIPLAYER.md §2 M5; audio inventory approved verbatim by the owner 2026-08-03: one narrated match-found line, one victory and one defeat stinger per persona, one lobby ambience bed — nothing else). One short line, written in this commander's own voice off its doctrine sentence, lowercase in the register the roster's baked greetings already use. Under the ~80-character ceiling the chatterbox route projects an item at, so it is one billed call and needs no chunking. Ruling 24 stands: this is a BAKED commander line, and no player-typed text is ever voiced. VICTORY line for GREYHAWK.

request params
{
  "model": "ResembleAI/chatterbox",
  "input": "line held. objective secured. that is how it is done.",
  "voice": "default",
  "exaggeration": 0.45,
  "cfg_weight": 0.6,
  "temperature": 0.65,
  "seed": 20260872,
  "response_format": "wav",
  "reference_audio": {
    "content_type": "audio/wav",
    "encoding": "base64",
    "data": "<base64 416320 chars>"
  }
}
sting-defeat-greyhawkvoice
baked
model
ResembleAI/chatterbox
gateway
MAYHEM_CHATTERBOX_URL
endpoint
/audio/speech
output
public/assets/audio/voice/persona/greyhawk-defeat.wav
served
/assets/audio/voice/persona/greyhawk-defeat.wav
bytes
207.2 KB
duration
4.42s
generated in
9.5s
cost
$0.0005
usage
{"audio_second":5,"input_character":57}
reference audio
assets-src/voice-refs/persona-vehicle.wav
generated at
2026-08-03T21:30:02.538Z

M5 persona stinger (MULTIPLAYER.md §2 M5; audio inventory approved verbatim by the owner 2026-08-03: one narrated match-found line, one victory and one defeat stinger per persona, one lobby ambience bed — nothing else). One short line, written in this commander's own voice off its doctrine sentence, lowercase in the register the roster's baked greetings already use. Under the ~80-character ceiling the chatterbox route projects an item at, so it is one billed call and needs no chunking. Ruling 24 stands: this is a BAKED commander line, and no player-typed text is ever voiced. DEFEAT line for GREYHAWK.

request params
{
  "model": "ResembleAI/chatterbox",
  "input": "line broken. fall back in order. i will not say it twice.",
  "voice": "default",
  "exaggeration": 0.45,
  "cfg_weight": 0.6,
  "temperature": 0.65,
  "seed": 20260882,
  "response_format": "wav",
  "reference_audio": {
    "content_type": "audio/wav",
    "encoding": "base64",
    "data": "<base64 416320 chars>"
  }
}
sting-victory-saltwidowvoice
baked
model
ResembleAI/chatterbox
gateway
MAYHEM_CHATTERBOX_URL
endpoint
/audio/speech
output
public/assets/audio/voice/persona/saltwidow-victory.wav
served
/assets/audio/voice/persona/saltwidow-victory.wav
bytes
147.2 KB
duration
3.14s
generated in
9.7s
cost
$0.0004
usage
{"audio_second":4,"input_character":48}
reference audio
assets-src/voice-refs/persona-advisor.wav
generated at
2026-08-03T21:30:13.711Z

M5 persona stinger (MULTIPLAYER.md §2 M5; audio inventory approved verbatim by the owner 2026-08-03: one narrated match-found line, one victory and one defeat stinger per persona, one lobby ambience bed — nothing else). One short line, written in this commander's own voice off its doctrine sentence, lowercase in the register the roster's baked greetings already use. Under the ~80-character ceiling the chatterbox route projects an item at, so it is one billed call and needs no chunking. Ruling 24 stands: this is a BAKED commander line, and no player-typed text is ever voiced. VICTORY line for SALTWIDOW.

request params
{
  "model": "ResembleAI/chatterbox",
  "input": "your supply lines are quiet now. my condolences.",
  "voice": "default",
  "exaggeration": 0.55,
  "cfg_weight": 0.55,
  "temperature": 0.75,
  "seed": 20260873,
  "response_format": "wav",
  "reference_audio": {
    "content_type": "audio/wav",
    "encoding": "base64",
    "data": "<base64 416272 chars>"
  }
}
sting-defeat-saltwidowvoice
baked
model
ResembleAI/chatterbox
gateway
MAYHEM_CHATTERBOX_URL
endpoint
/audio/speech
output
public/assets/audio/voice/persona/saltwidow-defeat.wav
served
/assets/audio/voice/persona/saltwidow-defeat.wav
bytes
186.6 KB
duration
3.98s
generated in
7.9s
cost
$0.0004
usage
{"audio_second":4,"input_character":48}
reference audio
assets-src/voice-refs/persona-advisor.wav
generated at
2026-08-03T21:30:23.148Z

M5 persona stinger (MULTIPLAYER.md §2 M5; audio inventory approved verbatim by the owner 2026-08-03: one narrated match-found line, one victory and one defeat stinger per persona, one lobby ambience bed — nothing else). One short line, written in this commander's own voice off its doctrine sentence, lowercase in the register the roster's baked greetings already use. Under the ~80-character ceiling the chatterbox route projects an item at, so it is one billed call and needs no chunking. Ruling 24 stands: this is a BAKED commander line, and no player-typed text is ever voiced. DEFEAT line for SALTWIDOW.

request params
{
  "model": "ResembleAI/chatterbox",
  "input": "you kept your harvesters. i keep my condolences.",
  "voice": "default",
  "exaggeration": 0.55,
  "cfg_weight": 0.55,
  "temperature": 0.75,
  "seed": 20260883,
  "response_format": "wav",
  "reference_audio": {
    "content_type": "audio/wav",
    "encoding": "base64",
    "data": "<base64 416272 chars>"
  }
}
sting-victory-nightglassvoice
baked
model
ResembleAI/chatterbox
gateway
MAYHEM_CHATTERBOX_URL
endpoint
/audio/speech
output
public/assets/audio/voice/persona/nightglass-victory.wav
served
/assets/audio/voice/persona/nightglass-victory.wav
bytes
164.1 KB
duration
3.5s
generated in
8.5s
cost
$0.0004
usage
{"audio_second":4,"input_character":53}
reference audio
assets-src/voice-refs/persona-advisor.wav
generated at
2026-08-03T21:30:33.188Z

M5 persona stinger (MULTIPLAYER.md §2 M5; audio inventory approved verbatim by the owner 2026-08-03: one narrated match-found line, one victory and one defeat stinger per persona, one lobby ambience bed — nothing else). One short line, written in this commander's own voice off its doctrine sentence, lowercase in the register the roster's baked greetings already use. Under the ~80-character ceiling the chatterbox route projects an item at, so it is one billed call and needs no chunking. Ruling 24 stands: this is a BAKED commander line, and no player-typed text is ever voiced. VICTORY line for NIGHTGLASS.

request params
{
  "model": "ResembleAI/chatterbox",
  "input": "i saw every step you took. that was the whole battle.",
  "voice": "default",
  "exaggeration": 0.4,
  "cfg_weight": 0.6,
  "temperature": 0.7,
  "seed": 20260874,
  "response_format": "wav",
  "reference_audio": {
    "content_type": "audio/wav",
    "encoding": "base64",
    "data": "<base64 416272 chars>"
  }
}
sting-defeat-nightglassvoice
baked
model
ResembleAI/chatterbox
gateway
MAYHEM_CHATTERBOX_URL
endpoint
/audio/speech
output
public/assets/audio/voice/persona/nightglass-defeat.wav
served
/assets/audio/voice/persona/nightglass-defeat.wav
bytes
209.1 KB
duration
4.46s
generated in
9.4s
cost
$0.0005
usage
{"audio_second":5,"input_character":55}
reference audio
assets-src/voice-refs/persona-advisor.wav
generated at
2026-08-03T21:30:44.136Z

M5 persona stinger (MULTIPLAYER.md §2 M5; audio inventory approved verbatim by the owner 2026-08-03: one narrated match-found line, one victory and one defeat stinger per persona, one lobby ambience bed — nothing else). One short line, written in this commander's own voice off its doctrine sentence, lowercase in the register the roster's baked greetings already use. Under the ~80-character ceiling the chatterbox route projects an item at, so it is one billed call and needs no chunking. Ruling 24 stands: this is a BAKED commander line, and no player-typed text is ever voiced. DEFEAT line for NIGHTGLASS.

request params
{
  "model": "ResembleAI/chatterbox",
  "input": "i saw it coming. seeing is not the same as stopping it.",
  "voice": "default",
  "exaggeration": 0.4,
  "cfg_weight": 0.6,
  "temperature": 0.7,
  "seed": 20260884,
  "response_format": "wav",
  "reference_audio": {
    "content_type": "audio/wav",
    "encoding": "base64",
    "data": "<base64 416272 chars>"
  }
}
sting-victory-heatbaronvoice
baked
model
ResembleAI/chatterbox
gateway
MAYHEM_CHATTERBOX_URL
endpoint
/audio/speech
output
public/assets/audio/voice/persona/heatbaron-victory.wav
served
/assets/audio/voice/persona/heatbaron-victory.wav
bytes
160.4 KB
duration
3.42s
generated in
8.5s
cost
$0.0004
usage
{"audio_second":4,"input_character":55}
reference audio
assets-src/voice-refs/persona-vehicle.wav
generated at
2026-08-03T21:30:54.127Z

M5 persona stinger (MULTIPLAYER.md §2 M5; audio inventory approved verbatim by the owner 2026-08-03: one narrated match-found line, one victory and one defeat stinger per persona, one lobby ambience bed — nothing else). One short line, written in this commander's own voice off its doctrine sentence, lowercase in the register the roster's baked greetings already use. Under the ~80-character ceiling the chatterbox route projects an item at, so it is one billed call and needs no chunking. Ruling 24 stands: this is a BAKED commander line, and no player-typed text is ever voiced. VICTORY line for HEATBARON.

request params
{
  "model": "ResembleAI/chatterbox",
  "input": "settled. your army cost more than mine and bought less.",
  "voice": "default",
  "exaggeration": 0.65,
  "cfg_weight": 0.5,
  "temperature": 0.8,
  "seed": 20260875,
  "response_format": "wav",
  "reference_audio": {
    "content_type": "audio/wav",
    "encoding": "base64",
    "data": "<base64 416320 chars>"
  }
}
sting-defeat-heatbaronvoice
baked
model
ResembleAI/chatterbox
gateway
MAYHEM_CHATTERBOX_URL
endpoint
/audio/speech
output
public/assets/audio/voice/persona/heatbaron-defeat.wav
served
/assets/audio/voice/persona/heatbaron-defeat.wav
bytes
154.7 KB
duration
3.3s
generated in
8.8s
cost
$0.0004
usage
{"audio_second":4,"input_character":57}
reference audio
assets-src/voice-refs/persona-vehicle.wav
generated at
2026-08-03T21:31:04.411Z

M5 persona stinger (MULTIPLAYER.md §2 M5; audio inventory approved verbatim by the owner 2026-08-03: one narrated match-found line, one victory and one defeat stinger per persona, one lobby ambience bed — nothing else). One short line, written in this commander's own voice off its doctrine sentence, lowercase in the register the roster's baked greetings already use. Under the ~80-character ceiling the chatterbox route projects an item at, so it is one billed call and needs no chunking. Ruling 24 stands: this is a BAKED commander line, and no player-typed text is ever voiced. DEFEAT line for HEATBARON.

request params
{
  "model": "ResembleAI/chatterbox",
  "input": "an expensive afternoon. i will price the next one better.",
  "voice": "default",
  "exaggeration": 0.65,
  "cfg_weight": 0.5,
  "temperature": 0.8,
  "seed": 20260885,
  "response_format": "wav",
  "reference_audio": {
    "content_type": "audio/wav",
    "encoding": "base64",
    "data": "<base64 416320 chars>"
  }
}
sting-victory-gravelkingvoice
baked
model
ResembleAI/chatterbox
gateway
MAYHEM_CHATTERBOX_URL
endpoint
/audio/speech
output
public/assets/audio/voice/persona/gravelking-victory.wav
served
/assets/audio/voice/persona/gravelking-victory.wav
bytes
196.0 KB
duration
4.18s
generated in
8.3s
cost
$0.0005
usage
{"audio_second":5,"input_character":53}
reference audio
assets-src/voice-refs/persona-infantry.wav
generated at
2026-08-03T21:31:14.239Z

M5 persona stinger (MULTIPLAYER.md §2 M5; audio inventory approved verbatim by the owner 2026-08-03: one narrated match-found line, one victory and one defeat stinger per persona, one lobby ambience bed — nothing else). One short line, written in this commander's own voice off its doctrine sentence, lowercase in the register the roster's baked greetings already use. Under the ~80-character ceiling the chatterbox route projects an item at, so it is one billed call and needs no chunking. Ruling 24 stands: this is a BAKED commander line, and no player-typed text is ever voiced. VICTORY line for GRAVELKING.

request params
{
  "model": "ResembleAI/chatterbox",
  "input": "every metre on this map is mine. you paid full price.",
  "voice": "default",
  "exaggeration": 0.7,
  "cfg_weight": 0.45,
  "temperature": 0.8,
  "seed": 20260876,
  "response_format": "wav",
  "reference_audio": {
    "content_type": "audio/wav",
    "encoding": "base64",
    "data": "<base64 416316 chars>"
  }
}
sting-defeat-gravelkingvoice
baked
model
ResembleAI/chatterbox
gateway
MAYHEM_CHATTERBOX_URL
endpoint
/audio/speech
output
public/assets/audio/voice/persona/gravelking-defeat.wav
served
/assets/audio/voice/persona/gravelking-defeat.wav
bytes
186.6 KB
duration
3.98s
generated in
8.5s
cost
$0.0004
usage
{"audio_second":4,"input_character":54}
reference audio
assets-src/voice-refs/persona-infantry.wav
generated at
2026-08-03T21:31:24.227Z

M5 persona stinger (MULTIPLAYER.md §2 M5; audio inventory approved verbatim by the owner 2026-08-03: one narrated match-found line, one victory and one defeat stinger per persona, one lobby ambience bed — nothing else). One short line, written in this commander's own voice off its doctrine sentence, lowercase in the register the roster's baked greetings already use. Under the ~80-character ceiling the chatterbox route projects an item at, so it is one billed call and needs no chunking. Ruling 24 stands: this is a BAKED commander line, and no player-typed text is ever voiced. DEFEAT line for GRAVELKING.

request params
{
  "model": "ResembleAI/chatterbox",
  "input": "you took my ground a metre at a time. i felt each one.",
  "voice": "default",
  "exaggeration": 0.7,
  "cfg_weight": 0.45,
  "temperature": 0.8,
  "seed": 20260886,
  "response_format": "wav",
  "reference_audio": {
    "content_type": "audio/wav",
    "encoding": "base64",
    "data": "<base64 416316 chars>"
  }
}
sting-victory-dunepriestvoice
baked
model
ResembleAI/chatterbox
gateway
MAYHEM_CHATTERBOX_URL
endpoint
/audio/speech
output
public/assets/audio/voice/persona/dunepriest-victory.wav
served
/assets/audio/voice/persona/dunepriest-victory.wav
bytes
152.9 KB
duration
3.26s
generated in
8s
cost
$0.0004
usage
{"audio_second":4,"input_character":51}
reference audio
assets-src/voice-refs/persona-infantry.wav
generated at
2026-08-03T21:31:33.741Z

M5 persona stinger (MULTIPLAYER.md §2 M5; audio inventory approved verbatim by the owner 2026-08-03: one narrated match-found line, one victory and one defeat stinger per persona, one lobby ambience bed — nothing else). One short line, written in this commander's own voice off its doctrine sentence, lowercase in the register the roster's baked greetings already use. Under the ~80-character ceiling the chatterbox route projects an item at, so it is one billed call and needs no chunking. Ruling 24 stands: this is a BAKED commander line, and no player-typed text is ever voiced. VICTORY line for DUNEPRIEST.

request params
{
  "model": "ResembleAI/chatterbox",
  "input": "the sand took them and gave us the field. so be it.",
  "voice": "default",
  "exaggeration": 0.85,
  "cfg_weight": 0.4,
  "temperature": 0.9,
  "seed": 20260877,
  "response_format": "wav",
  "reference_audio": {
    "content_type": "audio/wav",
    "encoding": "base64",
    "data": "<base64 416316 chars>"
  }
}
sting-defeat-dunepriestvoice
baked
model
ResembleAI/chatterbox
gateway
MAYHEM_CHATTERBOX_URL
endpoint
/audio/speech
output
public/assets/audio/voice/persona/dunepriest-defeat.wav
served
/assets/audio/voice/persona/dunepriest-defeat.wav
bytes
162.2 KB
duration
3.46s
generated in
9.7s
cost
$0.0004
usage
{"audio_second":4,"input_character":50}
reference audio
assets-src/voice-refs/persona-infantry.wav
generated at
2026-08-03T21:31:44.910Z

M5 persona stinger (MULTIPLAYER.md §2 M5; audio inventory approved verbatim by the owner 2026-08-03: one narrated match-found line, one victory and one defeat stinger per persona, one lobby ambience bed — nothing else). One short line, written in this commander's own voice off its doctrine sentence, lowercase in the register the roster's baked greetings already use. Under the ~80-character ceiling the chatterbox route projects an item at, so it is one billed call and needs no chunking. Ruling 24 stands: this is a BAKED commander line, and no player-typed text is ever voiced. DEFEAT line for DUNEPRIEST.

request params
{
  "model": "ResembleAI/chatterbox",
  "input": "the desert takes everyone. today it took us first.",
  "voice": "default",
  "exaggeration": 0.85,
  "cfg_weight": 0.4,
  "temperature": 0.9,
  "seed": 20260887,
  "response_format": "wav",
  "reference_audio": {
    "content_type": "audio/wav",
    "encoding": "base64",
    "data": "<base64 416316 chars>"
  }
}
sting-victory-drymouthvoice
baked
model
ResembleAI/chatterbox
gateway
MAYHEM_CHATTERBOX_URL
endpoint
/audio/speech
output
public/assets/audio/voice/persona/drymouth-victory.wav
served
/assets/audio/voice/persona/drymouth-victory.wav
bytes
218.5 KB
duration
4.66s
generated in
8.3s
cost
$0.0005
usage
{"audio_second":5,"input_character":46}
reference audio
assets-src/voice-refs/persona-infantry.wav
generated at
2026-08-03T21:31:54.713Z

M5 persona stinger (MULTIPLAYER.md §2 M5; audio inventory approved verbatim by the owner 2026-08-03: one narrated match-found line, one victory and one defeat stinger per persona, one lobby ambience bed — nothing else). One short line, written in this commander's own voice off its doctrine sentence, lowercase in the register the roster's baked greetings already use. Under the ~80-character ceiling the chatterbox route projects an item at, so it is one billed call and needs no chunking. Ruling 24 stands: this is a BAKED commander line, and no player-typed text is ever voiced. VICTORY line for DRYMOUTH.

request params
{
  "model": "ResembleAI/chatterbox",
  "input": "long war. short ending. somebody get me water.",
  "voice": "default",
  "exaggeration": 0.35,
  "cfg_weight": 0.65,
  "temperature": 0.7,
  "seed": 20260878,
  "response_format": "wav",
  "reference_audio": {
    "content_type": "audio/wav",
    "encoding": "base64",
    "data": "<base64 416316 chars>"
  }
}
sting-defeat-drymouthvoice
baked
model
ResembleAI/chatterbox
gateway
MAYHEM_CHATTERBOX_URL
endpoint
/audio/speech
output
public/assets/audio/voice/persona/drymouth-defeat.wav
served
/assets/audio/voice/persona/drymouth-defeat.wav
bytes
182.9 KB
duration
3.9s
generated in
7.9s
cost
$0.0004
usage
{"audio_second":4,"input_character":56}
reference audio
assets-src/voice-refs/persona-infantry.wav
generated at
2026-08-03T21:32:04.153Z

M5 persona stinger (MULTIPLAYER.md §2 M5; audio inventory approved verbatim by the owner 2026-08-03: one narrated match-found line, one victory and one defeat stinger per persona, one lobby ambience bed — nothing else). One short line, written in this commander's own voice off its doctrine sentence, lowercase in the register the roster's baked greetings already use. Under the ~80-character ceiling the chatterbox route projects an item at, so it is one billed call and needs no chunking. Ruling 24 stands: this is a BAKED commander line, and no player-typed text is ever voiced. DEFEAT line for DRYMOUTH.

request params
{
  "model": "ResembleAI/chatterbox",
  "input": "we ran out of ground before we ran out of water. barely.",
  "voice": "default",
  "exaggeration": 0.35,
  "cfg_weight": 0.65,
  "temperature": 0.7,
  "seed": 20260888,
  "response_format": "wav",
  "reference_audio": {
    "content_type": "audio/wav",
    "encoding": "base64",
    "data": "<base64 416316 chars>"
  }
}
sting-victory-ironnursevoice
baked
model
ResembleAI/chatterbox
gateway
MAYHEM_CHATTERBOX_URL
endpoint
/audio/speech
output
public/assets/audio/voice/persona/ironnurse-victory.wav
served
/assets/audio/voice/persona/ironnurse-victory.wav
bytes
147.2 KB
duration
3.14s
generated in
7.4s
cost
$0.0004
usage
{"audio_second":4,"input_character":44}
reference audio
assets-src/voice-refs/persona-advisor.wav
generated at
2026-08-03T21:32:13.072Z

M5 persona stinger (MULTIPLAYER.md §2 M5; audio inventory approved verbatim by the owner 2026-08-03: one narrated match-found line, one victory and one defeat stinger per persona, one lobby ambience bed — nothing else). One short line, written in this commander's own voice off its doctrine sentence, lowercase in the register the roster's baked greetings already use. Under the ~80-character ceiling the chatterbox route projects an item at, so it is one billed call and needs no chunking. Ruling 24 stands: this is a BAKED commander line, and no player-typed text is ever voiced. VICTORY line for IRONNURSE.

request params
{
  "model": "ResembleAI/chatterbox",
  "input": "everything of mine came home. yours did not.",
  "voice": "default",
  "exaggeration": 0.6,
  "cfg_weight": 0.5,
  "temperature": 0.8,
  "seed": 20260879,
  "response_format": "wav",
  "reference_audio": {
    "content_type": "audio/wav",
    "encoding": "base64",
    "data": "<base64 416272 chars>"
  }
}
sting-defeat-ironnursevoice
baked
model
ResembleAI/chatterbox
gateway
MAYHEM_CHATTERBOX_URL
endpoint
/audio/speech
output
public/assets/audio/voice/persona/ironnurse-defeat.wav
served
/assets/audio/voice/persona/ironnurse-defeat.wav
bytes
149.1 KB
duration
3.18s
generated in
8.4s
cost
$0.0004
usage
{"audio_second":4,"input_character":53}
reference audio
assets-src/voice-refs/persona-advisor.wav
generated at
2026-08-03T21:32:23.014Z

M5 persona stinger (MULTIPLAYER.md §2 M5; audio inventory approved verbatim by the owner 2026-08-03: one narrated match-found line, one victory and one defeat stinger per persona, one lobby ambience bed — nothing else). One short line, written in this commander's own voice off its doctrine sentence, lowercase in the register the roster's baked greetings already use. Under the ~80-character ceiling the chatterbox route projects an item at, so it is one billed call and needs no chunking. Ruling 24 stands: this is a BAKED commander line, and no player-typed text is ever voiced. DEFEAT line for IRONNURSE.

request params
{
  "model": "ResembleAI/chatterbox",
  "input": "they burned my workshop with my wounded still inside.",
  "voice": "default",
  "exaggeration": 0.6,
  "cfg_weight": 0.5,
  "temperature": 0.8,
  "seed": 20260889,
  "response_format": "wav",
  "reference_audio": {
    "content_type": "audio/wav",
    "encoding": "base64",
    "data": "<base64 416272 chars>"
  }
}
sting-victory-tinwardenvoice
baked
model
ResembleAI/chatterbox
gateway
MAYHEM_CHATTERBOX_URL
endpoint
/audio/speech
output
public/assets/audio/voice/persona/tinwarden-victory.wav
served
/assets/audio/voice/persona/tinwarden-victory.wav
bytes
160.4 KB
duration
3.42s
generated in
8.2s
cost
$0.0004
usage
{"audio_second":4,"input_character":54}
reference audio
assets-src/voice-refs/persona-vehicle.wav
generated at
2026-08-03T21:32:32.711Z

M5 persona stinger (MULTIPLAYER.md §2 M5; audio inventory approved verbatim by the owner 2026-08-03: one narrated match-found line, one victory and one defeat stinger per persona, one lobby ambience bed — nothing else). One short line, written in this commander's own voice off its doctrine sentence, lowercase in the register the roster's baked greetings already use. Under the ~80-character ceiling the chatterbox route projects an item at, so it is one billed call and needs no chunking. Ruling 24 stands: this is a BAKED commander line, and no player-typed text is ever voiced. VICTORY line for TINWARDEN.

request params
{
  "model": "ResembleAI/chatterbox",
  "input": "on schedule, to the minute. you were always behind it.",
  "voice": "default",
  "exaggeration": 0.4,
  "cfg_weight": 0.62,
  "temperature": 0.65,
  "seed": 20260880,
  "response_format": "wav",
  "reference_audio": {
    "content_type": "audio/wav",
    "encoding": "base64",
    "data": "<base64 416320 chars>"
  }
}
sting-defeat-tinwardenvoice
baked
model
ResembleAI/chatterbox
gateway
MAYHEM_CHATTERBOX_URL
endpoint
/audio/speech
output
public/assets/audio/voice/persona/tinwarden-defeat.wav
served
/assets/audio/voice/persona/tinwarden-defeat.wav
bytes
160.4 KB
duration
3.42s
generated in
7.4s
cost
$0.0004
usage
{"audio_second":4,"input_character":49}
reference audio
assets-src/voice-refs/persona-vehicle.wav
generated at
2026-08-03T21:32:41.582Z

M5 persona stinger (MULTIPLAYER.md §2 M5; audio inventory approved verbatim by the owner 2026-08-03: one narrated match-found line, one victory and one defeat stinger per persona, one lobby ambience bed — nothing else). One short line, written in this commander's own voice off its doctrine sentence, lowercase in the register the roster's baked greetings already use. Under the ~80-character ceiling the chatterbox route projects an item at, so it is one billed call and needs no chunking. Ruling 24 stands: this is a BAKED commander line, and no player-typed text is ever voiced. DEFEAT line for TINWARDEN.

request params
{
  "model": "ResembleAI/chatterbox",
  "input": "the schedule failed. i will post a corrected one.",
  "voice": "default",
  "exaggeration": 0.4,
  "cfg_weight": 0.62,
  "temperature": 0.65,
  "seed": 20260890,
  "response_format": "wav",
  "reference_audio": {
    "content_type": "audio/wav",
    "encoding": "base64",
    "data": "<base64 416320 chars>"
  }
}
amb-lobbymusic
baked
model
acestep/ace-step-1.5
gateway
MAYHEM_ACE_URL
endpoint
/music/generations
output
public/assets/audio/music/lobby-ambience.flac
served
/assets/audio/music/lobby-ambience.flac
bytes
734.5 KB
duration
10s
generated in
56.9s
cost
$0.0010
usage
{"audio_second":10,"input_character":499}
generated at
2026-08-03T21:33:39.949Z

M5 lobby ambience bed (owner-approved audio inventory, 2026-08-03, item 22). A BED, not a cue: it plays under the War Table, the Frequency Board and the Join screen while nothing is happening, so it is written to loop rather than to arrive anywhere. Same key, tempo family and style tags as the five A1 cues (mus-menu is the parent theme) so the lobby is the same score as the game. 10s is the route cap — caps.modality_capacity.audio.max_item_units — and the client crossfades the loop, exactly as it already does for calm and battle.

request params
{
  "model": "acestep/ace-step-1.5",
  "prompt": "Lobby ambience bed for a desert war strategy game's radio room: a low generator hum under thin wind, sparse distant metal ticks, one slow bass swell that never resolves, no melody and no ending so it can loop forever.",
  "tags": "gritty desert industrial, low generator hum, wind, sparse metal ticks, sub bass drone, analog tape grain, 1990s military sci-fi score, instrumental, no vocals, no singing, dark ambient, drone, patient, loopable",
  "instrumental": true,
  "duration": 10,
  "bpm": 72,
  "key": "D minor",
  "steps": 60,
  "guidance_scale": 7,
  "n": 1,
  "seed": 20260891,
  "response_format": "flac"
}