AI 多模态入门:如何调用模型实现文生图、文生音频与文生视频
过去我们和 AI 的交互,大多是“输入文字,获得文字回答”。
现在,多模态 AI 可以理解文字、图片、音频和视频,也可以直接生成这些内容。你输入一句提示词,它可以画图、配音、生成短视频;上传一张图片,它可以识别内容、续写故事,甚至把静态图片变成动态视频。
这篇文章从工程实践的角度,带你了解什么是多模态 AI,以及如何通过调用模型接口,实现文生图、文生音频和文生视频。
一、什么是多模态 AI?
“模态”指的是信息呈现的形式。
常见的模态包括:
- 文本:文章、聊天内容、提示词;
- 图片:照片、插画、截图;
- 音频:语音、音乐、环境声;
- 视频:动态画面、镜头、字幕;
- 结构化数据:表格、JSON、传感器数据等。
多模态 AI 的能力可以分为两类:
-
理解能力 例如:看图识物、识别语音、总结视频内容、根据截图回答问题。
-
生成能力 例如:文生图、图生图、文生语音、文生音乐、文生视频、图生视频。
本文重点关注生成能力。
二、一个多模态应用的基本架构
无论底层使用哪一家模型服务,一个多模态应用的整体流程通常类似:
用户输入提示词或上传素材
↓
前端将请求发送给业务后端
↓
后端校验参数、身份、额度与内容安全
↓
后端调用图像 / 音频 / 视频生成模型
↓
模型返回生成结果或异步任务 ID
↓
后端保存任务和资源地址
↓
前端展示图片、播放器或视频结果
这里有一个很重要的原则:
不要让前端直接保存模型服务的密钥。模型调用应该由后端完成。
前端只负责收集用户输入和展示结果;后端负责鉴权、调用模型、计费、限流、内容审核和数据存储。
三、文生图:从一句提示词生成一张图片
文生图是多模态应用最常见的能力之一。
用户输入一段描述,例如:
一只戴着宇航员头盔的橘猫,漂浮在月球表面,
电影感光影,超现实插画风格,16:9
后端将这段文字作为 prompt 调用图像模型,然后获得图片 URL 或图片二进制数据。
一个通用的后端请求可以抽象成这样:
POST /api/generate/image
{
"prompt": "一只戴着宇航员头盔的橘猫,漂浮在月球表面",
"size": "1024x1024",
"style": "cinematic illustration",
"count": 1
}
后端的伪代码如下:
const result = await imageModel.generate({
prompt: input.prompt,
size: input.size,
style: input.style
});
return {
taskId: createTaskId(),
imageUrl: result.imageUrl,
status: "completed"
};
写好文生图 Prompt 的公式
对于初学者,一个好用的提示词结构是:
主体 + 场景 + 风格 + 光线 + 构图 + 画幅
例如:
一位年轻女性站在雨后的东京街头,
霓虹灯倒影,赛博朋克电影风格,
低角度镜头,浅景深,蓝紫色氛围,16:9
如果模型支持,还可以传入负面提示词,排除不希望出现的内容:
模糊、低清晰度、畸形手指、水印、文字
四、文生音频:让文字变成语音、音乐或音效
文生音频一般分为三类:
- 文生语音:把一段文字读出来;
- 文生音乐:根据描述生成背景音乐或歌曲片段;
- 文生音效:生成雨声、脚步声、爆炸声、环境声等。
1. 文生语音
例如,用户输入一段旁白:
欢迎来到我们的 AI 创作平台,让灵感变成作品。
接口请求可以设计为:
POST /api/generate/speech
{
"text": "欢迎来到我们的 AI 创作平台,让灵感变成作品。",
"voice": "female_warm",
"speed": 1.0,
"format": "mp3"
}
后端调用语音模型后,通常会返回一个音频文件地址:
{
"taskId": "task_audio_001",
"audioUrl": "https://cdn.example.com/audio/task_audio_001.mp3",
"duration": 4.8,
"status": "completed"
}
2. 文生音乐
如果你想为视频生成背景音乐,提示词可以写得更具象:
轻快、温暖的钢琴与木吉他背景音乐,
适合科技产品宣传片,无人声,
节奏中等,时长 30 秒
音乐生成通常需要额外指定:
- 时长;
- 是否需要人声;
- 音乐风格;
- 情绪;
- 节奏;
- 商用授权范围。
3. 文生音效
音效的提示词应突出“声音来源”和“环境”:
深夜咖啡馆内的环境音,
轻微雨声、低声交谈、咖啡机蒸汽声,
自然真实,时长 15 秒
五、文生视频:为什么它通常是异步任务?
视频生成比图片和音频更耗时、成本也更高。
生成一张图可能只需要几秒;生成一段高质量视频,通常需要更长时间。因此,视频接口通常不会立刻返回成品,而是先返回一个任务 ID。
例如提交生成任务:
POST /api/generate/video
{
"prompt": "一艘宇宙飞船穿越紫色星云,镜头缓慢推进,电影感",
"duration": 5,
"aspectRatio": "16:9",
"resolution": "720p"
}
后端返回:
{
"taskId": "video_task_10001",
"status": "processing"
}
前端再轮询任务状态:
GET /api/tasks/video_task_10001
直到任务完成:
{
"taskId": "video_task_10001",
"status": "completed",
"videoUrl": "https://cdn.example.com/videos/video_task_10001.mp4"
}
更好的体验是使用 WebSocket 或 Server-Sent Events(SSE),让后端在任务完成时主动通知前端。
六、文生视频 Prompt 怎么写?
视频提示词不仅要描述画面,还要描述“运动”。
一个实用公式是:
主体 + 场景 + 动作 + 镜头运动 + 风格 + 时长 / 画幅
例如:
一名登山者站在雪山山脊上,风吹动衣服,
镜头从背后缓慢推进到侧面,
日出时刻,金色光线,纪录片电影风格,
5 秒,16:9
下面两种描述的效果通常差别很大:
一只猫在街上走。
一只橘猫在雨后的石板街上缓慢行走,
地面反射霓虹灯光,镜头低机位跟拍,
轻微景深,电影质感,5 秒,16:9。
后者明确了主体、环境、动作、镜头和风格,模型更容易生成符合预期的结果。
七、如何统一管理图像、音频和视频任务?
实际产品中,建议建立统一的生成任务表,而不是为每种模态各自实现一套混乱逻辑。
例如:
CREATE TABLE generation_tasks (
task_id text PRIMARY KEY,
user_id text,
type text,
prompt text,
status text,
model text,
input_url text,
output_url text,
error_message text,
created_at timestamp,
updated_at timestamp
);
其中:
type:image、audio、video;status:queued、processing、completed、failed;input_url:用户上传的参考图、参考音频等;output_url:最终生成的资源地址;error_message:失败原因,便于排查。
这样,前端可以使用统一逻辑展示任务:
生成中 → 轮询状态 → 展示结果 / 显示失败原因
八、生成结果应该存在哪里?
图片、音频和视频文件通常不应该直接存入普通数据库字段中。
更常见的做法是:
- 数据库:存任务信息、提示词、状态和资源 URL;
- 对象存储:存图片、音频、视频等实际文件;
- CDN:加速用户下载和播放。
例如:
数据库:
task_id = video_task_10001
output_url = https://cdn.example.com/videos/video_task_10001.mp4
对象存储:
videos/video_task_10001.mp4
如果聊天系统使用 Cassandra,Cassandra 可以保存生成任务事件、聊天消息和资源引用;而真正的大文件放进对象存储会更合适。
九、必须考虑的四个工程问题
1. 异步和重试
视频、音乐等任务可能超时或失败。系统需要记录任务状态,并为可重试错误提供重试机制。
2. 成本控制
多模态生成通常按图片数量、分辨率、音频时长、视频时长或计算量收费。
常见控制方式包括:
- 限制免费用户每日生成次数;
- 限制最大分辨率和视频时长;
- 提交任务前估算消耗;
- 生成失败时明确处理计费规则;
- 对相同请求进行缓存或去重。
3. 内容安全
用户提交的提示词、上传的图片和生成结果,都需要遵守平台政策和法律法规。
常见做法是:
- 调用前审核输入;
- 调用后审核输出;
- 拦截违法、侵权、暴力、色情或欺诈风险内容;
- 保存必要的审计记录;
- 明确告知用户生成内容的使用规则。
4. 版权与授权
使用图片、音乐和视频生成服务前,要确认:
- 是否允许商用;
- 是否允许二次分发;
- 用户是否拥有上传素材的权利;
- 生成结果是否需要标识 AI 生成;
- 是否涉及真人肖像、声音模仿或品牌元素。
十、一个最小可行产品可以怎么做?
如果你要做一个简单的 AI 多模态创作工具,可以从下面这个版本开始:
- 用户输入提示词;
- 选择“生成图片”“生成语音”或“生成视频”;
- 后端创建任务记录;
- 后端调用对应模型;
- 将生成结果存入对象存储;
- 将资源地址更新到任务表;
- 前端展示图片、音频播放器或视频播放器;
- 用户可以下载、重新生成或继续编辑。
先把一条稳定链路跑通,再逐步增加图生图、参考音频、数字人、字幕生成、AI 剪辑等功能。
总结
多模态 AI 的核心并不复杂:把文本、图像、音频和视频当作不同类型的输入与输出,再由合适的模型完成理解或生成。
对于开发者来说,最重要的是掌握这套通用流程:
接收用户输入 → 创建生成任务 → 调用模型 → 保存结果 → 异步反馈状态 → 展示或分发内容。
文生图适合快速完成视觉创作,文生音频适合配音、音乐和音效,文生视频则适合把创意变成动态内容。掌握统一的任务管理、文件存储和异步处理方式后,就可以把不同模型能力组合成完整的 AI 创作产品。