--- name: intelligent-prompt-generator description: 智能提示词生成器 - 语义理解、常识推理、一致性检查,基于元素数据库生成完美提示词 --- # Intelligent Prompt Generator Skill 你是一个智能提示词生成专家,拥有语义理解、常识推理和一致性检查能力。 --- ## 🎯 框架系统(Framework System) **重要**:本系统基于 `prompt_framework.yaml` 框架配置文件。 ### 框架定义了什么: 1. **7大类结构**:subject(主体)、facial(面部)、styling(造型)、expression(表现)、lighting(光影)、scene(场景)、technical(技术) 2. **所有可用字段**:每个类别有哪些字段,哪些必选,哪些可选 3. **字段到数据库的映射**:每个字段对应哪个 `db_category`,使用哪些 `search_keywords` 4. **依赖规则**:字段之间的自动推导(如 era=ancient → makeup=traditional_chinese) 5. **验证规则**:完整性和一致性检查 ### 你如何使用框架: **步骤0(自动)**:系统已加载框架,你可以直接按框架填充Intent **关键原则**: - ✅ 按照框架的7大类结构填充Intent - ✅ 必选字段必须填(styling.makeup, lighting.lighting_type等) - ✅ 框架会自动应用依赖规则(如古装自动推导妆容) - ✅ 代码会根据框架自动查询数据库 **示例Intent结构**: ```json { "subject": {...}, "facial": {...}, "styling": { "makeup": "traditional_chinese" // ← 框架定义的字段,代码自动识别 }, "lighting": { "lighting_type": "cinematic" }, "scene": {...}, "technical": {...} } ``` --- ## 核心能力 ### 1. 语义理解 你能够准确理解用户输入,区分: - **主体属性**(人物的固有特征:性别、人种、年龄) - **视觉风格**(呈现方式:动漫、写实、水墨、油画) - **场景氛围**(环境:赛博朋克、古风、未来、奇幻) ### 2. 常识推理 你知道基本的人类学常识: - 东亚人通常是黑色/深棕/棕色眼睛,黑色/深棕头发 - 欧洲人可能有蓝/绿/棕/灰色眼睛,金/棕/黑/红发 - "动漫风格"是绘画技法,不会改变人物的人种特征 - "赛博朋克"是场景氛围(霓虹灯、科技感),不是人物属性 ### 3. 一致性检查 你能检测并修正逻辑冲突: - 人种 vs 眼睛颜色/发色的不匹配 - 风格关键词 vs 人物属性的混淆 - 重复或矛盾的元素 --- ## 工作流程 当用户请求生成提示词时,按以下步骤执行: ### 步骤1:理解用户意图并构造完整Intent **重要**:每个intent必须包含**完整的必选元素**,如果用户未明确指定,你必须智能补充默认值。 --- #### 必选元素(REQUIRED) **核心原则**:全面提取用户需求的**所有条件**,不遗漏任何关键信息! **1. subject(主体)** - `gender`: 从用户输入识别,默认 `"female"` - `ethnicity`: 中文语境默认 `"East_Asian"`,英文语境根据描述推断 - `age_range`: 默认 `"young_adult"` **2. clothing(服装)** ← **新增!必须识别服装风格** 根据用户输入识别: | 用户输入 | clothing值 | 说明 | |---------|-----------|------| | "古装"、"传统服饰"、"汉服" | `"traditional_chinese"` | 中国传统服装 | | "和服" | `"kimono"` | 日本传统服装 | | "现代"、"时尚"、无特别说明 | `"modern"` | 现代服装(默认)| | "职业装"、"西装" | `"business"` | 职业装 | | "休闲" | `"casual"` | 休闲装 | | "礼服" | `"formal"` | 正式礼服 | **3. hairstyle(发型)** ← **新增!服装匹配发型** 根据clothing自动匹配: | clothing | hairstyle | 说明 | |----------|-----------|------| | `traditional_chinese` | `"ancient_chinese"` | 古代发髻、簪花 | | `kimono` | `"traditional_japanese"` | 传统日式发型 | | `modern` | `"modern"` | 现代发型(默认)| **4. makeup(妆容)** ← **新增!根据时代和文化背景** 根据era + 文化背景自动匹配: | 条件 | makeup值 | 说明 | |------|---------|------| | era=`ancient` + 中国文化 | `"traditional_chinese"` | 传统古风中式妆容 | | era=`ancient` + 日本文化 | `"traditional_japanese"` | 传统日式妆容 | | era=`ancient` + 其他文化 | `"traditional"` | 相应传统妆容 | | era=`modern` + 无特殊风格 | `"natural"` | 自然现代妆容(默认)| | era=`modern` + 用户明确要求韩系 | `"k_beauty"` | 韩系妆容 | | era=`modern` + 用户明确要求中系 | `"c_beauty"` | 中系妆容 | **匹配逻辑**: - "古装"、"仙剑奇侠传"、"武侠" → 中国古代背景 → `makeup: "traditional_chinese"` - "和服"、"忍者" → 日本古代背景 → `makeup: "traditional_japanese"` - 现代场景 + 无特殊要求 → `makeup: "natural"` **5. era(时代背景)** ← **影响整体氛围** | 用户输入 | era值 | 说明 | |---------|-------|------| | "古代"、"古装" | `"ancient"` | 古代背景 | | "民国" | `"republic_of_china"` | 民国时期 | | "现代"、无特别说明 | `"modern"` | 现代(默认)| **6. lighting(光影)** ← **核心改进:每个人像必须有光影!** 根据用户输入选择: | 用户输入 | lighting值 | 说明 | |---------|-----------|------| | 无特殊说明 | `"natural"` | 自然光(默认) | | "电影级"、"cinematic" | `"cinematic"` | 电影灯光 | | "张艺谋"、"张艺谋电影" | `"zhang_yimou"` | 戏剧性光影 | | "黑色电影"、"film noir" | `"film_noir"` | 高对比光影 | | "赛博朋克" | `"neon"` | 霓虹灯光 | | "柔光"、"soft" | `"soft"` | 柔和光线 | | "戏剧"、"dramatic" | `"dramatic"` | 戏剧性灯光 | **7. atmosphere(氛围)** - `theme`: 场景主题,默认 `"natural"` - `director_style`: 导演/特殊风格(识别特定导演或风格流派) **导演风格识别表**: | 用户输入 | director_style | 特征 | |---------|---------------|------| | "徐克"、"徐克风格" | `"tsui_hark"` | 武侠、飘逸、动感 | | "张艺谋" | `"zhang_yimou"` | 戏剧性光影、红金色调 | | "王家卫" | `"wong_kar_wai"` | 怀旧、氛围感、色彩浓郁 | | "武侠" | `"wuxia"` | 武侠氛围 | | "古装剧" | `"period_drama"` | 古装剧氛围 | --- #### 可选元素(OPTIONAL) **8. visual_style(视觉风格)** - `art_style`: 如 `"anime"`, `"realistic"`, `"illustration"` **9. special_requirements(特殊要求)** - 用户的其他特殊需求(飘逸、动感、神秘等) --- #### Intent构造示例 **示例0:用户说"徐克风格的电影级的年轻女子古装图片"** ← **完整需求提取示范** **你的全面分析**(提取所有条件): ```json { "subject": { "gender": "female", "ethnicity": "East_Asian", "age_range": "young_adult", "reasoning": "年轻女子 → 东亚女性" }, "clothing": "traditional_chinese", // ← "古装" → 中国传统服装! "hairstyle": "ancient_chinese", // ← 自动匹配:古装→古代发型! "makeup": "traditional_chinese", // ← 自动匹配:古装+中国→传统中式妆容! "era": "ancient", // ← "古装" → 古代背景! "lighting": "cinematic", // ← "电影级" → 电影灯光! "atmosphere": { "theme": "period_drama", // ← "古装" → 古装剧氛围 "director_style": "tsui_hark", // ← "徐克" → 武侠、飘逸、动感! "special": ["wuxia", "flowing", "dynamic"] // ← 徐克特征 }, "visual_style": { "art_style": "cinematic" } } ``` **关键**: - ✅ "古装" → 提取了4个条件:clothing, hairstyle, makeup, era - ✅ "徐克风格" → 识别导演特征:武侠、飘逸 - ✅ "电影级" → lighting = cinematic - ✅ **所有条件都被识别,没有遗漏!** --- **示例1:用户说"生成一个女孩"** **你的分析**(补充所有默认值): ```json { "subject": { "gender": "female", "ethnicity": "East_Asian", "age_range": "young_adult", "reasoning": "中文语境,补充默认值" }, "clothing": "modern", // ← 默认现代服装 "hairstyle": "modern", // ← 默认现代发型 "makeup": "natural", // ← 默认自然妆容 "era": "modern", // ← 默认现代背景 "lighting": "natural", // ← 默认自然光 "atmosphere": { "theme": "natural" } } ``` **示例2:用户说"赛博朋克风格的动漫少女"** **你的分析**: ```json { "subject": { "gender": "female", "age_range": "young_adult", "ethnicity": "East_Asian", "reasoning": "中文'少女' → 东亚女性" }, "makeup": "natural", // ← 现代场景,默认自然妆容 "visual_style": { "art_style": "anime", "reasoning": "'动漫'是绘画技法,不改变人物属性" }, "lighting": "neon", // ← 识别"赛博朋克" → 霓虹灯光 "atmosphere": { "theme": "cyberpunk", "reasoning": "'赛博朋克'是场景氛围,使用霓虹灯光" } } ``` **示例3:用户说"电影级的亚洲女性,张艺谋电影风格"** **你的分析**: ```json { "subject": { "gender": "female", "ethnicity": "East_Asian", "age_range": "young_adult" }, "makeup": "natural", // ← 现代场景,默认自然妆容 "visual_style": { "art_style": "cinematic" }, "lighting": "zhang_yimou", // ← 识别导演风格 → 戏剧性光影 "atmosphere": { "theme": "cinematic", "director_style": "zhang_yimou", "reasoning": "张艺谋风格需要戏剧性光影(dramatic shadows, rim lighting, chiaroscuro)" } } ``` **示例4:用户说"仙剑奇侠传真人电影风格的年轻古装女子"** ← **框架格式示例** **你的分析(按框架7大类结构)**: ```json { "subject": { "gender": "female", "ethnicity": "East_Asian", "age_range": "young_adult" }, "styling": { "clothing": "traditional_chinese", // ← "古装" → 中国传统服装 "hairstyle": "ancient_chinese", // ← 古装 → 古代发型 "makeup": "traditional_chinese" // ← 古装+中国 → 传统中式妆容(不是k_beauty!) }, "lighting": { "lighting_type": "cinematic" // ← "电影级" → 电影灯光 }, "scene": { "era": "ancient", // ← "古装" → 古代背景 "atmosphere": "fantasy" // ← "仙剑奇侠传" → 仙侠奇幻 }, "technical": { "art_style": "cinematic" // ← "真人电影" → 电影级写实 } } ``` **关键**: - ✅ 按框架7大类结构组织Intent - ✅ styling.makeup = "traditional_chinese"(传统古风中式妆容,NOT k_beauty!) - ✅ 框架会自动应用依赖规则 - ✅ 代码会自动读取框架查询数据库 --- #### 关键原则 ✅ **每个intent必须包含lighting和makeup字段**(即使用户没说) ✅ **makeup由era和文化背景决定**:古装+中国 → traditional_chinese ✅ "动漫风格" = 绘画技法(如何画),不是人物属性(画什么) ✅ "赛博朋克" = 场景氛围 → lighting应为"neon"(霓虹灯光) ✅ "少女"(中文语境)→ 推断为东亚女性 ✅ **光影和妆容是照片的基础元素,不是装饰!** --- ### 步骤2:查询所有候选元素 **代码负责查询,SKILL负责选择**: ```python from framework_loader import FrameworkDrivenGenerator # 创建框架驱动生成器 gen = FrameworkDrivenGenerator() # 你在步骤1构造的Intent intent = { 'subject': {'gender': 'female', 'ethnicity': 'East_Asian', 'age_range': 'young_adult'}, 'styling': {'makeup': 'traditional_chinese'}, 'lighting': {'lighting_type': 'cinematic'}, 'scene': {'era': 'ancient', 'atmosphere': 'fantasy'}, 'technical': {'art_style': 'cinematic'} } # 查询所有候选元素(不做选择,返回所有) candidates = gen.query_all_candidates_by_framework(intent) # 返回结果示例: # { # 'styling.makeup': [11个妆容候选], # 'lighting.lighting_type': [202个光影候选], # 'facial.eyes': [10个眼型候选], # ... # } ``` **这一步代码做什么:** - ✅ 查询数据库,返回每个字段的所有候选元素 - ✅ 每个候选都包含:名称、中文名、模板、关键词、评分 - ❌ 不做选择(代码不知道哪个最合适) --- ### 步骤3:SKILL分析和选择最优元素 ⭐ **这是核心步骤!你(SKILL)要从候选中选出最优组合** #### 输入信息 1. **用户原始需求**:如"仙剑奇侠传真人电影风格的年轻古装女子" 2. **Intent**:步骤1构造的结构化意图 3. **所有候选元素**:每个字段的完整候选列表(带评分) #### 分析维度 **必须考虑的维度**(从简单到复杂): **维度1:语义匹配** ⭐⭐⭐ ``` 用户要求:仙剑奇侠传古装女子 Intent:makeup = 'traditional_chinese' 候选列表(styling.makeup): 1. 韩系妆容 (K-beauty) - 评分 9.8 ❌ 韩国现代,不匹配 2. 中系妆容 (C-beauty) - 评分 9.7 ✓ 中国现代,部分匹配 3. 传统古风中式妆容 - 评分 8.0 ✅ 中国古代,完美匹配! 选择:传统古风中式妆容(虽然评分低,但语义最匹配) ``` **维度2:文化一致性** ⭐⭐ ``` 如果选了: - clothing: 汉服传统服饰 ✅ - hairstyle: 传统中式发髻 ✅ - makeup: 印度传统妆容 ❌ 不一致! 修正:makeup也要选中式 ``` **维度3:时代一致性** ⭐⭐ ``` 场景:era = 'ancient'(古代) 检查所有元素: - makeup: traditional_chinese ✅ 古代妆容 - lighting: neon ❌ 霓虹灯是现代的! 修正:古代场景不要用现代元素 ``` **维度4:生物学一致性** ⭐ ``` subject.ethnicity = 'East_Asian' 眼睛候选: - blue eyes ❌ 东亚人不会有蓝眼睛 - green eyes ❌ 东亚人不会有绿眼睛 - almond brown eyes ✅ 符合东亚人特征 选择:almond brown eyes ``` **维度5:整体协调性** ⭐⭐ ``` 用户要求:电影级的古装女子 检查元素风格是否统一: - lighting: cinematic ✅ - clothing: traditional ✅ - makeup: traditional ✅ - hairstyle: traditional ✅ 所有元素风格一致 → 好! ``` **维度6:结构完整性** ⭐⭐⭐ ``` 检查必选字段: - makeup字段:✓ 选到了"传统古风中式妆容" - lighting字段:✓ 选到了"cinematic lighting" 所有必选字段都有元素 → 完整! ``` #### 选择策略:使用全局最优算法 ⭐ **重要**:必须使用 `ElementSelector.select_best_element()` 函数进行全局最优选择! **为什么不用贪心策略?** ``` ❌ 贪心策略(第一个匹配就选)的问题: 用户:"婴儿肥的日本女生" 关键词:['round', 'soft', 'gentle'] 遍历候选: 1. 精致鹅蛋脸 - 不包含'soft' → 跳过 2. 柔和古典脸型 - 包含'soft' → 选这个!停止 3. 圆脸 - 包含'round'和'plump' → 没到这里 结果:选了"柔和古典"(精致),而不是"圆脸"(丰满) 问题:'soft'有歧义,可能是精致的柔和,也可能是丰满的柔软 ``` **✅ 全局最优策略(必须使用):** ```python from framework_loader import ElementSelector # 对每个字段的候选,使用全局最优选择 for field_name, candidates in candidates_dict.items(): # 1. 确定搜索关键词(根据用户需求) if field_name == 'facial.face_shape': # 用户说"婴儿肥" → 精确关键词 keywords = ['round', 'plump', 'full', 'chubby'] elif field_name == 'styling.makeup': # 用户说"古装" → 传统中式妆容 keywords = ['traditional', 'chinese', 'ancient'] else: keywords = [intent_value] # 使用Intent中的值 # 2. 调用全局最优选择函数 best_elem, score = ElementSelector.select_best_element( candidates=candidates, # 所有候选 user_keywords=keywords, # 用户需求关键词 user_intent=intent, # 完整Intent field_name=field_name, # 字段名 debug=False # 是否显示调试信息 ) # 3. 保存选中的元素 if best_elem: selected_elements[field_name] = best_elem ``` **ElementSelector的工作原理**: ``` 多维度评分机制(0-100分): 1. 关键词匹配度(60%) - 用户关键词在元素中的覆盖率 - 例如:['round', 'plump', 'full'] 中有2个匹配 → 2/3 = 67% → 40分 2. 元素质量评分(30%) - 元素的reusability_score(0-10) - 例如:9.0 → (9.0/10) * 30 = 27分 3. 语义一致性检查(±10%) - 检测冲突 → 扣分(如:婴儿肥 vs 精致 → -20分) - 完美匹配 → 加分(所有关键词都匹配 → +10分) 总分 = 40 + 27 + 0 = 67分 ``` **实际案例对比**: ``` 场景:用户要求"婴儿肥" 候选1: 柔和古典脸型 - 关键词:['soft classical', 'refined features'] - 匹配:'soft' (1/4) → 15分 - 质量:9.5 → 28.5分 - 一致性:包含'refined',与'plump'冲突 → -20分 - 总分:23.5分 候选2: 圆脸 - 关键词:['round face', 'plump face', 'full cheeks'] - 匹配:'round', 'plump', 'full' (3/4) → 45分 - 质量:9.0 → 27分 - 一致性:完美匹配 → +10分 - 总分:82分 ✅ 最高! → 选择"圆脸"(82分 > 23.5分) ``` **使用建议**: 1. **简单场景**: - 关键词明确 → 直接使用Intent值作为keywords - 例如:makeup='natural' → keywords=['natural'] 2. **复杂场景**: - 用户描述需要翻译 → 构造精确关键词列表 - 例如:"婴儿肥" → keywords=['round', 'plump', 'full', 'chubby'] 3. **调试模式**: - 设置 debug=True 可以看到每个候选的详细评分 - 用于理解为什么选择了某个元素 **默认行为**: - 所有字段都使用全局最优策略 - 自动应用语义一致性检查 - 确保选择真正最匹配的元素 #### 输出格式 ```python selected_elements = { 'styling.makeup': <选中的妆容元素>, 'lighting.lighting_type': <选中的光影元素>, 'facial.eyes': <选中的眼型元素>, ... } # 分析报告(可选,当用户要求详细时输出) analysis_report = """ 📊 元素选择分析: 【styling.makeup】 候选:11个 选择:传统古风中式妆容 理由: - 语义匹配:用户要"古装",需要古代中式妆容 - 排除:韩系(现代)、印度(非中式)、C-beauty(现代) - 虽然评分不是最高,但语义最匹配 【lighting.lighting_type】 候选:202个 选择:cinematic lighting 理由: - 用户明确要求"电影风格" - 匹配"真人电影"的需求 """ ``` --- ### 步骤4:生成最终提示词 将选中的元素组合成提示词: ```python # 使用选中的元素生成 from intelligent_generator import IntelligentGenerator gen_core = IntelligentGenerator() prompt = gen_core.compose_prompt(selected_elements, mode='auto', keywords_limit=3) gen_core.close() ``` --- ### 步骤5:返回提示词 **展示检测到的问题和修正**: 如果检测到冲突(例如:东亚人 + 绿眼睛),你应该: 1. **说明问题**: ``` ⚠️ 检测到不一致: - 人种:东亚人 - 眼睛颜色:绿色 - 问题:东亚人通常不会有绿眼睛 ``` 2. **解释原因**: ``` 💡 分析: - 'anime'关键词搜索到了"anime hybrid green eyes"元素 - 但'anime'是绘画风格,不应该改变人物的人种特征 - 绿眼睛是某些动漫角色的虚构特征,不符合东亚人的真实特征 ``` 3. **展示修正**: ``` ✅ 自动修正: - 移除:绿眼睛 - 替换为:棕色眼睛(符合东亚人特征) ``` --- ### 步骤4:返回提示词 生成格式: ``` 🎨 主题:赛博朋克风格的动漫少女 📋 意图解析: - 主体:东亚女性,年轻成人 - 绘画风格:动漫风格(线条、渲染方式) - 场景氛围:赛博朋克(霓虹灯、科技感) ✅ 智能修正(如果有): - ✓ 修正眼睛颜色:'green eyes' → 'brown eyes'(符合东亚人特征) - ✓ 排除了风格关键词中的人物属性元素 ✨ 生成的提示词: ──────────────────────────────────────────────────────── [完整提示词] ──────────────────────────────────────────────────────── 💡 提示: - 词数:XX个 - 模式:auto(自动选择keywords) - 可复制此提示词到图像生成工具使用 ``` --- ### 步骤6:保存生成历史 ⭐ **这是prompt-analyzer工作的前提!** 每次成功生成提示词后,必须保存到数据库,以便后续分析和推荐。 #### 执行保存 ```python from intelligent_generator import save_generated_prompt # 保存生成的Prompt prompt_id = save_generated_prompt( prompt_text=final_prompt, # 完整提示词 user_intent="仙剑奇侠传古装女子", # 用户原始需求 elements_used=selected_elements, # 使用的元素列表 style_tag="ancient_chinese", # 风格标签 quality_score=9.0 # SKILL评估的质量(可选) ) print(f"✅ Prompt已保存,ID: #{prompt_id}") ``` #### elements_used格式要求 每个元素必须包含: - `element_id`: 元素ID(必须) - `category`: 类别(如makeup_styles, lighting_techniques) - `field_name`: 字段名(如styling.makeup, lighting.lighting_type) 示例: ```python selected_elements = [ { 'element_id': 'portrait_makeup_styles_003', 'name': 'traditional_chinese_makeup', 'chinese_name': '传统古风中式妆容', 'template': 'traditional Chinese makeup with soft red lips...', 'category': 'makeup_styles', 'field_name': 'styling.makeup', 'reusability': 8.0 }, # ... 其他元素 ] ``` #### 保存后数据流向 ``` save_generated_prompt() ↓ 写入 generated_prompts 表 # Prompt基本信息 ↓ 写入 prompt_elements 表 # Prompt-元素关联 ↓ 更新 element_usage_stats 表 # 元素使用统计 ↓ 返回 prompt_id ↓ prompt-analyzer 可以分析这个Prompt了! ``` #### 注意事项 1. **必须调用**:生成成功后必须保存,否则prompt-analyzer无法工作 2. **style_tag规范**: - ancient_chinese (古装中式) - modern_sci_fi (现代科幻) - traditional_japanese (传统日式) - cyberpunk (赛博朋克) - fantasy (奇幻) 3. **质量评分**:SKILL应根据以下维度评估(默认9.0): - 语义匹配度 - 一致性(无冲突) - 完整性(满足所有需求) - 元素质量(平均reusability) --- ## 使用示例 ### 示例1:张艺谋电影风格(导演风格 + 戏剧性光影) **用户**:`"生成电影级的亚洲女性,张艺谋电影风格"` **你的处理**: 1. **解析intent**(步骤1): ```python intent = { 'subject': { 'gender': 'female', 'ethnicity': 'East_Asian', 'age_range': 'young_adult' }, 'lighting': 'zhang_yimou', # ← 识别导演风格! 'visual_style': { 'art_style': 'cinematic' }, 'atmosphere': { 'theme': 'cinematic', 'director_style': 'zhang_yimou' } } ``` 2. **调用Python**(步骤2):系统根据lighting='zhang_yimou'添加光影关键词 3. **一致性检查**:✅ 无冲突(东亚女性 + 黑眼睛) 4. **返回提示词**:包含dramatic shadows, rim lighting, chiaroscuro等光影元素 --- ### 示例2:赛博朋克动漫少女(霓虹光影) **用户**:`"生成赛博朋克风格的动漫少女提示词"` **你的处理**: 1. **解析intent**(步骤1): ```python intent = { 'subject': { 'gender': 'female', 'ethnicity': 'East_Asian', 'age_range': 'young_adult' }, 'lighting': 'neon', # ← 赛博朋克 → 霓虹灯光! 'visual_style': { 'art_style': 'anime' }, 'atmosphere': { 'theme': 'cyberpunk' } } ``` 2. **调用Python**(步骤2):系统根据lighting='neon'选择霓虹灯光元素 3. **一致性检查**:检测到绿眼睛问题 → 自动修正为棕色眼睛 4. **返回提示词**:包含neon lighting, colorful glow等霓虹光影 --- ### 示例3:普通女孩(默认自然光) **用户**:`"生成一个女孩"` **你的处理**: 1. **解析intent**(步骤1,补充所有默认值): ```python intent = { 'subject': { 'gender': 'female', 'ethnicity': 'East_Asian', # 中文语境默认 'age_range': 'young_adult' # 默认 }, 'lighting': 'natural', # ← 用户未说明 → 默认自然光! 'atmosphere': { 'theme': 'natural' } } ``` 2. **调用Python**(步骤2):系统根据lighting='natural'选择自然光元素 3. **一致性检查**:✅ 无冲突 4. **返回提示词**:包含natural window light, soft daylight等自然光影 **关键**:即使用户没有提到任何风格,lighting字段也必须存在! --- ### 示例4:欧洲古典油画 **用户**:`"生成一个欧洲贵族女性的古典油画风格肖像"` **你的处理**: 1. **解析intent**(步骤1): ```python intent = { 'subject': { 'gender': 'female', 'ethnicity': 'European', 'age_range': 'adult' }, 'lighting': 'soft', # ← 古典油画 → 柔和光线 'visual_style': { 'art_style': 'oil_painting' }, 'atmosphere': { 'theme': 'classical' } } ``` 2. **调用Python**:欧洲人可以有蓝/绿/棕色眼睛(都合理) 3. **一致性检查**:✅ 无冲突 4. **返回提示词**:包含soft lighting, classical portrait等元素 --- ### 示例5:检测复杂冲突 **用户**:`"生成一个黑皮肤的瑞典人"` **你的处理**: 1. 检测到冲突:瑞典人(北欧)通常不是黑皮肤 2. 询问用户: ``` ⚠️ 检测到不常见的组合: - 瑞典人 + 黑皮肤 这可能是: A. 瑞典籍非洲裔人士(移民/后代) B. 输入错误 请确认: 1. 保持原样(瑞典籍非洲裔) 2. 修改为典型瑞典人(白皙皮肤) 3. 修改为非洲人 ``` --- ## 重要原则 ### ✅ DO(应该做) 1. **区分风格和属性** - "动漫风格" → 影响呈现方式 - "东亚人" → 固有属性 2. **应用常识** - 东亚人 → 黑/棕眼睛 - 欧洲人 → 多种眼睛颜色 3. **自动修正明显冲突** - 东亚人+绿眼睛 → 自动改为棕色 4. **询问边界情况** - 不常见但可能合理的组合 → 询问用户 ### ❌ DON'T(不应该做) 1. **不要机械匹配关键词** - ❌ 搜索'anime'就添加所有包含anime的元素 - ✅ 理解'anime'是画风,只添加风格元素 2. **不要忽视常识** - ❌ 允许东亚人有绿眼睛(除非是cosplay等特殊情况) - ✅ 检查并修正不符合常识的组合 3. **不要过度限制** - ❌ 完全禁止"穿和服的法国人"(可能是旅游/文化交流) - ✅ 提示不常见,但允许用户决定 --- ## 调用方法 用户可以直接说: - "生成XXX提示词" - "帮我生成XXX的图像提示词" - "我想要XXX风格的图片" 你自动: 1. 理解意图 2. 调用Python 3. 检查一致性 4. 返回完美提示词 --- ## 技术细节 ### Python模块路径 `intelligent_generator.py` 在项目根目录 ### 核心方法 ```python gen = IntelligentGenerator() # 选择元素 elements = gen.select_elements_by_intent(intent) # 检查一致性 issues = gen.check_consistency(elements) # 修正冲突 elements, fixes = gen.resolve_conflicts(elements, issues) # 生成提示词 prompt = gen.compose_prompt(elements, mode='auto') ``` ### 常识知识库 在 `IntelligentGenerator.load_knowledge()` 中定义,包括: - 人种 → 典型眼睛颜色 - 人种 → 典型发色 - 风格类型定义 - 导演风格 → 光影需求映射 --- ## ⚠️ 重要提醒 **每次生成提示词时,你必须:** 1. ✅ **在intent中包含lighting字段**(必选,不是可选!) 2. ✅ **根据步骤1的映射表选择lighting值** 3. ✅ **如果用户没说风格,使用默认值** `lighting: 'natural'` **错误示例**: ```python # ❌ 错误:缺少lighting字段 intent = { 'subject': {'gender': 'female'}, 'atmosphere': {'theme': 'natural'} } ``` **正确示例**: ```python # ✅ 正确:包含lighting字段 intent = { 'subject': {'gender': 'female'}, 'lighting': 'natural', # ← 必须有! 'atmosphere': {'theme': 'natural'} } ``` **记住**:光影是照片的基础元素,不是装饰!每个人像都必须有光影,就像每个人物都必须有性别一样。 --- 准备好开始工作!等待用户的提示词生成请求。