automatic-lovart
v0.1.0
Published
Lovart browser automation agent for isolated prompt-to-image tasks.
Readme
Automatic Lovart Agent
这个项目用 Playwright 控制浏览器访问 Lovart,把多个 prompt 当成相互隔离的任务执行。每个任务使用独立 browser context,最多和 Lovart 交互 6 轮,并把检测到的图片保存到 ./picture_lovart/<task_id>/。
准备
运行这个工具需要安装本机 Google Chrome。Lovart/登录校验可能会拒绝 Playwright 自带的 Chromium,所以不要只依赖 npm run install:browsers 下载的浏览器。
从 npm 安装后初始化当前目录:
npm install -g automatic-lovart
automatic-lovart-init本地源码开发:
npm install
cp prompts.example.json prompts.json编辑 prompts.json,每个任务只需要写 prompt。任务 id 会由程序自动按 task_001、task_002 的格式自增生成,并记录在 .auth/task-state.json。
保存 Lovart 登录态
使用真实 Google Chrome 保存登录态,避免 Google OAuth 或 Lovart 校验拦截 Chrome for Testing:
npm run auth:chrome如果是 npm 全局安装,也可以运行:
automatic-lovart-auth脚本会用你本机安装的 Google Chrome 打开 Lovart。你手动登录完成后,回到终端按 Enter,登录态会保存到 .auth/lovart.storage.json。脚本不会保存账号密码。
旧的 Playwright Chromium 登录方式保留在脚本里,但如果遇到校验失败,不建议用于分享部署:
npm run auth运行任务
npm run run:headed无头运行:
npm run run如果是 npm 全局安装,在初始化后的项目目录运行:
automatic-lovart定时运行。下面的命令会等到本地时间 23:30 再开始执行;如果当前时间已经晚于 23:30,则预约到明天 23:30:
npm run run -- --start-at 23:30
automatic-lovart --start-at 23:30定时等待和任务运行期间,程序会尝试阻止系统休眠,直到本次进程结束。macOS 使用系统自带的 caffeinate;Linux 使用 systemd-inhibit。如果当前系统不支持,会在终端打印警告并继续执行。
输出结构:
picture_lovart/
task_001/
task_001_001.png
manifest.json
task_002/
task_002_001.jpg
manifest.json
run-report.jsonmanifest.json 和 run-report.json 会记录任务 id、轮次、图片文件路径、来源 URL 或截图来源。交付检测标准是:对应任务 id 目录下至少存在 1 个通过文件头校验的图片文件。
配置
主要配置在 lovart.config.json:
maxRounds: 最大交互轮数,默认 6。generationWaitMs: 每轮等待图片生成的最长时间。taskStatePath: 自动任务 id 的本地状态文件路径,默认.auth/task-state.json。selectors: Lovart 页面选择器。如果 Lovart 改版,优先调整这里。followUpPrompt: 当 Lovart 询问更多信息或未生成图片时,agent 发送的追问。
如果 Lovart 入口页登录后没有自动进入创作界面,可以把 lovartUrl 改成你登录后实际使用的创作页 URL。
