메인 콘텐츠로 건너뛰기
AI의 활용이 넓어짐에 따라, 각종 AI 프로그램이 점차 보급되고 있습니다. AI는 점차 사람들의 업무와 생활 전반에 깊이 들어오고 있습니다. 또한 AI가 관련된 산업도 점점 더 많아지고 있으며, 초기의 글쓰기부터 의료 교육, 그리고 현재의 비디오에 이르기까지 확장되고 있습니다. Luma는 전문적이고 고품질의 비디오 생성 플랫폼으로, 사용자는 소재만 업로드하면 다양한 스타일과 효과에 따라 고품질 비디오를 자동으로 생성할 수 있습니다. 이 AI 비디오 생성기는 유명 기술 기업 출신의 팀원들이 개발했으며, 복잡한 편집 도구 없이 모든 사람이 손쉽게 뛰어난 비디오를 만들 수 있도록 하는 것을 목표로 합니다. 그러나 Luma 공식은 API를 제공하지 않고 있으며, AceDataCloud는 Suno 공식 연동을 시뮬레이션한 Luma API 세트를 제공하여 원하는 비디오를 편리하고 빠르게 생성할 수 있습니다.

신청 및 사용

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는 즉시 하나의 결과를 반환하며, 현재 작업 ID를 나타내는 task_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 필드가 있는 것을 확인할 수 있으며, 다른 필드는 모두 위와 유사합니다. 해당 필드를 통해 작업을 연결할 수 있습니다.