Процесс получения доступа
Чтобы использовать Gemini Videos Generation API, сначала получите ваш API Token в консоли Ace Data Cloud и сохраните его для дальнейшего использования.
Если вы ещё не вошли в систему или не зарегистрировались, вы будете автоматически перенаправлены на страницу входа, где вам будет предложено зарегистрироваться и войти; после завершения вы автоматически вернётесь на текущую страницу.
Один API Token позволяет вызывать все сервисы платформы, не нужно подавать отдельную заявку для каждого сервиса. При первом получении предоставляются бесплатные кредиты для бесплатного тестирования; при недостатке кредитов можно пополнить общий баланс в консоли.
📘 Полная документация: Gemini Videos Generation API →
Базовое использование
Сначала ознакомимся с базовым способом использования: введите промптprompt, модель model и соотношение сторон aspect_ratio, после чего можно сгенерировать соответствующее видео.
Здесь можно увидеть, что мы настроили Request Headers, включая:
accept: формат результата ответа, который вы хотите получить; здесь указываетсяapplication/json, то есть формат JSON.authorization: ключ для вызова API, после получения его можно выбрать непосредственно из выпадающего списка.
prompt: текстовый промпт, описывающий содержимое видео, которое вы хотите сгенерировать, обязателен.model: модель для генерации видео; в настоящее время поддерживается толькоomni-flash, по умолчанию такжеomni-flash.aspect_ratio: соотношение сторон генерируемого видео; доступно16:9(горизонтальный формат) или9:16(вертикальный формат), по умолчанию16:9.resolution: необязательное выходное разрешение; доступно720pили1080p, по умолчанию720p.image_urls: необязательный массив ссылок на референсные изображения, используемый для направления генерации видео; пустые элементы будут проигнорированы. При использованииvideo_urlsдля редактирования видео этот параметр обязателен (как минимум одно изображение).video_urls: необязательный массив ссылок на референсные видео (не более 1), используемый для редактирования видео / видео-референса; при предоставлении необходимо одновременно предоставить как минимум одноimage_urls.callback_url: адрес асинхронного обратного вызова; после настройки API немедленно вернётtask_id, а после завершения задачи отправит результат POST-запросом на этот адрес.async: необязательный параметр; при установке вtrueинтерфейс немедленно возвращаетtask_id, при этом не требуется предоставлятьcallback_url, затем результат получается путём опроса соответствующего интерфейса запроса задачи.
success: успешно ли выполнен этот запрос на генерацию видео.task_id: ID этой задачи генерации видео.trace_id: ID отслеживания этого запроса, используемый для диагностики проблем.data: список результатов сгенерированных видео.id: уникальный идентификатор сгенерированного видео.video_url: ссылка на сгенерированное видео (null, когдаstateимеет значениеpending).state: статус задачи генерации видео; доступныpending/succeeded/failed.aspect_ratio: соотношение сторон этого видео, соответствует параметру запроса.prompt: промпт, использованный для генерации этого видео.
started_at, finished_at, elapsed (затраченное время, секунды) и cost (списание за этот запрос, единица измерения Credit).
Нам нужно только получить сгенерированное видео по ссылке video_url из data результата.
Соответствующий код CURL приведён ниже:
Генерация видео по изображению
Если вы хотите сгенерировать видео на основе референсных изображений, можно передать одну или несколько ссылок на изображения вimage_urls, чтобы направлять генерацию видео:
Редактирование видео / референсное видео (входное видео, генерируемое видео)
Поддерживается непосредственный вариант «ввести одно видео, сгенерировать новое видео»: передайте одну ссылку на референсное видео вvideo_urls (не более 1), и одновременно предоставьте как минимум одно референсное изображение в image_urls (жёсткое требование вышестоящей системы), затем опишите желаемый эффект редактирования через prompt (изменение стиля, смена сцены, добавление или удаление элементов и т. д.).
Ниже приведён полный реальный пример — преобразование видео солнечного пляжа в зимнюю сцену с обильным снегопадом с одновременным сохранением расположения пляжа, пальм и лодки. Редактирование видео занимает больше времени (в данном примере около 6,5 минут), поэтому используется асинхронная отправка с async: true:
task_id:
task_id в качестве id для опроса Gemini Tasks API, после завершения задачи можно получить новое сгенерированное видео (это фактический результат возврата данного примера):
resolution в значение 1080p (остальные параметры остаются без изменений).
Подсказка: ссылки на входные / выходные медиафайлы в примере являются реальными результатами генерации. Ссылки на видео и изображения, сгенерированные платформой, имеют срок хранения и станут недействительными после его истечения, поэтому после получения результата своевременно скачайте и сохраните его в собственное хранилище.
Внимание: можно использовать не более 1 референсного видео; при предоставленииvideo_urlsнеобходимо предоставить как минимум одноimage_urls, иначе будет возвращена следующая ошибка параметров:
Асинхронный callback
Генерация видео требует определённого времени обработки. Если вы не хотите поддерживать длительное соединение в ожидании, можно передатьcallback_url, в этом случае API немедленно вернёт task_id, а после завершения задачи отправит окончательный результат методом POST на этот адрес:
Запрос результата задачи
Если используется асинхронный callback или вы хотите активно запрашивать статус задачи, можно через Gemini Tasks API (POST https://api.acedata.cloud/gemini/tasks) запросить актуальный статус и результат задачи по task_id. В теле запроса передайте task_id, возвращённый при создании видео, в качестве id:
response.data совпадает со структурой при синхронной генерации (во время генерации state имеет значение pending, а video_url — null):
Обработка ошибок
Когда с запросом возникают проблемы, API возвращает соответствующий код ошибки и описание; распространённые случаи следующие:400: неверные параметры запроса, например отсутствуетpromptили значениеaspect_ratioнедопустимо.401: ошибка аутентификации, token недействителен или не соответствует API.403: недостаточно баланса или запрос отклонён проверкой содержимого подсказки.500: внутренняя ошибка сервера или сбой вышестоящей генерации.

