Gemini Omni 1.1: генерация и редактирование видео
curl --request POST \
--url https://toapis.com/v1/videos/generationsimport requests
url = "https://toapis.com/v1/videos/generations"
response = requests.post(url)
print(response.text)const options = {method: 'POST'};
fetch('https://toapis.com/v1/videos/generations', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://toapis.com/v1/videos/generations",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://toapis.com/v1/videos/generations"
req, _ := http.NewRequest("POST", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://toapis.com/v1/videos/generations")
.asString();require 'uri'
require 'net/http'
url = URI("https://toapis.com/v1/videos/generations")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
response = http.request(request)
puts response.read_bodyGemini Omni Official
Gemini Omni 1.1: генерация и редактирование видео
Официальная Gemini Omni 1.1 Flash Preview: видео длительностью 3-10 секунд в четырех разрешениях
POST
/
v1
/
videos
/
generations
Gemini Omni 1.1: генерация и редактирование видео
curl --request POST \
--url https://toapis.com/v1/videos/generationsimport requests
url = "https://toapis.com/v1/videos/generations"
response = requests.post(url)
print(response.text)const options = {method: 'POST'};
fetch('https://toapis.com/v1/videos/generations', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://toapis.com/v1/videos/generations",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://toapis.com/v1/videos/generations"
req, _ := http.NewRequest("POST", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://toapis.com/v1/videos/generations")
.asString();require 'uri'
require 'net/http'
url = URI("https://toapis.com/v1/videos/generations")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
response = http.request(request)
puts response.read_bodyУкажите
Сначала загрузите медиафайлы, затем передайте полученные URL. Параметры Veo, включая generateAudio, negativePrompt и seed, не поддерживаются. Для входного видео используйте video_list.
gemini-omni-1.1-flash-preview-official в поле model. Предварительная версия поддерживает генерацию по тексту и изображениям, работу с референсами и редактирование видео.
В материковом Китае можно заменить домен в примерах на
https://toapis.cn.Параметры
Authorization: Bearer YOUR_API_KEY
| Поле | Описание |
|---|---|
model | gemini-omni-1.1-flash-preview-official |
prompt | Обязательно. Описание генерации или редактирования. |
duration | Целое число от 3 до 10 секунд. По умолчанию 6. |
resolution | 360p / 720p / 1080p / 4K. По умолчанию 720p. |
aspect_ratio | 16:9 / 9:16. По умолчанию 16:9. Не передается при редактировании. |
image_urls | До 10 URL изображений. Нельзя сочетать с входными видео. |
video_list | До 3 объектов с полем video_url. Только MP4/MOV, до 50 MiB каждый. |
metadata.task | Необязательно: text_to_video / image_to_video / reference_to_video / edit. При отсутствии модель определяет задачу сама. |
Стоимость
USD. Вывод оплачивается по запрошенной длительности. Сервер измеряет каждое входное видео, округляет длительность вверх до целых секунд и дополнительно начисляет $0.006950/сек. Ниже базовые цены; скидки учитываются в котировке.| Разрешение вывода | Цена за секунду |
|---|---|
| 360p | $0.027034 |
| 720p | $0.081088 |
| 1080p | $0.121632 |
| 4K | $0.243264 |
Пример запроса
curl https://toapis.com/v1/videos/generations \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gemini-omni-1.1-flash-preview-official",
"prompt": "A red paper boat floating on a calm lake at sunrise",
"duration": 3,
"resolution": "360p",
"aspect_ratio": "16:9"
}'
{
"model": "gemini-omni-1.1-flash-preview-official",
"prompt": "Change the sky to a warm sunset",
"duration": 6,
"resolution": "1080p",
"video_list": [{"video_url": "https://example.com/uploaded-video.mp4"}],
"metadata": {"task": "edit"}
}
Получение результата
Получите id задачи из ответа на отправку и запросите статус и результат через единый API задач.curl https://toapis.com/v1/videos/generations/TASK_ID \
-H "Authorization: Bearer YOUR_API_KEY"