Files
liaoxin-skills/skills/gemini-web-generate/SKILL.md
T

135 lines
3.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
name: gemini-web-generate
description: "Generate images through Gemini web interface via a Puppeteer CLI. Supports text-to-image, image-to-image (single/multi reference), multi-turn conversations, session management, and download-only mode. Use when: (1) User asks to generate images with Gemini, (2) User says 'Gemini 生图', (3) Image-to-image or style transfer, (4) Continuing an existing Gemini image conversation."
---
# Gemini 网页版生图
通过 Puppeteer CLI (`scripts/cli.js`) 驱动 Gemini 网页完成生图全流程:打开标签页 → 导航 → 粘贴参考图 → 输入提示词 → 发送 → 等待生成 → 下载原图。
## 环境
浏览器由 `browser` 工具管理(CDP: `http://127.0.0.1:9223`)。
首次使用需安装依赖:
```bash
cd ~/.openclaw/skills/gemini-web-generate/scripts && npm install
```
定义命令行别名(所有命令沿用此设定):
```bash
NODE="/home/dazhi/.nvm/versions/node/v22.22.0/bin/node"
CLI="scripts/cli.js"
```
## 标准流程
### 1. 启动浏览器
```
browser action=start
```
### 2. 生图
默认用 `--mode single`(生成后自动关闭标签页),CLI 自动下载图片到 `scripts/output/originals/`
```bash
$NODE $CLI generate --prompt "提示词" --mode single
```
**带参考图**
```bash
$NODE $CLI generate --prompt "提示词" --image /path/to/ref.png --mode single
$NODE $CLI generate --prompt "提示词" --images "/path/a.png,/path/b.png" --mode single
```
参考图路径含空格时,先 `cd` 到目录再用相对路径。
### 3. 收集结果
CLI 成功后将图片移动到工作区媒体目录:
```bash
LATEST=$(ls -t scripts/output/originals/ | head -1)
mv "scripts/output/originals/$LATEST" ~/.openclaw/workspace/media/generated/
```
然后用 `message` 工具发送。
### 4. 失败处理
CLI 超时或报错时,检查会话状态:
```bash
$NODE $CLI status --session <id> --wait
```
| 状态 | 处理 |
|:---|:---|
| `done` | `$NODE $CLI download --session <id>` 手动下载 |
| `generating` | 继续等待 |
| `error` | 报告错误,调整提示词重试 |
## 其他生图方式
### 多轮对话
```bash
# 首轮(不加 --mode,保持标签页打开)
$NODE $CLI generate --prompt "画一幅日落风景"
# 续次(不加 --mode
$NODE $CLI generate --session <id> --prompt "加入一艘小船"
# 末轮(--mode single 自动关闭)
$NODE $CLI generate --session <id> --prompt "最终调整" --mode single
```
### 通过对话链接继续
```bash
$NODE $CLI generate --chatUrl "https://gemini.google.com/app/xxxx" --prompt "换成水彩风格"
```
### 仅下载已有图片
对话中已有生成图片时,不加 `--prompt` 直接下载:
```bash
$NODE $CLI generate --chatUrl "https://gemini.google.com/app/xxxx" --mode single
```
### 从文件或管道读取提示词
```bash
$NODE $CLI generate --prompt-file /path/to/prompt.txt --mode single
echo "提示词" | $NODE $CLI generate --prompt stdin --mode single
```
## 会话管理
```bash
$NODE $CLI sessions # 列出活跃会话
$NODE $CLI find_session --chatUrl "<url>" --open # 找回丢失的 session
$NODE $CLI close --session <id> # 关闭会话
```
## generate 参数参考
| 参数 | 说明 | 默认值 |
|:---|:---|:---|
| `--prompt` | 提示词。`"stdin"` 从标准输入读取 | 必填(与 `--chatUrl` 共用时可省略) |
| `--prompt-file` | 从文件读取提示词 | - |
| `--image` | 单张参考图 | - |
| `--images` | 多张参考图,逗号分隔,最多 10 张 | - |
| `--session` | 复用已有会话 ID | - |
| `--chatUrl` | Gemini 对话链接 | - |
| `--mode` | `single` 生成后关闭标签页 / `multi` 保持打开 | `multi` |
| `--timeout` | 生成超时(毫秒) | 300000 |
| `--download-timeout` | 下载超时(毫秒) | 120000 |
| `--screenshot` | 出错/超时时自动截图 | 关闭 |