通过 Chrome 浏览器 + Gemini AI 生成图片并下载。使用 mcporter 调用 chrome-devtools-mcp 控制浏览器,模拟人工操作完成图片生成。
核心流程:启动 Chrome → 打开 Gemini → 输入提示词 → 等待生成 → 点击下载 → 复制到目标目录
powershell
# 检查 Chrome 是否已运行
netstat -ano | Select-String "9222"
# 如果没有运行,启动 Chrome
Start-Process "C:\Program Files\Google\Chrome\Application\chrome.exe" -ArgumentList "--remote-debugging-port=9222","--user-data-dir=<your-chrome-user-data-dir>"
powershell
# 检查 MCP 服务器状态
mcporter list
# 应该看到:chrome-devtools (29 tools, x.xs) ✔ Listed 1 server (1 healthy)
# 如果没有运行,启动 MCP 服务器
cmd /c "cd /d <your-npm-global-dir> && npx chrome-devtools-mcp@latest --autoConnect --experimentalStructuredContent --experimental-page-id-routing"
自动重连:MCP 服务器会自动连接到已运行的 Chrome,无需手动配对。
powershell
mcporter call chrome-devtools.navigate_page type="url" url="https://gemini.google.com"
powershell
mcporter call chrome-devtools.take_snapshot verbose=true
从快照中找到:
textbox "Enter a prompt for Gemini" → 记下其 UID(如 uid=3_187)button "🖼️ Create image" → 如果有的话powershell
mcporter call chrome-devtools.fill uid="<输入框UID>" value="你的英文提示词"
提示词技巧:
powershell
mcporter call chrome-devtools.press_key key="Enter"
图片生成需要 20-60 秒,期间可以定期检查状态:
powershell
# 等待 30 秒
Start-Sleep -Seconds 30
# 获取快照查看状态
mcporter call chrome-devtools.take_snapshot verbose=false
成功标志:看到 "Download full size image" 按钮出现。
失败标志:看到 "Redo" 按钮或错误信息。
powershell
mcporter call chrome-devtools.click uid="<下载按钮UID>"
从快照中找到: button "Download full size image" → UID(如 uid=6_6)
powershell
Get-ChildItem $env:USERPROFILE\Downloads -File | Sort-Object LastWriteTime -Descending | Select-Object -First 5 | Format-Table Name, Length, LastWriteTime -AutoSize
应该看到 Gemini_Generated_Image_*.png 文件(通常 1-3MB)。
powershell
$newFile = Get-ChildItem $env:USERPROFILE\Downloads -File | Sort-Object LastWriteTime -Descending | Select-Object -First 1
Copy-Item $newFile.FullName "<目标路径\图片名.png>"
操作命令列出页面mcporter call chrome-devtools.list_pages打开网址mcporter call chrome-devtools.navigate_page type="url" url="..."获取快照mcporter call chrome-devtools.take_snapshot verbose=true填写输入框mcporter call chrome-devtools.fill uid="X_Y" value="..."点击元素mcporter call chrome-devtools.click uid="X_Y"按键盘mcporter call chrome-devtools.press_key key="Enter"执行JSmcporter call chrome-devtools.evaluate_script function="() => ..."截图mcporter call chrome-devtools.take_screenshot format="png"等待Start-Sleep -Seconds X
text
Professional hero image for article about [主题], modern design, clean layout, [风格: minimalist/corporate/vibrant], high quality, 4K
text
Illustrated [主题] concept, [风格: flat/realistic/abstract], clean design suitable for blog post, soft lighting, high quality
text
Social media post design about [主题], [平台] format, eye-catching, modern graphic design, vibrant colors, professional quality
text
Professional [food/product] photography, [具体描述], studio lighting, appetizing, high resolution, commercial quality
生成一张小龙虾图片:
powershell
# Step 1: 打开 Gemini
mcporter call chrome-devtools.navigate_page type="url" url="https://gemini.google.com"
# Step 2: 获取快照
mcporter call chrome-devtools.take_snapshot verbose=true
# 找到输入框 uid=3_187
# Step 3: 输入提示词
mcporter call chrome-devtools.fill uid="3_187" value="Generate a realistic photo of a plate of delicious Sichuan spicy crayfish (小龙虾), with bright red shells, garlic and scallions garnish, atmospheric lighting, food photography style, appetizing and mouth-watering"
# Step 4: 提交
mcporter call chrome-devtools.press_key key="Enter"
# Step 5: 等待30秒后检查
Start-Sleep -Seconds 30
mcporter call chrome-devtools.take_snapshot verbose=false
# Step 6: 找到下载按钮 UID(如 6_6)并点击
mcporter call chrome-devtools.click uid="6_6"
# Step 7: 检查下载
Get-ChildItem $env:USERPROFILE\Downloads -File | Sort-Object LastWriteTime -Descending | Select-Object -First 3
# Step 8: 复制到工作目录
$newFile = Get-ChildItem $env:USERPROFILE\Downloads -File | Sort-Object LastWriteTime -Descending | Select-Object -First 1
Copy-Item $newFile.FullName "<output-dir>\\crayfish.png"
当需要生成多张图片时(如文章配图5张),使用此流程可以大幅节省时间。
核心思路:流水线式操作——填完提示词就切走,生成和准备并行。
powershell
# 查看当前所有标签
mcporter call chrome-devtools.list_pages
# 关闭多余标签(除了正在用的,关闭其他)
mcporter call chrome-devtools.close_page pageId="2"
# 重复直到只剩1个标签
标签1:填提示词1 → 发送 → 开标签2
powershell
# 获取输入框UID(假设 uid=6_192)
mcporter call chrome-devtools.take_snapshot verbose=false
mcporter call chrome-devtools.fill uid="6_192" value="[提示词1]"
mcporter call chrome-devtools.press_key key="Enter"
# 立即开新标签
mcporter call chrome-devtools.new_page url="https://gemini.google.com" background=false
标签2:填提示词2 → 发送 → 开标签3
powershell
# 等几秒让新标签加载完成
Start-Sleep -Seconds 2
# 获取输入框UID
mcporter call chrome-devtools.take_snapshot verbose=false
# 填写提示词2(输入框 UID 变了,如 uid=21_19)
mcporter call chrome-devtools.fill uid="21_19" value="[提示词2]"
mcporter call chrome-devtools.press_key key="Enter"
mcporter call chrome-devtools.new_page url="https://gemini.google.com" background=false
标签3-5:重复上述步骤
powershell
# 等45-50秒(足够生成时间)
Start-Sleep -Seconds 50
powershell
# 切换到标签1,下载图片
mcporter call chrome-devtools.select_page pageId="1" bringToFront=true
mcporter call chrome-devtools.take_snapshot verbose=false
# 找到 "Download full size image" 按钮的 UID(如 uid=23_14)
mcporter call chrome-devtools.click uid="23_14"
# 切换到标签2,下载
mcporter call chrome-devtools.select_page pageId="2" bringToFront=true
mcporter call chrome-devtools.take_snapshot verbose=false
# 找下载按钮并点击
# 依次完成所有标签...
powershell
Get-ChildItem $env:USERPROFILE\Downloads -File | Where-Object { $_.Name -like "Gemini_Generated_Image_*" } | Sort-Object LastWriteTime -Descending | Select-Object -First 5
方案5张图耗时串行(一张一张来)5 × 45秒 ≈ 6分钟并行多标签(本方案)45秒 + 操作时间 ≈ 2-3分钟
take_snapshot 获取,不能复用list_pages 显示的序号和快照内容不完全对应,要靠 You said 标题区分You said 下都有独立的下载按钮:一个标签内可能有多张图(如果之前有残留)new_page 后等 2 秒再 take_snapshotYou said 标题:确认下载的是哪张图问题解决方法chrome-devtools not found运行 npx chrome-devtools-mcp@latest --autoConnectChrome 没有监听 9222重启 Chrome 加 --remote-debugging-port=9222 参数点击下载没反应等更长时间,用快照确认下载按钮存在下载的文件是空的重新点击下载按钮,或刷新页面重试提示词不执行确认输入框已获得焦点,可先点击输入框再 fill