支持画布生图选择抠图背景色

新增画布生图背景色选项并在角色、图标和 UI 素材提取入口展示选择控件。

将 screenColor 贯穿前端提交、后端请求解析、prompt 构建和生成后本地后处理调用。

保留角色动作旧绿幕路径,避免影响既有动画生成流程。

补充相关前后端单元测试和编辑器文档说明。
This commit is contained in:
2026-07-02 14:56:26 +00:00
parent 15bca90ed2
commit 06cad7e428
32 changed files with 865 additions and 120 deletions
@@ -699,6 +699,7 @@ describe('editorProjectClient', () => {
prompt: '角色设定',
kind: 'character',
model: 'gpt-image-2',
screenColor: '#FFD6C2',
aspectRatio: '2:3',
imageSize: '1K',
projectId: 'editor-project-1',
@@ -721,6 +722,7 @@ describe('editorProjectClient', () => {
prompt: '角色设定',
kind: 'character',
model: 'gpt-image-2',
screenColor: '#FFD6C2',
aspectRatio: '2:3',
imageSize: '1K',
projectId: 'editor-project-1',
@@ -862,6 +864,7 @@ describe('editorProjectClient', () => {
referenceImageSrc: 'data:image/png;base64,spec',
iconDescriptions: ['返回按钮'],
model: 'gpt-image-2',
screenColor: '#E6D8FF',
aspectRatio: '1:1',
imageSize: '2K',
projectId: 'editor-project-1',
@@ -881,6 +884,7 @@ describe('editorProjectClient', () => {
referenceImageSrc: 'data:image/png;base64,spec',
iconDescriptions: ['返回按钮'],
model: 'gpt-image-2',
screenColor: '#E6D8FF',
aspectRatio: '1:1',
imageSize: '2K',
projectId: 'editor-project-1',
@@ -913,9 +917,9 @@ describe('editorProjectClient', () => {
},
],
prompt:
'仅提取被红色框框选的素材并整理成spritesheet,图集背景必须使用单一纯绿色 #00FF00 / RGB(0,255,0) 绿幕,方便后续扣除背景;素材自身不要出现绿色描边、绿色底板或绿色阴影。',
'仅提取被红色框框选的素材并整理成spritesheet,图集背景必须使用单一纯色背景 中度天蓝 #7FB3FF / RGB(127,179,255),方便后续扣除背景;素材自身不要出现与背景色相同或相近的描边、底板或阴影。',
actualPrompt:
'仅提取被红色框框选的素材并整理成spritesheet,图集背景必须使用单一纯绿色 #00FF00 / RGB(0,255,0) 绿幕,方便后续扣除背景;素材自身不要出现绿色描边、绿色底板或绿色阴影。',
'仅提取被红色框框选的素材并整理成spritesheet,图集背景必须使用单一纯色背景 中度天蓝 #7FB3FF / RGB(127,179,255),方便后续扣除背景;素材自身不要出现与背景色相同或相近的描边、底板或阴影。',
model: 'gpt-image-2',
provider: 'VectorEngine',
taskId: 'ui-asset-extraction-1',
@@ -924,6 +928,7 @@ describe('editorProjectClient', () => {
const result = await extractEditorUiDesignAssets({
sourceImageSrc: 'data:image/png;base64,ui-design',
model: 'gpt-image-2',
screenColor: '#7FB3FF',
referenceImageSrcs: ['data:image/png;base64,ui-ref'],
projectId: 'editor-project-1',
assetFolderId: 'project',
@@ -945,6 +950,7 @@ describe('editorProjectClient', () => {
body: JSON.stringify({
sourceImageSrc: 'data:image/png;base64,ui-design',
model: 'gpt-image-2',
screenColor: '#7FB3FF',
referenceImageSrcs: ['data:image/png;base64,ui-ref'],
projectId: 'editor-project-1',
generationInputs: {