Mac · 全程在你自己的电脑上 · CSV(含图片地址)进,CSV(多一列 alt_text)出 · 带命令行
AltForge:为整份商品目录写 alt 文本
AltForge 只需要一份 CSV:每行一件商品,图片列写着图片地址(链接或文件名),其余列是品名、品牌、品类、颜色、关键词。它在你的 Mac 上逐张读图,然后把同一份表格还给你——原有每一列原封不动,只多出一列写好的 alt_text。模型在本机运行:图片和商品名都不上传,也不按张计费。
US$6.99 一次买断 · 含免费版
版本 1.0.0 · macOS 14 Sonoma 或更新,Apple Silicon · 下载 226 MB,模型已内置
一次买断 · 包含 1.x 全部更新 · 14 天全额退款

你的授权码
打开 AltForge → 设置 → 授权,把整行粘进去。请另存一份:授权码离线可用,你自己的所有 Mac 都能用,覆盖 1.x 的所有版本。
一份 CSV 进去,同一份 CSV 出来
输入就是你手上已有的导出表,输出就是那张表多了一列。不重建、不丢行,图片列也绝不会被改写。
alt_text。
工作方式
- 只选 CSV,这一个输入就够了。 Shopify、WooCommerce、Etsy、ERP 或者电子表格导出的 CSV;图片列可以写链接、路径或文件名。图片默认在 CSV 所在文件夹查找,所以「表格和图片放一起」是常规做法;图片在别处,打开后还能另选文件夹。App 自带一份四件商品的示例(图片列是真实链接,图片随 App 安装):在起始页点「选择示例」即可。
- 先看它认对了没有。 表头会被读进来,列按名字识别:
image、sku、title、brand、category、color、keywords,中文列名同样认。认错的在「设置 ▸ 列」里一个下拉框就能改;在生成第一句之前,就能看到有多少行找不到图片。 - 让它看。 Florence-2 在这台 Mac 上逐张读图,Apple Silicon 上每张约一秒。它描述的是画面里有什么——物件、颜色、材质、背景——而不是文件名,它根本看不到文件名。
- 把表格拿回去。 导出时原有每一列都原样保留,只多出一列 alt 文本。找不到图片的行会连同原因写进第二份 CSV,不会有行悄悄消失。

用模板统一口吻
Florence-2 只看到了图片;你的表格知道品牌、品名、颜色和搜索词——所以文案由两者拼成。通用预设覆盖常见需求,另有三个按导出平台的口径排列,模板那一行也可以手改:
- 简述 ——
{caption}。一句话描述商品,最通用的替代文本。 - 详细 ——
{caption},要求更完整的描述,适合允许长 alt 文本的平台。 - 品牌 + 品名 ——
{brand} {title} — {caption}。先写这一行自己的名字,再补图片看到的东西。 - 关键词 ——
{title} {color} {caption} {keywords},把颜色和关键词列一起织进去,兼顾搜索页。 - Shopify —— 品牌、品名在前,再补图片内容,对应 Shopify 的 alt 文本字段。
- Kaufland ——
{title} {color} — {caption},对应平台的picture.alt_text列。 - Amazon —— 品牌、型号加冒号,Amazon 商品页常见的读法。
可用的占位符有 {title}、{brand}、{category}、{color}、{keywords}、{caption}、{sku}、{filename} 和 {index}。某一行的某列为空时,它会连同旁边的分隔符一起消失,所以没有品牌列的表格不会产出以破折号开头的文案。结果会压缩多余空格、首字母大写,并按词边界裁到字符上限——默认 125,这是 alt 文本在实际使用中的合理上限,输入时旁边会实时显示字数。
四种看图方式
Florence-2 训练过几种描述任务,AltForge 拿出对店铺最有用的四种:
- 简述 —— 一句话。白色背景上一个带提手的棕色真皮托特包。
- 详细 —— 更长的句子,带材质、部件和场景。
- 段落 —— 几句话,给商品详情页用,而不是塞进
<img>的 alt 属性。 - 图上的文字 —— 读标签或包装上的字,而不是描述它;图片是尺码表、印着名字的盒子时很有用。
命令行上是同样的四种:--task caption|detailed|paragraph|ocr,也可以写 --style concise|detailed|paragraph|ocr。更细的描述任务属于授权版;免费版只写那一句简述。
原有每一列都还给你
AltForge 不重建你的表格。导出就是输入 CSV 加上一列——默认叫 alt_text,表格本来就有 alt 列的话写进那一列——其余所有列和值原样写回。引号、内嵌逗号和换行由真正的 CSV 写入器处理,编码也会自动判断:带不带 BOM 的 UTF-8,或中文表格工具导出的 GB18030。
文案可以改。点一行,改句子,确认;某一行的图片想重新生成,也可以只跑那一行,不影响其余九十九行。手动改过的句子归你,不会被覆盖。图片不存在、或者行读不出来时,这一行会带着行号和原因写进 catalogue.alt.errors.csv。
免费版与授权
下载的就是完整应用。没有授权时,只扫一个文件夹,前 100 张图片可以生成并导出——足够用你自己的商品看清它到底能做到什么。第 101 行起留空并在窗口里计数,不会悄悄丢掉。
| 免费版 | 授权版 | |
|---|---|---|
| 每份目录的图片数 | 前 100 张 | 全部行 |
| 文件夹 | 只扫一个 | 含子文件夹 |
| 描述方式 | 一句简述 | 简述、详细、段落、OCR |
| 模板、预设与列映射 | 固定 {caption},列自动识别 | ✓ |
| 导出文字 | 末尾带 (generated by AltForge free) | 原样 |
| 导出保留全部原有列 | ✓ | ✓ |
命令行(fill 整张表) | 前 100 行 | ✓ |
| 更新 | ✓ | 1.x 全部更新 |
| 价格 | 免费 | US$6.99,一次 |
目录留在你的 Mac 上
不上传、不注册、不数额度。AltForge 不会把你的图片、商品名或文案发到任何地方。模型就在应用里,第一次运行不需要下载。唯一的网络请求是每天一次更新检查,从 swordfishsoft.org 取新版本列表和已退款订单列表——所有人取的是同一份文件。更新检查可以在设置里关掉。生成和导出完全不需要联网。详见隐私政策。
命令行与 AI 助手
AltForge 附带 altforge,与应用共用同一套内核、同一个模型、同一个模板引擎。可以在终端里整表跑,可以挂进定时任务,也可以交给能在你 Mac 上执行命令的 AI 助手,比如 Claude Code 或 Codex。
altforge fill --csv products.csv --images photos --out products-alt.csv
altforge fill --csv products.csv --images photos --template "{brand} {title} — {caption}" # 统一口吻
altforge fill --csv catalog.csv --images ./photos \
--image-column image_url --id-column sku --out catalog.filled.csv \
--style concise --max-chars 125 --skip-existing --json altforge.jsonl
altforge mapping --csv products.csv # 先看列是怎么认的,什么都不写
altforge models download # 不开应用也能修复内置模型
altforge license status # 看这台 Mac 用的是哪把授权码
- 为脚本和代理而做。 它从不等待输入,进度写到 stderr;全部行处理完退出码
0,部分行失败是2(表格照常写出,失败明细在错误 CSV 里),参数错3,碰到免费限额或授权能力4,模型文件缺失5,被打断130。--dry-run不加载模型也不写文件,只报会处理多少行、缺多少图、免费限额会锁多少行;--json FILE每行写一个对象(status、alt、error)再加一行汇总,代理可以先看清楚再动手。 - 重复运行是安全的。 结果是新文件,输入 CSV 只读、绝不修改。
--force让本次已经处理过的行再算一遍。 - 应用和命令行一致。 同样的模板、任务、列映射和字符上限,两边产出的文本相同。
给 AI 助手的提示词
我的 Mac 上装了 AltForge。它根据一份 CSV 和一文件夹商品图片写 alt 文本,完全离线,用的是 Florence-2,并且带一个命令行工具: "/Applications/AltForge.app/Contents/Helpers/altforge" (如果把命令装进了 PATH,也可以直接写 altforge)。先用 --help 看用法。参数: altforge fill --csv SHEET [--images DIR] [--out SHEET] [--image-column NAME] [--id-column NAME] [--alt-column NAME] [--template "..."] [--task caption|detailed|paragraph|ocr] [--style concise|detailed|paragraph|ocr] [--limit N] [--max-chars N] [--skip-existing] [--force] [--dry-run] [--json FILE] altforge mapping --csv SHEET 看列被识别成了什么 altforge models [download] [--id vision|embed|encoder|decoder|tokenizer] altforge license [status|KEY] 不给 --out 时,结果写在输入旁边的.alt.csv。输入 CSV 永远不被修改;表格里已有的 alt 文字会重新生成、写回同一列。找不到图片的行会带着原因写进 .errors.csv。--dry-run 只报数量;--json 每行一个 JSON 对象再加一行汇总。 退出码:0 全部行处理完,2 部分行失败但表格已写出,3 参数不对,4 碰到免费限额或授权能力,5 模型文件缺失,130 被打断。进度写到 stderr,全程不等待输入。 如果提示模型缺失,运行 altforge models download;如果说需要授权,请直接告诉我,不要绕过。不要删除或移动我的文件。 我的任务:
mapping、models 和 license 不需要授权即可使用;fill 在免费版里处理每份表格的前 100 行。
购买流程
- 先下载、先用免费版。 打开磁盘映像,把 AltForge 拖进「应用程序」,然后拿自己目录的一百张图片跑一遍——模型已经内置在应用里。
- 在本页购买授权。 结账由我们的转售商 Paddle 完成,可以刷卡、用 PayPal 或结账页上的其他方式,适用地区会加税。
- 复制授权码。 付款成功后会立即显示在本页,同时也会发到你的邮箱。把它粘进 AltForge → 设置 → 授权,限制就没了。
授权码丢了?用付款时的邮箱发信到 [email protected],我们会重发。
常见问题
和直接让 ChatGPT 写 alt 文本有什么不同?
三点。你的目录不会离开这台 Mac,未发布商品的图片和商品名仍然属于你;没有按张计费,也没有速率限制,两万行的表格一次跑完;输出就是那张表——每一列都在,只多一列——而不是一个还得自己复制粘贴的聊天窗口。云端的视觉 API 能把一张图描述得很好,但它没法把带 SKU 列的干净 CSV 还给你。
表格里原有的 alt 文本会怎样?
它会被读进来、显示在每张图旁边;点「生成」会在同一列上写新文案——这一列就是 AltForge 负责的那一列。其他所有列原样保留。想在不丢旧值的前提下对比,可以在「设置 ▸ 目录」里换一个新列名(例如 alt_forge):导出时会新增这一列,原来的列不动。也可以只重新生成某一行。
生成的文案准吗?
Florence-2 描述看得见的东西:物件的种类、颜色、材质和场景。这正是读屏软件需要的,通常也远好过 IMG_2041.jpg 这样的文件名。它不可能知道这是「我们卖得最好的小羊皮托特包」——那是模板里品牌、品名和关键词列的活儿。涉及法律或医疗宣称的文案,发布前请逐条读一遍;应用把模型写的句子放在图片旁边,就是为了让你能这么做。
免费的一百张怎么算?
每份目录里前 100 行有图片的行。再开另一份目录又是新的一百张;限制是按目录算的,不是按月。
能读什么样的 CSV?
逗号分隔,UTF-8(带不带 BOM 都行)和 GB18030。带引号的字段、内嵌逗号和换行都支持。Excel 可以导出「CSV UTF-8」;旧版中文 Excel 选「CSV(逗号分隔)」即可,AltForge 会自动识别 GB18030 编码。
它怎么找到每一行的图片?
先按图片列里的文件名找,忽略 URL 前缀和查询串;再按去掉扩展名的名字找;再按同一个名字加任意支持的扩展名找,所以 sku-123 能找到 sku-123.jpg。你选的文件夹下的子文件夹也会搜索。支持的格式是 JPEG、PNG、WebP、GIF、BMP 和 TIFF。
图片找不到怎么办?
这一行会以空 alt 值导出,并带着原因写进 errors CSV。读不出来的行也进同一个文件,修好之后可以只重跑这些行。
一整份目录要跑多久?
M 系列 Mac 上每张约一秒,一千个商品大约一刻钟;模型只加载一次,之后一直留在内存里。第一次之后全部离线。
支持哪些 Mac?
Apple Silicon(M1 及以后)、macOS 14 Sonoma 或更新。不支持 Intel Mac。
有 Windows 版吗?
暂时没有。问的人够多我们就做,同一份授权同样通用。可以发信到 [email protected]。
macOS 问我要不要打开,这正常吗?
正常。第一次打开任何从网站下载的应用,macOS 都会问一次。确认提示里写着 Apple 已检查且未发现恶意软件,然后点「打开」:应用有我们的 Apple Developer ID 签名,并经过 Apple 公证。
用着不合适怎么办?
每次购买都有14 天全额退款。
由重庆剑鱼科技有限公司(SwordFishSoft)销售。订单流程由我们的在线转售商 Paddle.com 完成,Paddle.com 是所有订单的 Merchant of Record。使用条款 · 退款政策 · 隐私政策。模型:Microsoft Florence-2-base-ft(MIT),onnx-community 的 int8 ONNX 导出,用 ONNX Runtime(MIT)运行;分词器来自 Hugging Face tokenizers(Apache-2.0);Sparkle(MIT)。截图中的商品图片是生成的示例图,不是客户文件。