完善打包程序

This commit is contained in:
ACT丶流星雨 2026-04-06 00:37:11 +08:00
parent 790526965a
commit 950011eecb
5 changed files with 44 additions and 283 deletions

View File

@ -16,17 +16,8 @@ env:
jobs:
# ==================== Windows 构建 ====================
build-Windows:
strategy:
fail-fast: false
matrix:
include:
- arch: x64
name: x64
- arch: arm64
name: ARM64
runs-on: windows-latest
name: 构建 Windows (${{ matrix.name }})
name: 构建 Windows
steps:
- name: 检出代码
@ -39,23 +30,16 @@ jobs:
- name: 安装依赖
run: yarn install --frozen-lockfile
env:
npm_config_arch: ${{ matrix.arch }}
- name: 安装目标平台 sharp
if: matrix.arch == 'arm64'
run: |
npm install --no-save --ignore-scripts --force @img/sharp-win32-arm64 @img/sharp-libvips-win32-arm64
- name: 打包 Windows 安装程序
run: yarn dist:win --${{ matrix.arch }}
run: yarn dist:win
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: 上传构建产物
uses: actions/upload-artifact@v4
with:
name: windows-${{ matrix.arch }}
name: windows
path: dist/*.exe
retention-days: 7

View File

@ -2,15 +2,13 @@ name: 构建发布
on:
push:
tags:
- "v*"
branches:
- main
- dev
pull_request:
branches:
- main
workflow_dispatch:
inputs:
debug:
description: "启用调试模式"
required: false
type: boolean
default: false
env:
NODE_VERSION: "24"
@ -18,13 +16,8 @@ env:
jobs:
# ==================== Windows 构建 ====================
build-Windows:
strategy:
fail-fast: false
matrix:
arch: [x64, arm64]
runs-on: windows-latest
name: 构建 Windows (${{ matrix.arch }})
name: 构建 Windows
steps:
- name: 检出代码
@ -35,57 +28,20 @@ jobs:
with:
node-version: ${{ env.NODE_VERSION }}
- name: 缓存依赖
uses: actions/cache@v4
id: cache
with:
path: node_modules
key: windows-${{ matrix.arch }}-modules-${{ hashFiles('yarn.lock') }}
- name: 安装依赖
if: steps.cache.outputs.cache-hit != 'true'
run: yarn install --frozen-lockfile
env:
npm_config_arch: ${{ matrix.arch }}
- name: 调试 - 显示环境信息
if: ${{ inputs.debug }}
run: |
echo "===== 系统信息 ====="
systeminfo | findstr /B /C:"OS"
echo "===== Node 版本 ====="
node -v
echo "===== Yarn 版本 ====="
yarn -v
echo "===== 目标架构 ====="
echo "${{ matrix.arch }}"
- name: 构建应用
run: yarn build
- name: 调试 - 显示构建产物
if: ${{ inputs.debug }}
run: |
echo "===== 构建目录内容 ====="
dir dist 2>nul || echo "dist 目录不存在"
- name: 打包 Windows 安装程序
run: yarn dist:win --${{ matrix.arch }}
run: yarn dist:win
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: 调试 - 显示打包产物
if: ${{ inputs.debug }}
run: |
echo "===== 最终产物 ====="
dir dist\*.exe
- name: 上传构建产物
uses: actions/upload-artifact@v4
with:
name: windows-${{ matrix.arch }}
name: windows
path: dist/*.exe
retention-days: 30
retention-days: 7
# ==================== macOS 构建 ====================
build-macOS:
@ -94,10 +50,10 @@ jobs:
matrix:
include:
- arch: arm64
os: macos-14
os: macos-latest
name: Apple Silicon
- arch: x64
os: macos-13
os: macos-latest
name: Intel
runs-on: ${{ matrix.os }}
@ -112,68 +68,41 @@ jobs:
with:
node-version: ${{ env.NODE_VERSION }}
- name: 缓存依赖
uses: actions/cache@v4
id: cache
with:
path: node_modules
key: macos-${{ matrix.arch }}-modules-${{ hashFiles('yarn.lock') }}
- name: 安装依赖
if: steps.cache.outputs.cache-hit != 'true'
run: yarn install --frozen-lockfile
env:
npm_config_arch: ${{ matrix.arch }}
- name: 调试 - 显示环境信息
if: ${{ inputs.debug }}
- name: 安装目标平台 sharp
if: matrix.arch == 'x64'
run: |
echo "===== 系统信息 ====="
uname -a
echo "===== 系统架构 ====="
uname -m
echo "===== Node 版本 ====="
node -v
echo "===== Yarn 版本 ====="
yarn -v
- name: 调试 - 验证 native 模块架构
if: ${{ inputs.debug }}
run: |
echo "===== sharp 模块架构 ====="
file node_modules/sharp/build/Release/*.node 2>/dev/null || echo "sharp 未安装"
echo "===== 其他 native 模块 ====="
find node_modules -name "*.node" -exec file {} \; 2>/dev/null | head -20
- name: 构建应用
run: yarn build
- name: 调试 - 显示构建产物
if: ${{ inputs.debug }}
run: |
echo "===== 构建目录内容 ====="
ls -la dist/ 2>/dev/null || echo "dist 目录不存在"
npm install --no-save --ignore-scripts --force @img/sharp-darwin-x64 @img/sharp-libvips-darwin-x64
- name: 打包 macOS 安装程序
run: yarn dist:mac
run: yarn dist:mac --${{ matrix.arch }}
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: 调试 - 显示打包产物
if: ${{ inputs.debug }}
run: |
echo "===== 最终产物 ====="
ls -la dist/*.dmg
- name: 上传构建产物
uses: actions/upload-artifact@v4
with:
name: macos-${{ matrix.arch }}
path: dist/*.dmg
retention-days: 30
retention-days: 7
# ==================== Linux 构建 ====================
build-Linux:
strategy:
fail-fast: false
matrix:
include:
- arch: x64
name: x64
- arch: arm64
name: ARM64
runs-on: ubuntu-latest
name: 构建 Linux (x64)
name: 构建 Linux (${{ matrix.name }})
steps:
- name: 检出代码
@ -183,49 +112,28 @@ jobs:
uses: actions/setup-node@v4
with:
node-version: ${{ env.NODE_VERSION }}
cache: "yarn"
- name: 安装依赖
run: yarn install --frozen-lockfile
env:
npm_config_arch: ${{ matrix.arch }}
- name: 调试 - 显示环境信息
if: ${{ inputs.debug }}
- name: 安装目标平台 sharp
if: matrix.arch == 'arm64'
run: |
echo "===== 系统信息 ====="
uname -a
echo "===== 系统架构 ====="
uname -m
echo "===== Node 版本 ====="
node -v
echo "===== Yarn 版本 ====="
yarn -v
- name: 调试 - 验证 native 模块架构
if: ${{ inputs.debug }}
run: |
echo "===== sharp 模块架构 ====="
file node_modules/sharp/build/Release/*.node 2>/dev/null || echo "sharp 未安装"
- name: 构建应用
run: yarn build
npm install --no-save --ignore-scripts --force @img/sharp-linux-arm64 @img/sharp-libvips-linux-arm64
- name: 打包 Linux 安装程序
run: yarn dist:linux
run: yarn dist:linux --${{ matrix.arch }}
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: 调试 - 显示打包产物
if: ${{ inputs.debug }}
run: |
echo "===== 最终产物 ====="
ls -la dist/*.AppImage
- name: 上传构建产物
uses: actions/upload-artifact@v4
with:
name: linux-x64
name: linux-${{ matrix.arch }}
path: dist/*.AppImage
retention-days: 30
retention-days: 7
# ==================== 发布 ====================
release:
@ -270,6 +178,7 @@ jobs:
| 🍎 macOS | Apple Silicon | `ToonFlow-*-mac-arm64.dmg` | 适用于 M1/M2/M3/M4 芯片的 Mac |
| 🍎 macOS | Intel | `ToonFlow-*-mac-x64.dmg` | 适用于 Intel 芯片的 Mac |
| 🐧 Linux | x64 | `ToonFlow-*-linux-x64.AppImage` | 适用于大多数 Linux 发行版 |
| 🐧 Linux | ARM64 | `ToonFlow-*-linux-arm64.AppImage` | 适用于 ARM 架构的 Linux 设备 |
> 💡 **不确定选哪个?** Windows 用户通常选 **x64-setup.exe**Mac 用户查看「关于本机」M 系列芯片选 **arm64.dmg**Intel 选 **x64.dmg**。

View File

@ -1,88 +0,0 @@
---
name: director_planning_style
description: 都市写实风格约束 — 定义真人都市写实在色调体系、光影方案、质感方向、场景空间元素、乐器选择与环境音上的全局约束。适用于任何叙事类型。
metaData: director_skills
---
# 都市风格约束 · 真人都市写实 · 技法参考
---
## 一、色调体系与画面基调
- **色调基底** — 全片以米白C1、暖肤色C2、高级灰C6为基底色整体色温偏暖5200-5800K饱和度中低40-60%),呈现温暖明亮的都市生活感
- **冷暖叙事对比** — 暖色(琥珀暖 C7、奶油粉 C5、金属银 C8作为情感升温与关系确认的视觉信号冷色用于压力、误会、疏离等段落。冷暖切换应与情绪弧线同步
- **冷暖分配策略** — 日常与工作段落以中性/微冷为主,亲密与和解段落释放暖色;避免全程高暖导致情绪层次塌陷
- **色盘先行原则** — 段落规划先绑定情绪场景(相遇/暧昧/约会/争执/和解等),再确定主色+辅色与光影方案,避免“剧情对了但情绪不对色”
- **禁用色域** — 高饱和荧光色、强霓虹污染、过度赛博色彩与本风格不兼容
---
## 二、光影方案体系
- **光影即叙事** — 6 套光影方案对应不同情绪段落,导演规划阶段应在段落层面确定光影基调方向,而非逐镜指定
- **光源角度** — 正给镜头默认 30° 斜射(较柔和),侧给镜头根据场景与人物关系微调
| 光影方案 | 方案名 | 色调倾向 | 适用情绪 |
|---|---|---|---|
| A | 自然漫射 | 米白底 + 均匀柔和光 | 日常通勤、生活流叙事 |
| B | 暖调侧光 | 奶油暖 + 局部暖光 | 升温互动、居家松弛 |
| C | 顶光环境混合 | 中性灰 + 柔和冷白 | 职场节奏、理性沟通 |
| D | 窗光点光源 | 琥珀暖主导 + 冷蓝背景 | 夜晚暧昧、亲密推进 |
| E | 街头霓虹晕光 | 冷色背景 + 暖色点缀 | 都市夜景、浪漫游走 |
| F | 阴天漫射冷光 | 灰蓝主调 + 暖色局部 | 过渡段、低潮段 |
- **冷暖光分配** — 暖色光可全片使用但需分层控制;冲突/疏离段落降低暖光占比,避免情绪与光色冲突
- **氛围方向映射** — 每场戏氛围方向应映射到上述光影方案A-F的某一方向确保视觉一致性
## 三、质感方向
- **超清纪实感** — 真人写实摄影核心:皮肤纹理可见、发丝根根分明、材质细节清晰可信
- **强对比度 + 极致细节** — 作为画面质感锚点。不是低对比小清新,不是重滤镜氛围化,而是可拍可落地的影视纪实感
- **材质真实** — 服化道需具备现实可信度:西装面料、玻璃反射、金属器件、木质家具、电子屏幕高光都应符合都市实拍逻辑
- **皮肤质感** — 保留真实毛孔与细微瑕疵,控制磨皮强度,追求“真实但好看”
- **写实不等于平淡** — 通过构图、景别、运动节奏放大情绪感染力,而非依赖夸张特效与过度后期
---
## 四、都市场景空间元素
都市世界观特有的场景元素及其视觉叙事功能:
- **窗框/玻璃/门洞** — 天然框架式构图道具,制造空间分层与人物关系距离感
- **街道/地铁/电梯/写字楼走廊** — 都市节奏载体,通勤与停顿的切换可直接映射角色心理状态
- **咖啡厅/办公室/居家客厅** — 情绪容器:咖啡厅偏试探,办公室偏克制,居家偏安全与松弛
- **天气与时段作为转场** — 日转夜、晴转雨、黄昏入夜可用于段落情绪缓冲,避免硬切
- **转折点用视觉而非解释** — 优先使用画面手段(景别突变、视线错位、空间阻隔)承接情绪转折,减少对白解释负担
---
## 五、都市乐器与环境音
都市世界观下的声音元素约束:
### 乐器选择
- **钢琴** — 日常、温馨、回忆段落核心乐器,最能体现都市生活质感
- **吉他** — 轻松、街头、慢节奏浪漫段落的有效主导
- **弦乐** — 情绪抬升与情感爆发段落的主力铺底
- **Lo-fi/轻电子** — 年轻化、城市夜生活、节奏切换段落的风格增强器
- **环境音优先级高** — 都市剧中真实环境声是沉浸感关键,配乐不应压过对白
### 乐器组合策略
| 情绪阶段 | 乐器组合 |
|---|---|
| 平稳/开场/收尾 | 钢琴独奏 或 吉他独奏 |
| 日常推进 | 钢琴 + 轻打击 |
| 暧昧升温/浪漫 | 钢琴 + 弦乐 |
| 情绪爆发/冲突 | 弦乐主导 + 低频铺底 |
| 夜景/转场 | Lo-fi/轻电子 + 环境声 |
### 都市环境音
- **典型环境音层次** — 车流声 / 地铁进站提示 / 电梯提示音 / 咖啡机声 / 键盘敲击 / 雨声 / 空调底噪 / 城市远景噪声
- **每场戏标注 1-2 个核心环境音**,帮助后续音效设计。环境音层次越准确,都市写实质感越强
---

View File

@ -1,47 +0,0 @@
---
name: director_storyboard_table_style
description: 分镜表都市约束 — 定义真人都市写实在分镜表中的光影氛围规范、光源角度、动作节奏、环境动态、运镜禁忌与转场禁忌。适用于任何叙事类型。
metaData: director_skills
---
# 分镜表都市约束 · 真人都市写实 · 技法参考
---
## 一、分镜表定位
分镜表是导演将剧本转化为镜头语言的核心工具。以下仅提供真人都市写实风格在分镜表层面的约束规范。
---
## 二、光影与氛围
- **同场戏光影统一** — 一场戏内不应出现两种以上光影方案,除非有明确的叙事转折(如关台灯→月光冷辉)
- **情绪色盘绑定** — 每场戏至少绑定 1 个情绪场景(如相遇心动/工作争执/约会甜蜜),并在镜头组内保持主色+辅色连续性
- **光源角度规范** — 正给镜头光源默认 30° 斜射(较柔和),侧给镜头根据画面需要调整。描述光影时须区分正给/侧给的角度差异
- **冷暖色调与叙事阶段匹配** — 工作/独处/冲突段落保持中性/冷调,暖色调(暖橙+冷蓝背景对比)在情感升温后使用
- **光影转场是高级手段** — 从自然光A渐变到室内暖光B= 日转夜的时间流逝。在分镜表中标注光影变化点
---
## 三、环境动态
- **环境动态增加画面呼吸感** — 窗外车灯流动、电脑屏幕闪烁、咖啡杯热气、手机屏幕亮起。每 3-4 个镜头至少安排一个有环境动态的镜头,避免画面"死"掉
- **都市环境元素优先** — 环境动态应选用都市世界观内的元素:车灯流动、雨滴划窗、咖啡热气、手机屏幕亮灭、窗帘微动、电梯数字跳动,禁止出现与现代都市不兼容的元素
---
## 四、都市动作节奏
- **都市动作要自然** — 所有人物动作默认自然节奏。起身、转身、抬手都应标注"自然"或"随意"
- **道具互动** — 都市场景中手机、咖啡杯、文件、车钥匙等道具的使用是天然的动态资产,可在画面描述中加入道具互动细节,增加生活质感
- **肢体语言现代化** — 都市人物举止应符合现代都市气质:自信的步态、随性的倚靠、不经意的小动作(拨头发、看手表、咬唇)
---
## 五、运镜禁忌
- **禁用快速运镜** — 甩镜、急推、手持晃动与真人都市写实的气质冲突(除非是动作/追逐场景)
- **禁用花式转场** — 划屏、旋转、百叶窗等与本风格不兼容
---

View File

@ -37,6 +37,9 @@ extraResources:
win:
target:
- target: nsis
arch:
- x64
- arm64
icon: ./scripts/logo.ico
nsis: