返回 VideoClaw
pipelines.py
根目录 / video-claw / video-claw / backend / api / schemas / pipelines.py
1 from typing import Any, Dict, Literal, Optional
2
3 from pydantic import BaseModel, Field
4
5
6 class StandardPipelineRequest(BaseModel):
7 text: str = Field(..., description="Topic or fixed narration script")
8 mode: str = "copy"
9 title: Optional[str] = None
10 segment_count: Optional[int] = Field(None, ge=1, le=20, description="Target narration segment count for inspiration mode")
11 n_scenes: int = 5
12 split_mode: str = "paragraph"
13 llm_model: str
14 image_model: str
15 video_model: Optional[str] = None
16 video_mode: str = Field("image_concat", description="image_concat or dynamic_video")
17 video_ratio: str = "9:16"
18 image_resolution: str = "1080P"
19 video_resolution: Optional[str] = None
20 style_control: Optional[str] = None
21 generate_audio: bool = True
22 generate_videos: bool = False
23 enable_subtitles: bool = False
24 subtitle_render_mode: Literal["postprocess", "image_model"] = "postprocess"
25 subtitle_template: Optional[str] = None
26 subtitle_template_fields: Optional[Dict[str, str]] = None
27 template_media_kind: Literal["image", "video"] = "image"
28 video_duration: int = 5
29 tts_voice: str = "zh-CN-YunjianNeural"
30 tts_speed: float = 1.0
31 negative_prompt: Optional[str] = None
32 watermark: Optional[bool] = None
33 generate_audio_native: Optional[bool] = None
34
35
36 class ActionTransferPipelineRequest(BaseModel):
37 prompt_text: str
38 image_path: str
39 video_path: str
40 video_model: str
41 duration: int = 5
42 video_ratio: str = "9:16"
43 video_resolution: Optional[str] = None
44 resolution: Optional[str] = None
45 negative_prompt: Optional[str] = None
46 watermark: Optional[bool] = None
47 prompt_extend: Optional[bool] = None
48
49
50 class DigitalHumanPipelineRequest(BaseModel):
51 mode: str = "customize"
52 character_image_path: str
53 goods_image_path: Optional[str] = None
54 goods_title: Optional[str] = None
55 goods_text: Optional[str] = None
56 llm_model: str
57 image_model: str
58 image_resolution: str = "1080P"
59 video_model: str
60 duration: int = 5
61 video_ratio: str = "9:16"
62 video_resolution: Optional[str] = None
63 resolution: Optional[str] = None
64 tts_voice: str = "zh-CN-YunjianNeural"
65 tts_speed: float = 1.0
66 negative_prompt: Optional[str] = None
67 watermark: Optional[bool] = None
68 prompt_extend: Optional[bool] = None
69
70
71 class GenericPipelineRequest(BaseModel):
72 params: Dict[str, Any]
73
73 lines PYTHON