# -*- coding:utf-8 -*- from datetime import datetime from typing import Any, List, Optional, Union from pydantic import BaseModel, Field class Response(BaseModel): code: Optional[int] = 0 msg: Optional[str] = "success" data: Optional[Any] = None class CustomModeGenerateParam(BaseModel): """Generate with Custom Mode""" prompt: str = Field(..., description="lyrics") mv: str = Field( ..., description="model version, default: chirp-v3-0", examples=["chirp-v3-0"], ) title: str = Field(..., description="song title") tags: str = Field(..., description="style of music") continue_at: Optional[int] = Field( default=None, description="continue a new clip from a previous song, format number", examples=[120], ) continue_clip_id: Optional[str] = None generation_type: str = "TEXT" negative_tags:list = [] infill_start_s:Optional[int] = None infill_end_s:Optional[int] = None task:Optional[str] = "" class DescriptionModeGenerateParam(BaseModel): """Generate with Song Description""" gpt_description_prompt:str = Field( max_length=200) make_instrumental: bool = False # True纯音乐,False有歌词 mv: str = Field( default='chirp-v3-0', description="model version, default: chirp-v3-0", examples=["chirp-v3-0"], ) prompt: str = Field( default="", description="Placeholder, keep it as an empty string, do not modify it", ) generation_type: str = "TEXT" user_uploaded_images_b64:List[str] = []