> ## Documentation Index
> Fetch the complete documentation index at: https://docs.acedata.cloud/llms.txt
> Use this file to discover all available pages before exploring further.

# Luma 動画生成 API 連携説明

> Luma Video Generation API guide - Ace Data Cloud

AI の応用が広がるにつれ、さまざまな AI プログラムが徐々に普及してきました。AI は人々の仕事や生活のあらゆる側面に徐々に深く浸透しています。また、AI が関わる業界もますます増えており、当初のライティングから、医療・教育、そして現在の動画にまで及んでいます。

Luma はプロフェッショナルで高品質な動画生成プラットフォームであり、ユーザーは素材をアップロードするだけで、異なるスタイルや効果に基づいて高品質な動画を自動生成できます。この AI 動画生成ツールは、有名テクノロジー企業出身のチームメンバーによって開発されており、複雑な編集ツールを必要とせず、誰もが簡単に優れた動画を制作できることを目標としています。

しかし、Luma 公式は API を提供しておらず、AceDataCloud は Luma 用の API セットを提供し、Suno 公式との連携をシミュレートしており、必要な動画を便利かつ迅速に生成できます。

## 申請と使用

Luma Videos Generation API を使用するには、まず [Ace Data Cloud コンソール](https://platform.acedata.cloud/console/applications) で API Token を取得し、予備として保管してください。

![](https://cdn.acedata.cloud/dvc3cg.jpg)

まだログインまたは登録していない場合は、自動的にログインページへ移動し、登録とログインが案内されます。完了後は自動的に現在のページへ戻ります。

**1 つの API Token でプラットフォームのすべてのサービスを呼び出すことができ、サービスごとに個別で申請する必要はありません。** 初回申請時には無料クレジットが付与され、無料で試用できます。クレジットが不足した場合は、[コンソール](https://platform.acedata.cloud/console/coin) で共通残高をチャージできます。

> 📘 完全なドキュメント：[Luma Videos Generation API →](https://platform.acedata.cloud/documents/luma-videos)

## 基本的な使用方法

どのような動画を生成したいかに応じて、任意のテキストを入力できます。たとえば、宇宙飛行士が宇宙と火山の間を行き来する動画を生成したい場合は、`Astronauts shuttle from space to volcano` と入力できます。以下の図のとおりです。

<p>
  <img src="https://cdn.acedata.cloud/yub02j.png" width="500" className="m-auto" />
</p>

生成されるコードは以下のとおりです。

<p>
  <img src="https://cdn.acedata.cloud/ieq7yn.png" width="500" className="m-auto" />
</p>

主なリクエストパラメータ：

* `prompt`：動画を生成するためのプロンプト。
* `aspect_ratio`：動画のアスペクト比。デフォルトは 16:9。
* `end_image_url`：オプション、最終フレームを指定します。
* `enhancement`：オプション、鮮明度向上スイッチ。
* `loop`：ループ動画を生成するかどうか。デフォルトは false。
* `timeout`：オプション、タイムアウト秒数。
* `callback_url`：非同期コールバックアドレス。
* `async`：オプション、`true` に設定するとインターフェースは直ちに `task_id` を返します。`callback_url` を指定する必要はなく、その後、対応するタスク照会インターフェースでポーリングして結果を取得します。

「Try」ボタンをクリックして API を直接テストできます。1〜2 分ほど待つと、結果は以下のとおりです。

```json theme={null}
{
  "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://cdn.acedata.cloud/assets/examples/gemini/04a043bd-6b23-4b4e-945c-ce48158c3eee-3a89912507c7.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` フィールドには、以下の画像を動画の開始フレームとして渡すことができます。

![開始フレーム](https://cdn.acedata.cloud/r9vsv9.png)

次に、開始・終了フレームとキーワードに基づいて動画をカスタム生成するには、以下の内容を指定できます。

* action：動画生成タスクの動作。通常は通常生成の `generate` と拡張生成の `extend` であり、デフォルトは `generate` です。
* start\_image\_url：生成する動画の開始フレームを指定します。
* end\_image\_url：生成する動画の終了フレームを指定します。
* prompt：動画を生成するキーワード内容。

入力例は以下のとおりです。

<p>
  <img src="https://cdn.acedata.cloud/zvzydx.png" width="500" className="m-auto" />
</p>

入力完了後、自動生成されるコードは以下のとおりです。

<p>
  <img src="https://cdn.acedata.cloud/tx80pu.png" width="500" className="m-auto" />
</p>

対応するコード：

```python theme={null}
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.acedata.cloud/r9vsv9.png",
    "action": "generate",
    "prompt": "Astronauts shuttle from space to volcano"
}

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

得られる結果は以下のとおりです。

```json theme={null}
{
  "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
}
```

最終的に得られる結果は上記と似ており、生成された動画の開始フレームには渡した画像が含まれます。もちろん、開始・終了フレームの画像リンクを同時に渡して動画を生成することもできます。上記をベースに終了フレーム画像を 1 つ追加するだけです。終了フレームの画像情報は以下のとおりです。

![終了フレーム](https://cdn.acedata.cloud/0iad3k.png)

入力例は以下のとおりです。

<p>
  <img src="https://cdn.acedata.cloud/20igwi.png" width="500" className="m-auto" />
</p>

最終的に以下の結果が得られます：

```json theme={null}
{
  "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と動画リンクの取得は基本的な使用方法に従って取得します。以下の図のとおりです：

<p>
  <img src="https://cdn.acedata.cloud/fwknj4.png" width="500" className="m-auto" />
</p>

この時、動画の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：拡張して生成する動画で指定可能な終了フレームの画像リンク、オプションパラメータ。

入力例は以下のとおりです：

<p>
  <img src="https://cdn.acedata.cloud/vv0rxk.png" width="500" className="m-auto" />
</p>

入力が完了すると、以下のコードが自動生成されます：

<p>
  <img src="https://cdn.acedata.cloud/woapxi.png" width="500" className="m-auto" />
</p>

対応するPythonコード：

```python theme={null}
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 theme={null}
{
  "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
}
```

この動画は拡張する必要がある動画を基に拡張されており、結果の内容は上記と一致していることがわかります。これにより、楽曲を続けて生成する機能が実現されます。

もちろん、動画リンクを指定して拡張生成することもできます。以下の情報を入力します：

<p>
  <img src="https://cdn.acedata.cloud/0cv0hg.png" width="500" className="m-auto" />
</p>

実行後、以下の結果が得られます：

```json theme={null}
{
  "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
}
```

結果から、動画リンクに基づいても動画拡張機能を実現できることがわかります。

最後に、拡張動画で終了フレーム画像を指定して拡張することもできます。以下は終了フレーム画像の情報です：

![終了フレーム](https://cdn.acedata.cloud/0iad3k.png)

次に、上記に終了フレーム画像の情報を追加します。具体的には以下のとおりです：

<p>
  <img src="https://cdn.acedata.cloud/9p1vrj.png" width="500" className="m-auto" />
</p>

実行をクリックすると、以下の情報が得られます：

```json theme={null}
{
  "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 は直ちに結果を返します。その結果には、現在のタスク ID を表す `task_id` フィールド情報が含まれます。タスクが完了すると、音楽生成の結果は POST JSON の形式でクライアントが指定した `callback_url` に送信されます。その中にも `task_id` フィールドが含まれているため、タスクの結果を ID によって関連付けることができます。

以下では、例を通じて具体的な操作方法を確認します。

まず、Webhook コールバックは HTTP リクエストを受信できるサービスです。開発者は自身で構築した HTTP サーバーの URL に置き換える必要があります。ここではデモを容易にするため、公開 Webhook サンプルサイト [https://webhook.site/](https://webhook.site/) を使用します。このサイトを開くと、図に示すように Webhook URL を取得できます。

<p>
  <img src="https://cdn.acedata.cloud/q78okf.png" width="500" className="m-auto" />
</p>

この URL をコピーすれば、Webhook として使用できます。ここでのサンプルは [https://webhook.site/0c87ca0e-cd74-4577-8d68-f2b80fbf8a13](https://webhook.site/0c87ca0e-cd74-4577-8d68-f2b80fbf8a13) です。

次に、フィールド `callback_url` を上記の Webhook URL に設定し、同時に `prompt` を入力します。図に示すとおりです。

<p>
  <img src="https://cdn.acedata.cloud/n2fjvi.png" width="500" className="m-auto" />
</p>

実行をクリックすると、以下のように直ちに結果が返されることが確認できます。

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

少し待つと、[https://webhook.site/0c87ca0e-cd74-4577-8d68-f2b80fbf8a13](https://webhook.site/0c87ca0e-cd74-4577-8d68-f2b80fbf8a13) 上で生成された楽曲の結果を確認できます。図に示すとおりです。

![](https://cdn.acedata.cloud/1hwm5m.png)

内容は以下のとおりです。

```json theme={null}
{
    "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` フィールドがあり、その他のフィールドは上記と同様です。このフィールドを通じてタスクの関連付けを実現できます。


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.