image-gen
Image Gen — AI 图像生成
支持文生图 + 图生图,自动管理 API Key,生成结果可直接插入 WPS 笔记。
铁律
- API Key 不得在对话中输出,无论任何情况
encrypt-key子命令输出的ciphertext_b64可以展示(这是密文,不是真实 Key)- 告警文案必须完整展示,不可省略
- 模型名称不允许修改,不允许用户自定义。每个 provider 只有唯一一个确认可用的模型,AI 必须严格使用下表中的值,不得根据用户描述、偏好或自行推断填写其他模型名——任何其他模型名均视为幻觉:
| provider | 唯一可用模型(硬编码,不可改动) |
|---|---|
| openrouter | google/gemini-3.1-flash-image-preview |
| dashscope(百炼) | qwen-image-2.0-pro |
| ark(即梦) | doubao-seedream-5-0-260128 |
| gemini | gemini-3-pro-image-preview |
用户只能选择用哪个 provider,模型由 AI 根据上表自动填入,任何情况下不接受覆盖。
核心流程
确认需求 → 确定 provider + model → 获取/解密 Key → 执行生图 → 询问是否插入笔记
Step 1:确认生图需求
询问:
请告诉我:
1. 生图描述(prompt)是什么?
2. 有参考图吗?(有 → 图生图;没有 → 文生图)
3. 比例偏好?(1:1 / 16:9 / 9:16 / 4:3 / 3:4,默认 1:1)
- 无参考图 → 文生图,全部 provider 可用
- 有参考图 → 图生图,仅 openrouter(本地文件)/ gemini(本地文件)/ ark即梦(公网 URL)支持;百炼不支持图生图
Step 2:确定 Provider
让用户从以下四个 provider 中选一个,模型由 AI 自动填入(见铁律):
| provider | 特点 | 适合场景 |
|---|---|---|
| openrouter | 走代理,文生图 + 图生图(本地文件垫图) | 代理环境,需要图生图 |
| dashscope(百炼) | 国内直连,仅文生图 | 国内网络,纯文生图 |
| ark(即梦) | 国内直连,文生图 + 图生图(垫图须公网 URL) | 国内网络,需要图生图 |
| gemini | 走代理,文生图 + 图生图(本地文件垫图) | 代理环境,Google 直连 |
用户未指定时,根据是否有代理、是否需要图生图主动推荐。
openrouter / gemini 国内需要代理,询问用户是否提供
--proxy。
Step 3:获取 Key
3.1 先搜笔记
search_notes 搜索 图像生成 Key,找到后 read_note 读取,在表格中找 provider 对应行,取出 ciphertext_b64 和 note_id。
找到密文 → 直接进入 Step 4(note 模式,脚本自动解密)。
找不到笔记或对应行 → 进入 Step 3.2。
3.2 向用户索取 Key
我需要 {provider} 的 API Key 才能继续。
获取地址:{平台 URL}
请直接粘贴你的 Key:
| provider | Key 获取地址 |
|---|---|
| openrouter | https://openrouter.ai/workspaces/default/keys |
| dashscope | https://bailian.console.aliyun.com/cn-beijing?tab=model#/api-key |
| ark | https://console.volcengine.com/ark/ |
| gemini | https://aistudio.google.com/app/api-keys |
收到 Key 后询问是否保存(见 Step 3.3)。
3.3 询问是否保存 Key
必须完整展示以下告警:
⚠️ 安全风险告知(请认真阅读)
如果你选择保存,Key 将以 AES 加密后存入 WPS 笔记:
- 加密密钥由「本机设备 ID + 笔记 ID + provider」现场派生,本机无需存储额外文件
- WPS 笔记不会获取你的 Key 内容,密文在其他设备上无法解密
- ⚠️ 如果你添加了第三方 MCP 插件,该插件可读取笔记内容(含密文)
- ⚠️ 换设备后,同一密文无法解密,需重新保存
是否保存? A. 保存(我已知悉风险) B. 不保存(本次临时使用)
选择保存:
-
检查
图像生成 Key笔记是否存在,不存在则create_note新建(标题图像生成 Key,加#图像生成标签) -
执行加密:
python3 comm_script/image_gen.py encrypt-key \
--note-id "{笔记 note_id}" \
--provider "{provider}" \
--key "{用户提供的Key}"
- 从输出中取
ciphertext_b64,整表替换写入笔记(新增或替换对应 provider 行):
<table>
<tr>
<td><p><strong>provider</strong></p></td>
<td><p><strong>ciphertext_b64</strong></p></td>
<td><p><strong>更新时间</strong></p></td>
</tr>
<tr>
<td><p>{provider}</p></td>
<td><p>{ciphertext_b64}</p></td>
<td><p>{当前日期}</p></td>
</tr>
</table>
- 对话只说:「Key 已加密保存到笔记《图像生成 Key》,下次自动读取。」
选择不保存:Key 仅本次使用,直接进入 Step 4,--key 直接传字符串。
Step 4:执行生图
note 模式(已有保存的 Key)
python3 comm_script/image_gen.py \
--provider "{provider}" \
--model "{model}" \
--key "note:{note_id}" \
--ciphertext "{ciphertext_b64}" \
--prompt "{prompt}" \
[--image "{参考图路径或URL}"] \
[--proxy "{代理地址}"] \
--aspect "{比例}" \
[--size "{分辨率}"] \
--out "./output"
临时模式(本次直接使用)
python3 comm_script/image_gen.py \
--provider "{provider}" \
--model "{model}" \
--key "{用户提供的Key}" \
--prompt "{prompt}" \
[--image "{参考图路径或URL}"] \
[--proxy "{代理地址}"] \
--aspect "{比例}" \
--out "./output"
执行前告知:「正在调用 {provider} 生成图片,预计 30-120 秒…」
生图完成后,从 [saved] {路径} 行获得本地图片路径。
Step 5:询问是否插入笔记
图片已生成:{路径}
需要插入到 WPS 笔记吗?
A. 插入当前打开的笔记
B. 插入指定笔记(请告诉我标题)
C. 不用,本地保存就行
选择插入时,执行以下步骤:
1. 获取目标笔记的 anchor_id(必须先做)
wpsnote-cli outline --note_id "{note_id}" --json
取 blocks 数组最后一个元素的 id 作为 anchor_id。
2. 插入图片(优先 CLI)
wpsnote-cli insert-image \
--note_id "{note_id}" \
--anchor_id "{最后一个block的id}" \
--position "after" \
--src "{图片本地路径或URL}" \
--json
返回 block_id 表示插入成功。
3. 降级:CLI 失败则用 MCP
insert_image({ note_id: "{note_id}", anchor_id: "{anchor_id}", position: "after", src: "{url或本地路径}" })
⚠️
insert-image要求目标笔记当前在 WPS 编辑器中打开,否则报INTERNAL_ERROR。如果报错,提示用户在 WPS 中打开该笔记后重试。
Step 6:删除 Key
用户说「删除 Key」「清除保存的 Key」「换一个 Key」时:
- 搜索
图像生成 Key笔记,整表替换删除对应 provider 行 - 告知:「{provider} 的密文已从笔记中删除。下次生图需重新提供 Key。」
无需清理本机文件(note 模式本机本就无存储)。
常见问题处理
| 场景 | 处理方式 |
|---|---|
| 解密失败(换了设备) | 提示"换设备后密文不可用,请重新执行保存流程" |
| openrouter / gemini 连接超时 | 提示"国内需要代理,请提供代理地址" |
| 百炼传了参考图 | 自动忽略,告知"百炼不支持图生图" |
| 火山方舟垫图是本地文件 | 提示"须为公网 URL" |
| 依赖未安装 | 提示 pip install httpx cryptography |
More from wpsnote/wpsnote-skills
tag-organize
笔记标签整理的核心原则与完整工作流程。当用户提到"整理笔记标签"、"清理标签"、"标签太乱"、"标签太多"、"帮我打标签"、"重构标签"、"重新分类"、"笔记分类混乱"、"标签体系需要优化"等需求时使用。
13wpsnote-beautifier
智能美化 WPS 笔记文档,采用克制统一的配色风格(全文仅1种主色调,不混用多色系)。核心能力:优化标题层级结构、用高亮块强调核心结论与注意事项、用分栏展示对比或并列内容、应用统一配色方案并写入。仅当用户明确表达美化需求时才触发,例如:美化笔记、排版优化、文档美化、笔记排版、WPS笔记美化、智能排版、文档结构调整、加颜色、加高亮、加分栏、让笔记好看点、优化文档格式、笔记太丑了、调整排版、加点样式、给笔记润色、整理笔记格式、提升可读性。不要在用户仅要求写入内容、编辑文字、总结归纳等非美化场景下主动触发此skill。通过 user-wpsnote MCP 服务操作 WPS 笔记文档。
13literature-reader
阅读、分析并总结学术文献(PDF论文),生成结构化的文献概要笔记。核心能力:论文元信息提取、研究问题识别、方法论梳理、实验结果分析、个人评价生成,以及多篇文献横向对比。支持中英文论文、单篇精读与批量文献综述。当用户提供 PDF 论文文件、要求阅读文献、总结论文、文献综述、论文概要、论文精读、paper summary、paper review、读论文、读 paper、帮我看看这篇论文、分析这篇文章、这篇论文讲了什么、论文的方法是什么、帮我做文献笔记、批量读论文、对比这几篇论文时使用此 skill。处理 .pdf 格式文件。
12note-copilot
笔记协作助手:帮用户打磨当前 WPS 笔记,识别并处理笔记中的 *** 和 /// 援助标记,同时在发现明显逻辑错误时以着色方式提醒。当用户说「帮我打磨笔记」「打磨一下」「帮我看看笔记」「处理一下标记」「定期帮我打磨」,或提到笔记中有 *** 或 /// 需要处理时使用此 skill。
11wechat-publisher
|
10ie-engine
灵感引擎的统一入口,串联记忆检索、想法连接和洞见生成的完整流水线。当用户提到"灵感引擎"、"激发灵感"、"connect the dots"、"寻找灵感"、"帮我把想法串起来"、"从笔记中发现新东西"等需要完整运行灵感生成流水线的场景时使用此技能。此外,当用户正在深入探索某个主题、进行创造性思考、或讨论复杂问题时,如果你判断用户的历史笔记中可能存在相关启发,也应主动考虑触发此技能,以轻量提示的方式提醒用户历史笔记中可能有相关灵感。只有需要完整流水线时才触发此技能;如果用户只需要单一能力(如仅检索笔记或仅分析关系),请使用对应的分层技能:ie-retrieve-memory、ie-connect-dots 或 ie-generate-insight。
8