### 4.1 多模态 AI 的定义
**多模态 AI** 是指能够同时处理**文本、图像、语音、视频**等多种模态数据的 AI 系统。
- **单模态**:只处理一种数据(如纯文本 LLM)。
- **多模态**:能够“看”(图像)、“听”(语音)、“说”(文本)、“做”(执行)。
**为什么需要多模态?**
- **更自然的人机交互**:人类本身就是多模态的(说话、看图、听声音)。
- **更丰富的信息表达**:有些信息用文字难以表达,但用图像/视频可以。
- **更强大的任务能力**:如“根据草图生成代码”、“根据视频生成摘要”。
### 4.2 图像生成实战:ModelScope + Z-Image-Turbo
#### 4.2.1 为什么选择 Z-Image-Turbo?
在 2026 年初,图像生成模型百花齐放,但 **Z-Image-Turbo** 凭借其**速度与质量的平衡**脱颖而出:
- **速度快**:5-10 秒生成一张图(Qwen-Image 需要 30 秒+)。
- **质量高**:支持 1024x1024 高分辨率,细节丰富。
- **Prompt 理解好**:能准确理解复杂的指令(如“赛博朋克风格的城市夜景”)。
- **成本低**:开源模型,无需 API 费用。
#### 4.2.2 安装 ModelScope MCP
```bash
# 安装依赖
pip install modelscope-mcp
# 配置 MCP Server
# ~/.mcporter/mcporter.json
{
"mcpServers": {
"modelscope-image": {
"command": "python3",
"args": ["/usr/local/lib/python3.11/site-packages/modelscope-mcp/main.py"],
"transport": "stdio"
}
}
}
```
#### 4.2.3 生成图像:基础用法
**命令**:
```bash
mcporter call modelscope-image-mcp.generate_image_pro \
prompt="一只可爱的橘猫,赛博朋克风格,霓虹灯光,高分辨率" \
model="Tongyi-MAI/Z-Image-Turbo" \
ratio="1:1" \
quality="high" \
steps=12
```
**参数说明**:
- `prompt`:图像描述(支持中文)。
- `model`:模型名称(`Tongyi-MAI/Z-Image-Turbo` 或 `Qwen/Qwen-Image`)。
- `ratio`:图片比例(`1:1`, `3:4`, `4:3`, `16:9`)。
- `quality`:质量模式(`standard` 快速,`high` 高质量)。
- `steps`:生成步数(4 步快速,12 步高质量)。
**输出**:
```json
{
"success": true,
"image_path": "/tmp/generated_image_20260307.jpg",
"width": 1024,
"height": 1024,
"model": "Tongyi-MAI/Z-Image-Turbo",
"prompt": "一只可爱的橘猫,赛博朋克风格,霓虹灯光,高分辨率"
}
```
#### 4.2.4 Prompt 工程:如何写出高质量的图像生成指令
**原则 1:具体化**
- ❌ 差:“一只猫”
- ✅ 好:“一只可爱的橘猫,坐在窗台上,夕阳透过窗户洒在它身上,毛发细节清晰,温暖的光影效果”
**原则 2:风格化**
- ✅ “赛博朋克风格,霓虹灯光,未来城市背景”
- ✅ “水墨画风格,留白,中国传统绘画技法”
- ✅ "3D 渲染,Octane Render,超现实主义”
**原则 3:参数化**
- ✅ "1024x1024 分辨率,细节丰富,8K 画质”
- ✅ “广角镜头,景深效果,背景虚化”
**示例对比**:
| 差 Prompt | 好 Prompt |
|-----------|-----------|
| "一个女孩" | "一个穿着白色连衣裙的少女,站在樱花树下,花瓣飘落,逆光拍摄,柔焦效果,日系摄影风格" |
| "城市夜景" | "赛博朋克风格的城市夜景,霓虹灯牌闪烁,雨后的街道反射灯光,无人机视角,广角镜头" |
#### 4.2.5 实战案例:自动生成博客配图
**场景**:写了一篇关于"AI Agent"的技术文章,需要一张配图。
**流程**:
1. **提取关键词**:从文章标题和摘要中提取关键词(如"AI Agent"、“多模态”、“机器人”)。
2. **生成 Prompt**:根据关键词构造图像描述。
3. **调用模型**:使用 Z-Image-Turbo 生成图片。
4. **上传博客**:将图片上传到 Halo 附件库,并设置为文章封面。
**代码示例**:
```python
# 自动生成博客配图脚本
import subprocess
import requests
def generate_blog_cover(article_title, article_summary):
# 1. 构造 Prompt
prompt = f"AI Agent 技术插画,{article_title},{article_summary},科技感,未来感,蓝色调,高分辨率"
# 2. 生成图片
result = subprocess.run([
"mcporter", "call", "modelscope-image-mcp.generate_image_pro",
f"prompt={prompt}",
"model=Tongyi-MAI/Z-Image-Turbo",
"ratio=16:9",
"quality=high",
"steps=12"
], capture_output=True, text=True)
image_path = eval(result.stdout)["image_path"]
# 3. 上传到 Halo
with open(image_path, "rb") as f:
response = requests.post(
"https://zhiyi.easknow.com/api/upload",
files={"file": f},
headers={"Authorization": "Bearer YOUR_TOKEN"}
)
cover_url = response.json()["url"]
return cover_url
# 使用
cover_url = generate_blog_cover(
"AI Agent 实战:从 0 到 1 构建多模态智能体",
"本文介绍如何使用 OpenClaw + MCP + Agent Reach 构建一个能看、能听、能做的 AI 智能体"
)
print(f"封面图 URL: {cover_url}")
```
### 4.3 图像分析实战:Whisper + Vision Model
#### 4.3.1 场景:看图说话
**任务**:用户上传一张图片,让 AI 描述图片内容。
**流程**:
1. **接收图片**:用户通过 QQ/Telegram 发送图片。
2. **图像识别**:调用 Vision Model(如 Qwen-VL、GPT-4o)分析图片。
3. **文本生成**:将识别结果转换为自然语言描述。
4. **返回结果**:将描述发送给用户。
**代码示例**:
```python
# 图像描述生成
def describe_image(image_path):
# 调用 Vision Model API(以 Qwen-VL 为例)
response = requests.post(
"https://api.qwen.ai/v1/chat/completions",
json={
"model": "qwen-vl-max",
"messages": [
{
"role": "user",
"content": [
{"type": "image_url", "image_url": {"url": f"file://{image_path}"}},
{"type": "text", "text": "请详细描述这张图片的内容,包括画面中的元素、文字信息、整体场景等"}
]
}
]
}
)
return response.json()["choices"][0]["message"]["content"]
# 使用
description = describe_image("/path/to/image.jpg")
print(description)
```
**输出示例**:
> 这张图片展示了一本关于水利水电工程的专业书籍页面。页面内容主要涉及水利水电工程的分等、水工建筑物的分级以及相关的标准指标。页面右上角有一处用铅笔手写的数字"4076"。页面分为三个部分:表 1-1 水利水电工程分等指标、表 1-2 永久性水工建筑物的级别、表 1-3 临时性水工建筑物...
#### 4.3.2 场景:视频内容摘要
**任务**:用户上传一个 YouTube 视频链接,让 AI 生成摘要。
**流程**:
1. **提取字幕**:使用 Agent Reach 提取视频字幕。
2. **文本分析**:用 LLM 分析字幕内容,提取关键信息。
3. **生成摘要**:输出视频摘要(包括主题、亮点、结论)。
**代码示例**:
```python
# 视频摘要生成
def generate_video_summary(video_url):
# 1. 提取字幕
subtitles = agent_reach_extract_subtitles(video_url)
# 2. 文本分析
summary_prompt = f"""
以下是某个视频的字幕内容,请生成一个简洁的摘要:
{subtitles}
要求:
1. 总结视频的核心主题
2. 列出 3-5 个关键观点
3. 如果有结论或建议,请单独列出
"""
summary = llm_generate(summary_prompt)
return summary
# 使用
summary = generate_video_summary("https://youtube.com/watch?v=xxx")
print(summary)
```
### 4.4 深度思考:多模态模型的“幻觉”问题
#### 4.4.1 什么是“幻觉”?
**幻觉(Hallucination)** 是指 AI 生成的内容与事实不符,甚至完全虚构。
- **文本幻觉**:LLM 编造不存在的文献、数据、事件。
- **图像幻觉**:生成图片中出现不合理的元素(如"6 根手指的人”)。
- **多模态幻觉**:图像描述与图片内容不符。
#### 4.4.2 图像生成中的幻觉
在图像生成中,幻觉表现为:
- **细节错误**:文字渲染错误(如"Hello"变成"Hello")。
- **逻辑错误**:物体比例失调(如“比房子还大的猫”)。
- **风格不一致**:画面中出现不协调的元素。
**案例**:
- 提示词:“一个戴眼镜的男人”
- 生成结果:眼镜歪斜、一只眼睛缺失、眼镜腿断裂。
#### 4.4.3 如何缓解幻觉?
1. **Prompt 优化**:
- 避免模糊指令(如“画一个人”)。
- 使用具体描述(如“一个戴黑框眼镜的亚洲男性,正面,微笑”)。
2. **多轮迭代**:
- 先生成草图,再逐步细化。
- 人工审核,不满意则重新生成。
3. **后处理**:
- 使用图像编辑工具(如 Photoshop)修正细节。
- 用超分模型提升清晰度。
4. **模型选择**:
- 选择经过大量数据训练的模型(如 Z-Image-Turbo、DALL-E 3)。
- 避免使用未经验证的开源模型。
#### 4.4.4 图像分析中的幻觉
在图像分析中,幻觉表现为:
- **误识别**:把猫识别成狗。
- **过度解读**:从图片中推断出不存在的信息。
- **遗漏关键信息**:忽略图片中的重要元素。
**缓解策略**:
1. **多模型验证**:用多个模型分析同一张图片,对比结果。
2. **人工审核**:关键场景(如医疗、法律)必须有人工审核。
3. **置信度阈值**:只输出置信度高的识别结果。
---
**(第四章完)**
> **下一章预告**:第五章将深入解析 **RAG 检索增强**,如何让 AI 拥有“长期记忆”,解决知识时效性问题。