Google Flow Skill is a Codex skill for automating Google Flow with a persistent browser session.
It follows the same architecture as notebooklm-skill:
- one bootstrap runner
- one authentication manager
- one local project library
- one task script per workflow
This skill can:
- keep a reusable Flow login session
- sync recent Flow projects into a local library
- activate and search projects
- generate images and videos in an existing Flow project
- upload ingredient images or start/end frames
- list image and video asset edit URLs inside a project
- edit existing Flow images with crop, selection masks, draw masks, text overlays, and prompt-based revisions
- Requirements
- Quick Start
- Implemented Workflows
- Generate Images
- Generate Videos
- Edit Images
- Public Repo Notes
- Current Limitations
| Workflow | Status | Notes |
|---|---|---|
| Flow authentication | Ready | Persistent browser session stored locally |
| Recent project sync | Ready | Scrapes recent projects from the signed-in Flow home page |
| Local project activation/search | Ready | Keeps a local project library for repeat runs |
| Image generation | Ready | Supports model, aspect ratio, and output count |
| Video generation | Ready | Supports ingredients and frames modes |
| Ingredient uploads | Ready | Uses absolute local file paths |
| Existing image edits | Ready | Full edit, select-box, draw-rect, draw-brush, crop, text |
| SceneBuilder automation | Not included | Still out of scope |
- Windows with Python 3.10+
- Google Chrome installed
- A Google account with access to Flow
Python dependencies:
patchright==1.55.2python-dotenv==1.0.1
google-flow/
├── SKILL.md
├── README.md
├── README.zh-CN.md
├── agents/
├── references/
└── scripts/
Key scripts:
scripts/run.py: environment bootstrap and entrypointscripts/auth_manager.py: persistent login statescripts/project_manager.py: local project library and asset listingscripts/generate_media.py: image and video generationscripts/edit_image.py: image editing workflowsscripts/cleanup_manager.py: local cleanup helper
- Check authentication:
python scripts/run.py auth_manager.py status- If needed, sign in to Flow:
python scripts/run.py auth_manager.py setup- Sync recent projects from the signed-in Flow home page:
python scripts/run.py project_manager.py sync
python scripts/run.py project_manager.py list- Activate a project:
python scripts/run.py project_manager.py activate --id PROJECT_ID- Generate or edit media inside that project.
The skill stores browser state in data/browser_state/ and reuses it on later runs.
Useful commands:
python scripts/run.py auth_manager.py status
python scripts/run.py auth_manager.py setup
python scripts/run.py auth_manager.py validate
python scripts/run.py auth_manager.py reauth
python scripts/run.py auth_manager.py clearSync, search, activate, and inspect projects:
python scripts/run.py project_manager.py sync
python scripts/run.py project_manager.py list
python scripts/run.py project_manager.py search --query storyboard
python scripts/run.py project_manager.py activate --id PROJECT_ID
python scripts/run.py project_manager.py assets --id PROJECT_ID --kind image
python scripts/run.py project_manager.py assets --id PROJECT_ID --kind videoCreate one portrait image:
python scripts/run.py generate_media.py \
--project-id PROJECT_ID \
--mode image \
--prompt "A small dog dancing joyfully, Pixar-style 3D character, warm cinematic light" \
--model "Nano Banana 2" \
--aspect-ratio portrait \
--outputs 1Generate a video from text:
python scripts/run.py generate_media.py \
--project-id PROJECT_ID \
--mode video \
--video-mode ingredients \
--prompt "A handheld tracking shot through a rainy neon alley" \
--model "Veo 3.1 - Fast" \
--aspect-ratio landscape \
--outputs 1Generate a video from frames:
python scripts/run.py generate_media.py \
--project-id PROJECT_ID \
--mode video \
--video-mode frames \
--prompt "The same character moves naturally with smooth cinematic motion" \
--start-frame "C:/absolute/path/start.png" \
--end-frame "C:/absolute/path/end.png" \
--model "Veo 3.1 - Fast" \
--aspect-ratio portrait \
--outputs 1List available image edit URLs first:
python scripts/run.py project_manager.py assets --id PROJECT_ID --kind imageFull-image prompt edit:
python scripts/run.py edit_image.py \
--asset-url "https://labs.google/fx/zh/tools/flow/project/.../edit/..." \
--tool full \
--prompt "Turn this into a moody dusk scene"Selection mask edit:
python scripts/run.py edit_image.py \
--asset-url "https://labs.google/fx/zh/tools/flow/project/.../edit/..." \
--tool select-box \
--box "0.18,0.20,0.55,0.48" \
--prompt "Replace this area with a rainy city skyline"Rectangle mask edit:
python scripts/run.py edit_image.py \
--asset-url "https://labs.google/fx/zh/tools/flow/project/.../edit/..." \
--tool draw-rect \
--box "0.12,0.58,0.38,0.86" \
--prompt "Remove the foreground object"Brush mask edit:
python scripts/run.py edit_image.py \
--asset-url "https://labs.google/fx/zh/tools/flow/project/.../edit/..." \
--tool draw-brush \
--points "0.20,0.62;0.26,0.64;0.31,0.69;0.36,0.75" \
--prompt "Erase this object and blend the background naturally"Text overlay:
python scripts/run.py edit_image.py \
--asset-url "https://labs.google/fx/zh/tools/flow/project/.../edit/..." \
--tool text \
--point "0.30,0.40" \
--text-size 24 \
--text "OPENING SOON"Crop:
python scripts/run.py edit_image.py \
--asset-url "https://labs.google/fx/zh/tools/flow/project/.../edit/..." \
--tool crop \
--crop-preset square \
--box "0.12,0.18,0.82,0.78"Coordinate rules:
--boxand--pointsuse normalized values from0to1--pointuses the same normalized coordinate system--textshould be single-line--text-sizemaps to Flow's text-size slider in px
- Always run scripts through
python scripts/run.py ... - Prefer syncing recent projects before adding project URLs manually
- Use absolute file paths for ingredient images and video frames
- Generation and prompt-based edits may consume Flow credits
This public repository contains only the skill source code and documentation.
It does not publish:
- browser login state
- Flow cookies or session files
- downloaded media assets
- local virtual environments
.envfiles
Those runtime files are excluded by .gitignore, especially data/, .venv/, and .env.
- SceneBuilder automation is not included
- Download automation is not included
- Flow UI labels may vary by locale and can require selector updates
- Internal workflow notes:
references/workflow.md - Official Flow landing page: https://labs.google/fx/tools/flow
- Flow video help: https://support.google.com/labs/answer/16353334?hl=en
- Flow image help: https://support.google.com/labs/answer/16729550?hl=en