Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
SD_SERVERNoURL of the stable-diffusion.cpp sd-server for image generation. Example: http://127.0.0.1:9020. If unset, expects a local engine.
ASR_SERVERNoURL of an OpenAI-shaped ASR server. Defaults to AUDIO_SERVER.
ASR_API_KEYNoAPI key for the ASR server, if required.
AUDIO_SERVERNoURL of the audio.cpp audiocpp_server for TTS/ASR/music. Example: http://127.0.0.1:9021
ASR_SEND_RATENoSend audio to the ASR backend at this sample rate. Set to 16000 for backends that reject 22.05/24 kH z (e.g. vLLM).
IMAGE_API_KEYNoAPI key for the image API, if required.
IMAGE_API_SIZESNoComma-separated list of sises supported by the image API provider, if using IMAGE_API_SERVER.
IMAGE_API_SERVERNoURL of an OpenAI-shaped image API. Overrides SD_SERVER when set.
CONTINUITY_HTTP_HOSTNoHost to bind when using streamable-http transport.127.0.0.1
CONTINUITY_HTTP_PATHNoPath to serve when using streamable-http transport./mcp
CONTINUITY_HTTP_PORTNoPort to bind when using streamable-http transport.9030
CONTINUITY_STATE_DIRNoDirectory where generated assets and state are stored. Example: ~/.continuity
CONTINUITY_TRANSPORTNoTransport protocol: stdio, sse, or streamable-http. Can also be set via --transport flag.stdio
CONTINUITY_INLINE_IMAGESNoSet to 0 to disable inline image content in tool results. Default is 1.

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
create_actorA

给一个角色铸声(定妆), 之后用 actor_tts 让他说任意台词都保持同一个音色。

为什么要有这一步: 直接用文字描述合成语音, 那段描述只圈定一个大致的音色区间, 区间内每句台词各漂各的 —— 实测同 voice 同 seed 四句台词基频极差 125 Hz, 关掉采样走贪心反而涨到 242 Hz(音色是文本的函数, 不是采样随机性, 锁 seed 或 temperature 都锁不住)。本工具先用 voice 描述生成一段参考音, 之后所有台词 改由克隆模型照着这段参考音说, 音色与台词内容无关。实测极差降到 5 Hz。

重要: 铸完请先听那段试音, 确认是不是你要的那个人。铸砸了会把整个角色锁死在 错的音色上, 而且它之后每一句都错得很一致。不满意就 force=true 重铸。

参数: name: 角色名(字母/数字/下划线/连字符/中文, 1~40 字), 之后 actor_tts 用它指代 voice: 声音的自然语言描述, 英文效果最佳。写年龄/性别/音色/语速/情绪, 例如 "An elderly Chinese man, gravelly chest voice, commanding" sample_text: 铸声用的台词(可选)。默认用一段覆盖面较广的中文 seed: 随机种子(可选) force: 覆盖已有角色。会让该角色之前所有台词的音色对不上, 慎用

返回: 试音片段的本机路径 —— 先听再用

import_actorA

用一段现成的录音铸声 —— 声音是别处做的(真人录音 / 其它 TTS)也照样能保持一致。

和 create_actor 得到的东西完全一样, 只是参考音由你提供而不是我们生成。之后 actor_tts 让他说任意台词, 音色都来自这段录音。

参数: name: 角色名, 之后 actor_tts 用它指代 audio_path: 录音的本机路径。16-bit PCM WAV, 2~30 秒, 单人清唱式的干净人声 最好(没有背景音乐和混响)。采样率/声道数会自动转成 24 kHz 单声道。 其它格式先转: ffmpeg -i 原文件 -acodec pcm_s16le -ac 1 -ar 24000 ref.wav transcript: 那段录音里念的是什么。不给就自动听写一遍填上, 但那是机器听的, 会在返回里标出来让你核 —— 克隆模型拿它对齐音频和文字, 错一个词 音色就会明显不对。手上有准确的文字就直接给, 别让它猜。 force: 覆盖已有角色

注意: 你有权使用这段声音才导入它。克隆一个真人的嗓子在很多地方是需要本人同意的。

actor_ttsA

让某个已铸声的角色说一句台词, 音色与他之前每一句都一致。

做游戏 NPC 对白用这个, 不要用 generate_speech —— 后者每句音色会漂。 角色不存在会告诉你先去 create_actor。

参数: actor: 角色名(create_actor 时定的) text: 台词, 上限 200 字(约 45 秒), 超出截断 speaking_rate: 语速倍率(可选) seed: 随机种子(可选)

返回: 24 kHz 单声道 WAV 的本机路径

list_actorsB

列出已铸声的角色(名字 + 当初的声音描述 + 铸声时间)。

delete_actorB

删掉一个已铸声的角色。不可逆: 参考音不可复现, 重铸出来是另一个人。

transcribeA

听一段录音, 返回里面说的文字。

两个用处, 都是"核对"而不是"生产字幕":

  • 导入参考音时不知道那段录音念的是什么 —— import_actor 不给 transcript 就是 自动调它, 也可以先单独调一次看看听出来的对不对。

  • 验稿: 配完一句台词, 听回来和台词原文比一比。克隆模型偶尔会吞掉尾巴, 而那种"少了半句"的产物听起来完全正常, 只有把它听成文字才看得见。

参数: audio_path: 录音的本机路径, 只收 WAV language: 语种提示 (可选, 如 zh / en)。不给就让模型自己判 —— 它本来就带语种识别, 只有在把方言听成另一种语言时才需要指定。

generate_speechA

一次性旁白 —— 不保证跨句音色一致, 会重复出现的角色请用 create_actor + actor_tts。

适合系统提示音、一次性播报这类"说完就没了"的语音。任何会说第二句的角色都不该 用这个: 同一段 voice 描述的两句台词不是同一个人。

参数: text: 要念的台词, 上限 200 字 voice: 声音的自然语言描述(英文效果最佳), 不传则用中性旁白嗓 seed / speaking_rate: 可选

返回: 24 kHz 单声道 WAV 的本机路径

generate_musicA

生成一段背景音乐(Stable Audio), 返回 WAV 的本机路径。

参数: prompt: 音乐描述(风格/乐器/情绪, 英文效果最佳) seed: 随机种子(可选) duration: 秒数, 上限 120 num_inference_steps: 推理步数(默认 100, 越多越慢)

注意: 出来的是一段有头有尾的音乐, 没有做无缝循环点。要循环播放的 BGM 请自己在编辑器里找循环点, 或把它当作一次性过场音乐。

create_characterA

给一个人物定妆(生成并存下参考图), 之后 subject_image 出的每张图长相都一致。

为什么要有这一步: generate_image 每次给的是"长得不一样的人"。同一个角色的头像 / 战斗立绘 / 地图小人, 直接用文字描述生成出来是三个人。

appearance 分两部分, 分清楚很重要:

(1) 身份 —— 必须写死, 漏掉的每一项模型都会自己编, 而且每张编得不一样:

  • 年龄段 + 体型(高瘦/魁梧/矮壮)

  • 脸: 脸型、显著特征(疤/须/眉眼)

  • 发型 + 发色 + 束发方式

  • 辨识物: 跟着这个人走、换装也不摘的东西(独眼罩/佩剑/护腕/胎记)

(2) 默认服装 —— 只是个基线, 不是身份的一部分。照样写进 appearance, 但 subject_image 的 scene 里写新衣服就能换掉(实测: 定妆穿布袍, scene 写 "wearing heavy red armor" 能换成甲胄而脸不变)。所以一个角色不需要按套装 定妆很多次。

不要写场景、动作、表情 —— 那些留给 subject_image 的 scene。

定完先看返回的定妆图确认是不是你要的人; 定砸了会把整个角色锁死在错的长相上, 不满意就 force=true 重定。

create_animalA

给一只动物/坐骑/灵兽定妆, 之后每张图它都是同一只。

appearance 里必须写死这几样:

  • 物种 + 体型比例(腿长/身长/头身比)

  • 毛色/羽色 + 花纹的分布位置(不是只说"有斑点", 要说斑点在哪)

  • 耳朵、尾巴、翅膀的形状

  • 显著特征(独角/断尾/眼色) 鞍具、缰绳这类可穿卸的东西和人物的服装同理: 写进 appearance 只是默认值, scene 里可以换掉。不要写场景和动作。

定完先看定妆图, 不满意 force=true 重定。

create_objectC

给一件道具/物件定妆, 之后每张图它都长一个样, 换角度也不变。

物件最容易漂的是几何, 不是材质配色 —— 实测一个宝箱, 材质配色五金件都对得上, 盖子却一会儿是平的方的、一会儿是拱的圆的, 因为原始描述里压根没写盖子什么形状。

appearance 里必须写死这几样:

  • 整体轮廓 + 比例(长方/立方/圆桶, 宽高比)

  • 关键几何: 盖子平的还是拱的、边角方的还是圆的、侧面直的还是弧的、有没有底座

  • 材质 + 主次配色

  • 五金件/纹饰及其位置(锁扣、包角、铆钉在哪) 不要写场景和角度 —— 角度留给 subject_image 的 scene。

定完先看定妆图, 不满意 force=true 重定。

import_subjectA

用一张现成的图定妆 —— 角色/物件是别处画的也照样能保持一致。

和 create_character / create_object 得到的东西完全一样, 只是定妆图由你提供。 之后 subject_image 让它出任意场景图, 外观都来自这张图。

参数: name: 名字, 之后 subject_image 用它指代 image_path: 参考图的本机路径。要求和我们自己生成的定妆图一样: 单个主体、 正面或四分之三视角、背景干净、看得全。一张有场景有动作的插画 当参考图, 场景会跟着一起被复制过去。 appearance: 这是什么的文字描述 —— 必填, 它会被拼进之后每一张场景图的提示词。 只给参考图而不给描述, 模型对"这是什么"没有着落, 外观照样会漂。 写法同 create_character / create_animal / create_object 的要求。 kind: character / animal / object force: 覆盖已有的

大图会缩到 1024 以内; 带透明通道的图会转成 RGB(透明区交给引擎会变成黑块)。

subject_imageA

让某个已定妆的角色或物件出一张新图, 外观与它之前每一张都一致。

做游戏素材用这个, 不要用 generate_image —— 后者每张长相会变。 subject 不存在会告诉你先去 create_character / create_animal / create_object。

参数: subject: 名字(定妆时定的) scene: 这张图里它在干什么 / 在哪 / 什么角度 —— 只写场景动作视角, 身份由定妆图决定。例如 "opened, seen from behind, on a stone floor"。 人物/动物还可以在这里换装: "wearing heavy red armor" 会换掉定妆图 里那身衣服而保住脸。 width/height: 上限 1024 seed: 随机种子(可选) num_inference_steps: 采样步数(可选, 不传用引擎默认)。多了更精细也更慢 guidance_scale: 提示词贴合度(可选, 不传用引擎默认)。高了更贴提示词但更容易糊

返回: 本机路径

list_subjectsA

列出已定妆的角色、动物和物件。

delete_subjectA

删掉一个已定妆的角色或物件。不可逆: 定妆图不可复现, 重定出来是另一个。

generate_imageA

生成一张一次性图片 —— 不保证与任何其它图一致。

会重复出现的角色/物件请先 create_character / create_object 定妆, 再用 subject_image 出图。这个工具适合背景板、UI 底图这类只出现一次的东西。

参数: prompt: 图片描述(英文效果最佳) width/height: 上限 1024 seed: 随机种子(可选) reference_image_path: 参考图的本机路径(可选), 传了就是图生图 num_inference_steps: 采样步数(可选, 不传用引擎默认)。多了更精细也更慢 guidance_scale: 提示词贴合度(可选, 不传用引擎默认)。高了更贴提示词但更容易糊

返回: 本机路径

remove_bgA

抠掉图片背景, 输出真正带 alpha 通道的 RGBA PNG。

生图模型画不出 alpha: 你让它画"透明背景", 它是把 PS 那种灰白棋盘格当成不透明 像素画出来的。做游戏精灵图必须用本工具把它转成真的 RGBA。

参数: image_path: 图片的本机路径(其它工具返回的路径可直接用) image_base64: 或者直接给 base64 mode: auto (默认, 按结构证据判断是不是棋盘格: 恰好两级灰度 + 周期方格; 不是就走 通用抠图) / checker (强制只抠棋盘格) / rembg (强制通用显著物体抠图, CPU) quality: best (birefnet-general-lite, ~7s, 峰值内存 ~6.8 GB) / fast (u2netp, ~0.6s, 峰值 ~1.3 GB)。只影响 rembg 分支。 不传则用安装时按本机内存定下的默认值。

返回: RGBA PNG 的本机路径, 附带实际走的分支与透明像素占比。抠出来明显不对 (几乎全透明 / 几乎没抠掉 / 碎成一堆小块 / 主体被啃出洞) 时会附一行 ⚠️ 警告 —— 那种结果别直接用。

slice_sheetA

把排成网格的 sprite sheet 切成单帧 PNG。

让生图模型画"4 帧动画"时它会摆成 2x2 网格而不是 4 张图, 用本工具切开。

参数: image_path / image_base64: 同其它图片工具 rows, cols: 网格行列数(二者都给) frame_width, frame_height: 单帧像素尺寸(与 rows+cols 二选一) trim: 是否把每帧裁到非透明/非背景的外接框(默认 True)

返回: 各帧 PNG 的本机路径

gen_sfxA

合成一枚 sfxr/jsfxr 风格的游戏音效(纯程序化, 不用模型), 返回 WAV 路径。

不要用 generate_music 做音效: 那是扩散模型, 出来的是几十秒的宽带糊音。游戏音效 是 10~200ms 的瞬态, 要精确、即时、可复现 —— 本工具毫秒级出结果, 同 seed 逐字节可复现, 而且完全不占显存。

参数: preset: jump / coin / hit / explosion / powerup / laser / select / hurt seed: 随机种子。给了就在 preset 周围抖动参数(不是抖采样点), 同 seed 结果完全相同; 不给则严格使用 preset 的原始参数。 base_freq: 覆盖基频 Hz (noise 波形下是采样保持的刷新率) wave: 覆盖波形 square / saw / sine / triangle / noise overrides: 覆盖任意合成参数的字典, 例如 {"freq_slide": -3.0, "release": 0.4, "lpf": 0.5, "duty": 0.25} 可覆盖的完整字段名和默认值: 调 sfx_presets()

返回: 44.1kHz 16bit 单声道 WAV 的本机路径。结构化返回里的 params 是这一枚音效 用到的全部合成参数 —— 拿它加一点改动再调一次, 就能做出一整组同族音效。

sfx_presetsA

列出 gen_sfx 能用的 preset, 以及 overrides 里可以覆盖的全部字段和它们的默认值。

先看这里再去 overrides: 字段名写错了 gen_sfx 会直接失败, 而"有哪些字段"是猜不出来的 (占空比扫描叫 duty_sweep 还是 duty_slide, 低通叫 lpf 还是 cutoff)。

返回: preset 名单 + 参数默认值表 + 采样率。

continuity_statusA

本插件当前的状态: 两个引擎在不在、哪些能力开着、资产存在哪。

某个工具"不存在"时先看这里 —— 显存不够的机器上生图那半是被安装脚本关掉的, 不是坏了。

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A3.9/5.0

Scored across 21 tools

Disambiguation5/5

Each tool has a clearly distinct purpose, and the descriptions explicitly draw the boundaries between the easily-confused pairs: create_actor+actor_tts (consistent voice) vs generate_speech (one-off), and create_character/subject_image (consistent appearance) vs generate_image (one-off). The casting tools split cleanly by subject kind (character/animal/object) and by source (generate vs import), leaving no meaningful overlap.

Naming Consistency4/5

Most names follow a clean verb_noun pattern (create_actor, import_actor, list_actors, delete_actor, create_character, generate_image, remove_bg, slice_sheet). A minority deviate with noun_verb or bare-noun forms (actor_tts, subject_image, sfx_presets, continuity_status) and one abbreviation (gen_sfx vs generate_speech/generate_music/generate_image), but the scheme remains readable and predictable overall.

Tool Count4/5

21 tools is on the heavier side, but the server spans several genuinely separate sub-domains (voice casting, image casting, image post-processing, music, procedural SFX, status), so the count is justified rather than padded. Each tool maps to a real capability with no obvious filler.

Completeness4/5

Coverage is strong: full lifecycle for actors and subjects (create/import/list/delete), plus generation, transcription, background removal, sprite slicing, music, SFX, and a diagnostic status tool. The only minor gap is no in-place update/edit for an actor or subject (you must delete and re-cast), which agents can work around.

Maintenance

ActivityMaintained
ResponsivenessNo issues