爆款/拆镜生成简化3个步骤 | 项目生成可携带附件控制
This commit is contained in:
@@ -0,0 +1,75 @@
|
||||
from __future__ import annotations
|
||||
|
||||
from dataclasses import dataclass
|
||||
|
||||
from app.enums.hot_opening_replicate import (
|
||||
HotOpeningGenerationModeEnum,
|
||||
HotOpeningStepIOSchemaVersionEnum,
|
||||
ModuleCodeEnum as HotModuleCodeEnum,
|
||||
)
|
||||
from app.enums.shot_replicate import (
|
||||
ModuleCodeEnum as ShotModuleCodeEnum,
|
||||
ShotReplicateGenerationModeEnum,
|
||||
ShotReplicateStepIOSchemaVersionEnum,
|
||||
)
|
||||
from app.enums.module_generation_flow import ModuleGenerationFlowConfig
|
||||
|
||||
MATERIAL_INPUT = "material_input"
|
||||
VIDEO_PROMPT_OPTIMIZE = "video_prompt_optimize"
|
||||
VIDEO_GENERATE = "video_generate"
|
||||
|
||||
|
||||
@dataclass(frozen=True, slots=True)
|
||||
class ModuleGenerationV2Config:
|
||||
module: str
|
||||
generation_mode: str
|
||||
io_schema_version: str
|
||||
display_name: str
|
||||
project_not_found_message: str
|
||||
material_video_locked: bool
|
||||
|
||||
@property
|
||||
def flow_config(self) -> ModuleGenerationFlowConfig:
|
||||
return ModuleGenerationFlowConfig(
|
||||
module=self.module,
|
||||
step_index_map={
|
||||
MATERIAL_INPUT: 1,
|
||||
VIDEO_PROMPT_OPTIMIZE: 2,
|
||||
VIDEO_GENERATE: 3,
|
||||
},
|
||||
material_step_code=MATERIAL_INPUT,
|
||||
image_prompt_step_code="__v2_no_image_prompt__",
|
||||
image_generate_step_code="__v2_no_image_generate__",
|
||||
video_prompt_step_code=VIDEO_PROMPT_OPTIMIZE,
|
||||
video_generate_step_code=VIDEO_GENERATE,
|
||||
project_not_found_message=self.project_not_found_message,
|
||||
step_not_found_message="V2 子任务不存在",
|
||||
cancel_chat_task_error_message=f"{self.display_name}步骤被重建或删除,旧生成任务已取消",
|
||||
material_video_url_editable=not self.material_video_locked,
|
||||
step_io_schema_version=self.io_schema_version,
|
||||
expected_flow_version="v2",
|
||||
)
|
||||
|
||||
|
||||
HOT_OPENING_V2 = ModuleGenerationV2Config(
|
||||
module=HotModuleCodeEnum.HOT_OPENING_REPLICATE.value,
|
||||
generation_mode=HotOpeningGenerationModeEnum.HOT_OPENING_REPLICATE.value,
|
||||
io_schema_version=HotOpeningStepIOSchemaVersionEnum.V2.value,
|
||||
display_name="爆款开头复刻",
|
||||
project_not_found_message="爆款开头复刻 V2 项目不存在",
|
||||
material_video_locked=True,
|
||||
)
|
||||
|
||||
SHOT_REPLICATE_V2 = ModuleGenerationV2Config(
|
||||
module=ShotModuleCodeEnum.SHOT_REPLICATE.value,
|
||||
generation_mode=ShotReplicateGenerationModeEnum.SHOT_REPLICATE.value,
|
||||
io_schema_version=ShotReplicateStepIOSchemaVersionEnum.V2.value,
|
||||
display_name="拆镜复刻",
|
||||
project_not_found_message="拆镜复刻 V2 项目不存在",
|
||||
material_video_locked=True,
|
||||
)
|
||||
|
||||
CONFIG_BY_MODULE = {
|
||||
HOT_OPENING_V2.module: HOT_OPENING_V2,
|
||||
SHOT_REPLICATE_V2.module: SHOT_REPLICATE_V2,
|
||||
}
|
||||
Reference in New Issue
Block a user