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

新增画布生图背景色选项并在角色、图标和 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
@@ -19,6 +19,7 @@ import {
CHARACTER_ANIMATION_FRAME_ORIGINAL_SIZE,
createCanvasLayerReference,
DEFAULT_IMAGE_MODEL,
DEFAULT_EDITOR_GENERATION_BACKGROUND_COLOR,
DEFAULT_PUBLICATION_GAME_INFO,
DEFAULT_SOUND_EFFECT_DURATION_SECONDS,
DEFAULT_SOUND_EFFECT_MODEL,
@@ -36,6 +37,7 @@ import {
inferEditorImageAspectRatio,
inferEditorImageSizeLabel,
normalizeEditorImageModel,
normalizeEditorGenerationBackgroundColor,
PUBLICATION_FRAME_ORIGINAL_SIZE,
resolveEditorImageGenerationPixelSize,
resolveEditorVideoGenerationPixelSize,
@@ -272,6 +274,7 @@ export function createCharacterGenerationDialogDraft({
characterSpecReference: null,
characterReferences: [],
imageModel: normalizedImageModel,
screenColor: DEFAULT_EDITOR_GENERATION_BACKGROUND_COLOR,
aspectRatio: dimensionDefaults.aspectRatio,
imageSize: dimensionDefaults.imageSize,
placeholder: {
@@ -306,6 +309,7 @@ export function createIconGenerationDialogDraft({
generationReferences: [],
iconDescriptions: [],
imageModel: normalizedImageModel,
screenColor: DEFAULT_EDITOR_GENERATION_BACKGROUND_COLOR,
aspectRatio: dimensionDefaults.aspectRatio,
imageSize: dimensionDefaults.imageSize,
placeholder: {
@@ -738,9 +742,15 @@ function restoreSharedImageOptions(
sourceLayer: CanvasLayer,
sourceDialog?: CanvasGenerationDialogState | null,
): Omit<CanvasGenerationDialogState, 'id'> {
const fields = getGenerationInputFieldValues(sourceLayer);
const sourceScreenColor =
sourceDialog?.screenColor ?? fields.get('抠图背景色');
return {
...draft,
imageModel: sourceDialog?.imageModel ?? draft.imageModel,
screenColor: normalizeEditorGenerationBackgroundColor(
sourceScreenColor ?? draft.screenColor,
),
aspectRatio:
sourceDialog?.aspectRatio ??
draft.aspectRatio ??