feat: Implement video generation functionality and integrate with Kling API.
This commit is contained in:
@@ -7,6 +7,7 @@ from pydantic import BaseModel, computed_field, Field, model_validator
|
||||
|
||||
class AssetContentType(str, Enum):
|
||||
IMAGE = 'image'
|
||||
VIDEO = 'video'
|
||||
PROMPT = 'prompt'
|
||||
|
||||
class AssetType(str, Enum):
|
||||
|
||||
@@ -16,6 +16,7 @@ class GenerationStatus(str, Enum):
|
||||
class Generation(BaseModel):
|
||||
id: Optional[str] = None
|
||||
status: GenerationStatus = GenerationStatus.RUNNING
|
||||
gen_type: GenType = GenType.IMAGE
|
||||
failed_reason: Optional[str] = None
|
||||
linked_character_id: Optional[str] = None
|
||||
telegram_id: Optional[int] = None
|
||||
@@ -37,6 +38,10 @@ class Generation(BaseModel):
|
||||
album_id: Optional[str] = None
|
||||
created_by: Optional[str] = None # Stores User ID (Telegram ID or Web User ObjectId)
|
||||
project_id: Optional[str] = None
|
||||
# Video-specific fields
|
||||
kling_task_id: Optional[str] = None
|
||||
video_duration: Optional[int] = None # 5 or 10 seconds
|
||||
video_mode: Optional[str] = None # "std" or "pro"
|
||||
created_at: datetime = Field(default_factory=lambda: datetime.now(UTC))
|
||||
updated_at: datetime = Field(default_factory=lambda: datetime.now(UTC))
|
||||
|
||||
|
||||
@@ -34,10 +34,12 @@ class Quality(str, Enum):
|
||||
class GenType(str, Enum):
|
||||
TEXT = 'Text'
|
||||
IMAGE = 'Image'
|
||||
VIDEO = 'Video'
|
||||
|
||||
@property
|
||||
def value_type(self) -> str:
|
||||
return {
|
||||
GenType.TEXT: 'Text',
|
||||
GenType.IMAGE: 'Image',
|
||||
GenType.VIDEO: 'Video',
|
||||
}[self]
|
||||
|
||||
Reference in New Issue
Block a user