THE LINEAGE
一张照片输入后,技能在用户机器上测量十种特征,判断这些特征所属的十年,并构建照片的家族树:主干上从 1930 年代到 2020 年代每年一种风格,旁边还有两个分支,每个都是一个命名的电影、摄影师、广告或工艺,并附有归属理由。然后,它会研究主干的方向,在库中完全没有对应风格的位置生长出一个 2027 年的新分支:一个名称、一个配方、继承自谁的证明,以及该缺口存在的证据(“107 种风格中没有一种同时拥有这种暖度和颗粒度”)。这个缺口句子是签名:它使这个分支成为一个尚未有人做出的风格,而不是一个猜测。
分支之前的所有工作都是本地计算,不花费任何费用。唯一会生成的是用户自己照片的最终重新打光效果,它在用户同意后在用户的 Higgsfield 账户上运行。
安装
bash install.sh # 技能、工作室文件夹、可选工具检查
bash install.sh --higgsfield # 同时安装 Higgsfield CLI 和 MCP,可在您自己的账户上生成
仅使用标准库 Python。JPEG 和 HEIC 通过 sips(macOS)或 ffmpeg 打开;PNG 无需任何操作。
如何运行
当用户提出请求时,Claude:
- 追溯照片。
python3 scripts/lineage.py trace "<photo>" --project "<project>"(任何 JPG、PNG 或 HEIC;项目默认为the-lineage)。它会打印四个读数(光线、颗粒、构图、色彩),得分最高的十年及分数和亚军,以及从 1930 年代至今的主干,以及每个风格与照片的共同点。先告诉用户年代,然后告诉用户最重要的两三个主干风格。如果显示“接近判断”,则同时说出两个年代:这才是诚实的读数。 - 生长分支。
python3 scripts/lineage.py grow latest --project "<project>"。它会打印 2027 年的分支:名称和声明、配方(光线、色彩、暗部、颗粒、光学、格式)、继承自哪个风格以及如何继承,以及缺口。如果用户想要另一个选项,--seed 1(2、3...)会使用相同规则找到另一个缺口。 - 导出。
python3 scripts/lineage.py export latest --project "<project>"会写入trees/<id>.svg(可打印海报:从 1930 年攀登的主干,顶部是深红色的 2027 年新芽)、trees/<id>.json(所有数字)和trees/<id>-branch.md(带有配方的分支卡片)。打开海报(在 Mac 上使用open <file>),并在一行中说明需要先看什么:新芽和紧挨着它的主干风格。 - 生成前停止并询问。 仅当用户想要将分支应用到自己的照片上时:
python3 scripts/lineage.py request latest --project "<project>"会写入一个图像编辑请求。告诉用户这是一次生成,以及在其 Higgsfield 计划上的费用,然后等待用户确认。然后运行它(如下所示),并使用python3 scripts/lineage.py status latest --project "<project>"检查状态。
解释节点:python3 scripts/lineage.py node <id> 会完整打印一个风格(为什么它在族谱中、它传递了什么、人物、在哪里可以找到它、父节点)。python3 scripts/lineage.py library --decade 1970 列出某个十年的风格。用户自己的参考文献:python3 scripts/lineage.py add --name "..." --year 1994 --why "..." --image ref.jpg 会测量图像,并将该风格添加到用户此后每个树的族谱中(参考文献是全局的,不限于项目;--project 参数被接受但被忽略)。
可以使用捆绑的示例进行尝试(无需花费):python3 scripts/lineage.py example --project demo(或 --photo pool 用于第二个静帧)。要检查技能在此机器上是否正常工作:python3 scripts/selftest.py。
如何判断结果
- 关于脆弱基础的警告。 如果没有人物、可见光源或工作室灯光,测量仪几乎没有依据:主干上匹配度低于 30% 意味着照片不适合,因此在用户将树视为历史之前说出来。
- 年代是一个读数,而不是定论。 高于 25% 的份额且与亚军有明显的差距是可靠的读数;分数相差不到 5 分是接近判断,两个年代都是合理的。重新压缩照片会改变其颗粒度,并可能改变其年代归属。
- 主干风格赢得其位置 当它与照片共享两个独特的特征(
shares行)时,而不仅仅是颜色。匹配度高于 50% 是近亲;低于 30% 仅仅意味着该年代没有更接近的风格,因此请如实说明。 - 分支是好的 当它的缺口句子命名了一对库中没有任何风格同时拥有的强特征时,其最近现有风格的匹配度不超过 70%,并且它仍然保持照片的框架。拒绝配方在胶片上自相矛盾的分支(例如在黑白胶片上进行分裂色调):使用另一个种子生长。
- 实线表示有文献记载的影响;虚线表示特征的亲缘关系。 永远不要将虚线呈现为历史。
- 本地数字是可以在树 JSON 中检查的算术运算;
references/method.md解释了每一个数字及其限制。library/reading-card.md是相同的用肉眼进行的读数。
在用户的 Higgsfield 账户上生成
此技能本身不会生成任何内容。request 会写入 ~/LOWLIGHT STUDIO/<project>/requests/<id>.json(提示、用户照片作为参考、宽高比)。Claude 通过以用户身份登录的 Higgsfield MCP 运行它,然后归档结果:
python3 scripts/studio_bus.py requests <project>
python3 scripts/studio_bus.py receive <project> <id> <downloaded file>
这是一个图像编辑:提示仅描述分支的光线、颜色和胶片表面。使用用户计划提供的编辑模型(Nano Banana Pro 或 Seedream 编辑模型效果很好)。在运行任何操作之前,告诉用户这是多少次生成以及在其计划上的费用,并等待用户确认。请参阅 references/generation.md。
与其他部门的通信
请参阅 references/studio.md。当 The Eye 存在时,它会读取其中的 taste(喜好和拒绝会引导 2027 年分支的生长方向;分支会显示 taste_used),并发布 lineage:最近的十二棵树及其节点和分支,The Eye 可以将其用作额外的牌组。如果没有其他部门,它的工作方式相同。
文件
| 路径 | 说明 |
|---|---|
scripts/lineage.py | 引擎及其命令行:example, trace, grow, export, request, status, trees, library, node, add |
scripts/meter.py | 照片测量仪:十个特征、读数、调色板、格式(python3 scripts/meter.py photo.jpg --brief) |
scripts/demo_photo.py | 从代码绘制两个示例静帧(不捆绑任何人的图片) |
scripts/selftest.py | 使用合成照片和示例进行空运行:python3 scripts/selftest.py |
library/lineage.json | 107 种风格,1930 年代至 2020 年代:人物、原因、特征、调色板、父节点 |
library/examples/ | 两个示例静帧,从代码绘制(请参阅其 README) |
library/reading-card.md | 针对挂在墙上或手机上的照片,用肉眼进行的相同读数 |
references/method.md | 如何计算测量仪、年代、主干和缺口及其限制 |
references/library.md | 如何编写风格、如何添加或更正 |
references/generation.md | Higgsfield 设置以及如何构建请求 |
references/studio.md | THE STUDIO 各部门之间的共享总线 |
输出位于 ~/LOWLIGHT STUDIO/<project>/:trees/、requests/、received/。