给 Pi 装上生图插件:从登录报错到画出一只 200×200 的猫

我给 Pi 装了 pi-codex-image-gen,想直接在终端里画图。

照着插件示例试了一次,没画出来,报的是 Missing image OAuth credentials。按提示执行 /login codex-images,在浏览器里完成授权后,再让它画一只猫,这次成功了。

这个插件能做什么?

装上 pi-codex-image-gen 后,可以在 Pi 对话里生成图片。也能拿本地图片或对话中的图片作参考来编辑,支持 PNG、JPEG、WebP。

它用的是 ChatGPT 订阅的图像生成能力,不用另配 OpenAI API Key,也不需要安装 Codex App。生成会消耗账号的图像额度,能否使用、能用多少,要看账号和服务端的限制。

插件在 Pi 官网的 Packages 页面:pi.dev/packages/pi...

安装插件

先确认 Pi 已经能正常使用,ChatGPT 订阅账号也有可用的图像生成额度。插件要求 Pi 1.1.0 或以上,Node.js 22.19.0 或以上。

我用的是 Pi-Bolt,所以命令写成 pi-bolt。用原版 Pi 的话,把下面的 pi-bolt 换成 pi,官网截图里用的就是 pi。

在系统终端安装插件:

bash 复制代码
pi-bolt install npm:pi-codex-image-gen

装完看一下包列表:

bash 复制代码
pi-bolt list

再进入会话:

bash 复制代码
pi-bolt

已经开着会话的话,在会话输入框里执行一次:

text 复制代码
/reload

这会重新加载扩展和技能。下面的 /login、/skill:imagegen 都输在这个输入框里,不是 Shell 命令。

第一次试画,卡在了登录

我先用了插件 README 里的宝剑示例,要求画一个 32×32 的像素图标:

text 复制代码
Generate a pixel-art sword icon, 32×32, with a blue blade and gold hilt

工具被调用了,随后报错,没有生成图片:

text 复制代码
Missing image OAuth credentials. Run /login codex-images.

这里漏了一步图像登录。Pi 把聊天和生图的授权分开管理,两个登录是独立的。用 openai 的 ChatGPT 登录只能聊天,不能生图。换聊天模型也解决不了。

接着在 Pi 会话输入框里执行:

text 复制代码
/login codex-images

按提示到浏览器里,用 ChatGPT 账号完成登录和授权,再回到终端。

也可以输入 /login,从列表里选:

text 复制代码
Codex Images (ChatGPT subscription)

凭证由 Pi 保存和刷新,不用自己改 auth.json。登录被拒绝或凭证过期时,重新执行 /login codex-images。

如果列表里找不到 Codex Images,先查插件有没有装好,再试一次 /reload,必要时重启会话。

登录后,重新画一只猫

我发了一句中文:

text 复制代码
画一只200*200的猫

想指定用插件自带的技能,也可以写:

text 复制代码
/skill:imagegen 画一只200*200的猫

这次 codex_generate_image 调用成功,终端里有了图片预览和保存路径。

输出中的 Status: completed 表示生成完成,Saved image to: 后面跟着本地文件路径。

其中的 gpt-6-astra 是路由模型名。实际图像模型由后端选择,这个名字看不出用的是哪个模型。

图画出来了,尺寸还要再处理

我要求的是 200×200,截图里返回的原图却是 1254×1254:

text 复制代码
Backend-reported size: 1254x1254.

之后在本地缩放到 200×200,再检查文件尺寸。

要精确尺寸,可以出图后接着说:

text 复制代码
把刚才生成的图片缩放到精确的200×200像素,另存为PNG,保留原图,并检查最终文件尺寸。

做头像、图标这类有固定规格的素材时,记得检查实际像素。

图片保存在哪里,之后怎么改?

默认图片会存在 Pi 的 agent 目录下,通常是:

text 复制代码
~/.pi/agent/generated-images/<session-id>/

找文件时,看 Saved image to: 后面的路径就行。

要给项目用,可以把保存位置一起告诉它:

text 复制代码
画一只可爱的橘猫,正面坐姿,米白色背景,不要文字。
最终导出为200×200像素PNG,保留原图,并把最终文件复制到当前项目的assets目录。

保存前看一眼目标目录,别覆盖了同名资源。

想接着改刚才那张图,可以继续发要求:

text 复制代码
基于刚才那张猫图,把表情改成闭眼微笑,尽量保留姿势和配色,另存一份。

一次最多能引用 5 张本地或近期对话里的图片。改图会重新发起生成请求,可能继续消耗额度。

登录后还报错怎么办?

如果仍然提示 Missing image OAuth credentials,检查 /login codex-images 是否完成了授权。返回 401 或 403 时,也可以重新登录,检查授权状态。

遇到 429、额度耗尽、连接失败或超时,先确认具体的报错原因。超时和连接中断时,远端可能已经开始生成,上一笔也可能用掉了额度,不要马上连续提交同一个请求。

插件还有一条独立的 CLI 路径,需要 OPENAI_API_KEY,按 API 单独计费。要用它得主动选择,订阅登录失败时不会自动切过去。

参考链接

相关推荐
ZhengEnCi几秒前
Agent 如何动态挂载相关知识:三层渐进加载 + 路由机制把自动化再提一档
agent
逻辑与温度几秒前
花了三毛六,我把 Claude Code 和 DSH 测了三轮:同一个 DeepSeek,两个壳差距有多大
claude·deepseek
IT_陈寒5 分钟前
Vite的HMR把我整不会了:一个生产环境的热更新坑
前端·人工智能·后端
Mh16 分钟前
如何使用双缓冲优化视频切换
前端
risenav22 分钟前
低头蓄力,抬头起跳:《萤虫跳跳》的 Rokid AIUI 开发实战
前端
Pniubi31 分钟前
ReAct
agent
威哥爱编程35 分钟前
模拟面试智能体开发实战 02:回答等半分钟,谁还愿意练?把服务端和流式输出搭起来
python·agent·harmonyos
ZhengEnCi38 分钟前
如何看待 Fable 5.2 用纯代码生成 1.4MB 视觉作品:光追、水面、倒影、火光的程序化生成原理
前端
威哥爱编程44 分钟前
模拟面试智能体开发实战 01:面试挂了都不知道挂在哪?用 Python 给自己造一个随叫随到的 AI 面试官
python·agent·harmonyos
努力的小郑1 小时前
数据查到了,回答去哪儿了?一次百炼 + LangChain 排查实录
后端·langchain·agent