水浒 108 将 · JoJo 画风角色批量生成(Google Flow)
背景与问题
延续 [[../shuihu-2026-crossover]](小说《丙午江湖》完稿)的传播线:把梁山 108 将做成 JoJo's Bizarre Adventure 画风的角色资产,沉淀在 Google Flow 的项目 「9月 18 - 01:30」里(PRO 账号 string2015s@gmail.com),供后续短视频/分镜复用。 同项目里已产出 3 段王小波 S1 脚本的 JoJo 画风视频(2026-09-18 凌晨完成)。
发现(Flow 自动化的坑,全是一手实测)
- kimi-webbridge 的 click/fill 对 Flow 大部分生效,但三类场景要特殊处理:
- 侧栏"角色/图片/视频"等导航项:合成 click 不稳定,需完整事件序列 (pointerdown→mousedown→pointerup→mouseup→click,见 batch/flow_batch_characters.py 的 JS_CLICK_TEXT)。
- contenteditable 输入框:daemon
fill会写 DOM 但框架状态不更新(发送键保持灰); 正确做法是box.focus(); document.execCommand('selectAll'); document.execCommand('insertText', text)。 - 角色改名 input:合成事件全部无效,必须可信键盘
key_type(打字)+send_keys(Enter), 这要求 Edge 窗口在前台。
/character/new是直达路由(项目 URL + /character/new),可以完全绕过视图切换; 提交后 URL 变为/character/<uuid>,可用来确认提交成功。- 窗口不可见时一切都会静默失败:Edge 最小化/被遮挡时
visibilityState==='hidden', 渲染冻结、trusted 输入被拒(mouse_click 报 "click did not reach the page")、图片生成直接失败。 脚本里已加 visibilityState 门控。批量跑之前必须把 Edge 窗口调到前台(batch/raise_edge2.ps1, 浏览器是 Edge 不是 Chrome)。 - 模型坑:角色页模型选择器会静默从 "Nano Banana 2" 掉到 "Nano Banana 2 Lite", Lite 模式下提交被静默吞掉(无报错、无生成)。遇到"点了开始生成没反应"先查模型下拉。
- Flow 智能体(聊天框)也能生成 JoJo 图,但不一定注册成角色资产(林冲的图生成了, 资产后来才出现;卢俊义只出了图没进角色列表)——批量创建别依赖智能体。
已完成
- 角色 2 个:宋江·及时雨、林冲·豹子头(Flow 项目内,角色页可见)。
- 视频 3 段:王小波 S1《1992 年,他辞职了》拆成的 JoJo 画风三段(竖屏 9:16、Omni 1.1 Flash)。
- 批量工具(batch/ 目录,纯标准库):
heroes_tiangang.py/heroes_disha.py:剩余 106 将的 (名字, 绰号, JoJo 视觉设定) 数据;flow_batch_characters.py:驱动脚本,走/character/new直达路由 + execCommand 插入 + 可信键盘改名,进度落 progress.jsonl 可断点续跑;python flow_batch_characters.py [limit]单测 N 个。
结论
(未完,等批量跑完后填)
待办 / 下次继续
- 跑批:Edge 开着 Flow 项目页并保持窗口可见 →
python batch/flow_batch_characters.py。 单个角色约 60-90s,106 个约 2-3 小时;每 10 个自动截图存档。 - 已知未闭环:卢俊义的图已由智能体生成(在项目图片里)但未注册成角色资产; 批量时它排在第一个,跑批会重新正确创建一遍。
- 跑完后人工巡检:改名失败的(progress.jsonl 里 status=rename-failed)逐个补名; 生成失败的重跑。
- 可选:用建好的角色资产在 Flow 场景里生成"108 将群像/单将对决"短视频。