Luma 视频生成 API 对接说明

Luma 视频生成 API 对接说明

随着 AI 的应用变广,各类 AI 程序已逐渐普及。AI 已逐渐深入到人们的工作生活方方面面。而 AI 涉及的行业也越来越多,从最初的写作,到医疗教育,再到现在的视频。

Luma 是一个专业高质量的视频生成平台,用户只需上传素材,即可根据不同风格和效果自动生成高质量视频。该 AI 视频生成器由来自知名科技公司的团队成员开发,目标是无需复杂的编辑工具,让每个人都能轻松制作出色的视频。

然而 Luma 官方是并没有提供 API 的,AceDataCloud 提供了一套 Luma 的 API,模拟对接了 Suno 官方,可以方便快捷地生成想要的视频。

申请和使用

要使用 Luma Videos API,首先可以到 Luma Videos Generation API 页面点击「Acquire」按钮,获取请求所需要的凭证:

如果你尚未登录或注册,会自动跳转到登录页面邀请您来注册和登录,登录注册之后会自动返回当前页面。

在首次申请时会有免费额度赠送,可以免费使用该 API。

基本使用

想要生成什么视频,可以任意输入一段文字,比如我想生成一个关于宇航员穿梭于太空和火山之间的视频,就可以输入 Astronauts shuttle from space to volcano,如图所示:

生成的代码如下:

可以点击「Try」按钮直接测试 API,稍等 1-2 分钟,结果如下:

json { "success": true, "task_id": "e4018a99-1522-4f24-9330-62c2a9b50b59", "video_id": "155838f8-7f1e-44d8-b387-192f3b4b509d", "prompt": "Astronauts shuttle from space to volcano", "video_url": "https://storage.cdn-luma.com/dream_machine/af94e7ca-da35-4b5f-a636-2d7254184d0d/watermarked_video0585de3737db946e5a0ac895384ecd180.mp4", "video_height": 752, "video_width": 1360, "state": "completed", "thumbnail_url": "https://platform.cdn.acedata.cloud/luma/e4018a99-1522-4f24-9330-62c2a9b50b59.jpg", "thumbnail_width": 1360, "thumbnail_height": 752 }

可以看到这时候我们就得到了这个视频的相关信息,包括视频ID、视频链接、视频封面等内容。

字段说明如下:

  • success:生成是否成功,如果成功则为 true,否则为 false
  • task_id:此处视频生成任务的唯一ID
  • video_id:此处视频生成任务产生的视频唯一ID
  • prompt:此处视频生成任务的关键词
  • video_url:此处视频生成任务的结果视频链接
  • video_height:生成后的视频封面图片的高度
  • video_width:生成后的视频封面图片的宽度
  • state:此处视频生成任务的状态,如果任务完成的话则为 completed
  • thumbnail_url:生成后的视频封面图片的链接
  • thumbnail_width:生成后的视频封面图片的宽度
  • thumbnail_height:生成后的视频封面图片的高度

自定义首尾帧生成

如果想通过自定义视频的首尾帧来生成视频,可以输入首尾帧的图片链接:

这时候视频首帧 start_image_url 字段可以传入以下图片作为视频的首帧:

首帧

接下来我们要根据首尾帧、关键词自定义生成视频,就可以指定如下内容:

  • action:视频生成任务的行为,通常是普通生成 generate 和扩展生成 extend,默认为 generate
  • start_image_url:指定生成视频的首帧。
  • end_image_url:指定生成视频的尾帧。
  • prompt:生成视频的关键词内容。

填写样例如下:

填写完毕之后自动生成了代码如下:

对应的代码:

```python import requests

url = "https://api.acedata.cloud/luma/videos"

headers = { "accept": "application/json", "authorization": "Bearer {token}", "content-type": "application/json" }

payload = { "start_image_url": "https://cdn.zhishuyun.com/29cc6830-5291-4f13-a3af-413e45a8252e.png", "action": "generate", "prompt": "Astronauts shuttle from space to volcano" }

response = requests.post(url, json=payload, headers=headers) print(response.text) ```

得到的结果如下:

json { "success": true, "task_id": "12a18694-fd4b-47e7-9c50-34f30862cff6", "video_id": "0105c090-03a5-425a-8026-523341cd575b", "prompt": "Astronauts shuttle from space to volcano", "video_url": "https://platform.cdn.acedata.cloud/luma/12a18694-fd4b-47e7-9c50-34f30862cff6.mp4", "video_height": 656, "video_width": 1552, "state": "completed", "thumbnail_url": "https://platform.cdn.acedata.cloud/luma/12a18694-fd4b-47e7-9c50-34f30862cff6.jpg", "thumbnail_width": 1552, "thumbnail_height": 656 }

最后得到的结果与上文的类似的,生成的视频首帧包含了我们传入的图片,当然也可以同时传入首尾帧图片链接来生成视频,只需要在上面的基础上再加一个尾帧图片即可,尾帧的图片信息如下:

尾帧

填写样例如下:

最后得出如下结果:

json { "success": true, "task_id": "d1cb723a-e554-4775-94a4-bb6ae8c7ea67", "video_id": "6bebd0d2-f793-472e-9326-38528a9273bb", "prompt": "Astronauts shuttle from space to volcano", "video_url": "https://platform.cdn.acedata.cloud/luma/d1cb723a-e554-4775-94a4-bb6ae8c7ea67.mp4", "video_height": 656, "video_width": 1552, "state": "completed", "thumbnail_url": "https://platform.cdn.acedata.cloud/luma/d1cb723a-e554-4775-94a4-bb6ae8c7ea67.jpg", "thumbnail_width": 1552, "thumbnail_height": 656 }

结果与上文是类似的,生成的视频同时包含了首帧与尾帧的图片,这也就完成了自定义首尾帧来生成视频。

视频扩展功能

如果想对生成的视频进行继续生成的话,可以将参数 action 设置为 extend ,并且输入需要继续生成视频的ID或者视频链接,视频ID和视频链接的获取是根据基本使用来获取,如下图所示:

这时候可以看到视频的ID为:

"video_id": "0105c090-03a5-425a-8026-523341cd575b", "video_url": "https://platform.cdn.acedata.cloud/luma/12a18694-fd4b-47e7-9c50-34f30862cff6.mp4"

注意,这里的视频中 video_id 和 video_url 是生成后视频的ID和视频链接,如果你不知道如何生成视频,可以参考上文的基本使用来生成视频。

要想继续生成视频的话必须上传视频链接或视频的ID,下面演示使用视频ID来进行扩展,接下来我们要必须填关键词自定义生成视频,就可以指定如下内容:

  • action:此时扩展视频的行为,在这应为 extend 。
  • prompt:需要扩展视频的关键词。
  • video_url:需要扩展生成视频的链接。
  • video_id:需要扩展生成视频的唯一ID。
  • end_image_url:扩展生成视频可指定尾帧的图片链接,可选参数。

填写样例如下:

填写完毕之后自动生成了代码如下:

对应的Python代码:

```python import requests

url = "https://api.acedata.cloud/luma/videos"

headers = { "accept": "application/json", "authorization": "Bearer {token}", "content-type": "application/json" }

payload = { "action": "extend", "video_id": "0105c090-03a5-425a-8026-523341cd575b", "prompt": "Astronauts shuttle from space to volcano" }

response = requests.post(url, json=payload, headers=headers) print(response.text) ```

点击运行,可以发现会得到一个结果,如下:

json { "success": true, "task_id": "c6e529d1-a06d-4c12-91b2-c855135131c3", "video_id": "36908c49-c2bb-4a11-bd5a-b8512b004818", "prompt": "Astronauts shuttle from space to volcano", "video_url": "https://platform.cdn.acedata.cloud/luma/c6e529d1-a06d-4c12-91b2-c855135131c3.mp4", "video_height": 656, "video_width": 1552, "state": "completed", "thumbnail_url": "https://platform.cdn.acedata.cloud/luma/c6e529d1-a06d-4c12-91b2-c855135131c3.jpg", "thumbnail_width": 1552, "thumbnail_height": 656 }

可以看出该视频是在需要扩展的视频基础上进行扩展的,结果内容与上文的是一致的,这也就实现歌曲的继续生成功能。

当然我们也可以指定视频的链接来进行扩展生成,填如下信息:

运行后得到了如下结果:

json { "success": true, "task_id": "1dcb5902-a7be-4b77-ba5d-dd8ec82b26ca", "video_id": "f0187dc2-339f-4a08-a435-c3a3341f620a", "prompt": "Astronauts shuttle from space to volcano", "video_url": "https://platform.cdn.acedata.cloud/luma/1dcb5902-a7be-4b77-ba5d-dd8ec82b26ca.mp4", "video_height": 656, "video_width": 1552, "state": "completed", "thumbnail_url": "https://platform.cdn.acedata.cloud/luma/1dcb5902-a7be-4b77-ba5d-dd8ec82b26ca.jpg", "thumbnail_width": 1552, "thumbnail_height": 656 }

根据结果可以看出根据视频链接也可以实现视频扩展的功能。

最后我们还可以对扩展视频中指定一个尾帧图片来进行扩展,下面是尾帧图片信息:

尾帧

接下来在上面的基础上添加尾帧图片信息,具体的如下所示:

点击运行后得到如下信息:

json { "success": true, "task_id": "b816b2b4-c345-4673-9e19-83e91f91b643", "video_id": "c5400053-63e6-4206-8082-31cf9dd1e7ed", "prompt": "Astronauts shuttle from space to volcano", "video_url": "https://platform.cdn.acedata.cloud/luma/b816b2b4-c345-4673-9e19-83e91f91b643.mp4", "video_height": 656, "video_width": 1552, "state": "completed", "thumbnail_url": "https://platform.cdn.acedata.cloud/luma/b816b2b4-c345-4673-9e19-83e91f91b643.jpg", "thumbnail_width": 1552, "thumbnail_height": 656 }

可以看出,在上文扩展视频的基础上,还可以指定尾帧图片来进行扩展。

异步回调

由于 Luma 生成视频的时间相对较长,大约需要 1-2 分钟,如果 API 长时间无响应,HTTP 请求会一直保持连接,导致额外的系统资源消耗,所以本 API 也提供了异步回调的支持。

整体流程是:客户端发起请求的时候,额外指定一个 callback_url 字段,客户端发起 API 请求之后,API 会立马返回一个结果,包含一个 task_id 的字段信息,代表当前的任务 ID。当任务完成之后,生成音乐的结果会通过 POST JSON 的形式发送到客户端指定的 callback_url,其中也包括了 task_id 字段,这样任务结果就可以通过 ID 关联起来了。

下面我们通过示例来了解下具体怎样操作。

首先,Webhook 回调是一个可以接收 HTTP 请求的服务,开发者应该替换为自己搭建的 HTTP 服务器的 URL。此处为了方便演示,使用一个公开的 Webhook 样例网站 https://webhook.site/,打开该网站即可得到一个 Webhook URL,如图所示:

将此 URL 复制下来,就可以作为 Webhook 来使用,此处的样例为 https://webhook.site/0c87ca0e-cd74-4577-8d68-f2b80fbf8a13。

接下来,我们可以设置字段 callback_url 为上述 Webhook URL,同时填入 prompt,如图所示:

点击运行,可以发现会立即得到一个结果,如下:

json { "task_id": "732f8282-7cf8-401c-95f2-42c33aa079a6" }

稍等片刻,我们可以在 https://webhook.site/0c87ca0e-cd74-4577-8d68-f2b80fbf8a13 上观察到生成歌曲的结果,如图所示:

内容如下:

json { "success": true, "task_id": "732f8282-7cf8-401c-95f2-42c33aa079a6", "video_id": "4d8013c3-5de0-41aa-966e-0b1a51d1c633", "prompt": "Astronauts shuttle from space to volcano", "video_url": "https://platform.cdn.acedata.cloud/luma/732f8282-7cf8-401c-95f2-42c33aa079a6.mp4", "video_height": 752, "video_width": 1360, "state": "completed", "thumbnail_url": "https://platform.cdn.acedata.cloud/luma/732f8282-7cf8-401c-95f2-42c33aa079a6.jpg", "thumbnail_width": 1360, "thumbnail_height": 752 }

可以看到结果中有一个 task_id 字段,其他的字段都和上文类似,通过该字段即可实现任务的关联。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/35447.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

基础算法——搜索与图论

搜索与图论 图的存储方式2、最短路问题2.1、Dijkstra算法(朴素版)2.2、Dijkstra算法(堆优化版)2.3、Bellman-Ford算法2.4、SPFA求最短路2.5、SPFA判负环2.6、Floyd算法 图的存储方式 2、最短路问题 最短路问题可以分为单源最短路…

Online Monocular Lane Mapping

IROS 2023 港科大 文章链接:http://arxiv.org/abs/2307.11653 github:GitHub - HKUST-Aerial-Robotics/MonoLaneMapping: Online Monocular Lane Mapping Using Catmull-Rom Spline (IROS 2023) 动机 摆脱高精地图,使用车端的传感器来实现车端…

29.两数相除 python

两数相除 题目题目描述示例 1:示例 2:提示:题目链接 题解解题思路python实现代码解释提交结果 题目 题目描述 给你两个整数,被除数 dividend 和除数 divisor。将两数相除,要求 不使用 乘法、除法和取余运算。 整数除法应该向零截断&#x…

MicroBlaze软核开发(二):GPIO

实现功能:使用 MicroBlaze软核,配置GPIO用拨码开关控制LED灯 Vivado版本:2018.3 目录 引言 vivado部分: 一、配置GPIO 二、生成HDL文件编译 SDK部分: 一、导出硬件启动SDK 二、新建应用程序工程 三、编写程序代…

sdk项目的git 标记新tag的版本号

在 Git 中,tag 是用来标记某个特定的提交点(通常是发布版本或重要的里程碑)的工具。通过 git tag,你可以为版本号创建标记,帮助团队跟踪不同版本的代码。 如果你想创建一个新的版本号标签,可以按照以下步骤…

40分钟学 Go 语言高并发:服务注册与发现

服务注册与发现 一、系统架构设计 让我们先通过流程图了解服务注册与发现的整体架构: 二、核心组件实现 1. 服务注册中心 package discoveryimport ("context""sync""time" )// ServiceInstance 服务实例 type ServiceInstance…

〔 MySQL 〕索引

目录 1. 没有索引,可能会有什么问题 2. 认识磁盘 MySQL与存储 先来研究一下磁盘: 在看看磁盘中一个盘片​编辑 扇区 定位扇区​编辑 结论 磁盘随机访问(Random Access)与连续访问(Sequential Access) 3. MySQL 与磁盘交互基本单位 4. 建立共识…

微信小程序里的小游戏研发需要什么技术栈

研发小程序里的小游戏通常需要以下技术栈: 前端技术 HTML5 / CSS3:用于构建游戏的界面布局和样式。JavaScript:作为核心编程语言,实现游戏的逻辑和交互。小程序开发框架:如微信小程序的开发框架,了解其 API…

php 生产者-消费者实现

一、项目背景 mes报工需求,原项目接口接收产线上位抛来的数据,处理无误后存储在本地,最后抛给工厂接口。 但是有时候工厂数据响应太慢,也导致mes响应给上位变慢,拖慢了mes系统。 现要求,将原接口中抛给工厂…

SpringBoot 解决跨域问题

SpringBoot 解决跨域问题 遇到前端跨域访问问题,类似于这样的: 在Springboot项目里加上这个配置文件CorsConfig.java,重启之后即可实现跨域访问,前端无需再配置跨域。 1、添加跨域工具包CorsConfig 2、写跨域代码 import org.sp…

IO基础(缓冲流)

FileInputStream、FileOutputStream、FileReader、FileWriter属于基础流。 缓冲流是高级流。能够高效的处理数据。原理:底层自带了长度为8192的缓冲区提高性能 字节缓冲流:BufferedInputStream、BufferedOutputStream 字符缓冲流:Buffered…

云数据库 Memcache

Memcached 是一个高性能的分布式内存缓存系统,主要用于加速动态网页应用的访问速度,通过减少数据库查询次数来提高系统性能。Memcached 将常用的数据存储在内存中,因此提供了非常快速的读取和写入操作,通常用于缓存热点数据&#…

高转化的Facebook广告文案的秘诀

Facebook 广告文案是制作有效 Facebook 广告的关键方面。它侧重于伴随广告视觉元素的文本内容。今天我们的博客将深入探讨成功的 Facebook 广告文案的秘密! 一、广告文案怎么写? 正文:这是帖子的正文,出现在您姓名的正下方。它可…

算法基础学习Day2(双指针)

文章目录 1.题目2.题目解答1.快乐数题目及题目解析算法学习代码提交 2.题目2题目及题目解析算法学习代码提交 1.题目 202. 快乐数 - 力扣(LeetCode)11. 盛最多水的容器 - 力扣(LeetCode) 2.题目解答 1.快乐数 题目及题目解析 …

Web3与人工智能的跨界融合:数据隐私与去中心化的新机遇

随着Web3和人工智能(AI)技术的不断发展,两者的结合正在成为未来互联网的重要趋势。Web3代表着去中心化的未来,AI则提供了强大的智能化能力。当这两者结合时,不仅为数据隐私保护提供了新的解决方案,还推动了…

DevOps系统设计和技术选型

命名是一件痛苦的事情,除非你不想要一个好名字。 我正在做的这个管理系统叫什么合适,或者是什么类型的系统,想去想来不知所措,后来想想这么小的东西纠结什么,先从小的细节一点点来,能用就行,就用…

2024年华中杯数学建模A题太阳能路灯光伏板的朝向设计问题解题全过程文档及程序

2024年华中杯数学建模 A题 太阳能路灯光伏板的朝向设计问题 原题再现 太阳能路灯由太阳能电池板组件部分(包括支架)、LED灯头、控制箱(包含控制器、蓄电池)、市电辅助器和灯杆几部分构成。太阳能电池板通过支架固定在灯杆上端。…

sheng的学习笔记-AI-序列模型(Sequence Models),RNN,GRU,LSTM

Ai目录:sheng的学习笔记-AI目录-CSDN博客 基础知识 定义: 序列模型是输入输出均为序列数据的模型,它能够将输入序列数据转换为目标序列数据。常见的序列模型类型包括一对一、一对多、多对一、部分多对多和完全多对多。 重要的是需要有顺序…

《网络安全》相关知识点总结

第一章 安全现状及趋势 第二章 网络安全概述 2.1 信息保障阶段 信息保障技术框架IATF: 由美国国家安全局制定,提出“纵深防御策略” DiD(Defense-in-Depth Strategy) 在信息保障的概念下,信息安全保障的PDRR模型的内涵…

DApp浏览器能否集成在自己开发的DApp里?

答案是肯定的。在技术层面,DApp浏览器可以完全集成到你自己开发的DApp中,从而提供一个一体化的用户体验。本文将详细分析如何实现这一目标,以及其中的技术实现、优势和需要注意的问题。 一、什么是DApp浏览器? DApp浏览器是一种支…