跳轉到主要內容
隨著 AI 的應用變廣,各類 AI 程式已逐漸普及。AI 已逐漸深入到人們的工作生活方方面面。而 AI 涉及的產業也越來越多,從最初的寫作,到醫療教育,再到現在的影片。 Luma 是一個專業高品質的影片生成平台,使用者只需上傳素材,即可根據不同風格和效果自動生成高品質影片。該 AI 影片生成器由來自知名科技公司的團隊成員開發,目標是無需複雜的編輯工具,讓每個人都能輕鬆製作出色的影片。 然而 Luma 官方並沒有提供 API,AceDataCloud 提供了一套 Luma 的 API,模擬串接了 Suno 官方,可以方便快捷地生成想要的影片。

申請和使用

要使用 Luma Videos Generation API,首先到 Ace Data Cloud 控制台 取得您的 API Token,留作備用。 如果你尚未登入或註冊,會自動跳轉到登入頁面邀請你註冊和登入,完成後會自動返回目前頁面。 一個 API Token 即可呼叫平台所有服務,無需為每個服務單獨申請。 首次申請會贈送免費額度,可免費體驗;額度不足時可在 控制台 儲值通用餘額。
📘 完整文件:Luma Videos Generation API →

基本使用

想要生成什麼影片,可以任意輸入一段文字,比如我想生成一個關於太空人穿梭於太空和火山之間的影片,就可以輸入 Astronauts shuttle from space to volcano,如圖所示:

生成的程式碼如下:

主要請求參數:
  • prompt:生成影片的提示詞。
  • aspect_ratio:影片寬高比,預設 16:9。
  • end_image_url:可選,指定尾幀。
  • enhancement:可選,清晰度增強開關。
  • loop:是否生成循環影片,預設 false。
  • timeout:可選,逾時秒數。
  • callback_url:非同步回呼位址。
  • async:可選,設為 true 時介面立即返回 task_id,無需提供 callback_url,隨後透過對應的任務查詢介面輪詢取得結果。
可以點擊「Try」按鈕直接測試 API,稍等 1-2 分鐘,結果如下:
可以看到這時候我們就得到了這個影片的相關資訊,包括影片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:生成影片的關鍵詞內容。
填寫範例如下:

填寫完畢之後自動生成了程式碼如下:

對應的程式碼:
得到的結果如下:
最後得到的結果與上文類似,生成的影片首幀包含了我們傳入的圖片,當然也可以同時傳入首尾幀圖片連結來生成影片,只需要在上面的基礎上再加一個尾幀圖片即可,尾幀的圖片資訊如下: 尾幀 填寫範例如下:

最後得出如下結果:
結果與上文是類似的,生成的影片同時包含了首幀與尾幀的圖片,這也就完成了自訂首尾幀來生成影片。

影片擴展功能

如果想對生成的影片進行繼續生成的話,可以將參數 action 設定為 extend ,並且輸入需要繼續生成影片的ID或者影片連結,影片ID和影片連結的取得是根據基本使用來取得,如下圖所示:

這時候可以看到影片的ID為:
注意,這裡的影片中 video_id 和 video_url 是生成後影片的ID和影片連結,如果你不知道如何生成影片,可以參考上文的基本使用來生成影片。
想要繼續生成影片的話必須上傳影片連結或影片的ID,下面示範使用影片ID來進行擴展,接下來我們必須填寫關鍵字自訂生成影片,就可以指定如下內容:
  • action:此時擴展影片的行為,在這應為 extend 。
  • prompt:需要擴展影片的關鍵字。
  • video_url:需要擴展生成影片的連結。
  • video_id:需要擴展生成影片的唯一ID。
  • end_image_url:擴展生成影片可指定尾幀的圖片連結,可選參數。
填寫範例如下:

填寫完畢之後自動生成了程式碼如下:

對應的Python程式碼:
點擊執行,可以發現會得到一個結果,如下:
可以看出該影片是在需要擴展的影片基礎上進行擴展的,結果內容與上文的是一致的,這也就實現歌曲的繼續生成功能。 當然我們也可以指定影片的連結來進行擴展生成,填寫如下資訊:

執行後得到了如下結果:
根據結果可以看出根據影片連結也可以實現影片擴展的功能。 最後我們還可以對擴展影片中指定一個尾幀圖片來進行擴展,下面是尾幀圖片資訊: 尾幀 接下來在上面的基礎上添加尾幀圖片資訊,具體的如下所示:

點擊執行後得到如下資訊:
可以看出,在上文擴展影片的基礎上,還可以指定尾幀圖片來進行擴展。

非同步回呼

由於 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,如圖所示:

點擊執行,可以發現會立即取得一個結果,如下:
稍等片刻,我們可以在 https://webhook.site/0c87ca0e-cd74-4577-8d68-f2b80fbf8a13 上觀察到生成歌曲的結果,如圖所示: 內容如下:
可以看到結果中有一個 task_id 欄位,其他欄位都和上文類似,透過該欄位即可實現任務的關聯。