mirror of
https://github.com/comfyanonymous/ComfyUI.git
synced 2026-06-02 04:17:33 +08:00
134 lines
5.3 KiB
Python
134 lines
5.3 KiB
Python
from enum import Enum
|
|
from typing import Any
|
|
|
|
from pydantic import BaseModel, Field
|
|
|
|
|
|
class BFLFluxExpandImageRequest(BaseModel):
|
|
prompt: str = Field(...)
|
|
prompt_upsampling: bool | None = Field(None)
|
|
seed: int | None = Field(None)
|
|
top: int = Field(...)
|
|
bottom: int = Field(...)
|
|
left: int = Field(...)
|
|
right: int = Field(...)
|
|
steps: int = Field(...)
|
|
guidance: float = Field(...)
|
|
safety_tolerance: int = Field(6)
|
|
output_format: str = Field("png")
|
|
image: str = Field(None, description="A Base64-encoded string representing the image you wish to expand")
|
|
|
|
|
|
class BFLFluxFillImageRequest(BaseModel):
|
|
prompt: str = Field(...)
|
|
prompt_upsampling: bool | None = Field(None)
|
|
seed: int | None = Field(None)
|
|
steps: int = Field(...)
|
|
guidance: float = Field(...)
|
|
safety_tolerance: int = Field(6)
|
|
output_format: str = Field("png")
|
|
image: str = Field(
|
|
None, description="Base64-encoded string representing the image to modify. Can contain alpha mask if desired.",
|
|
)
|
|
mask: str = Field(
|
|
None, description="Base64-encoded string representing the mask of the areas you wish to modify."
|
|
)
|
|
|
|
|
|
class BFLFluxEraseRequest(BaseModel):
|
|
image: str = Field(..., description="A Base64-encoded string representing the image to erase from.")
|
|
mask: str = Field(
|
|
...,
|
|
description="A Base64-encoded black/white mask matching the input dimensions; "
|
|
"white (255) marks areas to remove, black (0) marks areas to preserve.",
|
|
)
|
|
dilate_pixels: int = Field(10)
|
|
output_format: str = Field("png")
|
|
|
|
|
|
class BFLFluxVTORequest(BaseModel):
|
|
prompt: str = Field(
|
|
..., description="Natural-language styling instruction. Required field, but may be an empty string."
|
|
)
|
|
person: str = Field(..., description="A Base64-encoded string representing the person image.")
|
|
garment: str = Field(..., description="A Base64-encoded string representing the garment reference image.")
|
|
seed: int | None = Field(None)
|
|
safety_tolerance: int = Field(5)
|
|
output_format: str = Field("png")
|
|
|
|
|
|
class BFLFluxProGenerateRequest(BaseModel):
|
|
prompt: str = Field(...)
|
|
prompt_upsampling: bool | None = Field(None)
|
|
seed: int | None = Field(None)
|
|
width: int = Field(1024, description="Must be a multiple of 32.")
|
|
height: int = Field(768, description="Must be a multiple of 32.")
|
|
safety_tolerance: int = Field(6)
|
|
output_format: str = Field("png")
|
|
image_prompt: str | None = Field(None, description="Optional image to remix in base64 format")
|
|
|
|
|
|
class Flux2ProGenerateRequest(BaseModel):
|
|
prompt: str = Field(...)
|
|
width: int = Field(1024, description="Must be a multiple of 32.")
|
|
height: int = Field(768, description="Must be a multiple of 32.")
|
|
seed: int | None = Field(None)
|
|
prompt_upsampling: bool | None = Field(None)
|
|
input_image: str | None = Field(None, description="Base64 encoded image for image-to-image generation")
|
|
input_image_2: str | None = Field(None, description="Base64 encoded image for image-to-image generation")
|
|
input_image_3: str | None = Field(None, description="Base64 encoded image for image-to-image generation")
|
|
input_image_4: str | None = Field(None, description="Base64 encoded image for image-to-image generation")
|
|
input_image_5: str | None = Field(None, description="Base64 encoded image for image-to-image generation")
|
|
input_image_6: str | None = Field(None, description="Base64 encoded image for image-to-image generation")
|
|
input_image_7: str | None = Field(None, description="Base64 encoded image for image-to-image generation")
|
|
input_image_8: str | None = Field(None, description="Base64 encoded image for image-to-image generation")
|
|
input_image_9: str | None = Field(None, description="Base64 encoded image for image-to-image generation")
|
|
safety_tolerance: int = Field(5)
|
|
output_format: str = Field("png")
|
|
|
|
|
|
class BFLFluxKontextProGenerateRequest(BaseModel):
|
|
prompt: str = Field(...)
|
|
input_image: str | None = Field(None, description="Image to edit in base64 format")
|
|
seed: int | None = Field(None)
|
|
guidance: float = Field(...)
|
|
steps: int = Field(...)
|
|
safety_tolerance: int = Field(2)
|
|
output_format: str = Field("png")
|
|
aspect_ratio: str | None = Field(None)
|
|
prompt_upsampling: bool | None = Field(None)
|
|
|
|
|
|
class BFLFluxProUltraGenerateRequest(BaseModel):
|
|
prompt: str = Field(...)
|
|
prompt_upsampling: bool | None = Field(None)
|
|
seed: int | None = Field(None)
|
|
aspect_ratio: str | None = Field(None)
|
|
safety_tolerance: int = Field(6)
|
|
output_format: str = Field("png")
|
|
raw: bool | None = Field(None)
|
|
image_prompt: str | None = Field(None, description="Optional image to remix in base64 format")
|
|
image_prompt_strength: float | None = Field(None)
|
|
|
|
|
|
class BFLFluxProGenerateResponse(BaseModel):
|
|
id: str = Field(...)
|
|
polling_url: str = Field(...)
|
|
cost: float | None = Field(None, description="Price in cents")
|
|
|
|
|
|
class BFLStatus(str, Enum):
|
|
task_not_found = "Task not found"
|
|
pending = "Pending"
|
|
request_moderated = "Request Moderated"
|
|
content_moderated = "Content Moderated"
|
|
ready = "Ready"
|
|
error = "Error"
|
|
|
|
|
|
class BFLFluxStatusResponse(BaseModel):
|
|
id: str = Field(...)
|
|
status: BFLStatus = Field(...)
|
|
result: dict[str, Any] | None = Field(None)
|
|
progress: float | None = Field(None, ge=0.0, le=1.0)
|