全部技能 / 设计 / image-prompt-generator
设计 · huangserva/skill-prompt-generator

image-prompt-generator

智能提示词生成器 v2.0 - 支持人像/跨domain/设计三种模式,语义理解、常识推理、一致性检查

风险提醒:蓝色 · 知晓即可AI 侦查报告
作者 huangservaGitHub huangserva/skill-prompt-generator ↗Stars 1486许可 仅 README 末尾声明 "MIT License",仓库内无 LICENSE 文件(受版本控制的 98 个文件中无 LICENSE/LICENSE.md),gh api license=null,授权声明停留在文档层面commit e951249840
agent 宿主通常会约束 skill 执行权限;风险提醒为 AI 侦查观点,不构成质量或安全保证。第三方 skill 仅作拆解与展示,安装使用风险自负,版权归原作者。

1实现原理 · 为什么它能做到

以单体 SQLite 元素库 elements.db 为唯一素材源:1246 条可复用提示词片段(element)构成生成素材池,生成器不做自由创作,只做检索 + 拼接。

README.md
- **总元素数**: 1246
注:实测 elements.db(2,637,824 字节,12 张业务表 + sqlite_sequence):elements 1246 行、12 个 domain_id、70 个 category_id、tags 2324、element_tags 5127、source_prompts 675、design_templates 5、design_variables 4、element_variables 5、generated_prompts 17、prompt_elements 42、element_usage_stats 27。元素实际分布:portrait 502 / common 208 / design 166 / interior 79 / product 78 / art 70 / video 49 / creative 37 / scenario 34 / utility 10 / prompt_writing 9 / lifestyle 4(合计 1246)。

人像路径是「框架驱动」:prompt_framework.yaml 用 7 大类字段(subject/facial/styling/expression/lighting/scene/technical)定义人像结构,并把每个字段映射到数据库 category;framework_loader.py 负责加载、依赖推导与 Intent 校验,再按字段查库选元素。

prompt_framework.yaml
# 人像提示词生成框架 - 7大类模板
注:framework_loader.py 暴露 FrameworkLoader.load/get_all_fields/get_required_fields/apply_dependencies/validate_intent,以及 FrameworkDrivenGenerator.generate_by_framework/query_all_candidates_by_framework,末尾 ElementSelector.select_best_element/select_from_candidates_dict 负责打分选择。prompt_framework.yaml 共 389 行,字段用 db_category 指向 elements.category_id(如 eyes→eye_types)。

Skill 本身不是运行时程序,而是「给 agent 的作业指导书」:SKILL.md 让 agent 自己执行 Python 代码去调 core/ 引擎,skill 的智能体现在让 LLM 承担语义补充与候选挑选。

.claude/skills/intelligent-prompt-generator/SKILL.md
os.chdir('/Users/serva/.claude/skills/skill-prompt-generator')
注:SKILL.md「调用方式」段给出可复制的 Python 片段(from core.cross_domain_generator import CrossDomainGenerator → generator.generate(user_input)),即 agent 必须在宿主里跑 Python;os.chdir 写死作者本机路径 /Users/serva/...,换机器必须改,否则引擎读不到 elements.db。SKILL.md 全文 1345 行,无任何 shell 命令要求。

v2.0 统一入口按输入自动三分类路由:portrait(纯人像)/ cross_domain(人物 + 动作特效)/ design(海报卡片),再由 CrossDomainGenerator.generate 分派到三个子生成器。

core/cross_domain_generator.py
generation_type = self.classify_generation_type(intent)
注:parse_user_input 用中英关键词表识别性别、人种、年龄、动作('龟派气功'/'kamehameha'→action=kamehameha)、风格('3d'/'蜡像'/'wax'→art_style=wax_figure_3d)、设计风格('温馨可爱'/'现代简约')与设计需求('海报'/'卡片');classify_generation_type 见 action/energy 或 3d/wax 即判 cross_domain,否则有人物走 portrait。

跨 domain 组合:analyze_required_domains 按 Intent 累加所需 domain(有人物→portrait,有动作/能量→video,有 3D/蜡像→art,设计词→design,并始终加入 common),再按各 domain 的 category 清单逐一查库,把元素利用率从 40.3% 提到 79.9%。

core/cross_domain_query.py
required_domains = self.analyze_required_domains(intent)
注:同文件里 domains.add('common') 保证每次都带上通用光影/摄影技术元素;query_plan 中 portrait 列 11 个类别(gender/age_range/ethnicity/eye_types/face_shapes/skin_tones/makeup_styles/hair_styles/hair_colors/expressions/poses),video 列 scene_types/motion_effects/camera_movements,art 列 art_styles/special_effects。

设计模式是 SQLite 元素 + YAML 变量的双源融合:design_bridge 一边从库里取主体/技术元素,一边从 YAML 采配色、边框、装饰,再由 build_final_prompt 拼成完整设计规范。

core/design_bridge.py
yaml_variables = self.yaml_sampler.sample_variables(style=design_style)
注:融合结果分 content / design / technical 三桶,只做字段映射与 ', ' 拼接。YAMLVariableSampler 读 variables/{colors,borders,decorations}.yaml,按 style(温馨可爱/现代简约)随机选色系与色值,并用 _get_recent_values 回避最近用过的色系(history 上限 100)。实测 colors.yaml 2 风格 10 色系 37 个色值(23+14),borders 每风格 corner_radius 5 值 × box_shadow 3 × border 2,decorations 温馨可爱 5 种 / 现代简约 4 种。

变量采样避免重复:SQLiteVariableSampler 维护最近 100 次采样历史,配合 element_variables 表对元素做参数化采样,命中变量时用采样结果替换模板。

core/variable_sampler.py
self.max_history = 100 # 保留最近100次采样历史
注:element_variables 由 core/schema_migration_v1.sql 建表(parameter_type 限 enum/range/boolean,possible_values 存 JSON);但库里该表只有 5 行,跨域查询里 sample_element_with_variables 失败或无变量时走 except 分支原样使用元素 —— 「变量化」目前只覆盖极少数元素。

常识推理来自硬编码知识库:人种→典型眼色/发色、导演风格→光影关键词、人物属性类别保护等映射写在 IntelligentGenerator.load_knowledge(),用于补全用户未明说的属性并防止风格词污染人物属性。

intelligent_generator.py
'ethnicity_typical_eyes': {
注:East_Asian→['black','dark brown','brown']、European→['blue','green','brown','hazel','grey'];另有 ethnicity_typical_hair、style_types、director_lighting_styles(zhang_yimou/cinematic/film_noir 各带 lighting_keywords 与 required_elements)、subject_attribute_categories。一致性检查(check_consistency / resolve_conflicts)即建立在这套映射上。

自学习闭环:prompt-extractor 先做语料清洗/聚类/模块化提取,universal-learner 按 6 步流程(类型识别→领域分类→元素提取→打标签→复用性打分→写库)把元素写回 elements.db,且明确是半自动、需人工审核。

.claude/skills/universal-learner/SKILL.md
**学习方式**: 半自动(生成报告 + 人工审核)
注:写库路径见 modules/library_updater.md 的 db.add_element(...) 调用(先去重:name 精确匹配 + 关键词 Jaccard>0.8 判重)。elements.learned_from 实测分布证明闭环真跑过:universal_learner_v2 861、migrated_from_v2 104、migrated_from_v4 81、manual_learning 39、VoxcatAI Twitter 18、universal_learner 14、universal_learner_skill_test 11、batch_learner_v2_enhanced 10、其余零散(39 条为 NULL)。

2核心能力

01三模式统一生成入口(portrait / cross_domain / design 自动判别)
02人像元素智能选择:候选打分 + 全局最优(非贪心)选择
03一致性检查与冲突自动修正(人种/风格/时代逻辑冲突)
04跨 domain 元素组合,提升元素库利用率(40.3% → 79.9%)
05设计变量采样:配色/边框/装饰风格化组合
06语料学习建库:从社区提示词提取可复用元素并写回 elements.db
07提示词逆向解剖:从优秀提示词提炼「如何控制 X」知识卡
08生成历史落库 + 分析推荐(每次生成写 generated_prompts,供 prompt-analyzer 复用)

3外部依赖

类型依赖
packagepyyaml>=6.0
packageanthropic>=0.7.0(声明依赖但全仓 Python 代码零 import,仅 learner.md 伪代码示例引用)
clipython3(运行 core/ 引擎、preprocessor.py、xray_helper.py)
clibash(skill 自带测试脚本 shell)
clipython3 prompt_tool.py(prompt-master 旧架构声明的 CLI,脚本在 pin commit 的仓库内不存在)

4风险提醒 风险提醒:蓝色 · 知晓即可

风险提醒:蓝色 · 知晓即可
  • 文档与代码脱节,按文档操作会踩空 — 多处文档指向不存在的资产:prompt_tool.py(prompt-master 20+ 条命令)、prompt_analyzer.py、learner.py、facial_features_library.json、extracted_modules.json,以及被反复推荐的 prompt-crafter skill(无此目录)。照 README/路由指南抄命令会直接失败,需以 intelligent-prompt-generator + core/ 为准。
  • 硬编码作者本机绝对路径,换环境即失效 — SKILL.md 的调用样例写死 os.chdir('/Users/serva/.claude/skills/skill-prompt-generator');引擎默认 db_path='extracted_results/elements.db'、yaml_dir='variables' 均为相对当前工作目录,agent 在别处执行会连不上库(读不到元素却可能静默返回空/降级结果)。
  • 数量声明夸大与版本漂移,易造成误判 — 「20万+ 配色组合」在 YAML 里离散可枚举仅约 9,990 种;claude.md/路由指南仍写 portrait 491、总元素 1103,而 domains.total_elements 汇总为 967,均落后于 elements 表的 1246/502。详情页与二次开发都应引用实测值而非文档数字。
  • 生成质量强依赖宿主 LLM,且第三方语料可污染自有元素库 — IP 角色/动作/风格等关键描述由 LLM 现场补写(SKILL.md 明示),skill 侧无法保证正确性或风格一致性;同时 universal-learner 会把用户粘贴的提示词/社区语料提炼成元素写进 elements.db 并被后续所有生成复用,一次低质或含倾向性的「学习」会长期影响输出。另含 element_db._clear_all_data()(import_from_json(clear_existing=True) 触发)可清空元素、标签、语料表。
  • 许可证声明无实体文件支撑 — README 末尾写 "MIT License",但仓库内无 LICENSE 文件、gh api license=null。商用或再分发前应向作者确认授权范围。
蓝色档,可放心本地使用。判定依据:全仓 15 个 py/sh 脚本零网络能力——对 requests / urllib / http(s):// 端点 / socket / curl / wget 的扫描零命中,requirements.txt 里也没有网络库(requests 仅在注释里作为「If you add web fetching」备选);零凭证读取——无 os.environ / getenv / API_KEY / token / secret 读取,requirements 里的 anthropic 包在代码中从未 import(唯一出现处是 learner.md 的伪代码并注明「当前实现中,AI辅助提取功能返回空列表,需要集成真实的LLM API」,即尚未接入任何 API key)。行为全部是本地:读 elements.db / YAML / md,写 elements.db 与若干 json/md 输出,跑 python3 与 bash。之所以不是绿色:它确实执行本地 Python 脚本并直接改写 SQLite 库,且 element_db 内含 _clear_all_data() 这类清库函数(由 import_from_json(clear_existing=True) 触发),属于「仅本地工具/CLI + 仅本地读写」而非纯指令。之所以不是黄色/橙色:无任何外发对象、无凭证、无第三方远程包运行时依赖(pyyaml 为通用库,anthropic 未使用)。

5第二遍独立确认

  • [ok] 主入口判定(skill.path 该写哪一个) — .claude/skills/ 下确为 12 个 skill 目录(art-master / design-master / domain-classifier / intelligent-prompt-generator / product-master / prompt-analyzer / prompt-extractor / prompt-generator / prompt-master / prompt-xray / universal-learner / video-master)+ learner.md。定位依据两条:claude.md 项目架构段「**入口**:`.claude/skills/intelligent-prompt-generator/skill.md`」(实测文件名为大写 SKILL.md,属大小写笔误);路由指南把 portrait domain 与人像请求固定指向 intelligent-prompt-generator。另注 prompt-master 自己标注「⚠️ 旧架构」,故不选它作入口。本条目录已写入 skill.path。
  • [ok] .codex/skills 与 .claude/skills 是否内容相同 — diff -rq .claude/skills .codex/skills 无任何输出(完全一致);两侧各 35 文件、320,220 字节;md5 抽查 intelligent-prompt-generator/SKILL.md 均为 39dc6f78ad6b580eae2dbdedfcd64bfc、prompt-extractor/preprocessor.py 均为 c8d488bdb22a29334eb15b8025bce14d、SKILL_ROUTING_GUIDE.md 均为 d59be53db785d50d68f6962ab2bacb14。平台差异只在 claude.md vs codex.md:5 处(标题、入口路径 .claude→.codex、两处平台名、一处 「Claude Code 有多强」→「Codex Code 有多强」)。
  • [discrepancy] README/claude.md 宣传的 12 个 skill 是否都存在 — claude.md 与路由指南反复推荐设计类请求调用 `prompt-crafter`(⭐,20万+组合),但 .claude/skills 与 .codex/skills 下都没有 prompt-crafter 目录(grep 命中仅在 README.md/claude.md/codex.md/core/yaml_sampler.py/schema_migration_v1.sql/README_v2.0.md/UPGRADE_GUIDE_v2.0.md 的文本里)。其声称的能力实际由 core/yaml_sampler.py + core/design_bridge.py 实现,并挂在 intelligent-prompt-generator 的 Design 模式下。README 第 33 行另列了 `prompt-writer`,同样不存在,且该行自相矛盾地写「12个专业领域Skills」却列出 13 个名字。
  • [discrepancy] 文档引用的脚本/数据文件是否真实存在 — 实测 MISSING:prompt_tool.py(prompt-master/skill.md 的 20+ 条 python3 prompt_tool.py ... 命令全部指向它)、prompt_analyzer.py(prompt-analyzer/SKILL.md 的 from prompt_analyzer import analyze_prompt_detail)、learner.py、facial_features_library.json(prompt-master 的旧数据源)、module_library.json、extracted_modules.json(universal-learner 声明的输入)、universal_elements_library.json(element_db.export_library 的输出名)。.gitignore 显示这些被当作「临时开发脚本/大 JSON」排除,即用写作期本机文件而非仓库可交付资产。
  • [discrepancy] 元素数量声明三处互相矛盾 — README.md 声明 1246 且分领域明细(portrait 502/common 208/design 166/...)与 sqlite 实测 elements 表逐项吻合;但 claude.md 架构表写「1103元素,12领域」「intelligent-prompt-generator | portrait | 491」,路由指南同样写 491/51/59/77/49;而数据库 domains.total_elements 汇总只有 967(portrait 491/common 203/interior 79/product 77/design 59/art 51/video 49/prompt_writing 9),是早期快照未随 elements 表刷新。结论:README 的 1246 可信,claude.md 与路由指南的 491/1103 属过期数字。
  • [discrepancy] 「20万+ 组合」能否复算 — YAML 里可枚举的离散选项:37 个色值 × 每风格边框 (corner_radius 5 × box_shadow 3 × border 2 = 30) × 装饰 9 种 ≈ 9,990,量级差 20 倍。要把数字推到 20 万级需要把装饰的 count_range/rotation_range/size_range/opacity_range 这些连续区间按整数粒度展开计数(如星星 count 3-8 = 6 档 × rotation ±15 = 31 档 × size 16-32 = 17 档…),代码里并无这种展开逻辑(sample_variables 只是 random.choice 抽一组)。故「20万+」是营销口径的上界估计,非可复现统计。
  • [ok] 是否存在网络调用(含间接依赖) — 字符串扫描 requests/urllib/http://|https:///socket/curl/wget 在 15 个脚本中零命中;全部 import 清单实测为 os/json/sqlite3/re/yaml/sys/csv/random/time/re/Path/typing/collections/datetime 以及本项目内部模块(core.*、intelligent_generator、framework_loader)。requirements.txt 的 requests/pandas 被注释为可选,未安装也未使用。结论:零网络外发,security.network_calls 填空数组是准确而非漏查。
  • [ok] 是否存在凭证/环境变量读取 — os.environ/getenv/keychain 零命中;.env 仅出现在 .gitignore 的忽略规则里(仓库内无 .env 文件)。requirements 声明 anthropic>=0.7.0 但全仓 grep anthropic 只命中 requirements.txt 与两份 learner.md,且 learner.md 自述「当前实现中,AI辅助提取功能返回空列表,需要集成真实的LLM API」——即不上传任何 key,也不调用任何模型 API。

6结论

  • 素材库是真的、可统计的:1246 条元素 / 12 个领域 / 70 个类目 / 675 条社区语料 / 5 个完整设计模板,全部落在单个可查询的 SQLite 里,随仓库分发(2.5MB)。
  • 工程结构完整,从「生成」到「学习」成环:统一入口三模式路由 + 框架驱动选择 + 一致性修正 + 生成历史落库 + 学习器写回元素库,闭环里每一步都有对应脚本与文档。
  • 安全面干净且自洽:纯本地运行,零网络、零凭证、零子进程,写库走参数化查询,YAML 用 safe_load;技能不触碰用户密钥。
  • 可移植性设计(双平台镜像 + 单文件数据源):同一套 skill 内容在 Claude Code 与 OpenAI Codex CLI 下逐字节复用,迁移成本仅为改一个入口路径。
  • 适合:适合想给「AI 图像/设计提示词生成」搭一套本地素材库 + 流程规范的人:① 需要结构化人像/海报/产品/视频提示词模板、又不愿每次从零写 prompt 的创作者;② 想学「skill 编排 + SQLite 素材库 + Python 引擎 + 学习闭环」这套工程范式、准备在自己领域照搬(换成自己的 elements.db 与框架 YAML)的 skill 作者;③ 用 Claude Code / Codex CLI 且接受「agent 在本地跑 Python、读写本地 sqlite」的本地工作流。作为参考架构比作为开箱即用产品更合适。
    不适合:不适合:① 期望零配置开箱即用的人——需 Python 3.8+、pip install pyyaml、改掉 SKILL.md 里写死的绝对路径、并自备 LLM 宿主(skill 自身不调用任何模型 API);② 需要云端服务/SaaS 化或多人共享的团队——无网络接口、无鉴权、数据是本地单文件;③ 在意「生成即生产可用」的人——IP 角色/动作/独家风格靠宿主模型补写,且库内素材以光影/摄影技术类通用片段为主,成品质量取决于模型与人工挑选;④ 完全无中文语境的项目——skill 触发词、Intent 关键词表、模板中文名均以中文为主;⑤ 需要明确商业授权保障的场合——仓库缺 LICENSE 实体文件。
    安装 agent 直装可复制
    ① 本站镜像 更新 2026-09-15
    方式 A · 人下载镜像包下载 image-prompt-generator.tar.gz
    sha256: c4376bb8c7682856…
    方式 B · JSON 格式安装指南,复制给 agent
    安装指南
    agent 读 JSON 指南后会自动从本站下载安装,无需更多说明。
    ② 上游 GitHub · 原始来源
    能访问 GitHub?直接去上游安装(实时版,可能已更新)GitHub 原始 ↗
    本页镜像锁定 commit e951249840;上游为实时仓库。
    来源信息 GitHub 原始
    作者 / 仓库huangserva / huangserva/skill-prompt-generator
    Stars1486
    最近推送2026-05-10
    本 skill commite951249840
    许可仅 README 末尾声明 "MIT License",仓库内无 LICENSE 文件(受版本控制的 98 个文件中无 LICENSE/LICENSE.md),gh api license=null,授权声明停留在文档层面
    本站信息
    收录日期2026-09-06
    分类设计
    侦查报告AI 侦查 · 2 遍 · 2026-09-06
    本站镜像与 GitHub 原始是不同来源:本站锁定 commit 快照经 /r2 分发;GitHub 为实时上游,内容可能已更新。
    同分类邻近