SuperAPI AI 工具集

lovstudio-find-logo

设计与创作

查看项目

更新于 10-15 08:19

技能介绍

用途

find-logo 用于收集品牌 Logo:给出品牌名称或网址后,它会探测公共来源的候选图片,评分后把最佳一张及若干备选归档到配置的收集目录中。适合的场景包括:为幻灯片/海报/网站的合作方或媒体展示条收集一个或多个品牌 Logo;用户点名若干公司希望放入 partners/press 条;用户给出一个网址,希望干净地把它的 Logo 拉取下来。

主要能力

  • 按品牌名称或 URL 探测候选 Logo,来源包括 Clearbit、目标网站自身的 og:image、<link rel=icon> 与 favicon。
  • 对每个候选打分,选出最高分作为主图,并保留若干备选(默认 2 个)。
  • 归档目录中包含 primary、alt-N 以及记录来源、评分、尺寸、抓取时间的 meta.json。
  • 单品牌单次调用;批量时循环调用即可,脚本对同一 <slug> 目录是幂等的(重复运行会覆盖)。
  • 仅使用标准库,无需 pip 安装。

使用方式

基本调用(每次一个品牌):

python3 scripts/find_logo.py --name "Anthropic" --url https://anthropic.com --json

命令行参数:

参数 默认 说明
--name — 品牌/产品名称,用于 slug 与 meta。
--url — 官方 URL 或裸域名,优先于基于名称推测的域名。
--slug 名称的 slug 化结果 覆盖归档根下的目录 slug。
--out LOVSTUDIO_FIND_LOGO_OUTPUT_DIR 或 ~/.lovstudio/logo-collection 归档根目录。
--keep-alts 2 保留多少个次优候选为 alt-N.<ext>。
--json 关闭 向 stdout 输出 JSON 结果(用于链式调用)。

--name 与 --url 至少提供一个。

工作流程(按要求执行):

  1. 识别每个品牌:接受名称与 URL 任意组合;若只给名称且域名不明显,应先询问,不要静默猜测 .com。名称有歧义(例如 "Apple" 指水果还是公司)、无 URL 且域名难以推测、或用户给了不含 URL 的列表时,使用 AskUserQuestion。
  2. 抓取:每次调用一个品牌。
  3. 检查评分,必要时回退到 WebSearch:退出码 0 表示已归档,打印的分数是质量信号。

评分参考:≥60 为可靠(SVG 或透明 PNG,宽/方形比例);20–60 为可用(可能是 favicon 或小 PNG);<20 为较弱(仅 ICO 或极小占位图)。退出码 2 / status: "no-candidates" 表示脚本没找到任何候选;此时不要放弃,可用 WebSearch 搜索 "<brand> logo svg site:*.com" 或该品牌新闻资料包页面,但注意脚本不支持 --url <直接图片地址>,如果已获得直接图片 URL,需手工保存到配置的收集目录下的 <slug>/logo.<ext>,并参照现有布局手写 meta.json。 4. 汇报:给出归档路径,以及主图的宽高比与格式;若分数较弱,告知用户并可提议用指定 press-kit URL 或 Wikipedia SVG 重试。

归档结构

~/.lovstudio/logo-collection/
├── anthropic/
│   ├── logo.png            # primary (highest score)
│   ├── alt-1.png           # runner-ups
│   ├── alt-2.png
│   └── meta.json           # sources, scores, dimensions, fetched_at
├── vercel/
│   ├── logo.png            # 1200x628 transparent banner
│   └── ...
└── stripe/
    ├── logo.svg
    └── ...

评分规则(候选为何胜出)

  • 格式:SVG (+40) > PNG (+20) > WebP (+10) > JPG (-10) > ICO (-20)
  • 透明度:存在 alpha 通道 +30(SVG 始终计入)
  • 宽高比:宽(≥2:1)+25,横向(≥1.3:1)+10,方形 -5,高/竖版 -15
  • 短边:≥128px +15,≥64px +5,<32px -20
  • 体积合理性:payload <400 字节 -30(几乎肯定是占位图)

该规则对应「偏好长条形 + rgba」的取向:宽幅透明 Logo 得分最高,方形 favicon 通常落为备选。

依赖与配置

  • 依赖:仅标准库(urllib、html.parser、argparse),无需 pip install。
  • 配置:默认归档文件位于 ~/.lovstudio/logo-collection/;每次运行可用 --out 覆盖,或为该技能设置 LOVSTUDIO_FIND_LOGO_OUTPUT_DIR。

已知限制

  • 名称到域名的猜测只是简单的转小写加 .com 后缀;任何不在 .com 的品牌应显式传入 --url。
  • 不使用 Clearbit API key,访问的是未认证端点,覆盖多数大品牌但并非全部。
  • WebSearch 回退由调用方(Claude)负责,脚本本身不提供。