Browse Source

增加后门入口

feature/handleReconstruction
yun 1 day ago
parent
commit
71217beeff
  1. 30
      src/components/nodes/SmartAudioNode.tsx
  2. 4
      src/components/nodes/SmartImageNode.tsx
  3. 30
      src/components/nodes/SmartVideoNode.tsx

30
src/components/nodes/SmartAudioNode.tsx

@ -9,7 +9,7 @@ import { useWorkflowStore } from "@/store/workflowStore";
import { SmartAudioNodeData } from "@/types"; import { SmartAudioNodeData } from "@/types";
import { uploadFileToGatewayMedia } from "@/utils/gatewayMediaUpload"; import { uploadFileToGatewayMedia } from "@/utils/gatewayMediaUpload";
import { isSmartGenerateUploadEnabled } from "@/utils/smartGenerateUpload"; import { isSmartGenerateUploadEnabled } from "@/utils/smartGenerateUpload";
import { deriveSmartAudioMode } from "@/utils/smartMediaMode"; import { deriveSmartAudioMode, hasSmartAudioGenerationArtifact } from "@/utils/smartMediaMode";
import { AudioInputNodeView } from "./AudioInputNode"; import { AudioInputNodeView } from "./AudioInputNode";
import { GenerateAudioNodeView } from "./GenerateAudioNode"; import { GenerateAudioNodeView } from "./GenerateAudioNode";
import { NodeActionCapsule, type NodeActionCapsuleAction } from "./NodeActionCapsule"; import { NodeActionCapsule, type NodeActionCapsuleAction } from "./NodeActionCapsule";
@ -176,23 +176,27 @@ function SmartAudioEmptyView({
data, data,
selected, selected,
addToGenerationHistory = false, addToGenerationHistory = false,
hideUploadToolbar = false,
}: { }: {
id: string; id: string;
data: SmartAudioNodeData; data: SmartAudioNodeData;
selected?: boolean; selected?: boolean;
addToGenerationHistory?: boolean; addToGenerationHistory?: boolean;
hideUploadToolbar?: boolean;
}) { }) {
const isUploading = data.uploadStatus === "loading"; const isUploading = data.uploadStatus === "loading";
return ( return (
<div className="relative h-full w-full"> <div className="relative h-full w-full">
<GenerateAudioNodeView id={id} data={data} selected={selected} suppressEmptyStateDelete /> <GenerateAudioNodeView id={id} data={data} selected={selected} suppressEmptyStateDelete={!hideUploadToolbar} />
<SmartAudioUploadToolbar {!hideUploadToolbar && (
id={id} <SmartAudioUploadToolbar
selected={selected} id={id}
isUploading={isUploading} selected={selected}
addToGenerationHistory={addToGenerationHistory} isUploading={isUploading}
/> addToGenerationHistory={addToGenerationHistory}
/>
)}
{isUploading && ( {isUploading && (
<div className="nodrag nopan absolute inset-0 z-[10003] flex items-center justify-center rounded-lg bg-black/45 backdrop-blur-[1px]"> <div className="nodrag nopan absolute inset-0 z-[10003] flex items-center justify-center rounded-lg bg-black/45 backdrop-blur-[1px]">
<Spin /> <Spin />
@ -210,7 +214,15 @@ export function SmartAudioNode({ id, data, selected }: NodeProps<SmartAudioNodeT
if (mode === "generate") { if (mode === "generate") {
if (smartGenerateUploadEnabled) { if (smartGenerateUploadEnabled) {
return <SmartAudioEmptyView id={id} data={data} selected={selected} addToGenerationHistory />; return (
<SmartAudioEmptyView
id={id}
data={data}
selected={selected}
addToGenerationHistory
hideUploadToolbar={hasSmartAudioGenerationArtifact(data)}
/>
);
} }
return <GenerateAudioNodeView id={id} data={data} selected={selected} />; return <GenerateAudioNodeView id={id} data={data} selected={selected} />;
} }

4
src/components/nodes/SmartImageNode.tsx

@ -9,7 +9,7 @@ import { useWorkflowStore } from "@/store/workflowStore";
import { SmartImageNodeData } from "@/types"; import { SmartImageNodeData } from "@/types";
import { uploadFileToGatewayMedia } from "@/utils/gatewayMediaUpload"; import { uploadFileToGatewayMedia } from "@/utils/gatewayMediaUpload";
import { isSmartGenerateUploadEnabled } from "@/utils/smartGenerateUpload"; import { isSmartGenerateUploadEnabled } from "@/utils/smartGenerateUpload";
import { deriveSmartImageMode, isSmartImageAutoTaskNode } from "@/utils/smartMediaMode"; import { deriveSmartImageMode, hasSmartImageGenerationArtifact, isSmartImageAutoTaskNode } from "@/utils/smartMediaMode";
import { getPopiImageAssetPreview, resolvePopiImageAsset } from "@/lib/popiAssetApi"; import { getPopiImageAssetPreview, resolvePopiImageAsset } from "@/lib/popiAssetApi";
import { GenerateImageNodeView } from "./GenerateImageNode"; import { GenerateImageNodeView } from "./GenerateImageNode";
import { NodeActionCapsule, type NodeActionCapsuleAction } from "./NodeActionCapsule"; import { NodeActionCapsule, type NodeActionCapsuleAction } from "./NodeActionCapsule";
@ -363,7 +363,7 @@ export function SmartImageNode({ id, data, selected }: NodeProps<SmartImageNodeT
selected={selected} selected={selected}
renderInputHandle={renderInputHandle} renderInputHandle={renderInputHandle}
addToGenerationHistory addToGenerationHistory
hideUploadToolbar={!showUploadSurface || isAutoTaskNode} hideUploadToolbar={isAutoTaskNode || hasSmartImageGenerationArtifact(data)}
/> />
); );
} }

30
src/components/nodes/SmartVideoNode.tsx

@ -9,7 +9,7 @@ import { useWorkflowStore } from "@/store/workflowStore";
import { SmartVideoNodeData } from "@/types"; import { SmartVideoNodeData } from "@/types";
import { uploadFileToGatewayMedia } from "@/utils/gatewayMediaUpload"; import { uploadFileToGatewayMedia } from "@/utils/gatewayMediaUpload";
import { isSmartGenerateUploadEnabled } from "@/utils/smartGenerateUpload"; import { isSmartGenerateUploadEnabled } from "@/utils/smartGenerateUpload";
import { deriveSmartVideoMode } from "@/utils/smartMediaMode"; import { deriveSmartVideoMode, hasSmartVideoGenerationArtifact } from "@/utils/smartMediaMode";
import { getPopiVideoAssetPreview, resolvePopiVideoAsset } from "@/lib/popiAssetApi"; import { getPopiVideoAssetPreview, resolvePopiVideoAsset } from "@/lib/popiAssetApi";
import { GenerateVideoNodeView } from "./GenerateVideoNode"; import { GenerateVideoNodeView } from "./GenerateVideoNode";
import { VideoInputNodeView } from "./VideoInputNode"; import { VideoInputNodeView } from "./VideoInputNode";
@ -341,23 +341,27 @@ function SmartVideoNeutralView({
data, data,
selected, selected,
addToGenerationHistory = false, addToGenerationHistory = false,
hideUploadToolbar = false,
}: { }: {
id: string; id: string;
data: SmartVideoNodeData; data: SmartVideoNodeData;
selected?: boolean; selected?: boolean;
addToGenerationHistory?: boolean; addToGenerationHistory?: boolean;
hideUploadToolbar?: boolean;
}) { }) {
const isUploading = data.uploadStatus === "loading"; const isUploading = data.uploadStatus === "loading";
return ( return (
<div className="relative h-full w-full"> <div className="relative h-full w-full">
<GenerateVideoNodeView id={id} data={data} selected={selected} suppressEmptyStateDelete /> <GenerateVideoNodeView id={id} data={data} selected={selected} suppressEmptyStateDelete={!hideUploadToolbar} />
<SmartVideoUploadToolbar {!hideUploadToolbar && (
id={id} <SmartVideoUploadToolbar
selected={selected} id={id}
isUploading={isUploading} selected={selected}
addToGenerationHistory={addToGenerationHistory} isUploading={isUploading}
/> addToGenerationHistory={addToGenerationHistory}
/>
)}
{isUploading && ( {isUploading && (
<div className="nodrag nopan absolute inset-0 z-[10003] flex items-center justify-center rounded-lg bg-black/45 backdrop-blur-[1px]"> <div className="nodrag nopan absolute inset-0 z-[10003] flex items-center justify-center rounded-lg bg-black/45 backdrop-blur-[1px]">
<Spin /> <Spin />
@ -379,7 +383,15 @@ export function SmartVideoNode({ id, data, selected }: NodeProps<SmartVideoNodeT
if (mode === "generate") { if (mode === "generate") {
if (isSmartGenerateUploadEnabled(providerEnvStatus)) { if (isSmartGenerateUploadEnabled(providerEnvStatus)) {
return <SmartVideoNeutralView id={id} data={data} selected={selected} addToGenerationHistory />; return (
<SmartVideoNeutralView
id={id}
data={data}
selected={selected}
addToGenerationHistory
hideUploadToolbar={hasSmartVideoGenerationArtifact(data)}
/>
);
} }
return <GenerateVideoNodeView id={id} data={data} selected={selected} />; return <GenerateVideoNodeView id={id} data={data} selected={selected} />;
} }

Loading…
Cancel
Save