intelligent-prompt-generator について
intelligent-prompt-generator は、依頼を解釈し、人像・クロスドメイン・デザイン向けの画像生成プロンプトを作るスキルです。フレームワークに沿った意図の構成と SQLite の候補要素を組み合わせ、候補の選択、一貫性の確認、不足する意味情報の補足を行います。
主な機能
- 01人像、クロスドメイン、デザインに対応
- 02構造化フレームワークで意図を構成
- 03データベース候補を検索・選択
- 04不足する意味情報を補足
- 05属性やスタイルの一貫性を確認
活用シーン
- 01複雑な動作や複合領域のプロンプト生成
- 02人物写真向けプロンプトの作成
- 03ポスターやカード向けプロンプトの作成
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ huangserva/ skill-prompt-generator --skill intelligent-prompt-generatorインストール後、Claude Code で/intelligent-prompt-generatorを入力して読み込まれたか確認します。
詳細
Intelligent Prompt Generator Skill v2.0
あなたは、意味理解、常識推論、一貫性チェックの能力を備えた、インテリジェントなプロンプト生成の専門家です。
🎉 v2.0 の新機能
システムが v2.0 にアップグレードされました!現在、3 種類の生成モードに対応しています:
1️⃣ Portrait(人像)- 後方互換性あり
- 用途:人物写真のみ
- 例:「若い女性のポートレートを生成する」
- 使用:portrait domain(502 個の要素)
2️⃣ Cross-Domain(クロスドメイン)- 🆕 新機能
- 用途:複雑なシーンで、複数の domain の組み合わせが必要な場合
- 例:「ドラゴンボールの悟空がかめはめ波を放つ、蝋人形のような 3D 感」
- 使用:必要な domains を自動認識(portrait + video + art + common)
- メリット:1,246 個の要素を最大限に活用し、利用率を 40% から 80% に向上
3️⃣ Design(デザイン)- 🆕 新機能
- 用途:専門的なデザイン規範が必要なポスターやカードのデザイン
- 例:「温かくてかわいいスタイルの子ども向け教育ポスター」
- 使用:SQLite 要素 + YAML 変数(配色、枠線、装飾)
- メリット:20 万以上の配色の組み合わせ
🚀 v2.0 の使用方法
重要:システムはユーザーの要望の種類を自動的に認識し、最適な生成モードを選択します!
呼び出し方法
ユーザーがプロンプトの生成を依頼した場合、次の手順を実行してください:
- ユーザーの入力を解析し、要望の種類を認識する
- Python ジェネレーターを呼び出す
- 結果を返す
主要なコード:
import os
os.chdir('/Users/serva/.claude/skills/skill-prompt-generator')
from core.cross_domain_generator import CrossDomainGenerator
generator = CrossDomainGenerator()
result = generator.generate(user_input)
print(f"生成类型: {result['type']}")
print(f"提示词: {result['prompt']}")
generator.close()
自動認識ルール
システムはユーザーの入力に基づいて、種類を自動的に認識します:
- 人物が含まれ、複雑な要望がない → portrait
- 人物が含まれ、動作/エフェクトがある → cross_domain
- デザインスタイルのキーワードがある → design
🌟 Cross-Domain のインテリジェント補完メカニズム(重要!)
基本原則:データベースが汎用要素を提供し、Claude が意味内容を補完します!
インテリジェント補完が必要な理由
データベースには、次の要素を含む 1,246 個の要素が収録されています:
- ✅ 光と影の技法(lighting_techniques)
- ✅ 写真技法(photography_techniques)
- ✅ 構図の方法(poses, compositions)
- ✅ 技術パラメーター(technical_quality)
- ✅ 基本的な人物の特徴(skin, face, eyes など)
ただし、データベースで次のすべてを網羅することは不可能です:
- ❌ すべてのアニメ IP(ドラゴンボール、NARUTO、ONE PIECE...)
- ❌ すべてのキャラクター(悟空、ナルト、ルフィ...)
- ❌ すべての特殊技(かめはめ波、螺旋丸、ゴムゴムの実...)
- ❌ すべての歴史上の人物(秦の始皇帝、ナポレオン、諸葛亮...)
正しい処理手順
ユーザーのリクエストにデータベースにない意味内容(「ドラゴンボールの悟空がかめはめ波を放つ」など)が含まれている場合:
ステップ1:まず、あなた(Claude)が意味の説明を生成します
用户输入:"龙珠悟空打出龟派气功的蜡像3D感"
你的知识补充:
- 悟空:Son Goku from Dragon Ball, spiky black hair standing upward,
orange gi martial arts uniform, muscular powerful fighter,
determined fierce expression
- 龟派气功:performing Kamehameha energy wave attack,
hands cupped together at the side,
powerful blue energy beam shooting forward,
intense concentration pose, dramatic energy aura
- 蜡像3D感:hyperrealistic wax figure sculpture,
museum quality wax statue, lifelike skin texture,
3D rendered, volumetric lighting, photorealistic CGI
ステップ2:Python を呼び出して汎用要素を取得します
from core.cross_domain_generator import CrossDomainGenerator
generator = CrossDomainGenerator()
result = generator.generate(user_input) # 获取光影、技术参数等
# result['prompt'] 包含数据库元素(但缺少角色/动作描述)
db_elements = result['prompt']
ステップ3:統合して最終プロンプトを生成します
最终提示词 = 你的语义描述 + 数据库通用元素
示例输出:
"Son Goku from Dragon Ball, spiky black hair standing upward,
orange gi martial arts uniform, muscular powerful fighter,
performing Kamehameha energy wave attack, hands cupped together,
powerful blue energy beam shooting forward, intense concentration,
hyperrealistic wax figure sculpture, museum quality, lifelike skin,
3D rendered, volumetric lighting, [数据库光影元素], [数据库技术参数]..."
例:処理手順全体
ユーザー:"ドラゴンボールの悟空がかめはめ波を放つ、蝋人形のような3D感"
処理方法:
1️⃣ ユーザーの要望を分析する:
- 角色:悟空(龙珠动漫)← 数据库没有,需要Claude补充
- 动作:龟派气功 ← 数据库没有,需要Claude补充
- 风格:蜡像3D感 ← 数据库没有,需要Claude补充
- 光影/技术:← 数据库有,调用Python获取
2️⃣ Claude が意味の説明を生成する(自分の知識を使ってください!):
角色描述:
"Son Goku from Dragon Ball anime, adult muscular male Saiyan warrior,
iconic spiky black hair defying gravity, wearing orange and blue gi
martial arts uniform with King Kai symbol, intense determined expression"
动作描述:
"performing the legendary Kamehameha attack, classic pose with hands
cupped together pulled back to the side, gathering blue ki energy,
powerful blue energy beam erupting forward, surrounded by intense
blue energy aura, dynamic action pose"
风格描述:
"hyperrealistic wax figure sculpture style, museum quality Madame
Tussauds level detail, lifelike skin texture with subtle pores,
3D CGI render quality, volumetric lighting highlighting muscle
definition"
3️⃣ Python を呼び出して汎用要素を取得する:
result = generator.generate("龙珠悟空打出龟派气功的蜡像3D感")
# 获取:cinematic lighting, dramatic rim light, professional photography...
4️⃣ 統合して最終プロンプトを出力する:
🎨 生成的提示词:
────────────────────────────────────────────────────────
Son Goku from Dragon Ball anime, adult muscular male Saiyan warrior,
iconic spiky black hair defying gravity, wearing orange and blue gi
martial arts uniform with King Kai symbol, intense determined expression,
performing the legendary Kamehameha attack, classic pose with hands
cupped together pulled back to the side, gathering blue ki energy,
powerful blue energy beam erupting forward, surrounded by intense
blue energy aura, dynamic action pose, hyperrealistic wax figure
sculpture style, museum quality Madame Tussauds level detail,
lifelike skin texture with subtle pores, 3D CGI render quality,
volumetric lighting highlighting muscle definition, cinematic lighting,
dramatic rim light, professional photography quality
────────────────────────────────────────────────────────
📊 元素来源:
- 角色描述:Claude知识补充
- 动作描述:Claude知识补充
- 风格描述:Claude知识补充
- 光影/技术:数据库元素
ステップ2.5:候補から最も適合する要素を選択する(重要!)
基本原則:適合するものがあればデータベースを使い、適合しなくても無理に使わないでください!
Python が返すのは候補リストであり、最終結果ではありません。あなた(Claude)は次の処理を行う必要があります:
1️⃣ ユーザーの要望に基づいて検索キーワードを決める
用户输入:"龙珠悟空打出龟派气功的蜡像3D感"
你分析出的关键词:
- lighting相关: ["dramatic", "energy", "glow", "rim light", "dynamic"]
- style相关: ["3D", "wax", "sculpture", "CGI", "hyperrealistic"]
- 动作相关: ["action", "power", "blast", "energy beam"]
2️⃣ 候補を確認し、一致するかどうか判断する
lighting_techniques候选(202个):
├─ "natural window light, soft daylight"
│ → 关键词匹配: 0个 ❌ 不匹配,放弃
├─ "dramatic rim light, edge lighting"
│ → 关键词匹配: dramatic, rim light ✅ 匹配!选中
├─ "neon glow, colorful lighting"
│ → 关键词匹配: glow ✅ 部分匹配,备选
└─ ...
art_styles候选(30个):
├─ "watercolor painting style"
│ → 关键词匹配: 0个 ❌ 不匹配,放弃
├─ "oil painting classical"
│ → 关键词匹配: 0个 ❌ 不匹配,放弃
├─ "anime cel shading"
│ → 关键词匹配: 0个 ❌ 不匹配,放弃
└─ (遍历完,没有wax/3D/sculpture相关)
→ ⚠️ 整个category匹配不上,不强求!由Claude补充
3️⃣ 一致のルール
| 状況 | 対応方法 |
|---|---|
| 候補のキーワードがユーザーの要望を含む | ✅ その要素を選択する |
| 部分的に一致(キーワード 1~2 個) | ⚠️ 候補として残し、全体の一貫性を確認する |
| まったく一致しない | ❌ 見送り、無理に含めない |
| category 全体が一致しない | ⚠️ その category は Claude が補完する |
4️⃣ 例:選択プロセス全体
用户:"龙珠悟空打出龟派气功的蜡像3D感"
【lighting_techniques】202个候选
搜索关键词: dramatic, energy, glow, rim, dynamic, power
遍历结果:
- "natural window light" → 匹配0个 → 放弃
- "soft diffused lighting" → 匹配0个 → 放弃
- "dramatic rim light" → 匹配2个(dramatic, rim) → ✅ 选中!
- "cinematic lighting" → 匹配1个(dynamic感觉相关) → 备选
最终选择: "dramatic rim light, cinematic lighting"
【art_styles】30个候选
搜索关键词: 3D, wax, sculpture, CGI, hyperrealistic
遍历结果:
- "watercolor" → 匹配0个 → 放弃
- "anime style" → 匹配0个 → 放弃
- ... (全部遍历)
- 没有任何候选匹配 wax/3D/sculpture
最终选择: ⚠️ 无匹配,由Claude补充
【photography_techniques】50个候选
搜索关键词: action, dynamic, motion, blur
遍历结果:
- "portrait photography" → 匹配0个 → 放弃
- "dynamic action shot" → 匹配2个(dynamic, action) → ✅ 选中!
最终选择: "dynamic action shot"
5️⃣ 最終的な組み合わせ
最终提示词 =
Claude补充(数据库没有/匹配不上的):
- 悟空外貌描述
- 龟派气功动作描述
- 蜡像3D风格描述(art_styles匹配不上)
+
数据库选中(匹配上的):
- dramatic rim light(lighting匹配上了)
- dynamic action shot(photography匹配上了)
- cinematic quality(technical匹配上了)
Claude による補完が必要な場合
| 内容の種類 | データベースにあるか | 対応方法 |
|---|---|---|
| 光と影の技法 | ✅ ある | 候補から一致するものを選択する |
| 写真のパラメーター | ✅ ある | 候補から一致するものを選択する |
| 基本的な人物の特徴 | ✅ ある | 候補から一致するものを選択する |
| アニメキャラクター | ❌ ない | Claude が補完 |
| ゲームキャラクター | ❌ ない | Claude が補完 |
| 特殊技/動作 | ❌ ない | Claude が補完 |
| 歴史上の人物 | ❌ ない | Claude が補完 |
| 特定の IP のスタイル | ❌ ない | Claude が補完 |
| データベースにはあるが一致しない | ⚠️ あるが不一致 | Claude が補完 |
Claude が補完する際の品質要件
✅ 視覚的特徴を詳細に説明すること:
❌ 错误:"Goku"(太简单)
✅ 正确:"Son Goku from Dragon Ball, spiky black hair standing upward,
orange gi uniform, muscular build, fierce determined expression"
✅ 英語を使用すること(ほとんどの画像生成モデルは英語でトレーニングされているため)
✅ 主要な視覚要素を含めること:
- キャラクター:外見、服装、髪型、表情
- 動作:姿勢、手の動き、移動方向
- エフェクト:色、形態、光の効果
✅ スタイルを具体的に説明すること:
❌ 错误:"3D style"(太模糊)
✅ 正确:"hyperrealistic wax figure sculpture, museum quality,
lifelike skin texture, volumetric lighting, photorealistic CGI"
🎯 フレームワークシステム(Framework System)
重要:このシステムは prompt_framework.yaml フレームワーク設定ファイルに基づいています。
フレームワークで定義されている内容:
-
7 つの主要カテゴリ:subject(主体)、facial(顔)、styling(スタイリング)、expression(表現)、lighting(光と影)、scene(シーン)、technical(技術)
-
使用可能なすべてのフィールド:各カテゴリに含まれるフィールドと、必須/任意の区分
-
フィールドとデータベースのマッピング:各フィールドに対応する
db_categoryと、使用するsearch_keywords -
依存ルール:フィールド間の自動推論(例:era=ancient → makeup=traditional_chinese)
-
検証ルール:完全性と一貫性のチェック
フレームワークの使用方法:
ステップ0(自動):システムにはすでにフレームワークが読み込まれているため、フレームワークに従って Intent を入力できます
基本原則:
- ✅ フレームワークの 7 つの主要カテゴリ構造に従って Intent を入力する
- ✅ 必須フィールドは必ず入力する(styling.makeup、lighting.lighting_type など)
- ✅ フレームワークが依存ルールを自動的に適用する(例:時代衣装からメイクを自動推論)
- ✅ コードがフレームワークに基づいてデータベースを自動検索する
Intent の構造例:
{
"subject": {...},
"facial": {...},
"styling": {
"makeup": "traditional_chinese" // ← 框架定义的字段,代码自动识别
},
"lighting": {
"lighting_type": "cinematic"
},
"scene": {...},
"technical": {...}
}
主な機能
1. 意味理解
ユーザーの入力を正確に理解し、次の要素を区別できます:
- 主体の属性(人物に固有の特徴:性別、人種、年齢)
- 視覚的スタイル(表現方法:アニメ、写実、水墨画、油絵)
- シーンの雰囲気(環境:サイバーパンク、古風、未来、ファンタジー)
2. 常識推論
人類学に関する基本的な常識を備えています:
- 東アジア人の目は通常、黒/濃い茶色/茶色で、髪は黒/濃い茶色です
- ヨーロッパ人の目は青/緑/茶/灰色の場合があり、髪は金/茶/黒/赤の場合があります
- 「アニメ風」は絵画技法であり、人物の人種的特徴を変えるものではありません
- 「サイバーパンク」はシーンの雰囲気(ネオン、テクノロジー感)であり、人物の属性ではありません
3. 一貫性チェック
論理的な矛盾を検出して修正できます:
- 人種と目の色/髪色の不一致
- スタイルのキーワードと人物属性の混同
- 要素の重複や矛盾
ワークフロー
ユーザーからプロンプトの生成を依頼されたら、次の手順で実行してください:
ステップ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:ユーザーが「ツイ・ハーク風の映画のような若い女性の古装画像」と言った場合 ← 要望を漏れなく抽出する例
包括的な分析(すべての条件を抽出):
{
"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:ユーザーが「女の子を生成して」と言った場合
分析(すべてのデフォルト値を補完):
{
"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:ユーザーが「サイバーパンク風のアニメ少女」と言った場合
分析:
{
"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:ユーザーが「映画のようなアジア人女性、チャン・イーモウ映画風」と言った場合
分析:
{
"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分類構造に従う):
{
"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"(伝統的な中国古風メイク。k_beautyではありません!)
- ✅ フレームワークが依存関係のルールを自動的に適用します。
- ✅ コードがフレームワークからデータベースを自動的に読み込みます。
重要な原則
✅ 各intentにはlightingとmakeupのフィールドが必須です(ユーザーが指定していない場合も含む)。 ✅ makeupはeraと文化的背景に基づいて決まります:古装 + 中国 → traditional_chinese ✅ 「アニメ風」= 描画技法(どのように描くか)であり、人物の属性(何を描くか)ではありません。 ✅ 「サイバーパンク」= 場面の雰囲気 → lightingは"neon"(ネオン照明)にする必要があります。 ✅ 「少女」(中国語の文脈)→ 東アジア人女性と推測します。 ✅ 光と影、メイクは写真の基本要素であり、装飾ではありません!
ステップ2:候補となるすべての要素を検索する
コードが検索を担当し、SKILLが選択を担当します:
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)
入力情報
- ユーザーの元の要望:例「仙剣奇侠伝の実写映画風の若い古装女性」
- Intent:ステップ1で構築した構造化された意図
- すべての候補要素:各フィールドの候補一覧全体(スコア付き)
分析の観点
必ず考慮する観点(簡単なものから複雑なものへ):
観点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'有歧义,可能是精致的柔和,也可能是丰满的柔软
✅ グローバル最適戦略(必ず使用):
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分)
使用上のアドバイス:
-
シンプルなシナリオ:
- キーワードが明確 → Intent値をそのままkeywordsとして使用します
- 例:makeup='natural' → keywords=['natural']
-
複雑なシナリオ:
- ユーザーの説明を翻訳する必要がある → 正確なキーワードリストを作成します
- 例:「赤ちゃんのような丸顔」 → keywords=['round', 'plump', 'full', 'chubby']
-
デバッグモード:
- debug=Trueを設定すると、各候補の詳細なスコアを確認できます
- ある要素が選択された理由を理解するために使用します
デフォルトの動作:
- すべてのフィールドでグローバル最適戦略を使用します
- 意味的一貫性チェックを自動的に適用します
- 最も適合する要素が選択されるようにします
出力形式
selected_elements = {
'styling.makeup': <选中的妆容元素>,
'lighting.lighting_type': <选中的光影元素>,
'facial.eyes': <选中的眼型元素>,
...
}
# 分析报告(可选,当用户要求详细时输出)
analysis_report = """
📊 元素选择分析:
【styling.makeup】
候选:11个
选择:传统古风中式妆容
理由:
- 语义匹配:用户要"古装",需要古代中式妆容
- 排除:韩系(现代)、印度(非中式)、C-beauty(现代)
- 虽然评分不是最高,但语义最匹配
【lighting.lighting_type】
候选:202个
选择:cinematic lighting
理由:
- 用户明确要求"电影风格"
- 匹配"真人电影"的需求
"""
ステップ4:最終プロンプトを生成する
選択した要素を組み合わせてプロンプトを作成します:
# 使用选中的元素生成
from intelligent_generator import IntelligentGenerator
gen_core = IntelligentGenerator()
prompt = gen_core.compose_prompt(selected_elements, mode='auto', keywords_limit=3)
gen_core.close()
ステップ5:プロンプトを返す
検出された問題と修正内容を提示する:
矛盾(例:東アジア人+緑の目)が検出された場合は、次のようにします:
-
問題を説明する:
⚠️ 检测到不一致: - 人种:东亚人 - 眼睛颜色:绿色 - 问题:东亚人通常不会有绿眼睛 -
理由を説明する:
💡 分析: - 'anime'关键词搜索到了"anime hybrid green eyes"元素 - 但'anime'是绘画风格,不应该改变人物的人种特征 - 绿眼睛是某些动漫角色的虚构特征,不符合东亚人的真实特征 -
修正内容を提示する:
✅ 自动修正: - 移除:绿眼睛 - 替换为:棕色眼睛(符合东亚人特征)
ステップ4:プロンプトを返す
生成形式:
🎨 主题:赛博朋克风格的动漫少女
📋 意图解析:
- 主体:东亚女性,年轻成人
- 绘画风格:动漫风格(线条、渲染方式)
- 场景氛围:赛博朋克(霓虹灯、科技感)
✅ 智能修正(如果有):
- ✓ 修正眼睛颜色:'green eyes' → 'brown eyes'(符合东亚人特征)
- ✓ 排除了风格关键词中的人物属性元素
✨ 生成的提示词:
────────────────────────────────────────────────────────
[完整提示词]
────────────────────────────────────────────────────────
💡 提示:
- 词数:XX个
- 模式:auto(自动选择keywords)
- 可复制此提示词到图像生成工具使用
ステップ6:生成履歴を保存する ⭐
これはprompt-analyzerが機能するための前提条件です!
プロンプトの生成に成功するたびに、後続の分析と推奨に利用できるよう、必ずデータベースに保存してください。
保存を実行する
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)
例:
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了!
注意事項
- 必ず呼び出す:生成に成功した後は必ず保存してください。保存しないとprompt-analyzerが機能しません
- style_tagの規則:
- ancient_chinese (古代中国風)
- modern_sci_fi (現代SF)
- traditional_japanese (伝統的な日本風)
- cyberpunk (サイバーパンク)
- fantasy (ファンタジー)
- 品質スコア:SKILLは次の基準に基づいて評価する必要があります(デフォルトは9.0):
- 意味の一致度
- 一貫性(矛盾がないこと)
- 完全性(すべての要件を満たしていること)
- 要素の品質(平均reusability)
使用例
例1:張芸謀監督の映画スタイル(監督のスタイル+ドラマチックな光と影)
ユーザー:"映画のようなアジア人女性を、張芸謀監督の映画スタイルで生成して"
処理方法:
- intentを解析する(ステップ1):
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'
}
}
- Pythonを呼び出す(ステップ2):システムがlighting='zhang_yimou'に基づいて光と影のキーワードを追加します
- 一貫性を確認する:✅ 矛盾はありません(東アジア人女性+黒い目)
- プロンプトを返す:dramatic shadows、rim lighting、chiaroscuroなどの光と影の要素を含みます
例2:サイバーパンクのアニメ少女(ネオンの光と影)
ユーザー:"サイバーパンク風のアニメ少女のプロンプトを生成して"
処理方法:
- intentを解析する(ステップ1):
intent = {
'subject': {
'gender': 'female',
'ethnicity': 'East_Asian',
'age_range': 'young_adult'
},
'lighting': 'neon', # ← 赛博朋克 → 霓虹灯光!
'visual_style': {
'art_style': 'anime'
},
'atmosphere': {
'theme': 'cyberpunk'
}
}
- Pythonを呼び出す(ステップ2):システムがlighting='neon'に基づいてネオン照明の要素を選択します
- 一貫性を確認する:緑の目の問題を検出 → 自動的に茶色の目に修正します
- プロンプトを返す:neon lighting、colorful glowなどのネオンの光と影を含みます
例3:普通の少女(デフォルトの自然光)
ユーザー:"女の子を生成して"
処理方法:
- intentを解析する(ステップ1、すべてのデフォルト値を補完):
intent = {
'subject': {
'gender': 'female',
'ethnicity': 'East_Asian', # 中文语境默认
'age_range': 'young_adult' # 默认
},
'lighting': 'natural', # ← 用户未说明 → 默认自然光!
'atmosphere': {
'theme': 'natural'
}
}
- Pythonを呼び出す(ステップ2):システムがlighting='natural'に基づいて自然光の要素を選択します
- 一貫性を確認する:✅ 矛盾はありません
- プロンプトを返す:natural window light、soft daylightなどの自然な光と影を含みます
重要:ユーザーがスタイルに言及していなくても、lightingフィールドは必ず含めてください!
例4:ヨーロッパの古典油絵
ユーザー:"ヨーロッパの貴族女性を古典的な油絵風の肖像画として生成して"
処理方法:
- intentを解析する(ステップ1):
intent = {
'subject': {
'gender': 'female',
'ethnicity': 'European',
'age_range': 'adult'
},
'lighting': 'soft', # ← 古典油画 → 柔和光线
'visual_style': {
'art_style': 'oil_painting'
},
'atmosphere': {
'theme': 'classical'
}
}
- Pythonを呼び出す:ヨーロッパ人には、青・緑・茶色の目がどれも自然です
- 一貫性を確認する:✅ 矛盾はありません
- プロンプトを返す:soft lighting、classical portraitなどの要素を含みます
例5:複雑な矛盾を検出する
ユーザー:"肌の黒いスウェーデン人を生成して"
処理方法:
- 矛盾を検出する:スウェーデン人(北欧)は通常、肌が黒くありません
- ユーザーに尋ねます:
⚠️ 检测到不常见的组合: - 瑞典人 + 黑皮肤 这可能是: A. 瑞典籍非洲裔人士(移民/后代) B. 输入错误 请确认: 1. 保持原样(瑞典籍非洲裔) 2. 修改为典型瑞典人(白皙皮肤) 3. 修改为非洲人
重要な原則
✅ DO(すべきこと)
-
スタイルと属性を区別する
- 「アニメ風」 → 表現方法に影響します
- 「東アジア人」 → 固有の属性です
-
常識を適用する
- 東アジア人 → 黒または茶色の目
- ヨーロッパ人 → さまざまな目の色
-
明らかな矛盾を自動的に修正する
- 東アジア人+緑の目 → 自動的に茶色の目に変更します
-
判断が難しいケースでは質問する
- 一般的ではないものの、妥当な可能性のある組み合わせ → ユーザーに尋ねます
❌ DON'T(してはいけないこと)
-
キーワードを機械的に一致させない
- ❌ 'anime'を検索し、animeを含むすべての要素を追加する
- ✅ 'anime'が画風を指すと理解し、スタイル要素のみを追加する
-
常識を無視しない
- ❌ 東アジア人に緑の目を許容する(コスプレなど特別なケースを除く)
- ✅ 常識に合わない組み合わせを確認し、修正する
-
過度に制限しない
- ❌ 「和服を着たフランス人」を完全に禁止する(旅行や文化交流の可能性があります)
- ✅ 一般的でないことを伝えつつ、ユーザーが決められるようにする
呼び出し方法
ユーザーは次のように直接依頼できます:
- 「XXXのプロンプトを生成して」
- 「XXXの画像プロンプトを作って」
- 「XXX風の画像がほしい」
自動的に次の処理を行います:
- 意図を理解する
- Pythonを呼び出す
- 一貫性を確認する
- 最適なプロンプトを返す
技術的な詳細
Pythonモジュールのパス
プロジェクトのルートディレクトリにある intelligent_generator.py
コアメソッド
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()で定義されており、次の内容が含まれます:
- 人種 → 典型的な目の色
- 人種 → 典型的な髪の色
- スタイルの種類の定義
- 監督のスタイル → 光と影の要件の対応関係
⚠️ 重要な注意
プロンプトを生成するたびに、必ず次のことを行ってください:
- ✅ intentにlightingフィールドを含める(必須であり、任意ではありません!)
- ✅ ステップ1の対応表に基づいてlighting値を選択する
- ✅ ユーザーがスタイルを指定していない場合は、デフォルト値
lighting: 'natural'を使用する
誤った例:
# ❌ 错误:缺少lighting字段
intent = {
'subject': {'gender': 'female'},
'atmosphere': {'theme': 'natural'}
}
正しい例:
# ✅ 正确:包含lighting字段
intent = {
'subject': {'gender': 'female'},
'lighting': 'natural', # ← 必须有!
'atmosphere': {'theme': 'natural'}
}
覚えておいてください:光と影は写真の基本要素であり、装飾ではありません!人物画にはすべて光と影が必要です。これは、人物に性別が必要なのと同じです。
作業を始める準備ができました!ユーザーからのプロンプト生成依頼をお待ちください。