feat(canvas): 画布工作台 - 新增生成副本并修复大型画布性能、素材同步与删除校验
统一图片与视频副本的生成落点并保留参考连接。\n优化大型画布节点虚拟化、媒体懒加载、拖拽与详情进入路径。\n修复素材主版本 ID 同步及删除时的画布独立引用校验。
This commit is contained in:
1 parent
434f63e153
commit
3f4a9ea3d0
45 files changed
+1348
-286
No files matched your search
@@ -550,7 +550,8 @@ export function supportsVideoReferenceAudio(config: AiConfig) {
|
||||
export function resetInterruptedGeneration(nodes: CanvasNodeData[]) {
|
||||
const configWidth = NODE_DEFAULT_SIZE[CanvasNodeType.Config].width;
|
||||
const configHeight = NODE_DEFAULT_SIZE[CanvasNodeType.Config].height;
|
||||
return nodes.map((node) => {
|
||||
let changed = false;
|
||||
const reset = nodes.map((node) => {
|
||||
const mediaNode = ensureMediaNodeMinimumSize(node);
|
||||
const resizedNode =
|
||||
mediaNode.type === CanvasNodeType.Config && (mediaNode.width < configWidth || mediaNode.height < configHeight)
|
||||
@@ -558,8 +559,11 @@ export function resetInterruptedGeneration(nodes: CanvasNodeData[]) {
|
||||
: mediaNode.type === CanvasNodeType.Script && mediaNode.height < NODE_DEFAULT_SIZE[CanvasNodeType.Script].height
|
||||
? { ...mediaNode, height: NODE_DEFAULT_SIZE[CanvasNodeType.Script].height }
|
||||
: mediaNode;
|
||||
return resizedNode.metadata?.status === "loading" ? { ...resizedNode, metadata: { ...resizedNode.metadata, errorDetails: "正在从任务中心恢复生成状态..." } } : resizedNode;
|
||||
const restoredNode = resizedNode.metadata?.status === "loading" ? { ...resizedNode, metadata: { ...resizedNode.metadata, errorDetails: "正在从任务中心恢复生成状态..." } } : resizedNode;
|
||||
if (restoredNode !== node) changed = true;
|
||||
return restoredNode;
|
||||
});
|
||||
return changed ? reset : nodes;
|
||||
}
|
||||
|
||||
export function isGenerationCanceled(error: unknown) {
|
||||
|
||||
Reference in new issue
Block a user