Автоматизированный инструмент и локальный REST Web2API сервер для генерации видео и изображений через студию Google Flow (flow.google.com).
Поддерживает передовые генеративные модели Google:
- Видео: Gemini Omni (
omni-flash— длительность клипов до 10 сек.), Veo 3.1 Quality, Veo 3.1 Fast, Veo 3.1 Lite. - Фото: Imagen 4 (
image4), Nano Banana Pro (nano-pro— высокая детализация), Nano Banana 2 (nano2— быстрый рендер).
- Возможности
- Архитектура решения
- Быстрый старт и Авторизация
- Мультиаккаунтинг и ротация
- Генерация Видео через Терминал (CLI)
- Генерация Фото через Терминал (CLI)
- Web2API (REST API & Swagger UI)
- Примеры интеграции (Python / cURL / Telegram Bot)
- Таблица поддерживаемых моделей
- Структура проекта
- Частые вопросы и Решение проблем
- 🚀 Работа через одну команду в терминале: отдайте текстовый промпт — получите готовый файл
.mp4или.png. - 🌐 Полноценный REST API: локальный HTTP-сервер на FastAPI с поддержкой синхронного ожидания (
wait=true) или асинхронной очереди задач (task_id). - 📖 Интерактивная Swagger UI документация: доступна по адресу
http://localhost:8000/docsна чистом русском языке. - ⚡ Новейший движок Google Flow Studio: прямая интеграция с
flow.google.com(Angular-приложение Google AI). - 🧠 Мгновенный захват сессий из RAM: считывает авторизационные куки (
OSID,SID,__Secure-next-auth) напрямую из сетевой службы Chrome за доли секунды. Без расширений, без DevTools и без перезапуска браузера! - 🎬 Полный контроль параметров: поддержка соотношений сторон
16:9,9:16(Shorts/Reels),1:1,4:3,3:4, длительности клипов до 10 секунд и пакетной генерации. - 🔄 Авто-ротация 40+ профилей: умное переключение на следующий аккаунт при исчерпании лимитов или квот (
--profile auto).
┌────────────────────────────────────────────────────────┐
│ Ваш скрипт / Бот / Терминал │
└──────────────────────────┬─────────────────────────────┘
│
┌──────────────┴──────────────┐
▼ ▼
[ generate.bat / CLI ] [ server.py / REST API ]
│ │
└──────────────┬──────────────┘
▼
flow_engine.py (Direct Studio Automation)
│
▼
Playwright Chromium (Headless)
│
▼
Google Flow Studio (flow.google.com)
├── Gemini Omni / Veo 3.1 ──► ./output/videos/*.mp4
└── Imagen 4 / Nano Banana ──► ./output/images/*.png
Виртуальное окружение .venv со всеми зависимостями и Playwright Chromium уже настроено в проекте.
.\login.bat --listКоманда обратится к Google API и покажет все ваши авторизованные профили Chrome и их статус готовности.
Если у вас настроено 40 аккаунтов в Google Chrome, генератор может работать со всеми ними полностью в фоне!
.\list_profiles.batСкрипт автоматически просканирует Google Chrome и выведет список всех доступных профилей с их номерами, именами и статусом готовности.
Запустите привязку всех аккаунтов одной командой:
.\login.bat --all-
Скрипт по очереди открывает каждый ваш профиль в настоящем Google Chrome (
flow.google.com). -
Никаких расширений и DevTools: скрипт моментально извлекает куки Google SSO из оперативной памяти Chrome (Network Service RAM) без перезапуска браузера.
-
Автопроверка через API: скрипт сразу проверяет профиль через официальный эндпоинт сессии Google.
-
Мгновенный переход: сессия сохраняется в
.flow_sessions/, и скрипт сразу переходит к следующему профилю! -
Для одного конкретного профиля:
.\login.bat 2
-
Либо прямая передача токена в 1 строку:
.\login.bat 2 "значение_токена"
- По номеру профиля:
.\generate.bat "A futuristic supercar" --profile 2
- По названию профиля в Chrome:
.\generate.bat "Cyberpunk neon city" --profile "GeminiPro"
- Автоматическая ротация и мгновенный обход лимитов (--profile auto):
(Система распределяет генерации между всеми профилями. Если на текущем аккаунте закончились кредиты (
.\generate.bat "Cinematic nature drone shot" --profile auto
0 credits) или сработал лимит Google Flow, генератор мгновенно переходит на следующий рабочий аккаунт и повторяет генерацию без остановки!) - Сброс таймеров исчерпанных лимитов:
(Сбрасывает 12-часовые кулдауны для всех профилей, возвращая их в пул активных).
.\generate.bat --reset-limits
- Двойным кликом мыши: просто дважды кликните по
generate.batилиgenerate_video.bat— откроется окно, запросит текстовый промпт и выполнит генерацию (окно не закроется автоматически!). - Через терминал с промптом:
.\generate.bat "A futuristic flying car over neon cyberpunk city at night, rain reflections, 4k cinematic" --profile auto.\.venv\Scripts\python.exe generate_video.py "Cinematic drone shot of sunset over mountain peaks" --model omni-flash --aspect 16:9 --duration 8 --profile auto| Флаг | Значения | Описание |
|---|---|---|
prompt |
Текст | Описание сцены для генерации |
--model |
omni-flash, veo-quality, veo-fast, veo-lite |
Модель видео. По умолчанию omni-flash (Gemini Omni) |
--aspect |
16:9, 9:16 |
Формат кадра: горизонтальный или вертикальный |
--duration |
4, 6, 8, 10 |
Длительность клипа в секундах (omni-flash поддерживает до 10 сек.) |
--out-dir |
Путь к папке | Каталог для сохранения (по умолчанию ./output/videos) |
--profile |
auto, 2, "Profile 2" |
Профиль Chrome. При auto автоматически переключается при исчерпании лимитов |
--list-profiles |
Флаг | Показать таблицу всех профилей Chrome в системе |
--reset-limits |
Флаг | Сбросить кэш исчерпанных квот/лимитов для всех профилей |
Готовые файлы .mp4 автоматически сохраняются в папку ./output/videos.
Генерация изображений в Google Flow работает через модель Imagen 4 и занимает всего 10–20 секунд (и не расходует кредиты Veo!).
- Двойным кликом мыши: запустите
generate_image.batдвойным кликом — окно запросит промпт для картинки, создаст изображение и будет ждать нажатия клавиши. - Через терминал с промптом:
.\generate_image.bat "A cute red panda wearing a tiny astronaut suit on Mars, highly detailed, photorealistic" --profile auto.\.venv\Scripts\python.exe generate_image.py "Cyberpunk neon street ramen shop in rain" --model image4 --aspect 16:9 -n 2 --profile auto| Флаг | Значения | Описание |
|---|---|---|
prompt |
Текст | Описание изображения |
--model |
nano-pro, image4, nano2 |
nano-pro (высокая детализация), image4 (Imagen 4), nano2 (сверхбыстрый) |
--aspect |
16:9, 9:16, 1:1, 4:3, 3:4 |
Соотношение сторон фото |
-n, --count |
1, 2, 3, 4 |
Количество генерируемых вариантов |
--out-dir |
Путь к папке | Папка сохранения (по умолчанию ./output/images) |
--profile |
auto, 2, "Profile 2" |
Профиль Chrome. При auto автоматически переключается при исчерпании лимитов |
--list-profiles |
Флаг | Показать таблицу всех профилей Chrome в системе |
--reset-limits |
Флаг | Сбросить кэш исчерпанных квот/лимитов для всех профилей |
.\start_server.bat(или: .\.venv\Scripts\python.exe server.py)
- Адрес API:
http://localhost:8000 - Интерактивная панель Swagger: 👉 http://localhost:8000/docs
POST /api/v1/generate
Тело запроса (JSON):
{
"prompt": "Macro shot of a glowing butterfly on a crystal flower in enchanted forest",
"model": "omni-flash",
"aspect": "16:9",
"duration": 8,
"wait": true
}- Если
"wait": true— сервер заблокирует запрос на время рендера (~1–2 мин) и сразу вернет ссылку на готовый.mp4. - Если
"wait": false— сервер моментально вернет{"task_id": "...", "status": "queued"}, статус которого можно опрашивать.
POST /api/v1/generate-image
Тело запроса (JSON):
{
"prompt": "Futuristic sport car in neon garage, reflections, ray tracing 8k",
"model": "nano-pro",
"aspect": "16:9",
"count": 2,
"wait": true
}GET /api/v1/tasks/{task_id}
Ответ:
{
"task_id": "c7a8b9f1",
"status": "completed",
"prompt": "...",
"download_url": "/api/v1/videos/c7a8b9f1/video_0.mp4"
}- Видео:
GET /api/v1/videos/{task_id}/{filename} - Фото:
GET /api/v1/images/{task_id}/{filename}
import httpx
import time
API_URL = "http://localhost:8000"
# 1. Отправляем запрос на генерацию
resp = httpx.post(f"{API_URL}/api/v1/generate", json={
"prompt": "Golden retriever puppy running in green field at sunset",
"model": "omni-flash",
"aspect": "16:9",
"duration": 8,
"wait": False
})
task_id = resp.json()["task_id"]
print(f"Задача запущена: {task_id}")
# 2. Ожидаем готовности
while True:
task = httpx.get(f"{API_URL}/api/v1/tasks/{task_id}").json()
if task["status"] == "completed":
print(f"Готово! Скачать: {API_URL}{task['download_url']}")
break
elif task["status"] == "failed":
print("Ошибка генерации:", task["error"])
break
time.sleep(5)curl -X POST "http://localhost:8000/api/v1/generate" \
-H "Content-Type: application/json" \
-d '{
"prompt": "A majestic eagle soaring over snowy mountains, 4k cinematic",
"model": "omni-flash",
"aspect": "16:9",
"duration": 8,
"wait": true
}'| Имя модели | Описание | Поддерживаемая длительность |
|---|---|---|
omni-flash |
Gemini Omni — самая современная и быстрая модель | 4с, 6с, 8с, 10с |
veo-quality |
Veo 3.1 Quality — максимальная кинематографичность | 4с, 6с, 8с |
veo-fast |
Veo 3.1 Fast — ускоренный рендеринг | 4с, 6с, 8с |
veo-lite |
Veo 3.1 Lite — облегченная версия | 4с, 6с, 8с |
| Имя модели | Описание | Форматы |
|---|---|---|
nano-pro |
Nano Banana Pro — детализация и мелкие элементы | 16:9, 9:16, 1:1, 4:3, 3:4 |
image4 |
Imagen 4 — фотореализм и текстуры | 16:9, 9:16, 1:1, 4:3, 3:4 |
nano2 |
Nano Banana 2 — быстрый концепт-арт | 16:9, 9:16, 1:1, 4:3, 3:4 |
flow_auto/
├── .venv/ # Изолированное окружение Python и Playwright
├── .flow_sessions/ # Сохраненные сессии и куки аккаунтов Chrome
├── output/ # Папка с сгенерированными видео и фото
│ ├── videos/ # Готовые .mp4 клипы
│ └── images/ # Готовые .png фото
├── flow_engine.py # Автономный движок студии Google Flow (Playwright)
├── chrome_profiles.py # Модуль обнаружения и ротации 40+ профилей Chrome
├── list_profiles.bat # Просмотр всех профилей Chrome в терминале
├── login.bat # Батник быстрой привязки и проверки профилей Chrome
├── login.py # Скрипт захвата сессий из памяти Chrome и проверки API
├── generate.bat # Быстрый запуск генерации видео из терминала
├── generate_video.py # Основной скрипт генератора видео
├── generate_image.bat # Быстрый запуск генерации фото из терминала
├── generate_image.py # Основной скрипт генератора фото
├── start_server.bat # Запуск Web2API REST-сервера
├── server.py # Сервер FastAPI со Swagger документацией
├── requirements.txt # Список зависимостей Python
└── README.md # Полная документация проекта
В: Сгорают ли кредиты при ошибках? О: Нет. Кредиты Google Flow списываются только за успешную генерацию видео моделью Veo. Генерация изображений Imagen бесплатна.
В: Как часто нужно логиниться через login.bat?
О: Один раз в несколько недель. Сессия Google Flow сохраняется в локальный профиль браузера и автоматически используется при каждом последующем запросе.
В: Можно ли использовать сервис одновременно с открытым Chrome?
О: Да! Автоматизация использует отдельный профиль profile_default, поэтому ваш основной Google Chrome может быть открыт и использоваться параллельно для работы или серфинга.