mirror of
https://github.com/comfyanonymous/ComfyUI.git
synced 2026-05-24 16:07:30 +08:00
* [Partner Nodes] add new Rodin2.5 nodes Signed-off-by: bigcat88 <bigcat88@icloud.com> * [Partner Nodes] fixed Quality Mesh Options Signed-off-by: bigcat88 <bigcat88@icloud.com> * [Partner Nodes] fix: remove non-supported "usdz" Signed-off-by: bigcat88 <bigcat88@icloud.com> * [Partner Nodes] fix: always pass seed to server Signed-off-by: bigcat88 <bigcat88@icloud.com> * [Partner Nodes] fix: set the default "material" value to "Shaded" Signed-off-by: bigcat88 <bigcat88@icloud.com> --------- Signed-off-by: bigcat88 <bigcat88@icloud.com>
85 lines
3.6 KiB
Python
85 lines
3.6 KiB
Python
from enum import Enum
|
|
|
|
from pydantic import BaseModel, Field
|
|
|
|
|
|
class Rodin3DGenerateRequest(BaseModel):
|
|
seed: int = Field(..., description="seed_")
|
|
tier: str = Field(..., description="Tier of generation.")
|
|
material: str = Field(..., description="The material type.")
|
|
quality_override: int = Field(..., description="The poly count of the mesh.")
|
|
mesh_mode: str = Field(..., description="It controls the type of faces of generated models.")
|
|
TAPose: bool | None = Field(None, description="")
|
|
|
|
|
|
class Rodin3DGen25Request(BaseModel):
|
|
|
|
tier: str = Field(..., description="Gen-2.5 tier (e.g. Gen-2.5-High).")
|
|
prompt: str | None = Field(None, description="Required for Text-to-3D; ignored otherwise.")
|
|
seed: int | None = Field(None, description="0-65535.")
|
|
material: str | None = Field(None, description="PBR | Shaded | All | None.")
|
|
geometry_file_format: str | None = Field(None, description="glb | usdz | fbx | obj | stl.")
|
|
texture_mode: str | None = Field(None, description="legacy | extreme-low | low | medium | high.")
|
|
mesh_mode: str | None = Field(None, description="Raw (triangular) | Quad.")
|
|
quality_override: int | None = Field(None, description="Mesh face count override.")
|
|
geometry_instruct_mode: str | None = Field(None, description="faithful | creative.")
|
|
bbox_condition: list[int] | None = Field(None, description="Bounding box [Width(Y), Height(Z), Length(X)] in cm.")
|
|
height: int | None = Field(None, description="Approximate model height in cm.")
|
|
TAPose: bool | None = Field(None, description="T/A pose for human-like models.")
|
|
hd_texture: bool | None = Field(None, description="Enhanced texture quality.")
|
|
texture_delight: bool | None = Field(None, description="Remove baked lighting from textures.")
|
|
is_micro: bool | None = Field(None, description="Micro detail (Extreme-High only).")
|
|
use_original_alpha: bool | None = Field(None, description="Preserve image transparency.")
|
|
preview_render: bool | None = Field(None, description="Generate high-quality preview render.")
|
|
addons: list[str] | None = Field(None, description='Optional addons, e.g. ["HighPack"].')
|
|
|
|
|
|
class GenerateJobsData(BaseModel):
|
|
uuids: list[str] = Field(..., description="str LIST")
|
|
subscription_key: str = Field(..., description="subscription key")
|
|
|
|
|
|
class Rodin3DGenerateResponse(BaseModel):
|
|
message: str | None = Field(None, description="Return message.")
|
|
prompt: str | None = Field(None, description="Generated Prompt from image.")
|
|
submit_time: str | None = Field(None, description="Submit Time")
|
|
uuid: str | None = Field(None, description="Task str")
|
|
jobs: GenerateJobsData | None = Field(None, description="Details of jobs")
|
|
|
|
|
|
class JobStatus(str, Enum):
|
|
"""
|
|
Status for jobs
|
|
"""
|
|
|
|
Done = "Done"
|
|
Failed = "Failed"
|
|
Generating = "Generating"
|
|
Waiting = "Waiting"
|
|
|
|
|
|
class Rodin3DCheckStatusRequest(BaseModel):
|
|
subscription_key: str = Field(..., description="subscription from generate endpoint")
|
|
|
|
|
|
class JobItem(BaseModel):
|
|
uuid: str = Field(..., description="uuid")
|
|
status: JobStatus = Field(..., description="Status Currently")
|
|
|
|
|
|
class Rodin3DCheckStatusResponse(BaseModel):
|
|
jobs: list[JobItem] = Field(..., description="Job status List")
|
|
|
|
|
|
class Rodin3DDownloadRequest(BaseModel):
|
|
task_uuid: str = Field(..., description="Task str")
|
|
|
|
|
|
class RodinResourceItem(BaseModel):
|
|
url: str = Field(..., description="Download Url")
|
|
name: str = Field(..., description="File name with ext")
|
|
|
|
|
|
class Rodin3DDownloadResponse(BaseModel):
|
|
items: list[RodinResourceItem] = Field(..., alias="list", description="Source List")
|