Перейти к основному содержанию
В этой статье будет представлена инструкция по интеграции Midjourney Videos API, которая позволяет генерировать официальные видео Midjourney с помощью ввода пользовательских параметров.

Процесс подачи заявки

Чтобы использовать API, сначала необходимо перейти на страницу Midjourney Videos API и подать заявку на соответствующую услугу. После перехода на страницу нажмите кнопку «Acquire», как показано на изображении: Если вы еще не вошли в систему или не зарегистрированы, вас автоматически перенаправит на страницу входа, где вас пригласят зарегистрироваться и войти. После регистрации и входа вы автоматически вернетесь на текущую страницу. При первой подаче заявки предоставляется бесплатный лимит, который позволяет бесплатно использовать этот API.

Основное использование

Сначала ознакомьтесь с основным способом использования, который заключается в вводе подсказки prompt, действия action, массива ссылок на изображения для первой и последней кадров image_url, чтобы получить обработанный результат. Сначала необходимо просто передать поле action, значение которого будет generate. Оно включает два действия: генерация видео (generate) и расширение видео (extend), конкретное содержание следующее:

Здесь мы видим, что мы настроили заголовки запроса, включая:
  • accept: формат ответа, который вы хотите получить, здесь указано application/json, то есть формат JSON.
  • authorization: ключ для вызова API, который можно выбрать из выпадающего списка после подачи заявки.
Также настроено тело запроса, включая:
  • image_url: ссылка на изображение для первого кадра видео.
  • end_image_url: необязательный, указывает ссылку на изображение для последнего кадра видео.
  • video_id: необходимо указать ID видео при расширении видео.
  • video_index: необходимо указать, какое конкретно видео из video_id, индекс начинается с 0, по умолчанию 0.
  • action: действие для этой задачи генерации видео, включает два действия: генерация видео (generate), расширение видео (extend).
  • prompt: подсказка.
  • mode: режим скорости генерации видео, по умолчанию fast.
  • resolution: четкость видео, по умолчанию 720p.
  • loop: нужно ли генерировать циклическое видео, по умолчанию false.
  • callback_url: URL для обратного вызова результата.
После выбора можно увидеть, что справа также сгенерирован соответствующий код, как показано на изображении:

Нажмите кнопку «Try», чтобы провести тестирование, как показано на изображении, и мы получили следующий результат:
{
  "image_url": "https://storage.fonedis.cc/upload_1751816808164156352.png",
  "image_width": 560,
  "image_height": 688,
  "progress": 100,
  "video_id": "1751816807896311",
  "video_urls": [
    "https://storage.fonedis.cc//video/1c67c36c-8177-4f19-ad72-1dc1567265a6/0_0.mp4",
    "https://storage.fonedis.cc//video/1c67c36c-8177-4f19-ad72-1dc1567265a6/0_1.mp4",
    "https://storage.fonedis.cc//video/1c67c36c-8177-4f19-ad72-1dc1567265a6/0_2.mp4",
    "https://storage.fonedis.cc//video/1c67c36c-8177-4f19-ad72-1dc1567265a6/0_3.mp4"
  ],
  "task_id": "037955e0-deee-4050-baa8-1416300d67e2",
  "success": true
}
Возвращаемый результат содержит несколько полей, описание которых следующее:
  • success: статус задачи генерации видео.
  • task_id: ID задачи генерации видео.
  • image_url: изображение обложки задачи генерации видео.
  • image_width: ширина изображения обложки задачи генерации видео.
  • image_height: высота изображения обложки задачи генерации видео.
  • video_id: ID видео задачи генерации видео.
  • video_urls: массив ссылок на видео задачи генерации видео.
Мы получили удовлетворительную информацию о видео, и нам нужно просто получить сгенерированное видео Midjourney по ссылкам из video_urls. Если вы хотите сгенерировать соответствующий код интеграции, вы можете просто скопировать его, например, код CURL будет следующим:
curl -X POST 'https://api.acedata.cloud/midjourney/videos' \
-H 'accept: application/json' \
-H 'authorization: Bearer {token}' \
-H 'content-type: application/json' \
-d '{
  "action": "generate",
  "prompt": "A cat sitting on a table",
  "image_url": "https://cdn.acedata.cloud/jgo1cw.jpg"
}'

Функция расширения видео

Если вы хотите продолжить генерацию уже созданного видео Kling, вы можете установить параметр action в значение extend и ввести ID видео, для которого нужно продолжить генерацию. ID видео можно получить на основе основного использования. В этом случае можно увидеть, что ID видео из предыдущего текста:
"video_id": "1751816807896311"
Обратите внимание, что здесь video_id видео — это ID сгенерированного видео. Если вы не знаете, как сгенерировать видео, вы можете обратиться к основному использованию, чтобы сгенерировать видео.
Далее необходимо заполнить следующий шаг с подсказкой, чтобы настроить генерацию видео, указав следующее содержание:
  • video_index: выберите индекс расширяемого видео, этот индекс из video_urls, индекс начинается с 0, значение по умолчанию — 0.
  • video_id: ID видео, для которого нужно расширить.
  • action: действие для расширения видео, равное extend.
  • prompt: подсказка.
Пример заполнения будет следующим:

После заполнения автоматически сгенерирован код следующим образом:

Соответствующий код на Python:
import requests

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

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

payload = {
    "action": "extend",
    "prompt": "A cat sitting on a table",
    "video_id": "1751816807896311",
    "video_index": 1
}

response = requests.post(url, json=payload, headers=headers)
print(response.text)
Нажмите «Запустить», и вы получите результат, как показано ниже:
{
    "image_url": "https://storage.fonedis.cc/upload_1751817471047011172.png",
    "image_width": 560,
    "image_height": 688,
    "progress": 100,
    "video_id": "1751818094559027",
    "video_urls": [
        "https://storage.fonedis.cc//video/a4bd2f43-b925-462d-9725-8aef98403133/0_0.mp4",
        "https://storage.fonedis.cc//video/a4bd2f43-b925-462d-9725-8aef98403133/0_1.mp4",
        "https://storage.fonedis.cc//video/a4bd2f43-b925-462d-9725-8aef98403133/0_2.mp4",
        "https://storage.fonedis.cc//video/a4bd2f43-b925-462d-9725-8aef98403133/0_3.mp4"
    ],
    "task_id": "da3bdcd0-9c21-4b40-877a-2c36e5f479e5",
    "success": true
}
Можно увидеть, что результат совпадает с вышеупомянутым, что также реализует функцию расширения видео.

Асинхронный обратный вызов

Поскольку время генерации API Midjourney Videos относительно долгое, примерно 1-2 минуты, если API долго не отвечает, HTTP-запрос будет поддерживать соединение, что приведет к дополнительному потреблению системных ресурсов, поэтому этот API также предоставляет поддержку асинхронных обратных вызовов. Общий процесс таков: когда клиент инициирует запрос, дополнительно указывается поле callback_url, после того как клиент инициирует API-запрос, API немедленно возвращает результат, содержащий информацию о поле task_id, представляющем текущий ID задачи. Когда задача завершена, результат генерации видео будет отправлен на указанный клиентом callback_url в формате POST JSON, который также включает поле task_id, так что результат задачи можно связать по ID. Давайте рассмотрим конкретные действия на примере. Во-первых, Webhook обратный вызов — это служба, которая может принимать HTTP-запросы, разработчики должны заменить его на URL своего HTTP-сервера. Здесь для удобства демонстрации используется публичный пример сайта Webhook https://webhook.site/, открыв этот сайт, вы получите URL Webhook, как показано на изображении:

Скопировав этот URL, вы можете использовать его в качестве Webhook, пример здесь: https://webhook.site/556e6971-b41f-4fa8-9151-6e91acd0399f. Далее мы можем установить поле callback_url на указанный Webhook URL, одновременно заполнив соответствующие параметры, конкретное содержание показано на изображении:

Нажав “Запустить”, можно сразу получить результат, как показано ниже:
{
  "task_id": "b726a27a-f379-4d91-b569-cfe4b7b299ee"
}
Через некоторое время мы можем наблюдать результат генерации видео на https://webhook.site/556e6971-b41f-4fa8-9151-6e91acd0399f, как показано на изображении:

Содержимое следующее:
{
  "image_url": "https://storage.fonedis.cc/upload_1751818513244368774.png",
  "image_width": 560,
  "image_height": 688,
  "progress": 100,
  "video_id": "1751818512924054",
  "video_urls": [
    "https://storage.fonedis.cc//video/9ff3783e-bcf6-4f11-b738-09aa52318e6e/0_0.mp4",
    "https://storage.fonedis.cc//video/9ff3783e-bcf6-4f11-b738-09aa52318e6e/0_1.mp4",
    "https://storage.fonedis.cc//video/9ff3783e-bcf6-4f11-b738-09aa52318e6e/0_2.mp4",
    "https://storage.fonedis.cc//video/9ff3783e-bcf6-4f11-b738-09aa52318e6e/0_3.mp4"
  ],
  "task_id": "b726a27a-f379-4d91-b569-cfe4b7b299ee",
  "success": true
}
Можно увидеть, что в результате есть поле task_id, остальные поля аналогичны вышеупомянутым, с помощью этого поля можно связать задачи.

Обработка ошибок

При вызове API, если возникнет ошибка, API вернет соответствующий код ошибки и информацию. Например:
  • 400 token_mismatched: Неверный запрос, возможно, из-за отсутствующих или недействительных параметров.
  • 400 api_not_implemented: Неверный запрос, возможно, из-за отсутствующих или недействительных параметров.
  • 401 invalid_token: Неавторизованный, недействительный или отсутствующий токен авторизации.
  • 429 too_many_requests: Слишком много запросов, вы превысили лимит частоты.
  • 500 api_error: Внутренняя ошибка сервера, что-то пошло не так на сервере.

Пример ответа об ошибке

{
  "success": false,
  "error": {
    "code": "api_error",
    "message": "fetch failed"
  },
  "trace_id": "2cf86e86-22a4-46e1-ac2f-032c0f2a4e89"
}

Заключение

С помощью этого документа вы узнали, как использовать API Midjourney Videos для генерации видео с помощью вводимых подсказок и изображения первого кадра. Надеемся, что этот документ поможет вам лучше интегрировать и использовать этот API. Если у вас есть какие-либо вопросы, пожалуйста, не стесняйтесь обращаться в нашу техническую поддержку.