发版前准备

This commit is contained in:
ACT丶流星雨 2026-04-03 04:54:16 +08:00
parent cc7c192d72
commit a033bfa4c2
38 changed files with 301 additions and 218 deletions

View File

@ -52,6 +52,7 @@
> 🚀 **一站式短剧工程**从文本到角色从分镜到视频0门槛全流程AI化创作效率提升10倍+
</div>
---
# 🌐 多语言支持
@ -72,34 +73,49 @@ Toonflow 支持以下语言界面:
---
# <EFBFBD>🌟 主要功能
# 🌟 主要功能
Toonflow 是一款 AI 短剧漫剧工具,能够利用 AI 技术将小说自动转化为剧本,并结合 AI 生成的图片和视频,实现高效的短剧创作。借助 Toonflow可以轻松完成从文字到影像的全流程让短剧制作变得更加智能与便捷
Toonflow v1.0.8 是面向短剧生产的 AI 工作台,围绕“策划 → 编剧 → 分镜 → 出片”构建完整闭环,并支持本地化、可编程、可持续迭代的生产流程
- ✅ **角色生成**
自动分析原始小说文本,智能识别并生成角色设定,包括外貌、性格、身份等详细信息,为后续剧本与画面创作提供可靠基础。
- ✅ **剧本生成**
基于选定事件和章节,系统自动生成结构化剧本,涵盖对白、场景描述、剧情走向,实现从文学文本到影视剧本的高效转换。
- ✅ **分镜制作**
根据剧本内容,智能生成分镜提示词与画面设计,细化前中后景、角色动态、道具设定和场景布局,自动根据剧本生成分镜,为视频制作提供完整路线蓝图。
- ✅ **视频合成**
集成 AI 图像与视频技术,可使用 AI 生成视频片段。整合在线编辑,支持个性化调整输出,让影视创作高效协同、快捷落地。
- ✅ **无限画布生产工作台**
以类无限画布形式组织剧本、角色、分镜、素材与视频节点,支持自由编排、回溯与并行生产,不受线性步骤限制。
- ✅ **三层 Agent 协作体系**
决策层、执行层、监督层协同工作,覆盖任务拆解、内容生成、质量审阅与修订反馈,提升稳定性与成片一致性。
- ✅ **持久化 Agent 记忆**
基于本地 ONNX 向量检索的跨会话记忆系统,支持短期消息、长期摘要和语义召回,确保多轮创作连续性。
- ✅ **可编程供应商系统**
支持在设置中心直接编写供应商 TypeScript 逻辑并即时生效,无需改源码或重启,便于私有化和多模型接入。
- ✅ **章节事件图谱驱动改编**
自动提取原著章节事件并结构化存储,剧本改编按事件图谱精准调用上下文,减少长文本信息丢失。
- ✅ **Skill 文件化配置**
ScriptAgent 与 ProductionAgent 的核心提示词外化为 Markdown Skill 文件,支持在线编辑与快速调优。
---
# 📦 应用场景
- 短视频内容创作
- 小说影视化实验
- AI 文学改编工具
- 剧本开发与快速原型
- 视频素材生成
- 网文/小说快速影视化改编
- 短剧团队流水线协作生产
- 多项目并行的 AI 内容工厂
- 私有化部署的企业级内容平台
- 低成本验证剧情与镜头方案
- 教学与研究场景下的 AIGC 创作实验
---
# 🔰 使用指南
## 📺 视频教程
## 🚀 v1.0.8 快速上手
1. 启动应用并登录(默认账号:`admin` / `admin123`)。
2. 在设置中心完成模型供应商配置(文本/图像/视频模型)。
3. 新建项目并导入原著,执行章节事件提取。
4. 进入 ScriptAgent 生成故事骨架、改编策略与结构化剧本。
5. 切换到 ProductionAgent在无限画布中组织分镜、素材与视频节点。
6. 对分镜图进行节点化精调后回流工作台,完成视频拼接与导出。
## 📺 视频教程(待更新,老版本教程已无参考价值)
https://www.bilibili.com/video/BV1na6wB6Ea2
[![Toonflow 8 分钟快速上手 AI 视频](./docs/videoCover.png)](https://www.bilibili.com/video/BV1na6wB6Ea2)
@ -113,6 +129,8 @@ https://www.bilibili.com/video/BV1na6wB6Ea2
---
# 🚀 安装
## 前置条件
@ -538,7 +556,7 @@ Toonflow 基于 Apache-2.0 协议开源发布,并附有补充商业协议。
| 阶段 | 年销售额 | 年费 |
|------|---------|------|
| 🌱 扶持期 | < ¥10 万 | **免费** |
| 🌱 扶持期 | < ¥10 万 | **申请即可免费授权** |
| 🚀 初创期 | ¥1050 万 | ¥5,000/年 |
| 📈 成长期 | ¥50150 万 | ¥20,000/年 |
| 🏢 规模期 | ¥150500 万 | ¥80,000/年 |

View File

@ -161,7 +161,33 @@
---
## 七、四视图设定图规范
## 七、服化组合速查
| 场景 | 妆容 | 发型 | 服饰 | 配饰 |
|---|---|---|---|---|
| 日常校园 | 日常淡妆 | 双马尾/长发披散 | 制服/日常休闲装 | 简约 |
| 初次相遇 | 日常淡妆 | 长发披散/侧马尾 | 日常休闲装 | 中等 |
| 甜蜜约会 | 约会妆 | 侧马尾/丸子头 | 休闲/和服 | 中偏多 |
| 正式场合 | 正式妆 | 编发/高马尾 | 礼服/正式服 | 较繁 |
| 温柔私密 | 日常淡妆 | 长发披散 | 日常休闲装 | 简约 |
| 激烈行动 | 日常淡妆(极淡) | 高马尾 | 运动装 | 简 |
| 复古场景 | 复古妆 | 编发/双马尾 | 和服/复古装 | 中等 |
> **🔍 未覆盖场景推断规则**
>
> 当用户描述的场景/情境不在上表时,根据本风格核心基因自行推断:
>
> | 推断维度 | 90年代复古日系动画基因 |
> |---|---|
> | 妆容强度 | 默认日常淡妆(平涂上色、怀旧感);正式/典礼→正式妆;约会/心动→约会妆;复古主题→复古妆 |
> | 发型 | 日常/少女→双马尾或长发披散;运动/行动→高马尾;正式→编发;俏皮/个性→侧马尾;可爱→丸子头 |
> | 服饰 | 90年代风格为锚校服/制服/休闲装/和服);暖色调、怀旧色彩优先;线条流畅、布料纹理清晰 |
> | 配饰繁度 | 日常→简约90年代风格发饰+基础配饰);正式→中等偏繁;行动/运动→简或无 |
> | 质感基准 | 手绘平涂上色始终锁定;线条流畅、色彩柔和暖调;禁止数字感/3D渲染/现代CG质感 |
---
## 八、四视图设定图规范
### 视图定义

View File

@ -99,7 +99,7 @@
纯道具静物展示,道具独立陈列,无人持有,无人佩戴,
同一画面四宫格2×2左上正面图+右上侧面图+左下背面图+右下细节特写,
暖调米白背景,柔和电影光,均匀柔光,无硬阴影,
材质纹理超清晰,质感写实{材质光泽描述}
材质纹理超清晰,手绘质感,{材质光泽描述}
图中不要有任何文字,
画面中不能出现任何人物、手部、手指、肢体,道具不可处于被握持或佩戴状态
```

View File

@ -87,7 +87,7 @@
纯道具静物展示,道具独立陈列,无人持有,无人佩戴,
同一画面四宫格2×2左上正面图(front view)+右上侧面图(side view)+左下背面图(back view)+右下细节特写(detail closeup)
暖调米白背景,柔和电影光,均匀柔光,无硬阴影,
材质纹理超清晰,质感写实,状态细节可辨
材质纹理超清晰,手绘质感,状态细节可辨
图中不要有任何文字,
画面中不能出现任何人物、手部、手指、肢体,道具不可处于被握持或佩戴状态
```

View File

@ -113,7 +113,7 @@ scene design sheetenvironment concept artno peopleno charactersno hu
{色调描述}{天候/氛围元素}
{材质描述},空气透视,线条细节超清晰,
线条流畅、块面阴影、使用痕迹,
柔和电影光、体积光、自然光照,
柔和电影光、背景光晕、自然光照,
同一画面2×2网格排列从场景中心点环视前视图+右视图+后视图+左视图,
四视图均从同一中心点平视拍摄,建筑结构一致,材质色调一致,光影逻辑一致,
画面中无任何人物

View File

@ -108,24 +108,24 @@
## 六、提示词模板
```
扁平古风场景衍生四视图设定图,基于{场景名}概念图,
2d flat designvector artflat illustration
minimalistclean linessolid colors
flat scene derivativeenvironment concept artno peopleno charactersno human figures
90年代复古日系动画风格场景衍生四视图设定图基于{场景名}概念图,
90s anime style手绘平涂上色柔和暖色调精细流畅线条电影感光影
scene derivative design sheetenvironment concept artno peopleno charactersno human figures
保持场景空间结构一致,
{景别视角(如有)}{时段描述(如有)}{天候描述(如有)}
{前景色块}{中景色块}{后景色块}
{色调描述}{色块变化(如有)}{天空色块变化(如有)}{氛围调整(如有)}
{天候视觉特征(如有)}{材质色块变化(如有)}{植被适配描述(如有)}
无岁月痕迹,无磨损,扁平完美,
无光照,无阴影,纯色平涂,
无透视,纯色填充,
{前景}{中景}{后景}
{色调描述}{景深描述(如有)}{天空色调变化(如有)}{氛围调整(如有)}
{天候视觉特征(如有)}{材质表面变化(如有)}{植被适配描述(如有)}
线条流畅、块面阴影、使用痕迹,
柔和电影光、背景光晕、自然光照,
同一画面四宫格2×2从场景中心点环视前视图+右视图+后视图+左视图,
四视图均从同一中心点平视拍摄,建筑结构一致,材质色调一致,
四视图均从同一中心点平视拍摄,建筑结构一致,材质色调一致,光影逻辑一致,
画面中无任何人物
图中不要有任何文字
```
> **使用说明**:根据用户提供的信息自行判断需要应用的变化维度(景别/时段/天候),未提及的维度对应字段留空省略即可。无需为每种变体单独生成模板。
---
## 七、约束规则

View File

@ -203,6 +203,18 @@ metaData: art_skills
---
> **🔍 未覆盖场景推断规则**
>
> 当用户描述的场景/情境不在上表时,根据本风格核心基因自行推断:
>
> | 推断维度 | 国风二次元基因 |
> |---|---|
> | 妆容强度 | 默认清雅素妆;有节日/仪式/正式关键词→宫廷贵气妆;有甜宠/心动词→桃花妆 |
> | 发型 | 日常/闺中→半扎发或堕马髻;正式/亮相→高髻云鬓;私密/夜晚→披发;行动→束发马尾 |
> | 服饰 | 情感戏/日常→古装长裙(轻柔飘逸);权力/正式→宫廷礼服;行动/武斗→轻便常服 |
> | 配饰繁度 | 日常→中等;正式→极繁(珠翠发饰+璎珞+腰饰);私密/休闲→简;行动→简 |
> | 色调倾向 | 中国传统色为锚(霜白/月白/朱砂/靛蓝);夜景/私密→降饱和;喜庆→暖红+金 |
## 八、四视图设定图规范
> 衍生服化叠加后仍需输出四视图设定图,确保服化妆造在各角度的一致性。

View File

@ -185,6 +185,18 @@
---
> **🔍 未覆盖场景推断规则**
>
> 当用户描述的场景/情境不在上表时,根据本风格核心基因自行推断:
>
> | 推断维度 | 扁平古风基因 |
> |---|---|
> | 妆容强度 | 默认清雅素妆(色块极简);正式/亮相→冷艳霜妆;甜宠/约会→柔媚桃妆;弱化/虚弱→病弱梨妆 |
> | 发型 | 日常→半挽云髻或堕马髻;正式→飞仙髻;私密/夜晚→全散发;行动→束发马尾 |
> | 服饰 | 所有服饰必须转化为扁平色块表达;纹样极度简化;多层叠穿保留轮廓感即可 |
> | 配饰繁度 | 扁平化处理优先;正式→扁平极繁(简化为色块头饰+腰饰轮廓);日常→扁平中等 |
> | 色调倾向 | 低饱和古风色系(茶白/竹青/藕粉/砖红);无渐变;明确边界线 |
## 八、四视图设定图规范
### 视图定义

View File

@ -44,7 +44,7 @@
|---|---|---|
| 肤色 | 冷白皮、全身均匀、白得通透 | 冷白皮、白皙肌肤 |
| 光泽 | 柔和光感、非哑光非油光 | 肌肤柔光、肌肤细腻 |
| 质感 | 细腻、保留毛孔微质感 | 皮肤细腻、肌肤质感 |
| 质感 | 细腻光滑、赛璐璐质感 | 皮肤细腻、肌肤质感 |
| 露肤 | 面部/颈部/锁骨/手部 | 肩颈线条优美、肌肤白皙 |
### 男性
@ -53,7 +53,7 @@
|---|---|---|
| 肤色 | 白皙透亮、带健康感、全身均匀 | 肤色白皙、健康肤色 |
| 光泽 | 清爽光感、自然光泽 | 肌肤清爽、皮肤透亮 |
| 质感 | 干净利落、可见毛孔 | 皮肤质感细腻、面容清冽 |
| 质感 | 干净利落、赛璐璐光泽 | 皮肤质感细腻、面容清冽 |
---
@ -170,7 +170,7 @@
{性别}角色四视图设定图,二次元动画风格,赛璐璐上色,现代都市风格,强对比度,极致细节,
character design sheetcharacter turnaround
{脸型}{眼型}{鼻型}{唇型}{整体气质},素颜无妆,
{肤色},肌肤柔光,皮肤细腻,毛孔微可见
{肤色},肌肤柔光,皮肤细腻,赛璐璐质感
{身高描述170cm tall、tall slender woman}{头身比7 heads tall proportion}{身材描述}{体态描述}
{发色}{发长},发丝层次分明,{基础造型},无发饰,
(女性:吊带背心和四角短裤 / 男性:仅四角短裤),基础色,无花纹装饰,

View File

@ -196,6 +196,18 @@
---
> **🔍 未覆盖场景推断规则**
>
> 当用户描述的场景/情境不在上表时,根据本风格核心基因自行推断:
>
> | 推断维度 | 二次元都市言情基因 |
> |---|---|
> | 妆容强度 | 默认清雅素妆;有张力/对峙/职权词→冷艳霜妆;甜宠/暧昧/心动→柔媚桃妆;虚弱/受伤→病弱梨妆;晚宴/派对→华贵晚宴妆 |
> | 发型 | 职场/通勤→半扎发或盘发;日常/恋爱→自然披发;运动/行动→高马尾;正式场合→优雅盘发 |
> | 服饰 | 现代都市场景优先;情感强度越高→服饰精致度越高;张力场景→商务正装/冷色系 |
> | 配饰繁度 | 日常→简约;约会→精致首饰+包袋;正式/晚宴→精致首饰+手表;运动→简或无 |
> | 色调倾向 | 冷白皮+低饱和都市配色;暧昧场景→暖粉调;对峙/张力→冷灰+黑白对比 |
## 八、四视图设定图规范
> 衍生服化叠加后仍需输出四视图设定图,确保服化妆造在各角度的一致性。

View File

@ -32,7 +32,7 @@
| 材质 | 玻璃/陶瓷/金属/塑料 | 透明玻璃杯、陶瓷咖啡杯 |
| 装饰 | 品牌标识/图案(可选) | 简约品牌标识、无图案 |
| 光泽 | 玻璃反光、陶瓷釉光、金属光泽 | 玻璃反光清晰、陶瓷温润 |
| 提示词 | 现代{道具},材质清晰,质感写实 | — |
| 提示词 | 现代{道具},材质清晰,赛璐璐质感 | — |
### 2.3 个人物品类
@ -99,14 +99,14 @@
二次元道具设定图,
anime stylecel shadingmodern urban style
cinematic compositionultra detailed8Khigh quality
shallow depth of fieldfilm grainlens flarevignette
真实二次元动画风格,现代都市风,戏剧化低调光影,
shallow depth of field画面颗粒感,镜头暗角
赛璐璐动画风格,现代都市风,戏剧化低调光影,
prop design sheetitem concept artno peopleno charactersno human figures
{道具类型}{材质描述}{工艺/装饰描述}{状态描述}
纯道具静物展示,道具独立陈列,无人持有,无人佩戴,
同一画面四宫格2×2左上正面图+右上侧面图+左下背面图+右下细节特写,
纯净中性灰背景,均匀柔光,无硬阴影,
材质纹理超清晰,质感写实{材质光泽描述}
材质纹理超清晰,赛璐璐质感,{材质光泽描述}
图中不要有任何文字,
画面中不能出现任何人物、手部、手指、肢体,道具不可处于被握持或佩戴状态
@ -122,7 +122,7 @@ prop design sheetitem concept artno peopleno charactersno human figu
| R2 | 必须明确道具材质与工艺 |
| R3 | 道具造型必须符合现代都市言情世界观 |
| R4 | 必须包含「二次元动画风格」关键词anime style / cel shading |
| R5 | 必须包含镜头光学特征shallow depth of field / film grain / vignette 至少一项) |
| R5 | 必须包含景深特征shallow depth of field / vignette 至少一项),保持动画赛璐璐风格 |
### 严禁

View File

@ -83,8 +83,8 @@
基于{道具名}设定图,
anime stylecel shadingmodern urban style
cinematic compositionultra detailed8Khigh quality
shallow depth of fieldfilm grainlens flarevignette
真实二次元动画风格,现代都市风,戏剧化低调光影,
shallow depth of field画面颗粒感,镜头暗角
赛璐璐动画风格,现代都市风,戏剧化低调光影,
prop derivative design sheetitem concept artno peopleno charactersno human figures
{道具类型}{材质描述}
当前状态:{状态名}{状态视觉描述}
@ -92,7 +92,7 @@ prop derivative design sheetitem concept artno peopleno charactersno
纯道具静物展示,道具独立陈列,无人持有,无人佩戴,
同一画面四宫格2×2左上正面图(front view)+右上侧面图(side view)+左下背面图(back view)+右下细节特写(detail closeup)
纯净中性灰背景,均匀柔光,无硬阴影,
材质纹理超清晰,质感写实,状态细节可辨
材质纹理超清晰,赛璐璐质感,状态细节可辨
图中不要有任何文字,
画面中不能出现任何人物、手部、手指、肢体,道具不可处于被握持或佩戴状态
@ -109,7 +109,7 @@ prop derivative design sheetitem concept artno peopleno charactersno
| R3 | 必须使用四宫格2×2布局左上正面图+右上侧面图+左下背面图+右下细节特写 |
| R4 | 必须指定「纯净中性灰背景」,均匀柔光,无硬阴影 |
| R5 | 必须包含「二次元动画风格」关键词anime style / cel shading |
| R6 | 必须包含镜头光学特征shallow depth of field / film grain / vignette 至少一项) |
| R6 | 必须包含景深特征shallow depth of field / vignette 至少一项),保持动画赛璐璐风格 |
### 严禁

View File

@ -63,7 +63,7 @@
| 建筑 | 现代建筑/玻璃幕墙/砖墙 | 现代都市、建筑线条 |
| 空气感 | 必须有空气透视,远处偏灰偏蓝 | 远山如黛、空气透视 |
| 光照 | 自然光/人造光、戏剧化低调光影 | 自然光照、体积光、戏剧光影 |
| 镜头感 | 电影级构图、浅景深虚化、镜头光学特征 | `shallow depth of field``film grain``lens flare` |
| 镜头感 | 电影级构图、浅景深虚化、动画镜头特征 | `shallow depth of field``vignette``anime cinematic` |
| 瑕疵感 | 城市使用痕迹、岁月痕迹 | 城市痕迹、生活气息 |
### 室外类型速查
@ -111,8 +111,8 @@
anime stylecel shadingmodern urban style
cinematic compositiondramatic low-key lighting
ultra detailed8Khigh quality
shallow depth of fieldfilm grainlens flarevignette
真实二次元动画风格,电影级构图,戏剧化低调光影,
shallow depth of field画面颗粒感,镜头暗角
赛璐璐动画风格,电影级构图,戏剧化低调光影,
scene design sheetenvironment concept artno peopleno charactersno human figures
{室内/室外}{场景类型}{现代风格}{季节+时间}
前景:{元素},中景:{元素},后景:{元素}
@ -139,7 +139,7 @@ scene design sheetenvironment concept artno peopleno charactersno hu
| R4 | 四视图的建筑结构/材质/色调/光线/季节/天候必须完全一致 |
| R5 | 场景图中**严禁出现任何人物** |
| R6 | 必须包含「二次元动画风格」关键词anime style / cel shading |
| R7 | 必须包含镜头光学特征shallow depth of field / film grain / vignette 至少一项) |
| R7 | 必须包含景深特征shallow depth of field / vignette 至少一项),保持动画赛璐璐风格 |
| R8 | 材质必须带有现代使用痕迹/生活气息,禁止全新无瑕的"3D渲染感" |
### 严禁

View File

@ -112,8 +112,8 @@
anime stylecel shadingmodern urban style
cinematic compositiondramatic low-key lighting
ultra detailed8Khigh quality
shallow depth of fieldfilm grainlens flarevignette
真实二次元动画风格,电影级构图,戏剧化低调光影,
shallow depth of field画面颗粒感,镜头暗角
赛璐璐动画风格,电影级构图,戏剧化低调光影,
scene derivative design sheetenvironment concept artno peopleno charactersno human figures
保持场景空间结构一致,
{景别视角(如有)}{时段描述(如有)}{天候描述(如有)}
@ -146,7 +146,7 @@ scene derivative design sheetenvironment concept artno peopleno charact
| R6 | 场景图中**严禁出现任何人物** |
| R7 | 根据用户提供的信息自行判断变化维度,无需拆分为独立模板 |
| R8 | 必须包含「二次元动画风格」关键词anime style / cel shading |
| R9 | 必须包含镜头光学特征shallow depth of field / film grain / vignette 至少一项) |
| R9 | 必须包含景深特征shallow depth of field / vignette 至少一项),保持动画赛璐璐风格 |
| R10 | 材质必须带有现代使用痕迹/生活气息,禁止全新无瑕的"3D渲染感" |
### 严禁

View File

@ -45,7 +45,7 @@
|---|---|---|
| 肤色 | 暖白皮、全身均匀、透亮感 | 暖白皮、蜜桃肌、peach skin |
| 光泽 | 柔光肌、内透光感、非哑光 | 柔光肌肤、inner glow、soft glow |
| 质感 | 细腻、保留微纹理 | 皮肤细腻、微纹理可见 |
| 质感 | 细腻光滑、赛璐珞渲染质感 | 皮肤细腻、赛璐珞质感 |
| 露肤 | 面部/颈部/锁骨/手部 | 肩颈线条优美、肌肤暖白透亮 |
### 男性
@ -54,7 +54,7 @@
|---|---|---|
| 肤色 | 暖调米色、带健康感、全身均匀 | 暖调米色、健康肤色 |
| 光泽 | 清爽柔光、自然光泽 | 柔光肌、皮肤透亮清爽 |
| 质感 | 干净细腻、可见微纹理 | 皮肤质感细腻、面容清爽 |
| 质感 | 干净细腻、赛璐珞光泽 | 皮肤质感细腻、面容清爽 |
---
@ -171,10 +171,10 @@
## 八、提示词模板
```
{性别}角色四视图设定图3D 动画渲染,电影级打光,活力赛璐珞质感,高细节材质,愉悦治愈氛围,卡通都市风,写实材质与卡通比例结合暖色调配色8K 超高清,电影级构图,柔和光影层次,明快卡通渲染风格,温馨治愈,
{性别}角色四视图设定图3D 动画渲染,电影级打光,活力赛璐珞质感,高细节材质,愉悦治愈氛围,卡通都市风,高细节卡通材质,适度卡通比例暖色调配色8K 超高清,电影级构图,柔和光影层次,明快卡通渲染风格,温馨治愈,
character design sheetcharacter turnaround
{脸型}{眼型}{鼻型}{唇型}{整体气质},素颜无妆,
{肤色},柔光肌,皮肤通透发光,皮肤细腻,微纹理可见
{肤色},柔光肌,皮肤通透发光,皮肤细腻,赛璐珞质感
{身高描述165cm tall、petite cute girl}{头身比6.5 heads tall proportion}{身材描述}{体态描述}
{发色}{发长},发丝根根分明,{基础造型},无发饰,
(女性:运动背心和四角短裤 / 男性:仅四角短裤),基础色,无花纹装饰,

View File

@ -19,7 +19,7 @@
|---|---|---|
| L0 | 底模 | 基础形象底模,不修改 |
| L1 | 妆容(决策层) | 先分析用户线索,再决策「基础妆 / 轻妆 / 正式妆」强度 |
| L2 | 发型造型 | 发髻/束发/编发 + 发饰 |
| L2 | 发型造型 | 散发/马尾/盘发/半扎 + 发饰 |
| L3 | 中衣/内搭 | 替换白色基础中衣 |
| L4 | 外衣/主服 | 现代都市服饰 |
| L5 | 配饰 | 头饰/耳饰/项饰/腰饰/手饰 |
@ -62,7 +62,7 @@
| 冷艳霜妆 | 正式、对峙、权力 | 妆容冷艳、眉眼锋利、薄唇冷冽 |
| 柔媚桃妆 | 甜宠、暧昧、心动 | 桃花妆、眼尾微红、唇色水润 |
| 病弱梨妆 | 受伤、虚弱 | 面色苍白、唇色极淡、眼下微红 |
| 华贵凤妆 | 大婚、盛装 | 浓妆华美、朱唇凤眼 |
| 华贵晚宴妆 | 正式晚宴、盛装出席 | 浓妆精致、唇色亮眼 |
### 通用底肤(所有妆容共享)
@ -110,29 +110,29 @@
| 造型 | 描述 | 适用 | 提示词 |
|---|---|---|---|
| 半挽云髻 | 发顶挽髻+后方垂发 | 日常、出行 | 半挽云髻、青丝半绾 |
| 飞仙髻 | 高髻飞挑、飘逸 | 仙境、亮相 | 飞仙髻、高髻飞挑 |
| 堕马髻 | 侧偏低髻、慵懒 | 私密、暧昧 | 堕马髻、慵懒侧髻 |
| 双环髻 | 双髻对称、少女 | 年轻角色 | 双环髻、少女双髻 |
| 全散发 | 长发全散、配简单发饰 | 受伤、落魄 | 长发散落、青丝如瀑 |
| 束发马尾 | 高束干练 | 习武、行动 | 束发高马尾、干练利落 |
| 自然散发 | 长发自然垂落、柔顺有光泽 | 日常、休闲 | 自然散发、柔顺长发 |
| 高马尾 | 高束马尾、活力干练 | 运动、通勤 | 高马尾、活力马尾 |
| 低马尾 | 低束马尾、优雅简洁 | 日常、商务 | 低马尾、优雅马尾 |
| 半扎发 | 上方半扎+下方自然垂落 | 日常、约会 | 半扎发、半束发型 |
| 双马尾 | 两侧马尾、青春活泼 | 活泼场景 | 双马尾、活泼发型 |
| 优雅盘发 | 盘发/丸子头、正式感 | 正式场合 | 优雅盘发、低发髻 |
### 女性发饰
| 项目 | 约束 | 提示词 |
|---|---|---|
| 风格 | 现代都市风、与服饰配套 | 现代发饰、都市风格 |
| 材质 | 金属 + 珠玉 + 流苏 | 金丝流苏、珠翠满头 |
| 工艺 | 精工艺、卡通化呈现 | 精细工艺、精致装饰 |
| 风格 | 现代都市风、简约精致、与服饰配套 | 现代发饰、都市风格 |
| 材质 | 金属/布艺/亚克力 | 金属发夹、布艺发饰 |
| 工艺 | 精工艺、卡通化呈现 | 精细工艺、精致装饰 |
### 男性造型类型
| 造型 | 适用 | 提示词 |
|---|---|---|
| 束发半冠 | 日常、文人 | 束发半冠、玉簪束发 |
| 全冠高束 | 正式、朝堂 | 全冠高束、玉冠束发 |
| 散发披肩 | 私密、受伤 | 散发披肩、长发如墨 |
| 战束马尾 | 战斗、习武 | 高束战发、马尾利落 |
| 清爽短发 | 日常、商务 | 清爽短发、整洁发型 |
| 侧分中分 | 正式、通勤 | 侧分发型、中分发型 |
| 蓬松凌乱 | 休闲、文艺 | 蓬松发型、凌乱随意 |
| 中长自然 | 休闲、文艺 | 中长发、自然垂落 |
---
@ -198,16 +198,28 @@
| 场景 | 妆容 | 发型 | 服饰 | 配饰 |
|---|---|---|---|---|
| 日常通勤 | 清雅素妆 | 半/马尾 | 都市通勤装 | 简约 |
| 休闲约会 | 柔媚桃妆 | 半/散发 | 休闲常服 | 中等 |
| 商务会议 | 冷艳霜妆 | 半/束发 | 商务正装 | 精致 |
| 日常通勤 | 清雅素妆 | 半扎发/马尾 | 都市通勤装 | 简约 |
| 休闲约会 | 柔媚桃妆 | 半扎发/散发 | 休闲常服 | 中等 |
| 商务会议 | 冷艳霜妆 | 半扎发/束发 | 商务正装 | 精致 |
| 运动健身 | 轻妆 | 马尾/束发 | 运动装 | 简 |
| 正式晚宴 | 华贵凤妆 | 盘发/半挽 | 晚礼服 | 极繁 |
| 周末逛街 | 轻妆 | 散发/半 | 休闲常服 | 中等 |
| 正式晚宴 | 华贵晚宴妆 | 盘发/半扎发 | 晚礼服 | 极繁 |
| 周末逛街 | 轻妆 | 散发/半扎发 | 休闲常服 | 中等 |
| 运动比赛 | 轻妆 | 马尾/束发 | 运动装 | 简 |
---
> **🔍 未覆盖场景推断规则**
>
> 当用户描述的场景/情境不在上表时,根据本风格核心基因自行推断:
>
> | 推断维度 | 3D动画渲染都市基因 |
> |---|---|
> | 妆容强度 | 默认清雅素妆;正式/商务→冷艳霜妆;甜宠/约会→柔媚桃妆;虚弱/受伤→病弱梨妆;晚宴/盛装→华贵晚宴妆 |
> | 发型 | 日常/通勤→半扎发或马尾;休闲/约会→自然散发;正式→盘发;运动→高马尾;双马尾用于青春活泼场景 |
> | 服饰 | 都市场景全覆盖;场合正式度决定服饰精致度(通勤<日常<约会<晚宴3D赛璐珞材质始终保持 |
> | 配饰繁度 | 运动→简;日常/通勤→简约;约会→中等精致;正式晚宴→极繁 |
> | 质感基准 | 赛璐珞渲染+柔和光影始终锁定;禁止滑向写实摄影或平面二次元质感 |
## 八、四视图设定图规范
> 衍生服化叠加后仍需输出四视图设定图,确保服化妆造在各角度的一致性。
@ -252,7 +264,7 @@
```
以角色基础形象图为底图img2img叠加服化妆造
3D 动画渲染,电影级打光,活力赛璐珞质感,高细节材质,愉悦治愈氛围,卡通都市风,写实材质与卡通比例结合暖色调配色8K 超高清,电影级构图,柔和光影层次,明快卡通渲染风格,温馨治愈,{性别}角色四视图设定图,
3D 动画渲染,电影级打光,活力赛璐珞质感,高细节材质,愉悦治愈氛围,卡通都市风,高细节卡通材质,适度卡通比例暖色调配色8K 超高清,电影级构图,柔和光影层次,明快卡通渲染风格,温馨治愈,{性别}角色四视图设定图,
anime style, cel-shaded, 3D animation render, film lighting,
character design sheet, character turnaround,
保持基础形象面容不变,{整体气质}

View File

@ -96,7 +96,7 @@
## 五、提示词模板
```
3D 动画渲染,电影级打光,活力赛璐珞质感,高细节材质,愉悦治愈氛围,卡通都市风,写实材质与卡通比例结合暖色调配色8K 超高清,电影级构图,柔和光影层次,明快卡通渲染风格,温馨治愈,道具设定图,
3D 动画渲染,电影级打光,活力赛璐珞质感,高细节材质,愉悦治愈氛围,卡通都市风,高细节卡通材质,适度卡通比例暖色调配色8K 超高清,电影级构图,柔和光影层次,明快卡通渲染风格,温馨治愈,道具设定图,
anime style, cel-shaded, 3D animation render,
{道具类型}{材质描述}{工艺/装饰描述}{状态描述}
纯道具静物展示,道具独立陈列,无人持有,无人佩戴,

View File

@ -80,7 +80,7 @@
### 单状态变体
```
基于{道具名}设定图3D 动画渲染,电影级打光,活力赛璐珞质感,高细节材质,愉悦治愈氛围,卡通都市风,写实材质与卡通比例结合暖色调配色8K 超高清,电影级构图,柔和光影层次,明快卡通渲染风格,温馨治愈,
基于{道具名}设定图3D 动画渲染,电影级打光,活力赛璐珞质感,高细节材质,愉悦治愈氛围,卡通都市风,高细节卡通材质,适度卡通比例暖色调配色8K 超高清,电影级构图,柔和光影层次,明快卡通渲染风格,温馨治愈,
anime style, cel-shaded, 3D animation render,
{道具类型}{材质描述}
当前状态:{状态名}{状态视觉描述}

View File

@ -107,7 +107,7 @@
## 六、提示词模板
```
3D 动画渲染,电影级打光,活力赛璐珞质感,高细节材质,愉悦治愈氛围,卡通都市风,写实材质与卡通比例结合暖色调配色8K 超高清,电影级构图,柔和光影层次,明快卡通渲染风格,温馨治愈,都市场景四视图设定图,
3D 动画渲染,电影级打光,活力赛璐珞质感,高细节材质,愉悦治愈氛围,卡通都市风,高细节卡通材质,适度卡通比例暖色调配色8K 超高清,电影级构图,柔和光影层次,明快卡通渲染风格,温馨治愈,都市场景四视图设定图,
anime style, cel-shaded, 3D animation render,
film lighting, warm sunset lighting,
scene design sheet, environment concept art, no people, no characters, no human figures,
@ -115,12 +115,12 @@ scene design sheet, environment concept art, no people, no characters, no human
前景:{元素},中景:{元素},后景:{元素}
{色调描述}{天候/氛围元素}
{材质描述},空气透视,纹理清晰,赛璐珞化处理,
材质自然磨损痕迹,岁月包浆,布料自然垂褶(赛璐珞化),
材质自然使用痕迹,生活感磨损,布料自然垂褶(赛璐珞化),
自然光漫射,体积光,赛璐珞光效,赛璐珞投影,
同一画面2×2网格排列从场景中心点环视前视图+右视图+后视图+左视图,
四视图均从同一中心点平视拍摄,建筑结构一致,材质色调一致,光影逻辑一致,
画面中无任何人物,
赛璐珞渲染风格,柔和光影,适度卡通比例,写实材质结合
赛璐珞渲染风格,柔和光影,适度卡通比例,高细节卡通材质
暖色调配色,黄昏霞光氛围,愉悦治愈氛围,
8K 超高清,电影级构图,
图中不要有任何文字

View File

@ -109,7 +109,7 @@
## 六、提示词模板
```
3D 动画渲染,电影级打光,活力赛璐珞质感,高细节材质,愉悦治愈氛围,卡通都市风,写实材质与卡通比例结合暖色调配色8K 超高清,电影级构图,柔和光影层次,明快卡通渲染风格,温馨治愈,衍生四视图设定图,基于{场景名}概念图,
3D 动画渲染,电影级打光,活力赛璐珞质感,高细节材质,愉悦治愈氛围,卡通都市风,高细节卡通材质,适度卡通比例暖色调配色8K 超高清,电影级构图,柔和光影层次,明快卡通渲染风格,温馨治愈,衍生四视图设定图,基于{场景名}概念图,
anime style, cel-shaded, 3D animation render,
film lighting, warm sunset lighting,
scene derivative design sheet, environment concept art, no people, no characters, no human figures,
@ -118,13 +118,13 @@ scene derivative design sheet, environment concept art, no people, no characters
{前景}{中景}{后景}
{色调描述}{景深描述(如有)}{天空色调变化(如有)}{氛围调整(如有)}
{天候视觉特征(如有)}{材质表面变化(如有)}{植被适配描述(如有)}
材质自然磨损痕迹,岁月包浆,布料自然垂褶(赛璐珞化),
材质自然使用痕迹,生活感磨损,布料自然垂褶(赛璐珞化),
自然光漫射,体积光,赛璐珞光效,赛璐珞投影,
空气透视,纹理清晰,赛璐珞化处理,
同一画面四宫格2×2从场景中心点环视前视图+右视图+后视图+左视图,
四视图均从同一中心点平视拍摄,建筑结构一致,材质色调一致,光影逻辑一致,
画面中无任何人物,
赛璐珞渲染风格,柔和光影,适度卡通比例,写实材质结合
赛璐珞渲染风格,柔和光影,适度卡通比例,高细节卡通材质
暖色调配色,黄昏霞光氛围,愉悦治愈氛围,
8K 超高清,电影级构图,
图中不要有任何文字

View File

@ -165,7 +165,7 @@ metaData: art_skills
{性别}角色四视图设定图3D渲染风格高精度建模PBR材质国风3D电影级光影
character design sheet, character turnaround,
{脸型}, {眼型}, {鼻型}, {唇型}, {整体气质}, 素颜状态,
{肤色}, PBR材质渲染, 皮肤通透发光, 高精度建模, 光影层次丰富,
{肤色}, PBR材质渲染, 3D渲染通透质感, 高精度建模, 光影层次丰富,
{身高描述, 如:165cm tall, tall elegant woman}, {头身比, 如:7 heads tall proportion}, {身材描述}, {体态描述},
{发色}{发长}, 高精度发丝清晰, {基础造型}, 无发饰,
(女性: 素色古装长裙 / 男性: 素色古装长衫), 基础色, 无花纹装饰,

View File

@ -203,6 +203,18 @@ metaData: art_skills
---
> **🔍 未覆盖场景推断规则**
>
> 当用户描述的场景/情境不在上表时,根据本风格核心基因自行推断:
>
> | 推断维度 | 国风3D渲染基因 |
> |---|---|
> | 妆容强度 | 默认清雅素妆;宫廷/权力/正式→宫廷贵气妆;心动/甜宠→浪漫桃花妆;大婚/典礼→大婚盛妆;节日聚会→节日庆典妆 |
> | 发型 | 日常/闺中→半扎发或堕马髻;宫廷/正式→高髻云鬓;私密/夜晚→披发;习武/行动→束发马尾 |
> | 服饰 | 古装为基调;情感场景→飘逸长裙;权力/正式→宫廷礼服行动→轻便常服PBR材质始终保持 |
> | 配饰繁度 | 日常→中等;正式/宫廷→极繁(金银发饰+璎珞+玉佩);私密→极简;行动→简 |
> | 质感基准 | PBR材质+电影级光影始终锁定;体积感与光泽感优先于平面装饰感 |
## 八、四视图设定图规范
> 衍生服化叠加后仍需输出四视图设定图,确保服化妆造在各角度的一致性。

View File

@ -105,7 +105,7 @@ metaData: art_skills
纯道具静物展示,道具独立陈列,无人持有,无人佩戴,
同一画面四宫格2×2左上正面图+右上侧面图+左下背面图+右下细节特写,
素灰纯色背景,均匀柔光,无硬阴影,
材质纹理超清晰,质感写实{材质光泽描述}
材质纹理超清晰,PBR材质渲染{材质光泽描述}
图中不要有任何文字,
画面中不能出现任何人物、手部、手指、肢体,道具不可处于被握持或佩戴状态

View File

@ -92,7 +92,7 @@ metaData: art_skills
纯道具静物展示,道具独立陈列,无人持有,无人佩戴,
同一画面四宫格2×2左上正面图(front view)+右上侧面图(side view)+左下背面图(back view)+右下细节特写(detail closeup)
素灰纯色背景,均匀柔光,无硬阴影,
材质纹理超清晰,质感写实,状态细节可辨
材质纹理超清晰,PBR材质渲染,状态细节可辨
图中不要有任何文字,
画面中不能出现任何人物、手部、手指、肢体,道具不可处于被握持或佩戴状态

View File

@ -38,7 +38,7 @@ metaData: art_skills
| 材质 | 木质为主、石/玉/绢/纱为辅 | 檀木家具、玉石屏风、绢纱帷幔 |
| 色调 | 中国传统色调 + 月白纱幔 + 朱红木漆 | 暖木色调、素雅陈设 |
| 纵深 | 前/中/后景层次 | 前景{元素}、中景{元素}、后景{元素} |
| 质感 | 木纹/布料垂感/瓷器光泽可辨 | 纹理清晰、质感写实 |
| 质感 | 木纹/布料垂感/瓷器光泽可辨 | 纹理清晰、材质质感精细 |
| 光照 | 自然光源为主(窗光/烛光),体积光,环境光遮蔽 | 自然光漫射、烛光摇曳、体积光 |
| 镜头感 | 景深虚化前后景、镜头暗角、色散微痕 | depth of field、lens vignette、chromatic aberration |
| 瑕疵感 | 木面有使用痕迹、石面有风化纹、布料有自然褶皱 | 岁月痕迹、自然磨损、布料自然垂褶 |
@ -114,9 +114,9 @@ metaData: art_skills
古风场景四视图设定图,
3D渲染风格高精度建模PBR材质国风3D电影级光影
3D rendered, photorealistic, shot on ARRI Alexa, volumetric lighting,
3D rendered, volumetric lighting,
depth of field, natural lens vignette, subtle chromatic aberration, bokeh,
真实摄影质感,体积光,自然光照,物理光影,
3D渲染质感,体积光,自然光照,物理光影,
scene design sheet, environment concept art, no people, no characters, no human figures,
{室内/室外}{场景类型}{朝代风格}{季节+时间},
前景:{元素}, 中景:{元素}, 后景:{元素},

View File

@ -116,9 +116,9 @@ metaData: art_skills
古风场景衍生四视图设定图,基于{场景名}概念图,
3D渲染风格高精度建模PBR材质国风3D电影级光影
3D rendered, photorealistic, volumetric lighting,
3D rendered, volumetric lighting,
depth of field, natural lens vignette, subtle chromatic aberration, bokeh,
真实摄影质感,体积光,自然光照,物理光影,
3D渲染质感,体积光,自然光照,物理光影,
scene derivative design sheet, environment concept art, no people, no characters, no human figures,
保持场景空间结构一致,
{景别视角(如有)}, {时段描述(如有)}, {天候描述(如有)},

View File

@ -99,10 +99,10 @@
| 造型 | 适用 | 提示词 |
|---|---|---|
| 束发半冠 | 日常、文人 | 束发半冠、自然束发 |
| 全冠高束 | 正式、朝堂 | 高束发冠、正式发型 |
| 束发半冠 | 日常、简约 | 束发半冠、自然束发 |
| 全冠高束 | 正式、典礼 | 高束发冠、正式发型 |
| 散发披肩 | 私密、休闲 | 散发披肩、自然长发 |
| 束发马尾 | 行动、习武 | 束发马尾、干练发型 |
| 束发马尾 | 行动、活动 | 束发马尾、干练发型 |
---
@ -114,7 +114,7 @@
|---|---|---|---|
| 日常长裙 | 简单长裙 | 日常、休闲 | 简单长裙、日常着装 |
| 礼服长裙 | 层叠长裙 | 正式、庆典 | 层叠长裙、华美礼服 |
| 轻便常服 | 短衫+裙装 | 行动、习武 | 轻便常服、短衫裙装 |
| 轻便常服 | 短衫+裙装 | 行动、活动 | 轻便常服、短衫裙装 |
| 寝衣 | 宽松长裙 | 室内、夜间 | 宽松寝衣、舒适长裙 |
| 大婚嫁衣 | 红色层叠长裙 | 婚礼 | 红色嫁衣、层叠红装 |
@ -131,11 +131,11 @@
| 风格 | 适用 | 提示词 |
|---|---|---|
| 文人常服 | 日常、书房 | 长衫、文人常服 |
| 武者劲装 | 战斗、行动 | 劲装、武者服饰 |
| 复古常服 | 日常、居家 | 复古长衫、日常常服 |
| 劲装 | 冒险、行动 | 劲装、冒险服饰 |
| 外袍大氅 | 出场、夜行 | 外袍、深色大氅 |
| 常服便装 | 休闲、私密 | 常服、便装 |
| 礼服 | 朝堂、典礼 | 礼服、正式服装 |
| 礼服 | 庆典、典礼 | 礼服、正式服装 |
---
@ -175,6 +175,18 @@
---
> **🔍 未覆盖场景推断规则**
>
> 当用户描述的场景/情境不在上表时,根据本风格核心基因自行推断:
>
> | 推断维度 | 黏土定格动画基因 |
> |---|---|
> | 妆容强度 | 默认清新裸妆(哑光黏土质感);甜宠/日常→甜暖桃妆;庆典/大婚→节日盛妆;夜晚/室内→夜宴妆 |
> | 发型 | 日常→半挽发髻;正式/庆典→高髻;私密/休闲→低垂发髻或全散发;所有发型保持黏土塑形感 |
> | 服饰 | 复古奇幻基调;日常→简约长裙;正式→层叠礼服长裙;行动→轻便常服;材质始终用黏土塑形+简单纹理 |
> | 配饰繁度 | 保持温馨不过于繁复;庆典→繁复(花朵+珠串);日常→简单;行动→极简 |
> | 质感基准 | 哑光黏土质感始终锁定;禁止高光/金属反射;暖调奶油色肤感优先 |
## 八、四视图设定图规范
### 视图定义

View File

@ -100,7 +100,7 @@
纯道具静物展示,道具独立陈列,无人持有,无人佩戴,
同一画面四宫格2×2左上正面图+右上侧面图+左下背面图+右下细节特写,
纯净中性灰背景,暖调柔光,无硬阴影,
材质纹理超清晰,质感写实{材质光泽描述}
材质纹理超清晰,黏土哑光质感,{材质光泽描述}
图中不要有任何文字,
画面中不能出现任何人物、手部、手指、肢体,道具不可处于被握持或佩戴状态
```

View File

@ -80,22 +80,16 @@
### 单状态变体
```
扁平古风场景衍生四视图设定图,基于{场景名}概念图,
2d flat designvector artflat illustration
minimalistclean linessolid colors
flat scene derivativeenvironment concept artno peopleno charactersno human figures
保持场景空间结构一致,
{景别视角(如有)}{时段描述(如有)}{天候描述(如有)}
{前景色块}{中景色块}{后景色块}
{色调描述}{色块变化(如有)}{天空色块变化(如有)}{氛围调整(如有)}
{天候视觉特征(如有)}{材质色块变化(如有)}{植被适配描述(如有)}
无岁月痕迹,无磨损,扁平完美,
无光照,无阴影,纯色平涂,
无透视,纯色填充,
同一画面四宫格2×2从场景中心点环视前视图+右视图+后视图+左视图,
四视图均从同一中心点平视拍摄,建筑结构一致,材质色调一致,
画面中无任何人物
图中不要有任何文字
基于{道具名}设定图黏土定格动画古风道具衍生状态定格动画风格3D卡通渲染暖调光影
{道具类型}{材质描述}
当前状态:{状态名}{状态视觉描述}
{材质表面变化描述}
纯道具静物展示,道具独立陈列,无人持有,无人佩戴,
同一画面四宫格2×2左上正面图(front view)+右上侧面图(side view)+左下背面图(back view)+右下细节特写(detail closeup)
纯净中性灰背景,暖调柔光,无硬阴影,
材质纹理超清晰,黏土哑光质感,状态细节可辨
图中不要有任何文字,
画面中不能出现任何人物、手部、手指、肢体,道具不可处于被握持或佩戴状态
```
---

View File

@ -208,6 +208,18 @@
---
> **🔍 未覆盖场景推断规则**
>
> 当用户描述的场景/情境不在上表时,根据本风格核心基因自行推断:
>
> | 推断维度 | 真人写实古风基因 |
> |---|---|
> | 妆容强度 | 默认清雅素妆(水光肌+发丝写实);权力/对峙→冷艳霜妆;心动/暧昧→柔媚桃妆;受伤/虚弱→病弱梨妆;大婚/典礼→华贵凤妆 |
> | 发型 | 日常/闺中→半挽云髻;仙境/亮相→飞仙髻;私密/暧昧→堕马髻;受伤落魄→全散发;行动→束发马尾;发丝必须根根分明 |
> | 服饰 | 真人写实质感优先;日常→大袖衫/轻柔飘逸;正式→曲裾深衣;行动→窄袖常服;主色默认白/月白;纹理必须超清晰 |
> | 配饰繁度 | 写实工艺极繁主义(大师工艺精雕细琢);日常→中等;正式→极繁(珠翠满头+璎珞+宫绦);行动→简;受伤→极简/无 |
> | 质感基准 | 真人写实摄影锚定;水光奶油瓷肌+发丝细节始终保持;禁止 3D 渲染/CG 感 |
## 八、四视图设定图规范
> 衍生服化叠加后仍需输出四视图设定图,确保服化妆造在各角度的一致性。

View File

@ -191,6 +191,18 @@
---
> **🔍 未覆盖场景推断规则**
>
> 当用户描述的场景/情境不在上表时,根据本风格核心基因自行推断:
>
> | 推断维度 | 真人写实都市基因 |
> |---|---|
> | 妆容强度 | 默认裸妆(自然肌肤);商务/正式→职场妆(干练精致);约会/聚会→约会妆(气色红润);派对/演出→派对妆;运动/户外→裸妆或轻妆 |
> | 发型 | 通勤/职场→马尾或半扎发;休闲/约会→自然长发或波浪卷;运动→高马尾或丸子头;正式→优雅盘发;时尚场合→短发 |
> | 服饰 | 场合决定精致度;职场→商务正装;休闲→日常时尚;约会→连衣裙/半身裙;运动→运动休闲;晚宴→礼服;真实面料质感始终保持 |
> | 配饰繁度 | 运动→简约或无;日常→手表+简约;约会→精致首饰;晚宴→精致全套 |
> | 质感基准 | 真人写实摄影锚定;自然肌肤纹理+发丝细节始终保持;禁止过度磨皮/塑料感/3D渲染 |
## 八、四视图设定图规范
### 视图定义

View File

@ -3,7 +3,7 @@ import { tool } from "ai";
import { z } from "zod";
import u from "@/utils";
import Memory from "@/utils/agent/memory";
import { buildSkillPrompt, createSkillTools, parseFrontmatter, scanSkills, useSkill } from "@/utils/agent/skillsTools";
import { createSkillTools, parseFrontmatter, scanSkills, useSkill } from "@/utils/agent/skillsTools";
import useTools from "@/agents/productionAgent/tools";
import ResTool from "@/socket/resTool";
import * as fs from "fs";
@ -43,16 +43,15 @@ export async function decisionAI(ctx: AgentContext) {
const skill = path.join(u.getPath("skills"), "production_agent_decision.md");
const prompt = await fs.promises.readFile(skill, "utf-8");
const projectInfo = await u.db("o_project").where("id", ctx.resTool.data.projectId).first();
if (!projectInfo) throw new Error(`项目不存在ID: ${ctx.resTool.data.projectId}`);
const [_, imageModelName] = projectInfo.imageModel!.split(":");
const [id, videoModelName] = projectInfo.videoModel!.split(":");
const data = await u.db("o_vendorConfig").where("id", id).select("models").first();
const models = JSON.parse(data!.models!);
const findData = models.find((i: any) => i.modelName == videoModelName);
const isRef = findData.mode.every((i: any) => Array.isArray(i));
const modelInfo = `项目使用的模型如下:\n图像模型${imageModelName}\n视频模型${videoModelName}\n多参${isRef ? "是" : "否"}`;
const projectInfo = await u.db("o_project").where("id", ctx.resTool.data.projectId).first();
if (!projectInfo) throw new Error(`项目不存在ID: ${ctx.resTool.data.projectId}`);
const [_, imageModelName] = projectInfo.imageModel!.split(":");
const [id, videoModelName] = projectInfo.videoModel!.split(":");
const data = await u.db("o_vendorConfig").where("id", id).select("models").first();
const models = JSON.parse(data!.models!);
const findData = models.find((i: any) => i.modelName == videoModelName);
const isRef = findData.mode.every((i: any) => Array.isArray(i));
const modelInfo = `项目使用的模型如下:\n图像模型${imageModelName}\n视频模型${videoModelName}\n多参${isRef ? "是" : "否"}`;
const mem = buildMemPrompt(await memory.get(text));
@ -149,11 +148,10 @@ function createSubAgent(parentCtx: AgentContext) {
"分镜面板:<storyboardItem videoDesc='视频描述' prompt=提示词内容 track='分组' duration='视频推荐时间' associateAssetsIds='[该分镜所需的资产ID列表]'></storyboardItem>",
"```",
].join("\n");
const projectInfo = await u.db("o_project").where("id", resTool.data.projectId).first();
if (!projectInfo) throw new Error(`项目不存在ID: ${resTool.data.projectId}`);
const artSkills = await createArtSkills(projectInfo?.artStyle!);
const artSkills = await createArtSkills(projectInfo?.artStyle!, projectInfo?.directorManual!);
const [_, imageModelName] = projectInfo.imageModel!.split(":");
const [id, videoModelName] = projectInfo.videoModel!.split(":");
@ -195,9 +193,10 @@ function createSubAgent(parentCtx: AgentContext) {
return { run_sub_agent_execution, run_sub_agent_supervision };
}
async function createArtSkills(artName: string) {
const workerPath = u.getPath(["skills", "art_prompts", artName, "driector_skills"]);
const skillList = await scanSkills(workerPath + "/*.md");
async function createArtSkills(artName: string, storyName: string) {
const artWorkerPath = u.getPath(["skills", "art_skills", artName, "driector_skills"]);
const storyWorkerPath = u.getPath(["skills", "story_skills", storyName, "driector_skills"]);
const skillList = [...(await scanSkills(artWorkerPath + "/*.md")), ...(await scanSkills(storyWorkerPath + "/*.md"))];
const mainSkills: { path: string; name: string; description: string }[] = [];
for (const skillPath of skillList) {
if (!fs.existsSync(skillPath)) throw new Error(`主技能文件不存在: ${skillPath}`);
@ -206,8 +205,12 @@ async function createArtSkills(artName: string) {
mainSkills.push({ path: skillPath, ...parsed });
}
const res = {
prompt: buildSkillPrompt(mainSkills),
tools: createSkillTools(mainSkills, { mainSkill: mainSkills, secondarySkills: [], tertiarySkills: [] }, workerPath),
prompt: `## Skills
activate_skill
read_skill_file
${buildSkillPrompt(mainSkills)}`,
tools: createSkillTools(mainSkills, { mainSkill: mainSkills, secondarySkills: [], tertiarySkills: [] }),
};
return res;
}
@ -218,3 +221,13 @@ function removeAllXmlTags(text: string): string {
text = text.replace(/<\/?[a-zA-Z][\w-]*(\s+[^>]*)?>/g, "");
return text.trim();
}
export function buildSkillPrompt(skills: { name: string; description: string }[]): string {
const skillEntries = skills
.map((s) => ` <skill>\n <name>${s.name}</name>\n <description>${s.description}</description>\n </skill>`)
.join("\n");
return `
<available_skills>
${skillEntries}
</available_skills>`;
}

View File

@ -12,7 +12,7 @@ export default router.post(
}),
async (req, res) => {
const { type } = req.body;
const dataList = await u.db("o_vendorConfig").select("id", "models", "name");
const dataList = await u.db("o_vendorConfig").select("id", "models", "name").where("enable", 1);
if (!dataList || dataList.length === 0) {
return res.status(404).send({ error: "模型未找到" });
}

View File

@ -34,10 +34,20 @@ export default router.post(
// 当没有 storyboardIds 时,通过 AI 生成新的分镜面板数据
let finalStoryboardIds: number[] = storyboardIds || [];
// shouldGenerateImage === 0 的分镜标记为「未生成」,其余标记为「生成中」
await u.db("o_storyboard").whereIn("id", finalStoryboardIds).where("scriptId", scriptId).where("shouldGenerateImage", 0).update({ state: "未生成" });
await u.db("o_storyboard").whereIn("id", finalStoryboardIds).where("scriptId", scriptId).whereNot("shouldGenerateImage", 0).update({ state: "生成中" });
await u
.db("o_storyboard")
.whereIn("id", finalStoryboardIds)
.where("scriptId", scriptId)
.where("shouldGenerateImage", 0)
.update({ state: "未生成" });
await u
.db("o_storyboard")
.whereIn("id", finalStoryboardIds)
.where("scriptId", scriptId)
.whereNot("shouldGenerateImage", 0)
.update({ state: "生成中" });
const projectSettingData = await u.db("o_project").where("id", projectId).select("imageModel", "imageQuality", "artStyle").first();
const projectSettingData = await u.db("o_project").where("id", projectId).select("imageModel", "imageQuality", "artStyle", "videoRatio").first();
const storyboardData = await u.db("o_storyboard").where("scriptId", scriptId).whereIn("id", finalStoryboardIds);
const assetData = await u
@ -72,7 +82,7 @@ export default router.post(
const repeloadObj = {
prompt: item.prompt!,
size: projectSettingData?.imageQuality as "1K" | "2K" | "4K",
aspectRatio: "16:9" as `${number}:${number}`,
aspectRatio: projectSettingData?.videoRatio as `${number}:${number}`,
};
await u.Ai.Image(projectSettingData?.imageModel as `${string}:${string}`)

View File

@ -16,7 +16,7 @@ export default router.post(
}),
async (req, res) => {
const { type } = req.body;
const basePath = getPath(["skills", "art_prompts", "chinese_sweet_romance"]);
const basePath = getPath(["skills", "art_skills", "chinese_sweet_romance"]);
// 递归查找 basePath 下名为 `${type}.md` 的文件
const findFile = (dir: string, target: string): string | null => {
const entries = fs.readdirSync(dir, { withFileTypes: true });

View File

@ -76,6 +76,7 @@ export default router.post(
for await (const chunk of textStream) {
fullResponse += chunk;
}
if(!fullResponse) return res.status(500).send(error("模型未返回结果"));
res.status(200).send(success(fullResponse));
} else {
const aiTypeFn = {

View File

@ -95,7 +95,7 @@ export default router.post(
inputValues: JSON.stringify(vendor.inputValues ?? {}),
models: JSON.stringify(vendor.models ?? []),
code: tsCode,
enable: vendor.id == "toonflow" ? 1 : 0,
enable: 0,
createTime: Date.now(),
});
res.status(200).send(success(result.data));

View File

@ -1,75 +1,6 @@
// @db-hash 35cf00f711e9d4df398703de70511684
// @db-hash 6fa5017e455bc367c9c902ba574d11b4
//该文件由脚本自动生成,请勿手动修改
export interface _o_project_old_20260402 {
'artStyle'?: string | null;
'createTime'?: number | null;
'id'?: number | null;
'imageModel'?: string | null;
'imageQuality'?: string | null;
'intro'?: string | null;
'mode'?: string | null;
'name'?: string | null;
'projectType'?: string | null;
'type'?: string | null;
'userId'?: number | null;
'videoModel'?: string | null;
'videoRatio'?: string | null;
}
export interface _o_storyboard_old_20260402 {
'createTime'?: number | null;
'duration'?: string | null;
'filePath'?: string | null;
'flowId'?: number | null;
'id'?: number;
'index'?: number | null;
'projectId'?: number | null;
'prompt'?: string | null;
'reason'?: string | null;
'scriptId'?: number | null;
'state'?: string | null;
'trackId'?: number | null;
}
export interface _o_storyboard_old_20260402_1 {
'createTime'?: number | null;
'duration'?: string | null;
'filePath'?: string | null;
'flowId'?: number | null;
'id'?: number;
'index'?: number | null;
'projectId'?: number | null;
'prompt'?: string | null;
'reason'?: string | null;
'scriptId'?: number | null;
'shouldGenerateImage'?: number | null;
'state'?: string | null;
'track'?: string | null;
'trackId'?: number | null;
'videoPrompt'?: string | null;
}
export interface _o_vendorConfig_old_20260401 {
'author'?: string | null;
'code'?: string | null;
'createTime'?: number | null;
'description'?: string | null;
'enableEnglish'?: number | null;
'icon'?: string | null;
'id'?: string;
'inputs'?: string | null;
'inputValues'?: string | null;
'models'?: string | null;
'name'?: string | null;
}
export interface _o_videoTrack_old_20260402 {
'id'?: number;
'projectId'?: number | null;
'prompt'?: string | null;
'reason'?: string | null;
'scriptId'?: number | null;
'selectVideoId'?: number | null;
'state'?: string | null;
'videoId'?: number | null;
}
export interface memories {
'content': string;
'createTime': number;
@ -145,7 +76,6 @@ export interface o_image {
'filePath'?: string | null;
'id'?: number;
'model'?: string | null;
'reason'?: string | null;
'resolution'?: string | null;
'state'?: string | null;
'type'?: string | null;
@ -271,7 +201,6 @@ export interface o_vendorConfig {
'createTime'?: number | null;
'description'?: string | null;
'enable'?: number | null;
'enableEnglish'?: number | null;
'icon'?: string | null;
'id'?: string;
'inputs'?: string | null;
@ -296,16 +225,12 @@ export interface o_videoTrack {
'prompt'?: string | null;
'reason'?: string | null;
'scriptId'?: number | null;
'selectVideoId'?: number | null;
'state'?: string | null;
'videoId'?: number | null;
}
export interface DB {
"_o_project_old_20260402": _o_project_old_20260402;
"_o_storyboard_old_20260402": _o_storyboard_old_20260402;
"_o_storyboard_old_20260402_1": _o_storyboard_old_20260402_1;
"_o_vendorConfig_old_20260401": _o_vendorConfig_old_20260401;
"_o_videoTrack_old_20260402": _o_videoTrack_old_20260402;
"memories": memories;
"o_agentDeploy": o_agentDeploy;
"o_agentWorkData": o_agentWorkData;