# Image To Prompt Skill

> image-to-prompt-skill

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

---

# image-to-prompt-skill

## 功能

从图片中提取视觉描述，生成可用于文生图的提示词。

## 使用场景

1. **参考图分析**：分析参考图片，生成风格一致的提示词
2. **风格迁移**：从现有图片提取风格特征，应用到新场景
3. **提示词优化**：对比生成图片与目标效果，优化提示词
4. **资产复用**：从历史项目图片中提取提示词，复用到新项目

## 输入

- **图片文件路径**：本地图片文件（PNG、JPG、WEBP 等）
- **分析维度**（可选）：
  - `full`：完整分析（默认，包含所有元素）
  - `character`：聚焦人物（外观、服装、表情、姿态）
  - `scene`：聚焦场景（环境、光线、氛围、道具）
  - `composition`：聚焦构图（景别、角度、运镜、色彩）

## 输出

- **提示词文件**：`outputs/{剧本名}/reverse-prompts/{图片名}-prompt.md`
- **内容包含**：
  - 原图路径
  - 分析维度
  - 提示词（叙事描述式）
  - 关键元素清单（人物、场景、构图、色彩、光影、氛围）

## 执行流程

1. **读取图片**：加载本地图片文件
2. **编码图片**：将图片编码为 base64 格式
3. **调用 API**：使用 gemini-3.1-pro-preview 模型分析图片
4. **提取元素**：根据分析维度提取关键视觉元素
5. **生成提示词**：将视觉元素转化为叙事描述式提示词
6. **输出文件**：保存提示词到指定路径

## API 调用示例

```python
from openai import OpenAI
import base64
import os

# 初始化客户端
client = OpenAI(
    api_key="your-api-key",
    base_url=os.environ["NANO_BANANA_BASE_URL"]
)

# 读取并编码图片
with open("image.jpg", "rb") as f:
    image_data = base64.b64encode(f.read()).decode("utf-8")

# 调用 API
response = client.chat.completions.create(
    model="gemini-3.1-pro-preview",
    messages=[{
        "role": "user",
        "content": [
            {
                "type": "image_url",
                "image_url": {
                    "url": f"data:image/jpeg;base64,{image_data}"
                }
            },
            {
                "type": "text",
                "text": "请详细描述这张图片的视觉元素，包括人物、场景、构图、色彩、光影、氛围等，生成可用于文生图的提示词。"
            }
        ]
    }]
)

prompt = response.choices[0].message.content
print(prompt)
```

## 提示词生成原则

1. **叙事描述式**：使用完整句子描述，避免关键词堆叠
   - ❌ 错误：`男性，黑色西装，严肃表情，办公室背景`
   - ✅ 正确：`一位身穿黑色西装的中年男性站在现代办公室中，表情严肃，目光锐利，背景是落地窗和城市天际线。`

2. **元素完整**：覆盖 26 元素框架（参见 `references/20-frame-description-elements.md`）
   - 人物：外观、服装、表情、姿态、动作
   - 场景：环境、道具、空间关系
   - 构图：景别、角度、视角
   - 色彩：主色调、色彩对比、色彩情绪
   - 光影：光源、明暗对比、光影氛围
   - 氛围：情绪基调、叙事意图

3. **可复现性**：描述足够精确，能够生成相似的图片
   - 包含具体的细节（如"深蓝色西装"而非"西装"）
   - 包含空间关系（如"站在窗前"而非"站着"）
   - 包含情绪线索（如"严肃的表情"而非"表情"）

4. **风格一致**：保持与项目整体风格一致
   - 参考项目已有的角色和场景提示词
   - 保持相同的描述风格和细节层次

5. **可编辑性**：提示词结构清晰，便于后续修改和优化
   - 使用段落分隔不同元素
   - 使用清晰的标记（如"人物："、"场景："）

## 分析维度说明

### full（完整分析）

提取所有视觉元素，生成完整的提示词。适用于：
- 需要完整复现图片的场景
- 参考图分析
- 风格迁移

**输出示例**：
```markdown
## 提示词

一位身穿深蓝色西装的中年男性站在现代办公室的落地窗前，表情严肃，目光锐利。他的右手插在口袋里，左手自然垂放，身体微微侧向窗外。背景是城市天际线，高楼林立，天空呈现出黄昏时分的暖橙色调。办公室内部光线柔和，来自顶部的筒灯和窗外的自然光形成明暗对比，营造出一种冷静、专业的氛围。

## 关键元素

**人物**：
- 外观：中年男性，短发，五官立体
- 服装：深蓝色西装，白色衬衫，深色领带
- 表情：严肃，目光锐利
- 姿态：站立，右手插口袋，左手垂放，身体微侧

**场景**：
- 环境：现代办公室，落地窗，城市天际线
- 道具：无明显道具
- 空间关系：人物站在窗前，背景是城市

**构图**：
- 景别：中景
- 角度：平视
- 视角：正面偏侧

**色彩**：
- 主色调：深蓝、暖橙、灰白
- 色彩对比：冷暖对比（室内冷色 vs 窗外暖色）
- 色彩情绪：冷静、专业

**光影**：
- 光源：顶部筒灯 + 窗外自然光
- 明暗对比：中等对比
- 光影氛围：柔和、专业

**氛围**：
- 情绪基调：冷静、严肃、专业
- 叙事意图：展现人物的权威感和决断力
```

### character（聚焦人物）

重点提取人物相关元素，适用于：
- 角色设定图生成
- 人物提示词优化
- 角色一致性参考

**输出示例**：
```markdown
## 提示词

一位中年男性，短发，五官立体，表情严肃，目光锐利。他身穿深蓝色西装，内搭白色衬衫和深色领带，右手插在口袋里，左手自然垂放，身体微微侧向一侧，展现出冷静、专业的气质。

## 关键元素

**人物**：
- 外观：中年男性，短发，五官立体
- 服装：深蓝色西装，白色衬衫，深色领带
- 表情：严肃，目光锐利
- 姿态：站立，右手插口袋，左手垂放，身体微侧
- 气质：冷静、专业、权威
```

### scene（聚焦场景）

重点提取场景相关元素，适用于：
- 场景设定图生成
- 环境提示词优化
- 场景一致性参考

**输出示例**：
```markdown
## 提示词

现代办公室，落地窗前，背景是城市天际线，高楼林立。天空呈现出黄昏时分的暖橙色调，与室内的冷色调形成对比。办公室内部光线柔和，来自顶部的筒灯和窗外的自然光交织，营造出专业、冷静的氛围。

## 关键元素

**场景**：
- 环境：现代办公室，落地窗，城市天际线
- 道具：无明显道具
- 空间关系：室内空间，窗外城市景观
- 光线：顶部筒灯 + 窗外自然光
- 氛围：专业、冷静、现代
```

### composition（聚焦构图）

重点提取构图相关元素，适用于：
- 分镜参考
- 镜头设计
- 构图优化

**输出示例**：
```markdown
## 提示词

中景，平视角度，正面偏侧视角。人物位于画面中心偏右，背景是落地窗和城市天际线。色彩以深蓝、暖橙、灰白为主，形成冷暖对比。光线来自顶部和窗外，明暗对比适中，营造出专业、冷静的视觉氛围。

## 关键元素

**构图**：
- 景别：中景
- 角度：平视
- 视角：正面偏侧
- 人物位置：画面中心偏右
- 背景：落地窗 + 城市天际线

**色彩**：
- 主色调：深蓝、暖橙、灰白
- 色彩对比：冷暖对比
- 色彩情绪：冷静、专业

**光影**：
- 光源：顶部筒灯 + 窗外自然光
- 明暗对比：中等对比
- 光影氛围：柔和、专业
```

## 注意事项

1. **图片格式**：支持 PNG、JPG、JPEG、WEBP、GIF 等常见格式
2. **图片大小**：建议不超过 10MB，过大的图片可能导致 API 调用失败
3. **API 配置**：必须在 `.env` 或环境变量中配置 `NANO_BANANA_API_KEY` 和 `NANO_BANANA_BASE_URL`
4. **敏感内容**：避免分析包含敏感内容的图片
5. **版权问题**：确保图片来源合法，避免侵权

## 与其他 Agent 的协作

- **art-designer**：将反推的提示词集成到角色或场景提示词中
- **image-generator**：使用反推的提示词生成新图片，验证提示词质量
- **storyboard-artist**：参考反推的提示词优化分镜描述
- **visual-storyteller**：使用反推的提示词作为视觉化参考

## 参考文档

- `references/20-frame-description-elements.md`：帧图描述 26 元素清单
- `references/11a-seedance-prompt-methodology.md`：Seedance 提示词方法论
- `references/11b-image-motion-prompt.md`：图像与动态提示词方法论

