mirror of
https://gitee.com/mateos/mateclaw.git
synced 2026-11-03 06:25:32 +08:00
200 lines
9.0 KiB
Markdown
200 lines
9.0 KiB
Markdown
# 多模态创作
|
||
|
||
语音、音乐、图像、视频——MateClaw 一开始就把它们当一等公民,不是事后贴上去的贴纸。
|
||
|
||
市面上大多数 AI 产品把多模态生成当插件处理:需要的时候装一个。MateClaw 反过来——它从第一天起就把多模态当作核心基础设施:**六个图像供应商、六个视频供应商、三个 TTS、两个 STT、两个音乐后端**,全部在同一套工具接口后面统一,Agent 调用时不用关心底下跑的是谁。
|
||
|
||
配一次,所有地方都能用。
|
||
|
||
---
|
||
|
||
## 盒子里有什么
|
||
|
||
### 图像生成 —— 六个供应商
|
||
|
||
| 供应商 | 模型家族 | 说明 |
|
||
|--------|----------|------|
|
||
| **DashScope** | 通义万相 | 阿里的图像模型,默认云端选项 |
|
||
| **OpenAI** | DALL-E 3 | 标准 DALL-E 端点 |
|
||
| **fal.ai** | Flux | 通过 fal.ai 跑 Flux,快 |
|
||
| **Google(Nano Banana)** | gemini-3-pro-image-preview、gemini-2.5-flash-image | 走原生 Gemini 路径;**支持图像编辑**——见下方 [Nano Banana](#nano-banana) |
|
||
| **智谱** | CogView | 对中文 prompt 原生支持 |
|
||
| **MiniMax** | —— | 同步异步都可以 |
|
||
|
||
图像生成工具会自动挑默认供应商,也可以在调用时强制指定某一家。异步生成返回一个 job id,Agent 轮询;图片落地后会挂到**原来的那条消息上**,不是创建一条新的。
|
||
|
||
::: tip 1.3.0 新增
|
||
DashScope 通义万相在 v1.3.0 起接入了**统一多模态生成端点**(`multimodal-generation/generation`),新增 14 个图像模型(含 6 个**支持图像编辑**的模型)。详见下方 [图像编辑](#image-edit) 一节。
|
||
:::
|
||
|
||
#### Image edit
|
||
|
||
::: tip 1.3.0 新增
|
||
图像编辑(图生图)自 v1.3.0 起支持。在 v1.2.0 及更早版本里,`image_generate` 工具只能做"文生图"。
|
||
:::
|
||
|
||
`image_generate` 工具新增 `image` / `images` 两个参数:
|
||
|
||
| 参数 | 形态 | 说明 |
|
||
|---|---|---|
|
||
| `image` | 单张参考图 | 字符串:路径 / `file://` / `data:image/...` / `http(s)://` / `msg:<id>:<idx>` |
|
||
| `images` | 多张参考图(最多 5 张) | 数组:每个元素同上 |
|
||
|
||
工具内部统一把这五种引用形式归一化为内存 buffer 后丢给 provider。**5 种引用形式**:
|
||
|
||
1. **本地路径** —— `/abs/path.png` / `~/x.png` / `./rel.png`
|
||
2. **`file://` URL** —— 绝对路径变体
|
||
3. **`data:image/png;base64,...`** —— 内联 base64 / 百分号编码
|
||
4. **`http(s)://...`** —— 带 SSRF 校验,禁止内网地址
|
||
5. **`msg:<messageId>[:<partIdx>]`** —— 引用同会话内某条消息上的图片附件,**非视觉模型也能直接用**——agent 不需要"看见"图片字节,只要在对话历史里见过这个 messageId 即可
|
||
|
||
```text
|
||
用户:(上传一张日落图,messageId=12345)把背景改成森林
|
||
Agent:image_generate(prompt="把背景改成森林",
|
||
image="msg:12345:0",
|
||
model="qwen-image-edit")
|
||
```
|
||
|
||
**支持图像编辑的模型**(DashScope 通义万相):
|
||
- `wan2.7-image` / `wan2.7-image-pro`(**T2I + 编辑**)
|
||
- `qwen-image-edit` / `qwen-image-edit-plus` / `qwen-image-edit-max`(**纯编辑**)
|
||
|
||
在 [模型配置](./models#两个-dashscope-区别) 文档里有更全的模型清单。
|
||
|
||
#### Nano Banana
|
||
|
||
::: tip 1.4.0 新增
|
||
Google 的图像生成走 **Nano Banana Pro**(`gemini-3-pro-image-preview`),通过[原生 Gemini 路径](./models#原生-gemini)调用,不经过 OpenAI 兼容层。
|
||
:::
|
||
|
||
因为走的是原生 `generateContent` 端点,图像工具会把输入图片作为**内联 part**直接传给模型——所以 Nano Banana 不只是文生图,**还支持图像编辑**(图生图)。用法和上面的 [Image edit](#image-edit) 完全一致:传 `image` / `images` 参数引用一张或多张参考图即可。
|
||
|
||
- **Nano Banana Pro** —— `gemini-3-pro-image-preview`(默认)
|
||
- **Nano Banana** —— `gemini-2.5-flash-image`(另一个 Google 图像模型)
|
||
|
||
### 视频生成 —— 六个供应商
|
||
|
||
- **DashScope**——通义万相视频
|
||
- **Runway**——API 调 Gen-2 / Gen-3
|
||
- **MiniMax(Hailuo)**——文生视频 + 图生视频
|
||
- **Fal**——快速推理管线
|
||
- **CogVideo**——智谱 CogVideoX
|
||
- **Kling**——快手可灵视频生成
|
||
|
||
异步挂载逻辑和图像一样。视频渲染完成后直接出现在 Agent 当初说"正在处理"的那个气泡里。
|
||
|
||
### 音乐生成 —— 两个供应商
|
||
|
||
- **Google Lyria**——高质量音乐生成
|
||
- **MiniMax**——支持歌词 + 风格 prompt
|
||
|
||
音乐生成工具接收 prompt、可选风格标签、可选歌词。输出是一条 MP3 挂在消息上。
|
||
|
||
### 3D 模型生成 —— 一个供应商
|
||
|
||
- **腾讯混元 3D**——`HY-3D-3.1` / `HY-3D-3.0`(Pro,支持 PBR / 多视角 / 白模)/ `HY-3D-Express`(极速版)
|
||
|
||
文生 3D 与图生 3D 双模式,输出 `.glb`,前端 `<model-viewer>` 直接渲染可拖拽预览。完整配置步骤见 **[3D 模型生成](./model3d.md)**。
|
||
|
||
### 语音合成(TTS)—— 三个供应商
|
||
|
||
- **DashScope CosyVoice**——中英文,韵律自然
|
||
- **OpenAI TTS**——alloy、echo、fable、onyx、nova、shimmer 六种音色
|
||
- **Edge TTS**——免费,无需 API Key,音色丰富
|
||
|
||
任何 Assistant 消息上都有一个喇叭图标,点一下就朗读出来。用哪个声音取决于你在设置里激活的 TTS 供应商。
|
||
|
||
### 语音识别(STT)—— 两个供应商
|
||
|
||
- **DashScope Qwen3-ASR Flash**——支持多语种,强化中文及方言识别
|
||
- **OpenAI Whisper**——多语言行业基准
|
||
|
||
在聊天输入框按住麦克风图标讲话,松手转文本。识别结果可以在发送前再改一遍。
|
||
|
||
---
|
||
|
||
## 怎么配
|
||
|
||
所有多模态供应商都在 `设置 → 模型 → [类别]` 里。添加一次 API Key,然后把它标记为这个类别的默认。
|
||
|
||
```yaml
|
||
# application.yml —— 最小配置示例
|
||
mate:
|
||
image:
|
||
default-provider: dashscope
|
||
video:
|
||
default-provider: dashscope
|
||
tts:
|
||
default-provider: cosyvoice
|
||
stt:
|
||
default-provider: paraformer
|
||
music:
|
||
default-provider: dashscope
|
||
```
|
||
|
||
如果你想让某个 Agent 总是用 Flux 出图、CosyVoice 发声,可以在 Agent 级别单独覆盖。
|
||
|
||
---
|
||
|
||
## Agent 怎么用
|
||
|
||
每一个多模态能力都是一个工具:
|
||
|
||
| 工具 | 签名 |
|
||
|------|------|
|
||
| `image_generate` | `(prompt, style?, size?)` |
|
||
| `video_generate` | `(prompt, duration?)` |
|
||
| `music_generate` | `(prompt, style?, lyrics?)` |
|
||
|
||
Agent 调用它们和调用任何其他工具一样。工具层负责供应商选择、重试、异步轮询、附件挂载。
|
||
|
||
---
|
||
|
||
## 异步生成 + 消息挂载
|
||
|
||
图像和视频生成往往比一个普通的 Agent 回合要慢。MateClaw 处理这件事的方式:
|
||
|
||
1. Agent 调用生成工具。
|
||
2. 工具立刻返回一个 job id 和占位附件。
|
||
3. 后端在后台轮询供应商。
|
||
4. 结果落地后,挂到**原来的那条 Assistant 消息上**,不是新建一条。
|
||
|
||
它工作得很干净:图片会出现在 Agent 当初说"正在处理"的那个气泡里,不是飘在一条新消息里。
|
||
|
||
---
|
||
|
||
## 产品里的哪些地方能看到
|
||
|
||
- **聊天**——拖图片进输入框给视觉模型用;按住麦克风语音输入;点任何回答上的喇叭朗读;生成的媒体直接内嵌。
|
||
- **Agents**——可以单独开启或关闭某个 Agent 的多模态工具。
|
||
- **工具页**——每个供应商都有一个测试按钮,方便在上线前验证 Key。
|
||
- **桌面端**——上面所有功能,外加本地文件系统访问用于批处理。
|
||
|
||
---
|
||
|
||
## 什么时候用什么
|
||
|
||
- **图像**——文档配图、幻灯片、概念可视化、营销素材。起步用 DashScope 或 Flux;需要精确的文字渲染就用 DALL-E 3。
|
||
- **视频**——短视频 demo、社交内容、产品动画。追求质量用 Runway,中文场景用 MiniMax,想本地云就 DashScope。
|
||
- **音乐**——背景音乐、Demo 音效、创意尝试。目前两家,后面还会扩。
|
||
- **TTS**——无障碍朗读、有声书式阅读、多语言内容。中文用 CosyVoice,英语要多样化就 OpenAI。
|
||
- **STT**——语音输入、会议转写、口述工作流。中文及多语种录音可使用 Qwen3-ASR,也可接入 Whisper 兼容端点。
|
||
|
||
---
|
||
|
||
## 多模态输入:主模型不支持?走旁路
|
||
|
||
::: tip 1.3.0 新增
|
||
本页讲的是**生成(输出)**。**输入侧**的多模态——上传图片给纯文本主模型——走另一套路径:「多模态旁路」(sidecar)。详见 [聊天与消息 → 主模型不支持图片?走"多模态旁路"](./chat#主模型不支持图片走多模态旁路) 和 [模型配置 → 多模态旁路(系统级)](./models#多模态旁路-系统级)。
|
||
:::
|
||
|
||
简而言之:在「设置 → 模型 → 多模态旁路」配一个视觉模型,主模型不支持图片时系统会**自动把图片转描述**再喂给主对话模型,主模型保持便宜,路由全程在聊天 UI 可见(路由徽章 + 输入框上方提示条)。
|
||
|
||
---
|
||
|
||
## 下一步
|
||
|
||
- [聊天与消息](./chat)——附件输入、多模态旁路路由、生成的媒体如何挂载到消息上
|
||
- [模型配置](./models)——供应商配置 UI、多模态旁路设置
|
||
- [工具系统](./tools)——承载多模态生成的工具层
|