This commit is contained in:
@@ -12,15 +12,11 @@
|
||||
FileImageOutlined,
|
||||
FileTextOutlined,
|
||||
FolderOpenOutlined,
|
||||
MutedOutlined,
|
||||
PauseCircleOutlined,
|
||||
PictureOutlined,
|
||||
PlayCircleOutlined,
|
||||
ReloadOutlined,
|
||||
SaveOutlined,
|
||||
SearchOutlined,
|
||||
SendOutlined,
|
||||
SoundOutlined,
|
||||
ThunderboltOutlined,
|
||||
UploadOutlined,
|
||||
VideoCameraOutlined,
|
||||
@@ -37,10 +33,7 @@ import { communityClient } from "../../api/communityClient";
|
||||
import { modelCapabilitiesClient } from "../../api/modelCapabilitiesClient";
|
||||
import type { CreatePreviewTaskInput } from "../../api/webGenerationGateway";
|
||||
import WorkspacePageShell from "../../components/WorkspacePageShell";
|
||||
import type {
|
||||
WebCanvasWorkflow,
|
||||
WebCanvasWorkflowNodePackage,
|
||||
} from "../../types";
|
||||
import type { WebCanvasWorkflow } from "../../types";
|
||||
import type { AssetLibraryCategory } from "../assets/localAssetStore";
|
||||
import {
|
||||
buildCanvasCommunityCaseInput,
|
||||
@@ -64,7 +57,6 @@ import { ENTERPRISE_VIDEO_MODEL_OPTIONS } from "../../utils/enterpriseVideoPolic
|
||||
import { filterImageModelOptionsForSession } from "../../utils/imageModelVisibility";
|
||||
import { translateTaskError } from "../../utils/translateTaskError";
|
||||
import type {
|
||||
CanvasAlignGuide,
|
||||
CanvasAssetSaveSource,
|
||||
CanvasCopiedNode,
|
||||
CanvasConnectorDrag,
|
||||
@@ -72,37 +64,25 @@ import type {
|
||||
CanvasFloatingMenuPosition,
|
||||
CanvasImageFocusDrag,
|
||||
CanvasImageFocusSelection,
|
||||
CanvasImageGenerationState,
|
||||
CanvasImageNode,
|
||||
CanvasImageNodeDrag,
|
||||
CanvasImageReferenceItem,
|
||||
CanvasManualLink,
|
||||
CanvasNodeBounds,
|
||||
CanvasNodeKind,
|
||||
CanvasNodePackage,
|
||||
CanvasNodePackageDrag,
|
||||
CanvasNodePort,
|
||||
CanvasNodeResizeDrag,
|
||||
CanvasNodeSize,
|
||||
CanvasOption,
|
||||
CanvasPageProps,
|
||||
CanvasPanDrag,
|
||||
CanvasPoint,
|
||||
CanvasProjectSaveState,
|
||||
CanvasSelectedNode,
|
||||
CanvasSelectionDrag,
|
||||
CanvasStyleCase,
|
||||
CanvasStylePickerTab,
|
||||
CanvasStyleReference,
|
||||
CanvasTextGenerationState,
|
||||
CanvasPromptMentionOption,
|
||||
CanvasPromptMentionState,
|
||||
CanvasTextNode,
|
||||
CanvasTextNodeDrag,
|
||||
CanvasVideoGenerationState,
|
||||
CanvasVideoMode,
|
||||
CanvasVideoNode,
|
||||
CanvasVideoNodeDrag,
|
||||
CanvasViewport,
|
||||
} from "./canvasTypes";
|
||||
import {
|
||||
@@ -110,7 +90,6 @@ import {
|
||||
canvasAutoSaveDebounceMs,
|
||||
canvasAutoSaveIdleTimeoutMs,
|
||||
canvasNodeClickMoveThreshold,
|
||||
canvasNodeDefaultSizes,
|
||||
canvasStylePickerCategories,
|
||||
canvasStylePickerTabs,
|
||||
connectorAnchorOutset,
|
||||
@@ -120,22 +99,17 @@ import {
|
||||
defaultImageModel,
|
||||
defaultTextModelId,
|
||||
defaultVideoModel,
|
||||
image4kCapableModels,
|
||||
imageFocusRatioOptions,
|
||||
imageModelOptions as fallbackCanvasImageModelOptions,
|
||||
imageRatioOptions,
|
||||
textModelOptions,
|
||||
videoDurationOptions,
|
||||
videoRatioOptions,
|
||||
} from "./canvasConstants";
|
||||
import {
|
||||
applyImageFocusRatioFromTopLeft,
|
||||
blobToDataUrl,
|
||||
buildCanvasStyleKeywords,
|
||||
buildCopyTitle,
|
||||
clampCanvasPercent,
|
||||
buildReversePromptFromAsset,
|
||||
canvasGenerationProgressStyle,
|
||||
clampCanvasNodeSize,
|
||||
clampCanvasViewportZoom,
|
||||
communityCaseToCanvasStyleCase,
|
||||
@@ -150,15 +124,8 @@ import {
|
||||
getDefaultImageQuality,
|
||||
getDefaultVideoQuality,
|
||||
getImageQualityOptions,
|
||||
getOptionLabel,
|
||||
getVideoQualityOptions,
|
||||
getWorkflowImageNodeFileName,
|
||||
getWorkflowImageNodePrompt,
|
||||
getWorkflowNodeFocusSelection,
|
||||
getWorkflowNodeMetadataString,
|
||||
getWorkflowNodeStyleReference,
|
||||
hasCanvasOptionValue,
|
||||
moveCanvasNodesForPackageDrag,
|
||||
normalizeCanvasGenerationProgress,
|
||||
normalizeCanvasLinkPorts,
|
||||
normalizeCanvasSelectionRect,
|
||||
@@ -166,10 +133,6 @@ import {
|
||||
positionFloatingMenu,
|
||||
resolveImageQuality,
|
||||
resolveVideoQuality,
|
||||
resolveWorkflowImageModel,
|
||||
resolveWorkflowRatio,
|
||||
resolveWorkflowVideoMode,
|
||||
resolveWorkflowVideoModel,
|
||||
waitForImageTaskResult,
|
||||
waitForVideoTaskResult,
|
||||
} from "./canvasUtils";
|
||||
@@ -181,11 +144,9 @@ import {
|
||||
createVideoNodesFromWorkflow,
|
||||
createWorkflowPackagesFromCanvasPackages,
|
||||
formatCanvasProjectUpdatedAt,
|
||||
formatCanvasVideoTime,
|
||||
resolveAssetCategory,
|
||||
} from "./canvasWorkflowDeserialize";
|
||||
import { CanvasNodeToolbar, CanvasNodeVideoPlayer, CanvasSelectChip } from "./canvasComponents";
|
||||
import type { CanvasNodeToolbarAction } from "./canvasComponents";
|
||||
import { CanvasMarkingPopover } from "./CanvasMarkingPopover";
|
||||
import { CanvasPromptMentionTextarea, CanvasTextPromptComposer } from "./CanvasTextPromptComposer";
|
||||
import { CanvasMultiGridPanel, CanvasUpscalePanel, CanvasInpaintPanel } from "./canvasToolPanels";
|
||||
@@ -396,7 +357,6 @@ function CanvasPage({
|
||||
const canvasUploadInputRef = useRef<HTMLInputElement>(null);
|
||||
const imageNodeInputRef = useRef<HTMLInputElement>(null);
|
||||
const canvasRef = useRef<HTMLElement>(null);
|
||||
const canvasReferenceUploadPromisesRef = useRef(new Map<string, Promise<string | null>>());
|
||||
const canvasDragCounterRef = useRef(0);
|
||||
const [isCanvasDragging, setIsCanvasDragging] = useState(false);
|
||||
const suppressNextPaneClickRef = useRef(false);
|
||||
@@ -412,7 +372,7 @@ function CanvasPage({
|
||||
const imageNodeIdRef = useRef(1);
|
||||
const videoNodeIdRef = useRef(1);
|
||||
|
||||
const { pushSnapshot, undo, redo, canUndo, canRedo } = useCanvasHistory();
|
||||
const { pushSnapshot, undo, redo } = useCanvasHistory();
|
||||
const {
|
||||
textGenerationState, imageGenerationState, videoGenerationState,
|
||||
generationToast, setGenerationToast,
|
||||
@@ -1892,7 +1852,7 @@ function CanvasPage({
|
||||
if (videoNode.videoMode === "img2video" && referenceUrls.length === 0) {
|
||||
throw new Error("图生视频需要先连接至少一个可用的图片节点");
|
||||
}
|
||||
let requestModel = resolveVideoRequestModel({ model, referenceUrls });
|
||||
const requestModel = resolveVideoRequestModel({ model, referenceUrls });
|
||||
task = await onCreateTask({
|
||||
title: videoNode.title || "视频节点生成",
|
||||
type: "video",
|
||||
|
||||
Reference in New Issue
Block a user