即梦AI 文生图 CLI 实战:用 OpenCLI 驱动浏览器会话自动生成图片
2026/9/20 12:12:55 网站建设 项目流程
  • 开发工具
  • CLI
  • 人工智能
  • AI 应用
  • 浏览器控制
  • GUI 自动化

【免费下载链接】OpenCLI

Make Any Website into CLI & Use your logged-in browser by AI agent.

项目地址:https://gitcode.com/gh_mirrors/ope/OpenCLI
点击查看免费下载

即梦 AI(Jimeng,域名jimeng.jianying.com)是字节跳动推出的 AI 图像创作平台,本仓库为其提供了一套完整的 Browser 模式适配器,让你无需打开网页,即可通过opencli jimeng系列命令完成登录、文生图、历史记录查看与工作区管理。读完本文,你将掌握即梦 AI 适配器的全部命令用法、参数语义,以及其底层如何借助浏览器桥(Browser Bridge)复用已登录的 Chrome 会话完成 DOM 自动化与内部 API 调用。

适配器概览:浏览器模式与命令清单

即梦 AI 适配器属于 OpenCLI 的Browser 模式🔐 Browser),其核心特征是:命令不依赖第三方 API Key,而是直接复用你浏览器中已登录的会话。对应的实现源码位于 clis/jimeng 目录,共 5 个文件:

文件职责
generate.js文生图主命令generate
history.js生成历史查询history
new.js新建工作区(会话窗口)new
workspaces.js工作区列表workspaces
auth.js登录态探测与login/whoami注册

官方文档(docs/adapters/browser/jimeng.md)定义的两条核心命令如下:

命令说明
opencli jimeng generate即梦AI 文生图 — 输入 prompt 生成图片
opencli jimeng history查看生成历史

除此之外,源码中实际还注册了loginwhoaminewworkspaces等命令(详见后文),共同构成完整的即梦 AI 命令行工作流。

环境准备:Chrome 登录态与 Browser Bridge

在运行任何即梦命令之前,需要满足两个前提(官方文档 Prerequisites 一节):

  1. Chrome 正在运行,并且已登录 jimeng.jianying.com
  2. 已安装 Browser Bridge 扩展

Browser Bridge 是 OpenCLI 与浏览器之间的轻量桥梁,由「Chrome 扩展 + 微守护进程」组成(零配置、自动启动),完整安装说明见 docs/guide/browser-bridge.md。它在连接断开时会让命令返回退出码69EX_UNAVAILABLE,详见 docs/guide/exit-codes.md)。即梦适配器中每个命令都声明了strategy: Strategy.COOKIEbrowser: true(如 generate.js),这意味着命令会经由浏览器会话携带登录 Cookie 执行,而非直接发起裸网络请求。

登录与身份认证:login / whoami 命令

即梦 AI 走的是字节跳动的通用 passport 体系。在 auth.js 中,登录态探测通过浏览器上下文请求/passport/account/info/v2/?aid=513695完成:

  • 若返回 HTTP401/403,判定为认证失败;
  • 若返回的data中缺少user_idis_visitor_accounttrue,则视为匿名访客,抛出AuthRequiredError
  • 正常时返回user_idscreen_name(payload 中携带的手机号/邮箱字段被刻意忽略,只暴露稳定 ID 与昵称)。

auth.js通过registerSiteAuthCommands(实现见 clis/_shared/site-auth.js)批量注册两个命令:

  • opencli jimeng whoami:只读探测,输出logged_insiteuser_idscreen_name等列;
  • opencli jimeng login:打开登录页并在前台等待,默认超时 300 秒,每 2 秒轮询一次身份探测,直到登录完成(status: login_complete)或超时抛出TimeoutError。若已登录,直接返回status: already_logged_in

generate 命令详解:参数与底层自动化流程

generate是即梦适配器的核心命令,其参数定义如下(来自 generate.js 与官方文档 Options 表):

选项类型默认值说明
--promptstring—(必填)图片描述 prompt,支持位置参数直接传入
--modelstringhigh_aes_general_v50模型选择:high_aes_general_v50(5.0 Lite)、high_aes_general_v42(4.6)、high_aes_general_v40(4.0)
--waitint40等待生成完成的秒数

官方文档给出的典型用法:

# 生成一张图片 opencli jimeng generate --prompt "一只在星空下的猫" # 使用指定模型 opencli jimeng generate --prompt "cyberpunk city" --model high_aes_general_v50 # 设置自定义等待超时 opencli jimeng generate --prompt "sunset landscape" --wait 60

命令输出列固定为statuspromptimage_countimage_urls。从源码看,generatepipeline完整描述了一次「网页级 UI 自动化」的五步流程:

  1. 进入生成页navigatehttps://jimeng.jianying.com/ai-tool/generate?type=image&workspace=0,随后wait: 3秒等待页面渲染;
  2. 计数既有图片:统计img[src*="dreamina-sign"]/img[src*="tb4s082cfz"]选择器命中的图片数量,作为生成前后对比基线;
  3. 清空并写入 prompt:定位[contenteditable="true"]编辑器,依次执行focusselectAlldeleteinsertText,把args.prompt注入输入框;
  4. 点击生成按钮:点击.lv-btn.lv-btn-primary[class*="circle"]主按钮;
  5. 轮询等待新图:每秒检查一次图片 DOM,一旦图片数量超过基线即判定生成完成,并截取新增图片的src(缩略图 URL)作为结果。

若在--wait秒内没有新图出现,命令不会报错中断,而是返回status: timeout,并提示「Generation may still be in progress」,把结果状态的选择权交给调用方。若编辑器或生成按钮未找到,则分别返回status: failed与对应的错误文案;成功时image_urls以换行符连接返回。prompt字段在结果中会被截断到 80 字符以内。这套「DOM 交互 + 状态轮询」的实现方式,正是 Browser 模式适配器区别于纯 API 适配器的关键特征——它对前端 DOM 结构有依赖,网页改版后需同步更新选择器。

history 命令详解:查询生成历史

history命令用于查看最近生成的作品,参数仅一个可选值:

选项类型默认值说明
--limitint5返回最近作品条数
# 查看最近 10 条生成记录 opencli jimeng history --limit 10

generate走 DOM 自动化不同,history直接在浏览器上下文中以credentials: 'include'调用站内接口/mweb/v1/get_history(POST,aid=513695),请求体携带{ cursor: '', count, need_page_item: true, need_aigc_data: true, aigc_mode_list: ['workbench'] }。输出列固定为:

  • prompt:取aigc_image_params.text2image_params.prompt,缺失时回退到common_attr.title,再缺失显示N/A
  • modelmodel_config.model_name,缺失显示unknown
  • statuscommon_attr.status === 102时为completed,否则为pending
  • image_urlimage.large_images[0].image_url
  • created_atcreate_time(Unix 秒)经toLocaleString('zh-CN')格式化。

注意--limit默认值为 5(与文档示例中的--limit 10不同),且源码同时在接口请求与输出管道{ limit: ... }两处应用该参数,保证最终渲染条数与请求条数一致。

工作区管理:new 与 workspaces

虽然官方文档未收录,但源码中还存在两条实用的工作区命令:

opencli jimeng new— 新建会话(workspace)。通过浏览器上下文 POST/mweb/v1/workspace/create?aid=513695创建,成功后返回workspace_id与可直接访问的workspace_urlhttps://jimeng.jianying.com/ai-tool/generate?type=image&workspace=<id>)。若接口返回ret === '1014',会抛出「Not logged in」提示。

opencli jimeng workspaces— 查看所有工作区。POST/mweb/v1/workspace/list,输出workspace_idnameis_pinned(是否置顶)、updated_at四列。同样对ret === '1014'做未登录拦截。

这两条命令配合generateworkspace=0默认工作区,可以实现「多会话并行创作」的脚本化工作流。

错误处理与使用建议

综合源码与 docs/guide/exit-codes.md,即梦适配器的错误场景可归纳为四类:

  1. 未登录/会话失效AuthRequiredError,提示先运行opencli jimeng login或手动在 Chrome 中登录 jimeng.jianying.com;
  2. HTTP 异常:passport 或内部接口返回非预期状态码时抛出CommandExecutionError
  3. 生成超时generate返回status: timeout,表示任务仍在后台进行,可稍后用history确认结果;
  4. 浏览器桥断开:退出码69,需要检查 Browser Bridge 扩展与守护进程状态。

从仓库源码结构(src 下的registryexecutionbrowser等模块)可以推断,即梦适配器与其他 Browser 模式适配器(如 doubao、chatgpt 等)共用同一套浏览器桥与命令执行框架,因此本文介绍的login/whoami机制与Strategy.COOKIE策略对该类适配器普遍适用。如果你想为其他字节系 AI 站点编写类似适配器,clis/jimeng/auth.js 中「passport 探测 + 轮询登录」的写法是可直接复用的模板。

  • 开发工具
  • CLI
  • 人工智能
  • AI 应用
  • 浏览器控制
  • GUI 自动化

【免费下载链接】OpenCLI

Make Any Website into CLI & Use your logged-in browser by AI agent.

项目地址:https://gitcode.com/gh_mirrors/ope/OpenCLI
点击查看免费下载

相关推荐

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询