形象工作室
智能体的脸默认是随附的小龙,直到你开口要换一张。手机上从 0.1.20 起,网页版和桌面版从 0.1.23 起 经由运行时(nanomuse/avatar/studio.py),形象工作室可以在聊天里按一句描述把新形象画出来:
- 开口。 在聊天里说:「换个形象:一只戴圆眼镜的橘猫」、"new avatar: a robot owl"、 "change your avatar to a small fox with a scarf"。或者走工作室页面——资料面板里形象上的那支笔 → 「形象工坊…」,或者「设置」里的工作室磁贴——那是手机的页面:顶部是现在的脸和它是什么、一段 描述、七个风格标签、「画四张」,然后走完下面这个列表剩下的步骤,只是聊天里没有卡片(进度通过 socket 以
{"kind": "studio", "current"}送来)。这一步不运行智能体。 - 先说费用。 一张卡片说明要花多少:用账号的模型(nanoMuse Cloud)时,是中继算出的数字 (
GET /v1/estimate),旁边是你额度里还剩多少——按 qwen-image-3.0 的价格,八张图大约 ¥1.5;用自己的 key 时,只给张数,按你服务商的价格算。「开始画」或「先不了」。 - 四张里挑一张。 同一个主体画四次——经典配色、浅一些、深一些加一件小配饰、一个俏皮的版本—— Muse 的玩偶风格,全身,白底。点一张,或者说是哪张(「第二个」、"the first one"、"top right"); 「再画四张」再出四张。
- 各个姿势。 选中的那张就是待命的静态图;在它上面做四次编辑,得到其余几个状态——戴着耳机在 笔记本前干活、抱着水晶球等你、抱着星星开心、带着一滴汗说抱歉——和小龙那套一样。它们落在工作区的
avatar/<face>/<mood>.webp下;资料里的avatar变成这张脸的 id;账号下的每个应用都会显示它 (通过/api/files/avatar/<face>/<mood>.webp)。画不出来的姿势就用待命那张代替。
图片从哪来:对话模型的主机和 key。中继会说 OpenAI 的 images API(/v1/images/generations、 /v1/images/edits),任何能画图的 OpenAI 兼容服务商也一样;阿里云百炼自己的主机两者都没有,于是 用同一把 key 调它原生的多模态接口(默认 qwen-image-3.0)。由哪个模型来画,是 config.toml 里的 [image] 一段([llm] image_model 仍然有效)、网页控制台「连接」页的「生成图片」一行,或手机和桌面版的 设置 → 模型;留空就是「自动」:对话模型所在的服务商能画就用它(百炼上是 qwen-image-3.0),否则用中继给 这个账号的图像模型,否则没有,这时聊天会直说,而不是硬试。
静态图穿上之后,只要接口有视频模型,工作室就会像手机上那样,从这几张图做出四段短视频——待命、 干活中、等你回复、搞定;动作是固定的那几套:中继的(wan2.2-i2v-flash)或百炼上的通义万相,走异步 视频 API(上传、建任务、轮询、拿 MP4);[video] 一节(或旧的 [llm] video_model,见 configuration.md)覆盖模型的选择,[llm] video_base_url 在那个 API 的主机不是对话模型的主机时指明它(像展示站网关这样的中转主机会替它的运行时设好)。它们落在 avatar/<face>/<mood>.mp4;短视频生成期间卡片显示 animating 阶段,费用卡片把它们算在内,失败的 一段保留它的静态图。没有视频 API 的 OpenAI 兼容服务商只给静态图。网页版和桌面版在 44 px 及以上播放 短视频——小龙自己的四段随网页版一起发布——在列表和选择器里、在 prefers-reduced-motion 下,或者 某段短视频缺失时,低于这个尺寸的地方只显示静态图。
GET /api/avatar 告诉你这里能不能画脸(以及用哪个短视频模型)、哪个会话正在进行、资料现在穿着 哪张脸和它是什么——描述、风格和模型,在姿势落地时写进 avatar/<face>/face.json;POST /api/avatar/begin|start|choose|cancel 驱动一个会话(聊天卡片和工作室页面都用它们),POST /api/avatar/moods 把正在穿的脸的姿势和短视频重画一遍。结束的会话的候选图一天后清掉;脸留在工作区里, 只要资料——或者你——还想要。
有 nanoMuse Cloud 账号时,这张脸跟着你到每一台设备(docs/cloud.md):静态图上传到中继 一次,其他设备从 avatar/sync-<hash>/ 穿上它,描述和风格写在它们各自的 face.json 里;如果账号上 的图片正是某台设备已经在穿的,那台设备保留自己画的那张脸——连短视频一起。