合并主分支
解决合并冲突
This commit is contained in:
@@ -27,6 +27,7 @@ import {
|
||||
generateEditorCharacterAnimation,
|
||||
generateEditorIconSpritesheet,
|
||||
generateEditorImage,
|
||||
generateEditorScene,
|
||||
generateEditorSoundEffect,
|
||||
generateEditorVideo,
|
||||
loadEditorProject,
|
||||
@@ -82,6 +83,7 @@ import {
|
||||
buildIconSpritesheetGenerationSubmissionPlan,
|
||||
buildImageGenerationSubmissionPlan,
|
||||
resolveGenerationAssetLabel,
|
||||
resolveImageGenerationDialogPrompt,
|
||||
} from './ImageCanvasGenerationSubmissionModel';
|
||||
import type {
|
||||
UiAssetExtractionMark,
|
||||
@@ -383,11 +385,13 @@ type GenerationSubmissionWorkflowOptions = {
|
||||
onGenerationWarning?: (message: string) => void;
|
||||
};
|
||||
|
||||
async function normalizeImageGenerationReferenceImages(
|
||||
input: Parameters<typeof generateEditorImage>[0],
|
||||
async function normalizeImageGenerationReferenceImages<
|
||||
T extends { referenceImageSrcs?: string[] },
|
||||
>(
|
||||
input: T,
|
||||
references: CharacterReferenceImage[],
|
||||
projectId?: string | null,
|
||||
) {
|
||||
): Promise<T> {
|
||||
if (!input.referenceImageSrcs?.length) {
|
||||
return input;
|
||||
}
|
||||
@@ -1932,12 +1936,7 @@ export function useImageCanvasGenerationSubmissionWorkflow({
|
||||
: null;
|
||||
const normalizedPrompt =
|
||||
backgroundMusicSubmission?.prompt ??
|
||||
(dialog.prompt.trim() ||
|
||||
(dialog.mode === 'edit'
|
||||
? '修改当前图片'
|
||||
: dialog.mode === 'audio-sound-effect'
|
||||
? '游戏音效'
|
||||
: 'AI 生成图片'));
|
||||
resolveImageGenerationDialogPrompt(dialog);
|
||||
if (!backgroundMusicSubmission && canvasDialog) {
|
||||
updateCanvasGenerationDialogById(canvasDialog.id, (currentDialog) => ({
|
||||
...currentDialog,
|
||||
@@ -2361,6 +2360,83 @@ export function useImageCanvasGenerationSubmissionWorkflow({
|
||||
canvasCompletionPlaceholder,
|
||||
canvasDialog?.id,
|
||||
);
|
||||
} else if (submissionPlan.kind === 'scene') {
|
||||
const sceneGenerationInput =
|
||||
await normalizeImageGenerationReferenceImages(
|
||||
submissionPlan.input,
|
||||
resolveImageGenerationDialogReferences(dialog),
|
||||
projectId,
|
||||
);
|
||||
const canvasCompletionPlaceholder =
|
||||
getGeneratingDialogPlaceholder(dialog);
|
||||
const generated = await runEditorGenerationWithWalletRefresh(
|
||||
generateEditorScene({
|
||||
...sceneGenerationInput,
|
||||
projectId,
|
||||
generationInputs: submissionPlan.result.generationInputs,
|
||||
assetFolderId,
|
||||
assetLabel: submissionPlan.result.title,
|
||||
...(projectId && canvasCompletionPlaceholder
|
||||
? {
|
||||
canvasCompletion: {
|
||||
dialogId: canvasDialog?.id,
|
||||
title: submissionPlan.result.title,
|
||||
placeholder: canvasCompletionPlaceholder,
|
||||
},
|
||||
}
|
||||
: {}),
|
||||
}),
|
||||
onWalletBalanceMayHaveChanged,
|
||||
);
|
||||
notifyEditorGenerationWarning(
|
||||
generated.warning?.reason,
|
||||
onGenerationWarning,
|
||||
);
|
||||
if (
|
||||
await applyQueuedEditorGenerationProject(
|
||||
generated,
|
||||
projectId,
|
||||
applyProjectSnapshot,
|
||||
onQueuedGenerationTask,
|
||||
onWalletBalanceMayHaveChanged,
|
||||
onGenerationWarning,
|
||||
canvasDialog?.id,
|
||||
)
|
||||
) {
|
||||
return;
|
||||
}
|
||||
if (submissionPlan.rememberImageModel) {
|
||||
rememberImageModel(submissionPlan.rememberImageModel);
|
||||
}
|
||||
if (generated.project && applyProjectSnapshot) {
|
||||
applyProjectSnapshot(generated.project);
|
||||
if (generated.asset) {
|
||||
upsertGeneratedAsset?.(generated.asset);
|
||||
}
|
||||
return;
|
||||
}
|
||||
if (canvasDialog && projectId) {
|
||||
updateCanvasGenerationDialogById(
|
||||
canvasDialog.id,
|
||||
(currentDialog) =>
|
||||
currentDialog.generatedLayerId
|
||||
? currentDialog
|
||||
: {
|
||||
...currentDialog,
|
||||
status: 'idle',
|
||||
composerOpen: true,
|
||||
errorMessage: undefined,
|
||||
},
|
||||
);
|
||||
return;
|
||||
}
|
||||
addGeneratedResultLayer(generated, {
|
||||
frame: canvasCompletionPlaceholder,
|
||||
assetKind: submissionPlan.result.assetKind,
|
||||
title: submissionPlan.result.title,
|
||||
dialogId: canvasDialog?.id,
|
||||
generationInputs: submissionPlan.result.generationInputs,
|
||||
});
|
||||
} else {
|
||||
const imageGenerationInput =
|
||||
await normalizeImageGenerationReferenceImages(
|
||||
|
||||
Reference in New Issue
Block a user