feat(art): 山海风格版批次一——42 样张+产线三件真跑,创始人眼验拍锁锚开批产
Some checks failed
contract-gates / contract-gates (push) Has been cancelled
docs-gate / docs-gate (push) Has been cancelled

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

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
lili 2026-07-06 19:20:47 -07:00
parent 7f0a825382
commit 86df18c4d8
90 changed files with 813 additions and 5 deletions

View File

@ -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 <OFL字体.ttf> 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 计。

View File

@ -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 的古籍文字意象+本锚演绎"
}

View File

@ -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"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 498 KiB

View File

@ -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"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 746 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 101 KiB

View File

@ -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"
}
}

View File

@ -0,0 +1 @@
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~§·—…、。《》「」『』一丈三上下不与专且丘业两中串临为主丽之乘乙习书乱二于云五交产亮人仍从代令仰件任伏优传伤位低体何作使供依侧侵修俯倒像元先光克入全八公共其具兽内册再写冲冷净凉凌凶出击刃分切划列则创利制刻前剑剪割力加动势勒勾包化北区十升半华单占卡印卷厉压原去参双发取受变叠口古句只可号各合同名后向呈周命品啸喜嘶器四回围固国图圈土在地场坚坠型域填增墨壁声处复外多大天央失头奇奔如始姿字宇守安完宙定实宿密对射小尘尺尾层居屑展属山岩岳峦峨崩嵌巍巡工巨已巴带帧席幅干平年并幽庄底度开异式张弧弱强归录形彩影径待律徐御循微徽心必念态性悦悬意愚感戏成或战戟扇手扑打执扩扫扬批抠护披拆拍拖拢拼拾持指挣挥据排掠探接描插搅撑撞收改攻放效敌敛散数整文斑斗料斩新方施旋无既日时昂星映是晕普景晰晶暗曰曲曳更最有服未本术朱朴杌条板构枚枯架染栏样核根格框案档梼检棱概槽模横次欧款正此残段毅母比毛气氛水求沉没沼法泛波泥泽洁流浅浊浮海消涌涸混清渗渲游源满演漫潮火灵灼点烈烟烤烧焉焚焦焰照燃燧爪片版牌牙牛物特犬状独狰猪猬玉环现珠理生用由甲电画界留白的皮盘目直盾眉眼着瞬瞰短石矿砂破砺碎磨神禁离秘积稀稳稿穷空穿突立竖站章笔符第签简箓算箭簇籍米粗粝糊系素红级纪纯纹线组细绎经结绕绘绝统维绿缀编缘缠缩罕美群羽翼考而职肌肤背胜脱腻腾自至色艺苇苍苗草荒莪落蓄蓝蓬虎蛰蟠血行衡衣补表袂被袭裁裂装褐西要覆见规视角解触计订记许设证词请谱谷象豹貌负败质贯贴费赤赭走起足跄跑跪踉踞身躯转轮轴边运近进远迫迸退选逐通造遇道邽部重野量金针银铺链锁锋锚锤镇镜长间闻阔阵降随隙雌雷雾青非面鞘鞭音页顶项须顽领颜额风飞饰首驳验高鲛鳞黄龇龟

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 106 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 134 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 100 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 128 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 123 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 580 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 284 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 267 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 328 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 430 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 434 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 333 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 855 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 226 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 359 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 332 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 367 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 475 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 408 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 669 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 344 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 494 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 248 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 392 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 436 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 293 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 718 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 323 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 688 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 296 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 387 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 294 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 408 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 485 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 306 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 515 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 296 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 491 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 646 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 542 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 448 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 566 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 554 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 531 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 682 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 621 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 628 KiB

View File

@ -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 龙形,否定词无效),兽形用形态语言描述"}

Binary file not shown.

After

Width:  |  Height:  |  Size: 559 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 482 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 347 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 237 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 517 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 334 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 377 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 483 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 434 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 512 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 460 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 657 KiB

View File

@ -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`);

View File

@ -0,0 +1,58 @@
#!/usr/bin/env python3
# 拼板图(contact sheet):批次样张 → 单张大图,创始人直接打开逐张眼验
# 用法: python3 contact-sheet.py <shots.json> <images根目录> <game> <输出.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)

View File

@ -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()))") 字)"

View File

@ -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);

View File

@ -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:<tol 纯背景,>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)

View File

@ -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": "失败结算图:残破的古图卷轴一角灼焦卷曲,墨色晕散,异兽剪影自图中挣脱远去,苍凉克制,竖幅,无文字" }
]
}

View File

@ -0,0 +1,22 @@
# 山海宇宙兽谱 · 首批四条(风格版批次一随批立谱)
> 依据:山海宇宙设定档 §1(2026-07-06 创始人拍定锁 v1)——兽谱单源,两款同名兽必须同谱面。
> 古籍出处为公有领域原文;形貌意象为本项目在矿彩国风锚下的**原创演绎**,不参考任何现代改编作品(clean-room 五条逐条生效)。
> 消费方:《山海行纪》(割草,兽潮敌)/《山海巡异录》(卡牌,敌兽与兽牌)。本批 **狰** 同时供两款取用,是「同兽同源」的第一次落地检验。
| 名 | 五行 | 出处 | 形貌意象(原创演绎) | 习性一句 |
|---|---|---|---|---|
| **狰** | 火 | 《山海经·西山经》章莪之山:"有兽焉,其状如赤豹,五尾一角,其音如击石,其名曰狰。" | 赤豹之躯,额生独角如燧石,五尾张开如焰扇,毛色朱砂间赭红,行处带火星 | 性烈喜斗,啸声如击石迸火;兽潮中为先锋,直取巡使 |
| **梼杌** | 土 | 《神异经·西荒经》:"西方荒中有兽焉,其状如虎而犬毛……人面虎足,猪口牙,尾长一丈八尺,搅乱荒中,名梼杌。" | 虎躯人面,犬毛蓬乱如枯草,长尾曳地,肤色赭石带土黄,眉目顽愚而凶 | 顽凶不退,遇阵直撞;兽潮中为破阵重锤,击退无效 |
| **穷奇** | 金 | 《山海经·西山经》邽山:"有兽焉,其状如牛,猬毛,名曰穷奇。"《海内北经》:"穷奇状如虎,有翼。" | 带翼巨虎,背生猬毛如短戟,双翼羽刃泛雌黄金光,目色冷白 | 闻斗而至,乘风掠袭;兽潮中自空而降,专袭施法位 |
| **涸泽鲛** | 水 | 原创(构词法:地貌「涸泽」+古兽字「鲛」;《山海巡异录》M0 首战敌) | 蛰居干涸沼泽的鲛属,鳞片如龟裂泥板,裂隙间渗幽蓝水光,双目如浊珠 | 蛰伏磨鳞蓄力,潮气至则起;战中逐回合砺鳞增伤(意图循环「磨鳞」) |
## 样张用临时代号(非定名,正式命名随各款概念细化)
- 《山海巡异录》职业甲(攻优,M0 数据表既有口径)样张意象:**离火符锋**——朱砂/离火系,符剑符火。
- 《山海巡异录》职业乙(守御)样张意象:**山岳镇御**——石青/山土系,盾印山纹。
- 《山海行纪》主角:**巡山使**(设定档定名),法器三件=雷符链/山字盾环/焚天羽(割草书既定)。
## 维护规则
新兽入谱先补本表一行(名/五行/出处或构词/形貌意象/习性),再进任一款的数据表与美术请求;两款取同名兽,prompt 一律从本谱面出发。本表随批次增量,归宿随山海设定档(设定变更走设定档修订)。

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.4 MiB

View File

@ -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 档多参考图机制是对症升级项)。

View File

@ -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)

View File

@ -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)· 即刻可派** |

File diff suppressed because one or more lines are too long