mirror of
https://github.com/comfyanonymous/ComfyUI.git
synced 2026-04-05 16:26:48 +08:00
227 lines
6.7 KiB
Python
227 lines
6.7 KiB
Python
from pydantic import BaseModel, Field
|
|
|
|
|
|
class Text2ImageInputField(BaseModel):
|
|
prompt: str = Field(...)
|
|
negative_prompt: str | None = Field(None)
|
|
|
|
|
|
class Image2ImageInputField(BaseModel):
|
|
prompt: str = Field(...)
|
|
negative_prompt: str | None = Field(None)
|
|
images: list[str] = Field(..., min_length=1, max_length=2)
|
|
|
|
|
|
class Text2VideoInputField(BaseModel):
|
|
prompt: str = Field(...)
|
|
negative_prompt: str | None = Field(None)
|
|
audio_url: str | None = Field(None)
|
|
|
|
|
|
class Image2VideoInputField(BaseModel):
|
|
prompt: str = Field(...)
|
|
negative_prompt: str | None = Field(None)
|
|
img_url: str = Field(...)
|
|
audio_url: str | None = Field(None)
|
|
|
|
|
|
class Reference2VideoInputField(BaseModel):
|
|
prompt: str = Field(...)
|
|
negative_prompt: str | None = Field(None)
|
|
reference_video_urls: list[str] = Field(...)
|
|
|
|
|
|
class Txt2ImageParametersField(BaseModel):
|
|
size: str = Field(...)
|
|
n: int = Field(1, description="Number of images to generate.") # we support only value=1
|
|
seed: int = Field(..., ge=0, le=2147483647)
|
|
prompt_extend: bool = Field(True)
|
|
watermark: bool = Field(False)
|
|
|
|
|
|
class Image2ImageParametersField(BaseModel):
|
|
size: str | None = Field(None)
|
|
n: int = Field(1, description="Number of images to generate.") # we support only value=1
|
|
seed: int = Field(..., ge=0, le=2147483647)
|
|
watermark: bool = Field(False)
|
|
|
|
|
|
class Text2VideoParametersField(BaseModel):
|
|
size: str = Field(...)
|
|
seed: int = Field(..., ge=0, le=2147483647)
|
|
duration: int = Field(5, ge=5, le=15)
|
|
prompt_extend: bool = Field(True)
|
|
watermark: bool = Field(False)
|
|
audio: bool = Field(False, description="Whether to generate audio automatically.")
|
|
shot_type: str = Field("single")
|
|
|
|
|
|
class Image2VideoParametersField(BaseModel):
|
|
resolution: str = Field(...)
|
|
seed: int = Field(..., ge=0, le=2147483647)
|
|
duration: int = Field(5, ge=5, le=15)
|
|
prompt_extend: bool = Field(True)
|
|
watermark: bool = Field(False)
|
|
audio: bool = Field(False, description="Whether to generate audio automatically.")
|
|
shot_type: str = Field("single")
|
|
|
|
|
|
class Reference2VideoParametersField(BaseModel):
|
|
size: str = Field(...)
|
|
duration: int = Field(5, ge=5, le=15)
|
|
shot_type: str = Field("single")
|
|
seed: int = Field(..., ge=0, le=2147483647)
|
|
watermark: bool = Field(False)
|
|
|
|
|
|
class Text2ImageTaskCreationRequest(BaseModel):
|
|
model: str = Field(...)
|
|
input: Text2ImageInputField = Field(...)
|
|
parameters: Txt2ImageParametersField = Field(...)
|
|
|
|
|
|
class Image2ImageTaskCreationRequest(BaseModel):
|
|
model: str = Field(...)
|
|
input: Image2ImageInputField = Field(...)
|
|
parameters: Image2ImageParametersField = Field(...)
|
|
|
|
|
|
class Text2VideoTaskCreationRequest(BaseModel):
|
|
model: str = Field(...)
|
|
input: Text2VideoInputField = Field(...)
|
|
parameters: Text2VideoParametersField = Field(...)
|
|
|
|
|
|
class Image2VideoTaskCreationRequest(BaseModel):
|
|
model: str = Field(...)
|
|
input: Image2VideoInputField = Field(...)
|
|
parameters: Image2VideoParametersField = Field(...)
|
|
|
|
|
|
class Reference2VideoTaskCreationRequest(BaseModel):
|
|
model: str = Field(...)
|
|
input: Reference2VideoInputField = Field(...)
|
|
parameters: Reference2VideoParametersField = Field(...)
|
|
|
|
|
|
class Wan27MediaItem(BaseModel):
|
|
type: str = Field(...)
|
|
url: str = Field(...)
|
|
|
|
|
|
class Wan27ReferenceVideoInputField(BaseModel):
|
|
prompt: str = Field(...)
|
|
negative_prompt: str | None = Field(None)
|
|
media: list[Wan27MediaItem] = Field(...)
|
|
|
|
|
|
class Wan27ReferenceVideoParametersField(BaseModel):
|
|
resolution: str = Field(...)
|
|
ratio: str | None = Field(None)
|
|
duration: int = Field(5, ge=2, le=10)
|
|
watermark: bool = Field(False)
|
|
seed: int = Field(..., ge=0, le=2147483647)
|
|
|
|
|
|
class Wan27ReferenceVideoTaskCreationRequest(BaseModel):
|
|
model: str = Field(...)
|
|
input: Wan27ReferenceVideoInputField = Field(...)
|
|
parameters: Wan27ReferenceVideoParametersField = Field(...)
|
|
|
|
|
|
class Wan27ImageToVideoInputField(BaseModel):
|
|
prompt: str | None = Field(None)
|
|
negative_prompt: str | None = Field(None)
|
|
media: list[Wan27MediaItem] = Field(...)
|
|
|
|
|
|
class Wan27ImageToVideoParametersField(BaseModel):
|
|
resolution: str = Field(...)
|
|
duration: int = Field(5, ge=2, le=15)
|
|
prompt_extend: bool = Field(True)
|
|
watermark: bool = Field(False)
|
|
seed: int = Field(..., ge=0, le=2147483647)
|
|
|
|
|
|
class Wan27ImageToVideoTaskCreationRequest(BaseModel):
|
|
model: str = Field(...)
|
|
input: Wan27ImageToVideoInputField = Field(...)
|
|
parameters: Wan27ImageToVideoParametersField = Field(...)
|
|
|
|
|
|
class Wan27VideoEditInputField(BaseModel):
|
|
prompt: str = Field(...)
|
|
media: list[Wan27MediaItem] = Field(...)
|
|
|
|
|
|
class Wan27VideoEditParametersField(BaseModel):
|
|
resolution: str = Field(...)
|
|
ratio: str | None = Field(None)
|
|
duration: int = Field(0)
|
|
audio_setting: str = Field("auto")
|
|
watermark: bool = Field(False)
|
|
seed: int = Field(..., ge=0, le=2147483647)
|
|
|
|
|
|
class Wan27VideoEditTaskCreationRequest(BaseModel):
|
|
model: str = Field(...)
|
|
input: Wan27VideoEditInputField = Field(...)
|
|
parameters: Wan27VideoEditParametersField = Field(...)
|
|
|
|
|
|
class Wan27Text2VideoParametersField(BaseModel):
|
|
resolution: str = Field(...)
|
|
ratio: str | None = Field(None)
|
|
duration: int = Field(5, ge=2, le=15)
|
|
prompt_extend: bool = Field(True)
|
|
watermark: bool = Field(False)
|
|
seed: int = Field(..., ge=0, le=2147483647)
|
|
|
|
|
|
class Wan27Text2VideoTaskCreationRequest(BaseModel):
|
|
model: str = Field(...)
|
|
input: Text2VideoInputField = Field(...)
|
|
parameters: Wan27Text2VideoParametersField = Field(...)
|
|
|
|
|
|
class TaskCreationOutputField(BaseModel):
|
|
task_id: str = Field(...)
|
|
task_status: str = Field(...)
|
|
|
|
|
|
class TaskCreationResponse(BaseModel):
|
|
output: TaskCreationOutputField | None = Field(None)
|
|
request_id: str = Field(...)
|
|
code: str | None = Field(None, description="Error code for the failed request.")
|
|
message: str | None = Field(None, description="Details about the failed request.")
|
|
|
|
|
|
class TaskResult(BaseModel):
|
|
url: str | None = Field(None)
|
|
code: str | None = Field(None)
|
|
message: str | None = Field(None)
|
|
|
|
|
|
class ImageTaskStatusOutputField(TaskCreationOutputField):
|
|
task_id: str = Field(...)
|
|
task_status: str = Field(...)
|
|
results: list[TaskResult] | None = Field(None)
|
|
|
|
|
|
class VideoTaskStatusOutputField(TaskCreationOutputField):
|
|
task_id: str = Field(...)
|
|
task_status: str = Field(...)
|
|
video_url: str | None = Field(None)
|
|
code: str | None = Field(None)
|
|
message: str | None = Field(None)
|
|
|
|
|
|
class ImageTaskStatusResponse(BaseModel):
|
|
output: ImageTaskStatusOutputField | None = Field(None)
|
|
request_id: str = Field(...)
|
|
|
|
|
|
class VideoTaskStatusResponse(BaseModel):
|
|
output: VideoTaskStatusOutputField | None = Field(None)
|
|
request_id: str = Field(...)
|