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

新增画布生图背景色选项并在角色、图标和 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
@@ -481,7 +481,7 @@ describe('ImageCanvasGenerationDialogModel', () => {
{
title: '提取提示词',
value:
'仅提取被红色框框选的素材并整理成spritesheet,图集背景必须使用单一纯绿色 #00FF00 / RGB(0,255,0) 绿幕。绿幕背景必须平整无纹理、无渐变、无阴影、无地面、无环境、无道具,方便后续扣除背景;素材自身不要出现绿色描边、绿色底板、绿色投影或绿色反光。',
'仅提取被红色框框选的素材并整理成spritesheet,图集背景必须使用所选单一纯色抠图背景。纯色背景必须平整无纹理、无渐变、无阴影、无地面、无环境、无道具,方便后续扣除背景;素材自身不要出现与背景色相同或相近的描边、底板、投影或反光。',
},
{ title: 'model', value: 'gpt-image-2' },
],
@@ -496,13 +496,16 @@ describe('ImageCanvasGenerationDialogModel', () => {
const canvasSize = { width: 960, height: 720 };
const viewport = { x: 0, y: 0, scale: 1 };
const characterDraft = createSameSourceGenerationDialogDraft({
sourceLayer: createLayer({
assetKind: 'character',
generationInputs: {
fields: [{ title: '角色设定', value: '红发骑士' }],
references: [],
},
}),
sourceLayer: createLayer({
assetKind: 'character',
generationInputs: {
fields: [
{ title: '角色设定', value: '红发骑士' },
{ title: '抠图背景色', value: '暖浅桃色 #FFD6C2' },
],
references: [],
},
}),
canvasSize,
viewport,
mode: 'redraw',
@@ -512,6 +515,7 @@ describe('ImageCanvasGenerationDialogModel', () => {
mode: 'character',
prompt: '红发骑士',
sourceLayerId: 'layer-source',
screenColor: '#FFD6C2',
placeholder: {
x: 472,
y: 140,
@@ -579,6 +583,7 @@ describe('ImageCanvasGenerationDialogModel', () => {
status: 'idle',
generatedLayerId: 'layer-source',
imageModel: 'gpt-image-2',
screenColor: '#E6D8FF',
aspectRatio: '2:3',
imageSize: '2K',
},
@@ -589,6 +594,7 @@ describe('ImageCanvasGenerationDialogModel', () => {
prompt: '普通图',
sourceLayerId: 'layer-source',
imageModel: 'gpt-image-2',
screenColor: '#E6D8FF',
aspectRatio: '2:3',
imageSize: '2K',
});