### 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 拥有“长期记忆”,解决知识时效性问题。