topfans/frontend/utils/laser-card/stylePool.js
Lenticular Studio Agent 67cf3d4177 chore: 清理 laserCompositor 微服务残留
- 删除已弃用的 compositor_client.go
- 删除激光合成微服务代码
- 添加 gateway 合成控制器和测试文件
- 添加 Dify prompt 补丁脚本

Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-23 22:44:03 +08:00

534 lines
34 KiB
JavaScript

/**
* 镭射卡风格池 — 45 个风格,5 档分层(N/R/SR/SSR/UR)
*
* 设计原则:
* 1. 每个 style 自包含 grating_config + bg_prompt + overlay_prompt,可独立喂给 compositor
* 2. 真实参考(reference 字段)指向实体卡牌系列,设计师可回溯优化
* 3. 权重(weight)在**同档位内**有效;跨档位权重由 gacha.js 的 RARITY_WEIGHTS 控制
* 4. 全英文 prompt 利于 AI 生图;负向提示"no text, no people, no watermark"防跑偏
* 5. bg_prompt 显式标注 sheen 角度/速度,与 grating_config 对齐,避免"参数是冷银但生图是紫色"的不一致
*
* 档位分布:
* - N(50%):日常量产,银底 + 单色带
* - R(30%):Refractor / Holo Rare 级常规工艺
* - SR(15%):限量,Mosaic / Atomic / 横纹类
* - SSR(4%):稀有,Full Art / Rainbow / Gold 类
* - UR(1%):终极,Secret / Star / Prismatic Secret 类
*
* @typedef {('N'|'R'|'SR'|'SSR'|'UR')} Rarity
* @typedef {Object} LaserStyle
* @property {string} id
* @property {Rarity} rarity
* @property {string} display_name_zh
* @property {string} display_name_en
* @property {number} weight
* @property {string} family
* @property {{series: string, year: string, note: string}} reference
* @property {{sheen_band_angle: number, sheen_speed: number, sheen_intensity: number, foil_coverage: number, backdrop_tone: string}} grating_config
* @property {string} color_hint
* @property {string} bg_prompt
* @property {string} overlay_prompt
* @property {string} tags
*/
export const LASER_STYLE_POOL = [
// ============ N 档(10 个,基础银底工艺)============
{
id: 'classic_silver', rarity: 'N', display_name_zh: '经典银底', display_name_en: 'Classic Silver', weight: 12,
family: 'panini_prizm',
reference: { series: 'Panini Prizm Silver Prizm', year: '2018-', note: '入门款 Prizm, 单角度折射' },
grating_config: { sheen_band_angle: 120, sheen_speed: 0.40, sheen_intensity: 0.32, foil_coverage: 0.55, backdrop_tone: '#A8ACB2' },
color_hint: '冷银 浅灰',
bg_prompt: 'pure silver holographic background, soft brushed metal texture, single subtle diagonal sheen band, neutral gray gradient, clean cardstock finish, minimalist industrial design, no text, no people, no watermark',
overlay_prompt: 'thin silver border, single diagonal light line, small geometric corner ornaments',
tags: 'classic,base,entry',
},
{
id: 'moonlight_silver', rarity: 'N', display_name_zh: '月光银', display_name_en: 'Moonlight Silver', weight: 10,
family: 'pokemon_tcg',
reference: { series: 'Pokémon TCG Base Set Holo', year: '1999', note: '初代宝可梦 holo, 微彩虹折射' },
grating_config: { sheen_band_angle: 115, sheen_speed: 0.35, sheen_intensity: 0.30, foil_coverage: 0.50, backdrop_tone: '#A89E91' },
color_hint: '月光银 香槟银',
bg_prompt: 'gentle moonlight silver holographic gradient, soft brushed metal with micro sparkles, muted silver-to-pearl shift, calm celestial mood, clean pastel undertones, no text, no people, no watermark',
overlay_prompt: 'thin pearl border, soft star scatter, subtle corner brackets',
tags: 'soft,pastel',
},
{
id: 'pearl_basic', rarity: 'N', display_name_zh: '珍珠银', display_name_en: 'Pearl Basic', weight: 10,
family: 'topps_chrome',
reference: { series: 'Topps Chrome Refractor (Base)', year: '1996-', note: 'Topps Chrome 入门反色' },
grating_config: { sheen_band_angle: 130, sheen_speed: 0.38, sheen_intensity: 0.34, foil_coverage: 0.58, backdrop_tone: '#B0ACA6' },
color_hint: '珍珠白 淡奶白',
bg_prompt: 'pearl white brushed metal holographic surface, soft luminous glow, neutral off-white gradient with faint iridescent shimmer, clean minimalist backdrop, no text, no people, no watermark',
overlay_prompt: 'fine pearl-white border line, gentle corner ornaments, no harsh shapes',
tags: 'pearl,clean',
},
{
id: 'frost_silver', rarity: 'N', display_name_zh: '霜银', display_name_en: 'Frost Silver', weight: 10,
family: 'pokemon_tcg',
reference: { series: 'Pokémon TCG Reverse Holo (Basic)', year: '2003-', note: '宝可梦基础系列反 holo' },
grating_config: { sheen_band_angle: 110, sheen_speed: 0.42, sheen_intensity: 0.30, foil_coverage: 0.48, backdrop_tone: '#9C9993' },
color_hint: '冰蓝 浅灰银',
bg_prompt: 'frosted silver metal surface with cool blue undertone, soft frosted glass texture, gentle vertical sheen band, clean icy minimalism, no text, no people, no watermark',
overlay_prompt: 'thin frosted edge line, sparse ice flake scatter, light frost corner motif',
tags: 'cool,frost',
},
{
id: 'warm_silver', rarity: 'N', display_name_zh: '暖银', display_name_en: 'Warm Silver', weight: 10,
family: 'panini_prizm',
reference: { series: 'Panini Prizm Base (Retail)', year: '2020-', note: '零售版基础款' },
grating_config: { sheen_band_angle: 125, sheen_speed: 0.40, sheen_intensity: 0.32, foil_coverage: 0.52, backdrop_tone: '#A89E91' },
color_hint: '暖银 浅米色',
bg_prompt: 'warm silver holographic base, soft champagne undertone, brushed metal texture with subtle warmth, gentle pearl shine, no text, no people, no watermark',
overlay_prompt: 'thin warm silver border, small geometric corners',
tags: 'warm,classic',
},
{
id: 'graphite_silver', rarity: 'N', display_name_zh: '石墨银', display_name_en: 'Graphite Silver', weight: 10,
family: 'panini_prizm',
reference: { series: 'Panini Prizm (Retail Hanger)', year: '2019-', note: '银底素色基础款' },
grating_config: { sheen_band_angle: 135, sheen_speed: 0.36, sheen_intensity: 0.30, foil_coverage: 0.50, backdrop_tone: '#9C9993' },
color_hint: '石墨灰 冷灰银',
bg_prompt: 'graphite silver brushed metal surface, neutral cool gray gradient, single soft diagonal sheen, industrial clean mood, no text, no people, no watermark',
overlay_prompt: 'thin graphite border, sparse geometric lines',
tags: 'industrial,cool',
},
{
id: 'rosegold_base', rarity: 'N', display_name_zh: '玫瑰金底', display_name_en: 'Rose Gold Base', weight: 10,
family: 'panini_prizm',
reference: { series: 'Panini Prizm Rose Gold (Retail)', year: '2020-', note: '零售版玫瑰金反色' },
grating_config: { sheen_band_angle: 140, sheen_speed: 0.40, sheen_intensity: 0.34, foil_coverage: 0.55, backdrop_tone: '#9E958A' },
color_hint: '玫瑰金 浅粉金',
bg_prompt: 'soft rose gold holographic base, warm pinkish metallic gradient, subtle champagne sheen, gentle romantic mood, no text, no people, no watermark',
overlay_prompt: 'thin rose gold border, small heart corner accents',
tags: 'romantic,warm',
},
{
id: 'sky_silver', rarity: 'N', display_name_zh: '天空银', display_name_en: 'Sky Silver', weight: 10,
family: 'topps_chrome',
reference: { series: 'Topps Chrome Sky Refractor', year: '2021-', note: '天空蓝基础款(非 1/1)' },
grating_config: { sheen_band_angle: 105, sheen_speed: 0.44, sheen_intensity: 0.32, foil_coverage: 0.50, backdrop_tone: '#A8ACB2' },
color_hint: '天蓝 银白',
bg_prompt: 'sky blue tinted silver holographic base, soft daylight gradient with cool silver undertones, airy clean minimalism, no text, no people, no watermark',
overlay_prompt: 'thin sky blue border, soft cloud scatter',
tags: 'sky,cool',
},
{
id: 'cream_silver', rarity: 'N', display_name_zh: '奶白银', display_name_en: 'Cream Silver', weight: 9,
family: 'weiss',
reference: { series: 'Weiss Schwarz R (Common)', year: '2008-', note: 'WS 普通卡基础反色' },
grating_config: { sheen_band_angle: 145, sheen_speed: 0.38, sheen_intensity: 0.30, foil_coverage: 0.46, backdrop_tone: '#B0ACA6' },
color_hint: '奶白 米黄',
bg_prompt: 'cream ivory silver base, soft warm white metallic gradient, gentle sheen, clean Japanese-card aesthetic, no text, no people, no watermark',
overlay_prompt: 'thin cream border, sparse sakura scatter',
tags: 'japan,soft',
},
{
id: 'steel_silver', rarity: 'N', display_name_zh: '钢银', display_name_en: 'Steel Silver', weight: 9,
family: 'panini_prizm',
reference: { series: 'Panini Prizm Hyper (Base Tier)', year: '2019-', note: 'Hyper 基础款' },
grating_config: { sheen_band_angle: 150, sheen_speed: 0.34, sheen_intensity: 0.30, foil_coverage: 0.52, backdrop_tone: '#9C9993' },
color_hint: '钢灰 冷银',
bg_prompt: 'cold steel silver holographic base, cool industrial brushed metal, sharp single diagonal sheen, masculine minimal mood, no text, no people, no watermark',
overlay_prompt: 'thin steel border, small angular corner motif',
tags: 'industrial,sharp',
},
// ============ R 档(10 个,Refractor/反 holo 工艺)============
{
id: 'prizm_blue', rarity: 'R', display_name_zh: '蓝棱镜', display_name_en: 'Prizm Blue', weight: 7,
family: 'panini_prizm',
reference: { series: 'Panini Prizm Blue Prizm', year: '2018-', note: '蓝棱镜折射,真卡标志款' },
grating_config: { sheen_band_angle: 120, sheen_speed: 0.42, sheen_intensity: 0.38, foil_coverage: 0.70, backdrop_tone: '#A8ACB2' },
color_hint: '电光蓝 宝石蓝',
bg_prompt: 'electric blue prismatic holographic surface, sapphire and cyan layered sheen, vivid blue-to-silver diagonal band, sport card premium mood, sharp reflective energy, no text, no people, no watermark',
overlay_prompt: 'clean blue bevel border, sharp diagonal sheen sweep, minimal geometric accents',
tags: 'blue,sport,prizm',
},
{
id: 'prizm_red', rarity: 'R', display_name_zh: '红棱镜', display_name_en: 'Prizm Red', weight: 7,
family: 'panini_prizm',
reference: { series: 'Panini Prizm Red Prizm', year: '2018-', note: '红棱镜折射,真卡标志款' },
grating_config: { sheen_band_angle: 125, sheen_speed: 0.40, sheen_intensity: 0.38, foil_coverage: 0.70, backdrop_tone: '#A89E91' },
color_hint: '宝石红 深粉红',
bg_prompt: 'ruby red prismatic holographic surface, crimson and rose layered sheen, vivid red-to-silver diagonal band, premium sport card energy, no text, no people, no watermark',
overlay_prompt: 'clean red bevel border, sharp diagonal sheen sweep, minimal geometric accents',
tags: 'red,sport,prizm',
},
{
id: 'prizm_green', rarity: 'R', display_name_zh: '绿棱镜', display_name_en: 'Prizm Green', weight: 6,
family: 'panini_prizm',
reference: { series: 'Panini Prizm Green Prizm', year: '2018-', note: '绿棱镜折射' },
grating_config: { sheen_band_angle: 130, sheen_speed: 0.40, sheen_intensity: 0.38, foil_coverage: 0.70, backdrop_tone: '#A8ACB2' },
color_hint: '祖母绿 翡翠',
bg_prompt: 'emerald green prismatic holographic surface, forest and mint layered sheen, vivid green-to-silver diagonal band, sport card vitality, no text, no people, no watermark',
overlay_prompt: 'clean green bevel border, sharp diagonal sheen sweep',
tags: 'green,sport,prizm',
},
{
id: 'prizm_orange', rarity: 'R', display_name_zh: '橙棱镜', display_name_en: 'Prizm Orange', weight: 6,
family: 'panini_prizm',
reference: { series: 'Panini Prizm Orange Prizm', year: '2018-', note: '橙棱镜折射' },
grating_config: { sheen_band_angle: 115, sheen_speed: 0.42, sheen_intensity: 0.38, foil_coverage: 0.68, backdrop_tone: '#9E958A' },
color_hint: '橙色 琥珀色',
bg_prompt: 'vivid orange prismatic holographic surface, tangerine and amber layered sheen, sharp orange-to-silver diagonal band, no text, no people, no watermark',
overlay_prompt: 'clean orange bevel border, sharp diagonal sheen sweep',
tags: 'orange,sport,prizm',
},
{
id: 'prizm_purple', rarity: 'R', display_name_zh: '紫棱镜', display_name_en: 'Prizm Purple', weight: 6,
family: 'panini_prizm',
reference: { series: 'Panini Prizm Purple Prizm', year: '2018-', note: '紫棱镜折射' },
grating_config: { sheen_band_angle: 110, sheen_speed: 0.40, sheen_intensity: 0.38, foil_coverage: 0.70, backdrop_tone: '#9C9993' },
color_hint: '紫水晶 葡萄紫',
bg_prompt: 'amethyst purple prismatic holographic surface, violet and magenta layered sheen, vivid purple-to-silver diagonal band, no text, no people, no watermark',
overlay_prompt: 'clean purple bevel border, sharp diagonal sheen sweep',
tags: 'purple,sport,prizm',
},
{
id: 'topps_refractor', rarity: 'R', display_name_zh: '经典折射', display_name_en: 'Topps Refractor', weight: 6,
family: 'topps_chrome',
reference: { series: 'Topps Chrome Refractor', year: '1996-', note: 'Topps Chrome 标志款折射' },
grating_config: { sheen_band_angle: 125, sheen_speed: 0.40, sheen_intensity: 0.36, foil_coverage: 0.68, backdrop_tone: '#A8ACB2' },
color_hint: '彩虹光 全光谱',
bg_prompt: 'classic baseball card refractor holographic surface, full spectrum rainbow sheen sweeping diagonally, sharp multilayer reflective layers, vintage baseball card mood, no text, no people, no watermark',
overlay_prompt: 'clean silver bevel border, single bright diagonal sheen line',
tags: 'refractor,rainbow,sport',
},
{
id: 'reverse_holo', rarity: 'R', display_name_zh: '反面全息', display_name_en: 'Reverse Holo', weight: 5,
family: 'pokemon_tcg',
reference: { series: 'Pokémon TCG Reverse Holo', year: '2003-', note: '宝可梦反面全息(图案外全息)' },
grating_config: { sheen_band_angle: 105, sheen_speed: 0.38, sheen_intensity: 0.34, foil_coverage: 0.62, backdrop_tone: '#A8ACB2' },
color_hint: '浅银 柔彩虹',
bg_prompt: 'reverse holo pattern background, soft rainbow shimmer surrounding a centered art window, gentle pastel shimmer band, clean Japanese TCG aesthetic, no text, no people, no watermark',
overlay_prompt: 'thin silver border around art window, gentle sparkle scatter, modest corner brackets',
tags: 'pokemon,reverse',
},
{
id: 'bowman_chrome', rarity: 'R', display_name_zh: 'Bowman 折射', display_name_en: 'Bowman Chrome', weight: 5,
family: 'topps_chrome',
reference: { series: 'Bowman Chrome Refractor', year: '2008-', note: 'Bowman Chrome 棒球卡折射' },
grating_config: { sheen_band_angle: 135, sheen_speed: 0.40, sheen_intensity: 0.36, foil_coverage: 0.65, backdrop_tone: '#A89E91' },
color_hint: '暖银 浅金',
bg_prompt: 'warm silver Bowman Chrome refractor surface, soft warm metallic gradient with single diagonal sheen, clean baseball prospect card mood, no text, no people, no watermark',
overlay_prompt: 'thin warm silver border, single diagonal sheen line',
tags: 'baseball,sport',
},
{
id: 'prizm_pink', rarity: 'R', display_name_zh: '粉棱镜', display_name_en: 'Prizm Pink', weight: 5,
family: 'panini_prizm',
reference: { series: 'Panini Prizm Pink Prizm (WBC)', year: '2023-', note: '粉棱镜折射' },
grating_config: { sheen_band_angle: 120, sheen_speed: 0.40, sheen_intensity: 0.36, foil_coverage: 0.68, backdrop_tone: '#9E958A' },
color_hint: '樱花粉 玫瑰粉',
bg_prompt: 'cherry blossom pink prismatic holographic surface, soft rose and magenta layered sheen, vivid pink-to-silver diagonal band, no text, no people, no watermark',
overlay_prompt: 'clean pink bevel border, soft floral corner accents',
tags: 'pink,sport,prizm',
},
{
id: 'wave_blue', rarity: 'R', display_name_zh: '波浪蓝', display_name_en: 'Wave Blue', weight: 5,
family: 'panini_prizm',
reference: { series: 'Panini Prizm Wave', year: '2021-', note: 'Wave 波浪折射' },
grating_config: { sheen_band_angle: 100, sheen_speed: 0.46, sheen_intensity: 0.34, foil_coverage: 0.65, backdrop_tone: '#A8ACB2' },
color_hint: '海蓝 浪花白',
bg_prompt: 'wave-patterned blue holographic surface, layered horizontal ocean wave sheen, soft sea blue gradient with silver crests, no text, no people, no watermark',
overlay_prompt: 'clean silver border, soft wave corner motif',
tags: 'wave,blue,sport',
},
// ============ SR 档(10 个,Mosaic/Atomic/Neon 类限量工艺)============
{
id: 'mosaic', rarity: 'SR', display_name_zh: '马赛克', display_name_en: 'Mosaic', weight: 3,
family: 'panini_prizm',
reference: { series: 'Panini Prizm Mosaic', year: '2019-', note: 'Mosaic 马赛克拼贴反色' },
grating_config: { sheen_band_angle: 115, sheen_speed: 0.44, sheen_intensity: 0.40, foil_coverage: 0.78, backdrop_tone: '#A8ACB2' },
color_hint: '多彩 马赛克',
bg_prompt: 'mosaic tiled holographic surface, geometric tile pattern with shimmer variation between cells, prismatic rainbow sheen across tile grid, structured luxury card mood, no text, no people, no watermark',
overlay_prompt: 'geometric mosaic border, tile corner motif',
tags: 'mosaic,pattern',
},
{
id: 'shimmer', rarity: 'SR', display_name_zh: '微光闪片', display_name_en: 'Shimmer', weight: 3,
family: 'panini_prizm',
reference: { series: 'Panini Prizm Shimmer', year: '2020-', note: 'Shimmer 闪光颗粒反色' },
grating_config: { sheen_band_angle: 125, sheen_speed: 0.42, sheen_intensity: 0.40, foil_coverage: 0.76, backdrop_tone: '#B0ACA6' },
color_hint: '珍珠光 颗粒银',
bg_prompt: 'shimmer micro-flake holographic surface, dense pearl flake particles with prismatic sparkle, soft radiant metallic gradient, glitter-card premium mood, no text, no people, no watermark',
overlay_prompt: 'fine pearl border, sparkle scatter',
tags: 'shimmer,sparkle',
},
{
id: 'neon_molectric', rarity: 'SR', display_name_zh: '霓虹电光', display_name_en: 'Neon Molectric', weight: 3,
family: 'panini_prizm',
reference: { series: 'Panini Prizm Neon Molectric', year: '2021-', note: '霓虹电光反色' },
grating_config: { sheen_band_angle: 110, sheen_speed: 0.46, sheen_intensity: 0.44, foil_coverage: 0.78, backdrop_tone: '#9C9993' },
color_hint: '霓虹粉 电光绿',
bg_prompt: 'neon molectric holographic surface, vivid neon pink and electric green sheen sweep, dark silver base with bright color sparks, cyber-arcade premium mood, no text, no people, no watermark',
overlay_prompt: 'neon border, sharp diagonal sheen sweep',
tags: 'neon,cyber',
},
{
id: 'disco', rarity: 'SR', display_name_zh: '迪斯科', display_name_en: 'Disco', weight: 3,
family: 'panini_prizm',
reference: { series: 'Panini Prizm Disco', year: '2020-', note: 'Disco 迪斯科球反色' },
grating_config: { sheen_band_angle: 130, sheen_speed: 0.44, sheen_intensity: 0.42, foil_coverage: 0.78, backdrop_tone: '#A89E91' },
color_hint: '彩虹光 多彩',
bg_prompt: 'disco ball holographic surface, scattered facet sparkles across silver base, vivid prismatic points of light, retro disco luxury mood, no text, no people, no watermark',
overlay_prompt: 'silver bevel border, scattered facet sparkle',
tags: 'disco,party',
},
{
id: 'topps_atomic', rarity: 'SR', display_name_zh: '原子折射', display_name_en: 'Topps Atomic', weight: 3,
family: 'topps_chrome',
reference: { series: 'Topps Chrome Atomic Refractor', year: '2018-', note: 'Atomic 原子反色' },
grating_config: { sheen_band_angle: 120, sheen_speed: 0.42, sheen_intensity: 0.40, foil_coverage: 0.76, backdrop_tone: '#A8ACB2' },
color_hint: '电蓝 辐射光',
bg_prompt: 'atomic refractor holographic surface, vivid electric blue and white atomic burst sheen, sharp radiant diagonal sweep, retro sci-fi card mood, no text, no people, no watermark',
overlay_prompt: 'clean silver border, atomic burst corner motif',
tags: 'atomic,blue,sport',
},
{
id: 'hyper_prizm', rarity: 'SR', display_name_zh: '极速棱镜', display_name_en: 'Hyper Prizm', weight: 2,
family: 'panini_prizm',
reference: { series: 'Panini Hyper Prizm', year: '2022-', note: 'Hyper 极速棱镜反色' },
grating_config: { sheen_band_angle: 100, sheen_speed: 0.50, sheen_intensity: 0.42, foil_coverage: 0.80, backdrop_tone: '#9C9993' },
color_hint: '极速银 锐利光',
bg_prompt: 'hyper speed holographic surface, sharp high-speed diagonal sheen sweep across silver base, kinetic energy lines, futuristic racing card mood, no text, no people, no watermark',
overlay_prompt: 'sharp silver border, kinetic corner motif',
tags: 'hyper,speed',
},
{
id: 'cracked_ice', rarity: 'SR', display_name_zh: '碎冰', display_name_en: 'Cracked Ice', weight: 3,
family: 'panini_prizm',
reference: { series: 'Panini Prizm Cracked Ice', year: '2021-', note: 'Cracked Ice 碎冰反色' },
grating_config: { sheen_band_angle: 105, sheen_speed: 0.40, sheen_intensity: 0.38, foil_coverage: 0.74, backdrop_tone: '#A8ACB2' },
color_hint: '冰蓝 裂纹光',
bg_prompt: 'cracked ice holographic surface, crystalline fracture pattern with cool blue sheen in cracks, frozen lake premium mood, no text, no people, no watermark',
overlay_prompt: 'clean silver border, ice crack corner motif',
tags: 'ice,cracked',
},
{
id: 'yugioh_super', rarity: 'SR', display_name_zh: '游戏王 SR', display_name_en: 'Yu-Gi-Oh Super Rare', weight: 2,
family: 'yugioh',
reference: { series: 'Yu-Gi-Oh Super Rare', year: '2002-', note: '游戏王 SR 全卡面横纹反色' },
grating_config: { sheen_band_angle: 90, sheen_speed: 0.38, sheen_intensity: 0.40, foil_coverage: 0.85, backdrop_tone: '#B0ACA6' },
color_hint: '横纹光 彩虹',
bg_prompt: 'Yu-Gi-Oh Super Rare full-card horizontal stripe holographic, parallel horizontal sheen bands sweeping across entire art, classic TCG anime premium mood, no text, no people, no watermark',
overlay_prompt: 'no border, full-card sheen stripe',
tags: 'yugioh,stripe',
},
{
id: 'yugioh_ultra', rarity: 'SR', display_name_zh: '游戏王 UR', display_name_en: 'Yu-Gi-Oh Ultra Rare', weight: 2,
family: 'yugioh',
reference: { series: 'Yu-Gi-Oh Ultra Rare', year: '2002-', note: '游戏王 UR 雪花+横纹混合' },
grating_config: { sheen_band_angle: 90, sheen_speed: 0.40, sheen_intensity: 0.42, foil_coverage: 0.88, backdrop_tone: '#B0ACA6' },
color_hint: '雪花 棱镜',
bg_prompt: 'Yu-Gi-Oh Ultra Rare full-card horizontal stripe holographic with cross-hatch sparkles, dense sheen sweep with sparkle dots, premium anime TCG mood, no text, no people, no watermark',
overlay_prompt: 'no border, full-card sheen with sparkle dots',
tags: 'yugioh,stripe,sparkle',
},
{
id: 'ws_sr', rarity: 'SR', display_name_zh: 'WS SR', display_name_en: 'Weiss Schwarz SR', weight: 2,
family: 'weiss',
reference: { series: 'Weiss Schwarz SR', year: '2008-', note: 'WS SR 横纹反色' },
grating_config: { sheen_band_angle: 95, sheen_speed: 0.40, sheen_intensity: 0.40, foil_coverage: 0.82, backdrop_tone: '#A8ACB2' },
color_hint: '横纹银 轻彩虹',
bg_prompt: 'Weiss Schwarz SR full-card horizontal stripe holographic, soft parallel silver sheen bands, clean Japanese-anime card premium mood, no text, no people, no watermark',
overlay_prompt: 'no border, full-card horizontal sheen',
tags: 'weiss,stripe',
},
// ============ SSR 档(9 个,Full Art/Rainbow/Gold 类稀有工艺)============
{
id: 'rainbow_rare', rarity: 'SSR', display_name_zh: '彩虹稀有', display_name_en: 'Rainbow Rare', weight: 1,
family: 'pokemon_tcg',
reference: { series: 'Pokémon TCG Rainbow Rare', year: '2017-', note: '宝可梦彩虹稀有,真卡顶级工艺' },
grating_config: { sheen_band_angle: 100, sheen_speed: 0.46, sheen_intensity: 0.46, foil_coverage: 0.90, backdrop_tone: '#B0ACA6' },
color_hint: '全光谱彩虹',
bg_prompt: 'Pokémon Rainbow Rare full-card rainbow holographic, dense full-spectrum sheen sweeping across entire art, vivid prismatic layers, premium Japanese TCG luxury mood, no text, no people, no watermark',
overlay_prompt: 'no border, full-card rainbow sheen with sparkle dots',
tags: 'pokemon,rainbow,fullart',
},
{
id: 'prizm_gold', rarity: 'SSR', display_name_zh: '金棱镜', display_name_en: 'Prizm Gold', weight: 0.8,
family: 'panini_prizm',
reference: { series: 'Panini Prizm Gold Prizm', year: '2018-', note: '金棱镜,真卡高阶平行版' },
grating_config: { sheen_band_angle: 120, sheen_speed: 0.42, sheen_intensity: 0.42, foil_coverage: 0.85, backdrop_tone: '#A89E91' },
color_hint: '金色 暖金',
bg_prompt: 'gold Prizm holographic surface, vivid gold-to-amber sheen sweeping diagonally, warm metallic premium sport card luxury mood, no text, no people, no watermark',
overlay_prompt: 'gold bevel border, sharp diagonal sheen sweep',
tags: 'gold,sport,prizm',
},
{
id: 'prizm_black', rarity: 'SSR', display_name_zh: '黑棱镜', display_name_en: 'Prizm Black', weight: 0.8,
family: 'panini_prizm',
reference: { series: 'Panini Prizm Black Prizm', year: '2020-', note: '黑棱镜,稀缺平行版' },
grating_config: { sheen_band_angle: 115, sheen_speed: 0.40, sheen_intensity: 0.44, foil_coverage: 0.88, backdrop_tone: '#9C9993' },
color_hint: '黑银 烟雾光',
bg_prompt: 'black Prizm holographic surface, dark silver-to-black gradient with vivid rainbow sparkle dots, mysterious dark luxury card mood, no text, no people, no watermark',
overlay_prompt: 'dark silver border, scattered rainbow sparkles',
tags: 'black,sport,prizm',
},
{
id: 'cosmic_prizm', rarity: 'SSR', display_name_zh: '宇宙棱镜', display_name_en: 'Cosmic Prizm', weight: 0.8,
family: 'panini_prizm',
reference: { series: 'Panini Prizm Cosmic', year: '2023-', note: '宇宙棱镜,空间主题' },
grating_config: { sheen_band_angle: 105, sheen_speed: 0.44, sheen_intensity: 0.44, foil_coverage: 0.86, backdrop_tone: '#A8ACB2' },
color_hint: '深空紫 星光',
bg_prompt: 'cosmic Prizm holographic surface, deep purple and navy gradient with starfield sparkle dots and nebula-like color swirl, cinematic space premium mood, no text, no people, no watermark',
overlay_prompt: 'silver border, star scatter corner',
tags: 'cosmic,space',
},
{
id: 'prizm_shattered', rarity: 'SSR', display_name_zh: '碎光棱镜', display_name_en: 'Shattered Prizm', weight: 0.8,
family: 'panini_prizm',
reference: { series: 'Panini Prizm Shattered Glass', year: '2019-', note: '碎光玻璃反色' },
grating_config: { sheen_band_angle: 95, sheen_speed: 0.42, sheen_intensity: 0.44, foil_coverage: 0.86, backdrop_tone: '#A8ACB2' },
color_hint: '玻璃碎光 棱镜',
bg_prompt: 'shattered glass Prizm holographic surface, geometric glass-shard pattern with prismatic rainbow between shards, dramatic luxury sport card mood, no text, no people, no watermark',
overlay_prompt: 'silver bevel border, glass shard corner motif',
tags: 'shattered,glass',
},
{
id: 'topps_sepia', rarity: 'SSR', display_name_zh: '复古棕', display_name_en: 'Topps Sepia', weight: 0.7,
family: 'topps_chrome',
reference: { series: 'Topps Chrome Sepia Refractor', year: '2017-', note: '复古棕反色,棒球稀有平行' },
grating_config: { sheen_band_angle: 130, sheen_speed: 0.38, sheen_intensity: 0.40, foil_coverage: 0.82, backdrop_tone: '#A89E91' },
color_hint: '棕褐色 复古',
bg_prompt: 'sepia refractor holographic surface, warm brown and amber gradient with vintage metallic sheen, nostalgic baseball-card premium mood, no text, no people, no watermark',
overlay_prompt: 'warm sepia border, vintage corner motif',
tags: 'sepia,vintage,sport',
},
{
id: 'pokemon_fullart', rarity: 'SSR', display_name_zh: '全图宝可梦', display_name_en: 'Pokémon Full Art', weight: 0.7,
family: 'pokemon_tcg',
reference: { series: 'Pokémon TCG Full Art Rare', year: '2010-', note: '宝可梦全图稀有' },
grating_config: { sheen_band_angle: 110, sheen_speed: 0.44, sheen_intensity: 0.44, foil_coverage: 0.88, backdrop_tone: '#A8ACB2' },
color_hint: '柔光 全图',
bg_prompt: 'Pokémon Full Art holographic background with edge-to-edge soft rainbow sheen, art fills entire card with shimmering border halo, premium Japanese TCG mood, no text, no people, no watermark',
overlay_prompt: 'soft rainbow halo around art, no hard border',
tags: 'pokemon,fullart',
},
{
id: 'yugioh_secret', rarity: 'SSR', display_name_zh: '游戏王 Secret', display_name_en: 'Yu-Gi-Oh Secret Rare', weight: 0.7,
family: 'yugioh',
reference: { series: 'Yu-Gi-Oh Secret Rare', year: '2002-', note: '游戏王 Secret 横纹+名字彩虹' },
grating_config: { sheen_band_angle: 90, sheen_speed: 0.44, sheen_intensity: 0.44, foil_coverage: 0.90, backdrop_tone: '#B0ACA6' },
color_hint: '横纹彩虹 Secret',
bg_prompt: 'Yu-Gi-Oh Secret Rare full-card horizontal stripe holographic with sparkling diagonal cross-sheen, premium anime TCG secret-tier mood, no text, no people, no watermark',
overlay_prompt: 'no border, full-card sparkle cross-sheen',
tags: 'yugioh,secret',
},
{
id: 'gold_secret', rarity: 'SSR', display_name_zh: '游戏王金 Secret', display_name_en: 'Yu-Gi-Oh Gold Secret', weight: 0.7,
family: 'yugioh',
reference: { series: 'Yu-Gi-Oh Gold Secret Rare', year: '2012-', note: '游戏王金 Secret 稀有' },
grating_config: { sheen_band_angle: 90, sheen_speed: 0.42, sheen_intensity: 0.42, foil_coverage: 0.92, backdrop_tone: '#A89E91' },
color_hint: '金色 Secret',
bg_prompt: 'Yu-Gi-Oh Gold Secret full-card warm gold horizontal stripe holographic, dense gold sheen sweeping across entire art, premium anime TCG luxury mood, no text, no people, no watermark',
overlay_prompt: 'no border, full-card gold sheen',
tags: 'yugioh,gold',
},
// ============ UR 档(6 个,终极稀有)============
{
id: 'pokemon_star', rarity: 'UR', display_name_zh: '宝可梦星卡', display_name_en: 'Pokémon Star', weight: 0.4,
family: 'pokemon_tcg',
reference: { series: 'Pokémon TCG Star Holo', year: '2000-2003', note: '宝可梦初代星卡,真卡传奇工艺' },
grating_config: { sheen_band_angle: 95, sheen_speed: 0.50, sheen_intensity: 0.50, foil_coverage: 0.95, backdrop_tone: '#B0ACA6' },
color_hint: '全光谱 星辉',
bg_prompt: 'Pokémon Star holographic surface with five-point star burst pattern across entire art, intense prismatic star radiance, legendary premium TCG mood, no text, no people, no watermark',
overlay_prompt: 'star burst overlay across entire art',
tags: 'pokemon,star,legend',
},
{
id: 'superfractor', rarity: 'UR', display_name_zh: '至尊折射', display_name_en: 'Topps Superfractor', weight: 0.3,
family: 'topps_chrome',
reference: { series: 'Topps Chrome Superfractor (1/1)', year: '1996-', note: 'Topps Chrome 1/1 真卡顶点' },
grating_config: { sheen_band_angle: 100, sheen_speed: 0.50, sheen_intensity: 0.55, foil_coverage: 1.00, backdrop_tone: '#B0ACA6' },
color_hint: '全光谱彩虹',
bg_prompt: 'Topps Chrome Superfractor 1/1 full-spectrum rainbow holographic, intense prismatic rainbow burst across entire art, ultimate luxury card apex mood, no text, no people, no watermark',
overlay_prompt: 'rainbow burst overlay, no border',
tags: 'superfractor,1of1,apex',
},
{
id: 'yugioh_starlight', rarity: 'UR', display_name_zh: '游戏王星光', display_name_en: 'Yu-Gi-Oh Starlight Rare', weight: 0.3,
family: 'yugioh',
reference: { series: 'Yu-Gi-Oh Starlight Rare', year: '2018-', note: '游戏王星光稀有,终极工艺' },
grating_config: { sheen_band_angle: 95, sheen_speed: 0.48, sheen_intensity: 0.50, foil_coverage: 0.98, backdrop_tone: '#B0ACA6' },
color_hint: '星光 全光谱',
bg_prompt: 'Yu-Gi-Oh Starlight Rare full-card starlight burst holographic, intense star-pattern radiance across entire art, ultimate anime TCG apex mood, no text, no people, no watermark',
overlay_prompt: 'starlight burst overlay, no border',
tags: 'yugioh,starlight,apex',
},
{
id: 'yugioh_platinum', rarity: 'UR', display_name_zh: '游戏王白金', display_name_en: 'Yu-Gi-Oh Platinum Secret', weight: 0.3,
family: 'yugioh',
reference: { series: 'Yu-Gi-Oh Platinum Secret Rare', year: '2014-', note: '游戏王白金 Secret' },
grating_config: { sheen_band_angle: 90, sheen_speed: 0.46, sheen_intensity: 0.50, foil_coverage: 0.98, backdrop_tone: '#B0ACA6' },
color_hint: '白金 棱镜',
bg_prompt: 'Yu-Gi-Oh Platinum Secret full-card platinum-white horizontal stripe holographic with cross sparkle, intense white-silver sheen, ultimate anime TCG mood, no text, no people, no watermark',
overlay_prompt: 'no border, full-card platinum sheen',
tags: 'yugioh,platinum',
},
{
id: 'yugioh_prismatic', rarity: 'UR', display_name_zh: '游戏王棱镜 Secret', display_name_en: 'Yu-Gi-Oh Prismatic Secret', weight: 0.3,
family: 'yugioh',
reference: { series: 'Yu-Gi-Oh Prismatic Secret Rare', year: '2020-', note: '游戏王棱镜 Secret' },
grating_config: { sheen_band_angle: 90, sheen_speed: 0.46, sheen_intensity: 0.52, foil_coverage: 0.98, backdrop_tone: '#B0ACA6' },
color_hint: '棱镜 彩虹',
bg_prompt: 'Yu-Gi-Oh Prismatic Secret full-card prismatic rainbow with multi-axis sheen, intense multi-directional prismatic burst, ultimate anime TCG apex mood, no text, no people, no watermark',
overlay_prompt: 'no border, full-card prismatic burst',
tags: 'yugioh,prismatic',
},
{
id: 'ws_ssp', rarity: 'UR', display_name_zh: 'WS SSP', display_name_en: 'Weiss SSP', weight: 0.3,
family: 'weiss',
reference: { series: 'Weiss Schwarz SSP', year: '2015-', note: 'WS SSP 终极签名/限定' },
grating_config: { sheen_band_angle: 95, sheen_speed: 0.48, sheen_intensity: 0.48, foil_coverage: 0.95, backdrop_tone: '#A8ACB2' },
color_hint: 'SSP 彩虹',
bg_prompt: 'Weiss Schwarz SSP full-card horizontal stripe holographic with rainbow sparkle dots, dense premium anime collectible apex mood, no text, no people, no watermark',
overlay_prompt: 'no border, full-card sparkle stripe',
tags: 'weiss,ssp,apex',
},
]
/** 全池 style ID 列表(顺序与 LASER_STYLE_POOL 一致) */
export const LASER_STYLE_IDS = LASER_STYLE_POOL.map((s) => s.id)
/** O(1) ID 索引(用于通过 preset_id 反查 style) */
export const LASER_STYLE_INDEX = LASER_STYLE_POOL.reduce(
(acc, s, i) => {
acc[s.id] = i
return acc
},
/** @type {Record<string, number>} */ ({}),
)
/** 档位统计({N:10, R:10, SR:10, SSR:9, UR:6}) */
export const RARITY_DISTRIBUTION = LASER_STYLE_POOL.reduce(
(acc, s) => {
acc[s.rarity] = (acc[s.rarity] || 0) + 1
return acc
},
/** @type {Record<string, number>} */ ({}),
)
/** 档位配色(供 UI 徽章复用) */
export const RARITY_COLORS = {
N: '#78828C',
R: '#50A0DC',
SR: '#B464DC',
SSR: 'linear-gradient(90deg, #ff8a00, #e52e71)',
UR: 'linear-gradient(90deg, #ff5e62, #ff9966, #ff5e62)',
}
/** 档位星数(供 UI 显示) */
export const RARITY_STARS = {
N: '★',
R: '★★',
SR: '★★★',
SSR: '★★★★',
UR: '★★★★★',
}