lili 86df18c4d8
Some checks failed
contract-gates / contract-gates (push) Has been cancelled
docs-gate / docs-gate (push) Has been cancelled
feat(art): 山海风格版批次一——42 样张+产线三件真跑,创始人眼验拍锁锚开批产
矿彩国风锚 r1 定稿:《山海行纪》30 帧(hero×6/狰梼杌穷奇×15/法器×3/UI×2/场景/兽潮/Boss/拾取)+
《山海巡异录》12 张(卡面 3 稀有度×2 职业/敌兽 2/场景 2/结算 2);同名兽狰两款同谱面可辨=
「一条美术管线供两款」首检成立;clean-room 五条全程生效(prompt 零现代作品专名、兽形古籍演绎、
参考图仅自产、全量留痕 manifest.jsonl 含 12 张淘汰逐张原因)。
产线三件真跑演示:色键抠图+除杂(角落印章自动清)/图集 2 页 png 4006KB→webp 599KB(实测修正:
free-tex-packer 不直出 webp 补 PIL 转码)/字体子集 780 字→176KB woff2(LXGW OFL)。
成本良率实测:57 呼 ¥1.44(官方口径)/¥1.88(实测口径),首过率 34/42=81%,重摇≤4 轮填满;
工艺发现 7 条入批次 README(兽名不入 prompt/「鲛」prime 龙形/subject-ref 证伪/UI 伪字走程序排字等)。
创始人裁定(2026-07-07):锁锚开批产——两款按锚 r1 进 M3/M4 资产批产,主角跨帧漂移用
「定妆帧作参考图+关键姿态逐帧」工艺压,不换通道。台账:作战清单 M2 波全记账+_index 三行 M2 已交+设定档裁定戳。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-06 19:20:47 -07:00

31 lines
1.5 KiB
Bash
Executable File

#!/bin/bash
# 产线件③ 中文字体子集:文案源扫字 → pyftsubset 出 woff2 首屏最小集
# 用法: ./font-subset.sh <字体.ttf> <输出目录> <文案源文件...>
# 实现:扫描全部文案源提取去重字集(含 ASCII 可见字符兜底),pyftsubset --flavor=woff2(brotli)。
# 授权口径:demo 用霞鹜文楷(SIL OFL,允许子集化/嵌入分发/商用免费),符合材料档 §6 推荐链。
set -euo pipefail
FONT="$1"; OUT="$2"; shift 2
mkdir -p "$OUT"
CHARS="$OUT/charset.txt"
# 扫字:全部文案源合并 → 去重出用字集;ASCII 可见段兜底(数字/标点/拉丁)
python3 - "$CHARS" "$@" <<'PY'
import sys
out, srcs = sys.argv[1], sys.argv[2:]
chars = set()
for p in srcs:
with open(p, encoding='utf-8') as f:
chars.update(f.read())
chars.update(chr(c) for c in range(0x20, 0x7F)) # ASCII 兜底
chars = {c for c in chars if c.isprintable() and not c.isspace()} | {' '}
with open(out, 'w', encoding='utf-8') as f:
f.write(''.join(sorted(chars)))
print(f'字集 {len(chars)} 字 ← {len(srcs)} 个文案源')
PY
BASE=$(basename "$FONT"); BASE="${BASE%.*}"
WOFF2="$OUT/${BASE}-subset.woff2"
pyftsubset "$FONT" --text-file="$CHARS" --flavor=woff2 \
--layout-features='*' --no-hinting --desubroutinize \
--output-file="$WOFF2"
SRC_KB=$(du -k "$FONT" | cut -f1); OUT_KB=$(du -k "$WOFF2" | cut -f1)
echo "子集完成:$FONT ${SRC_KB}KB → $WOFF2 ${OUT_KB}KB(字集 $(python3 -c "print(len(open('$CHARS',encoding='utf-8').read()))") 字)"