feat(*): 分镜创作体系 - 重构画风、提示词模板与视频生成链路

This commit is contained in:
ddCat
2026-08-04 15:03:41 +08:00
parent 98382ba976
commit d4018123e1
46 changed files with 2667 additions and 572 deletions

View File

@@ -29,6 +29,7 @@ export type CanvasWorkspaceMode = "simple" | "professional";
export type CanvasToolMode = "move" | "box-select";
export type StoryboardShotDuration = "auto" | "5" | "10" | "15" | "30";
export type StoryboardShotCount = "auto" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" | "10";
export type StoryboardVideoInputMode = "direct" | "keyframe";
export type CanvasGenerationMode = "text" | "image" | "video" | "audio";
export type CanvasGenerationBatchMode = "storyboard_image" | "storyboard_video" | "action_board";
export type CanvasGenerationBatchStatus = "queued" | "running" | "partial_failed" | "completed" | "cancelled";
@@ -38,10 +39,12 @@ export type CanvasWorkflowKind = "free" | "script" | "story_input" | "character"
export type CanvasVideoEditOperation = "text_to_video" | "image_to_video" | "extend" | "inpaint" | "replace_element" | "camera_motion" | "style_transfer" | "audio_to_video" | "compare_versions" | "concat";
export type CanvasSkillCategory = "writing" | "storyboard" | "image" | "video" | "utility";
export type CanvasSkillOutputMode = "text" | "json" | "image_prompt" | "workflow";
export type StoryboardColumn = "shotNumber" | "durationSeconds" | "plotDescription" | "dialogue" | "shotSize" | "emotion" | "lightingAndAtmosphere" | "audioEffects" | "camera" | "motion" | "timeBeats" | "imageGenerationPrompt" | "videoMotionPrompt" | "negativePrompt";
export type StoryboardColumn = "shotNumber" | "durationSeconds" | "plotDescription" | "dialogue" | "narrativeIntent" | "viewerPOV" | "performanceBlocking" | "shotSize" | "emotion" | "lightingAndAtmosphere" | "audioEffects" | "camera" | "motion" | "timeBeats" | "imageGenerationPrompt" | "videoMotionPrompt" | "continuityOut" | "negativePrompt";
export type StoryboardCharacterReference = {
characterName: string;
characterAssetId?: string;
characterVersionId?: string;
characterDescription?: string;
characterImageNodeId?: string;
};
@@ -53,6 +56,9 @@ export type StoryboardRow = {
plotDescription: string;
dialogue: string;
characters: StoryboardCharacterReference[];
narrativeIntent: string;
viewerPOV: string;
performanceBlocking: string;
shotSize: string;
emotion: string;
lightingAndAtmosphere: string;
@@ -62,6 +68,11 @@ export type StoryboardRow = {
timeBeats: string;
imageGenerationPrompt: string;
videoMotionPrompt: string;
imagePromptTemplateVariables?: Record<string, string>;
videoPromptTemplateVariables?: Record<string, string>;
mustHave: string[];
optionalDetails: string[];
continuityOut: string;
negativePrompt: string;
referenceNodeIds: string[];
imageNodeId?: string;
@@ -115,6 +126,8 @@ export type CanvasNodeMetadata = {
richText?: Record<string, unknown>;
composerContent?: string;
prompt?: string;
promptTemplateOperation?: string;
promptTemplateVariables?: Record<string, string>;
status?: CanvasNodeStatus;
locked?: boolean;
errorDetails?: string;
@@ -217,6 +230,7 @@ export type CanvasNodeMetadata = {
storyboard?: StoryboardData;
storyboardShotDuration?: StoryboardShotDuration;
storyboardShotCount?: StoryboardShotCount;
storyboardVideoInputMode?: StoryboardVideoInputMode;
storyboardComposerHeight?: number;
generationBatches?: CanvasGenerationBatch[];
frame?: {