Skip to content

Latest commit

 

History

History
481 lines (355 loc) · 46.1 KB

File metadata and controls

481 lines (355 loc) · 46.1 KB

带藏 · TapeFolio 📼

为磁带收藏者设计的封面制作工具。原名“磁带封面生成器 / J-Card Genesis / Tape Cover Generator”。

品牌名称与图标自 2.0.1 起更新为“带藏 · TapeFolio”。

当前源码版本:2.1.1(2026-09-10),使用 Electron 44.3.0。本版本尚未打包或发布;v2.1.0 Release 为上一版本安装包,不包含以下更新。

v2.1.1 更新(2026-09-10)

  • AI 设置简化:DeepSeek 前置并标记“推荐”;固定 deepseek-flash 负责文字生成与图片理解,共用一个 API Key。移除文本/视觉服务商、模型列表、搜索及手工型号输入。旧设置自动收口为 v5,无需手工迁移。
  • 可选封面生图:新配置默认关闭,开启后选择阿里云或火山引擎并填写对应密钥。两家仅用于生图,使用固定适配模型;已有合法生图选择按当前迁移规则保留。
  • 菜单与编辑区整理:新建、打开和另存为归入“作品”;保存和 PNG 导出常驻顶部,SVG 位于旁边下拉菜单。右侧分为“内容/外观”,低频选项与搭配详情可折叠。
  • 保留编辑行为:界面整理保留全部现有字体、配色、排版、尺寸和曲目选项,不改默认值、保存、生成或导出规则。切换页签不清空候选或中断任务。
  • 验证:107 项自动测试、17 个字体检查、生产构建、浏览器与 Electron 44.3.0 隔离回归通过;对照样本的作品内容和 PNG 字节一致。未执行真实 AI 账户调用、实体打印或新安装包发布。

作品格式仍为 v3。使用说明 · 界面维护与验证记录

v2.1.0 更新(2026-09-09)

桌面运行时与构建

Electron 固定为 44.3.0,electron-builder 固定为 26.16.1。macOS 安装包支持 Apple Silicon,最低要求 macOS 13;Windows 安装包为 x64,不提供 32 位 x86。构建环境需要 Node.js 22.12 或更新版本,CI 使用 Node.js 24。

文件摘要改用分块读取,构建记录增加阶段耗时;Mac 安装包读取实际 Electron/Chromium 版本,Windows 安装包核对可执行文件中的 Electron 产品版本。运行时升级不代表已证明或修复此前的 PNG 字体替换问题,字体一致性须单独验证。

成品视觉复核

新候选通过本地检查后,将原图与实际成品图逐套回传给同一视觉模型,检查配色、文字层级及变形后的可读性。检查失败时汇总问题与可用的失败成品图,最多修订一次,再重新渲染和复核;本地检查与视觉复核共用这一次修订机会。已通过方案保留,最终仅展示通过且不同的候选,由用户选择应用。

视觉结论绑定候选版本、设计参数和成品图;超时、漏评、无法判断或旧版本结果均不算通过。生成时的当前作品对照仍仅在本地。生成包含多次视觉请求,预览、应用和撤销不调用 AI。源码流程与真实模型效果分别验证。

AI 文字样式

智能搭配可按标题、艺术家、副标题、标语、曲目、备注和资料分别选择真实字重、几何倾斜及水平压缩/拉伸。字重受随包字体实际能力约束;当前没有原生斜体文件,倾斜通过明确的几何变换实现。曲目和小字使用更小的变形范围。

排版按所选字重与变形重新测量、换行和适配字号,再检查实际文字边界及重叠。失败方案可由同一模型修订一次;本地排版检查失败时不能导出。候选预览与 SVG / PNG 共用变形结果。

“锁定字体与样式”保留整套设置;应用、撤销、草稿和作品文件均保存样式。可在封面设计中恢复默认样式,手动切换字体也会恢复默认。旧作品保持原外观。详细说明

此功能已使用模拟模型响应验证,真实模型审美效果仍待体验。

作品格式保持 .jcard v3,已有 v3 作品可继续打开;新文字样式需使用 2.1.0。已完成 114 项自动测试、字体检查、生产构建及模拟接口浏览器回归;真实模型设计质量、账户可用性与实体打印效果仍待实测。

v2.0.1 更新(2026-09-09,历史发布)

安装包由对应版本标签的源码构建。打包流程生成独立目录及 build-record.json,记录提交、源码摘要、架构和安装包校验结果。

中英文风格统一

主题 中文标题 英文标题 正文
现代 未来荧黑窄体,含原生粗体 Oswald Inter / 思源黑体
胶片 寒蝉高黑体 Bebas Neue Roboto / 思源黑体
手记 龙藏体 Rock Salt Shadows Into Light / 龙藏体
骇客 站酷庆科黄油体 Orbitron Share Tech Mono / 思源黑体

素体、编辑、重工保留原搭配。黄油体仅用于标题;手记取消正文黑体覆盖。字体随应用离线加载,缺字使用后备字体;预览和 SVG / PNG 导出共用配置。新增字体的授权随包保留,并写入 SVG 元数据。

字体来源与摘要见 手记字体记录及标题字体记录。已通过 17 个字体资源校验、17 组浏览器排版检查及调整主题的 SVG → PNG 导出检查。

设备与桌面交互

  • 录音设备提供三个本机预设,可命名、保存及一键填入;保存失败会显示提示。
  • 桌面应用中的 HTTP / HTTPS 外链交给默认浏览器打开。
  • 移除顶部常驻 API 服务商状态条,设置仍通过设置窗口管理。

AI 完整配色

在“智能搭配”中,视觉模型直接观察封面原图,自主设计正面、背面曲目区、脊背和折页的完整配色,不受三套预设或图片取色结果限制。原始封面图片保持原样。

  • 分区与文字配色:分别指定各面板背景、标题、艺术家、副标题、曲名、时长、备注,以及标语、圆标、分隔线和边框颜色。
  • 检查与修订:按文字实际底色检查对比度;有效方案不足三套时,最多向同一模型追加一次修订请求。仍未通过的方案不展示,程序不擅自替换颜色。
  • 完整保存:支持整套配色锁定、预览、应用、撤销、草稿及保存恢复;原有三套预设继续作为手动选项。

使用入口:上传主封面 → “智能搭配” → “生成三套搭配” → 放大检查 → “应用这套”。详见使用说明。

完整配色自 v2.0.1 安装包起提供。已验证模拟模型响应下的实际渲染、保存恢复和 PNG 导出,尚未进行真实模型调用;新完整色板需使用包含本次更新的应用打开。

v2.0.1 智能搭配与信息补足(历史记录)

  • 智能搭配:基于封面原图与内容,一次生成“延续原封面”“突出标题”“阅读清晰”三个方向,支持字体/配色锁定、独立放大预览、应用与撤销。只展示通过本地检查的有效组合,不足三套时明确说明。使用说明
  • DeepSeek 内测视觉支持:该版本曾通过 deepseek-v4.1-flash-expires-on-0910 接入视觉能力;此临时型号现已由正式 DeepSeek-V4.1-Flash 配置取代。当前配置说明
  • 封面智能补足信息:上传主封面后识别专辑线索,自动搜索 MusicBrainz;匹配不唯一时选择专辑与发行版本,再逐项核对导入。默认只补空字段,替换已有内容需勾选,两张封面和未选内容保留。使用说明
  • 预览与导出修复:候选图与 PNG 导出等待内嵌字体实际绘制,修复正文可能缺失的问题;各预览的滤镜和裁切标识独立。
  • 保存兼容:作品格式为 v3,AI 设置为 v3;旧配置的视觉功能默认不启用,候选方案和识别结果不会自动写入作品。

该阶段 101 项自动测试通过,新增功能已完成模拟接口交互验证;真实模型效果、实际账户可用性和实体打印仍待验证。实施细节见 智能搭配维护记录 与 智能补足维护记录。

以下为历史版本更新记录。

v1.6.1 Update(2026-09-08):

  1. MusicBrainz 核对导入:搜索、发行版本选择和导入预览分步进行,支持分页及完整署名,区分专辑首发与版本日期。
  2. 作品与封面来源:修复作品关系请求与古典误判,保留多位作曲者、演奏者及原曲序;封面优先对应所选版本,回退时明确提示。
  3. 导入保护与分面:请求失败、取消及过期结果不覆盖作品;主封面和第二封面分别确认处理,按容量、时长和作品连续性建议分面。
  4. 保存兼容:来源信息随 .jcard v2 保存,仍可打开旧作品;旧应用重新保存会丢弃新增来源字段。
  5. AI 服务与模型选择:DeepSeek 替换 MiniMax,支持模型获取、搜索、下拉选择和手动输入;DeepSeek 仅提供文本能力,旧 MiniMax 设置需重新选择。
  6. 编辑体验:移除顶部 AI 创意总监批量入口,保留各字段单项 AI 功能;编辑左齐封面图片铺满面板宽度。
  7. 验证与交付:71 项自动测试通过,既有导入、模型设置及保存回读交互已完成隔离验证。macOS ARM64 与 Windows x64 安装包由独立构建和校验流程交付。

v1.6.0 Update(2026-09-08,已生成本地安装包,尚未发布至 Releases):

  1. 作品保存与恢复:新增打开、保存、另存为及自动草稿恢复,作品包含双封面、曲目、排版、配色和录音信息;未保存修改提供离开提醒。
  2. 三家 AI 服务:保留阿里云百炼,新增火山引擎与 MiniMax;文本和图片服务商可分别选择,密钥与模型独立配置。
  3. 密钥保存:桌面版使用系统加密存储,兼容旧阿里密钥迁移,保存失败明确提示;密钥不进入作品与草稿。
  4. 套餐说明:明确普通 API、订阅包与 Coding / Token Plan 的区别。本版本接入普通 API,未接入订阅通道。
  5. 封面排版:新增编辑左齐布局、三档标题尺寸、中英文间距与真实字高测量;曲号、曲名和时长分列对齐,脊背使用稳定区域预算。
  6. 字体与完整配色:新增随包提供的 Noto Serif SC 编辑主题,提供暖纸档案、暖暗唱片、冷灰编辑三套完整色板;手记主题采用清晰正文(当前工作区已调整为中英文手写搭配)。
  7. 统一设计面板:字体、配色和正面布局集中到右侧,支持小样预览、强调色微调和可选轻微纸纹。
  8. 保存与导出:作品格式为版本 3,仅支持当前格式;SVG、PNG 等待字体加载并嵌入随包字体,文字溢出时提示并阻止导出。
  9. 本地安装包:已生成 macOS arm64 DMG 与 Windows x64 NSIS EXE,并校验安装包完整性、架构和关键资源。

v1.5.8 Update:

  1. 🧵 Spine 底部双轨排版: 当 artist 与 noteLower 同时存在时,底部元信息不再沿脊部长度方向串行堆叠,而是改为 artist 主轨居中、noteLower 副轨靠外的并行双轨模型,消除旧版在 spine 下端的重叠风险。
  2. 📐 底部占位改为真实最大值: Spine 底部预留长度不再按“备注长度 + 固定安全间距”估算,而是按双轨中的真实最大占位求解,让标题区长度预算更稳定、更符合实际渲染结果。
  3. ✂️ 底部备注输入上限: Note Lower 现在限制为最多 16 个可见字符,并在界面中提示“建议 12 字内”,防止底部备注从输入层面失控,进一步降低窄脊部下的拥挤风险。
  4. 🔤 字体资源修复: 替换损坏的 Inter、Roboto、Rock Salt 与 Shadows Into Light 字体文件,恢复现代、复古与手写主题的预期字形和导出一致性。
  5. ✅ 字体构建校验: 构建前会验证所有 .ttf 资源的文件签名,防止下载页面或其他非字体内容被误打包进 App。

v1.5.4 Update:

  1. 🧭 Short Back 模式收口: 移除了用户侧的 AUTO 选项,左侧折页现在只保留 档案信息 / 紧凑曲目 两种明确模式,减少伪自动带来的预期偏差。
  2. 📏 紧凑曲目动态测量: Short Back (Fold-in) 的 紧凑曲目 不再固定每面显示 5 首,而是会根据标题长度、截断保留率与实际可用高度,在不同密度级别之间动态求解显示数量。
  3. ♻️ 旧项目兼容迁移: 历史项目里保存的 AUTO 会在加载时自动归一化为显式模式,避免旧数据在新版本下出现异常空态或错误分支。
  4. 🖨️ Print-First 字体调优: 围绕“打印可读性优先”做了适度增量优化,重点抬高背面、Short Back 与 Spine 的危险小字下限,避免成品里出现肉眼费劲的微型文字。
  5. 🪧 背面统一 SIDE A / SIDE B Header: 主封底两面现在采用统一的 SIDE A / SIDE B 标题系统,side 总时长不再是远端固定小号脚注,而是成为真正的分区标题组成部分。
  6. 🔢 非古典编号改为分面重置: STANDARD / COMPILATION 模式下,曲目序号改为 SIDE A 与 SIDE B 各自从 01 开始,更符合磁带按面阅读与打印后的使用语义。
  7. ⚖️ 接受更早但更合理的自动退让: 为了换取可读性,系统会更早执行局部信息折叠,例如背面更早隐藏 note / 单曲尾部时长,Short Back 在高密度时可能少显示 1 首,Spine 更容易回退到无 note 方案,古典长作品标题也可能稍早触发 fallback。

v1.5.3 Update:

  1. 🧱 古典 Short Back 布局引擎重构: 古典 Short Back (Fold-in) 的档案模式不再直接依赖固定坐标硬排,而是改为先测量再渲染的独立布局计算流程。
  2. 📉 四级自动降级防溢出: 当 label / source / credits / equipment 过长时,系统会在 FULL -> TRIM_CREDITS -> COMPACT_META -> META_ONLY 之间自动降级,优先保证不冲出、不裁切。
  3. ✂️ 档案字段限行与截断: source / credits / equipment 现在支持限行、折行和省略号收束,极端长文本下的贴边与越界风险明显降低。

v1.5.2 Update:

  1. 🧠 背面过载保护系统: Back 面板新增真实测量驱动的密度判断,不再只靠缩字号硬撑。系统会根据版面承载力自动选择更合适的信息层级。
  2. 🎼 古典模式自动折叠: 面对《Carnaval》这类多乐章/多分段作品时,背面会在 完整分曲 -> 节选分曲 -> 作品摘要 -> 仅作品名 之间逐级降级,避免曲目页视觉溢出。
  3. 🎛️ 非古典模式 Note-Aware 压缩: STANDARD / COMPILATION 模式下,背面会优先保留 标题 + 备注,再按密度逐步牺牲 artist / duration,避免一刀切丢掉听感备注。
  4. ↕️ 非古典曲目拖拽排序: 右侧编辑区新增拖拽把手。非古典模式现已支持 A / B 面内重排与跨面移动,移动后会自动重算两面时长并即时刷新预览。
  5. 🪪 稳定 Track ID 基础设施: 每条曲目现在拥有稳定 id,避免重排后输入框错位,也为后续更完整的排序与批量编辑能力打下基础。
  6. 🧩 Short Back 独立模块化: 最左侧 Short Back (Fold-in) 已从主 Back 逻辑中拆出,拥有独立渲染入口与模式解析,不再只是封底紧凑分支的附属品。
  7. 🗂️ Short Back 独立显示模式: 支持在 档案信息 / 紧凑曲目 之间独立切换左侧折页内容,并且不会影响主封底对拖拽后曲目顺序的真实渲染。

v1.5.1 Update: The Spine Fail-Safe Release!

  1. 🧭 脊部独立排版引擎: Spine 不再只靠单行缩字号硬塞,而是会在 完整标题单行 -> 完整标题双行 -> 脊部短标题 -> 自动短标题 -> 截短兜底 之间自动切换,极端长标题也不会再压住上下信息。
  2. ✂️ 硬裁切 + 真实字体测量: 脊部区域现在有独立 clipPath,并改为基于浏览器真实字体栈测量,fallback font、letter-spacing 与中英混排的误差显著降低。
  3. 🏷️ 新增脊部短标题: 右侧面板新增可选的“脊部短标题”字段,并实时显示当前脊部策略,便于手动控制磁带 spine 的最终文案。
  4. 📦 发布链路补全: 项目版本升级到 1.5.1,补齐了 macOS arm64 .dmg 与 Windows x86 NSIS exe 的构建与发布流程。

v1.5.0 Update: The Typography & Geometry Overhaul!

  1. ⚛️ 物理级文本引擎: 深度集成 @chenglou/pretext 引擎,消除全线 Magic Numbers(硬编码系数),彻底解决跨字体溢出边界与错位问题。
  2. 🏛️ 多重防重叠建筑学: 重写了封面 (Front)、侧脊 (Spine) 和背部内页 (Back) 的碰撞测算机制。不论混排了多长的古典音乐乐章标题与大段标语文案,它都能严格坚守 1181x1748 分辨率安全区,智能等比缩放、严丝合缝绝不碾压。
  3. 🇨🇭 极简工业美学: 重构了曲目表与制作名单的视觉层级,引入微型眉批距,抹除多余括号,并启用“主题色动态真圆形 (Accent Circle)” A/B 侧边栏徽章,其随字号同步等比膨胀。
  4. 🪶 手工排版与硬换行: 底层排版支持绝对的“段落隔离隔离检测”。在 Slogan、Equipment 等框内敲击回车,即可在防撞引擎的保驾护航下,执行原生级的绝对硬换行 (Hard Break)。
  5. 🇨🇳 国产双黑体独立架构: 彻底本地化脱网运行。深度植入 17MB 的 思源黑体 (Noto Sans SC) 与 8.5MB 的 阿里普惠体 3.0,达成极简双无衬线架构;顶部导航栏全面改写为极具设计质感的 「纯中文情绪化主理名」 (现代、胶片、手记、骇客、素体、重工),秒时零延迟切换。 v1.3.3 Update: The Reversible Layout (双拼颠倒双封面)! 这是一个极具工业感的复古设计方案:Front 面板精确五五分,上半部正向显示 Cover A,下半部倒置 180 度显示 Cover B,专为 "Flip-to-Play" 的实体交互体验设计。同时实现了"虚空填充"逻辑,完美解决正方形封面在长方形区域的宽高比冲突。

v1.3.2 Update: Spine Optimization (脊部终极优化)! 应广大收藏家需求,新增 "翻转脊部" 切换开关。您可以自由决定侧脊文字是从上往下读 (Top-Down, 默认) 还是从下往上读 (Bottom-Up)。同时重构了脊部渲染引擎,让 ID 与艺术家的位置布局稳如泰山。

v1.3.0 Update: AI Prompt Engineering Refined (画风指令升级)! 针对 "AI 生图提示词" 进行了深度优化。现在您可以获得更精准的 插画风格 指令(水彩、90年代杂志、手绘日记、平面设计),彻底告别"照片感",确保生成的封面更具艺术性和落地感。同时修复了部分 UI 细节。

v1.2.9 Update: Smart Deep Clean (智能重置)! "新建项目"功能变得更聪明了,它能深度清理专辑数据(包括 MusicBrainz 抓取的演职员表),但会贴心地保留您的录音设备和音源设置,无需重复输入。目录编号默认留空。✨ 全新图标: 我们还换上了全新的应用程序 Logo,焕然一新!

v1.2.8 Update: MusicBrainz 深度集成! 彻底重构了古典音乐解析逻辑,支持识别 Work 实体并自动归类乐章;同时引入专业演职员表(Producer/Engineer),自动填充 Tech Specs 区域。

8b254f0c713bc65243d0e84f8937a37e 03c733c8c5115a3679067701c5fe142f

J-Card Genesis 是一款专为磁带收藏家和 DIY 爱好者设计的桌面应用程序。它结合了现代 AI 技术,帮助你轻松制作出专业、美观的实体磁带封面(J-Card / U-Card),并支持从搜索、导入、排版到导出的完整桌面工作流。

当前版本状态

已实现项目保存、打开、另存为和自动草稿恢复。.jcard 文件包含曲目、双封面、排版、配色及录音信息,不包含 API Key;重新打开会保留原录音日期。新建、打开其他作品或关闭窗口前会提醒未保存修改。

桌面版在实际写入成功后标记已保存;浏览器开发模式通过下载交付文件,并继续保留草稿。使用方法见 HELP.md。当前版本为 2.1.0,新增 AI 文字样式与成品视觉复核。安装包见 v2.1.0 版本页面。

作品格式为 版本 3,保存完整色板、标题尺寸及纸纹状态。封面设计统一采用一套排版规则,不再提供排版版本切换。本次为跨版本更新,不支持版本 1、2 作品文件,也不提供旧作品自动转换。

详细实现与验证范围见 维护文档 和 审美改进实施记录。页面中的历史截图展示旧版界面;当前字体、配色与布局入口位于右侧“外观 → 封面设计”。

✨ 主要功能 (Key Features)

  • 字体与排版系统 (Typography System):
    • 七套字体搭配:现代、胶片、手记、骇客、素体、编辑、重工。随包字体可离线加载,无需在线字体镜像。
    • 编辑主题:Noto Serif SC 中英文衬线标题,搭配 Inter / Noto Sans SC 黑体正文。
    • 手记主题:中文使用龙藏体,英文标题使用 Rock Salt、正文使用 Shadows Into Light,统一手写气质。
    • 稳定文字层级:标题支持克制、均衡、醒目三档,结合真实字高和混排测量自适应换行;艺术家与标语保持独立层级。
    • 三种正面布局:经典居中、编辑左齐、双面颠倒。编辑左齐采用图片留边,文字共享左边线。
    • 设计入口:右侧“外观 → 封面设计”提供字体、配色和布局小样,切换“外观”页签即可进入。

MusicBrainz 搜索与核对导入

以下为自 1.6.1 起已有的功能,2.0.1 在此基础上增加上述视觉辅助流程。

  • 逐步核对:搜索专辑 → 选择发行版本 → 核对署名、日期、封面和分面 → 确认导入。搜索和发行列表支持加载更多,不自动代选版本。
  • 完整署名:保留合作署名及连接词;演奏者、指挥、作曲者按明确关系记录,成品署名可选完整署名或明确演奏者。制作人、录音及混音师继续用于录音资料区域。
  • 版本与来源:分别保存首发日期与所选版本日期。封面优先对应所选版本,回退到专辑组会提示;来源、原碟号和原曲号随 .jcard 保存。
  • 作品结构:沿明确的作品父子关系整理乐章,保留多个作品和作曲者。关系缺失时保留原曲名,不能仅因存在 Work 关系把爵士判为古典;内容模式可手动选择。
  • 分面与失败保护:按每面容量、时长和连续作品边界建议分面,不重排曲目。失败、取消或过期请求不改变当前作品;成功导入前分别确认主封面和第二封面的处理。
  • 智能 AI 驱动:
    • 固定使用 DeepSeek deepseek-flash 完成曲目文本导入、标题建议、标语、画面描述生成与图片理解;阿里云和火山引擎仅用于可选生图。
    • 颗粒度 AI 控制:
      • ✨ 文案生成: 独立的 "魔法棒" 按钮,一键生成 1-3 句俳句式短诗文案 (拒绝营销词)。
      • 🎨 提示词生成: “AI 生成图片”折叠区内的“帮我写描述”按钮,自动分析曲风并从 4 种特定画风 (水彩/杂志/日记/平面) 中锁定一种,生成可落地的绘画指令。
    • 集成 通义万相 (Wanx),一键生成高质量、富有艺术感的封面图。
  • 主题系统 (Theme System):
    • AI 完整配色:直接看图设计四个面板与各类文字的颜色,按实际底色检查可读性,支持整套锁定与保存。
    • 完整色板:暖纸档案、暖暗唱片、冷灰编辑,统一设置背景、主文字、辅助文字、分隔线与强调色。
    • 可控微调:强调色可手动修改或从封面推荐,预设色板不会因上传图片自动被覆盖;小文字强调色会调整到可读的深浅。
    • 轻微纸纹:封面排版默认关闭,可单独开启。
    • 保留背景模式:深色、浅色、封面背景、图片取色仍可选择。
    • 🌑 Dark: 经典的深色模式,专业冷静。
    • ☀️ Light: 纯白背景,极简主义,适合白纸打印。
    • 🖼️ Cover: 沉浸式封面背景,自动应用高斯模糊滤镜。
    • 🎨 Color: 智能取色,自动提取封面主色调作为背景,并智能反转文字颜色。
  • 曲目编辑与导入:
    • 支持手动编辑曲目标题、艺术家、时长和备注。
    • 支持 Side A / Side B 各自增删曲目,并自动重算面时长。
    • 非古典模式支持通过拖拽把手进行 同面重排 与 A/B 面跨侧移动。
    • 支持从 MusicBrainz 数据库直接搜索并填充专辑信息。
    • 支持 智能文本粘贴:可直接粘贴 Spotify、网易云音乐等平台的曲目文本,AI 自动解析提取。
  • 背面智能密度控制 (Back Density Control):
    • Print-First Header: 主封底现在以统一的 SIDE A / SIDE B 分区标题驱动阅读节奏,side 总时长与标题形成完整 header,而不是继续作为远端弱提示。
    • 古典模式自动折叠: 当作品分段过多时,背面会在完整分曲、节选分曲、作品摘要与仅作品名之间自动降级,避免文字页溢出。
    • 非古典分面编号: STANDARD / COMPILATION 模式下,SIDE A / SIDE B 的曲目编号各自从 01 开始,不再延续全专辑的一贯制编号。
    • 非古典 Note-Aware 策略: 在 STANDARD / COMPILATION 模式下,系统优先保留曲名与备注,再根据空间压力逐步隐藏 artist / duration;在本轮打印优先调优后,note / 单曲尾部时长 会更早退让,以换取更可靠的成品可读性。
    • 真实字体测量驱动: 所有降级决策基于实际字体折行与可用高度计算,而不是单纯按条目数粗暴裁剪。
  • 不仅仅是 J-Card:
    • 支持 4 折页布局 (U-Card),提供比传统 J-Card 更多的展示空间,完美包裹磁带盒。
    • 提供 标准、古典、合辑 三种排版模式。
    • 最左侧 Short Back (Fold-in) 现已支持独立模式选择,可在 档案信息 / 紧凑曲目 之间切换;其中 紧凑曲目 会根据标题长度与空间压力动态调整每面显示数量,并在高密度时接受“少显示 1 首、换取更大字号”的 print-first 取舍。
  • 专业打印适配:
    • 专为 Canon SELPHY CP1500 等 6 寸 (4R, 100x148mm) 照片打印机优化。
    • 支持导出 SVG (矢量) 和 PNG (高清) 格式。
    • 本轮对 Back / Short Back / Spine / Reversible Front Markers 做了小字下限抬升,整体更偏向“印出来能读”而不是“信息尽量全塞满”。
  • 档案级元数据 (Archival Metadata):
    • 支持记录 音源 (Source)、录音设备 (Equipment) 和 录制日期,并持久化保存。
  • 稳定性与安全性改进:
    • Electron 已启用 contextIsolation 并关闭 nodeIntegration。
    • DeepSeek 文本与图片理解共用一个 API Key;仅启用生图时配置对应平台密钥。桌面版使用系统加密存储,旧设置自动迁移为当前结构。
    • 复杂 SVG 预览采用输入防抖,减少频繁重绘带来的卡顿。

🚀 下载与安装 (Installation)

本地开发可用 npm install、npm run dev 启动;已有开发服务升级版本后需重启,页面版本显示才会刷新。

安装包从 v2.1.0 版本页面 下载:

平台 安装包
macOS Apple Silicon / ARM64 TapeFolio-2.1.0-arm64-mac.dmg
Windows x86-64 / x64 TapeFolio Setup 2.1.0-x64.exe
  • macOS:打开 DMG,将应用拖入 Applications;采用本地临时签名(ad-hoc),未经 Apple 公证。
  • Windows:运行 NSIS 安装程序;应用架构为 x64,安装包未签名。
  • 每个安装包附同名 .sha256 校验文件及对应平台构建记录,可核对版本、来源提交与校验摘要。GitHub 会将附件名称中的空格替换为点;校验文件记录打包时原名,可直接比较 SHA-256 值,或将安装包恢复为校验文件中的名称后使用文件校验命令。
  • 本版本交付上述两个平台,不含 macOS Intel、Windows ARM / x86 或 Linux 安装包。构建验证不替代实机安装和实体打印测试。

本地验证范围

  • 当前源码 107 项自动测试通过,覆盖作品保存恢复、MusicBrainz、AI 配置与协议、完整配色、文字样式、视觉复核及共享修订预算。
  • 本轮智能搭配浏览器回归通过:成品图回传、失败拼图、视觉淘汰、复核中取消、保存与撤销、PNG 一致性;页面错误为零。此前封面补足、MusicBrainz 导入、设置及桌面桥接已有隔离验证,未在本轮重复执行。视觉模型响应均为模拟数据。
  • 历史排版验证:17 组样张检查通过,覆盖中英混排、长标题、密集曲目、古典、合辑、双封面、七套字体和超长内容报警。
  • 本轮生产构建与字体资源检查通过;此前七套字体已通过嵌入字体后的 SVG → PNG 解码检查。
  • 1.6.0 安装包中的共享模块、设计配置、前端资源和字体已与当时构建核对;DMG 内的 arm64 架构、版本及签名已验证。
  • 尚未完成实体打印、Windows / Linux 运行,以及复杂真实专辑摄影素材的系统验收。当前样张使用本地绘制的排版测试素材。

📖 使用指南 (User Guide)

配置 AI 服务(使用 AI 功能时需要)

AI 文字与图片理解统一使用推荐的 DeepSeek-V4.1-Flash;只有生成新封面图片时,才需要额外启用阿里云百炼或火山方舟。手动编辑、作品保存和打印不要求密钥。

  1. 点击右上角 AI 服务设置,填写 DeepSeek API Key。模型固定为官方 API ID deepseek-flash,无需选择服务商或型号。
  2. 如需 AI 生成封面图片,打开 AI 生成封面图片,选择阿里云百炼或火山引擎并填写对应普通 API Key;不生图时保持关闭即可。
  3. 点击 保存设置。关闭未保存的设置会取消本次编辑。
  4. 桌面版使用系统加密存储;浏览器版使用本地存储,不具备系统加密保护。密钥不会写入作品或草稿。

项目会把旧设置收口到当前的简化结构,不要求用户处理历史模型选择。MiniMax 已移除;原有阿里云或火山引擎密钥只作为可选生图凭据保留,不会自动开启生图。

订阅包 / code 包说明(核对日期:2026-09-08):本版本实际接入的是普通 API,按实际调用计费;不自动切换到订阅通道。保存成功仅表示设置已保存,不代表密钥、余额或套餐已验证。

服务商 普通 API(本版本已接入) 订阅 / Coding Plan(本版本未接入)
阿里云百炼 可选的万相封面图片生成 Coding Plan 使用专用密钥和地址,面向编程工具;图片理解不等于图片生成额度。
火山引擎 可选的 Seedream 封面图片生成 Coding Plan 面向 AI 编程工具,不能当作本应用通用 API 额度。
DeepSeek 默认使用 DeepSeek-V4.1-Flash 完成全部文字生成与图片理解 本应用使用开放平台 API 余额,网页或 App 使用权益不代替 API 额度。

网页或 App 会员不自动等于开放平台 API 额度。具体价格、模型权限和权益请查看 阿里云官方说明、火山引擎官方说明、DeepSeek 官方说明。

2. 制作流程

  1. 输入信息:
    • 文本导入 (推荐): 点击 "粘贴文本",粘贴任意格式的曲目列表(如网易云/Spotify 歌单文本),AI 会自动识别。
    • MusicBrainz: 输入专辑名及可选艺术家,选择发行版本,核对预览后确认导入。
    • 手动输入: 在右侧面板修改专辑信息、元数据与单曲字段;支持直接新增或删除曲目。
    • 非古典拖拽整理: 在 标准 / 合辑 模式下,可直接拖拽右侧曲目卡片左侧把手,快速调整同面曲序,或在 A/B 面之间移动曲目。
  2. 单项 AI 辅助:
    • 标题建议: 点击专辑标题旁的魔法棒,按曲目生成标题。
    • Slogan: 点击"封面标语"旁的 ✨ 按钮,生成私密感短诗。
    • Prompt: 点击"AI 图片提示词"旁的按钮,生成适配曲风的绘画指令。
  3. 生成封面:
    • 点击 "生成封面",AI 将根据提示词生成艺术封面(约需30-60秒)。
    • 或点击 "上传 (Upload)" 使用本地图片(自动零裁剪填充)。
  4. 调整设计与布局:
    • 在右侧 外观 → 封面设计 选择字体搭配、完整色板与强调色。
    • 选择 经典居中 / 编辑左齐 / 双面颠倒;单封面封面排版支持三档标题尺寸与轻微纸纹开关。
    • 切换 标准 / 古典 / 合辑 模式。
    • 古典模式 特性:自动归类乐章,背面展示详细录音设备与时间信息 (Tech Specs)。
    • “外观 → 脊背与内折页 → 内折页内容”可独立控制最左侧折页显示内容,不会改写主封底的曲序来源。
    • 古典模式 目前不支持拖拽排序;标准 / 合辑 模式支持拖拽重排,并会即时联动背面排版与面时长。
  5. 保存与导出:
    • 使用 保存作品 / 另存为 保留可继续编辑的 .jcard 文件;SVG、PNG 是成品输出。
    • 点击 导出 SVG 或 导出 PNG。导出会等待字体加载并嵌入当前主题所需的随包字体;含中文字体的 SVG 文件可能较大。
    • 封面排版出现正面或背面溢出提示时,需调整内容后再导出。紧凑显示可能省略部分辅助信息,完整内容仍保存在作品文件中。

3. 功能详解

  • Toolbar: “作品 → 新建作品”可重置项目(保留 API Key、录音设备与音源设置)。切换“外观”页签调整设计,背景模式在“颜色与背景”内切换。
  • Spine Layout:
    • Note Upper: 脊部顶部备注(常填 STEREO / MONO、年份、录音日期等)。
    • Note Lower: 脊部底部备注(常填版权、版本信息或自定义说明)。
    • 双轨底部元信息: 当 artist 与 Note Lower 同时存在时,系统会将两者放入平行双轨中,artist 保持主轨居中,Note Lower 退到外侧副轨,避免底部重叠。
    • 输入上限: Note Lower 建议控制在 12 字内,系统会在输入层限制为最多 16 个可见字符。
    • 支持“极简脊部”、“强制大写”与可选的脊部短标题兜底策略。
    • 为避免打印时出现过细过小的脊部说明字,系统在空间紧张时会更早进入 no-notes / artist-only 这类保守模式。
  • Track Ordering:
    • 非古典模式下,曲目卡片左侧新增拖拽把手。
    • 支持同侧排序与跨 SIDE A / SIDE B 移动。
    • 拖拽后会自动重算 SIDE A / SIDE B 总时长,并实时刷新预览顺序。
  • Back Overflow Handling:
    • 古典模式会自动折叠作品层级,避免多分曲作品挤爆背面。
    • 非古典模式会优先保留 标题 + note,再视密度隐藏 artist / duration;在打印优先策略下,局部辅助信息会比以前更早退让。
    • 长作品名的古典模式在极端密度下可能更早从完整分曲回退到摘要级别,但仍保持“作品结构优先”的阅读逻辑。
  • Data Persistence: 录音设备 (Equipment) 和 音源 (Media Source) 会自动保存,方便制作系列磁带。

❓ 常见问题 (FAQ)

Q: 为什么生成图片很慢? A: 高清图像模型 (Wanx 2.5) 计算量大,通常需要 30-60 秒,请耐心等待。

Q: 生成的图片不满意? A: 可手动修改 "AI 图片提示词" 框中的描述(如增加“赛博朋克”等关键词),再点击生成。

Q: MusicBrainz 搜不到? A: 建议直接 Google 搜索专辑曲目列表,复制文本后使用软件的 "粘贴文本" 功能导入,这是最高效的方式。

🖨️ 打印与规格说明

导出画布为 1748 x 1181 px。按 300 DPI 打印时,对应约 148 x 100 mm,适合 Canon SELPHY CP1500 等 6 寸 / 4R 横向照片打印流程。

右侧 外观 → 封面设计 → 盒子脊宽 可选择两种尺寸,适用于空白录音带盒的封面打印:

选项 脊宽 左侧内折页宽度
标准 · 12.7 mm(默认) 150 px / 12.7 mm 200 px / 约 16.93 mm
窄脊 · 10.7 mm 约 126.378 px / 10.7 mm 约 223.622 px / 18.93 mm

选择窄脊后,省下的 2 mm 全部加入左侧内折页,脊背与内折页按新宽度自动排版,折线同步调整。总画布、通高、正面(780 px)及右侧曲目页(618 px)保持不变,不会缩放整张图。选择随作品及草稿保存,预览、SVG 和 PNG 导出使用同一尺寸。已有作品未设置脊宽时使用标准尺寸;长标题可能自动缩小、换行或使用短标题,请核对预览。

此选项自 v2.1.0 起提供;此前发布的安装包需更新后才能使用。

打印时请选择 适配尺寸,不要选择 充满,避免二次放大后裁掉边缘或折线。首次使用某种盒型时,建议试印并核对实际折线间距。

完整 panel 尺寸、折线位置和打印注意事项请见 HELP.md。

🛠️ 开发与构建 (Development)

功能增加建议、优先级、设计边界与验收规划见 维护与功能规划。设计方案及已完成批次见 审美改进实施记录。未实施的维护事项仍为待确认建议。

# 克隆仓库
git clone https://github.com/epochaudio/J-Card-Generator.git
cd J-Card-Generator
npm ci

# 启动开发
npm run electron:dev

# 运行自动测试
npm test

# 构建前端(包含字体资源校验)
npm run build

# 本地一次构建前端,生成并验证 Mac ARM + Windows x64(需在 macOS 运行)
npm run electron:build

# 单独构建 macOS arm64 DMG
npm run electron:build:mac-arm64:dmg

# 构建 Windows x86-64(x64)NSIS 安装包
npm run electron:build:win-x64

构建说明

  • 使用 Node.js 22.12+(建议 24);macOS ARM64 产物要求 macOS 13+,Windows 仅 x64。
  • 大文件摘要通过分块读取计算;构建记录增加 timingsSeconds 与 runtimes,核对打包后的实际运行时版本。
  • 三个打包入口统一执行:环境及版本检查 → 自动测试 → 字体检查与前端构建 → 平台打包 → 安装包验证 → 交付。
  • 首次准备环境使用 npm ci。脚本核对已安装的直接依赖与锁文件;版本不符时停止,避免使用不同依赖生成同版本安装包。
  • 新产物进入 dist_electron_builds/<版本>-<目标>-<时间>-<唯一编号>/,包含安装包、同名 .sha256 和 build-record.json。旧本地产物保留在原目录;公开版本以 Releases 附件为准。
  • 每次构建先写临时目录,所有检查通过后才整体移入交付目录,不覆盖旧包。失败时清理本次临时文件;若磁盘映像卸载失败,会保留现场并提示处理。
  • 构建记录包含源码提交、未提交状态及文件摘要、工具版本、产物摘要和检查结果。本地允许未提交修改;构建期间修改源码会使本次交付失败。CI 要求干净工作区,且标签、源码提交与应用版本一致。
  • Mac 验证 DMG 完整性、只读挂载后的版本、arm64 架构、签名与包内资源;Windows 验证 NSIS 完整性、解出的资源和 x64 架构。此类检查不替代实机安装测试。
  • macOS 仍使用临时签名,Windows 仍未签名。双平台入口仅支持 macOS;Windows 主机使用单独的 Windows 入口。
  • 同一工作区只允许一次打包。如进程被强制结束遗留 dist_electron_builds/.build-lock,确认没有构建进程后才手动移除该锁目录。

构建与公开发布分离

  1. 提交待发布源码及对应的 docs/releases/<版本>.md,创建与版本一致的标签。
  2. 手动运行 Build verified desktop installers,指定该标签。两个平台分别使用对应系统构建,完成校验后仅保存 Actions 文件,保留 30 天,不创建或公开 Release。
  3. 需要公开时,另行手动运行 Publish verified desktop installers,填写同一标签、成功构建的运行 ID,并输入 PUBLISH。
  4. 发布流程核对构建来源、源码摘要和本地产物,再上传至草稿,重新下载并核对摘要后才公开。已有公开版本或包含文件的草稿会被拒绝覆盖;部分上传失败会保留草稿,需检查处理后再试。

构建和发布均通过 GitHub 手动工作流执行;仅推送源码不会自动公开安装包。版本说明来自对应文档,不使用固定版本文案。

可重复的设计验收

npm run dev -- --host 127.0.0.1 --port 5187

访问 设计验收页,选择样张或运行全部检查;“检查全部字体导出”会核对七套字体的导出链路。该页面仅用于开发验收,不访问账户或 AI 服务,也不进入正式应用构建。

新增 Noto Serif SC 的来源、文件摘要及授权说明见 字体来源记录 和 OFL 1.1 授权文本。该字体按自身授权分发;使用它的 SVG 导出包含授权元数据。

版权声明与使用许可(正式版)

© 2025 门耳朵。 本软件为开源软件,源代码与相关资源遵循本声明所述的使用许可条款。若项目另附 LICENSE 文件且与本声明存在差异,以 LICENSE 为准;本声明作为补充说明同时适用。

1. 许可范围(个人免费使用)

在遵守本声明条款的前提下,允许任何个人用户免费下载、安装、使用、学习与研究本软件,用于非商业目的的个人使用。

2. 禁止商业化用途(明确禁止)

未经著作权人/权利人书面授权,任何组织或个人不得以任何形式将本软件用于商业目的,包括但不限于:

  1. 在淘宝、闲鱼、拼多多等平台或任何渠道售卖软件/安装包/激活服务;
  2. 以本软件提供有偿服务,例如:有偿打印、代处理、代制作、收费出图/出片等;
  3. 将本软件打包为商品、付费下载、会员权益、课程赠品或“资源包”进行变相收费;
  4. 以广告、引流、赞助、导流分成等方式对软件使用进行直接或间接变现;
  5. 将本软件用于企业/门店/工作室等经营场景,或作为对外收费服务链条的一部分。

如需商业授权(含合作、定制、集成、二次分发、渠道上架等),请联系授权方获取书面许可。

3. 修改、二次开发与再发布(开源友好)

允许对本软件进行修改、二次开发与再发布(包括源代码与编译后的二进制发布),但必须同时满足以下条件:

  1. 不得用于任何商业化用途(含直接/间接收费与变相变现);
  2. 再发布时必须完整保留本版权声明与使用许可(以及原作者署名信息与仓库信息,如有);
  3. 若发布修改版/衍生版,建议在显著位置标注“已修改”并说明主要改动,且不得暗示获得原作者背书或官方认证。

4. 非商业转载/镜像分发(允许,但有条件)

允许任何个人或组织在非商业目的下转载、镜像或分享本软件安装包及相关文件,但必须同时满足以下条件:

  1. 必须完整保留本版权声明与使用许可,不得删改、遮挡或拆分;
  2. 转载/分发过程及下载入口不得收取任何费用,不得设置付费门槛或捆绑收费;
  3. 不得将转载/分发作为引流或变现手段(包括但不限于:会员专享、打赏解锁、付费社群下载、广告分成导流等);
  4. 不得植入广告、恶意代码或进行其他损害用户权益的修改。

5. 免责声明

本软件按“现状”提供,不提供任何明示或默示担保。作者不对因使用或无法使用本软件导致的任何直接或间接损失承担责任。用户应自行评估风险并承担使用后果。

6. 违约处理

如发现违反本声明的行为,权利人有权要求立即停止侵权、下架相关内容,并保留追究法律责任及索赔的权利。


Made with ❤️ for Cassette Culture.

image ScreenShot_2025-12-14_202948_848 ScreenShot_2025-12-14_203002_303 ScreenShot_2025-12-14_203022_939