diff --git a/docs-design/山海风格版-批次一/README.md b/docs-design/山海风格版-批次一/README.md new file mode 100644 index 00000000..ccfc55d9 --- /dev/null +++ b/docs-design/山海风格版-批次一/README.md @@ -0,0 +1,48 @@ +# 山海风格版 · 批次一(2026-07-06) + +《山海行纪》30 帧 + 《山海巡异录》12 张,一条矿彩国风锚两组参数,mmx image-01 产出。依据:`docs/agent-specs/2026-07-06-山海宇宙设定与美术音频管线-选型材料.md` §1/§4/§5/§8(创始人五拍已落)。 + +## 目录 + +``` +anchor-pack.json 风格锚包 v1 + 工艺修订 r1(修订依据见其 noteR1;色板与锚概念未动) +兽谱首批.md 兽谱四条(狰/梼杌/穷奇/涸泽鲛),两款同名兽同谱面的单源 +shots.json 镜头单 42 条(行纪 30 + 巡异录 12,seed 固定) +manifest.jsonl 逐次外呼台账(prompt/参数/耗时/成败/淘汰原因/收编),追加式不可变 +images/{xingji,xunyilu}/ 42 张定稿样张 +rejects/ 12 张淘汰版(留证,原因在 manifest) +拼板图-行纪30帧.png / 拼板图-巡异录12张.png / 拼板图-产线演示.png 眼验入口 +良率与成本-批次一.md 一页数 +scripts/ 批跑与产线脚本(见下) +demo/{keyed,atlas,font}/ 产线三件真实演示产物 +``` + +## 复跑命令(均在本目录执行) + +```bash +# 生图批跑:全量(跳过已存在,可断点续跑)/ 单款 / 单镜头重摇 +node scripts/gen-batch.mjs +node scripts/gen-batch.mjs --game xingji +node scripts/gen-batch.mjs --only xj-hero-01 --seed-bump 100000 --force --subject-extra ",定向补词" + +# 产线三件(输入均为本批真实样张) +python3 scripts/key-out.py images/xingji/xj-zheng-01.jpg --out demo/keyed # 色键抠图+连通域除杂(印章/尘点自动清) +node scripts/atlas-pack.mjs demo/keyed demo/atlas shanhai-batch1 # free-tex-packer 打包 + webp q80 转码 + Phaser3 JSON +bash scripts/font-subset.sh demo/font 兽谱首批.md shots.json anchor-pack.json # pyftsubset → woff2 + +# 拼板图 +python3 scripts/contact-sheet.py shots.json images xingji 拼板图-行纪30帧.png 6 "标题" +``` + +依赖:mmx CLI(已配 key)、node 22、python3 + pip --user(pillow/numpy/fonttools/brotli)、free-tex-packer-cli(npm -g); +中文字体源 = 霞鹜文楷 Regular(SIL OFL,24MB,在会话 scratchpad `deps/`,复跑时任一 OFL 中文字体均可)。 + +## 本批坐实的工艺事实(批产前必读,待收口蒸馏回 `.agents/`) + +1. **image-01 无负向参数**:负向要求(非照片/无文字)必须烤进正向词,锚包 r1 已固化。 +2. **perGame 词拆 sprite/bleed 两组**:背景指令(暗色岩底/青绿铺底)只进 bleed,否则与 sprite 净底后缀打架(首图实证)。 +3. **印章/题跋是国风生图系统性伴生物**:角落级(首过约 1/4 张)由产线除杂自动清,只有构图级(整列题跋)才值得重摇;后缀写明「无印章落款题字」可显著减少。 +4. **兽名不进 prompt**:「鲛」字强 prime 龙形且否定词无效(连废 3 摇),兽形一律用形态语言描述(r4 一次锁定)。 +5. **subject-ref(character)已证伪**:把成图整体拉回照片写实,不能用于绘画风格的身份锁定;跨帧身份一致性仍是 A 档真实短板(拼板图可见),为升档 B 的观察判据。 +6. **UI 类生图必带伪字**:批产走「生图出框件与底纹 + 程序排字」,与卡牌书程序框层同路。 +7. **free-tex-packer-core 不直出 webp**(材料档 §5 设想有偏):pack 出 png 后补 PIL 转码,包体账仍按 webp 计。 diff --git a/docs-design/山海风格版-批次一/anchor-pack.json b/docs-design/山海风格版-批次一/anchor-pack.json new file mode 100644 index 00000000..abb776f9 --- /dev/null +++ b/docs-design/山海风格版-批次一/anchor-pack.json @@ -0,0 +1,26 @@ +{ + "version": "v1-锁定(2026-07-06 创始人拍:矿彩国风统一锚)+ 工艺修订 r1(2026-07-06 批次一执行席)", + "note": "styleWords 单源(升级自 littlejs-game-dev §6 纪律);两款共用 shared,各取 per-game 参数;参考图槽位待本批样张眼验锁定后回填(只许自产图)。", + "noteR1": "工艺修订 r1 依据首图探针实证(xj-hero-01 首版走照片写实、背景被光效纹样侵占,见 rejects/ 与 manifest.jsonl):image-01 无负向参数,负向要求必须烤进正向词——styleWords 补『平面化手绘笔触/二维装饰绘画/绝非照片,非写实』;perGame 原单串混入背景指令(暗色岩底/青绿山水铺底)与 sprite 净底后缀打架,拆成 sprite/bleed 两组;sprite 后缀加强为『主体之外空无一物』并加特效收敛条款;新增 promptPrefix 领句定体裁。色板与锚概念(§1 矿彩国风)一字未动。", + "palette": { + "底色": ["石青 #2B5F75", "石绿 #3F7D5A", "暗岩 #1E2420"], + "主体": ["赭石 #9C5B2F", "朱砂 #C3402B", "雌黄 #D9A441"], + "高光": ["描金 #E8C56A"] + }, + "promptPrefix": "中国上古矿彩壁画风格的手绘游戏美术插画:", + "styleWordsShared": "山海经上古图卷矿彩风格,岩彩矿物颜料质感,石青石绿、赭石朱砂雌黄矿物设色,描金勾勒高光,装饰性图腾造型,平面化手绘笔触,二维装饰绘画,上古神秘庄重氛围,绝非照片,非写实,中国传统矿物彩绘工艺,高级美术质感", + "perGame": { + "xingji": { + "sprite": "岩画肌理,粗粝斑驳笔触,高对比强剪影,图腾化造型,原始野性张力", + "bleed": "岩画肌理,粗粝斑驳笔触,暗色岩底,石青石绿设底,高对比强剪影,图腾化兽形,原始野性张力" + }, + "xunyilu": { + "sprite": "工笔卷轴画,金线细密勾勒,工整细腻文气", + "bleed": "工笔卷轴画,册页装帧感,青绿山水铺底,金线细密勾勒,符箓云纹装饰,工整细腻文气" + } + }, + "spriteSuffix": "法术光效微弱且只贴合主体本身,不向背景扩散。干净的纯浅米色空白背景,背景上没有任何图案、纹样、光效、火焰、烟雾、云纹,主体之外空无一物,主体完整全身居中,无裁切,边缘干净利落,画面中不出现任何文字", + "fullBleedSuffix": "满幅构图,画面中不出现任何文字与水印", + "negativeWords": "现代元素/照片写实/3D渲染/日漫风格/欧美卡通/文字字母/水印签名/logo/像素风/模糊低质(image-01 无负向参数,此表已烤进正向 styleWords 与后缀,并供升档 B 通道与人检对照)", + "cleanRoom": "prompt 禁出现任何现代游戏/影视/漫画作品名与其专有名词;兽形只从兽谱首批.md 的古籍文字意象+本锚演绎" +} diff --git a/docs-design/山海风格版-批次一/demo/atlas/shanhai-batch1-0.json b/docs-design/山海风格版-批次一/demo/atlas/shanhai-batch1-0.json new file mode 100644 index 00000000..11124036 --- /dev/null +++ b/docs-design/山海风格版-批次一/demo/atlas/shanhai-batch1-0.json @@ -0,0 +1,103 @@ +{ + "textures": [ + { + "image": "shanhai-batch1-0.webp", + "format": "RGBA8888", + "size": { + "w": 1801, + "h": 1940 + }, + "scale": 1, + "frames": [ + { + "filename": "xj-hero-06", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 849, + "h": 1009 + }, + "spriteSourceSize": { + "x": 8, + "y": 0, + "w": 833, + "h": 1001 + }, + "frame": { + "x": 3, + "y": 3, + "w": 833, + "h": 1001 + } + }, + { + "filename": "xj-weapon-01", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 972, + "h": 980 + }, + "spriteSourceSize": { + "x": 8, + "y": 8, + "w": 956, + "h": 964 + }, + "frame": { + "x": 842, + "y": 3, + "w": 956, + "h": 964 + } + }, + { + "filename": "xj-zheng-01", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 954, + "h": 943 + }, + "spriteSourceSize": { + "x": 8, + "y": 8, + "w": 938, + "h": 927 + }, + "frame": { + "x": 3, + "y": 1010, + "w": 938, + "h": 927 + } + }, + { + "filename": "xj-qiongqi-01", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 849, + "h": 805 + }, + "spriteSourceSize": { + "x": 8, + "y": 8, + "w": 841, + "h": 789 + }, + "frame": { + "x": 947, + "y": 973, + "w": 841, + "h": 789 + } + } + ] + } + ], + "meta": { + "app": "http://github.com/odrick/free-tex-packer-cli", + "version": "0.3.0" + } +} \ No newline at end of file diff --git a/docs-design/山海风格版-批次一/demo/atlas/shanhai-batch1-0.png b/docs-design/山海风格版-批次一/demo/atlas/shanhai-batch1-0.png new file mode 100644 index 00000000..44663e3c Binary files /dev/null and b/docs-design/山海风格版-批次一/demo/atlas/shanhai-batch1-0.png differ diff --git a/docs-design/山海风格版-批次一/demo/atlas/shanhai-batch1-0.webp b/docs-design/山海风格版-批次一/demo/atlas/shanhai-batch1-0.webp new file mode 100644 index 00000000..1b5427e1 Binary files /dev/null and b/docs-design/山海风格版-批次一/demo/atlas/shanhai-batch1-0.webp differ diff --git a/docs-design/山海风格版-批次一/demo/atlas/shanhai-batch1-1.json b/docs-design/山海风格版-批次一/demo/atlas/shanhai-batch1-1.json new file mode 100644 index 00000000..6a371ee0 --- /dev/null +++ b/docs-design/山海风格版-批次一/demo/atlas/shanhai-batch1-1.json @@ -0,0 +1,40 @@ +{ + "textures": [ + { + "image": "shanhai-batch1-1.webp", + "format": "RGBA8888", + "size": { + "w": 923, + "h": 840 + }, + "scale": 1, + "frames": [ + { + "filename": "xj-taowu-01", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 925, + "h": 843 + }, + "spriteSourceSize": { + "x": 0, + "y": 1, + "w": 917, + "h": 834 + }, + "frame": { + "x": 3, + "y": 3, + "w": 917, + "h": 834 + } + } + ] + } + ], + "meta": { + "app": "http://github.com/odrick/free-tex-packer-cli", + "version": "0.3.0" + } +} \ No newline at end of file diff --git a/docs-design/山海风格版-批次一/demo/atlas/shanhai-batch1-1.png b/docs-design/山海风格版-批次一/demo/atlas/shanhai-batch1-1.png new file mode 100644 index 00000000..58080da2 Binary files /dev/null and b/docs-design/山海风格版-批次一/demo/atlas/shanhai-batch1-1.png differ diff --git a/docs-design/山海风格版-批次一/demo/atlas/shanhai-batch1-1.webp b/docs-design/山海风格版-批次一/demo/atlas/shanhai-batch1-1.webp new file mode 100644 index 00000000..4afda025 Binary files /dev/null and b/docs-design/山海风格版-批次一/demo/atlas/shanhai-batch1-1.webp differ diff --git a/docs-design/山海风格版-批次一/demo/atlas/shanhai-batch1.ftpp b/docs-design/山海风格版-批次一/demo/atlas/shanhai-batch1.ftpp new file mode 100644 index 00000000..8242b700 --- /dev/null +++ b/docs-design/山海风格版-批次一/demo/atlas/shanhai-batch1.ftpp @@ -0,0 +1,47 @@ +{ + "savePath": "/Users/lili/Project/games-development-ai/docs-design/山海风格版-批次一/demo/atlas", + "images": [ + { + "name": "xj-hero-06.png", + "path": "/Users/lili/Project/games-development-ai/docs-design/山海风格版-批次一/demo/keyed/xj-hero-06.png" + }, + { + "name": "xj-qiongqi-01.png", + "path": "/Users/lili/Project/games-development-ai/docs-design/山海风格版-批次一/demo/keyed/xj-qiongqi-01.png" + }, + { + "name": "xj-taowu-01.png", + "path": "/Users/lili/Project/games-development-ai/docs-design/山海风格版-批次一/demo/keyed/xj-taowu-01.png" + }, + { + "name": "xj-weapon-01.png", + "path": "/Users/lili/Project/games-development-ai/docs-design/山海风格版-批次一/demo/keyed/xj-weapon-01.png" + }, + { + "name": "xj-zheng-01.png", + "path": "/Users/lili/Project/games-development-ai/docs-design/山海风格版-批次一/demo/keyed/xj-zheng-01.png" + } + ], + "folders": [], + "packOptions": { + "textureName": "shanhai-batch1", + "width": 2048, + "height": 2048, + "fixedSize": false, + "powerOfTwo": false, + "padding": 2, + "extrude": 1, + "allowRotation": false, + "detectIdentical": true, + "allowTrim": true, + "trimMode": "trim", + "alphaThreshold": 0, + "exporter": "Phaser3", + "removeFileExtension": true, + "prependFolderName": false, + "textureFormat": "png", + "base64Export": false, + "scale": 1, + "packer": "MaxRectsPacker" + } +} \ No newline at end of file diff --git a/docs-design/山海风格版-批次一/demo/font/LXGWWenKai-Regular-subset.woff2 b/docs-design/山海风格版-批次一/demo/font/LXGWWenKai-Regular-subset.woff2 new file mode 100644 index 00000000..69991742 Binary files /dev/null and b/docs-design/山海风格版-批次一/demo/font/LXGWWenKai-Regular-subset.woff2 differ diff --git a/docs-design/山海风格版-批次一/demo/font/charset.txt b/docs-design/山海风格版-批次一/demo/font/charset.txt new file mode 100644 index 00000000..937a70c1 --- /dev/null +++ b/docs-design/山海风格版-批次一/demo/font/charset.txt @@ -0,0 +1 @@ + !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~§·—…、。《》「」『』一丈三上下不与专且丘业两中串临为主丽之乘乙习书乱二于云五交产亮人仍从代令仰件任伏优传伤位低体何作使供依侧侵修俯倒像元先光克入全八公共其具兽内册再写冲冷净凉凌凶出击刃分切划列则创利制刻前剑剪割力加动势勒勾包化北区十升半华单占卡印卷厉压原去参双发取受变叠口古句只可号各合同名后向呈周命品啸喜嘶器四回围固国图圈土在地场坚坠型域填增墨壁声处复外多大天央失头奇奔如始姿字宇守安完宙定实宿密对射小尘尺尾层居屑展属山岩岳峦峨崩嵌巍巡工巨已巴带帧席幅干平年并幽庄底度开异式张弧弱强归录形彩影径待律徐御循微徽心必念态性悦悬意愚感戏成或战戟扇手扑打执扩扫扬批抠护披拆拍拖拢拼拾持指挣挥据排掠探接描插搅撑撞收改攻放效敌敛散数整文斑斗料斩新方施旋无既日时昂星映是晕普景晰晶暗曰曲曳更最有服未本术朱朴杌条板构枚枯架染栏样核根格框案档梼检棱概槽模横次欧款正此残段毅母比毛气氛水求沉没沼法泛波泥泽洁流浅浊浮海消涌涸混清渗渲游源满演漫潮火灵灼点烈烟烤烧焉焚焦焰照燃燧爪片版牌牙牛物特犬状独狰猪猬玉环现珠理生用由甲电画界留白的皮盘目直盾眉眼着瞬瞰短石矿砂破砺碎磨神禁离秘积稀稳稿穷空穿突立竖站章笔符第签简箓算箭簇籍米粗粝糊系素红级纪纯纹线组细绎经结绕绘绝统维绿缀编缘缠缩罕美群羽翼考而职肌肤背胜脱腻腾自至色艺苇苍苗草荒莪落蓄蓝蓬虎蛰蟠血行衡衣补表袂被袭裁裂装褐西要覆见规视角解触计订记许设证词请谱谷象豹貌负败质贯贴费赤赭走起足跄跑跪踉踞身躯转轮轴边运近进远迫迸退选逐通造遇道邽部重野量金针银铺链锁锋锚锤镇镜长间闻阔阵降随隙雌雷雾青非面鞘鞭音页顶项须顽领颜额风飞饰首驳验高鲛鳞黄龇龟 \ No newline at end of file diff --git a/docs-design/山海风格版-批次一/demo/keyed/xj-hero-06.png b/docs-design/山海风格版-批次一/demo/keyed/xj-hero-06.png new file mode 100644 index 00000000..4a2e8831 Binary files /dev/null and b/docs-design/山海风格版-批次一/demo/keyed/xj-hero-06.png differ diff --git a/docs-design/山海风格版-批次一/demo/keyed/xj-hero-06.webp b/docs-design/山海风格版-批次一/demo/keyed/xj-hero-06.webp new file mode 100644 index 00000000..6500c884 Binary files /dev/null and b/docs-design/山海风格版-批次一/demo/keyed/xj-hero-06.webp differ diff --git a/docs-design/山海风格版-批次一/demo/keyed/xj-qiongqi-01.png b/docs-design/山海风格版-批次一/demo/keyed/xj-qiongqi-01.png new file mode 100644 index 00000000..1628f73a Binary files /dev/null and b/docs-design/山海风格版-批次一/demo/keyed/xj-qiongqi-01.png differ diff --git a/docs-design/山海风格版-批次一/demo/keyed/xj-qiongqi-01.webp b/docs-design/山海风格版-批次一/demo/keyed/xj-qiongqi-01.webp new file mode 100644 index 00000000..2feacdcd Binary files /dev/null and b/docs-design/山海风格版-批次一/demo/keyed/xj-qiongqi-01.webp differ diff --git a/docs-design/山海风格版-批次一/demo/keyed/xj-taowu-01.png b/docs-design/山海风格版-批次一/demo/keyed/xj-taowu-01.png new file mode 100644 index 00000000..4a62ef80 Binary files /dev/null and b/docs-design/山海风格版-批次一/demo/keyed/xj-taowu-01.png differ diff --git a/docs-design/山海风格版-批次一/demo/keyed/xj-taowu-01.webp b/docs-design/山海风格版-批次一/demo/keyed/xj-taowu-01.webp new file mode 100644 index 00000000..bd9765e9 Binary files /dev/null and b/docs-design/山海风格版-批次一/demo/keyed/xj-taowu-01.webp differ diff --git a/docs-design/山海风格版-批次一/demo/keyed/xj-weapon-01.png b/docs-design/山海风格版-批次一/demo/keyed/xj-weapon-01.png new file mode 100644 index 00000000..bce3483f Binary files /dev/null and b/docs-design/山海风格版-批次一/demo/keyed/xj-weapon-01.png differ diff --git a/docs-design/山海风格版-批次一/demo/keyed/xj-weapon-01.webp b/docs-design/山海风格版-批次一/demo/keyed/xj-weapon-01.webp new file mode 100644 index 00000000..93deab6a Binary files /dev/null and b/docs-design/山海风格版-批次一/demo/keyed/xj-weapon-01.webp differ diff --git a/docs-design/山海风格版-批次一/demo/keyed/xj-zheng-01.png b/docs-design/山海风格版-批次一/demo/keyed/xj-zheng-01.png new file mode 100644 index 00000000..3ceef910 Binary files /dev/null and b/docs-design/山海风格版-批次一/demo/keyed/xj-zheng-01.png differ diff --git a/docs-design/山海风格版-批次一/demo/keyed/xj-zheng-01.webp b/docs-design/山海风格版-批次一/demo/keyed/xj-zheng-01.webp new file mode 100644 index 00000000..a83c6de9 Binary files /dev/null and b/docs-design/山海风格版-批次一/demo/keyed/xj-zheng-01.webp differ diff --git a/docs-design/山海风格版-批次一/images/xingji/xj-boss-01.jpg b/docs-design/山海风格版-批次一/images/xingji/xj-boss-01.jpg new file mode 100644 index 00000000..0ea49a92 Binary files /dev/null and b/docs-design/山海风格版-批次一/images/xingji/xj-boss-01.jpg differ diff --git a/docs-design/山海风格版-批次一/images/xingji/xj-hero-01.jpg b/docs-design/山海风格版-批次一/images/xingji/xj-hero-01.jpg new file mode 100644 index 00000000..025e04f7 Binary files /dev/null and b/docs-design/山海风格版-批次一/images/xingji/xj-hero-01.jpg differ diff --git a/docs-design/山海风格版-批次一/images/xingji/xj-hero-02.jpg b/docs-design/山海风格版-批次一/images/xingji/xj-hero-02.jpg new file mode 100644 index 00000000..b014d8ef Binary files /dev/null and b/docs-design/山海风格版-批次一/images/xingji/xj-hero-02.jpg differ diff --git a/docs-design/山海风格版-批次一/images/xingji/xj-hero-03.jpg b/docs-design/山海风格版-批次一/images/xingji/xj-hero-03.jpg new file mode 100644 index 00000000..5a847d28 Binary files /dev/null and b/docs-design/山海风格版-批次一/images/xingji/xj-hero-03.jpg differ diff --git a/docs-design/山海风格版-批次一/images/xingji/xj-hero-04.jpg b/docs-design/山海风格版-批次一/images/xingji/xj-hero-04.jpg new file mode 100644 index 00000000..138a8228 Binary files /dev/null and b/docs-design/山海风格版-批次一/images/xingji/xj-hero-04.jpg differ diff --git a/docs-design/山海风格版-批次一/images/xingji/xj-hero-05.jpg b/docs-design/山海风格版-批次一/images/xingji/xj-hero-05.jpg new file mode 100644 index 00000000..89a5558d Binary files /dev/null and b/docs-design/山海风格版-批次一/images/xingji/xj-hero-05.jpg differ diff --git a/docs-design/山海风格版-批次一/images/xingji/xj-hero-06.jpg b/docs-design/山海风格版-批次一/images/xingji/xj-hero-06.jpg new file mode 100644 index 00000000..dd812576 Binary files /dev/null and b/docs-design/山海风格版-批次一/images/xingji/xj-hero-06.jpg differ diff --git a/docs-design/山海风格版-批次一/images/xingji/xj-horde-01.jpg b/docs-design/山海风格版-批次一/images/xingji/xj-horde-01.jpg new file mode 100644 index 00000000..6fff3e4f Binary files /dev/null and b/docs-design/山海风格版-批次一/images/xingji/xj-horde-01.jpg differ diff --git a/docs-design/山海风格版-批次一/images/xingji/xj-pickup-01.jpg b/docs-design/山海风格版-批次一/images/xingji/xj-pickup-01.jpg new file mode 100644 index 00000000..8578220a Binary files /dev/null and b/docs-design/山海风格版-批次一/images/xingji/xj-pickup-01.jpg differ diff --git a/docs-design/山海风格版-批次一/images/xingji/xj-qiongqi-01.jpg b/docs-design/山海风格版-批次一/images/xingji/xj-qiongqi-01.jpg new file mode 100644 index 00000000..86c47d2e Binary files /dev/null and b/docs-design/山海风格版-批次一/images/xingji/xj-qiongqi-01.jpg differ diff --git a/docs-design/山海风格版-批次一/images/xingji/xj-qiongqi-02.jpg b/docs-design/山海风格版-批次一/images/xingji/xj-qiongqi-02.jpg new file mode 100644 index 00000000..48492a8c Binary files /dev/null and b/docs-design/山海风格版-批次一/images/xingji/xj-qiongqi-02.jpg differ diff --git a/docs-design/山海风格版-批次一/images/xingji/xj-qiongqi-03.jpg b/docs-design/山海风格版-批次一/images/xingji/xj-qiongqi-03.jpg new file mode 100644 index 00000000..bd7e7273 Binary files /dev/null and b/docs-design/山海风格版-批次一/images/xingji/xj-qiongqi-03.jpg differ diff --git a/docs-design/山海风格版-批次一/images/xingji/xj-qiongqi-04.jpg b/docs-design/山海风格版-批次一/images/xingji/xj-qiongqi-04.jpg new file mode 100644 index 00000000..51dc8208 Binary files /dev/null and b/docs-design/山海风格版-批次一/images/xingji/xj-qiongqi-04.jpg differ diff --git a/docs-design/山海风格版-批次一/images/xingji/xj-qiongqi-05.jpg b/docs-design/山海风格版-批次一/images/xingji/xj-qiongqi-05.jpg new file mode 100644 index 00000000..4fffff7f Binary files /dev/null and b/docs-design/山海风格版-批次一/images/xingji/xj-qiongqi-05.jpg differ diff --git a/docs-design/山海风格版-批次一/images/xingji/xj-scene-01.jpg b/docs-design/山海风格版-批次一/images/xingji/xj-scene-01.jpg new file mode 100644 index 00000000..16e9577e Binary files /dev/null and b/docs-design/山海风格版-批次一/images/xingji/xj-scene-01.jpg differ diff --git a/docs-design/山海风格版-批次一/images/xingji/xj-taowu-01.jpg b/docs-design/山海风格版-批次一/images/xingji/xj-taowu-01.jpg new file mode 100644 index 00000000..79ce8160 Binary files /dev/null and b/docs-design/山海风格版-批次一/images/xingji/xj-taowu-01.jpg differ diff --git a/docs-design/山海风格版-批次一/images/xingji/xj-taowu-02.jpg b/docs-design/山海风格版-批次一/images/xingji/xj-taowu-02.jpg new file mode 100644 index 00000000..57c9ff47 Binary files /dev/null and b/docs-design/山海风格版-批次一/images/xingji/xj-taowu-02.jpg differ diff --git a/docs-design/山海风格版-批次一/images/xingji/xj-taowu-03.jpg b/docs-design/山海风格版-批次一/images/xingji/xj-taowu-03.jpg new file mode 100644 index 00000000..861c5b99 Binary files /dev/null and b/docs-design/山海风格版-批次一/images/xingji/xj-taowu-03.jpg differ diff --git a/docs-design/山海风格版-批次一/images/xingji/xj-taowu-04.jpg b/docs-design/山海风格版-批次一/images/xingji/xj-taowu-04.jpg new file mode 100644 index 00000000..7da64b9a Binary files /dev/null and b/docs-design/山海风格版-批次一/images/xingji/xj-taowu-04.jpg differ diff --git a/docs-design/山海风格版-批次一/images/xingji/xj-taowu-05.jpg b/docs-design/山海风格版-批次一/images/xingji/xj-taowu-05.jpg new file mode 100644 index 00000000..ba63d127 Binary files /dev/null and b/docs-design/山海风格版-批次一/images/xingji/xj-taowu-05.jpg differ diff --git a/docs-design/山海风格版-批次一/images/xingji/xj-ui-01.jpg b/docs-design/山海风格版-批次一/images/xingji/xj-ui-01.jpg new file mode 100644 index 00000000..c9ed502b Binary files /dev/null and b/docs-design/山海风格版-批次一/images/xingji/xj-ui-01.jpg differ diff --git a/docs-design/山海风格版-批次一/images/xingji/xj-ui-02.jpg b/docs-design/山海风格版-批次一/images/xingji/xj-ui-02.jpg new file mode 100644 index 00000000..620ae140 Binary files /dev/null and b/docs-design/山海风格版-批次一/images/xingji/xj-ui-02.jpg differ diff --git a/docs-design/山海风格版-批次一/images/xingji/xj-weapon-01.jpg b/docs-design/山海风格版-批次一/images/xingji/xj-weapon-01.jpg new file mode 100644 index 00000000..fe58e8d9 Binary files /dev/null and b/docs-design/山海风格版-批次一/images/xingji/xj-weapon-01.jpg differ diff --git a/docs-design/山海风格版-批次一/images/xingji/xj-weapon-02.jpg b/docs-design/山海风格版-批次一/images/xingji/xj-weapon-02.jpg new file mode 100644 index 00000000..9c1df300 Binary files /dev/null and b/docs-design/山海风格版-批次一/images/xingji/xj-weapon-02.jpg differ diff --git a/docs-design/山海风格版-批次一/images/xingji/xj-weapon-03.jpg b/docs-design/山海风格版-批次一/images/xingji/xj-weapon-03.jpg new file mode 100644 index 00000000..c0dcfa3f Binary files /dev/null and b/docs-design/山海风格版-批次一/images/xingji/xj-weapon-03.jpg differ diff --git a/docs-design/山海风格版-批次一/images/xingji/xj-zheng-01.jpg b/docs-design/山海风格版-批次一/images/xingji/xj-zheng-01.jpg new file mode 100644 index 00000000..807bdcc8 Binary files /dev/null and b/docs-design/山海风格版-批次一/images/xingji/xj-zheng-01.jpg differ diff --git a/docs-design/山海风格版-批次一/images/xingji/xj-zheng-02.jpg b/docs-design/山海风格版-批次一/images/xingji/xj-zheng-02.jpg new file mode 100644 index 00000000..1d0be293 Binary files /dev/null and b/docs-design/山海风格版-批次一/images/xingji/xj-zheng-02.jpg differ diff --git a/docs-design/山海风格版-批次一/images/xingji/xj-zheng-03.jpg b/docs-design/山海风格版-批次一/images/xingji/xj-zheng-03.jpg new file mode 100644 index 00000000..e2b6a5d3 Binary files /dev/null and b/docs-design/山海风格版-批次一/images/xingji/xj-zheng-03.jpg differ diff --git a/docs-design/山海风格版-批次一/images/xingji/xj-zheng-04.jpg b/docs-design/山海风格版-批次一/images/xingji/xj-zheng-04.jpg new file mode 100644 index 00000000..a9017f5c Binary files /dev/null and b/docs-design/山海风格版-批次一/images/xingji/xj-zheng-04.jpg differ diff --git a/docs-design/山海风格版-批次一/images/xingji/xj-zheng-05.jpg b/docs-design/山海风格版-批次一/images/xingji/xj-zheng-05.jpg new file mode 100644 index 00000000..96195959 Binary files /dev/null and b/docs-design/山海风格版-批次一/images/xingji/xj-zheng-05.jpg differ diff --git a/docs-design/山海风格版-批次一/images/xunyilu/xy-beast-hezejiao.jpg b/docs-design/山海风格版-批次一/images/xunyilu/xy-beast-hezejiao.jpg new file mode 100644 index 00000000..df3ecc2c Binary files /dev/null and b/docs-design/山海风格版-批次一/images/xunyilu/xy-beast-hezejiao.jpg differ diff --git a/docs-design/山海风格版-批次一/images/xunyilu/xy-beast-zheng.jpg b/docs-design/山海风格版-批次一/images/xunyilu/xy-beast-zheng.jpg new file mode 100644 index 00000000..ba7e8515 Binary files /dev/null and b/docs-design/山海风格版-批次一/images/xunyilu/xy-beast-zheng.jpg differ diff --git a/docs-design/山海风格版-批次一/images/xunyilu/xy-card-jia-common.jpg b/docs-design/山海风格版-批次一/images/xunyilu/xy-card-jia-common.jpg new file mode 100644 index 00000000..7665295f Binary files /dev/null and b/docs-design/山海风格版-批次一/images/xunyilu/xy-card-jia-common.jpg differ diff --git a/docs-design/山海风格版-批次一/images/xunyilu/xy-card-jia-epic.jpg b/docs-design/山海风格版-批次一/images/xunyilu/xy-card-jia-epic.jpg new file mode 100644 index 00000000..4bf0c2a3 Binary files /dev/null and b/docs-design/山海风格版-批次一/images/xunyilu/xy-card-jia-epic.jpg differ diff --git a/docs-design/山海风格版-批次一/images/xunyilu/xy-card-jia-rare.jpg b/docs-design/山海风格版-批次一/images/xunyilu/xy-card-jia-rare.jpg new file mode 100644 index 00000000..03ce8953 Binary files /dev/null and b/docs-design/山海风格版-批次一/images/xunyilu/xy-card-jia-rare.jpg differ diff --git a/docs-design/山海风格版-批次一/images/xunyilu/xy-card-yi-common.jpg b/docs-design/山海风格版-批次一/images/xunyilu/xy-card-yi-common.jpg new file mode 100644 index 00000000..9785775b Binary files /dev/null and b/docs-design/山海风格版-批次一/images/xunyilu/xy-card-yi-common.jpg differ diff --git a/docs-design/山海风格版-批次一/images/xunyilu/xy-card-yi-epic.jpg b/docs-design/山海风格版-批次一/images/xunyilu/xy-card-yi-epic.jpg new file mode 100644 index 00000000..e3928a26 Binary files /dev/null and b/docs-design/山海风格版-批次一/images/xunyilu/xy-card-yi-epic.jpg differ diff --git a/docs-design/山海风格版-批次一/images/xunyilu/xy-card-yi-rare.jpg b/docs-design/山海风格版-批次一/images/xunyilu/xy-card-yi-rare.jpg new file mode 100644 index 00000000..989b5c27 Binary files /dev/null and b/docs-design/山海风格版-批次一/images/xunyilu/xy-card-yi-rare.jpg differ diff --git a/docs-design/山海风格版-批次一/images/xunyilu/xy-result-lose.jpg b/docs-design/山海风格版-批次一/images/xunyilu/xy-result-lose.jpg new file mode 100644 index 00000000..7fcc7e21 Binary files /dev/null and b/docs-design/山海风格版-批次一/images/xunyilu/xy-result-lose.jpg differ diff --git a/docs-design/山海风格版-批次一/images/xunyilu/xy-result-win.jpg b/docs-design/山海风格版-批次一/images/xunyilu/xy-result-win.jpg new file mode 100644 index 00000000..d8310ded Binary files /dev/null and b/docs-design/山海风格版-批次一/images/xunyilu/xy-result-win.jpg differ diff --git a/docs-design/山海风格版-批次一/images/xunyilu/xy-scene-01.jpg b/docs-design/山海风格版-批次一/images/xunyilu/xy-scene-01.jpg new file mode 100644 index 00000000..9f54fbdc Binary files /dev/null and b/docs-design/山海风格版-批次一/images/xunyilu/xy-scene-01.jpg differ diff --git a/docs-design/山海风格版-批次一/images/xunyilu/xy-scene-02.jpg b/docs-design/山海风格版-批次一/images/xunyilu/xy-scene-02.jpg new file mode 100644 index 00000000..34d430f4 Binary files /dev/null and b/docs-design/山海风格版-批次一/images/xunyilu/xy-scene-02.jpg differ diff --git a/docs-design/山海风格版-批次一/manifest.jsonl b/docs-design/山海风格版-批次一/manifest.jsonl new file mode 100644 index 00000000..7b4d4f34 --- /dev/null +++ b/docs-design/山海风格版-批次一/manifest.jsonl @@ -0,0 +1,71 @@ +{"ts":"2026-07-06T18:24:51.815Z","kind":"gen-call","id":"xj-hero-01","game":"xingji","type":"sprite","w":1024,"h":1024,"seed":71001,"seedBump":0,"attempt":1,"model":"image-01","prompt":"上古巡山使,青年道人形象,着石青短褐与赭石护甲,手持缠绕雷电的符箓锁链,正面站姿,沉稳持重。山海经上古图卷矿彩风格,岩彩矿物颜料质感,石青石绿设底,赭石朱砂雌黄设色,描金勾勒高光,装饰性图腾造型,上古神秘庄重氛围,中国传统矿物彩绘工艺,高级美术质感,岩画肌理,粗粝斑驳笔触,暗色岩底,高对比强剪影,图腾化兽形,原始野性张力。纯浅米色单色平涂背景,主体居中完整全身,无裁切,边缘干净利落,画面中不出现任何文字","status":"ok","durationMs":26214} +{"ts":"2026-07-06T18:30:06Z","kind":"reject","id":"xj-hero-01","file":"rejects/xj-hero-01-r0.jpg","reason":"执行席初检淘汰:面部照片写实(违锚负向词)+背景被火焰雷电金兽纹样侵占,sprite 不可色键;触发锚包工艺修订 r1(见 anchor-pack.json noteR1)"} +{"ts":"2026-07-06T18:30:32.699Z","kind":"gen-call","id":"xj-hero-01","game":"xingji","type":"sprite","w":1024,"h":1024,"seed":71001,"seedBump":0,"attempt":1,"model":"image-01","prompt":"中国上古矿彩壁画风格的手绘游戏美术插画:上古巡山使,青年道人形象,着石青短褐与赭石护甲,手持缠绕雷电的符箓锁链,正面站姿,沉稳持重。山海经上古图卷矿彩风格,岩彩矿物颜料质感,石青石绿、赭石朱砂雌黄矿物设色,描金勾勒高光,装饰性图腾造型,平面化手绘笔触,二维装饰绘画,上古神秘庄重氛围,绝非照片,非写实,中国传统矿物彩绘工艺,高级美术质感。岩画肌理,粗粝斑驳笔触,高对比强剪影,图腾化造型,原始野性张力。法术光效微弱且只贴合主体本身,不向背景扩散。干净的纯浅米色空白背景,背景上没有任何图案、纹样、光效、火焰、烟雾、云纹,主体之外空无一物,主体完整全身居中,无裁切,边缘干净利落,画面中不出现任何文字","status":"ok","durationMs":26456} +{"ts":"2026-07-06T18:31:01.006Z","kind":"gen-call","id":"xj-hero-02","game":"xingji","type":"sprite","w":1024,"h":1024,"seed":71002,"seedBump":0,"attempt":1,"model":"image-01","prompt":"中国上古矿彩壁画风格的手绘游戏美术插画:上古巡山使,青年道人,石青短褐赭石护甲,侧身奔跑姿态,雷电符链随身势拖曳。山海经上古图卷矿彩风格,岩彩矿物颜料质感,石青石绿、赭石朱砂雌黄矿物设色,描金勾勒高光,装饰性图腾造型,平面化手绘笔触,二维装饰绘画,上古神秘庄重氛围,绝非照片,非写实,中国传统矿物彩绘工艺,高级美术质感。岩画肌理,粗粝斑驳笔触,高对比强剪影,图腾化造型,原始野性张力。法术光效微弱且只贴合主体本身,不向背景扩散。干净的纯浅米色空白背景,背景上没有任何图案、纹样、光效、火焰、烟雾、云纹,主体之外空无一物,主体完整全身居中,无裁切,边缘干净利落,画面中不出现任何文字","status":"ok","durationMs":27297} +{"ts":"2026-07-06T18:31:29.490Z","kind":"gen-call","id":"xj-hero-03","game":"xingji","type":"sprite","w":1024,"h":1024,"seed":71003,"seedBump":0,"attempt":1,"model":"image-01","prompt":"中国上古矿彩壁画风格的手绘游戏美术插画:上古巡山使,青年道人,挥出雷电符箓锁链的攻击瞬间,链条划出弧光,动势强烈。山海经上古图卷矿彩风格,岩彩矿物颜料质感,石青石绿、赭石朱砂雌黄矿物设色,描金勾勒高光,装饰性图腾造型,平面化手绘笔触,二维装饰绘画,上古神秘庄重氛围,绝非照片,非写实,中国传统矿物彩绘工艺,高级美术质感。岩画肌理,粗粝斑驳笔触,高对比强剪影,图腾化造型,原始野性张力。法术光效微弱且只贴合主体本身,不向背景扩散。干净的纯浅米色空白背景,背景上没有任何图案、纹样、光效、火焰、烟雾、云纹,主体之外空无一物,主体完整全身居中,无裁切,边缘干净利落,画面中不出现任何文字","status":"ok","durationMs":27475} +{"ts":"2026-07-06T18:31:58.470Z","kind":"gen-call","id":"xj-hero-04","game":"xingji","type":"sprite","w":1024,"h":1024,"seed":71004,"seedBump":0,"attempt":1,"model":"image-01","prompt":"中国上古矿彩壁画风格的手绘游戏美术插画:上古巡山使,青年道人,受击后仰的瞬间姿态,衣袂扬起,面部坚毅。山海经上古图卷矿彩风格,岩彩矿物颜料质感,石青石绿、赭石朱砂雌黄矿物设色,描金勾勒高光,装饰性图腾造型,平面化手绘笔触,二维装饰绘画,上古神秘庄重氛围,绝非照片,非写实,中国传统矿物彩绘工艺,高级美术质感。岩画肌理,粗粝斑驳笔触,高对比强剪影,图腾化造型,原始野性张力。法术光效微弱且只贴合主体本身,不向背景扩散。干净的纯浅米色空白背景,背景上没有任何图案、纹样、光效、火焰、烟雾、云纹,主体之外空无一物,主体完整全身居中,无裁切,边缘干净利落,画面中不出现任何文字","status":"ok","durationMs":27970} +{"ts":"2026-07-06T18:32:26.677Z","kind":"gen-call","id":"xj-hero-05","game":"xingji","type":"sprite","w":1024,"h":1024,"seed":71005,"seedBump":0,"attempt":1,"model":"image-01","prompt":"中国上古矿彩壁画风格的手绘游戏美术插画:上古巡山使,青年道人,双手结印蓄力姿态,周身浮起描金符文光环。山海经上古图卷矿彩风格,岩彩矿物颜料质感,石青石绿、赭石朱砂雌黄矿物设色,描金勾勒高光,装饰性图腾造型,平面化手绘笔触,二维装饰绘画,上古神秘庄重氛围,绝非照片,非写实,中国传统矿物彩绘工艺,高级美术质感。岩画肌理,粗粝斑驳笔触,高对比强剪影,图腾化造型,原始野性张力。法术光效微弱且只贴合主体本身,不向背景扩散。干净的纯浅米色空白背景,背景上没有任何图案、纹样、光效、火焰、烟雾、云纹,主体之外空无一物,主体完整全身居中,无裁切,边缘干净利落,画面中不出现任何文字","status":"ok","durationMs":27193} +{"ts":"2026-07-06T18:32:54.011Z","kind":"gen-call","id":"xj-hero-06","game":"xingji","type":"sprite","w":1024,"h":1024,"seed":71006,"seedBump":0,"attempt":1,"model":"image-01","prompt":"中国上古矿彩壁画风格的手绘游戏美术插画:上古巡山使,青年道人,战后收势而立,符链归鞘,披风微动,胜利姿态。山海经上古图卷矿彩风格,岩彩矿物颜料质感,石青石绿、赭石朱砂雌黄矿物设色,描金勾勒高光,装饰性图腾造型,平面化手绘笔触,二维装饰绘画,上古神秘庄重氛围,绝非照片,非写实,中国传统矿物彩绘工艺,高级美术质感。岩画肌理,粗粝斑驳笔触,高对比强剪影,图腾化造型,原始野性张力。法术光效微弱且只贴合主体本身,不向背景扩散。干净的纯浅米色空白背景,背景上没有任何图案、纹样、光效、火焰、烟雾、云纹,主体之外空无一物,主体完整全身居中,无裁切,边缘干净利落,画面中不出现任何文字","status":"ok","durationMs":26327} +{"ts":"2026-07-06T18:33:22.470Z","kind":"gen-call","id":"xj-zheng-01","game":"xingji","type":"sprite","w":1024,"h":1024,"seed":72001,"seedBump":0,"attempt":1,"model":"image-01","prompt":"中国上古矿彩壁画风格的手绘游戏美术插画:上古异兽狰,赤豹之躯,额生独角如燧石,五条尾巴张开如火焰扇面,毛色朱砂赭红,站立昂首嘶啸。山海经上古图卷矿彩风格,岩彩矿物颜料质感,石青石绿、赭石朱砂雌黄矿物设色,描金勾勒高光,装饰性图腾造型,平面化手绘笔触,二维装饰绘画,上古神秘庄重氛围,绝非照片,非写实,中国传统矿物彩绘工艺,高级美术质感。岩画肌理,粗粝斑驳笔触,高对比强剪影,图腾化造型,原始野性张力。法术光效微弱且只贴合主体本身,不向背景扩散。干净的纯浅米色空白背景,背景上没有任何图案、纹样、光效、火焰、烟雾、云纹,主体之外空无一物,主体完整全身居中,无裁切,边缘干净利落,画面中不出现任何文字","status":"ok","durationMs":27449} +{"ts":"2026-07-06T18:33:51.081Z","kind":"gen-call","id":"xj-zheng-02","game":"xingji","type":"sprite","w":1024,"h":1024,"seed":72002,"seedBump":0,"attempt":1,"model":"image-01","prompt":"中国上古矿彩壁画风格的手绘游戏美术插画:上古异兽狰,独角赤豹五尾如焰,前扑扑击姿态,利爪张开,动势凌厉。山海经上古图卷矿彩风格,岩彩矿物颜料质感,石青石绿、赭石朱砂雌黄矿物设色,描金勾勒高光,装饰性图腾造型,平面化手绘笔触,二维装饰绘画,上古神秘庄重氛围,绝非照片,非写实,中国传统矿物彩绘工艺,高级美术质感。岩画肌理,粗粝斑驳笔触,高对比强剪影,图腾化造型,原始野性张力。法术光效微弱且只贴合主体本身,不向背景扩散。干净的纯浅米色空白背景,背景上没有任何图案、纹样、光效、火焰、烟雾、云纹,主体之外空无一物,主体完整全身居中,无裁切,边缘干净利落,画面中不出现任何文字","status":"ok","durationMs":27602} +{"ts":"2026-07-06T18:34:18.782Z","kind":"gen-call","id":"xj-zheng-03","game":"xingji","type":"sprite","w":1024,"h":1024,"seed":72003,"seedBump":0,"attempt":1,"model":"image-01","prompt":"中国上古矿彩壁画风格的手绘游戏美术插画:上古异兽狰,独角赤豹,五尾完全展开成扇形火焰轮,侧面全身,尾焰是画面重心。山海经上古图卷矿彩风格,岩彩矿物颜料质感,石青石绿、赭石朱砂雌黄矿物设色,描金勾勒高光,装饰性图腾造型,平面化手绘笔触,二维装饰绘画,上古神秘庄重氛围,绝非照片,非写实,中国传统矿物彩绘工艺,高级美术质感。岩画肌理,粗粝斑驳笔触,高对比强剪影,图腾化造型,原始野性张力。法术光效微弱且只贴合主体本身,不向背景扩散。干净的纯浅米色空白背景,背景上没有任何图案、纹样、光效、火焰、烟雾、云纹,主体之外空无一物,主体完整全身居中,无裁切,边缘干净利落,画面中不出现任何文字","status":"ok","durationMs":26689} +{"ts":"2026-07-06T18:34:46.623Z","kind":"gen-call","id":"xj-zheng-04","game":"xingji","type":"sprite","w":1024,"h":1024,"seed":72004,"seedBump":0,"attempt":1,"model":"image-01","prompt":"中国上古矿彩壁画风格的手绘游戏美术插画:上古异兽狰,独角赤豹五尾,受击退缩龇牙的瞬间,身形低伏。山海经上古图卷矿彩风格,岩彩矿物颜料质感,石青石绿、赭石朱砂雌黄矿物设色,描金勾勒高光,装饰性图腾造型,平面化手绘笔触,二维装饰绘画,上古神秘庄重氛围,绝非照片,非写实,中国传统矿物彩绘工艺,高级美术质感。岩画肌理,粗粝斑驳笔触,高对比强剪影,图腾化造型,原始野性张力。法术光效微弱且只贴合主体本身,不向背景扩散。干净的纯浅米色空白背景,背景上没有任何图案、纹样、光效、火焰、烟雾、云纹,主体之外空无一物,主体完整全身居中,无裁切,边缘干净利落,画面中不出现任何文字","status":"ok","durationMs":26833} +{"ts":"2026-07-06T18:35:15.850Z","kind":"gen-call","id":"xj-zheng-05","game":"xingji","type":"sprite","w":1024,"h":1024,"seed":72005,"seedBump":0,"attempt":1,"model":"image-01","prompt":"中国上古矿彩壁画风格的手绘游戏美术插画:上古异兽狰,独角赤豹五尾,倒地消散姿态,躯体化作朱砂色碎屑与火星。山海经上古图卷矿彩风格,岩彩矿物颜料质感,石青石绿、赭石朱砂雌黄矿物设色,描金勾勒高光,装饰性图腾造型,平面化手绘笔触,二维装饰绘画,上古神秘庄重氛围,绝非照片,非写实,中国传统矿物彩绘工艺,高级美术质感。岩画肌理,粗粝斑驳笔触,高对比强剪影,图腾化造型,原始野性张力。法术光效微弱且只贴合主体本身,不向背景扩散。干净的纯浅米色空白背景,背景上没有任何图案、纹样、光效、火焰、烟雾、云纹,主体之外空无一物,主体完整全身居中,无裁切,边缘干净利落,画面中不出现任何文字","status":"ok","durationMs":28214} +{"ts":"2026-07-06T18:36:10.395Z","kind":"gen-call","id":"xj-taowu-01","game":"xingji","type":"sprite","w":1024,"h":1024,"seed":73001,"seedBump":0,"attempt":1,"model":"image-01","prompt":"中国上古矿彩壁画风格的手绘游戏美术插画:上古凶兽梼杌,虎躯人面,犬毛蓬乱如枯草,长尾曳地,赭石土黄肤色,四足站立,眉目顽愚而凶。山海经上古图卷矿彩风格,岩彩矿物颜料质感,石青石绿、赭石朱砂雌黄矿物设色,描金勾勒高光,装饰性图腾造型,平面化手绘笔触,二维装饰绘画,上古神秘庄重氛围,绝非照片,非写实,中国传统矿物彩绘工艺,高级美术质感。岩画肌理,粗粝斑驳笔触,高对比强剪影,图腾化造型,原始野性张力。法术光效微弱且只贴合主体本身,不向背景扩散。干净的纯浅米色空白背景,背景上没有任何图案、纹样、光效、火焰、烟雾、云纹,主体之外空无一物,主体完整全身居中,无裁切,边缘干净利落,画面中不出现任何文字","status":"ok","durationMs":35152} +{"ts":"2026-07-06T18:37:22.024Z","kind":"gen-call","id":"xj-taowu-02","game":"xingji","type":"sprite","w":1024,"h":1024,"seed":73002,"seedBump":0,"attempt":1,"model":"image-01","prompt":"中国上古矿彩壁画风格的手绘游戏美术插画:上古凶兽梼杌,虎躯人面犬毛,低头冲撞姿态,如重锤破阵,尘土飞扬。山海经上古图卷矿彩风格,岩彩矿物颜料质感,石青石绿、赭石朱砂雌黄矿物设色,描金勾勒高光,装饰性图腾造型,平面化手绘笔触,二维装饰绘画,上古神秘庄重氛围,绝非照片,非写实,中国传统矿物彩绘工艺,高级美术质感。岩画肌理,粗粝斑驳笔触,高对比强剪影,图腾化造型,原始野性张力。法术光效微弱且只贴合主体本身,不向背景扩散。干净的纯浅米色空白背景,背景上没有任何图案、纹样、光效、火焰、烟雾、云纹,主体之外空无一物,主体完整全身居中,无裁切,边缘干净利落,画面中不出现任何文字","status":"fail","error":"{\n \"error\": {\n \"code\": 1,\n \"message\": \"API error: rpc timeout: timeout=1m0s, to=amadeus-server-rpc-headless.algeng-prod.svc.cluster.local:8888, method=Play, location=kitex.rpcTimeoutMW, remote=10.4.129.240:8888 (HTTP 200)\"\n }\n}","durationMs":70606} +{"ts":"2026-07-06T18:37:55.215Z","kind":"gen-call","id":"xj-taowu-02","game":"xingji","type":"sprite","w":1024,"h":1024,"seed":73002,"seedBump":0,"attempt":2,"model":"image-01","prompt":"中国上古矿彩壁画风格的手绘游戏美术插画:上古凶兽梼杌,虎躯人面犬毛,低头冲撞姿态,如重锤破阵,尘土飞扬。山海经上古图卷矿彩风格,岩彩矿物颜料质感,石青石绿、赭石朱砂雌黄矿物设色,描金勾勒高光,装饰性图腾造型,平面化手绘笔触,二维装饰绘画,上古神秘庄重氛围,绝非照片,非写实,中国传统矿物彩绘工艺,高级美术质感。岩画肌理,粗粝斑驳笔触,高对比强剪影,图腾化造型,原始野性张力。法术光效微弱且只贴合主体本身,不向背景扩散。干净的纯浅米色空白背景,背景上没有任何图案、纹样、光效、火焰、烟雾、云纹,主体之外空无一物,主体完整全身居中,无裁切,边缘干净利落,画面中不出现任何文字","status":"ok","durationMs":28177} +{"ts":"2026-07-06T18:38:22.231Z","kind":"gen-call","id":"xj-taowu-03","game":"xingji","type":"sprite","w":1024,"h":1024,"seed":73003,"seedBump":0,"attempt":1,"model":"image-01","prompt":"中国上古矿彩壁画风格的手绘游戏美术插画:上古凶兽梼杌,虎躯人面,长尾横扫的攻击姿态,尾如皮鞭卷起弧线。山海经上古图卷矿彩风格,岩彩矿物颜料质感,石青石绿、赭石朱砂雌黄矿物设色,描金勾勒高光,装饰性图腾造型,平面化手绘笔触,二维装饰绘画,上古神秘庄重氛围,绝非照片,非写实,中国传统矿物彩绘工艺,高级美术质感。岩画肌理,粗粝斑驳笔触,高对比强剪影,图腾化造型,原始野性张力。法术光效微弱且只贴合主体本身,不向背景扩散。干净的纯浅米色空白背景,背景上没有任何图案、纹样、光效、火焰、烟雾、云纹,主体之外空无一物,主体完整全身居中,无裁切,边缘干净利落,画面中不出现任何文字","status":"ok","durationMs":25999} +{"ts":"2026-07-06T18:38:50.073Z","kind":"gen-call","id":"xj-taowu-04","game":"xingji","type":"sprite","w":1024,"h":1024,"seed":73004,"seedBump":0,"attempt":1,"model":"image-01","prompt":"中国上古矿彩壁画风格的手绘游戏美术插画:上古凶兽梼杌,虎躯人面犬毛,受击踉跄姿态,仍向前顶进不退。山海经上古图卷矿彩风格,岩彩矿物颜料质感,石青石绿、赭石朱砂雌黄矿物设色,描金勾勒高光,装饰性图腾造型,平面化手绘笔触,二维装饰绘画,上古神秘庄重氛围,绝非照片,非写实,中国传统矿物彩绘工艺,高级美术质感。岩画肌理,粗粝斑驳笔触,高对比强剪影,图腾化造型,原始野性张力。法术光效微弱且只贴合主体本身,不向背景扩散。干净的纯浅米色空白背景,背景上没有任何图案、纹样、光效、火焰、烟雾、云纹,主体之外空无一物,主体完整全身居中,无裁切,边缘干净利落,画面中不出现任何文字","status":"ok","durationMs":26812} +{"ts":"2026-07-06T18:39:17.894Z","kind":"gen-call","id":"xj-taowu-05","game":"xingji","type":"sprite","w":1024,"h":1024,"seed":73005,"seedBump":0,"attempt":1,"model":"image-01","prompt":"中国上古矿彩壁画风格的手绘游戏美术插画:上古凶兽梼杌,虎躯人面,倒地姿态,躯体化作赭石色岩屑崩解。山海经上古图卷矿彩风格,岩彩矿物颜料质感,石青石绿、赭石朱砂雌黄矿物设色,描金勾勒高光,装饰性图腾造型,平面化手绘笔触,二维装饰绘画,上古神秘庄重氛围,绝非照片,非写实,中国传统矿物彩绘工艺,高级美术质感。岩画肌理,粗粝斑驳笔触,高对比强剪影,图腾化造型,原始野性张力。法术光效微弱且只贴合主体本身,不向背景扩散。干净的纯浅米色空白背景,背景上没有任何图案、纹样、光效、火焰、烟雾、云纹,主体之外空无一物,主体完整全身居中,无裁切,边缘干净利落,画面中不出现任何文字","status":"ok","durationMs":26811} +{"ts":"2026-07-06T18:39:45.022Z","kind":"gen-call","id":"xj-qiongqi-01","game":"xingji","type":"sprite","w":1024,"h":1024,"seed":74001,"seedBump":0,"attempt":1,"model":"image-01","prompt":"中国上古矿彩壁画风格的手绘游戏美术插画:上古凶兽穷奇,带翼巨虎,背生猬毛如短戟,双翼羽刃泛雌黄金光,展翼立于地面,目色冷白。山海经上古图卷矿彩风格,岩彩矿物颜料质感,石青石绿、赭石朱砂雌黄矿物设色,描金勾勒高光,装饰性图腾造型,平面化手绘笔触,二维装饰绘画,上古神秘庄重氛围,绝非照片,非写实,中国传统矿物彩绘工艺,高级美术质感。岩画肌理,粗粝斑驳笔触,高对比强剪影,图腾化造型,原始野性张力。法术光效微弱且只贴合主体本身,不向背景扩散。干净的纯浅米色空白背景,背景上没有任何图案、纹样、光效、火焰、烟雾、云纹,主体之外空无一物,主体完整全身居中,无裁切,边缘干净利落,画面中不出现任何文字","status":"ok","durationMs":26117} +{"ts":"2026-07-06T18:40:11.473Z","kind":"gen-call","id":"xj-qiongqi-02","game":"xingji","type":"sprite","w":1024,"h":1024,"seed":74002,"seedBump":0,"attempt":1,"model":"image-01","prompt":"中国上古矿彩壁画风格的手绘游戏美术插画:上古凶兽穷奇,带翼巨虎猬毛,自空中俯冲而下的姿态,双翼收拢如箭。山海经上古图卷矿彩风格,岩彩矿物颜料质感,石青石绿、赭石朱砂雌黄矿物设色,描金勾勒高光,装饰性图腾造型,平面化手绘笔触,二维装饰绘画,上古神秘庄重氛围,绝非照片,非写实,中国传统矿物彩绘工艺,高级美术质感。岩画肌理,粗粝斑驳笔触,高对比强剪影,图腾化造型,原始野性张力。法术光效微弱且只贴合主体本身,不向背景扩散。干净的纯浅米色空白背景,背景上没有任何图案、纹样、光效、火焰、烟雾、云纹,主体之外空无一物,主体完整全身居中,无裁切,边缘干净利落,画面中不出现任何文字","status":"ok","durationMs":25432} +{"ts":"2026-07-06T18:40:38.205Z","kind":"gen-call","id":"xj-qiongqi-03","game":"xingji","type":"sprite","w":1024,"h":1024,"seed":74003,"seedBump":0,"attempt":1,"model":"image-01","prompt":"中国上古矿彩壁画风格的手绘游戏美术插画:上古凶兽穷奇,带翼巨虎,翼刃横斩的攻击瞬间,金色羽刃划出弧光。山海经上古图卷矿彩风格,岩彩矿物颜料质感,石青石绿、赭石朱砂雌黄矿物设色,描金勾勒高光,装饰性图腾造型,平面化手绘笔触,二维装饰绘画,上古神秘庄重氛围,绝非照片,非写实,中国传统矿物彩绘工艺,高级美术质感。岩画肌理,粗粝斑驳笔触,高对比强剪影,图腾化造型,原始野性张力。法术光效微弱且只贴合主体本身,不向背景扩散。干净的纯浅米色空白背景,背景上没有任何图案、纹样、光效、火焰、烟雾、云纹,主体之外空无一物,主体完整全身居中,无裁切,边缘干净利落,画面中不出现任何文字","status":"ok","durationMs":25715} +{"ts":"2026-07-06T18:41:04.688Z","kind":"gen-call","id":"xj-qiongqi-04","game":"xingji","type":"sprite","w":1024,"h":1024,"seed":74004,"seedBump":0,"attempt":1,"model":"image-01","prompt":"中国上古矿彩壁画风格的手绘游戏美术插画:上古凶兽穷奇,带翼巨虎猬毛,受击失衡半跪,单翼撑地。山海经上古图卷矿彩风格,岩彩矿物颜料质感,石青石绿、赭石朱砂雌黄矿物设色,描金勾勒高光,装饰性图腾造型,平面化手绘笔触,二维装饰绘画,上古神秘庄重氛围,绝非照片,非写实,中国传统矿物彩绘工艺,高级美术质感。岩画肌理,粗粝斑驳笔触,高对比强剪影,图腾化造型,原始野性张力。法术光效微弱且只贴合主体本身,不向背景扩散。干净的纯浅米色空白背景,背景上没有任何图案、纹样、光效、火焰、烟雾、云纹,主体之外空无一物,主体完整全身居中,无裁切,边缘干净利落,画面中不出现任何文字","status":"ok","durationMs":25459} +{"ts":"2026-07-06T18:41:31.975Z","kind":"gen-call","id":"xj-qiongqi-05","game":"xingji","type":"sprite","w":1024,"h":1024,"seed":74005,"seedBump":0,"attempt":1,"model":"image-01","prompt":"中国上古矿彩壁画风格的手绘游戏美术插画:上古凶兽穷奇,带翼巨虎,坠地消散姿态,羽刃散落化作雌黄金屑。山海经上古图卷矿彩风格,岩彩矿物颜料质感,石青石绿、赭石朱砂雌黄矿物设色,描金勾勒高光,装饰性图腾造型,平面化手绘笔触,二维装饰绘画,上古神秘庄重氛围,绝非照片,非写实,中国传统矿物彩绘工艺,高级美术质感。岩画肌理,粗粝斑驳笔触,高对比强剪影,图腾化造型,原始野性张力。法术光效微弱且只贴合主体本身,不向背景扩散。干净的纯浅米色空白背景,背景上没有任何图案、纹样、光效、火焰、烟雾、云纹,主体之外空无一物,主体完整全身居中,无裁切,边缘干净利落,画面中不出现任何文字","status":"ok","durationMs":26265} +{"ts":"2026-07-06T18:42:17.461Z","kind":"gen-call","id":"xj-weapon-01","game":"xingji","type":"sprite","w":1024,"h":1024,"seed":75001,"seedBump":0,"attempt":1,"model":"image-01","prompt":"中国上古矿彩壁画风格的手绘游戏美术插画:法器·雷符链:一条由符箓串成的锁链,环环刻符,缠绕青白雷电,悬浮展开成弧形。山海经上古图卷矿彩风格,岩彩矿物颜料质感,石青石绿、赭石朱砂雌黄矿物设色,描金勾勒高光,装饰性图腾造型,平面化手绘笔触,二维装饰绘画,上古神秘庄重氛围,绝非照片,非写实,中国传统矿物彩绘工艺,高级美术质感。岩画肌理,粗粝斑驳笔触,高对比强剪影,图腾化造型,原始野性张力。法术光效微弱且只贴合主体本身,不向背景扩散。干净的纯浅米色空白背景,背景上没有任何图案、纹样、光效、火焰、烟雾、云纹,主体之外空无一物,主体完整全身居中,无裁切,边缘干净利落,画面中不出现任何文字","status":"ok","durationMs":25416} +{"ts":"2026-07-06T18:42:44.954Z","kind":"gen-call","id":"xj-weapon-02","game":"xingji","type":"sprite","w":1024,"h":1024,"seed":75002,"seedBump":0,"attempt":1,"model":"image-01","prompt":"中国上古矿彩壁画风格的手绘游戏美术插画:法器·山字盾环:一圈环形山字纹盾牌法阵,石青石绿岩质,描金符文旋转环绕。山海经上古图卷矿彩风格,岩彩矿物颜料质感,石青石绿、赭石朱砂雌黄矿物设色,描金勾勒高光,装饰性图腾造型,平面化手绘笔触,二维装饰绘画,上古神秘庄重氛围,绝非照片,非写实,中国传统矿物彩绘工艺,高级美术质感。岩画肌理,粗粝斑驳笔触,高对比强剪影,图腾化造型,原始野性张力。法术光效微弱且只贴合主体本身,不向背景扩散。干净的纯浅米色空白背景,背景上没有任何图案、纹样、光效、火焰、烟雾、云纹,主体之外空无一物,主体完整全身居中,无裁切,边缘干净利落,画面中不出现任何文字","status":"ok","durationMs":26477} +{"ts":"2026-07-06T18:43:12.786Z","kind":"gen-call","id":"xj-weapon-03","game":"xingji","type":"sprite","w":1024,"h":1024,"seed":75003,"seedBump":0,"attempt":1,"model":"image-01","prompt":"中国上古矿彩壁画风格的手绘游戏美术插画:法器·焚天羽:三根燃烧的朱砂色羽箭,焰尾拖曳,呈放射状飞行。山海经上古图卷矿彩风格,岩彩矿物颜料质感,石青石绿、赭石朱砂雌黄矿物设色,描金勾勒高光,装饰性图腾造型,平面化手绘笔触,二维装饰绘画,上古神秘庄重氛围,绝非照片,非写实,中国传统矿物彩绘工艺,高级美术质感。岩画肌理,粗粝斑驳笔触,高对比强剪影,图腾化造型,原始野性张力。法术光效微弱且只贴合主体本身,不向背景扩散。干净的纯浅米色空白背景,背景上没有任何图案、纹样、光效、火焰、烟雾、云纹,主体之外空无一物,主体完整全身居中,无裁切,边缘干净利落,画面中不出现任何文字","status":"ok","durationMs":26807} +{"ts":"2026-07-06T18:43:40.581Z","kind":"gen-call","id":"xj-scene-01","game":"xingji","type":"bleed","w":768,"h":1360,"seed":76001,"seedBump":0,"attempt":1,"model":"image-01","prompt":"中国上古矿彩壁画风格的手绘游戏美术插画:俯瞰视角的上古山野战场,青绿山峦间一片开阔谷地,岩画质感的地表纹理,四周兽潮如图腾剪影围涌,中央空出交战场,竖构图。山海经上古图卷矿彩风格,岩彩矿物颜料质感,石青石绿、赭石朱砂雌黄矿物设色,描金勾勒高光,装饰性图腾造型,平面化手绘笔触,二维装饰绘画,上古神秘庄重氛围,绝非照片,非写实,中国传统矿物彩绘工艺,高级美术质感。岩画肌理,粗粝斑驳笔触,暗色岩底,石青石绿设底,高对比强剪影,图腾化兽形,原始野性张力。满幅构图,画面中不出现任何文字与水印","status":"ok","durationMs":26789} +{"ts":"2026-07-06T18:44:07.803Z","kind":"gen-call","id":"xj-ui-01","game":"xingji","type":"bleed","w":1024,"h":1024,"seed":77001,"seedBump":0,"attempt":1,"model":"image-01","prompt":"中国上古矿彩壁画风格的手绘游戏美术插画:游戏界面顶栏设计图:岩石与描金边框的横条状态栏,内嵌血量玉珠槽、经验描金进度条、波次图腾计数徽记,暗底,界面元素清晰分区。山海经上古图卷矿彩风格,岩彩矿物颜料质感,石青石绿、赭石朱砂雌黄矿物设色,描金勾勒高光,装饰性图腾造型,平面化手绘笔触,二维装饰绘画,上古神秘庄重氛围,绝非照片,非写实,中国传统矿物彩绘工艺,高级美术质感。岩画肌理,粗粝斑驳笔触,暗色岩底,石青石绿设底,高对比强剪影,图腾化兽形,原始野性张力。满幅构图,画面中不出现任何文字与水印","status":"ok","durationMs":26203} +{"ts":"2026-07-06T18:44:35.048Z","kind":"gen-call","id":"xj-ui-02","game":"xingji","type":"bleed","w":1024,"h":1024,"seed":77002,"seedBump":0,"attempt":1,"model":"image-01","prompt":"中国上古矿彩壁画风格的手绘游戏美术插画:游戏升级三选一界面设计图:三张竖排并列的石刻符卡,卡面各嵌一枚法器图腾徽记,描金边框,中央卡微微放大突出,暗色背景。山海经上古图卷矿彩风格,岩彩矿物颜料质感,石青石绿、赭石朱砂雌黄矿物设色,描金勾勒高光,装饰性图腾造型,平面化手绘笔触,二维装饰绘画,上古神秘庄重氛围,绝非照片,非写实,中国传统矿物彩绘工艺,高级美术质感。岩画肌理,粗粝斑驳笔触,暗色岩底,石青石绿设底,高对比强剪影,图腾化兽形,原始野性张力。满幅构图,画面中不出现任何文字与水印","status":"ok","durationMs":26229} +{"ts":"2026-07-06T18:45:01.956Z","kind":"gen-call","id":"xj-horde-01","game":"xingji","type":"bleed","w":1024,"h":1024,"seed":78001,"seedBump":0,"attempt":1,"model":"image-01","prompt":"中国上古矿彩壁画风格的手绘游戏美术插画:兽潮群像:数十只图腾化异兽剪影自画面四周向中心围涌,岩画风剪影层层叠叠,中央一点巡山使持链而立,强烈的包围压迫感。山海经上古图卷矿彩风格,岩彩矿物颜料质感,石青石绿、赭石朱砂雌黄矿物设色,描金勾勒高光,装饰性图腾造型,平面化手绘笔触,二维装饰绘画,上古神秘庄重氛围,绝非照片,非写实,中国传统矿物彩绘工艺,高级美术质感。岩画肌理,粗粝斑驳笔触,暗色岩底,石青石绿设底,高对比强剪影,图腾化兽形,原始野性张力。满幅构图,画面中不出现任何文字与水印","status":"ok","durationMs":25876} +{"ts":"2026-07-06T18:45:30.344Z","kind":"gen-call","id":"xj-boss-01","game":"xingji","type":"sprite","w":1024,"h":1024,"seed":79001,"seedBump":0,"attempt":1,"model":"image-01","prompt":"中国上古矿彩壁画风格的手绘游戏美术插画:上古巨兽首领,体型如山丘的多角巨兽,岩甲覆体,通身石青与赭石,描金裂纹发光,压迫性体量感,全身像。山海经上古图卷矿彩风格,岩彩矿物颜料质感,石青石绿、赭石朱砂雌黄矿物设色,描金勾勒高光,装饰性图腾造型,平面化手绘笔触,二维装饰绘画,上古神秘庄重氛围,绝非照片,非写实,中国传统矿物彩绘工艺,高级美术质感。岩画肌理,粗粝斑驳笔触,高对比强剪影,图腾化造型,原始野性张力。法术光效微弱且只贴合主体本身,不向背景扩散。干净的纯浅米色空白背景,背景上没有任何图案、纹样、光效、火焰、烟雾、云纹,主体之外空无一物,主体完整全身居中,无裁切,边缘干净利落,画面中不出现任何文字","status":"ok","durationMs":27374} +{"ts":"2026-07-06T18:45:58.707Z","kind":"gen-call","id":"xj-pickup-01","game":"xingji","type":"sprite","w":1024,"h":1024,"seed":79501,"seedBump":0,"attempt":1,"model":"image-01","prompt":"中国上古矿彩壁画风格的手绘游戏美术插画:拾取道具·灵晶:一枚多面切割的发光晶石,石绿色核心,描金棱边,悬浮微光。山海经上古图卷矿彩风格,岩彩矿物颜料质感,石青石绿、赭石朱砂雌黄矿物设色,描金勾勒高光,装饰性图腾造型,平面化手绘笔触,二维装饰绘画,上古神秘庄重氛围,绝非照片,非写实,中国传统矿物彩绘工艺,高级美术质感。岩画肌理,粗粝斑驳笔触,高对比强剪影,图腾化造型,原始野性张力。法术光效微弱且只贴合主体本身,不向背景扩散。干净的纯浅米色空白背景,背景上没有任何图案、纹样、光效、火焰、烟雾、云纹,主体之外空无一物,主体完整全身居中,无裁切,边缘干净利落,画面中不出现任何文字","status":"ok","durationMs":27349} +{"ts":"2026-07-06T18:46:39.964Z","kind":"gen-call","id":"xy-card-jia-common","game":"xunyilu","type":"bleed","w":760,"h":1064,"seed":81001,"seedBump":0,"attempt":1,"model":"image-01","prompt":"中国上古矿彩壁画风格的手绘游戏美术插画:收服异兽的符箓卡牌完整卡面,普通稀有度素朴石框,卡图为一道离火符箓化出小簇朱砂火苗,构图简洁,下方留白文字区,无任何文字。山海经上古图卷矿彩风格,岩彩矿物颜料质感,石青石绿、赭石朱砂雌黄矿物设色,描金勾勒高光,装饰性图腾造型,平面化手绘笔触,二维装饰绘画,上古神秘庄重氛围,绝非照片,非写实,中国传统矿物彩绘工艺,高级美术质感。工笔卷轴画,册页装帧感,青绿山水铺底,金线细密勾勒,符箓云纹装饰,工整细腻文气。满幅构图,画面中不出现任何文字与水印","status":"ok","durationMs":26211} +{"ts":"2026-07-06T18:47:10.643Z","kind":"gen-call","id":"xy-card-jia-rare","game":"xunyilu","type":"bleed","w":760,"h":1064,"seed":81002,"seedBump":0,"attempt":1,"model":"image-01","prompt":"中国上古矿彩壁画风格的手绘游戏美术插画:符箓卡牌完整卡面,罕见稀有度描银卷云边框,卡图为离火符剑自卷轴中出鞘、剑身缠焰,火光映青绿底,下方留白文字区,无任何文字。山海经上古图卷矿彩风格,岩彩矿物颜料质感,石青石绿、赭石朱砂雌黄矿物设色,描金勾勒高光,装饰性图腾造型,平面化手绘笔触,二维装饰绘画,上古神秘庄重氛围,绝非照片,非写实,中国传统矿物彩绘工艺,高级美术质感。工笔卷轴画,册页装帧感,青绿山水铺底,金线细密勾勒,符箓云纹装饰,工整细腻文气。满幅构图,画面中不出现任何文字与水印","status":"ok","durationMs":29618} +{"ts":"2026-07-06T18:47:39.911Z","kind":"gen-call","id":"xy-card-jia-epic","game":"xunyilu","type":"bleed","w":760,"h":1064,"seed":81003,"seedBump":0,"attempt":1,"model":"image-01","prompt":"中国上古矿彩壁画风格的手绘游戏美术插画:符箓卡牌完整卡面,稀有度最高的描金蟠纹边框,卡图为周天火环大符阵,五行符文循环点亮,朱砂描金华丽而工整,下方留白文字区,无任何文字。山海经上古图卷矿彩风格,岩彩矿物颜料质感,石青石绿、赭石朱砂雌黄矿物设色,描金勾勒高光,装饰性图腾造型,平面化手绘笔触,二维装饰绘画,上古神秘庄重氛围,绝非照片,非写实,中国传统矿物彩绘工艺,高级美术质感。工笔卷轴画,册页装帧感,青绿山水铺底,金线细密勾勒,符箓云纹装饰,工整细腻文气。满幅构图,画面中不出现任何文字与水印","status":"ok","durationMs":28252} +{"ts":"2026-07-06T18:48:07.883Z","kind":"gen-call","id":"xy-card-yi-common","game":"xunyilu","type":"bleed","w":760,"h":1064,"seed":82001,"seedBump":0,"attempt":1,"model":"image-01","prompt":"中国上古矿彩壁画风格的手绘游戏美术插画:符箓卡牌完整卡面,普通稀有度素朴石框,卡图为一面小型山字石印浮空,石青色泛微光,构图简洁,下方留白文字区,无任何文字。山海经上古图卷矿彩风格,岩彩矿物颜料质感,石青石绿、赭石朱砂雌黄矿物设色,描金勾勒高光,装饰性图腾造型,平面化手绘笔触,二维装饰绘画,上古神秘庄重氛围,绝非照片,非写实,中国传统矿物彩绘工艺,高级美术质感。工笔卷轴画,册页装帧感,青绿山水铺底,金线细密勾勒,符箓云纹装饰,工整细腻文气。满幅构图,画面中不出现任何文字与水印","status":"ok","durationMs":26963} +{"ts":"2026-07-06T18:48:33.124Z","kind":"gen-call","id":"xy-card-yi-rare","game":"xunyilu","type":"bleed","w":760,"h":1064,"seed":82002,"seedBump":0,"attempt":1,"model":"image-01","prompt":"中国上古矿彩壁画风格的手绘游戏美术插画:符箓卡牌完整卡面,罕见稀有度描银卷云边框,卡图为层叠山岳盾阵自地面升起,石青石绿岩质描金纹,下方留白文字区,无任何文字。山海经上古图卷矿彩风格,岩彩矿物颜料质感,石青石绿、赭石朱砂雌黄矿物设色,描金勾勒高光,装饰性图腾造型,平面化手绘笔触,二维装饰绘画,上古神秘庄重氛围,绝非照片,非写实,中国传统矿物彩绘工艺,高级美术质感。工笔卷轴画,册页装帧感,青绿山水铺底,金线细密勾勒,符箓云纹装饰,工整细腻文气。满幅构图,画面中不出现任何文字与水印","status":"ok","durationMs":24236} +{"ts":"2026-07-06T18:49:02.576Z","kind":"gen-call","id":"xy-card-yi-epic","game":"xunyilu","type":"bleed","w":760,"h":1064,"seed":82003,"seedBump":0,"attempt":1,"model":"image-01","prompt":"中国上古矿彩壁画风格的手绘游戏美术插画:符箓卡牌完整卡面,稀有度最高的描金蟠纹边框,卡图为镇岳大阵,巍峨山影与描金符文锁链贯穿天地,庄重华丽,下方留白文字区,无任何文字。山海经上古图卷矿彩风格,岩彩矿物颜料质感,石青石绿、赭石朱砂雌黄矿物设色,描金勾勒高光,装饰性图腾造型,平面化手绘笔触,二维装饰绘画,上古神秘庄重氛围,绝非照片,非写实,中国传统矿物彩绘工艺,高级美术质感。工笔卷轴画,册页装帧感,青绿山水铺底,金线细密勾勒,符箓云纹装饰,工整细腻文气。满幅构图,画面中不出现任何文字与水印","status":"ok","durationMs":28433} +{"ts":"2026-07-06T18:49:31.037Z","kind":"gen-call","id":"xy-beast-hezejiao","game":"xunyilu","type":"sprite","w":1024,"h":1024,"seed":83001,"seedBump":0,"attempt":1,"model":"image-01","prompt":"中国上古矿彩壁画风格的手绘游戏美术插画:上古水兽涸泽鲛,蛰居干涸沼泽的鲛属,鳞片如龟裂泥板,裂隙间渗出幽蓝水光,双目如浊珠,盘踞蓄势姿态,全身像。山海经上古图卷矿彩风格,岩彩矿物颜料质感,石青石绿、赭石朱砂雌黄矿物设色,描金勾勒高光,装饰性图腾造型,平面化手绘笔触,二维装饰绘画,上古神秘庄重氛围,绝非照片,非写实,中国传统矿物彩绘工艺,高级美术质感。工笔卷轴画,金线细密勾勒,工整细腻文气。法术光效微弱且只贴合主体本身,不向背景扩散。干净的纯浅米色空白背景,背景上没有任何图案、纹样、光效、火焰、烟雾、云纹,主体之外空无一物,主体完整全身居中,无裁切,边缘干净利落,画面中不出现任何文字","status":"ok","durationMs":27445} +{"ts":"2026-07-06T18:50:00.956Z","kind":"gen-call","id":"xy-beast-zheng","game":"xunyilu","type":"sprite","w":1024,"h":1024,"seed":83002,"seedBump":0,"attempt":1,"model":"image-01","prompt":"中国上古矿彩壁画风格的手绘游戏美术插画:上古异兽狰,赤豹之躯,额生独角如燧石,五条尾巴张开如火焰扇面,毛色朱砂赭红,立姿昂首,全身像。山海经上古图卷矿彩风格,岩彩矿物颜料质感,石青石绿、赭石朱砂雌黄矿物设色,描金勾勒高光,装饰性图腾造型,平面化手绘笔触,二维装饰绘画,上古神秘庄重氛围,绝非照片,非写实,中国传统矿物彩绘工艺,高级美术质感。工笔卷轴画,金线细密勾勒,工整细腻文气。法术光效微弱且只贴合主体本身,不向背景扩散。干净的纯浅米色空白背景,背景上没有任何图案、纹样、光效、火焰、烟雾、云纹,主体之外空无一物,主体完整全身居中,无裁切,边缘干净利落,画面中不出现任何文字","status":"ok","durationMs":28903} +{"ts":"2026-07-06T18:50:29.480Z","kind":"gen-call","id":"xy-scene-01","game":"xunyilu","type":"bleed","w":768,"h":1360,"seed":84001,"seedBump":0,"attempt":1,"model":"image-01","prompt":"中国上古矿彩壁画风格的手绘游戏美术插画:战斗背景:干涸龟裂的沼泽异地,泥板裂隙渗出幽蓝水光,远处枯苇与残丘,上下留出界面区的中段留白构图,竖幅。山海经上古图卷矿彩风格,岩彩矿物颜料质感,石青石绿、赭石朱砂雌黄矿物设色,描金勾勒高光,装饰性图腾造型,平面化手绘笔触,二维装饰绘画,上古神秘庄重氛围,绝非照片,非写实,中国传统矿物彩绘工艺,高级美术质感。工笔卷轴画,册页装帧感,青绿山水铺底,金线细密勾勒,符箓云纹装饰,工整细腻文气。满幅构图,画面中不出现任何文字与水印","status":"ok","durationMs":27513} +{"ts":"2026-07-06T18:50:57.274Z","kind":"gen-call","id":"xy-scene-02","game":"xunyilu","type":"bleed","w":768,"h":1360,"seed":84002,"seedBump":0,"attempt":1,"model":"image-01","prompt":"中国上古矿彩壁画风格的手绘游戏美术插画:战斗背景:青绿山水间的山野古道,卷轴画留白式构图,远山近石金线勾勒,中段大面积留白供战斗层,竖幅。山海经上古图卷矿彩风格,岩彩矿物颜料质感,石青石绿、赭石朱砂雌黄矿物设色,描金勾勒高光,装饰性图腾造型,平面化手绘笔触,二维装饰绘画,上古神秘庄重氛围,绝非照片,非写实,中国传统矿物彩绘工艺,高级美术质感。工笔卷轴画,册页装帧感,青绿山水铺底,金线细密勾勒,符箓云纹装饰,工整细腻文气。满幅构图,画面中不出现任何文字与水印","status":"ok","durationMs":26783} +{"ts":"2026-07-06T18:51:29.061Z","kind":"gen-call","id":"xy-result-win","game":"xunyilu","type":"bleed","w":768,"h":1360,"seed":85001,"seedBump":0,"attempt":1,"model":"image-01","prompt":"中国上古矿彩壁画风格的手绘游戏美术插画:胜利结算图:一卷徐徐展开的古图卷轴,被收服的异兽化作描金线稿归入图中安伏,金光流转,庄重喜悦,竖幅,无文字。山海经上古图卷矿彩风格,岩彩矿物颜料质感,石青石绿、赭石朱砂雌黄矿物设色,描金勾勒高光,装饰性图腾造型,平面化手绘笔触,二维装饰绘画,上古神秘庄重氛围,绝非照片,非写实,中国传统矿物彩绘工艺,高级美术质感。工笔卷轴画,册页装帧感,青绿山水铺底,金线细密勾勒,符箓云纹装饰,工整细腻文气。满幅构图,画面中不出现任何文字与水印","status":"ok","durationMs":30771} +{"ts":"2026-07-06T18:51:58.982Z","kind":"gen-call","id":"xy-result-lose","game":"xunyilu","type":"bleed","w":768,"h":1360,"seed":85002,"seedBump":0,"attempt":1,"model":"image-01","prompt":"中国上古矿彩壁画风格的手绘游戏美术插画:失败结算图:残破的古图卷轴一角灼焦卷曲,墨色晕散,异兽剪影自图中挣脱远去,苍凉克制,竖幅,无文字。山海经上古图卷矿彩风格,岩彩矿物颜料质感,石青石绿、赭石朱砂雌黄矿物设色,描金勾勒高光,装饰性图腾造型,平面化手绘笔触,二维装饰绘画,上古神秘庄重氛围,绝非照片,非写实,中国传统矿物彩绘工艺,高级美术质感。工笔卷轴画,册页装帧感,青绿山水铺底,金线细密勾勒,符箓云纹装饰,工整细腻文气。满幅构图,画面中不出现任何文字与水印","status":"ok","durationMs":28906} +{"ts":"2026-07-06T19:01:12Z","kind":"probe-call","id":"probe-hero-A","seed":71001,"model":"image-01","status":"ok","note":"首版配方失败后的风格探针:领句+非写实词+净底加强(styleWords r1 前身)(产物在会话 scratchpad,未入批;计成本)"} +{"ts":"2026-07-06T19:01:12Z","kind":"probe-call","id":"probe-hero-B","seed":71001,"model":"image-01","status":"ok","note":"探针B:加特效收敛条款,定稿配方(产物在会话 scratchpad,未入批;计成本)"} +{"ts":"2026-07-06T19:01:12Z","kind":"probe-call","id":"probe-zheng-A","seed":72001,"model":"image-01","status":"ok","note":"兽形探针:狰,验证配方对兽类成立(产物在会话 scratchpad,未入批;计成本)"} +{"ts":"2026-07-06T19:08:15Z","kind":"reject","id":"xy-beast-hezejiao","file":"rejects/xy-beast-hezejiao-r1.jpg","reason":"执行席初检淘汰:走形为标准青龙,丢谱面命题(龟裂泥板鳞/幽蓝水光/浊珠目);M0 首战敌身份关键,定向补词重摇"} +{"ts":"2026-07-06T19:08:15Z","kind":"reject","id":"xj-boss-01","file":"rejects/xj-boss-01-r1.jpg","reason":"执行席初检淘汰:人形鬼将化,谱面要求四足多角巨兽;定向补词重摇"} +{"ts":"2026-07-06T19:08:15Z","kind":"reject","id":"xj-zheng-01","file":"rejects/xj-zheng-01-r1.jpg","reason":"执行席初检淘汰:左侧整列题跋+印章占构图;补印章落款禁令重摇"} +{"ts":"2026-07-06T19:08:15Z","kind":"reject","id":"xj-qiongqi-01","file":"rejects/xj-qiongqi-01-r1.jpg","reason":"执行席初检淘汰:左侧成列题字印章;补印章落款禁令重摇"} +{"ts":"2026-07-06T19:08:15Z","kind":"reject","id":"xj-hero-01","file":"rejects/xj-hero-01-r1.jpg","reason":"执行席初检淘汰:面部仍半写实;第三轮改用 subject-ref 吃自产 hero-06 锁绘画脸(clean-room ④ 合规:仅自产图)"} +{"ts":"2026-07-06T19:08:15Z","kind":"reject","id":"xy-card-yi-common","file":"rejects/xy-card-yi-common-r1.jpg","reason":"执行席初检淘汰:发光数码特效感+写实云,违矿彩工笔锚;重摇"} +{"ts":"2026-07-06T19:08:15Z","kind":"reject","id":"xj-ui-01","file":"rejects/xj-ui-01-r1.jpg","reason":"执行席初检淘汰:混入伪字与仿©落款水印;重摇"} +{"ts":"2026-07-06T19:08:15Z","kind":"reject","id":"xy-scene-01","file":"rejects/xy-scene-01-r1.jpg","reason":"执行席初检淘汰:未按谱面出干涸龟裂沼泽(出成青绿溪谷),中段留白弱;补词重摇"} +{"ts":"2026-07-06T19:08:43.967Z","kind":"gen-call","id":"xy-beast-hezejiao","game":"xunyilu","type":"sprite","w":1024,"h":1024,"seed":183001,"seedBump":100000,"attempt":1,"model":"image-01","prompt":"中国上古矿彩壁画风格的手绘游戏美术插画:上古水兽涸泽鲛,蛰居干涸沼泽的鲛属,鳞片如龟裂泥板,裂隙间渗出幽蓝水光,双目如浊珠,盘踞蓄势姿态,全身像,注意:它绝不是龙,没有龙角龙须蛇躯;是蛰伏盘踞的兽形水怪,通体鳞片如干涸龟裂的泥板,裂缝间渗出幽蓝水光,双目浑浊如泥珠,画面中绝对没有任何汉字、题字、落款与印章。山海经上古图卷矿彩风格,岩彩矿物颜料质感,石青石绿、赭石朱砂雌黄矿物设色,描金勾勒高光,装饰性图腾造型,平面化手绘笔触,二维装饰绘画,上古神秘庄重氛围,绝非照片,非写实,中国传统矿物彩绘工艺,高级美术质感。工笔卷轴画,金线细密勾勒,工整细腻文气。法术光效微弱且只贴合主体本身,不向背景扩散。干净的纯浅米色空白背景,背景上没有任何图案、纹样、光效、火焰、烟雾、云纹,主体之外空无一物,主体完整全身居中,无裁切,边缘干净利落,画面中不出现任何文字","status":"ok","durationMs":28420} +{"ts":"2026-07-06T19:09:12.633Z","kind":"gen-call","id":"xj-boss-01","game":"xingji","type":"sprite","w":1024,"h":1024,"seed":179001,"seedBump":100000,"attempt":1,"model":"image-01","prompt":"中国上古矿彩壁画风格的手绘游戏美术插画:上古巨兽首领,体型如山丘的多角巨兽,岩甲覆体,通身石青与赭石,描金裂纹发光,压迫性体量感,全身像,注意:它是四足着地的兽,绝非人形、不直立、没有人类五官,画面中绝对没有任何汉字、题字、落款与印章。山海经上古图卷矿彩风格,岩彩矿物颜料质感,石青石绿、赭石朱砂雌黄矿物设色,描金勾勒高光,装饰性图腾造型,平面化手绘笔触,二维装饰绘画,上古神秘庄重氛围,绝非照片,非写实,中国传统矿物彩绘工艺,高级美术质感。岩画肌理,粗粝斑驳笔触,高对比强剪影,图腾化造型,原始野性张力。法术光效微弱且只贴合主体本身,不向背景扩散。干净的纯浅米色空白背景,背景上没有任何图案、纹样、光效、火焰、烟雾、云纹,主体之外空无一物,主体完整全身居中,无裁切,边缘干净利落,画面中不出现任何文字","status":"ok","durationMs":27607} +{"ts":"2026-07-06T19:09:43.960Z","kind":"gen-call","id":"xj-zheng-01","game":"xingji","type":"sprite","w":1024,"h":1024,"seed":172001,"seedBump":100000,"attempt":1,"model":"image-01","prompt":"中国上古矿彩壁画风格的手绘游戏美术插画:上古异兽狰,赤豹之躯,额生独角如燧石,五条尾巴张开如火焰扇面,毛色朱砂赭红,站立昂首嘶啸,画面中绝对没有任何汉字、题字、落款与印章。山海经上古图卷矿彩风格,岩彩矿物颜料质感,石青石绿、赭石朱砂雌黄矿物设色,描金勾勒高光,装饰性图腾造型,平面化手绘笔触,二维装饰绘画,上古神秘庄重氛围,绝非照片,非写实,中国传统矿物彩绘工艺,高级美术质感。岩画肌理,粗粝斑驳笔触,高对比强剪影,图腾化造型,原始野性张力。法术光效微弱且只贴合主体本身,不向背景扩散。干净的纯浅米色空白背景,背景上没有任何图案、纹样、光效、火焰、烟雾、云纹,主体之外空无一物,主体完整全身居中,无裁切,边缘干净利落,画面中不出现任何文字","status":"ok","durationMs":30280} +{"ts":"2026-07-06T19:10:12.259Z","kind":"gen-call","id":"xj-qiongqi-01","game":"xingji","type":"sprite","w":1024,"h":1024,"seed":174001,"seedBump":100000,"attempt":1,"model":"image-01","prompt":"中国上古矿彩壁画风格的手绘游戏美术插画:上古凶兽穷奇,带翼巨虎,背生猬毛如短戟,双翼羽刃泛雌黄金光,展翼立于地面,目色冷白,画面中绝对没有任何汉字、题字、落款与印章。山海经上古图卷矿彩风格,岩彩矿物颜料质感,石青石绿、赭石朱砂雌黄矿物设色,描金勾勒高光,装饰性图腾造型,平面化手绘笔触,二维装饰绘画,上古神秘庄重氛围,绝非照片,非写实,中国传统矿物彩绘工艺,高级美术质感。岩画肌理,粗粝斑驳笔触,高对比强剪影,图腾化造型,原始野性张力。法术光效微弱且只贴合主体本身,不向背景扩散。干净的纯浅米色空白背景,背景上没有任何图案、纹样、光效、火焰、烟雾、云纹,主体之外空无一物,主体完整全身居中,无裁切,边缘干净利落,画面中不出现任何文字","status":"ok","durationMs":27220} +{"ts":"2026-07-06T19:11:23.619Z","kind":"gen-call","id":"xy-card-yi-common","game":"xunyilu","type":"bleed","w":760,"h":1064,"seed":182001,"seedBump":100000,"attempt":1,"model":"image-01","prompt":"中国上古矿彩壁画风格的手绘游戏美术插画:符箓卡牌完整卡面,普通稀有度素朴石框,卡图为一面小型山字石印浮空,石青色泛微光,构图简洁,下方留白文字区,无任何文字,石印为素朴矿石材质,不发光,无光晕特效,云为工笔装饰云纹而非写实摄影云,画面中绝对没有任何汉字、题字、落款与印章。山海经上古图卷矿彩风格,岩彩矿物颜料质感,石青石绿、赭石朱砂雌黄矿物设色,描金勾勒高光,装饰性图腾造型,平面化手绘笔触,二维装饰绘画,上古神秘庄重氛围,绝非照片,非写实,中国传统矿物彩绘工艺,高级美术质感。工笔卷轴画,册页装帧感,青绿山水铺底,金线细密勾勒,符箓云纹装饰,工整细腻文气。满幅构图,画面中不出现任何文字与水印","status":"ok","durationMs":42562} +{"ts":"2026-07-06T19:11:49.399Z","kind":"gen-call","id":"xj-ui-01","game":"xingji","type":"bleed","w":1024,"h":1024,"seed":177001,"seedBump":100000,"attempt":1,"model":"image-01","prompt":"中国上古矿彩壁画风格的手绘游戏美术插画:游戏界面顶栏设计图:岩石与描金边框的横条状态栏,内嵌血量玉珠槽、经验描金进度条、波次图腾计数徽记,暗底,界面元素清晰分区,绝对没有任何文字、字母、数字、水印、版权标记与签名。山海经上古图卷矿彩风格,岩彩矿物颜料质感,石青石绿、赭石朱砂雌黄矿物设色,描金勾勒高光,装饰性图腾造型,平面化手绘笔触,二维装饰绘画,上古神秘庄重氛围,绝非照片,非写实,中国传统矿物彩绘工艺,高级美术质感。岩画肌理,粗粝斑驳笔触,暗色岩底,石青石绿设底,高对比强剪影,图腾化兽形,原始野性张力。满幅构图,画面中不出现任何文字与水印","status":"ok","durationMs":24704} +{"ts":"2026-07-06T19:12:20.292Z","kind":"gen-call","id":"xy-scene-01","game":"xunyilu","type":"bleed","w":768,"h":1360,"seed":184001,"seedBump":100000,"attempt":1,"model":"image-01","prompt":"中国上古矿彩壁画风格的手绘游戏美术插画:战斗背景:干涸龟裂的沼泽异地,泥板裂隙渗出幽蓝水光,远处枯苇与残丘,上下留出界面区的中段留白构图,竖幅,整片大地必须是干涸龟裂的泥板质地,裂缝间渗幽蓝水光,不要溪流不要绿谷,画面中段大面积空旷留白供战斗层,画面中绝对没有任何汉字、题字、落款与印章。山海经上古图卷矿彩风格,岩彩矿物颜料质感,石青石绿、赭石朱砂雌黄矿物设色,描金勾勒高光,装饰性图腾造型,平面化手绘笔触,二维装饰绘画,上古神秘庄重氛围,绝非照片,非写实,中国传统矿物彩绘工艺,高级美术质感。工笔卷轴画,册页装帧感,青绿山水铺底,金线细密勾勒,符箓云纹装饰,工整细腻文气。满幅构图,画面中不出现任何文字与水印","status":"ok","durationMs":29844} +{"ts":"2026-07-06T19:13:41Z","kind":"gen-call","id":"xj-hero-01","game":"xingji","type":"sprite","w":1024,"h":1024,"seed":271001,"attempt":1,"round":"r2-subject-ref","model":"image-01","subjectRef":"images/xingji/xj-hero-06.jpg(自产,clean-room④合规)","status":"ok","durationMs":33000,"note":"prompt=r1锚包拼装+无题字扩展;subject-ref 锁角色实验"} +{"ts":"2026-07-06T19:15:17Z","kind":"reject","id":"xj-hero-01","file":"rejects/xj-hero-01-r2-sref.jpg","reason":"subject-ref(type=character,自产hero-06)实验证伪:image-01 参考图路径把成图整体拉向照片写实,不适用于绘画风格身份锁定——负面证据入账,批产期身份一致性另寻杠杆(B档多参考图/关键词)"} +{"ts":"2026-07-06T19:15:17Z","kind":"adopt","id":"xj-hero-01","file":"images/xingji/xj-hero-01.jpg","source":"probe-hero-B(manifest probe-call 在册,seed 71001)","prompt":"中国上古矿彩壁画风格的手绘游戏角色插画:上古巡山使,青年道人,着石青短褐与赭石护甲,双手持一条缠绕细雷电的符箓锁链,正面站姿,沉稳持重,法术光效微弱且只贴合锁链本体。岩彩矿物颜料质感,石青石绿与赭石朱砂雌黄设色,描金勾勒高光,装饰性图腾造型,平面化手绘笔触,二维装饰绘画,上古神秘庄重氛围,绝非照片,非写实。岩画肌理,粗粝斑驳笔触,高对比强剪影,图腾化造型,原始野性张力。干净的纯浅米色空白背景,背景上没有任何图案、纹样、光效、火焰、烟雾、云纹,主体之外空无一物,全身完整居中无裁切,画面中不出现任何文字","note":"三摇额度用尽(r0/r1/r2-sref),采最优探针成图为定稿;正面站姿命题吻合"} +{"ts":"2026-07-06T19:15:17Z","kind":"reject","id":"xy-beast-hezejiao","file":"rejects/xy-beast-hezejiao-r2.jpg","reason":"仍为龙形:否定词(绝不是龙)对生图无效,『鲛』字强 prime 龙;末轮改写主体词绕开鲛/龙字面"} +{"ts":"2026-07-06T19:15:45.505Z","kind":"gen-call","id":"xy-beast-hezejiao","game":"xunyilu","type":"sprite","w":1024,"h":1024,"seed":283001,"seedBump":200000,"attempt":1,"model":"image-01","prompt":"中国上古矿彩壁画风格的手绘游戏美术插画:上古水兽涸泽鲛,蛰居干涸沼泽的鲛属,鳞片如龟裂泥板,裂隙间渗出幽蓝水光,双目如浊珠,盘踞蓄势姿态,全身像,画面中绝对没有任何汉字、题字、落款与印章。山海经上古图卷矿彩风格,岩彩矿物颜料质感,石青石绿、赭石朱砂雌黄矿物设色,描金勾勒高光,装饰性图腾造型,平面化手绘笔触,二维装饰绘画,上古神秘庄重氛围,绝非照片,非写实,中国传统矿物彩绘工艺,高级美术质感。工笔卷轴画,金线细密勾勒,工整细腻文气。法术光效微弱且只贴合主体本身,不向背景扩散。干净的纯浅米色空白背景,背景上没有任何图案、纹样、光效、火焰、烟雾、云纹,主体之外空无一物,主体完整全身居中,无裁切,边缘干净利落,画面中不出现任何文字","status":"ok","durationMs":28327} +{"ts":"2026-07-06T19:17:11Z","kind":"reject","id":"xy-beast-hezejiao","file":"rejects/xy-beast-hezejiao-r3.jpg","reason":"第3摇仍龙形(shots.json 主体词含『鲛』,priming 未除);末轮直调全量改写主体词绕开鲛/龙字面"} +{"ts":"2026-07-06T19:17:38Z","kind":"gen-call","id":"xy-beast-hezejiao","game":"xunyilu","type":"sprite","w":1024,"h":1024,"seed":383001,"attempt":1,"round":"r4-直调改写主体","model":"image-01","status":"ok","note":"主体词全量改写为蜥形水怪,绕开『鲛/龙』priming;prompt 全文见本行前后文"} +{"ts":"2026-07-06T19:18:50Z","kind":"adopt","id":"xy-beast-hezejiao","file":"images/xunyilu/xy-beast-hezejiao.jpg","source":"r4 直调(seed 383001)","note":"谱面锁定:龟裂泥板鳞/幽蓝水光/浊珠目/蛰伏。工艺结论(批产级):兽名不入 prompt(『鲛』强 prime 龙形,否定词无效),兽形用形态语言描述"} diff --git a/docs-design/山海风格版-批次一/rejects/xj-boss-01-r1.jpg b/docs-design/山海风格版-批次一/rejects/xj-boss-01-r1.jpg new file mode 100644 index 00000000..0b246cdb Binary files /dev/null and b/docs-design/山海风格版-批次一/rejects/xj-boss-01-r1.jpg differ diff --git a/docs-design/山海风格版-批次一/rejects/xj-hero-01-r0.jpg b/docs-design/山海风格版-批次一/rejects/xj-hero-01-r0.jpg new file mode 100644 index 00000000..2851f280 Binary files /dev/null and b/docs-design/山海风格版-批次一/rejects/xj-hero-01-r0.jpg differ diff --git a/docs-design/山海风格版-批次一/rejects/xj-hero-01-r1.jpg b/docs-design/山海风格版-批次一/rejects/xj-hero-01-r1.jpg new file mode 100644 index 00000000..9eebf7d8 Binary files /dev/null and b/docs-design/山海风格版-批次一/rejects/xj-hero-01-r1.jpg differ diff --git a/docs-design/山海风格版-批次一/rejects/xj-hero-01-r2-sref.jpg b/docs-design/山海风格版-批次一/rejects/xj-hero-01-r2-sref.jpg new file mode 100644 index 00000000..7732c488 Binary files /dev/null and b/docs-design/山海风格版-批次一/rejects/xj-hero-01-r2-sref.jpg differ diff --git a/docs-design/山海风格版-批次一/rejects/xj-qiongqi-01-r1.jpg b/docs-design/山海风格版-批次一/rejects/xj-qiongqi-01-r1.jpg new file mode 100644 index 00000000..9ba219eb Binary files /dev/null and b/docs-design/山海风格版-批次一/rejects/xj-qiongqi-01-r1.jpg differ diff --git a/docs-design/山海风格版-批次一/rejects/xj-ui-01-r1.jpg b/docs-design/山海风格版-批次一/rejects/xj-ui-01-r1.jpg new file mode 100644 index 00000000..08a2333c Binary files /dev/null and b/docs-design/山海风格版-批次一/rejects/xj-ui-01-r1.jpg differ diff --git a/docs-design/山海风格版-批次一/rejects/xj-zheng-01-r1.jpg b/docs-design/山海风格版-批次一/rejects/xj-zheng-01-r1.jpg new file mode 100644 index 00000000..4025148e Binary files /dev/null and b/docs-design/山海风格版-批次一/rejects/xj-zheng-01-r1.jpg differ diff --git a/docs-design/山海风格版-批次一/rejects/xy-beast-hezejiao-r1.jpg b/docs-design/山海风格版-批次一/rejects/xy-beast-hezejiao-r1.jpg new file mode 100644 index 00000000..850fcfd1 Binary files /dev/null and b/docs-design/山海风格版-批次一/rejects/xy-beast-hezejiao-r1.jpg differ diff --git a/docs-design/山海风格版-批次一/rejects/xy-beast-hezejiao-r2.jpg b/docs-design/山海风格版-批次一/rejects/xy-beast-hezejiao-r2.jpg new file mode 100644 index 00000000..6de5c3e2 Binary files /dev/null and b/docs-design/山海风格版-批次一/rejects/xy-beast-hezejiao-r2.jpg differ diff --git a/docs-design/山海风格版-批次一/rejects/xy-beast-hezejiao-r3.jpg b/docs-design/山海风格版-批次一/rejects/xy-beast-hezejiao-r3.jpg new file mode 100644 index 00000000..810814fc Binary files /dev/null and b/docs-design/山海风格版-批次一/rejects/xy-beast-hezejiao-r3.jpg differ diff --git a/docs-design/山海风格版-批次一/rejects/xy-card-yi-common-r1.jpg b/docs-design/山海风格版-批次一/rejects/xy-card-yi-common-r1.jpg new file mode 100644 index 00000000..ce77af67 Binary files /dev/null and b/docs-design/山海风格版-批次一/rejects/xy-card-yi-common-r1.jpg differ diff --git a/docs-design/山海风格版-批次一/rejects/xy-scene-01-r1.jpg b/docs-design/山海风格版-批次一/rejects/xy-scene-01-r1.jpg new file mode 100644 index 00000000..c424cd96 Binary files /dev/null and b/docs-design/山海风格版-批次一/rejects/xy-scene-01-r1.jpg differ diff --git a/docs-design/山海风格版-批次一/scripts/atlas-pack.mjs b/docs-design/山海风格版-批次一/scripts/atlas-pack.mjs new file mode 100755 index 00000000..05e81f8b --- /dev/null +++ b/docs-design/山海风格版-批次一/scripts/atlas-pack.mjs @@ -0,0 +1,60 @@ +#!/usr/bin/env node +// 产线件② 图集打包:透明底精灵 → 2048² 图集(png + webp q80)+ Phaser3 坐标 JSON +// 用法: node atlas-pack.mjs [输入目录=../demo/keyed] [输出目录=../demo/atlas] [图集名=shanhai-batch1] +// 实现:free-tex-packer-cli(MIT,--project 工程文件驱动)打包出 png+json; +// 实测 free-tex-packer-core 的 textureFormat 只支持 png/jpg、不直出 webp(材料档 §5 设想有偏), +// 故补一步 Pillow 转码 webp q80,JSON 同步改指 webp —— 包体账按 webp 计。 +// LittleJS 侧同一份 json 的 frames 坐标可直接换算 tile 索引;Phaser 侧 load.atlas 原生可用。 +import { readFileSync, writeFileSync, readdirSync, mkdirSync, statSync } from 'node:fs'; +import { execFileSync } from 'node:child_process'; +import { dirname, join, resolve } from 'node:path'; +import { fileURLToPath } from 'node:url'; + +const HERE = dirname(fileURLToPath(import.meta.url)); +const inDir = resolve(process.argv[2] || join(HERE, '..', 'demo', 'keyed')); +const outDir = resolve(process.argv[3] || join(HERE, '..', 'demo', 'atlas')); +const name = process.argv[4] || 'shanhai-batch1'; +mkdirSync(outDir, { recursive: true }); + +const pngs = readdirSync(inDir).filter(f => f.endsWith('.png')); +if (!pngs.length) { console.error(`输入目录无 png:${inDir}`); process.exit(1); } + +// free-tex-packer 工程文件(schema 逐字核自 free-tex-packer-cli@0.3.0 index.js) +const project = { + savePath: outDir, + images: pngs.map(f => ({ name: f, path: join(inDir, f) })), + folders: [], + packOptions: { + textureName: name, + width: 2048, height: 2048, fixedSize: false, powerOfTwo: false, + padding: 2, extrude: 1, allowRotation: false, detectIdentical: true, + allowTrim: true, trimMode: 'trim', alphaThreshold: 0, + exporter: 'Phaser3', removeFileExtension: true, prependFolderName: false, + textureFormat: 'png', base64Export: false, scale: 1, packer: 'MaxRectsPacker', + }, +}; +const proj = join(outDir, `${name}.ftpp`); +writeFileSync(proj, JSON.stringify(project, null, 2)); +execFileSync('free-tex-packer-cli', ['--project', proj, '--output', outDir], { stdio: 'inherit', timeout: 120_000 }); + +// png → webp q80(PIL),JSON 改指 webp;两格式都保留(png 供开发查看,webp 进包体账) +// 注意:装不下单页时 free-tex-packer 自动分页,产物带 -0/-1 后缀 —— 按通配收集 +const pages = readdirSync(outDir).filter(f => f.startsWith(name) && f.endsWith('.png')); +const kb = p => (statSync(p).size / 1024).toFixed(0); +let totalFrames = 0, pngKB = 0, webpKB = 0; +for (const png of pages) { + const base = png.replace(/\.png$/, ''); + const pngPath = join(outDir, png); + const webpPath = join(outDir, `${base}.webp`); + execFileSync('python3', ['-c', + `from PIL import Image\nImage.open(${JSON.stringify(pngPath)}).save(${JSON.stringify(webpPath)}, quality=80, method=6)`, + ], { stdio: 'inherit', timeout: 60_000 }); + const jsonPath = join(outDir, `${base}.json`); + const j = JSON.parse(readFileSync(jsonPath, 'utf8')); + for (const t of j.textures || []) if (t.image) t.image = t.image.replace(/\.png$/, '.webp'); + writeFileSync(jsonPath, JSON.stringify(j, null, 2)); + const frames = (j.textures || []).reduce((s, t) => s + (t.frames?.length || 0), 0); + totalFrames += frames; pngKB += Number(kb(pngPath)); webpKB += Number(kb(webpPath)); + console.log(` 页 ${base}:${frames} 帧 | png ${kb(pngPath)}KB → webp ${kb(webpPath)}KB`); +} +console.log(`图集完成:${pages.length} 页 / ${totalFrames} 帧 | png 合计 ${pngKB}KB → webp 合计 ${webpKB}KB`); diff --git a/docs-design/山海风格版-批次一/scripts/contact-sheet.py b/docs-design/山海风格版-批次一/scripts/contact-sheet.py new file mode 100644 index 00000000..657a6a18 --- /dev/null +++ b/docs-design/山海风格版-批次一/scripts/contact-sheet.py @@ -0,0 +1,58 @@ +#!/usr/bin/env python3 +# 拼板图(contact sheet):批次样张 → 单张大图,创始人直接打开逐张眼验 +# 用法: python3 contact-sheet.py <输出.png> [列数] [标题] +# python3 contact-sheet.py --files <输出.png> <标题> <标签=路径>... (任意文件模式,供产线演示页) +# 排序按 shots.json 镜头单原序;每格附镜头 id 标签;中文标题用霞鹜文楷(OFL,scratchpad 依赖)。 +import sys, os, json +from PIL import Image, ImageDraw, ImageFont + +FONT_TTF = '/private/tmp/claude-501/-Users-lili-Project-games-development-ai/69248bd4-16ac-4906-aea1-4157edf7b10f/scratchpad/deps/LXGWWenKai-Regular.ttf' + +def load_font(size): + try: return ImageFont.truetype(FONT_TTF, size) + except Exception: return ImageFont.load_default() + +def make_sheet(items, out_path, cols, title, tile_w=360, tile_h=420): + label_h, title_h, gap = 30, 56, 8 + rows = (len(items) + cols - 1) // cols + W = cols * (tile_w + gap) + gap + H = title_h + rows * (tile_h + label_h + gap) + gap + sheet = Image.new('RGB', (W, H), (30, 34, 32)) + d = ImageDraw.Draw(sheet) + d.text((gap + 4, 12), title, fill=(232, 197, 106), font=load_font(30)) + f_label = load_font(20) + for i, (label, path) in enumerate(items): + r, c = divmod(i, cols) + x = gap + c * (tile_w + gap) + y = title_h + r * (tile_h + label_h + gap) + try: + im = Image.open(path).convert('RGB') + except Exception as e: + d.text((x, y), f'{label}: 打开失败 {e}', fill=(200, 80, 80), font=f_label); continue + im.thumbnail((tile_w, tile_h)) + ox, oy = x + (tile_w - im.width) // 2, y + (tile_h - im.height) // 2 + sheet.paste(im, (ox, oy)) + d.rectangle([x, y + tile_h, x + tile_w, y + tile_h + label_h], fill=(20, 23, 21)) + d.text((x + 6, y + tile_h + 4), label, fill=(220, 220, 210), font=f_label) + sheet.save(out_path) + print(f'拼板完成:{out_path} ({W}x{H}, {len(items)} 格, {os.path.getsize(out_path)//1024}KB)') + +if __name__ == '__main__': + if sys.argv[1] == '--files': + out, title = sys.argv[2], sys.argv[3] + items = [(kv.split('=', 1)[0], kv.split('=', 1)[1]) for kv in sys.argv[4:]] + make_sheet(items, out, cols=min(4, max(1, len(items))), title=title) + else: + shots_p, img_root, game, out = sys.argv[1], sys.argv[2], sys.argv[3], sys.argv[4] + cols = int(sys.argv[5]) if len(sys.argv) > 5 else 6 + title = sys.argv[6] if len(sys.argv) > 6 else f'风格版批次一 · {game}' + shots = [s for s in json.load(open(shots_p, encoding='utf-8'))['shots'] if s['game'] == game] + items = [] + for s in shots: + hit = None + for ext in ('.jpg', '.jpeg', '.png', '.webp'): + p = os.path.join(img_root, game, s['id'] + ext) + if os.path.exists(p): hit = p; break + if hit: items.append((s['id'], hit)) + else: print(f"警告:缺 {s['id']}") + make_sheet(items, out, cols=cols, title=title) diff --git a/docs-design/山海风格版-批次一/scripts/font-subset.sh b/docs-design/山海风格版-批次一/scripts/font-subset.sh new file mode 100755 index 00000000..0db09828 --- /dev/null +++ b/docs-design/山海风格版-批次一/scripts/font-subset.sh @@ -0,0 +1,30 @@ +#!/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()))") 字)" diff --git a/docs-design/山海风格版-批次一/scripts/gen-batch.mjs b/docs-design/山海风格版-批次一/scripts/gen-batch.mjs new file mode 100755 index 00000000..d5170074 --- /dev/null +++ b/docs-design/山海风格版-批次一/scripts/gen-batch.mjs @@ -0,0 +1,109 @@ +#!/usr/bin/env node +// 风格版批次一 · mmx 生图批跑脚本(零依赖,直接调本机 mmx CLI) +// 用法: +// node gen-batch.mjs # 全量(跳过 images/ 下已存在的镜头,可断点续跑) +// node gen-batch.mjs --game xingji # 只跑一款 +// node gen-batch.mjs --only xj-hero-01,xj-zheng-02 # 只跑指定镜头 +// node gen-batch.mjs --only xj-hero-01 --seed-bump 100000 --force # 重摇(换 seed 重产,覆盖) +// node gen-batch.mjs --only xj-ui-01 --subject-extra ",额外约束词" --force # 定向补词重产 +// 纪律: +// - prompt = 镜头 subject + 锚包 styleWordsShared + perGame + (sprite|bleed) 后缀,拼接即所发,原样入账; +// - 每次外呼 150s 超时,失败退避重试(内容过滤 exit=10 不重试,配额 exit=4 全批中止); +// - 每次调用(无论成败)追加一行 ../manifest.jsonl —— 逐张 prompt/参数/耗时/状态可审计; +// - 串行 + 1s 间隔,防限流;成本按官方口径 $0.0035/张 估记(实测口径另见台账)。 +import { readFileSync, existsSync, mkdirSync, renameSync, appendFileSync, readdirSync, rmSync } from 'node:fs'; +import { spawnSync } from 'node:child_process'; +import { dirname, join, resolve, extname } from 'node:path'; +import { fileURLToPath } from 'node:url'; + +const ROOT = resolve(dirname(fileURLToPath(import.meta.url)), '..'); +const MANIFEST = join(ROOT, 'manifest.jsonl'); +const TMP = join(process.env.TMPDIR || '/tmp', 'shanhai-batch1-gen'); +mkdirSync(TMP, { recursive: true }); + +// ---- 参数解析 ---- +const args = process.argv.slice(2); +const getArg = (name) => { const i = args.indexOf(name); return i >= 0 ? args[i + 1] : undefined; }; +const onlyIds = getArg('--only')?.split(',').map(s => s.trim()).filter(Boolean); +const onlyGame = getArg('--game'); +const seedBump = Number(getArg('--seed-bump') || 0); +const subjectExtra = getArg('--subject-extra') || ''; +const force = args.includes('--force'); + +// ---- 读锚包与镜头单 ---- +const anchor = JSON.parse(readFileSync(join(ROOT, 'anchor-pack.json'), 'utf8')); +const { shots } = JSON.parse(readFileSync(join(ROOT, 'shots.json'), 'utf8')); + +// prompt 拼装(锚包工艺修订 r1 口径):领句定体裁 + 主体 + 共用风格锚 + 按 sprite/bleed 取分组词 + 工艺后缀 +function buildPrompt(shot) { + const kind = shot.type === 'sprite' ? 'sprite' : 'bleed'; + const per = anchor.perGame[shot.game][kind]; + const suffix = shot.type === 'sprite' ? anchor.spriteSuffix : anchor.fullBleedSuffix; + return `${anchor.promptPrefix}${shot.subject}${subjectExtra}。${anchor.styleWordsShared}。${per}。${suffix}`; +} + +// 追加台账一行(逐次调用,成败都记) +function ledger(entry) { + appendFileSync(MANIFEST, JSON.stringify({ ts: new Date().toISOString(), ...entry }) + '\n'); +} + +// 调 mmx 一次(150s 超时);返回 { ok, file?, error?, ms, exit } +function callMmx(shot, prompt, seedUsed) { + // 清理该镜头的临时残留,防串档 + for (const f of readdirSync(TMP)) if (f.startsWith(shot.id)) rmSync(join(TMP, f)); + const t0 = Date.now(); + const r = spawnSync('mmx', [ + 'image', 'generate', + '--prompt', prompt, + '--width', String(shot.w), '--height', String(shot.h), + '--seed', String(seedUsed), + '--out-dir', TMP, '--out-prefix', shot.id, + '--quiet', '--non-interactive', + ], { timeout: 150_000, encoding: 'utf8' }); + const ms = Date.now() - t0; + if (r.error?.code === 'ETIMEDOUT' || r.signal) return { ok: false, error: 'timeout-150s', ms, exit: 5 }; + if (r.status !== 0) return { ok: false, error: (r.stderr || r.stdout || '').trim().slice(0, 300) || `exit=${r.status}`, ms, exit: r.status ?? 1 }; + // --quiet + --out-dir 模式:stdout 为保存路径;兜底扫临时目录 + const saved = (r.stdout || '').split('\n').map(s => s.trim()).find(s => s && existsSync(s)) + || readdirSync(TMP).filter(f => f.startsWith(shot.id)).map(f => join(TMP, f))[0]; + if (!saved) return { ok: false, error: 'exit=0 但未找到产物文件', ms, exit: 1 }; + return { ok: true, file: saved, ms, exit: 0 }; +} + +// ---- 主循环:串行 ---- +const todo = shots.filter(s => (!onlyIds || onlyIds.includes(s.id)) && (!onlyGame || s.game === onlyGame)); +let done = 0, skipped = 0, failed = 0, calls = 0; +for (const shot of todo) { + const outDir = join(ROOT, 'images', shot.game); + mkdirSync(outDir, { recursive: true }); + const existing = readdirSync(outDir).find(f => f.startsWith(shot.id + '.')); + if (existing && !force) { skipped++; continue; } + + const prompt = buildPrompt(shot); + const seedUsed = shot.seed + seedBump; + let result = null; + for (let attempt = 1; attempt <= 3; attempt++) { + result = callMmx(shot, prompt, seedUsed); + calls++; + ledger({ kind: 'gen-call', id: shot.id, game: shot.game, type: shot.type, w: shot.w, h: shot.h, + seed: seedUsed, seedBump, attempt, model: 'image-01', prompt, + status: result.ok ? 'ok' : 'fail', error: result.error, durationMs: result.ms }); + if (result.ok) break; + if (result.exit === 10) { console.error(`[${shot.id}] 内容过滤(exit=10),不重试`); break; } + if (result.exit === 4) { console.error(`[${shot.id}] 配额超限(exit=4),全批中止`); process.exit(4); } + if (attempt < 3) { const wait = attempt * 5000; console.error(`[${shot.id}] 第${attempt}次失败(${result.error}),${wait / 1000}s 后重试`); spawnSync('sleep', [String(wait / 1000)]); } + } + if (result.ok) { + const ext = extname(result.file) || '.png'; + const dest = join(outDir, shot.id + ext.toLowerCase()); + renameSync(result.file, dest); + done++; + console.log(`[${shot.id}] OK ${Math.round(result.ms / 1000)}s -> ${dest}`); + } else { + failed++; + console.error(`[${shot.id}] FAILED: ${result.error}`); + } + spawnSync('sleep', ['1']); // 限流间隔 +} +console.log(`\n批跑完成:成 ${done} / 跳过 ${skipped} / 败 ${failed};本次外呼 ${calls} 次(≈$${(calls * 0.0035).toFixed(3)} 官方口径)`); +process.exit(failed > 0 ? 1 : 0); diff --git a/docs-design/山海风格版-批次一/scripts/key-out.py b/docs-design/山海风格版-批次一/scripts/key-out.py new file mode 100755 index 00000000..d3ff737d --- /dev/null +++ b/docs-design/山海风格版-批次一/scripts/key-out.py @@ -0,0 +1,106 @@ +#!/usr/bin/env python3 +# 产线件① 色键抠图:纯浅底生图 → 透明底精灵(PNG RGBA + webp q80) +# 用法: python3 key-out.py <输入.jpg> [更多输入...] [--out 输出目录] [--tol 28] [--soft 52] [--pad 8] +# 步骤:四角采样定底色 → 色距双阈值出 alpha(硬阈内=背景,软阈间=羽化)→ 连通域除杂 +# (丢弃远离主体的小色块:印章/落款/尘点,mmx 国风生图的系统性杂项)→ 内容裁切+留边。 +# 依赖:Pillow + numpy(pip --user 装);JPEG 边缘噪声由软阈羽化吸收。 +import sys, os +from collections import deque +import numpy as np +from PIL import Image + +def parse_args(argv): + ins, out, tol, soft, pad = [], None, 28.0, 52.0, 8 + i = 0 + while i < len(argv): + a = argv[i] + if a == '--out': out = argv[i+1]; i += 2 + elif a == '--tol': tol = float(argv[i+1]); i += 2 + elif a == '--soft': soft = float(argv[i+1]); i += 2 + elif a == '--pad': pad = int(argv[i+1]); i += 2 + else: ins.append(a); i += 1 + if not ins: + sys.exit('用法: key-out.py <输入.jpg>... [--out 目录] [--tol 28] [--soft 52] [--pad 8]') + return ins, out, tol, soft, pad + +def dilate(mask, it): + # 简易方块膨胀(无 scipy 依赖):把被丢弃域向外扩几圈,连羽化边一起清 + m = mask.copy() + for _ in range(it): + m = m | np.roll(m, 1, 0) | np.roll(m, -1, 0) | np.roll(m, 1, 1) | np.roll(m, -1, 1) + return m + +def key_one(path, out_dir, tol, soft, pad): + name = os.path.splitext(os.path.basename(path))[0] + im = Image.open(path).convert('RGB') + a = np.asarray(im, dtype=np.float32) + h, w, _ = a.shape + # ① 四角 12px 块中位数 = 背景色(生图约定纯浅底,四角必为底) + c = 12 + corners = np.concatenate([a[:c, :c].reshape(-1, 3), a[:c, -c:].reshape(-1, 3), + a[-c:, :c].reshape(-1, 3), a[-c:, -c:].reshape(-1, 3)]) + bg = np.median(corners, axis=0) + dist = np.sqrt(((a - bg) ** 2).sum(axis=2)) + # ② 双阈值 alpha:soft 纯前景,之间线性羽化 + alpha = np.clip((dist - tol) / max(soft - tol, 1e-6), 0.0, 1.0) + # ③ 连通域除杂:1/4 尺度上对"确定前景"BFS 标记,保主体域,丢远处小岛(印章/落款/尘点) + s = 4 + fg = (dist > (tol + soft) / 2)[::s, ::s] + H, W = fg.shape + lab = np.zeros(fg.shape, dtype=np.int32) + sizes, boxes, nid = {}, {}, 0 + for y in range(H): + for x in range(W): + if fg[y, x] and lab[y, x] == 0: + nid += 1 + q = deque([(y, x)]); lab[y, x] = nid + n, y0, y1, x0, x1 = 0, y, y, x, x + while q: + cy, cx = q.popleft(); n += 1 + if cy < y0: y0 = cy + if cy > y1: y1 = cy + if cx < x0: x0 = cx + if cx > x1: x1 = cx + for dy, dx in ((1, 0), (-1, 0), (0, 1), (0, -1)): + ny, nx = cy + dy, cx + dx + if 0 <= ny < H and 0 <= nx < W and fg[ny, nx] and lab[ny, nx] == 0: + lab[ny, nx] = nid; q.append((ny, nx)) + sizes[nid], boxes[nid] = n, (y0, y1, x0, x1) + if not sizes: + print(f'[{name}] 警告:未检出前景,跳过'); return None + main = max(sizes, key=sizes.get) + my0, my1, mx0, mx1 = boxes[main] + grow = max(H, W) // 20 # 主体框外扩 5%:贴身小件(飘带/火星/链梢)保留 + keep = set() + for i_, n in sizes.items(): + by0, by1, bx0, bx1 = boxes[i_] + near = not (bx1 < mx0 - grow or bx0 > mx1 + grow or by1 < my0 - grow or by0 > my1 + grow) + if i_ == main or (near and n >= 0.03 * sizes[main]) or n >= 0.20 * sizes[main]: + keep.add(i_) + dropped = len(sizes) - len(keep) + drop_small = fg & ~np.isin(lab, list(keep)) + drop_big = np.kron(dilate(drop_small, 2), np.ones((s, s), dtype=bool))[:h, :w] + alpha[drop_big] = 0.0 + # ④ 内容裁切 + 留边 + ys, xs = np.nonzero(alpha > 0.02) + if len(ys) == 0: + print(f'[{name}] 警告:除杂后无前景,跳过'); return None + y0, y1 = max(int(ys.min()) - pad, 0), min(int(ys.max()) + pad + 1, h) + x0, x1 = max(int(xs.min()) - pad, 0), min(int(xs.max()) + pad + 1, w) + rgba = np.dstack([a.astype(np.uint8), (alpha * 255).astype(np.uint8)])[y0:y1, x0:x1] + out = Image.fromarray(rgba, 'RGBA') + os.makedirs(out_dir, exist_ok=True) + p_png = os.path.join(out_dir, f'{name}.png') + p_webp = os.path.join(out_dir, f'{name}.webp') + out.save(p_png) + out.save(p_webp, quality=80, method=6) + kb = lambda p: os.path.getsize(p) / 1024 + print(f'[{name}] 底色 rgb({int(bg[0])},{int(bg[1])},{int(bg[2])}) 连通域 {len(sizes)} 保 {len(keep)} 丢杂 {dropped} ' + f'裁 {x1-x0}x{y1-y0} → png {kb(p_png):.0f}KB / webp {kb(p_webp):.0f}KB') + return p_png + +if __name__ == '__main__': + ins, out, tol, soft, pad = parse_args(sys.argv[1:]) + out = out or os.path.join(os.path.dirname(os.path.dirname(os.path.abspath(ins[0]))), 'demo', 'keyed') + for p in ins: + key_one(p, out, tol, soft, pad) diff --git a/docs-design/山海风格版-批次一/shots.json b/docs-design/山海风格版-批次一/shots.json new file mode 100644 index 00000000..e93cf834 --- /dev/null +++ b/docs-design/山海风格版-批次一/shots.json @@ -0,0 +1,47 @@ +{ + "note": "风格版批次一镜头单。type: sprite=纯浅底可抠 / bleed=满幅。prompt 只写主体,gen-batch.mjs 运行时拼接 anchor-pack(shared+perGame+suffix)。seed 固定可复现。", + "shots": [ + { "id": "xj-hero-01", "game": "xingji", "type": "sprite", "w": 1024, "h": 1024, "seed": 71001, "subject": "上古巡山使,青年道人形象,着石青短褐与赭石护甲,手持缠绕雷电的符箓锁链,正面站姿,沉稳持重" }, + { "id": "xj-hero-02", "game": "xingji", "type": "sprite", "w": 1024, "h": 1024, "seed": 71002, "subject": "上古巡山使,青年道人,石青短褐赭石护甲,侧身奔跑姿态,雷电符链随身势拖曳" }, + { "id": "xj-hero-03", "game": "xingji", "type": "sprite", "w": 1024, "h": 1024, "seed": 71003, "subject": "上古巡山使,青年道人,挥出雷电符箓锁链的攻击瞬间,链条划出弧光,动势强烈" }, + { "id": "xj-hero-04", "game": "xingji", "type": "sprite", "w": 1024, "h": 1024, "seed": 71004, "subject": "上古巡山使,青年道人,受击后仰的瞬间姿态,衣袂扬起,面部坚毅" }, + { "id": "xj-hero-05", "game": "xingji", "type": "sprite", "w": 1024, "h": 1024, "seed": 71005, "subject": "上古巡山使,青年道人,双手结印蓄力姿态,周身浮起描金符文光环" }, + { "id": "xj-hero-06", "game": "xingji", "type": "sprite", "w": 1024, "h": 1024, "seed": 71006, "subject": "上古巡山使,青年道人,战后收势而立,符链归鞘,披风微动,胜利姿态" }, + { "id": "xj-zheng-01", "game": "xingji", "type": "sprite", "w": 1024, "h": 1024, "seed": 72001, "subject": "上古异兽狰,赤豹之躯,额生独角如燧石,五条尾巴张开如火焰扇面,毛色朱砂赭红,站立昂首嘶啸" }, + { "id": "xj-zheng-02", "game": "xingji", "type": "sprite", "w": 1024, "h": 1024, "seed": 72002, "subject": "上古异兽狰,独角赤豹五尾如焰,前扑扑击姿态,利爪张开,动势凌厉" }, + { "id": "xj-zheng-03", "game": "xingji", "type": "sprite", "w": 1024, "h": 1024, "seed": 72003, "subject": "上古异兽狰,独角赤豹,五尾完全展开成扇形火焰轮,侧面全身,尾焰是画面重心" }, + { "id": "xj-zheng-04", "game": "xingji", "type": "sprite", "w": 1024, "h": 1024, "seed": 72004, "subject": "上古异兽狰,独角赤豹五尾,受击退缩龇牙的瞬间,身形低伏" }, + { "id": "xj-zheng-05", "game": "xingji", "type": "sprite", "w": 1024, "h": 1024, "seed": 72005, "subject": "上古异兽狰,独角赤豹五尾,倒地消散姿态,躯体化作朱砂色碎屑与火星" }, + { "id": "xj-taowu-01", "game": "xingji", "type": "sprite", "w": 1024, "h": 1024, "seed": 73001, "subject": "上古凶兽梼杌,虎躯人面,犬毛蓬乱如枯草,长尾曳地,赭石土黄肤色,四足站立,眉目顽愚而凶" }, + { "id": "xj-taowu-02", "game": "xingji", "type": "sprite", "w": 1024, "h": 1024, "seed": 73002, "subject": "上古凶兽梼杌,虎躯人面犬毛,低头冲撞姿态,如重锤破阵,尘土飞扬" }, + { "id": "xj-taowu-03", "game": "xingji", "type": "sprite", "w": 1024, "h": 1024, "seed": 73003, "subject": "上古凶兽梼杌,虎躯人面,长尾横扫的攻击姿态,尾如皮鞭卷起弧线" }, + { "id": "xj-taowu-04", "game": "xingji", "type": "sprite", "w": 1024, "h": 1024, "seed": 73004, "subject": "上古凶兽梼杌,虎躯人面犬毛,受击踉跄姿态,仍向前顶进不退" }, + { "id": "xj-taowu-05", "game": "xingji", "type": "sprite", "w": 1024, "h": 1024, "seed": 73005, "subject": "上古凶兽梼杌,虎躯人面,倒地姿态,躯体化作赭石色岩屑崩解" }, + { "id": "xj-qiongqi-01", "game": "xingji", "type": "sprite", "w": 1024, "h": 1024, "seed": 74001, "subject": "上古凶兽穷奇,带翼巨虎,背生猬毛如短戟,双翼羽刃泛雌黄金光,展翼立于地面,目色冷白" }, + { "id": "xj-qiongqi-02", "game": "xingji", "type": "sprite", "w": 1024, "h": 1024, "seed": 74002, "subject": "上古凶兽穷奇,带翼巨虎猬毛,自空中俯冲而下的姿态,双翼收拢如箭" }, + { "id": "xj-qiongqi-03", "game": "xingji", "type": "sprite", "w": 1024, "h": 1024, "seed": 74003, "subject": "上古凶兽穷奇,带翼巨虎,翼刃横斩的攻击瞬间,金色羽刃划出弧光" }, + { "id": "xj-qiongqi-04", "game": "xingji", "type": "sprite", "w": 1024, "h": 1024, "seed": 74004, "subject": "上古凶兽穷奇,带翼巨虎猬毛,受击失衡半跪,单翼撑地" }, + { "id": "xj-qiongqi-05", "game": "xingji", "type": "sprite", "w": 1024, "h": 1024, "seed": 74005, "subject": "上古凶兽穷奇,带翼巨虎,坠地消散姿态,羽刃散落化作雌黄金屑" }, + { "id": "xj-weapon-01", "game": "xingji", "type": "sprite", "w": 1024, "h": 1024, "seed": 75001, "subject": "法器·雷符链:一条由符箓串成的锁链,环环刻符,缠绕青白雷电,悬浮展开成弧形" }, + { "id": "xj-weapon-02", "game": "xingji", "type": "sprite", "w": 1024, "h": 1024, "seed": 75002, "subject": "法器·山字盾环:一圈环形山字纹盾牌法阵,石青石绿岩质,描金符文旋转环绕" }, + { "id": "xj-weapon-03", "game": "xingji", "type": "sprite", "w": 1024, "h": 1024, "seed": 75003, "subject": "法器·焚天羽:三根燃烧的朱砂色羽箭,焰尾拖曳,呈放射状飞行" }, + { "id": "xj-scene-01", "game": "xingji", "type": "bleed", "w": 768, "h": 1360, "seed": 76001, "subject": "俯瞰视角的上古山野战场,青绿山峦间一片开阔谷地,岩画质感的地表纹理,四周兽潮如图腾剪影围涌,中央空出交战场,竖构图" }, + { "id": "xj-ui-01", "game": "xingji", "type": "bleed", "w": 1024, "h": 1024, "seed": 77001, "subject": "游戏界面顶栏设计图:岩石与描金边框的横条状态栏,内嵌血量玉珠槽、经验描金进度条、波次图腾计数徽记,暗底,界面元素清晰分区" }, + { "id": "xj-ui-02", "game": "xingji", "type": "bleed", "w": 1024, "h": 1024, "seed": 77002, "subject": "游戏升级三选一界面设计图:三张竖排并列的石刻符卡,卡面各嵌一枚法器图腾徽记,描金边框,中央卡微微放大突出,暗色背景" }, + { "id": "xj-horde-01", "game": "xingji", "type": "bleed", "w": 1024, "h": 1024, "seed": 78001, "subject": "兽潮群像:数十只图腾化异兽剪影自画面四周向中心围涌,岩画风剪影层层叠叠,中央一点巡山使持链而立,强烈的包围压迫感" }, + { "id": "xj-boss-01", "game": "xingji", "type": "sprite", "w": 1024, "h": 1024, "seed": 79001, "subject": "上古巨兽首领,体型如山丘的多角巨兽,岩甲覆体,通身石青与赭石,描金裂纹发光,压迫性体量感,全身像" }, + { "id": "xj-pickup-01", "game": "xingji", "type": "sprite", "w": 1024, "h": 1024, "seed": 79501, "subject": "拾取道具·灵晶:一枚多面切割的发光晶石,石绿色核心,描金棱边,悬浮微光" }, + { "id": "xy-card-jia-common", "game": "xunyilu", "type": "bleed", "w": 760, "h": 1064, "seed": 81001, "subject": "收服异兽的符箓卡牌完整卡面,普通稀有度素朴石框,卡图为一道离火符箓化出小簇朱砂火苗,构图简洁,下方留白文字区,无任何文字" }, + { "id": "xy-card-jia-rare", "game": "xunyilu", "type": "bleed", "w": 760, "h": 1064, "seed": 81002, "subject": "符箓卡牌完整卡面,罕见稀有度描银卷云边框,卡图为离火符剑自卷轴中出鞘、剑身缠焰,火光映青绿底,下方留白文字区,无任何文字" }, + { "id": "xy-card-jia-epic", "game": "xunyilu", "type": "bleed", "w": 760, "h": 1064, "seed": 81003, "subject": "符箓卡牌完整卡面,稀有度最高的描金蟠纹边框,卡图为周天火环大符阵,五行符文循环点亮,朱砂描金华丽而工整,下方留白文字区,无任何文字" }, + { "id": "xy-card-yi-common", "game": "xunyilu", "type": "bleed", "w": 760, "h": 1064, "seed": 82001, "subject": "符箓卡牌完整卡面,普通稀有度素朴石框,卡图为一面小型山字石印浮空,石青色泛微光,构图简洁,下方留白文字区,无任何文字" }, + { "id": "xy-card-yi-rare", "game": "xunyilu", "type": "bleed", "w": 760, "h": 1064, "seed": 82002, "subject": "符箓卡牌完整卡面,罕见稀有度描银卷云边框,卡图为层叠山岳盾阵自地面升起,石青石绿岩质描金纹,下方留白文字区,无任何文字" }, + { "id": "xy-card-yi-epic", "game": "xunyilu", "type": "bleed", "w": 760, "h": 1064, "seed": 82003, "subject": "符箓卡牌完整卡面,稀有度最高的描金蟠纹边框,卡图为镇岳大阵,巍峨山影与描金符文锁链贯穿天地,庄重华丽,下方留白文字区,无任何文字" }, + { "id": "xy-beast-hezejiao", "game": "xunyilu", "type": "sprite", "w": 1024, "h": 1024, "seed": 83001, "subject": "上古水兽涸泽鲛,蛰居干涸沼泽的鲛属,鳞片如龟裂泥板,裂隙间渗出幽蓝水光,双目如浊珠,盘踞蓄势姿态,全身像" }, + { "id": "xy-beast-zheng", "game": "xunyilu", "type": "sprite", "w": 1024, "h": 1024, "seed": 83002, "subject": "上古异兽狰,赤豹之躯,额生独角如燧石,五条尾巴张开如火焰扇面,毛色朱砂赭红,立姿昂首,全身像" }, + { "id": "xy-scene-01", "game": "xunyilu", "type": "bleed", "w": 768, "h": 1360, "seed": 84001, "subject": "战斗背景:干涸龟裂的沼泽异地,泥板裂隙渗出幽蓝水光,远处枯苇与残丘,上下留出界面区的中段留白构图,竖幅" }, + { "id": "xy-scene-02", "game": "xunyilu", "type": "bleed", "w": 768, "h": 1360, "seed": 84002, "subject": "战斗背景:青绿山水间的山野古道,卷轴画留白式构图,远山近石金线勾勒,中段大面积留白供战斗层,竖幅" }, + { "id": "xy-result-win", "game": "xunyilu", "type": "bleed", "w": 768, "h": 1360, "seed": 85001, "subject": "胜利结算图:一卷徐徐展开的古图卷轴,被收服的异兽化作描金线稿归入图中安伏,金光流转,庄重喜悦,竖幅,无文字" }, + { "id": "xy-result-lose", "game": "xunyilu", "type": "bleed", "w": 768, "h": 1360, "seed": 85002, "subject": "失败结算图:残破的古图卷轴一角灼焦卷曲,墨色晕散,异兽剪影自图中挣脱远去,苍凉克制,竖幅,无文字" } + ] +} diff --git a/docs-design/山海风格版-批次一/兽谱首批.md b/docs-design/山海风格版-批次一/兽谱首批.md new file mode 100644 index 00000000..13020082 --- /dev/null +++ b/docs-design/山海风格版-批次一/兽谱首批.md @@ -0,0 +1,22 @@ +# 山海宇宙兽谱 · 首批四条(风格版批次一随批立谱) + +> 依据:山海宇宙设定档 §1(2026-07-06 创始人拍定锁 v1)——兽谱单源,两款同名兽必须同谱面。 +> 古籍出处为公有领域原文;形貌意象为本项目在矿彩国风锚下的**原创演绎**,不参考任何现代改编作品(clean-room 五条逐条生效)。 +> 消费方:《山海行纪》(割草,兽潮敌)/《山海巡异录》(卡牌,敌兽与兽牌)。本批 **狰** 同时供两款取用,是「同兽同源」的第一次落地检验。 + +| 名 | 五行 | 出处 | 形貌意象(原创演绎) | 习性一句 | +|---|---|---|---|---| +| **狰** | 火 | 《山海经·西山经》章莪之山:"有兽焉,其状如赤豹,五尾一角,其音如击石,其名曰狰。" | 赤豹之躯,额生独角如燧石,五尾张开如焰扇,毛色朱砂间赭红,行处带火星 | 性烈喜斗,啸声如击石迸火;兽潮中为先锋,直取巡使 | +| **梼杌** | 土 | 《神异经·西荒经》:"西方荒中有兽焉,其状如虎而犬毛……人面虎足,猪口牙,尾长一丈八尺,搅乱荒中,名梼杌。" | 虎躯人面,犬毛蓬乱如枯草,长尾曳地,肤色赭石带土黄,眉目顽愚而凶 | 顽凶不退,遇阵直撞;兽潮中为破阵重锤,击退无效 | +| **穷奇** | 金 | 《山海经·西山经》邽山:"有兽焉,其状如牛,猬毛,名曰穷奇。"《海内北经》:"穷奇状如虎,有翼。" | 带翼巨虎,背生猬毛如短戟,双翼羽刃泛雌黄金光,目色冷白 | 闻斗而至,乘风掠袭;兽潮中自空而降,专袭施法位 | +| **涸泽鲛** | 水 | 原创(构词法:地貌「涸泽」+古兽字「鲛」;《山海巡异录》M0 首战敌) | 蛰居干涸沼泽的鲛属,鳞片如龟裂泥板,裂隙间渗幽蓝水光,双目如浊珠 | 蛰伏磨鳞蓄力,潮气至则起;战中逐回合砺鳞增伤(意图循环「磨鳞」) | + +## 样张用临时代号(非定名,正式命名随各款概念细化) + +- 《山海巡异录》职业甲(攻优,M0 数据表既有口径)样张意象:**离火符锋**——朱砂/离火系,符剑符火。 +- 《山海巡异录》职业乙(守御)样张意象:**山岳镇御**——石青/山土系,盾印山纹。 +- 《山海行纪》主角:**巡山使**(设定档定名),法器三件=雷符链/山字盾环/焚天羽(割草书既定)。 + +## 维护规则 + +新兽入谱先补本表一行(名/五行/出处或构词/形貌意象/习性),再进任一款的数据表与美术请求;两款取同名兽,prompt 一律从本谱面出发。本表随批次增量,归宿随山海设定档(设定变更走设定档修订)。 diff --git a/docs-design/山海风格版-批次一/拼板图-产线演示.png b/docs-design/山海风格版-批次一/拼板图-产线演示.png new file mode 100644 index 00000000..4b111a25 Binary files /dev/null and b/docs-design/山海风格版-批次一/拼板图-产线演示.png differ diff --git a/docs-design/山海风格版-批次一/拼板图-巡异录12张.png b/docs-design/山海风格版-批次一/拼板图-巡异录12张.png new file mode 100644 index 00000000..90502ee0 Binary files /dev/null and b/docs-design/山海风格版-批次一/拼板图-巡异录12张.png differ diff --git a/docs-design/山海风格版-批次一/拼板图-行纪30帧.png b/docs-design/山海风格版-批次一/拼板图-行纪30帧.png new file mode 100644 index 00000000..7d4e6d8b Binary files /dev/null and b/docs-design/山海风格版-批次一/拼板图-行纪30帧.png differ diff --git a/docs-design/山海风格版-批次一/良率与成本-批次一.md b/docs-design/山海风格版-批次一/良率与成本-批次一.md new file mode 100644 index 00000000..691e7d02 --- /dev/null +++ b/docs-design/山海风格版-批次一/良率与成本-批次一.md @@ -0,0 +1,40 @@ +# 良率与成本 · 批次一一页数(2026-07-06,数字全部由 manifest.jsonl 汇总) + +## 交付面 + +| 项 | 数 | +|---|---| +| 定稿样张 | **42/42**(行纪 30 + 巡异录 12,镜头单全覆盖) | +| 拼板图 | 3 张(行纪 / 巡异录 / 产线演示) | +| 产线演示 | 抠图 5 张(印章自动除杂实证)/ 图集 2 页 5 帧 png 4006KB→webp 599KB / 字体子集 780 字 25.6MB→176KB woff2 | +| 淘汰留证 | rejects/ 12 张,逐张原因在 manifest | + +## 良率 + +| 口径 | 数 | +|---|---| +| 首过率(首次生成即收) | **34/42 = 81%** | +| 质量重摇镜头 | 8 个(hero-01×3 / 涸泽鲛×4 / 其余 6 个×2) | +| 重摇后填满率 | 42/42(涸泽鲛第 4 摇改写主体词后锁定) | +| 总物料效率(定稿/总外呼) | 42/57 = 74% | +| 升档 B 判据(连续两批首过 <40%) | 远未触及 | + +## 成本 + +| 口径 | 数 | +|---|---| +| 外呼总数 | 57 次(成 56 / 瞬时失败重试 1;含配方探针 3) | +| 官方口径($0.0035/张) | $0.20 ≈ **¥1.44** | +| 仓内实测口径(¥0.033/件) | ¥1.88 | +| 单张定稿摊薄 | ≈ ¥0.034–0.045 | +| 预算位 | 上限 ¥200,用 <1% | + +## 淘汰 12 张的原因分布 + +构图级题跋印章 3(狰-01/穷奇-01 整列题字、ui-01 伪字仿水印)· 谱面走形 4(涸泽鲛出成龙×3、首领人形化×1)· 违锚 3(hero-01 照片写实×2 + subject-ref 实验证伪×1)· 风格偏差 2(yi-common 数码感、xy-scene-01 未按龟裂沼泽命题)。 +角落级小印约 1/4 张**未淘汰**——产线除杂自动清(拼板-产线演示页可核),只有构图级污染才值得重摇。 + +## 眼验入口(创始人) + +打开三张拼板图逐张看,结论三选一:**锁锚开批产 / 调锚重产(≤2 轮)/ 升档 B 通道重产**。 +建议重点看:①两款风格对位(行纪岩画粗粝 vs 巡异录青绿工整)是否符合预期;②同名兽狰在两款中的同源可辨度;③人物跨帧身份漂移(A 档已知短板,B 档多参考图机制是对症升级项)。 diff --git a/docs/agent-specs/2026-07-06-山海宇宙设定与美术音频管线-选型材料.md b/docs/agent-specs/2026-07-06-山海宇宙设定与美术音频管线-选型材料.md index 4a57c834..32cb91be 100644 --- a/docs/agent-specs/2026-07-06-山海宇宙设定与美术音频管线-选型材料.md +++ b/docs/agent-specs/2026-07-06-山海宇宙设定与美术音频管线-选型材料.md @@ -1,7 +1,7 @@ --- date: 2026-07-06 topic: 山海宇宙设定与美术音频管线选型 -status: 已拍(2026-07-06 创始人五问全按推荐拍定:锁山海设定 v1/夜市独立市井线+彩蛋轻联动/生图 A·mmx 起步 B 备而不开/风格版山海两款合批先行/零外采开工·AI 产物商用条款核对列首个法务动作;落地序即 §10 末,批次一已切单) +status: 已拍+批次一眼验过(2026-07-06 五问全按推荐拍定;2026-07-07 创始人眼验批次一 42 样张拍**锁锚开批产**——矿彩国风锚 r1 定稿,两款按此锚进 M3/M4 资产批产,主角跨帧漂移在批产期用「定妆帧作参考图+关键姿态逐帧」工艺压、不换通道;良率成本实测=¥1.88/57 呼/首过 81%,样张与产线三件演示在 docs-design/山海风格版-批次一/) sot-impact: 纯留痕;拍定后管线作业事实蒸馏进 .agents/skills(美术音频作业面),山海设定按 §1 锁 v1 供两款消费,不新建 canonical topic 上级: docs/agent-specs/2026-07-06-品类北极星矩阵总纲-设计.md 关联: .agents/skills/littlejs-game-dev.md §5–6(mmx 现行方案与 styleWords 纪律)· 三款开发设计书美术音频节(夜市 §5/§6、割草 §9/§10、卡牌 §9/§10) diff --git a/docs/agent-specs/_index.md b/docs/agent-specs/_index.md index 9bf64ce8..f98257d9 100644 --- a/docs/agent-specs/_index.md +++ b/docs/agent-specs/_index.md @@ -11,9 +11,9 @@ | [2026-07-06-黄金模板规格件-设计](2026-07-06-黄金模板规格件-设计.md) | W-TPL 模板的模板(fable 逆向):十件规格+四道准入门(template-spec-gate 仿 rubric-sync-gate)+选型三轴;立项前提修正(reskin 已废→丰富度正路品类起点资产) | **定稿 ✅ 待创始人批终稿**(2026-07-06 全链:对照+双评审 16 条修入+fable 定稿轻读;311 行双门绿;D2 执行形态修正一并过目=维持落点+前置清 gamedef 化石;reflex 试产工单可直接派,档 §9) | | [2026-07-06-生成侧过程蒸馏回路-设计](2026-07-06-生成侧过程蒸馏回路-设计.md) | W-GENLOG 过程校准单(fable 骨架):校准单换锚的二次实例化——生成过程日志挖高频问题/错误/弯路,出口按注入铁律四级(模板>门/工具>skill>prompt),首单用现存批零采集 | 骨架 ✅(2026-07-06)· 待 opus 填肉(档 §6 五单)→ 双评审 → 创始人批;首单执行时机待拍(档 §7⑤) | | [2026-07-06-品类北极星矩阵总纲-设计](2026-07-06-品类北极星矩阵总纲-设计.md) | W-POLARIS 品类北极星矩阵(薄编排件):每品类 1 款全方位样板游戏+十件套;首批 = 敏捷点击/经营/解谜,复杂档 = 夜市一条街+SpaceHuggers 靶;流水线 = 精造→蒸馏→产线验证,款间串行 | **已升档 ✅(2026-07-06 晚创始人拍:3 款顶级 10h+ 游戏并行 = 经营《夜市一条街》/肉鸽割草/卡牌构筑,全 fable5 high 主导、不考虑预算、clean-room 红线;轻样板方法移交 W-TPL)**· 三份开发设计书起草中(fable fork ×3)→ 双评审 → 逐份交拍 | -| [2026-07-06-北极星顶级线-夜市一条街-开发设计书](2026-07-06-北极星顶级线-夜市一条街-开发设计书.md) | 顶级线①模拟经营:NSTAR §1 底稿之上的开发增量——10h 内容量表与核数法/economy_curve 八键首版锚/千局仿真五判据/美术三候选/M0–M6+U0–U14 切单;引擎维持 Phaser | **双评审修入 ✅ 2026-07-06**(Codex REVISE 7+Opus AWF 8 → F1–F10 全修,273 行七检绿;10h 改保守下限口径、两本账、上界安全门)· **已批 ✅ · M0 已交 PARTIAL(2026-07-06:`tier2/games/night-market/`,headless 双路 12/12+营业日快进 12ms;**浏览器三门全过=三款对照基准**,余九门接线随 M1)· M1 已交 ✅(2026-07-06 验真绿:三资源+解锁树 40 静态可达门 8/8+SaveEnvelope 存档往返实证+离线收益+九门接线件全套;冒烟 29 断言+15/15;CDP 真跑排窗口)** | -| [2026-07-06-北极星顶级线-肉鸽割草-开发设计书](2026-07-06-北极星顶级线-肉鸽割草-开发设计书.md) | 顶级线②幸存者类:引擎裁 LittleJS(2500 同屏实体+百 KB 体积,两个 Phaser 复评触发器)/手感 11 条机验断言/性能四模式反哺 L2 插件/内容锚+10h 三层互证/题材三候选 | **双评审修入 ✅ 2026-07-06**(Opus AWF 5+Codex AWF 6 → F1–F7 全修,231 行七检绿;测量通道待建分层、去重保守和 11.2h、引擎论据按仓内事实重写)· **已批 ✅ · M0 已交(2026-07-06 本机面全绿:`game-runtime/games/shanhai-xingji/`,7/7+三场景 headless+压测 p95 1.2ms;**浏览器验出 play 首帧 arc 崩溃冻结→修入 M1 席头号项**;60fps@2500 待真机窗口)· M1 已交 ✅(2026-07-06 验真绿:浏览器崩溃修根因(>>→>>> 位提取)+回归红转绿、六件 L2 插件沉淀、手感 11 条接通〔真机校准待窗口〕;13/13+整库 260/260)** | -| [2026-07-06-北极星顶级线-卡牌构筑-开发设计书](2026-07-06-北极星顶级线-卡牌构筑-开发设计书.md) | 顶级线③尖塔/Balatro 谱系:引擎 Phaser+DOM 否决(九门取证+渠道无 DOM 两硬理由)/原创轴=出牌序列链/数值 CI 千局扫描+20 金标构筑回归/竖屏三段布局/首屏 2MB 零余量为全款最紧约束 | **双评审修入 ✅ 2026-07-06**(Codex REVISE 10 含 1 阻断+Opus AWF 11 → F1–F10 全修,291 行七检绿;两本账、墙钟降级挂 M1/M2、链护栏三层、结构常数例外清单+曲线锚重推)· **已批 ✅ · M0 已交 PARTIAL(2026-07-06 逻辑面完成:`tier2/games/shanhai-xunyilu/`,40 断言+双路冒烟绿;**浏览器验出 host 双 Phaser 实例致可见区纯黑+真指针死→修入 M1 席头号项**;账B 口径与 engineBundle 契约两项在册)· M1 已交 ✅(2026-07-06 验真绿:host 修根因(工厂零自建实例,真指针=driver 同因果)+三幕 DAG+8 敌+30 卡 3 遗物+card driver v1;通关 2/40 自然 win、完整 run 墙钟中位 1.6ms 首实测;浏览器复验待窗口)** | +| [2026-07-06-北极星顶级线-夜市一条街-开发设计书](2026-07-06-北极星顶级线-夜市一条街-开发设计书.md) | 顶级线①模拟经营:NSTAR §1 底稿之上的开发增量——10h 内容量表与核数法/economy_curve 八键首版锚/千局仿真五判据/美术三候选/M0–M6+U0–U14 切单;引擎维持 Phaser | **双评审修入 ✅ 2026-07-06**(Codex REVISE 7+Opus AWF 8 → F1–F10 全修,273 行七检绿;10h 改保守下限口径、两本账、上界安全门)· **已批 ✅ · M0 已交 PARTIAL(2026-07-06:`tier2/games/night-market/`,headless 双路 12/12+营业日快进 12ms;**浏览器三门全过=三款对照基准**,余九门接线随 M1)· M1 已交 ✅(2026-07-06 验真绿:三资源+解锁树 40 可达门 8/8+SaveEnvelope 存档往返实证+九门接线件;`3b64fa38`)· M2 已交 ✅(2026-07-06 验真绿:八系统最小闭环+九门与富三门 CDP 真跑 ACCEPT+千局零死锁;冒烟 95 断言/可达门 13 查/29/29;rubric 结构面 14/16 机验,LLM 分待评审窗口)** | +| [2026-07-06-北极星顶级线-肉鸽割草-开发设计书](2026-07-06-北极星顶级线-肉鸽割草-开发设计书.md) | 顶级线②幸存者类:引擎裁 LittleJS(2500 同屏实体+百 KB 体积,两个 Phaser 复评触发器)/手感 11 条机验断言/性能四模式反哺 L2 插件/内容锚+10h 三层互证/题材三候选 | **双评审修入 ✅ 2026-07-06**(Opus AWF 5+Codex AWF 6 → F1–F7 全修,231 行七检绿;测量通道待建分层、去重保守和 11.2h、引擎论据按仓内事实重写)· **已批 ✅ · M0 已交(2026-07-06 本机面全绿:`game-runtime/games/shanhai-xingji/`,7/7+三场景 headless+压测 p95 1.2ms;**浏览器验出 play 首帧 arc 崩溃冻结→修入 M1 席头号项**;60fps@2500 待真机窗口)· M1 已交 ✅(2026-07-06 验真绿:崩溃修根因(>>→>>>)+六件 L2 插件+手感 11 条接通;整库 260/260;`948ee24f`)· M2 已交 ✅(2026-07-06 验真绿:武器12/被动14/进化12 全表化+扫描外壳 1080 局四判据全绿+墙钟实测回填 §8.3〔单局 mean 1.88s,原「<1s」外推偏乐观一个量级,夜批结论不变〕;UI 三项 headless 全真→建议不触发 Phaser 复评;27/27+整库 269/269)** | +| [2026-07-06-北极星顶级线-卡牌构筑-开发设计书](2026-07-06-北极星顶级线-卡牌构筑-开发设计书.md) | 顶级线③尖塔/Balatro 谱系:引擎 Phaser+DOM 否决(九门取证+渠道无 DOM 两硬理由)/原创轴=出牌序列链/数值 CI 千局扫描+20 金标构筑回归/竖屏三段布局/首屏 2MB 零余量为全款最紧约束 | **双评审修入 ✅ 2026-07-06**(Codex REVISE 10 含 1 阻断+Opus AWF 11 → F1–F10 全修,291 行七检绿;两本账、墙钟降级挂 M1/M2、链护栏三层、结构常数例外清单+曲线锚重推)· **已批 ✅ · M0 已交 PARTIAL(2026-07-06 逻辑面完成:`tier2/games/shanhai-xunyilu/`,40 断言+双路冒烟绿;**浏览器验出 host 双 Phaser 实例致可见区纯黑+真指针死→修入 M1 席头号项**;账B 口径与 engineBundle 契约两项在册)· M1 已交 ✅(2026-07-06 验真绿:host 修根因+三幕 DAG+8 敌+30 卡+card driver v1;run 墙钟中位 1.6ms 首实测;`329b82ca`)· M2 已交 ✅(2026-07-06 验真绿:66 卡+遗物 40+商店删卡+SaveEnvelope 存档续玩〔信封合规,介质影子〕+数值 CI 三层定案〔PR 3s/nightly 23,000 局 36.2s/批产 0.5s〕;A0 贪心 47.3% 入带 45–60%;六门全绿+金标 20 套锁定)** | | [2026-07-05-游戏资产管理范围决策-设计](2026-07-05-游戏资产管理范围决策-设计.md) | W-ASSET 游戏资产管理范围决策:已拆成源工程长期存储、私有素材库真验、资产市场只读半、资产市场流通半 | ✅ 已批准(2026-07-05):先做 SRC + MAT-VERIFY,并允许 MARKET-READONLY 在支付前先上;下一步切执行计划 | | [2026-07-04-SpaceHuggers对照靶-95自主复刻-设计](2026-07-04-SpaceHuggers对照靶-95自主复刻-设计.md) | Space Huggers 作为能力对照靶:原创横版动作射击,机制覆盖度 ≥95% + agentic 自主贡献率 ≥95%,过程补横版动作射击能力包与横屏 feed 承载 | **口径已确认 ✅(2026-07-06 随 W-POLARIS 拍:立为复杂档第二品类北极星;95% 可审计矩阵/多人手柄不纳入阶段一必做/LittleJS 承重墙,按档内建议生效)**· 待切执行版(opus 1 会话) | | [2026-07-02-配置控制面阶段二-yudao配置中心-设计](2026-07-02-配置控制面阶段二-yudao配置中心-设计.md) | 配置控制面唯一在飞面:阶段二 yudao 配置中心(版本源 = yudao MySQL 版本行,prompt MEDIUMTEXT 出 Nacos,Nacos 承路 B 小参下发;总设计=[2026-06-30 档](2026-06-30-配置控制面一次性按序实现-设计.md),其阶段〇+一①+一② ✅ 已落地、一② SDD 收口 `526e9b3d`) | ✅ 已拍方向 B · 双评审 11 条全修收口(2026-07-02);**已排期(实施工单=档 §8,2026-07-04)· 即刻可派** | diff --git a/docs/mvp/MVP作战清单.md b/docs/mvp/MVP作战清单.md index ac234c04..f4940c28 100644 --- a/docs/mvp/MVP作战清单.md +++ b/docs/mvp/MVP作战清单.md @@ -39,7 +39,7 @@ canonical: true **★2026-07-05 创始人拍(agentic 需求基线三落位)**:需求基线 = [`agentic-seat-context-design.md`](../../.agents/skills/agentic-seat-context-design.md)(八轮第一人称探索蒸馏;盲评"小修"8 条已修入);**检查单强制化已落** [`ai-development-protocol.md`](../../.agents/workflows/ai-development-protocol.md) §2.3(agentic 设计/评审必按 §8 过尺)。B 类三条落位:① 修复轮注入面 → 新单 W-REPAIR-CTX(下);② context 装配进 trace → 已落 [`阶段四后续波 plan`](../plans/2026-07-05-阶段四观测后续波实施-plan.md) 波⑤ **T5-8**;③ assetContext 前置 = 资产决策稿 §4.3/§5/待拍第 4 条已登记,独立复核坐实(dispatchGeneric 的 job payload 无 assetContext 键、Python 侧零消费、AigcTaskDO 字段 transient),无须新增登记。 - [ ] **W-NSTAR · 复杂游戏北极星件(肥鹅美食街级)立项**(创始人 2026-07-05 拍;**2026-07-06 升档定义:fable 主笔骨架 + opus 填肉 + fable 终审,优先级与 W-TPL 同级**)→ 目标 = 以一款高复杂 2D 经营游戏(web + 微信/抖音小游戏)为**真实负载**,产 feature-design 设计档五件:ⓐ 标的游戏规格(玩法循环/数值体系/资产量级/多版本交付 3 走查场景,当全部架构决策的测试用例)ⓑ 席位架构裁决(〔提案〕席立/合并/缓 + 每席 prompt/context/工具面/harness 四层配方 + 认领 skill §2 胚胎对照表)ⓒ 九类工件 schema 字段级 + 示例实例 ⓓ 版本语义(版本卡/基线资格戳/兼容检查器/意图重放)落 AgentScope 2.0.2 + 配置控制面现实接口 ⓔ 倒排切片阶梯(最小切片→北极星,每级带验收门,标注 16 周主线复用接缝);过程 = fable 骨架(1 会话:章命题+裁决点+席位初裁+schema 草案+给 opus 的填充工单)→ opus 填肉(2–3 会话按章并行,每个「现状」论断读源码/契约坐实)→ protocol §2.3 检查单过尺留痕 + Codex+Opus 双评审 + fable 终审(收口裁决:席位数/schema 冻结面/切片阶梯/主线接缝)→ 创始人拍;需求基线 = agentic-seat-context-design(§8 过尺,〔提案〕逐条留「采/改/弃+理由」——基线是输入不是结论);边界 = 设计先行不含实现(schema 冻结在文档+示例 JSON,代码物随实现波次)、不挤占 16 周主线窗口、标的只 1 款经营品类(多品类归 W-TPL/W-GENRE)、既有 canonical(质量 SoT/回流环/运行时图说)只引用不重写、切片阶梯进主线仍过波次排期;验收 = 双评审 + SoT 注册表查册与 `sot-impact` 申报 + 创始人批,**硬判据** = 标的 3 场景(追加新功能/从已发布版回退分叉/第 N 千次修改)走查文档,每场景能直接推出「哪个席位、消费/产出什么工件、人在哪确认」;升级 = 与主线争资源回创始人;预算 = fable 2 会话 + opus 2–3 会话,零运行时成本;**阶段A fable 骨架 ✅ 2026-07-06 落档** = [`复杂游戏北极星件-设计`](../agent-specs/2026-07-06-复杂游戏北极星件-设计.md)(承重裁决:v1 立 6 席缓 3〔数值仿真先工具后席/馆长机器门代位/玩家真实遥测优先〕/判定书并 C6 不另起/统一信封三戳/版本语义踩 W-ASSET-SRC 只做语义层/L1 工件化先于席位、L2 硬依赖 W-ASSET-SRC 首段;骨架裁决点 6 条 ✅ 创始人 2026-07-06 全拍 + **O-4 填肉两裁决点 ✅ 同日拍**(①空间摆放类系统纳入快进仿真——L3/L4 硬约束「空间吞吐逻辑走 `update(dt)` 纯逻辑层不耦渲染」;②driver 档位 = L3 单档最优跑通闭环、L4 增强多档包络,L3 期下沿体验风险如实标注未覆盖)+ 需求基线〔提案〕十条采/改/弃总表见档 §7;**9 张 opus 填充工单**见档 §6:**八单回填 ✅ + 合并 ✅ 2026-07-06**(填肉稿 908 行,O-6 挂起等 W-ASSET-SRC;20 处〔fable 合并期裁定〕入档;**三场景走查 = A 通/B 通带硬前置/C 断**——决策史对撞无 schema 地基,连同 10 条走查缺口台账留 fable 终审);Codex+Opus 双评审 ✅ 同日(Codex REVISE 9 + Opus ACCEPT-WITH-FIXES 10,合并去重 N1–N14 全修入:信封 actorKind 化/L1 瘦证据包/confirmFloorRule 结构化/版本语义拆契约与存档两轴/15 件算式订正等)→ **fable 终审 ✅ 2026-07-06**:台账 10 条全裁定(8 闭合/⑧存量玩家迁移归 O-6+L2 实装/⑩随 N3),**场景 C 补 schema 回写为通**(decisions[] 落判定书+升级事件、账本决策索引、WorkOrder.decisionRefs 铸单机械注入一道网 + decisionHistoryHit 执行期二道网——对撞=确定性检索归 harness、判断留席位),15 处合并期裁定全签认,诊断答复裁 trace 留痕不工件化,VersionCard 增 lineId 而 live 刻意不上卡——**终审稿 965 行、七检绿,待创始人拍**)。 - [ ] **W-TPL · 黄金模板体系:模板规格件+产线+选型**(创始人 2026-07-06 拍立项,**优先级与 W-NSTAR 同级**;注入铁律「模板承载>门强制>prompt 提醒」的执行臂,直接锚 MVP 主指标「≥80% 成功率基于 3–5 模板」;**第一步规格草案 ✅ 2026-07-06 落档** = [`黄金模板规格件-设计`](../agent-specs/2026-07-06-黄金模板规格件-设计.md),**并修正一处立项前提**——原单「reskin 产线/成本 ≤¥0.34×1.2」骑在 2026-06-29 已废策略上:创始人当日已推翻 reskin 作成本主线(便宜=低参与非低质量),修正路线=品类骨架轻起点+设计 skill+丰富度评分且 M1 已达标,锁写 write_whitelist 现活在 modify 路、create 路不收窄(证据=06-29 设计档 🔴 节 + `cheap_service_driver.py:54` + `cheap_modify.py:419`,本会话亲验)→ 模板定位改「**丰富度正路的品类起点资产**」)→ 产出三件:ⓐ **模板规格契约**(「模板的模板」十件:骨架工程/参数空间锚块/取证契约/品类 skill/rubric fixture/金标 play-spec/few-shot 正例/路由双表登记/准入证据包/资产规范件)ⓑ **入库过门标准+机器门**(四道门:结构/一致性=template-spec-gate 仿 rubric-sync-gate 挂 pre-commit+CI,质量/成本=真跑 n=3–5)ⓒ **3–5 个 MVP 模板选型材料**(变现×传播×生成良率三轴,交创始人拍);过程 = ✅ fable 逆向规格草案 → opus 对照验证 ✅ 2026-07-06(§1 清零+缺口 G1–G9)→ **双评审 ✅ 同日修入**(Codex REVISE 8 + Opus ACCEPT-WITH-FIXES 8,合并去重 16 条全修、双门绿、307 行;品类键裁定 **reflex**、新增 §9 试产工单骨架、G10 rubric 锚欠账、金标名→品类键登记表、质量门三口径对齐 parity、门两阶段落地;**D2 执行形态修正待创始人过目** = 维持落点 contracts/templates/ + 前置三件清 gamedef 化石〔13 schema 归档+解绑 registry/eval 四 designer 引用+编号按现行类目序〕)→ fable 定稿轻读 ✅ 同日(五处状态改真 + §9 补预算/升级两要素,311 行双门绿)→ **待创始人批终稿** → **试产 1 个新品类模板全程走产线**(不许手工特调,D6 已拍=敏捷点击,落点清单=档 §9)→ 选型拍板后批产工单化(每模板一单,opus 领,不再占 fable);边界 = 只覆盖便宜档模板产线(tier2 模板形态归 W-NSTAR 裁决)、不重构 cheap-worker 生成路(机制缺口出工单不顺手改)、金标/rubric 定义权在质量 SoT 与 parity 口径(规格只规定「必须带」)、选型是创始人决策本单只出材料、不做模板平台化产品功能(创作者上架模板=远期件)、不承诺软脚手架降本(实证已证伪);与 W-GENRE 关系 = 品类件(设计手册+rubric)是产线输入,W-GENRE 批产独立推进;验收 = 规格契约落库 + 机器门真拦(负向演示)+ 试产模板经产线独立过九门(n=3–5 小批)且成本达 D1 锚 + 选型材料交付拍板;**D1–D6 ✅ 创始人 2026-07-06 全按提案拍**(D1 成本锚 = n=3–5 均值 ≤¥1.0/款 / D2 落点 = contracts/templates/ 第 9 类契约 / D3 few-shot 硬必备+统一 golden-samples 形态 / D4 L1 逐字节 hash 硬门 / D5 manifest 修复随对照后首个执行单捎带 / D6 试产 = 敏捷点击);预算 = fable ~2 会话 + opus 2–3 会话 + 真跑 n×成本锚级。 -- [ ] **W-POLARIS · 品类北极星矩阵:逐品类全方位样板游戏**(创始人 2026-07-06 拍立项,三拍:①首批便宜档品类 = **敏捷点击 + 经营 + 解谜**(非遗/合成消除/放置挂机二批随 W-TPL 三轴打分交拍、剧情/TRPG 三批先补 few-shot 良率短板)②复杂档北极星扩第二款 = **Space Huggers 靶(横版动作射击)口径确认转执行版**(95% 可审计矩阵 / 多人手柄不纳入阶段一必做·手机 feed 单人主路径优先 / 阶段一 LittleJS 承重墙·Phaser 后续富表现升级——三项按靶档建议生效)③便宜档样板方式 = **精造样板 → 蒸馏十件套 → 产线独立验证**)→ 总纲档 = [`品类北极星矩阵总纲-设计`](../agent-specs/2026-07-06-品类北极星矩阵总纲-设计.md);目标 = 每入选品类交付 1 款「全方位最佳示例」游戏(玩法/机制/数值/美术/手感/代码工程规范/标准插件全维度标杆)+ 该品类模板十件套成型入库;流水线 = 段①精造(opus 领,**游戏概念规格一页先交创始人拍** = 「定具体游戏」一步)→ 段②蒸馏(W-TPL 十件规格 + template-spec-gate)→ 段③产线试产(n=3–5 过九门 + D1 成本锚,不许手工特调);**款间串行**(一款段③收口才开下一款,首款收口后回顾流水线修法回写);**reflex 特例 = W-TPL §9 试产先行(D6「首跑验产线」已拍,不动已批工单)、试产后满配富化回写金标/few-shot**;复杂档两款各乘既有线(经营《夜市一条街》= W-NSTAR L1–L4;横版动作射击 = 靶档转执行版,切换单 opus 1 会话产阶段化 plan 交拍);边界 = 十件/三轴/四门单源在 W-TPL、rubric 定义权在质量 SoT、不改 W-NSTAR 单品类边界、复杂档不占 16 周关键路径、批二三组成待三轴材料交拍;美术如实定容 = 首批走现有素材通道、W-ASSET-MAT-VERIFY 接通后升级;验收 = 每款样板过九门+品类金标复验+创始人验玩 + 十件套过 template-spec-gate + 试产达 D1 锚;预算 = 便宜档每款 opus 2–4 会话+真跑数元级,SpaceHuggers 切换单 opus 1 会话;下一步三单可派 = ⓐ reflex 试产(W-TPL §9,前置=质量 SoT §7 替代丰富轴申报)ⓑ 经营样板精造(概念一页交拍)ⓒ SpaceHuggers 执行版切换。**★2026-07-06 晚创始人升档(覆盖同日早间部分拍定)**:品类北极星 = **3 款顶级长线游戏并行开发**——①阵容拍定 = 经营《夜市一条街》+ 肉鸽割草(幸存者类)+ 卡牌构筑肉鸽(尖塔/Balatro 谱系);②硬标准 = 玩法丰富度撑 **10 小时以上**、画风精美、UI/音效/音乐/机制/数值顶级、可对标 2025 top 游戏玩法与丰富度;③**全 fable5 high 主导 + 不考虑预算**(D1 成本锚、款间串行、「fable 只做设计」经济学对这三款豁免,后续会话不得自行降档);④SpaceHuggers 靶线保持独立不占名额;⑤**clean-room 红线** = 机制/系统/丰富度对标可,美术/代码/文案/角色/音乐/名称/关卡编排全原创(备案/软著硬前提,执行法沿靶档双代理隔离);⑥便宜档轻样板三款及精造→蒸馏→试产三段法整体移交 W-TPL 线承接(reflex 试产 D6 不变),不再占北极星名分〔fable 归置,可逆〕;⑦三条如实约束进设计书正面解决 = 包体门分包与存档定容前移 / 快进仿真器先于数值定稿落地 / 美术音频精造管线选型出材料;⑧夜市款直接消费 NSTAR 档 §1 标的规格转开发(席位架构 §2–5 拍板独立进行、三款反哺其真实负载)。**当前动作 = 三份开发设计书并行起草(fable fork ×3,2026-07-06 已派)**,每份含对标拆解(clean-room)/系统与内容量架构(10h 核数法)/数值框架+仿真验证/美术音频方向+包体分包/工程结构与引擎选型论证/里程碑与验收门/概念名候选 2–3 交拍/成本画像;流水线 = 成书 → Codex+Opus 双评审 → 创始人逐份拍 → 拍一份开工一份(逐系统开发,每里程碑带可玩交付+门+验玩)。**三书成文 ✅ 同日**(夜市 261 行/割草 231 行/卡牌 257 行,各自七检绿;引擎格局 = Phaser/LittleJS/Phaser;跨书发现:割草与卡牌两 fork 独立撞车推荐山海经题材——「统一山海 IP 宇宙 vs 差异化」升创始人拍)→ **双评审 6 席 ✅ 同日全回**(夜市 Codex REVISE 7+Opus AWF 8 / 割草 Opus AWF 5+Codex AWF 6 / 卡牌 Codex REVISE 10 含 1 阻断+Opus AWF 11;硬货 = 夜市 10h 下限 7.5h 坐实、卡牌首屏零余量漏首战资产、编译期体积门后端实为 TODO、"千局秒级"与上级档分钟级口径不符、基线数值与尖塔逐值同触 clean-room 灰区;NSTAR 档 reachability 引用漂移随波亲修)→ **修入三单 ✅ 同日收工**(fable 席 ×3,会话重启中断一次后重开:夜市 273 行 F1–F10 全 fixed〔10h 改 40 日×15min 保守下限/离线锚 60%·8h→10%·2h/两本账/U8 拆 U8a·U8b/上界安全门〕/割草 231 行 F1–F7 全 fixed〔测量通道待建分层+measures.events schema/去重保守和 11.2h/Phaser 体积按 CDN 事实重写/触发器②布尔化〕/卡牌 291 行 F1–F10 全 fixed〔两本账 8.65MB 包内+2.41MB 冷载/墙钟降级挂 M1·M2 出口/周天钉死+动作 200 判 invalid/内容耗尽度判据/结构常数例外清单+曲线锚重推 1 费=7 伤 4 甲/S8b 仿真前移/Balatro 日期核正〕;三书共享口径 = 两本账/阈值全标草案待校准/编译期门改"契约已定义实现待接"/存档定容升三款共享基建单〔最早需求方=卡牌 M2 前,排期待拍〕;终审抽验+七检绿)→ **★创始人四拍收口(2026-07-06)**:①IP = **统一山海原创 IP 宇宙**(割草《山海行纪》+卡牌《山海巡异录》成系列,共用原创世界观与一条美术管线)②夜市正式名 = **《夜市一条街》**③存档定容共享单 = **立即独立切单**(见 W-SAVE-CAP,与 M0 同批)④**三书即批即开——三线 M0 已派(fable ×3)**;随批生效默认 = 割草竖屏/survivor 品类键/每日挑战入 v1/卡牌 2 职业定容/mmx 音频通道/结构常数 clean-room 例外清单;排队 = 山海宇宙设定一页 + 美术音频管线选型材料(随风格版前置,M1 前出)。**★三线 M0 全回卷(2026-07-06 同夜,主会话逐席验真真跑复现)**:①割草《山海行纪》M0 **完成(本机面全绿)**——落位 `game-runtime/games/shanhai-xingji/`(16 新文件;LittleJS 族走 `_template` L1 骨架 11 插件全量);单测+全链 boot 冒烟 7/7、三场景 headless 全过(P0 静止 39.1s 死≤90s/关火纯走位 60s 满血/P2 撑满 300s 胜 724 杀 11 次升级)、1400 逻辑实体压测 p95 1.2ms≤6ms 逻辑预算(渲染侧 60fps@2500+基准真机=触发器①未全判待窗口)、首屏 251KB(gz 87KB)过 0.6MB 门;M1 头号缺口=手感测量面(hit-feedback `measures.events[]`+摇杆轨迹 driver);范围外观察=P2 全程满血、难度上限偏软(属 §8.1 首轮仿真校准,未动)。②卡牌《山海巡异录》M0 **PARTIAL(逻辑面完成)**——落位 `tier2/games/shanhai-xunyilu/`(12 新文件;自 fixtures fallback 统一挪至书钉同根并重建复验);battle-core 40 断言绿、贪心 driver 5+100 seed 全 win/挂机 13 回合 lose、0.044ms/场(单场口径勿外推)、链语义四条逐条钉死、bundle 0.034MB=账A 预算 10%;**实测 Phaser 3.80.1 首屏两口径分歧:raw 1.13MB 超账B 0.18MB / gzip 传输 0.30MB 富余 0.65MB → 账B 建议钉「传输字节」口径随真机定案**;engineBundle/bundleSize 契约口径对 external Phaser 形态不适配(在册待契约侧确认);M1 头号缺口=card driver(S8,无它则完整 run 墙钟锚/九门 driven/首局门无从落地)。③夜市《夜市一条街》M0 **PARTIAL**——落位 `tier2/games/night-market/`(14 源文件);headless 双路冒烟 12/12(勤快席 served=327/coins=3206 vs 放任席 rep=0、latch 不回弹、同 seed 账本一致)、单营业日快进 12.0ms=U8a 墙钟锚首数据点、两本账落 `dist/m0-bytes.json`;余 2 项=九门经营 driver 接线(M1 前必做,回归底座)+浏览器真跑窗口(首反馈<2s/60fps);M1 头号缺口=三资源经济骨架+解锁树 40 节点+save_state v1 影子存档。**★M0 浏览器真跑验证已回(2026-07-06 mini-desktop headless Chrome+裸 CDP:真指针注入+像素方差/多帧 diff 判帧,证据=mini-desktop /tmp/polaris-m0-verify/ 10 PNG+result.json+diag.json)**:①夜市**三门全过**(boot 0 error/render 活帧 lumStd 23.6/真指针点顾客 served 0→1 coins 0→16 因果链通;暖首反馈 272ms)=三款集成正确性对照基准;②割草 **render 门 FAIL——play 首帧 drawGame 抛 IndexSizeError(arc 半径 -0.5)→宿主 rafLoop 无 try/catch RAF 永久死、画面冻结**,默认种子稳定复现(boot/input 两门过、暖首反馈 49ms);③卡牌 **render+input 门 FAIL——host 集成 bug:main.js 自建第二个 Phaser 实例且 boot 未接 parent→真画面渲到视口外、可见区纯黑、真指针够不着 scene**(逻辑经 driver 通道全通 energy/hand/enemyHp 因果成立;另 M0 手牌未 setInteractive 与书面「点选出牌」出入);**三条真缺陷已即时折进割草/卡牌两 M1 席工单头号项**(同目录同席防撞车;rafLoop 异常隔离列平台项待裁);真机冷暖启首批计时=割草 49/58ms、卡牌 129/156ms、夜市 272/802ms(含 CDN);五笔已提交推送 origin/dev/2.0.0(`207bb797` 设计台账/`2ce0ed3a` 存档/`0c0f1705` 夜市/`86611fb2` 割草/`6dadc701` 卡牌)。**★M1 已派(2026-07-06 创始人令"准备开始M1",fable ×4 并行)**:①夜市=九门经营 driver 接线前置+三资源流转+解锁树 40 节点(静态可达门)+save_state v1(SaveEnvelope 形状、影子介质、M5 切正式槽)+离线收益+U8a 跨日串跑,门=九门回归+静态可达+仿真单局 smoke(书 §12 M1 行);②割草=测量面落地(hit-feedback `measures.events[]` 探针+virtual-joystick 轨迹 driver)+手感断言表 11 条接通+entity-pool/swarm-steering/auto-targeting 沉淀 L2 插件+canvas-ui-kit 首版,真机校准锁值项如实标窗口(书 §12 M1 行+§6 分层口径);③卡牌=S5 链轴+链轨 UI/S6 map-core 三幕/S7 敌 AI 意图组 8 敌/S8 card driver v1+play-spec、内容扩 30 卡 3 遗物,门=首局门+九门 driven 全绿+完整 run 单局墙钟锚实测(书 §12 M1 行,W-SAVE-CAP 入库=书 §14④ M2 入口门已就位);④共享前置=山海宇宙设定档+美术/音频管线选型材料(交拍件:生图服务/风格一致性/字体子集/音频三案/12 张风格版眼验制方案;卡牌书风险①点名三款共享最大排期风险);撞车防护=夜市/卡牌两席对 tier2 共享 harness 只许 additive+动前互查+点名报告。**★共享前置件已交拍并五拍落定(2026-07-06)**:[山海宇宙设定与美术音频管线选型材料](../agent-specs/2026-07-06-山海宇宙设定与美术音频管线-选型材料.md)(97 行,七检绿)创始人五问全按推荐——①锁山海设定 v1(活舆图《山海图》/巡山使·巡异使双职业分饰两款/符箓五行/异兽谱单源/矿彩国风锚)②夜市独立市井线+彩蛋轻联动③生图 A·mmx 起步、B·Seedream 备而不开(升档判据=眼验不过或连续两批良率<40%)④风格版山海两款合批先行(割草 30 帧+卡牌 12 张同锚同兽谱),夜市随其三候选拍后⑤零外采开工(mmx music+程序合成 SFX+OFL 字体),AI 产物商用条款核对=首个法务动作;落地序=产线脚本三件(抠图/图集/字体子集)→批次一样张→创始人眼验→锁锚开批产,**批次一已切单(fable,与卡牌 M1 平行)**。**★M1 夜市/割草两席回卷并主会话验真绿(2026-07-06)**:①夜市 M1 完成——三资源流转(金币/声望=里程碑唯一来源不可购/食材批次 FIFO 保鲜)+解锁树 40 节点(静态可达门 8/8:DAG 拓扑/菜谱双射/定价 cost=Σ食材对账)+save_state v1(SaveEnvelope 形状+日初检查点防存档刷币+未来版本拒读不毁档+**存档往返确定性实证**:5 日连跑 vs 3 日存-读-续终态逐字段一致)+离线收益(近 3 日净入均值×10% 封顶 2h 单源公式)+九门接线件全套(business-serve driver+play-spec+urlQuery 门参数化+宿主探针钩;CDP 真跑排 mini-desktop 窗口);证据=冒烟 29 断言+单测 15/15+可达门 8/8+5 日串跑 23.1ms/日(主会话真跑复现);②割草 M1 完成——**浏览器崩溃修根因**(render.js drawGround 位提取有符号 `>>` 应为无符号 `>>>`:h≥2³¹ 时 (h>>16)%3=-2→arc 半径-0.5,修位提取语义而非钳症状;校验型 canvas 桩回归修前红/修后绿)+六件 L2 插件沉淀(virtual-joystick/hit-feedback/entity-pool/swarm-steering/auto-targeting/canvas-ui-kit,各五件套 impl+api.d.ts+manifest+PLUGIN.md+test,gz 预算全 ✔)+手感断言表 11 条逐条接通(2/5/6/10/11 号的真机校准与真引擎视觉证据如实标窗口,真机 p95≤16.7ms 未验不冒称)+sim 换装三件纯核零回退(724 杀/p95 1.174ms 与 M0 逐值一致);证据=游戏 13/13+整库 260/260+manifest 19/19(主会话真跑复现);③席位判断认可两条:夜市 driver 与卡牌席同放 tier2/harness/(两款一致官方配方优于自创 modulePath,play-phaser.cdp.cjs 双分发 card-battle/business-serve 共存核过)、割草 wrapper 有意不回模板形(防插件自订阅双驱,PLUGIN.md 留痕);④**新平台项在册:rafLoop 异常隔离**(boot-game-host RAF 循环无 try/catch,任何游戏 render 抛错即画面永久冻结零可观测——本次崩溃的放大器;修法=帧回调 try/catch+ctx.log 计数+连续 N 帧错才停+`__gameRenderError` 旗;共享 L1 件,归属排 M2 波前小单);⑤卡牌 M1 同夜回卷并验真绿——**host 集成修根因**(main.js 重写为宿主契约形态:工厂零 Phaser import、永不自建引擎实例,场景经 ctx.game.scene.add 挂唯一宿主实例〔与夜市款同构〕;真人指针与 injectInput 同走 route→tapTargets 命中序=同因果,M0 手牌盖板缺陷随重构消失;run-smoke S0 六条静态自查防回潮;浏览器端复验排窗口)+M1 全量(S5 链轴完整化/S6 map-core 三幕 DAG 静态可达/S7 敌 8 种〔意图回合开始钉住,相位切换下「展示=执行」逐字段成立〕/S8 card driver v1+play-spec/30 卡五行各 6/3 遗物全规则级/奖励三选一可跳过/HP 携带/run 级三 latch)+**完整 run 单局墙钟首实测**(40 seed 中位 1.6ms/p95 3ms 级 headless 开发机口径;外推 M2 全矩阵 96k 局≈分钟级单线程,数值 CI 可行性坐实)+数值首轮回填全标〔草案〕(贪心 v1 胜率 5%=下界非标定对象,A0 带 45–60% 校准归 M2 S12 三档 driver,不削敌线迁就最弱策略);证据=单测 2 体(battle-core 40 断言含定容更新 T1a/T1b+run-core 12 组)+run-smoke(S1 地图 150 张/首局门 5 seed 全 win/通关 2/40 全自然终局零 invalid/幕缩放 1070 采样全中)主会话真跑复现;battle-scene 退役 git 留档;harness 共享面=card-battle.driver 新增+runDriver 5 行 additive(与夜市席同文件双分发共存复核 OK);M2 头号=S12 仿真外壳(参数扫描+曲线聚合+金标回归;S8b 20 卡最小池接环前移 M2 首单)。**★三线 M1 全部收口(2026-07-06 同夜,四席=三游戏+设定管线全回、主会话逐席验真真跑复现),M2 待令**;M1 批未 commit 可提交(建议四笔:夜市/割草〔游戏+插件〕/卡牌〔游戏+harness 双席合笔〕/设定档与台账);割草卡牌两修复的浏览器真跑复验排 mini-desktop 窗口(前置=commit+push 供拉取);风格版批次一在飞(fable,样张+产线脚本三件)。 +- [ ] **W-POLARIS · 品类北极星矩阵:逐品类全方位样板游戏**(创始人 2026-07-06 拍立项,三拍:①首批便宜档品类 = **敏捷点击 + 经营 + 解谜**(非遗/合成消除/放置挂机二批随 W-TPL 三轴打分交拍、剧情/TRPG 三批先补 few-shot 良率短板)②复杂档北极星扩第二款 = **Space Huggers 靶(横版动作射击)口径确认转执行版**(95% 可审计矩阵 / 多人手柄不纳入阶段一必做·手机 feed 单人主路径优先 / 阶段一 LittleJS 承重墙·Phaser 后续富表现升级——三项按靶档建议生效)③便宜档样板方式 = **精造样板 → 蒸馏十件套 → 产线独立验证**)→ 总纲档 = [`品类北极星矩阵总纲-设计`](../agent-specs/2026-07-06-品类北极星矩阵总纲-设计.md);目标 = 每入选品类交付 1 款「全方位最佳示例」游戏(玩法/机制/数值/美术/手感/代码工程规范/标准插件全维度标杆)+ 该品类模板十件套成型入库;流水线 = 段①精造(opus 领,**游戏概念规格一页先交创始人拍** = 「定具体游戏」一步)→ 段②蒸馏(W-TPL 十件规格 + template-spec-gate)→ 段③产线试产(n=3–5 过九门 + D1 成本锚,不许手工特调);**款间串行**(一款段③收口才开下一款,首款收口后回顾流水线修法回写);**reflex 特例 = W-TPL §9 试产先行(D6「首跑验产线」已拍,不动已批工单)、试产后满配富化回写金标/few-shot**;复杂档两款各乘既有线(经营《夜市一条街》= W-NSTAR L1–L4;横版动作射击 = 靶档转执行版,切换单 opus 1 会话产阶段化 plan 交拍);边界 = 十件/三轴/四门单源在 W-TPL、rubric 定义权在质量 SoT、不改 W-NSTAR 单品类边界、复杂档不占 16 周关键路径、批二三组成待三轴材料交拍;美术如实定容 = 首批走现有素材通道、W-ASSET-MAT-VERIFY 接通后升级;验收 = 每款样板过九门+品类金标复验+创始人验玩 + 十件套过 template-spec-gate + 试产达 D1 锚;预算 = 便宜档每款 opus 2–4 会话+真跑数元级,SpaceHuggers 切换单 opus 1 会话;下一步三单可派 = ⓐ reflex 试产(W-TPL §9,前置=质量 SoT §7 替代丰富轴申报)ⓑ 经营样板精造(概念一页交拍)ⓒ SpaceHuggers 执行版切换。**★2026-07-06 晚创始人升档(覆盖同日早间部分拍定)**:品类北极星 = **3 款顶级长线游戏并行开发**——①阵容拍定 = 经营《夜市一条街》+ 肉鸽割草(幸存者类)+ 卡牌构筑肉鸽(尖塔/Balatro 谱系);②硬标准 = 玩法丰富度撑 **10 小时以上**、画风精美、UI/音效/音乐/机制/数值顶级、可对标 2025 top 游戏玩法与丰富度;③**全 fable5 high 主导 + 不考虑预算**(D1 成本锚、款间串行、「fable 只做设计」经济学对这三款豁免,后续会话不得自行降档);④SpaceHuggers 靶线保持独立不占名额;⑤**clean-room 红线** = 机制/系统/丰富度对标可,美术/代码/文案/角色/音乐/名称/关卡编排全原创(备案/软著硬前提,执行法沿靶档双代理隔离);⑥便宜档轻样板三款及精造→蒸馏→试产三段法整体移交 W-TPL 线承接(reflex 试产 D6 不变),不再占北极星名分〔fable 归置,可逆〕;⑦三条如实约束进设计书正面解决 = 包体门分包与存档定容前移 / 快进仿真器先于数值定稿落地 / 美术音频精造管线选型出材料;⑧夜市款直接消费 NSTAR 档 §1 标的规格转开发(席位架构 §2–5 拍板独立进行、三款反哺其真实负载)。**当前动作 = 三份开发设计书并行起草(fable fork ×3,2026-07-06 已派)**,每份含对标拆解(clean-room)/系统与内容量架构(10h 核数法)/数值框架+仿真验证/美术音频方向+包体分包/工程结构与引擎选型论证/里程碑与验收门/概念名候选 2–3 交拍/成本画像;流水线 = 成书 → Codex+Opus 双评审 → 创始人逐份拍 → 拍一份开工一份(逐系统开发,每里程碑带可玩交付+门+验玩)。**三书成文 ✅ 同日**(夜市 261 行/割草 231 行/卡牌 257 行,各自七检绿;引擎格局 = Phaser/LittleJS/Phaser;跨书发现:割草与卡牌两 fork 独立撞车推荐山海经题材——「统一山海 IP 宇宙 vs 差异化」升创始人拍)→ **双评审 6 席 ✅ 同日全回**(夜市 Codex REVISE 7+Opus AWF 8 / 割草 Opus AWF 5+Codex AWF 6 / 卡牌 Codex REVISE 10 含 1 阻断+Opus AWF 11;硬货 = 夜市 10h 下限 7.5h 坐实、卡牌首屏零余量漏首战资产、编译期体积门后端实为 TODO、"千局秒级"与上级档分钟级口径不符、基线数值与尖塔逐值同触 clean-room 灰区;NSTAR 档 reachability 引用漂移随波亲修)→ **修入三单 ✅ 同日收工**(fable 席 ×3,会话重启中断一次后重开:夜市 273 行 F1–F10 全 fixed〔10h 改 40 日×15min 保守下限/离线锚 60%·8h→10%·2h/两本账/U8 拆 U8a·U8b/上界安全门〕/割草 231 行 F1–F7 全 fixed〔测量通道待建分层+measures.events schema/去重保守和 11.2h/Phaser 体积按 CDN 事实重写/触发器②布尔化〕/卡牌 291 行 F1–F10 全 fixed〔两本账 8.65MB 包内+2.41MB 冷载/墙钟降级挂 M1·M2 出口/周天钉死+动作 200 判 invalid/内容耗尽度判据/结构常数例外清单+曲线锚重推 1 费=7 伤 4 甲/S8b 仿真前移/Balatro 日期核正〕;三书共享口径 = 两本账/阈值全标草案待校准/编译期门改"契约已定义实现待接"/存档定容升三款共享基建单〔最早需求方=卡牌 M2 前,排期待拍〕;终审抽验+七检绿)→ **★创始人四拍收口(2026-07-06)**:①IP = **统一山海原创 IP 宇宙**(割草《山海行纪》+卡牌《山海巡异录》成系列,共用原创世界观与一条美术管线)②夜市正式名 = **《夜市一条街》**③存档定容共享单 = **立即独立切单**(见 W-SAVE-CAP,与 M0 同批)④**三书即批即开——三线 M0 已派(fable ×3)**;随批生效默认 = 割草竖屏/survivor 品类键/每日挑战入 v1/卡牌 2 职业定容/mmx 音频通道/结构常数 clean-room 例外清单;排队 = 山海宇宙设定一页 + 美术音频管线选型材料(随风格版前置,M1 前出)。**★三线 M0 全回卷(2026-07-06 同夜,主会话逐席验真真跑复现)**:①割草《山海行纪》M0 **完成(本机面全绿)**——落位 `game-runtime/games/shanhai-xingji/`(16 新文件;LittleJS 族走 `_template` L1 骨架 11 插件全量);单测+全链 boot 冒烟 7/7、三场景 headless 全过(P0 静止 39.1s 死≤90s/关火纯走位 60s 满血/P2 撑满 300s 胜 724 杀 11 次升级)、1400 逻辑实体压测 p95 1.2ms≤6ms 逻辑预算(渲染侧 60fps@2500+基准真机=触发器①未全判待窗口)、首屏 251KB(gz 87KB)过 0.6MB 门;M1 头号缺口=手感测量面(hit-feedback `measures.events[]`+摇杆轨迹 driver);范围外观察=P2 全程满血、难度上限偏软(属 §8.1 首轮仿真校准,未动)。②卡牌《山海巡异录》M0 **PARTIAL(逻辑面完成)**——落位 `tier2/games/shanhai-xunyilu/`(12 新文件;自 fixtures fallback 统一挪至书钉同根并重建复验);battle-core 40 断言绿、贪心 driver 5+100 seed 全 win/挂机 13 回合 lose、0.044ms/场(单场口径勿外推)、链语义四条逐条钉死、bundle 0.034MB=账A 预算 10%;**实测 Phaser 3.80.1 首屏两口径分歧:raw 1.13MB 超账B 0.18MB / gzip 传输 0.30MB 富余 0.65MB → 账B 建议钉「传输字节」口径随真机定案**;engineBundle/bundleSize 契约口径对 external Phaser 形态不适配(在册待契约侧确认);M1 头号缺口=card driver(S8,无它则完整 run 墙钟锚/九门 driven/首局门无从落地)。③夜市《夜市一条街》M0 **PARTIAL**——落位 `tier2/games/night-market/`(14 源文件);headless 双路冒烟 12/12(勤快席 served=327/coins=3206 vs 放任席 rep=0、latch 不回弹、同 seed 账本一致)、单营业日快进 12.0ms=U8a 墙钟锚首数据点、两本账落 `dist/m0-bytes.json`;余 2 项=九门经营 driver 接线(M1 前必做,回归底座)+浏览器真跑窗口(首反馈<2s/60fps);M1 头号缺口=三资源经济骨架+解锁树 40 节点+save_state v1 影子存档。**★M0 浏览器真跑验证已回(2026-07-06 mini-desktop headless Chrome+裸 CDP:真指针注入+像素方差/多帧 diff 判帧,证据=mini-desktop /tmp/polaris-m0-verify/ 10 PNG+result.json+diag.json)**:①夜市**三门全过**(boot 0 error/render 活帧 lumStd 23.6/真指针点顾客 served 0→1 coins 0→16 因果链通;暖首反馈 272ms)=三款集成正确性对照基准;②割草 **render 门 FAIL——play 首帧 drawGame 抛 IndexSizeError(arc 半径 -0.5)→宿主 rafLoop 无 try/catch RAF 永久死、画面冻结**,默认种子稳定复现(boot/input 两门过、暖首反馈 49ms);③卡牌 **render+input 门 FAIL——host 集成 bug:main.js 自建第二个 Phaser 实例且 boot 未接 parent→真画面渲到视口外、可见区纯黑、真指针够不着 scene**(逻辑经 driver 通道全通 energy/hand/enemyHp 因果成立;另 M0 手牌未 setInteractive 与书面「点选出牌」出入);**三条真缺陷已即时折进割草/卡牌两 M1 席工单头号项**(同目录同席防撞车;rafLoop 异常隔离列平台项待裁);真机冷暖启首批计时=割草 49/58ms、卡牌 129/156ms、夜市 272/802ms(含 CDN);五笔已提交推送 origin/dev/2.0.0(`207bb797` 设计台账/`2ce0ed3a` 存档/`0c0f1705` 夜市/`86611fb2` 割草/`6dadc701` 卡牌)。**★M1 已派(2026-07-06 创始人令"准备开始M1",fable ×4 并行)**:①夜市=九门经营 driver 接线前置+三资源流转+解锁树 40 节点(静态可达门)+save_state v1(SaveEnvelope 形状、影子介质、M5 切正式槽)+离线收益+U8a 跨日串跑,门=九门回归+静态可达+仿真单局 smoke(书 §12 M1 行);②割草=测量面落地(hit-feedback `measures.events[]` 探针+virtual-joystick 轨迹 driver)+手感断言表 11 条接通+entity-pool/swarm-steering/auto-targeting 沉淀 L2 插件+canvas-ui-kit 首版,真机校准锁值项如实标窗口(书 §12 M1 行+§6 分层口径);③卡牌=S5 链轴+链轨 UI/S6 map-core 三幕/S7 敌 AI 意图组 8 敌/S8 card driver v1+play-spec、内容扩 30 卡 3 遗物,门=首局门+九门 driven 全绿+完整 run 单局墙钟锚实测(书 §12 M1 行,W-SAVE-CAP 入库=书 §14④ M2 入口门已就位);④共享前置=山海宇宙设定档+美术/音频管线选型材料(交拍件:生图服务/风格一致性/字体子集/音频三案/12 张风格版眼验制方案;卡牌书风险①点名三款共享最大排期风险);撞车防护=夜市/卡牌两席对 tier2 共享 harness 只许 additive+动前互查+点名报告。**★共享前置件已交拍并五拍落定(2026-07-06)**:[山海宇宙设定与美术音频管线选型材料](../agent-specs/2026-07-06-山海宇宙设定与美术音频管线-选型材料.md)(97 行,七检绿)创始人五问全按推荐——①锁山海设定 v1(活舆图《山海图》/巡山使·巡异使双职业分饰两款/符箓五行/异兽谱单源/矿彩国风锚)②夜市独立市井线+彩蛋轻联动③生图 A·mmx 起步、B·Seedream 备而不开(升档判据=眼验不过或连续两批良率<40%)④风格版山海两款合批先行(割草 30 帧+卡牌 12 张同锚同兽谱),夜市随其三候选拍后⑤零外采开工(mmx music+程序合成 SFX+OFL 字体),AI 产物商用条款核对=首个法务动作;落地序=产线脚本三件(抠图/图集/字体子集)→批次一样张→创始人眼验→锁锚开批产,**批次一已切单(fable,与卡牌 M1 平行)**。**★M1 夜市/割草两席回卷并主会话验真绿(2026-07-06)**:①夜市 M1 完成——三资源流转(金币/声望=里程碑唯一来源不可购/食材批次 FIFO 保鲜)+解锁树 40 节点(静态可达门 8/8:DAG 拓扑/菜谱双射/定价 cost=Σ食材对账)+save_state v1(SaveEnvelope 形状+日初检查点防存档刷币+未来版本拒读不毁档+**存档往返确定性实证**:5 日连跑 vs 3 日存-读-续终态逐字段一致)+离线收益(近 3 日净入均值×10% 封顶 2h 单源公式)+九门接线件全套(business-serve driver+play-spec+urlQuery 门参数化+宿主探针钩;CDP 真跑排 mini-desktop 窗口);证据=冒烟 29 断言+单测 15/15+可达门 8/8+5 日串跑 23.1ms/日(主会话真跑复现);②割草 M1 完成——**浏览器崩溃修根因**(render.js drawGround 位提取有符号 `>>` 应为无符号 `>>>`:h≥2³¹ 时 (h>>16)%3=-2→arc 半径-0.5,修位提取语义而非钳症状;校验型 canvas 桩回归修前红/修后绿)+六件 L2 插件沉淀(virtual-joystick/hit-feedback/entity-pool/swarm-steering/auto-targeting/canvas-ui-kit,各五件套 impl+api.d.ts+manifest+PLUGIN.md+test,gz 预算全 ✔)+手感断言表 11 条逐条接通(2/5/6/10/11 号的真机校准与真引擎视觉证据如实标窗口,真机 p95≤16.7ms 未验不冒称)+sim 换装三件纯核零回退(724 杀/p95 1.174ms 与 M0 逐值一致);证据=游戏 13/13+整库 260/260+manifest 19/19(主会话真跑复现);③席位判断认可两条:夜市 driver 与卡牌席同放 tier2/harness/(两款一致官方配方优于自创 modulePath,play-phaser.cdp.cjs 双分发 card-battle/business-serve 共存核过)、割草 wrapper 有意不回模板形(防插件自订阅双驱,PLUGIN.md 留痕);④**新平台项在册:rafLoop 异常隔离**(boot-game-host RAF 循环无 try/catch,任何游戏 render 抛错即画面永久冻结零可观测——本次崩溃的放大器;修法=帧回调 try/catch+ctx.log 计数+连续 N 帧错才停+`__gameRenderError` 旗;共享 L1 件,归属排 M2 波前小单);⑤卡牌 M1 同夜回卷并验真绿——**host 集成修根因**(main.js 重写为宿主契约形态:工厂零 Phaser import、永不自建引擎实例,场景经 ctx.game.scene.add 挂唯一宿主实例〔与夜市款同构〕;真人指针与 injectInput 同走 route→tapTargets 命中序=同因果,M0 手牌盖板缺陷随重构消失;run-smoke S0 六条静态自查防回潮;浏览器端复验排窗口)+M1 全量(S5 链轴完整化/S6 map-core 三幕 DAG 静态可达/S7 敌 8 种〔意图回合开始钉住,相位切换下「展示=执行」逐字段成立〕/S8 card driver v1+play-spec/30 卡五行各 6/3 遗物全规则级/奖励三选一可跳过/HP 携带/run 级三 latch)+**完整 run 单局墙钟首实测**(40 seed 中位 1.6ms/p95 3ms 级 headless 开发机口径;外推 M2 全矩阵 96k 局≈分钟级单线程,数值 CI 可行性坐实)+数值首轮回填全标〔草案〕(贪心 v1 胜率 5%=下界非标定对象,A0 带 45–60% 校准归 M2 S12 三档 driver,不削敌线迁就最弱策略);证据=单测 2 体(battle-core 40 断言含定容更新 T1a/T1b+run-core 12 组)+run-smoke(S1 地图 150 张/首局门 5 seed 全 win/通关 2/40 全自然终局零 invalid/幕缩放 1070 采样全中)主会话真跑复现;battle-scene 退役 git 留档;harness 共享面=card-battle.driver 新增+runDriver 5 行 additive(与夜市席同文件双分发共存复核 OK);M2 头号=S12 仿真外壳(参数扫描+曲线聚合+金标回归;S8b 20 卡最小池接环前移 M2 首单)。**★三线 M1 全部收口(2026-07-06 同夜,四席=三游戏+设定管线全回、主会话逐席验真真跑复现)**;M1 批四笔已提交推送 origin/dev/2.0.0(`3b64fa38` 夜市/`948ee24f` 割草+插件/`329b82ca` 卡牌+harness 双席合笔/`247b19e1` 设定档与台账)。**★M2 波已开(2026-07-06 创始人令"M1→M2 completed all task",六席并发)**:①夜市 M2=八系统机制齐(扩张/研发/员工/事件/变现 mock/成就图鉴最小可玩闭环+四前瞻节点兑现;门=九门回归+富三门经营语义接线〔RICHGAME_GATED_ARCHETYPES additive〕+品类 rubric ≥70%〔机验面,LLM/人判项如实标窗口〕+仿真千局无死锁);②割草 M2=build 体系(武器 12+被动 14+进化 12+暂停总览,命名从山海设定 v1 符箓五行取)+仿真参数扫描首跑(门=build 四判据 P2 档+墙钟回填书 §8.3+UI 三项布尔清单;触发器② canvas-ui 产能判定材料交回);③卡牌 M2=职业甲全内容(S8b 前移+S9 66 卡三批入表即跑 smoke+S10 遗物 40+S11 商店删卡+SaveEnvelope 存档续玩+S12 全矩阵扫描 v1;门=全矩阵+金标墙钟实测 CI 分层定案+A0 带 45–60% 三档 driver 校准+存档往返负例);④风格版批次一续跑(前席会话重启中断,断点=锚包/兽谱/镜头单在盘、生图 0 张;续跑至拼板图交眼验,超 ¥200 停报);⑤rafLoop 异常隔离平台小单(opus:帧回调 try/catch+err 计数+连续 10 帧才停+`__gameRenderError` 旗,只动宿主不碰在飞游戏目录);⑥mini-desktop M1 修复复验+九门 CDP 首跑批(opus:割草进 play ≥300 帧无 IndexSizeError 非冻结/卡牌单 canvas 挂 parent+真指针点牌前进/夜市与卡牌九门 driven 首跑逐门原样;HEAD 锚=`247b19e1`)。撞车防护沿 M1 惯例(共享面 additive+动前互查+点名报告;割草席与 rafLoop 席以 game-runtime/games/ vs src/host/ 目录隔离)。**★M2 三线+rafLoop 全回卷并主会话验真绿(2026-07-06/07 同夜)**:①夜市 M2=八系统最小闭环全落(扩张盘地块入槽/研发耗食材扩菜单/员工帮工自动出招走同 tapCustomer 链+日结扣薪/事件日初掷签 rng 游标重放保确定性/变现位 mock 五路径回调仅 filled 发奖 pending 8s 兜底/成就只发金币守声望纯度+双图鉴;效果全走解释器,M1 四前瞻节点全兑现),**门①九门+富三门 mini-desktop CDP 真跑 ACCEPT**(serve 三门:三联动 recipesSourced/unlockDagAcyclic/serveSettlesCoins/cookConsumesStock、经济 diligent vs idle 双路、latch 终态驻留;判定书入 evidence/)、门③千局首扫 1000 局零死锁零 uncaught(48ms/日)、门② rubric 结构面 14/16 机验在位(条8 音反馈归 U12/条11 metadata 归平台面;LLM 分按 SoT 纪律待评审窗口不冒称);冒烟 29→95 断言/可达门 8→13 查全过;**顺手修 harness 既有缺陷**(play-phaser.cdp.cjs winRes 块内声明块外引用致全品类 playReport 恒 null,声明上提零业务变化);②割草 M2=build 体系全表化(武器 12×8 级五族/被动 14×5/进化 12/难度 D0–D5/暴击轴/聚灵珠;build-model.js=派生数值唯一解释器,sim 多武器核 AoE 收集-降序结算防下标漂移)+扫描外壳 sim-scan(两臂抽样/四判据/worker 并行),**build 四判据 1080 局全绿**(12 武器定向胜率全≥40%/最强 85%≤85%/随机中位 55% 带沿/被动相关 |r|max 0.25;②③带沿如实注记,确定性种子复跑逐值一致)、**墙钟实测回填书 §8.3**(单局 mean 1.88s/6 worker 180 局分,原「<1s」外推偏乐观一个量级,夜批结论不变)、UI 三项 headless 断言全真+canvas-ui-kit v1.1 滚动列表一会话落成→**证据面建议触发器②不触发(继续 LittleJS),CDP 补证待窗口后母会话终判**;游戏 27/27+三场景+整库 269/269;③卡牌 M2=职业甲全内容(66 卡三批入表即跑/遗物 40/商店五 API+删卡/SaveEnvelope 存档续玩 13 断言:往返逐字段一致+续玩确定性×3 seed+坏版本 9 负例全拒+峰值 2148 码元余量 97%)+**数值 CI 三层定案**(PR smoke 3s/nightly 23,000 局 36.2s/批产 0.5s,写入 README;96k 局外推≈2.7 分钟单线程)+**A0 贪心 47.3% 入带 45–60%**(调参主杠杆=构筑当量选卡+商店序 +19.7pp;随机/挂机 0%=下界观测未削敌线;死卡候选 14 张=贪心单策略窄化,治理归 M3 多样性 driver)+金标 20 套锁定+static-screen 66 卡 29 万序列零经济环;六门全绿;④rafLoop 异常隔离落地(stub 通道帧回调 try/catch+err 计数+连续 10 帧才熔断+`__gameRenderError` 取证旗,正常路径逐字不变;新测 6/6,整库 260→266/266;real 通道引擎掌帧边界如实注记)。三席 M3 头号已报:夜市=内容量灌装+数值定标(42 节点 40 日内耗尽,10h 靠 60 菜谱/30 顾客/24 事件撑)/割草=20 分钟正式波表+双 Boss+词缀精英(300s 占位线是当前时间基,波表重做需整体重扫)/卡牌=进阶 A1–A15 修正表入矩阵+多样性 driver(死卡治理)。M2 批未 commit 可提交。**★风格版批次一交付+创始人眼验拍「锁锚开批产」(2026-07-07)**:42/42 样张(行纪 30 帧+巡异录 12 张,矿彩国风锚 r1)、总成本 **¥1.44–1.88/57 呼、首过率 81%**(淘汰 12 张逐张留痕 manifest.jsonl)、三拼板图+产线三件真跑演示(色键抠图/图集 2 页 png 4006KB→webp 599KB/字体子集 780 字→176KB woff2,实测修正=free-tex-packer 不直出 webp 补 PIL 转码)、主会话亲验两拼板(两款风格对位成立/**狰同源可辨=一条管线供两款首检成立**/法器卡框结算图全落位);已知短板=主角跨帧服饰漂移(A 档单参考图弱项),批产期工艺压法=定妆帧作参考图+关键姿态逐帧,不换通道;工艺发现 7 条在批次 README(兽名不入 prompt/「鲛」prime 龙形/subject-ref 证伪/UI 伪字走程序排字等)待蒸馏 .agents/;落位 docs-design/山海风格版-批次一/(82 文件,可提交)。批产解锁=割草 M3 风格版 30 帧已在手、卡牌 M2 初眼验已过,M3/M4 资产批产按锚 r1 直开。mini-desktop 复验:死席脚本被截杀损坏(文件内嵌工具标记),主会话重写 m1-reverify.cjs 亲跑中(割草卡牌两修复反转取证;ws 模块 /tmp 解析坑+Chrome /json/new 需 PUT 两坑已排)。 - [x] **W-SAVE-CAP · 存档面定容 + schemaVersion(北极星三款共享基建单①,创始人 2026-07-06 拍"立即独立切单")**→ 问题 = 现行 H5 存档四道闸(value ≤4KB/单 key 白名单 `idle:gameId:versionId`/JSON 校验/`wxgame:` 前缀)为无离线态模板设计,北极星复杂存档(夜市 save_state/卡牌 run+全局进度/割草 meta)顶破 4KB 且无 schemaVersion——NSTAR 档 §1.1.3 B 段坐实的前置增补需求;目标 = 只做两件:存档面定容 + schemaVersion 字段与基本迁移兼容,**不做 O-6 版本语义全案**。**✅ 完成(2026-07-06 同日,fable 席交付+主会话复验)**:方案 = 单槽版本信封定容(白名单新增恰等键族 `save:{gameId}:{versionId}` ≤65536 码元、写入必须 `{schemaVersion≥1, data}` 信封且宿主闸 fail-closed;`idle:` 族 4096 逐字不动;弃多 key 分片,逼近上限时按 plan §2 升级路另切小单);实现 = 契约先行(`contracts/sdk-interface.d.ts`+镜像 additive)+ 宿主闸抽纯函数模块 `game-studio/src/host/storageGate.ts` + save-progress 插件 v1.1.0 additive(`setVersioned/getVersioned` 逐级迁移/缺级兜底/降档读新档不毁档/无版本旧档按 0 版进链);证据 = 插件单测 18/18(主会话真跑复验)+ game-runtime 31/31 + 宿主闸负向演示脚本入仓真跑全断言过(主会话复验)+ `vue-tsc`/`vite build` 绿 + docs-gate 七检绿;落盘 = 9 改 4 新含[设计页(plan 2026-07-06-002)](../plans/2026-07-06-002-feat-W-SAVE-CAP-存档定容与schemaVersion-plan.md),**未 commit、可独立成笔**;三书 M 门影子存档降级口径解除条件 = 本单入库(切换对象 = `save:` 槽 + `setVersioned/getVersioned`,锚点卡牌 M2/割草 M4/夜市 M5);界外如实 = save-progress 后端 postMessage β 接线(既有第 9 契约组欠账,随各款集成段)、O-6 全案;升级预留 = 触渠道云存档配额等外部约束回创始人。 - [ ] **W-PROBE · 第一人称需求探针方法固化**(创始人 2026-07-06 拍立项,**主线同步推进**:方法附录即刻固化,首个复用随子系统进设计期)→ 产出两件:ⓐ 方法附录并入 [`agentic-seat-context-design.md`](../../.agents/skills/agentic-seat-context-design.md) **§10**(查重结论:不新建文件)——八轮问题序列模板 + 收敛判据 + 固化格式 + 交接契约(下游设计档逐条消费基线留「采/改/弃」)——**✅ 2026-07-06 已落**(protocol §2.3 同步加条件前置句;强制级别待创始人拍);ⓑ 探针对象排期(唯一登记处=本单,防双写):候选 = 审核台辅助 agent / 玩家 feed 推荐 / 回流环运营席 / 创作者对话席下一代,按「谁先进设计期谁先探」,不自造需求;过程 = 附录固化(✅)→ 首个复用对象真跑全链(创始人驱动 fable 探针会话→基线档→opus 设计档)→ 按真跑发现修订收口;边界 = 探针产出永远是需求基线非架构 SoT、每对象一次 fable 探针会话为限、创始人驱动不可省(轮间方向修正是人的活)、只探已进设计期子系统、不入产品 runtime;验收 = 附录落库+索引同步(✅)+ 首个复用全链走通且设计档逐条引用基线 + 真跑问题回写;预算 = fable 0.5 会话(已用)+ 首次复用 1 探针会话。 - [ ] **W-GENLOG · 生成侧过程蒸馏回路**(创始人 2026-07-06 拍立项)→ 目标 = 把「生成过程日志 → 高频问题/错误/弯路识别 → 蒸馏进模板/skill/tools/门」从人工惯例(15 签名母语化/`save.get` 幻觉/latch 口径皆人工挖成)变成常设回路;与数据飞轮回流环构成同一飞轮的两个半环——回流环调「生成什么」(锚留存/收益,等放量与 join 键),本环调「怎么生成」(锚过门率/成本/轮数/盲修空转率,**数据已在盘、即刻可跑**);产出 = ⓐ 设计档(校准单范式姊妹环:六段同构、同一治理门;分析两层守架构红线=机械统计归代码〔门×品类失败矩阵/成本轮数离群/修复空转/幻觉 API 频次〕+ 弯路模式判读归 LLM 分析 agent;出口对齐注入铁律 = 模板/脚手架 > 门/校验器/工具签名 > skill 补密度〔few-shot/易犯幻觉清单〕> prompt,每条出口 = 蒸馏工单人审后走既有过门落库、绝不直写)ⓑ 首单实证 = 拿现存 bake-off/parity/m3 批(数百局 trace/verdict/game-log,零新增采集)跑一张过程校准单,判据 = 挖出人工未登记的高频模式且 ≥1 条转化为已验收蒸馏落库;过程 = fable 骨架(**✅ 2026-07-06 落档** = [`生成侧过程蒸馏回路-设计`](../agent-specs/2026-07-06-生成侧过程蒸馏回路-设计.md),七检绿;裁决点 5 条见档 §7,**④⑤已拍**(2026-07-06 按建议:④改动六成功面萃取归并本环、不另落第二条萃取线;⑤首单实证=内测冲刺后与 W-NSTAR L1 错峰,填肉设计不受限))→ opus 填肉分片(档 §6 五单,G-2/G-3 可并行)→ 双评审 → 创始人批 → 首单实证;边界 = 不动回流环已批机制(共用治理不重写)、离线批分析不进生成热路径、优化锚不碰留存/收益(归回流环)、金标与验收基准不纳入回流面(沿数据飞轮 SoT 红线)、蒸馏落库全走既有门(rubric-sync/template-spec-gate/prompt 四道闸/W-TPL 产线);依赖 = 无硬前置(统一 trace 契约落地后迁数据源,先用现存 trace.jsonl/trace_json);验收 = 设计档双评审+创始人批 + 首单两判据;升级 = 出口与 W-TPL/W-GENRE 撞面以其过门验收为准。