---
name: image-gen
version: 1.0.0
category: 开发编程
trigger_words:
tags:
  - image
  - api
  - ai
platform: coze
source: DeepseekModel
source_url: https://deepseekmodel.com/skill?id=wpsnote-wpsnote-skills-skills-image-gen-skill-md
---

name image-gen description AI 图像生成助手，支持文生图和图生图，对接 OpenRouter / 阿里云百炼 / 火山方舟 / Google Gemini。 内置 API Key 加密管理：Key 以 AES 加密存入 WPS 笔记，解密密钥由「设备ID + 笔记ID + provider」现场派生，本机无需存储额外文件。 触发词："帮我生图""文生图""图生图""用 AI 画一张""生成一张图""根据这张图生成""垫图生图""用 Flux 生图""用 Gemini 生图"。 与 wpsnote-cli gen-image 的区别：本 Skill 支持图生图、多服务商选择、更高质量模型，是内置生图的升级替代方案。 metadata {"version":"2.0.0","category":"content-creation","tags":["image","gen-image","flux","gemini","dashscope","openrouter"],"dependencies":["wps-note"],"scripts":["comm_script/image_gen.py"]} 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