本教程通过免费工具组合,教你如何不花一分钱实现 AI 唱演视频的自动化生产流程 🚀
🎬 项目简介
本项目旨在通过自动化工具 n8n,整合多个 AI 服务,实现「上传一张图片 + 一首歌曲 → 自动生成唱演视频」的完整流程。我们将使用:
- 📸 Together AI 或 Cloudflare AI:生成人物形象图;
- 🎵 Suno:生成 AI 歌曲;
- 🤖 阿里云百炼·悦动人像 EMO:将图片驱动生成唱演视频;
- ☁️ Cloudinary:托管视频文件,提供 CDN 链接;
- 🔁 n8n:整合所有服务,实现自动化工作流。
🛠 技术栈与工具
工具/服务 | 作用 |
---|---|
n8n | 自动化流程平台 |
Together AI / Cloudflare AI | 文生图 API |
Suno AI | 音乐生成 |
阿里云百炼 - 悦动人像 EMO | 图片驱动唱演视频生成 |
Cloudinary | CDN 图片/视频托管与分发 |
🧩 整体流程图
+---------+ +---------------+ +---------------+ +-------------------+ +-------------+
| 用户上传 | --> | 生成人物图像 | --> | AI歌曲生成 | --> | 唱演视频生成(EMO)| --> | 上传至CDN |
+---------+ |(Together AI)| |(Suno) | |(阿里云百炼) | |(Cloudinary)|
+---------------+ +---------------+ +-------------------+ +-------------+
🧱 步骤详解
1️⃣ 图片生成:Together AI 或 Cloudflare AI
根据提示词调用 Together AI 或 Cloudflare AI 的文生图 API:
API 示例(Together AI)
curl -X POST "https://api.together.xyz/v1/images/generations" \
-H "Authorization: Bearer $TOGETHER_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "black-forest-labs/FLUX.1-dev",
"prompt": "Cats eating popcorn",
"steps": 10,
"n": 4
}'
将图片直接上传至 Cloudinary 或者类似的图床。
阿里云百炼的EMO,请求参数的图片和音乐,不能使用本地文件,需要直接上传到你的cdn(例如Cloudinary),如果使用Write Files from Disk 节点,保存到你的云服务器,需要在服务器配置公开你的文件,如果保存到本地,需要手动上传到你的cdn。
2️⃣ 音乐生成:Suno AI(或者ace-step)
使用 Suno 官方或非官方 API(如手动创建的 token)根据文本描述生成一段原创音乐。
⚠️ 注意:目前 Suno 的 API 并未全面公开,需要获取 Session Token 或使用第三方自动化脚本绕过。因此我们可以在suno网站生成,然后下载后,手动上传到我们的cdn。
🎯 上传文件到 CDN 的方式有多种:
• 可以在 n8n 中使用 Form 节点(比如 HTTP Request 节点的 multipart/form-data 格式)上传本地生成的文件,但这有点为了n8n而用n8n流程;
• 实际上,直接在后续请求中通过 URL 引用已经上传好的资源会更方便。
💡 所以选择哪种方式完全取决于你自己的偏好。
3️⃣ 图像检测(EMO 图像检测 API)
使用EMO视频生成,需要先调用阿里云百炼图像检测接口,验证上传的图像是否符合视频合成规范:
curl --location --request POST 'https://dashscope.aliyuncs.com/api/v1/services/aigc/image2video/face-detect' \
--header 'Authorization: Bearer <YOUR_API_KEY>' \
--header 'Content-Type: application/json' \
--data-raw '{
"model": "emo-detect-v1",
"input": {
"image_url":"http://xxx/1.jpg"
},
"parameters": {
"ratio": "1:1"
}
}'
只有检测通过后才能继续执行视频生成,否则终止流程或返回错误提示。返回的结果如下:
{
"output":{
"check_pass": true, #检测通过
"face_bbox":[10,20,30,40], #人脸bbox
"ext_bbox": [40,60,80,90], #动态区域bbox,
},
"usage":{
"image_count":1
},
"request_id":"c56f62df-724e-9c19-96bd-308627cf5262"
}
4️⃣ 唱演视频生成:EMO 视频合成
图片通过后,继续调用阿里云百炼的 EMO 接口:
face_bbox,和ext_bbox 从上一步验证图片的结果中获取
curl --location 'https://dashscope.aliyuncs.com/api/v1/services/aigc/image2video/video-synthesis/' \
--header 'X-DashScope-Async: enable' \
--header 'Authorization: Bearer <YOUR_API_KEY>' \
--header 'Content-Type: application/json' \
--data '{
"model": "emo-v1",
"input": {
"image_url": "http://xxx/1.jpg",
"audio_url": "http://xxx/1.wav",
"face_bbox": [10, 20, 30, 40],
"ext_bbox": [10, 20, 30, 40]
},
"parameters": {
"style_level": "normal"
}
}'
图像格式:格式为jpg,jpeg,png,bmp,webp。
图像分辨率:图像最小边长≥400像素,最大边长≤7000像素。
图像坐标框:图像需先通过EMO图像检测API,以获得正确的人脸区域和动态区域坐标信息。
音频格式:格式为wav、mp3。
音频限制:文件<15M,时长<60s。
音频内容:音频中需包含清晰、响亮的人声语音,并去除了环境噪音、背景音乐等声音干扰信息。
上传图片、音频链接仅支持HTTP链接方式,不支持本地链接方式。
接口会返回一个 task_id
,你需要使用该 ID 进行状态轮询。
5️⃣ 任务轮询与结果获取
每隔 若干(例如:45) 秒轮询接口以查询生成状态:
curl -X GET \
--header 'Authorization: Bearer <YOUR_API_KEY>' \
https://dashscope.aliyuncs.com/api/v1/tasks/<YOUR_TASK_ID>
成功后将返回视频下载 video_url。
{
"output":{
"task_id":"a8532587-fa8c-4ef8-82be-0c46b17950d1",
"task_status":"SUCCEEDED",
"results":
{
"video_url":"https://xxx/1.mp4"
}
},
"usage":{
"video_duration": 10.23,
"video_ratio": "1:1"
},
"request_id":"7574ee8f-38a3-4b1e-9280-11c33ab46e51"
}
6️⃣ 结果处理与 CDN 托管
视频生成后可选择:
- 将生成的视频通过 Cloudinary 的 API 上传,获得可嵌入、可分享的公开链接:
- 上传至 Google Drive(使用 Drive API)
🔄 n8n 流程图简述
以下是 n8n 中的主要节点:
- Webhook(接收用户请求)
- HTTP Request(调用 Together AI 或 Suno)
- Function(整理参数)
- 阿里云 EMO 视频生成节点(HTTP + 轮询)
- Cloudinary 上传节点
- 响应节点(返回 CDN 视频地址)
✅ 成品展示(示意)
古风歌曲: 夏日午后:
🧠 后续可拓展功能
- ✅ 自定义歌词驱动音乐生成;
- ✅ 添加字幕与歌词动画;
- ✅ 自动分享到抖音/B站;
- ✅ 建立模板库,提升形象风格多样性。
关注我获取更多资讯

