修复角色图去背景读取失败
去背景前统一解析私有图片资源 裁扩本地编辑复用图片引用解析 补充角色图去背景回归测试
This commit is contained in:
@@ -14,6 +14,7 @@ import type {
|
||||
EditorAssetSnapshot,
|
||||
EditorProjectSnapshot,
|
||||
} from '../../services/image-editor/editorProjectClient';
|
||||
import { resolveEditorImageReferenceDataUrl } from '../../services/image-editor/editorImageReference';
|
||||
import { resizeCropExpandFrame } from './ImageCanvasCropExpandModel';
|
||||
import type {
|
||||
CanvasGenerationDialogState,
|
||||
@@ -468,8 +469,9 @@ export function useImageCanvasGenerationWorkflow({
|
||||
useState<UiAssetExtractionState | null>(null);
|
||||
const [quickEditSelectionState, setQuickEditSelectionState] =
|
||||
useState<UiAssetExtractionState | null>(null);
|
||||
const quickEditSelectionStateRef =
|
||||
useRef<UiAssetExtractionState | null>(null);
|
||||
const quickEditSelectionStateRef = useRef<UiAssetExtractionState | null>(
|
||||
null,
|
||||
);
|
||||
const cropExpandPanelRef = useRef<CropExpandPanelState | null>(null);
|
||||
const cropExpandResizeDragRef = useRef<CropExpandResizeDragState | null>(
|
||||
null,
|
||||
@@ -902,7 +904,8 @@ export function useImageCanvasGenerationWorkflow({
|
||||
.find(
|
||||
(dialog) =>
|
||||
dialog.generatedLayerId === sourceLayer.id ||
|
||||
(!dialog.generatedLayerId && dialog.sourceLayerId === sourceLayer.id),
|
||||
(!dialog.generatedLayerId &&
|
||||
dialog.sourceLayerId === sourceLayer.id),
|
||||
);
|
||||
return createQuickEditPanelDraft(sourceLayer, {
|
||||
imageModel: sourceDialog?.imageModel,
|
||||
@@ -1202,8 +1205,11 @@ export function useImageCanvasGenerationWorkflow({
|
||||
status: 'processing',
|
||||
errorMessage: undefined,
|
||||
});
|
||||
const sourceImageSrc = await resolveEditorImageReferenceDataUrl(
|
||||
cropExpandSourceLayer.objectKey?.trim() || cropExpandSourceLayer.src,
|
||||
);
|
||||
const result = await renderCropExpandImage({
|
||||
source: cropExpandSourceLayer.src,
|
||||
source: sourceImageSrc,
|
||||
insets,
|
||||
});
|
||||
layerCounterRef.current += 1;
|
||||
@@ -1263,7 +1269,10 @@ export function useImageCanvasGenerationWorkflow({
|
||||
setCropExpandPanel(null);
|
||||
setQuickEditPanel(null);
|
||||
try {
|
||||
const result = await removeImageBackground(sourceLayer.src);
|
||||
const sourceImageSrc = await resolveEditorImageReferenceDataUrl(
|
||||
sourceLayer.objectKey?.trim() || sourceLayer.src,
|
||||
);
|
||||
const result = await removeImageBackground(sourceImageSrc);
|
||||
updateSourceLayer(sourceLayer.id, (layer) => ({
|
||||
...layer,
|
||||
src: result.imageSrc,
|
||||
@@ -1285,6 +1294,7 @@ export function useImageCanvasGenerationWorkflow({
|
||||
}
|
||||
},
|
||||
[
|
||||
resolveEditorImageReferenceDataUrl,
|
||||
setActiveSidebarPanel,
|
||||
setImageContextMenu,
|
||||
setMetadataLayer,
|
||||
@@ -1533,7 +1543,8 @@ export function useImageCanvasGenerationWorkflow({
|
||||
...currentState,
|
||||
tool: currentState.tool === tool ? null : tool,
|
||||
draftMark: null,
|
||||
status: currentState.status === 'failed' ? 'idle' : currentState.status,
|
||||
status:
|
||||
currentState.status === 'failed' ? 'idle' : currentState.status,
|
||||
errorMessage:
|
||||
currentState.status === 'failed'
|
||||
? undefined
|
||||
|
||||
Reference in New Issue
Block a user