# Image To Prompt Generator

> 读取用户提供的参考图片，逐维度分析视觉信息，反推出可用于 AI 绘图的结构化提示词，并输出 JSON 文件。 当用户想要： - 分析一张参考图并生成对应的 AI 绘图提示词 - 反推图片的视觉构成、色调、风格等信息 - 把一张图的"感觉"转化成可复现的提示词 - 提到"图片反推"、"图生文"、"参考图分析"时 请立即调用此技能，即使用户只是说"帮我分析这张图"或"把这张图转成提示词"。

- Skill: `txyzznc/image-to-prompt-generator` (Agent Skill)
- Install (CLI): `npx skillmds@latest add txyzznc/image-to-prompt-generator`
- Raw SKILL.md: https://api.skillmd.com/api/skills/txyzznc/image-to-prompt-generator/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: AI & ML
- Author: txyzznc (https://skillmd.com/u/txyzznc)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/txyzznc/image-to-prompt-generator

---


# 图片反推提示词生成器

## 工作流程

### 第一步：询问锁定项（必须执行，不可跳过）

收到图片后，**先不分析，立即询问用户**：

> 请问你希望锁定哪些维度作为"不变项"迁移到新图中？（可多选）
>
> 1. 🎨 色彩色调（主色调、冷暖倾向、饱和度）
> 2. 📐 构图方式（三分法/中心/对角等、视角、焦点位置）
> 3. 🌄 背景要素（背景内容、前中远景层次）
> 4. 🖌️ 画面风格（艺术风格、渲染风格）
> 5. 🔷 几何构成（形状语言、线条方向、引导线）
> 6. 🧱 材质纹理（材质类型、表面质感）
> 7. 💡 光影渲染（光源方向、光照类型、阴影风格）
> 8. 😶 情绪氛围（核心情绪词、整体氛围）
> 9. 🧩 主体元素（保留主体本身，不作为无效词过滤）
>
> 请回复序号（如 1 3 4），未选中的维度将在最终提示词中作为**可替换的结构占位**处理，不写入具体内容。

等待用户回复后再进入分析阶段。

---

### 第二步：逐维度分析并过滤无效风格词

收到用户选择后，进行完整的 9 个维度分析，同时执行**结构骨架还原**：

**什么是无效风格词？**

无效词只存在于**未被锁定的维度**中。判断标准只有一个：
> "这个描述词，是否只适用于这张特定的图，换一张完全不同的图之后就失去意义？"

如果答案是"是"，就是无效词，替换为占位符。

无效词可以是任何维度中的任何词——不局限于主体：
- 色彩未锁定时：`#FF5C00 的夕阳橙` 很可能是当前场景专属的，属于无效词；但 `暖色调、高饱和` 这类描述结构是通用的，不是无效词
- 背景未锁定时：`远处的东京塔轮廓`、`废弃工厂管道`是场景专属描述，属于无效词；`远景虚化、层次分明的三层景深` 是结构性描述，不是无效词
- 几何构成未锁定时：`向左倾斜的武士刀形态` 是图片专属，属于无效词；`主体呈对角线斜向构图` 是通用的，不是无效词

**核心区别：具体内容词 vs 结构性描述词**
- 具体内容词：只在这张图才成立的命名、物品、场景（无效，过滤）
- 结构性描述词：描述的是视觉规律和形式关系，换任何图都能套用（有效，保留）

**过滤原则：**
- **用户已锁定的维度** → 所有内容全部保留，包括具体内容词
- **用户未锁定的维度** → 只保留结构性描述，具体内容词替换为 `[待替换]` 占位符

---

### 第三步：整合输出 JSON

---

## 分析维度（按顺序执行）

### 1. 关键元素 `key_elements`
识别画面中出现的所有视觉对象：
- 主体（最核心的视觉焦点是什么）
- 次要元素（配角、道具、装饰）
- 前景遮挡物（如有）

### 2. 构图 `composition`
分析画面的空间组织方式：
- 构图类型（三分法 / 中心构图 / 对角线 / 框架式 / 留白 / 对称等）
- 视角（俯视 / 仰视 / 平视 / 极端低角等）
- 视觉焦点位置（画面坐标感：左上 / 中心 / 右下等）
- 主体在画面中的占比

### 3. 色彩色调 `color_palette`
提取色彩信息：
- 主色调（1-2 个主导颜色，尽量给出近似色号）
- 辅助色 / 点缀色
- 整体色温（暖 / 冷 / 中性）
- 饱和度倾向（高饱和 / 低饱和 / 脱饱和）
- 明度倾向（高调 / 暗调 / 中间调）

### 4. 画面风格 `art_style`
判断艺术与渲染风格：
- 艺术风格（写实 / 半写实 / 插画 / 概念艺术 / 水墨 / 像素等）
- 渲染风格（3D 渲染 / 手绘 / 数字绘画 / 照片写实等）
- 参考风格标签（如能联想到类似的游戏/影视/画家风格，可注明）

### 5. 几何构成 `geometry`
分析抽象的形状语言：
- 主体的基本形（圆形感 / 三角感 / 方形感）
- 线条方向（垂直 / 水平 / 斜线 / 曲线为主）
- 视觉引导线（有没有隐含的引导视线的线条路径）
- 整体节奏感（密集 / 稀疏 / 层叠 / 简洁）

### 6. 背景要素 `background`
描述背景的内容与层次：
- 背景类型（纯色 / 渐变 / 场景 / 虚化 / 抽象）
- 前景层（最近处）
- 中景层（主体所在层）
- 远景层（最远处的元素或天空）
- 背景与主体的对比关系

### 7. 材质纹理 `material_texture`
描述表面质感：
- 主体的主要材质（金属 / 布料 / 皮肤 / 石材 / 木质 / 能量光效等）
- 表面处理感（光滑 / 粗糙 / 磨砂 / 反光 / 哑光）
- 是否有明显的纹理图案

### 8. 光影渲染 `lighting`
分析光照信息：
- 主光源方向（左上 / 右侧 / 正面 / 逆光 / 顶光 / 底光）
- 光照类型（自然光 / 魔法光效 / 环境光 / 聚光 / 漫反射）
- 阴影风格（硬边阴影 / 柔和过渡 / 几乎无阴影）
- 是否有次要光源或 rim light（边缘光）

### 9. 情绪与氛围 `mood_atmosphere`
提炼画面传达的感受：
- 核心情绪词（3-5 个关键词，如：史诗感、压迫感、温柔、神秘、危机）
- 整体氛围（宏大 / 亲密 / 紧张 / 平静 / 黑暗 / 梦幻等）
- 叙事暗示（画面是否暗示了某种故事或时间节点）

---

## 输出格式

分析完成后，整合所有维度，输出以下 JSON。**`prompt_summary` 必须是英文**，其余字段用中文填写。

`prompt_summary` 的写法要求：
- 自然连贯的段落描述，而非关键词堆砌
- 先描述主体和动作，再描述环境，最后收尾风格与氛围
- 长度控制在 3-5 句话之内

JSON 中每个字段根据用户锁定情况有两种状态：
- **已锁定** → 填入完整的具体描述
- **未锁定** → 填入结构性描述或 `"[待替换：请填入你的XXX]"` 占位符

```json
{
  "key_elements": "（已锁定→具体主体描述）（未锁定→「[待替换：请填入你的主体]」）",
  "composition": "构图类型，视角，焦点位置，主体占比",
  "color_palette": "主色调（近似色号），辅色，整体色温与饱和度",
  "art_style": "艺术风格与渲染风格",
  "geometry": "形状语言，线条方向，引导线",
  "background": "背景类型，前中远景层次",
  "material_texture": "材质类型，表面质感",
  "lighting": "光源方向，光照类型，阴影风格",
  "mood_atmosphere": "情绪关键词，整体氛围",
  "locked_dimensions": ["用户选择锁定的维度名称列表"],
  "prompt_summary": "A natural English prompt. Locked dimensions use specific values; unlocked dimensions use structural placeholders like [SUBJECT], [BACKGROUND_CONTENT], etc."
}
```

---

## 注意事项

- **必须先询问锁定项**，未经询问不得直接输出分析结果
- 未锁定维度的字段中，不要写入与参考图主体强绑定的具体名词（如物种名、人名、特定物品名），改为结构性描述或占位符
- `prompt_summary` 中未锁定维度用全大写占位符标记（如 `[SUBJECT]`、`[BACKGROUND]`），方便用户直接替换
- 如果图片某个维度信息不明确，在该字段中注明"不明确"，不要猜测
- 如果图片包含文字，忽略文字内容，专注视觉元素

