Luma API 的使用

news2024/10/28 8:29:04

Luma 是一个专注于高质量视频生成的平台,用户只需上传素材,即可根据不同的风格和效果自动生成高质量的视频。该 AI 视频生成器是由来自知名科技公司的团队开发,旨在让每个人在不使用复杂编辑工具的情况下,轻松制作优秀的视频。

然而,Luma 官方并未提供 API。AceDataCloud 提供了一套 Luma 的 API,模拟了与 Suno 官方的对接,使得生成所需视频变得方便快捷。

申请和使用

使用 Luma Videos API 前,首先请访问 Ace Data Cloud 页面,点击「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:此视频生成任务的唯一标识
  • 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/0b3b2e88-eaf4-441f-b032-eb580642a140.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.coloradmin.cn/o/2225310.html

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

相关文章

docker sameersbn/bind dns服务器

1. 安装 #下载docker 镜像 docker pull sameersbn/bind#运行 53端口若被占用会启动失败 docker run --name dns -d --restartalways \ --publish 53:53/tcp \ --publish 53:53/udp \ --publish 10000:10000/tcp \ -v /etc/localtime:/etc/localtime \ -v /data/bind/:/data \…

Semantic Kernel进阶:创建和管理聊天(ChatCompletion)历史记录对象(四)

一、引言 在构建基于Semantic Kernel的AI应用时,聊天历史记录对象(Chat History)是维护对话上下文和连续性的关键。本文将一步步指导你如何创建和管理聊天历史记录对象,从而为你的AI代理提供一个强大的对话管理工具。 二、聊天…

java平方根计算 C语言指针变量

1. public static void main(String[] args) { Scanner scnew Scanner(System.in);System.out.println("请输入你的数&#xff1a;"); int numsc.nextInt();for (int i 1; i < num; i) {if (i*inum){System.out.println(i"就是"num"的平方根"…

基于Python的B站视频数据分析与可视化

基于Python的B站视频数据分析与可视化 爬取视频、UP主信息、视频评论 功能列表 关键词搜索指定帖子ID爬取指定UP主的主页爬取支持评论爬取生成评论词云图支持数据存在数据库支持可视化 部分效果演示 爬取的UP主信息 关键词搜索爬取 指定UP主的主页爬取 指定为黑马的了 爬取视…

ubuntu2204配置cuda

ubuntu2204配置cuda ✅系统版本&#xff1a;ubuntu22.04 LTS ✅显卡&#xff1a;英伟达2070S ✅CPU&#xff1a;i9 10900 ✅主板&#xff1a;戴尔品牌机 教程&#x1f4a8;&#x1f4a8;&#x1f4a8;&#x1f4a8;&#xff1a; ps&#xff1a;本人按照该方法一遍成功&#…

Python的协程与传统的线程相比,是否能更有效地利用计算资源?在多大程度上,这种效率是可测量的?如何量化Python协程的优势|协程|线程|性能优化

目录 1. 协程与线程的基本概念 1.1 线程 1.2 协程 2. 协程的实现原理 2.1 基本示例 3. 协程与线程的效率对比 3.1 资源利用率 3.2 性能测试 4. 使用场景分析 4.1 适用场景 4.2 不适用场景 5. 性能监测与测量 5.1 使用时间记录 5.2 使用第三方库 6. 总结与展望 P…

移情别恋c++ ദ്ദി˶ー̀֊ー́ ) ——15.C++11(1)

1. 自动类型推导 (auto) C11 引入了 auto 关键字&#xff0c;可以根据初始值的类型自动推导变量的类型&#xff0c;从而减少了手动声明类型的繁琐。例如&#xff1a; std::vector<int> vec {1, 2, 3, 4}; auto it vec.begin(); // 自动推导类型为 std::vector<in…

C++类和对象 (中)

文章目录 前言一. 类的默认成员函数1.1 构造函数概念特点 1.2 析构函数定义与特点作用注意 1.3 拷贝构造函数概念特性 2. 赋值运算符重载2.1 运算符重载特性注意 2.2 赋值运算符重载定义特性 2.3 流运算符重载概念注意 3. 日期类实现4. const成员函数概念注意 5. 取地址运算符重…

【c++丨STL】string模拟实现(附源码)

&#x1f31f;&#x1f31f;作者主页&#xff1a;ephemerals__ &#x1f31f;&#x1f31f;所属专栏&#xff1a;C、STL 目录 前言 一、头文件&#xff08;成员变量与函数声明&#xff09; 二、源文件&#xff08;功能实现&#xff09; 交换两字符串 构造函数 拷贝构造…

人工智能进程;算子加速的具体计算部分;大模型GPT5:参数18万亿;大模型面临问题

目录 人工智能进程 算子加速的简单理解,举例说明 一、简单理解 二、举例说明 一、算子加速的具体计算部分 二、举例说明 三、算子加速是否仅针对GPU 大模型GPT5:参数18万亿 大模型面临问题 算力集群设计框架 人工智能进程

【c++高级篇】--多任务编程/多线程(Thread)

目录 1.进程和线程的概念&#xff1a; 1.1 进程&#xff08;Process&#xff09;&#xff1a; 1.2线程&#xff08;Thread&#xff09;&#xff1a; 1.3 对比总结&#xff1a; 2.多线程编程&#xff1a; 2.1 基于线程的多任务处理&#xff08;Thread&#xff09;&#xf…

jenkins ssh 免密报错Host key verification failed.

jenkins 发布项目&#xff0c;ssh连接远程服务器时报错&#xff1a;Host key verification failed. 解决&#xff1a; 原因是生成的sshkey不是用的jenkins用户&#xff0c;所以切换用户到&#xff1a;jenkins重新生成sshkey su jenkins ssh-keygen -t rsa ssh-copy-id -i ~/…

Linux: Shell编程入门

Shell 编程入门 1 ) Shell 概念 shell 是 在英语中 壳, 外壳的意思可以把它想象成嵌入在linux这样的操作系统里面的一个微型的编程语言不像C语言, C 或 Java 等编程语言那么完整&#xff0c;它可以帮我们完成很多自动化任务例如保存数据监测系统的负载等等&#xff0c;我们同样…

MATLAB生物细胞瞬态滞后随机建模定量分析

&#x1f3af;要点 基于随机动态行为受化学主方程控制&#xff0c;定量分析单细胞瞬态效应。确定性常微分方程描述双稳态和滞后现象。通过随机性偏微分方程描述出暂时性滞后会逐渐达到平稳状态&#xff0c;并利用熵方法或截断方法计算平衡收敛速度的估计值。随机定量分析模型使…

什么是字节序、大小端、高低字节、高低地址?

目录 1. 什么是字节序&#xff08;Endianness&#xff09;&#xff1f; 2. 什么是大小端&#xff08;Big-Endians and Little-Endian&#xff09;&#xff1f; 3. 什么时候需要用到大小端的概念&#xff1f; 4. 如何确认系统的大小端模式&#xff1f; 5. 什么是大小端定义…

[LVGL] MessageBox

该例子用lvgl9 来测试&#xff0c;对话框从底部升上来。当点击关闭或者确认按键时&#xff0c;会向绑定对象发送按键事件&#xff0c;参数 100/101. /*** file lv_demo_test.c**/#include "stdio.h" #include "stdlib.h" #include "lvgl.h"#ifde…

985研一,转嵌入式好还是后端开发好?

有个老铁问&#xff0c;985研一&#xff0c;转嵌入式好还是后端开发好&#xff1f; 我认为&#xff0c;这学历&#xff0c;两个随便挑&#xff0c;我说的&#xff0c;从趋势来看&#xff0c;更建议嵌入式&#xff0c;走供应链上游&#xff0c;芯片原厂、新能源车企、军工或者搞…

IDEA自动生成时序图插件-SequenceDiagram

目录 前言介绍安装在线安装离线安装 使用基本使用使用技巧 知识扩展为什么要画时序图&#xff1f;为什么要使用SequenceDiagram插件&#xff1f; 前言 工欲善其事&#xff0c;必先利其器&#xff0c;用对工具&#xff0c;事半功倍。我向大家介绍一款卓越的插件——Sequence Dia…

衡石分析平台系统分析人员手册-展示类控件创建富文本攻略

富文本​ 富文本控件是一种常见的控件&#xff0c;可用来展示文本信息、用户属性信息&#xff0c;在数据分析中起到辅助分析的功能。 富文本常见的使用场景有&#xff1a; 仅展示纯文本信息。在富文本中展示数据集字段、指标、参数等信息。使用富文本展示用户属性相关信息。在…

H3m-Blog

H3m-Blog 一、项目介绍 1.1 项目介绍 一个基于SpringBoot和Vue3的博客系统&#xff0c;博客名称来源于陈奕迅于2009年发布的粤语专辑《H3M》 1.2 技术架构 主要技术栈&#xff1a; SpringBoot2 Vue3 MySQL8.0 1.3 主要功能 内容丰富&#xff0c;尽情体验~ 二、快速开始…