| | from __future__ import annotations |
| |
|
| | from enum import Enum |
| | from typing import Optional |
| |
|
| | from pydantic import BaseModel, Field, confloat |
| |
|
| |
|
| | class StabilityFormat(str, Enum): |
| | png = 'png' |
| | jpeg = 'jpeg' |
| | webp = 'webp' |
| |
|
| |
|
| | class StabilityAspectRatio(str, Enum): |
| | ratio_1_1 = "1:1" |
| | ratio_16_9 = "16:9" |
| | ratio_9_16 = "9:16" |
| | ratio_3_2 = "3:2" |
| | ratio_2_3 = "2:3" |
| | ratio_5_4 = "5:4" |
| | ratio_4_5 = "4:5" |
| | ratio_21_9 = "21:9" |
| | ratio_9_21 = "9:21" |
| |
|
| |
|
| | def get_stability_style_presets(include_none=True): |
| | presets = [] |
| | if include_none: |
| | presets.append("None") |
| | return presets + [x.value for x in StabilityStylePreset] |
| |
|
| |
|
| | class StabilityStylePreset(str, Enum): |
| | _3d_model = "3d-model" |
| | analog_film = "analog-film" |
| | anime = "anime" |
| | cinematic = "cinematic" |
| | comic_book = "comic-book" |
| | digital_art = "digital-art" |
| | enhance = "enhance" |
| | fantasy_art = "fantasy-art" |
| | isometric = "isometric" |
| | line_art = "line-art" |
| | low_poly = "low-poly" |
| | modeling_compound = "modeling-compound" |
| | neon_punk = "neon-punk" |
| | origami = "origami" |
| | photographic = "photographic" |
| | pixel_art = "pixel-art" |
| | tile_texture = "tile-texture" |
| |
|
| |
|
| | class Stability_SD3_5_Model(str, Enum): |
| | sd3_5_large = "sd3.5-large" |
| | |
| | sd3_5_medium = "sd3.5-medium" |
| |
|
| |
|
| | class Stability_SD3_5_GenerationMode(str, Enum): |
| | text_to_image = "text-to-image" |
| | image_to_image = "image-to-image" |
| |
|
| |
|
| | class StabilityStable3_5Request(BaseModel): |
| | model: str = Field(...) |
| | mode: str = Field(...) |
| | prompt: str = Field(...) |
| | negative_prompt: Optional[str] = Field(None) |
| | aspect_ratio: Optional[str] = Field(None) |
| | seed: Optional[int] = Field(None) |
| | output_format: Optional[str] = Field(StabilityFormat.png.value) |
| | image: Optional[str] = Field(None) |
| | style_preset: Optional[str] = Field(None) |
| | cfg_scale: float = Field(...) |
| | strength: Optional[confloat(ge=0.0, le=1.0)] = Field(None) |
| |
|
| |
|
| | class StabilityUpscaleConservativeRequest(BaseModel): |
| | prompt: str = Field(...) |
| | negative_prompt: Optional[str] = Field(None) |
| | seed: Optional[int] = Field(None) |
| | output_format: Optional[str] = Field(StabilityFormat.png.value) |
| | image: Optional[str] = Field(None) |
| | creativity: Optional[confloat(ge=0.2, le=0.5)] = Field(None) |
| |
|
| |
|
| | class StabilityUpscaleCreativeRequest(BaseModel): |
| | prompt: str = Field(...) |
| | negative_prompt: Optional[str] = Field(None) |
| | seed: Optional[int] = Field(None) |
| | output_format: Optional[str] = Field(StabilityFormat.png.value) |
| | image: Optional[str] = Field(None) |
| | creativity: Optional[confloat(ge=0.1, le=0.5)] = Field(None) |
| | style_preset: Optional[str] = Field(None) |
| |
|
| |
|
| | class StabilityStableUltraRequest(BaseModel): |
| | prompt: str = Field(...) |
| | negative_prompt: Optional[str] = Field(None) |
| | aspect_ratio: Optional[str] = Field(None) |
| | seed: Optional[int] = Field(None) |
| | output_format: Optional[str] = Field(StabilityFormat.png.value) |
| | image: Optional[str] = Field(None) |
| | style_preset: Optional[str] = Field(None) |
| | strength: Optional[confloat(ge=0.0, le=1.0)] = Field(None) |
| |
|
| |
|
| | class StabilityStableUltraResponse(BaseModel): |
| | image: Optional[str] = Field(None) |
| | finish_reason: Optional[str] = Field(None) |
| | seed: Optional[int] = Field(None) |
| |
|
| |
|
| | class StabilityResultsGetResponse(BaseModel): |
| | image: Optional[str] = Field(None) |
| | finish_reason: Optional[str] = Field(None) |
| | seed: Optional[int] = Field(None) |
| | id: Optional[str] = Field(None) |
| | name: Optional[str] = Field(None) |
| | errors: Optional[list[str]] = Field(None) |
| | status: Optional[str] = Field(None) |
| | result: Optional[str] = Field(None) |
| |
|
| |
|
| | class StabilityAsyncResponse(BaseModel): |
| | id: Optional[str] = Field(None) |
| |
|
| |
|
| | class StabilityTextToAudioRequest(BaseModel): |
| | model: str = Field(...) |
| | prompt: str = Field(...) |
| | duration: int = Field(190, ge=1, le=190) |
| | seed: int = Field(0, ge=0, le=4294967294) |
| | steps: int = Field(8, ge=4, le=8) |
| | output_format: str = Field("wav") |
| |
|
| |
|
| | class StabilityAudioToAudioRequest(StabilityTextToAudioRequest): |
| | strength: float = Field(0.01, ge=0.01, le=1.0) |
| |
|
| |
|
| | class StabilityAudioInpaintRequest(StabilityTextToAudioRequest): |
| | mask_start: int = Field(30, ge=0, le=190) |
| | mask_end: int = Field(190, ge=0, le=190) |
| |
|
| |
|
| | class StabilityAudioResponse(BaseModel): |
| | audio: Optional[str] = Field(None) |
| |
|