Skip to content

Subjects & Styles Endpoints

AI subjects, visual styles, guidelines, shot types, and presets.


Overview

Subjects

Method Endpoint Description
GET /subjects/ List subjects
POST /subjects/ Create subject
GET /subjects/{id} Get subject
PATCH /subjects/{id} Update subject
DELETE /subjects/{id} Delete subject

Styles

Method Endpoint Description
GET /styles/ List styles
POST /styles/ Create style
GET /styles/{id} Get style
PATCH /styles/{id} Update style

Guidelines

Method Endpoint Description
GET /guidelines/ List guidelines
POST /guidelines/ Create guideline
GET /guidelines/{id} Get guideline

Shot Types

Method Endpoint Description
GET /shot-types/ List shot types
POST /shot-types/ Create shot type
GET /shot-types/{id} Get shot type

Presets

Method Endpoint Description
GET /background-presets/ List background presets
GET /resolution-presets/ List resolution presets

API Reference

Sartiq Backend Server - Subjects Styles 0.1.0

subjects


GET /api/v1/subjects/

Read Subjects

Description

Retrieve subjects.

When organization_id query param is provided, returns subjects belonging to that organization. Without organization_id, returns only personal subjects (not belonging to any organization).

Input parameters

Parameter In Type Default Nullable Description
OAuth2PasswordBearer header string N/A No
age_class query No
body_type query No
include_public query No
limit query integer 100 No
only_with_base_images query No
organization_id query No
skip query integer 0 No

Responses

{
    "id": "187b9234-c02d-4b91-87d8-3e43891f9d20",
    "created_at": "2022-04-13T15:42:05.901Z",
    "updated_at": "2022-04-13T15:42:05.901Z",
    "data": [
        {
            "id": "ca13141d-589b-49c3-8dd2-8a31f0991170",
            "created_at": "2022-04-13T15:42:05.901Z",
            "updated_at": "2022-04-13T15:42:05.901Z",
            "name": "string",
            "surname": null,
            "slug": "string",
            "description": null,
            "age_class": "newborn",
            "gender": "MALE",
            "subject_type": "AI",
            "body_type": null,
            "positive_prompt": null,
            "negative_prompt": null,
            "ethnicity": null,
            "public": true,
            "enabled": true,
            "ready": true,
            "lora_status": "string",
            "lora_trigger": null,
            "cover_image_url": null,
            "portrait_image_url": null,
            "data_image_urls": [
                "string"
            ],
            "cover_image_media": null,
            "portrait_image_media": null,
            "data_images_media": null,
            "portfolio_images_media": null,
            "base_images": [
                {
                    "shot_type_id": "1206e790-83df-41d1-963d-7c445e9768d6",
                    "shot_type_label": "string",
                    "image_url": "string"
                }
            ],
            "measurements": null,
            "deleted_at": null,
            "owner_id": "97d058cd-b703-42fc-b91b-0c4bdba98c68",
            "organization_id": null
        }
    ],
    "count": 0
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
        },
        "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
        },
        "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "Updated At"
        },
        "data": {
            "items": {
                "$ref": "#/components/schemas/SubjectPublic"
            },
            "type": "array",
            "title": "Data"
        },
        "count": {
            "type": "integer",
            "title": "Count"
        }
    },
    "type": "object",
    "required": [
        "data",
        "count"
    ],
    "title": "SubjectsPublic"
}

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string",
            "input": null,
            "ctx": {}
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

POST /api/v1/subjects/

Create Subject

Description

Create new subject, supporting base_images and data_images.

Input parameters

Parameter In Type Default Nullable Description
OAuth2PasswordBearer header string N/A No
organization_id query No

Request body

{
    "name": "string",
    "surname": null,
    "description": null,
    "local_model_path": null,
    "lora_trigger": null,
    "lora_status": "string",
    "cover_image": null,
    "data_images": null,
    "portrait_image": null,
    "portfolio_images": null,
    "base_images": null,
    "age_class": "newborn",
    "gender": "MALE",
    "positive_prompt": null,
    "negative_prompt": null,
    "ethnicity": null,
    "public": true,
    "subject_type": "AI",
    "body_type": null,
    "organization_id": null,
    "measurements": null
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the request body
{
    "properties": {
        "name": {
            "type": "string",
            "title": "Name"
        },
        "surname": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Surname"
        },
        "description": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Description"
        },
        "local_model_path": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Local Model Path"
        },
        "lora_trigger": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Lora Trigger"
        },
        "lora_status": {
            "type": "string",
            "title": "Lora Status",
            "default": "none"
        },
        "cover_image": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "$ref": "#/components/schemas/MediaInput"
                }
            ],
            "title": "Cover Image"
        },
        "data_images": {
            "anyOf": [
                {
                    "items": {
                        "anyOf": [
                            {
                                "type": "string"
                            },
                            {
                                "$ref": "#/components/schemas/MediaInput"
                            }
                        ]
                    },
                    "type": "array"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Data Images"
        },
        "portrait_image": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "$ref": "#/components/schemas/MediaInput"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Portrait Image"
        },
        "portfolio_images": {
            "anyOf": [
                {
                    "items": {
                        "$ref": "#/components/schemas/MediaInput"
                    },
                    "type": "array"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Portfolio Images"
        },
        "base_images": {
            "anyOf": [
                {
                    "items": {
                        "$ref": "#/components/schemas/BaseImageCreate"
                    },
                    "type": "array"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Base Images"
        },
        "age_class": {
            "$ref": "#/components/schemas/SubjectAgeClass"
        },
        "gender": {
            "$ref": "#/components/schemas/Gender",
            "default": "FEMALE"
        },
        "positive_prompt": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Positive Prompt"
        },
        "negative_prompt": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Negative Prompt"
        },
        "ethnicity": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Ethnicity"
        },
        "public": {
            "type": "boolean",
            "title": "Public",
            "default": false
        },
        "subject_type": {
            "$ref": "#/components/schemas/SubjectType",
            "default": "AI"
        },
        "body_type": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/BodyType"
                },
                {
                    "type": "null"
                }
            ]
        },
        "organization_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Organization Id",
            "description": "Organization this subject belongs to"
        },
        "measurements": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/SubjectMeasurementsCreate"
                },
                {
                    "type": "null"
                }
            ]
        }
    },
    "type": "object",
    "required": [
        "name",
        "cover_image",
        "age_class"
    ],
    "title": "SubjectCreate"
}

Responses

{
    "id": "bc8828a3-38c4-4c76-b4a1-e5a4304a2796",
    "created_at": "2022-04-13T15:42:05.901Z",
    "updated_at": "2022-04-13T15:42:05.901Z",
    "name": "string",
    "surname": null,
    "slug": "string",
    "description": null,
    "age_class": "newborn",
    "gender": "MALE",
    "subject_type": "AI",
    "body_type": null,
    "positive_prompt": null,
    "negative_prompt": null,
    "ethnicity": null,
    "public": true,
    "enabled": true,
    "ready": true,
    "lora_status": "string",
    "lora_trigger": null,
    "cover_image_url": null,
    "portrait_image_url": null,
    "data_image_urls": [
        "string"
    ],
    "cover_image_media": null,
    "portrait_image_media": null,
    "data_images_media": null,
    "portfolio_images_media": null,
    "base_images": [
        {
            "shot_type_id": "55d7b395-2a04-489d-ae3a-c87d28020480",
            "shot_type_label": "string",
            "image_url": "string"
        }
    ],
    "measurements": null,
    "deleted_at": null,
    "owner_id": "40952979-c20a-4539-9e74-690d0fc3baa1",
    "organization_id": null
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
        },
        "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
        },
        "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "Updated At"
        },
        "name": {
            "type": "string",
            "title": "Name"
        },
        "surname": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Surname"
        },
        "slug": {
            "type": "string",
            "title": "Slug"
        },
        "description": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Description"
        },
        "age_class": {
            "$ref": "#/components/schemas/SubjectAgeClass"
        },
        "gender": {
            "$ref": "#/components/schemas/Gender"
        },
        "subject_type": {
            "$ref": "#/components/schemas/SubjectType"
        },
        "body_type": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/BodyType"
                },
                {
                    "type": "null"
                }
            ]
        },
        "positive_prompt": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Positive Prompt"
        },
        "negative_prompt": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Negative Prompt"
        },
        "ethnicity": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Ethnicity"
        },
        "public": {
            "type": "boolean",
            "title": "Public"
        },
        "enabled": {
            "type": "boolean",
            "title": "Enabled"
        },
        "ready": {
            "type": "boolean",
            "title": "Ready"
        },
        "lora_status": {
            "type": "string",
            "title": "Lora Status"
        },
        "lora_trigger": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Lora Trigger"
        },
        "cover_image_url": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Cover Image Url"
        },
        "portrait_image_url": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Portrait Image Url"
        },
        "data_image_urls": {
            "items": {
                "type": "string"
            },
            "type": "array",
            "title": "Data Image Urls"
        },
        "cover_image_media": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/MediaResourcePublic"
                },
                {
                    "type": "null"
                }
            ]
        },
        "portrait_image_media": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/MediaResourcePublic"
                },
                {
                    "type": "null"
                }
            ]
        },
        "data_images_media": {
            "anyOf": [
                {
                    "items": {
                        "$ref": "#/components/schemas/MediaResourcePublic"
                    },
                    "type": "array"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Data Images Media"
        },
        "portfolio_images_media": {
            "anyOf": [
                {
                    "items": {
                        "$ref": "#/components/schemas/MediaResourcePublic"
                    },
                    "type": "array"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Portfolio Images Media"
        },
        "base_images": {
            "items": {
                "$ref": "#/components/schemas/BaseImagePublic"
            },
            "type": "array",
            "title": "Base Images"
        },
        "measurements": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/SubjectMeasurementsPublic"
                },
                {
                    "type": "null"
                }
            ]
        },
        "deleted_at": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "date-time"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Deleted At"
        },
        "owner_id": {
            "type": "string",
            "format": "uuid",
            "title": "Owner Id"
        },
        "organization_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Organization Id"
        }
    },
    "type": "object",
    "required": [
        "id",
        "created_at",
        "name",
        "slug",
        "description",
        "age_class",
        "gender",
        "subject_type",
        "ethnicity",
        "public",
        "enabled",
        "ready",
        "lora_status",
        "lora_trigger",
        "cover_image_url",
        "data_image_urls",
        "owner_id"
    ],
    "title": "SubjectPublic"
}

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string",
            "input": null,
            "ctx": {}
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

GET /api/v1/subjects/{id}

Read Subject

Description

Get subject by ID.

Input parameters

Parameter In Type Default Nullable Description
OAuth2PasswordBearer header string N/A No
id path string No
organization_id query No

Responses

{
    "id": "6c9860e3-205e-4467-8e67-b9aa7b8ad43f",
    "created_at": "2022-04-13T15:42:05.901Z",
    "updated_at": "2022-04-13T15:42:05.901Z",
    "name": "string",
    "surname": null,
    "slug": "string",
    "description": null,
    "age_class": "newborn",
    "gender": "MALE",
    "subject_type": "AI",
    "body_type": null,
    "positive_prompt": null,
    "negative_prompt": null,
    "ethnicity": null,
    "public": true,
    "enabled": true,
    "ready": true,
    "lora_status": "string",
    "lora_trigger": null,
    "cover_image_url": null,
    "portrait_image_url": null,
    "data_image_urls": [
        "string"
    ],
    "cover_image_media": null,
    "portrait_image_media": null,
    "data_images_media": null,
    "portfolio_images_media": null,
    "base_images": [
        {
            "shot_type_id": "9843695b-7762-4585-b502-f244e0cc4138",
            "shot_type_label": "string",
            "image_url": "string"
        }
    ],
    "measurements": null,
    "deleted_at": null,
    "owner_id": "b5650e16-1f5a-46bc-a495-c1bc0cff5fbb",
    "organization_id": null
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
        },
        "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
        },
        "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "Updated At"
        },
        "name": {
            "type": "string",
            "title": "Name"
        },
        "surname": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Surname"
        },
        "slug": {
            "type": "string",
            "title": "Slug"
        },
        "description": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Description"
        },
        "age_class": {
            "$ref": "#/components/schemas/SubjectAgeClass"
        },
        "gender": {
            "$ref": "#/components/schemas/Gender"
        },
        "subject_type": {
            "$ref": "#/components/schemas/SubjectType"
        },
        "body_type": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/BodyType"
                },
                {
                    "type": "null"
                }
            ]
        },
        "positive_prompt": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Positive Prompt"
        },
        "negative_prompt": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Negative Prompt"
        },
        "ethnicity": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Ethnicity"
        },
        "public": {
            "type": "boolean",
            "title": "Public"
        },
        "enabled": {
            "type": "boolean",
            "title": "Enabled"
        },
        "ready": {
            "type": "boolean",
            "title": "Ready"
        },
        "lora_status": {
            "type": "string",
            "title": "Lora Status"
        },
        "lora_trigger": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Lora Trigger"
        },
        "cover_image_url": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Cover Image Url"
        },
        "portrait_image_url": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Portrait Image Url"
        },
        "data_image_urls": {
            "items": {
                "type": "string"
            },
            "type": "array",
            "title": "Data Image Urls"
        },
        "cover_image_media": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/MediaResourcePublic"
                },
                {
                    "type": "null"
                }
            ]
        },
        "portrait_image_media": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/MediaResourcePublic"
                },
                {
                    "type": "null"
                }
            ]
        },
        "data_images_media": {
            "anyOf": [
                {
                    "items": {
                        "$ref": "#/components/schemas/MediaResourcePublic"
                    },
                    "type": "array"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Data Images Media"
        },
        "portfolio_images_media": {
            "anyOf": [
                {
                    "items": {
                        "$ref": "#/components/schemas/MediaResourcePublic"
                    },
                    "type": "array"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Portfolio Images Media"
        },
        "base_images": {
            "items": {
                "$ref": "#/components/schemas/BaseImagePublic"
            },
            "type": "array",
            "title": "Base Images"
        },
        "measurements": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/SubjectMeasurementsPublic"
                },
                {
                    "type": "null"
                }
            ]
        },
        "deleted_at": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "date-time"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Deleted At"
        },
        "owner_id": {
            "type": "string",
            "format": "uuid",
            "title": "Owner Id"
        },
        "organization_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Organization Id"
        }
    },
    "type": "object",
    "required": [
        "id",
        "created_at",
        "name",
        "slug",
        "description",
        "age_class",
        "gender",
        "subject_type",
        "ethnicity",
        "public",
        "enabled",
        "ready",
        "lora_status",
        "lora_trigger",
        "cover_image_url",
        "data_image_urls",
        "owner_id"
    ],
    "title": "SubjectPublic"
}

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string",
            "input": null,
            "ctx": {}
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

PUT /api/v1/subjects/{id}

Update Subject

Description

Update a subject.

Organization transfer: - To transfer a personal subject to an organization: set organization_id to the target org ID - To transfer a subject out of an organization: set organization_id to None (org owner only)

Input parameters

Parameter In Type Default Nullable Description
OAuth2PasswordBearer header string N/A No
id path string No
organization_id query No

Request body

{
    "name": null,
    "surname": null,
    "description": null,
    "cover_image": null,
    "data_images": null,
    "portrait_image": null,
    "portfolio_images": null,
    "age_class": null,
    "gender": null,
    "positive_prompt": null,
    "negative_prompt": null,
    "ethnicity": null,
    "public": null,
    "ready": null,
    "body_type": null,
    "organization_id": null,
    "measurements": null
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the request body
{
    "properties": {
        "name": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Name"
        },
        "surname": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Surname"
        },
        "description": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Description"
        },
        "cover_image": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "$ref": "#/components/schemas/MediaInput"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Cover Image"
        },
        "data_images": {
            "anyOf": [
                {
                    "items": {
                        "anyOf": [
                            {
                                "type": "string"
                            },
                            {
                                "$ref": "#/components/schemas/MediaInput"
                            }
                        ]
                    },
                    "type": "array"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Data Images"
        },
        "portrait_image": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "$ref": "#/components/schemas/MediaInput"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Portrait Image"
        },
        "portfolio_images": {
            "anyOf": [
                {
                    "items": {
                        "$ref": "#/components/schemas/MediaInput"
                    },
                    "type": "array"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Portfolio Images"
        },
        "age_class": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/SubjectAgeClass"
                },
                {
                    "type": "null"
                }
            ]
        },
        "gender": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/Gender"
                },
                {
                    "type": "null"
                }
            ]
        },
        "positive_prompt": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Positive Prompt"
        },
        "negative_prompt": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Negative Prompt"
        },
        "ethnicity": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Ethnicity"
        },
        "public": {
            "anyOf": [
                {
                    "type": "boolean"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Public"
        },
        "ready": {
            "anyOf": [
                {
                    "type": "boolean"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Ready"
        },
        "body_type": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/BodyType"
                },
                {
                    "type": "null"
                }
            ]
        },
        "organization_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Organization Id",
            "description": "Organization to transfer this subject to"
        },
        "measurements": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/SubjectMeasurementsUpdate"
                },
                {
                    "type": "null"
                }
            ]
        }
    },
    "type": "object",
    "title": "SubjectUpdate"
}

Responses

{
    "id": "c88b3447-70cb-4a80-b921-6c606f301513",
    "created_at": "2022-04-13T15:42:05.901Z",
    "updated_at": "2022-04-13T15:42:05.901Z",
    "name": "string",
    "surname": null,
    "slug": "string",
    "description": null,
    "age_class": "newborn",
    "gender": "MALE",
    "subject_type": "AI",
    "body_type": null,
    "positive_prompt": null,
    "negative_prompt": null,
    "ethnicity": null,
    "public": true,
    "enabled": true,
    "ready": true,
    "lora_status": "string",
    "lora_trigger": null,
    "cover_image_url": null,
    "portrait_image_url": null,
    "data_image_urls": [
        "string"
    ],
    "cover_image_media": null,
    "portrait_image_media": null,
    "data_images_media": null,
    "portfolio_images_media": null,
    "base_images": [
        {
            "shot_type_id": "2589447a-0a66-4ab7-8018-f64ca4931798",
            "shot_type_label": "string",
            "image_url": "string"
        }
    ],
    "measurements": null,
    "deleted_at": null,
    "owner_id": "5aa5144e-bf4e-4258-adef-ece1f80013fc",
    "organization_id": null
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
        },
        "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
        },
        "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "Updated At"
        },
        "name": {
            "type": "string",
            "title": "Name"
        },
        "surname": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Surname"
        },
        "slug": {
            "type": "string",
            "title": "Slug"
        },
        "description": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Description"
        },
        "age_class": {
            "$ref": "#/components/schemas/SubjectAgeClass"
        },
        "gender": {
            "$ref": "#/components/schemas/Gender"
        },
        "subject_type": {
            "$ref": "#/components/schemas/SubjectType"
        },
        "body_type": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/BodyType"
                },
                {
                    "type": "null"
                }
            ]
        },
        "positive_prompt": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Positive Prompt"
        },
        "negative_prompt": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Negative Prompt"
        },
        "ethnicity": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Ethnicity"
        },
        "public": {
            "type": "boolean",
            "title": "Public"
        },
        "enabled": {
            "type": "boolean",
            "title": "Enabled"
        },
        "ready": {
            "type": "boolean",
            "title": "Ready"
        },
        "lora_status": {
            "type": "string",
            "title": "Lora Status"
        },
        "lora_trigger": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Lora Trigger"
        },
        "cover_image_url": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Cover Image Url"
        },
        "portrait_image_url": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Portrait Image Url"
        },
        "data_image_urls": {
            "items": {
                "type": "string"
            },
            "type": "array",
            "title": "Data Image Urls"
        },
        "cover_image_media": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/MediaResourcePublic"
                },
                {
                    "type": "null"
                }
            ]
        },
        "portrait_image_media": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/MediaResourcePublic"
                },
                {
                    "type": "null"
                }
            ]
        },
        "data_images_media": {
            "anyOf": [
                {
                    "items": {
                        "$ref": "#/components/schemas/MediaResourcePublic"
                    },
                    "type": "array"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Data Images Media"
        },
        "portfolio_images_media": {
            "anyOf": [
                {
                    "items": {
                        "$ref": "#/components/schemas/MediaResourcePublic"
                    },
                    "type": "array"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Portfolio Images Media"
        },
        "base_images": {
            "items": {
                "$ref": "#/components/schemas/BaseImagePublic"
            },
            "type": "array",
            "title": "Base Images"
        },
        "measurements": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/SubjectMeasurementsPublic"
                },
                {
                    "type": "null"
                }
            ]
        },
        "deleted_at": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "date-time"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Deleted At"
        },
        "owner_id": {
            "type": "string",
            "format": "uuid",
            "title": "Owner Id"
        },
        "organization_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Organization Id"
        }
    },
    "type": "object",
    "required": [
        "id",
        "created_at",
        "name",
        "slug",
        "description",
        "age_class",
        "gender",
        "subject_type",
        "ethnicity",
        "public",
        "enabled",
        "ready",
        "lora_status",
        "lora_trigger",
        "cover_image_url",
        "data_image_urls",
        "owner_id"
    ],
    "title": "SubjectPublic"
}

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string",
            "input": null,
            "ctx": {}
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

DELETE /api/v1/subjects/{id}

Delete Subject

Description

Delete a subject and all associated assets.

This includes: - LoRA model files on compute server - Training datasets on compute server - Generated images and related files

Input parameters

Parameter In Type Default Nullable Description
OAuth2PasswordBearer header string N/A No
id path string No
organization_id query No

Responses

{
    "message": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "message": {
            "type": "string",
            "title": "Message"
        }
    },
    "type": "object",
    "required": [
        "message"
    ],
    "title": "Message"
}

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string",
            "input": null,
            "ctx": {}
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

POST /api/v1/subjects/{id}/restore

Restore Subject

Description

Restore a soft-deleted subject (admin only).

Input parameters

Parameter In Type Default Nullable Description
OAuth2PasswordBearer header string N/A No
id path string No

Responses

{
    "id": "438e8713-d8c7-408b-9c78-45c97fc6c819",
    "created_at": "2022-04-13T15:42:05.901Z",
    "updated_at": "2022-04-13T15:42:05.901Z",
    "name": "string",
    "surname": null,
    "slug": "string",
    "description": null,
    "age_class": "newborn",
    "gender": "MALE",
    "subject_type": "AI",
    "body_type": null,
    "positive_prompt": null,
    "negative_prompt": null,
    "ethnicity": null,
    "public": true,
    "enabled": true,
    "ready": true,
    "lora_status": "string",
    "lora_trigger": null,
    "cover_image_url": null,
    "portrait_image_url": null,
    "data_image_urls": [
        "string"
    ],
    "cover_image_media": null,
    "portrait_image_media": null,
    "data_images_media": null,
    "portfolio_images_media": null,
    "base_images": [
        {
            "shot_type_id": "827723f7-1c8a-4ec4-b55f-b341f20be539",
            "shot_type_label": "string",
            "image_url": "string"
        }
    ],
    "measurements": null,
    "deleted_at": null,
    "owner_id": "9559340c-773d-4546-9510-76ccda802333",
    "organization_id": null
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
        },
        "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
        },
        "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "Updated At"
        },
        "name": {
            "type": "string",
            "title": "Name"
        },
        "surname": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Surname"
        },
        "slug": {
            "type": "string",
            "title": "Slug"
        },
        "description": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Description"
        },
        "age_class": {
            "$ref": "#/components/schemas/SubjectAgeClass"
        },
        "gender": {
            "$ref": "#/components/schemas/Gender"
        },
        "subject_type": {
            "$ref": "#/components/schemas/SubjectType"
        },
        "body_type": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/BodyType"
                },
                {
                    "type": "null"
                }
            ]
        },
        "positive_prompt": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Positive Prompt"
        },
        "negative_prompt": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Negative Prompt"
        },
        "ethnicity": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Ethnicity"
        },
        "public": {
            "type": "boolean",
            "title": "Public"
        },
        "enabled": {
            "type": "boolean",
            "title": "Enabled"
        },
        "ready": {
            "type": "boolean",
            "title": "Ready"
        },
        "lora_status": {
            "type": "string",
            "title": "Lora Status"
        },
        "lora_trigger": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Lora Trigger"
        },
        "cover_image_url": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Cover Image Url"
        },
        "portrait_image_url": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Portrait Image Url"
        },
        "data_image_urls": {
            "items": {
                "type": "string"
            },
            "type": "array",
            "title": "Data Image Urls"
        },
        "cover_image_media": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/MediaResourcePublic"
                },
                {
                    "type": "null"
                }
            ]
        },
        "portrait_image_media": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/MediaResourcePublic"
                },
                {
                    "type": "null"
                }
            ]
        },
        "data_images_media": {
            "anyOf": [
                {
                    "items": {
                        "$ref": "#/components/schemas/MediaResourcePublic"
                    },
                    "type": "array"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Data Images Media"
        },
        "portfolio_images_media": {
            "anyOf": [
                {
                    "items": {
                        "$ref": "#/components/schemas/MediaResourcePublic"
                    },
                    "type": "array"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Portfolio Images Media"
        },
        "base_images": {
            "items": {
                "$ref": "#/components/schemas/BaseImagePublic"
            },
            "type": "array",
            "title": "Base Images"
        },
        "measurements": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/SubjectMeasurementsPublic"
                },
                {
                    "type": "null"
                }
            ]
        },
        "deleted_at": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "date-time"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Deleted At"
        },
        "owner_id": {
            "type": "string",
            "format": "uuid",
            "title": "Owner Id"
        },
        "organization_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Organization Id"
        }
    },
    "type": "object",
    "required": [
        "id",
        "created_at",
        "name",
        "slug",
        "description",
        "age_class",
        "gender",
        "subject_type",
        "ethnicity",
        "public",
        "enabled",
        "ready",
        "lora_status",
        "lora_trigger",
        "cover_image_url",
        "data_image_urls",
        "owner_id"
    ],
    "title": "SubjectPublic"
}

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string",
            "input": null,
            "ctx": {}
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

POST /api/v1/subjects/{id}/copy

Copy Subject

Description

Create a copy of an existing subject (admin only).

Input parameters

Parameter In Type Default Nullable Description
OAuth2PasswordBearer header string N/A No
id path string No

Responses

{
    "id": "3b84c66f-af0d-4815-a753-5ea9f72f53b1",
    "created_at": "2022-04-13T15:42:05.901Z",
    "updated_at": "2022-04-13T15:42:05.901Z",
    "name": "string",
    "surname": null,
    "slug": "string",
    "description": null,
    "age_class": "newborn",
    "gender": "MALE",
    "subject_type": "AI",
    "body_type": null,
    "positive_prompt": null,
    "negative_prompt": null,
    "ethnicity": null,
    "public": true,
    "enabled": true,
    "ready": true,
    "lora_status": "string",
    "lora_trigger": null,
    "cover_image_url": null,
    "portrait_image_url": null,
    "data_image_urls": [
        "string"
    ],
    "cover_image_media": null,
    "portrait_image_media": null,
    "data_images_media": null,
    "portfolio_images_media": null,
    "base_images": [
        {
            "shot_type_id": "fba2c335-58de-44f5-8826-126ddb244a72",
            "shot_type_label": "string",
            "image_url": "string"
        }
    ],
    "measurements": null,
    "deleted_at": null,
    "owner_id": "cd6fe940-1c1b-4786-a362-1e0c100ddd71",
    "organization_id": null
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
        },
        "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
        },
        "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "Updated At"
        },
        "name": {
            "type": "string",
            "title": "Name"
        },
        "surname": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Surname"
        },
        "slug": {
            "type": "string",
            "title": "Slug"
        },
        "description": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Description"
        },
        "age_class": {
            "$ref": "#/components/schemas/SubjectAgeClass"
        },
        "gender": {
            "$ref": "#/components/schemas/Gender"
        },
        "subject_type": {
            "$ref": "#/components/schemas/SubjectType"
        },
        "body_type": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/BodyType"
                },
                {
                    "type": "null"
                }
            ]
        },
        "positive_prompt": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Positive Prompt"
        },
        "negative_prompt": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Negative Prompt"
        },
        "ethnicity": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Ethnicity"
        },
        "public": {
            "type": "boolean",
            "title": "Public"
        },
        "enabled": {
            "type": "boolean",
            "title": "Enabled"
        },
        "ready": {
            "type": "boolean",
            "title": "Ready"
        },
        "lora_status": {
            "type": "string",
            "title": "Lora Status"
        },
        "lora_trigger": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Lora Trigger"
        },
        "cover_image_url": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Cover Image Url"
        },
        "portrait_image_url": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Portrait Image Url"
        },
        "data_image_urls": {
            "items": {
                "type": "string"
            },
            "type": "array",
            "title": "Data Image Urls"
        },
        "cover_image_media": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/MediaResourcePublic"
                },
                {
                    "type": "null"
                }
            ]
        },
        "portrait_image_media": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/MediaResourcePublic"
                },
                {
                    "type": "null"
                }
            ]
        },
        "data_images_media": {
            "anyOf": [
                {
                    "items": {
                        "$ref": "#/components/schemas/MediaResourcePublic"
                    },
                    "type": "array"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Data Images Media"
        },
        "portfolio_images_media": {
            "anyOf": [
                {
                    "items": {
                        "$ref": "#/components/schemas/MediaResourcePublic"
                    },
                    "type": "array"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Portfolio Images Media"
        },
        "base_images": {
            "items": {
                "$ref": "#/components/schemas/BaseImagePublic"
            },
            "type": "array",
            "title": "Base Images"
        },
        "measurements": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/SubjectMeasurementsPublic"
                },
                {
                    "type": "null"
                }
            ]
        },
        "deleted_at": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "date-time"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Deleted At"
        },
        "owner_id": {
            "type": "string",
            "format": "uuid",
            "title": "Owner Id"
        },
        "organization_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Organization Id"
        }
    },
    "type": "object",
    "required": [
        "id",
        "created_at",
        "name",
        "slug",
        "description",
        "age_class",
        "gender",
        "subject_type",
        "ethnicity",
        "public",
        "enabled",
        "ready",
        "lora_status",
        "lora_trigger",
        "cover_image_url",
        "data_image_urls",
        "owner_id"
    ],
    "title": "SubjectPublic"
}

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string",
            "input": null,
            "ctx": {}
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

PATCH /api/v1/subjects/admin/{subject_id}/lora-trigger

Update Subject Lora Trigger

Description

Update the LoRA trigger for a subject (admin only).

Input parameters

Parameter In Type Default Nullable Description
OAuth2PasswordBearer header string N/A No
subject_id path string No

Request body

{
    "lora_trigger": null
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the request body
{
    "properties": {
        "lora_trigger": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Lora Trigger"
        }
    },
    "type": "object",
    "title": "Body_update_subject_lora_trigger"
}

Responses

{
    "id": "8005c0bb-d17a-40af-8fff-f0104b53fc05",
    "created_at": "2022-04-13T15:42:05.901Z",
    "updated_at": "2022-04-13T15:42:05.901Z",
    "name": "string",
    "surname": null,
    "slug": "string",
    "description": null,
    "age_class": "newborn",
    "gender": "MALE",
    "subject_type": "AI",
    "body_type": null,
    "positive_prompt": null,
    "negative_prompt": null,
    "ethnicity": null,
    "public": true,
    "enabled": true,
    "ready": true,
    "lora_status": "string",
    "lora_trigger": null,
    "cover_image_url": null,
    "portrait_image_url": null,
    "data_image_urls": [
        "string"
    ],
    "cover_image_media": null,
    "portrait_image_media": null,
    "data_images_media": null,
    "portfolio_images_media": null,
    "base_images": [
        {
            "shot_type_id": "e76c1c1c-fba8-45c8-ba34-1b11c69a4e77",
            "shot_type_label": "string",
            "image_url": "string"
        }
    ],
    "measurements": null,
    "deleted_at": null,
    "owner_id": "bf5cdde0-f83d-4147-997e-43fb3accf492",
    "organization_id": null
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
        },
        "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
        },
        "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "Updated At"
        },
        "name": {
            "type": "string",
            "title": "Name"
        },
        "surname": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Surname"
        },
        "slug": {
            "type": "string",
            "title": "Slug"
        },
        "description": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Description"
        },
        "age_class": {
            "$ref": "#/components/schemas/SubjectAgeClass"
        },
        "gender": {
            "$ref": "#/components/schemas/Gender"
        },
        "subject_type": {
            "$ref": "#/components/schemas/SubjectType"
        },
        "body_type": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/BodyType"
                },
                {
                    "type": "null"
                }
            ]
        },
        "positive_prompt": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Positive Prompt"
        },
        "negative_prompt": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Negative Prompt"
        },
        "ethnicity": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Ethnicity"
        },
        "public": {
            "type": "boolean",
            "title": "Public"
        },
        "enabled": {
            "type": "boolean",
            "title": "Enabled"
        },
        "ready": {
            "type": "boolean",
            "title": "Ready"
        },
        "lora_status": {
            "type": "string",
            "title": "Lora Status"
        },
        "lora_trigger": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Lora Trigger"
        },
        "cover_image_url": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Cover Image Url"
        },
        "portrait_image_url": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Portrait Image Url"
        },
        "data_image_urls": {
            "items": {
                "type": "string"
            },
            "type": "array",
            "title": "Data Image Urls"
        },
        "cover_image_media": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/MediaResourcePublic"
                },
                {
                    "type": "null"
                }
            ]
        },
        "portrait_image_media": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/MediaResourcePublic"
                },
                {
                    "type": "null"
                }
            ]
        },
        "data_images_media": {
            "anyOf": [
                {
                    "items": {
                        "$ref": "#/components/schemas/MediaResourcePublic"
                    },
                    "type": "array"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Data Images Media"
        },
        "portfolio_images_media": {
            "anyOf": [
                {
                    "items": {
                        "$ref": "#/components/schemas/MediaResourcePublic"
                    },
                    "type": "array"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Portfolio Images Media"
        },
        "base_images": {
            "items": {
                "$ref": "#/components/schemas/BaseImagePublic"
            },
            "type": "array",
            "title": "Base Images"
        },
        "measurements": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/SubjectMeasurementsPublic"
                },
                {
                    "type": "null"
                }
            ]
        },
        "deleted_at": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "date-time"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Deleted At"
        },
        "owner_id": {
            "type": "string",
            "format": "uuid",
            "title": "Owner Id"
        },
        "organization_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Organization Id"
        }
    },
    "type": "object",
    "required": [
        "id",
        "created_at",
        "name",
        "slug",
        "description",
        "age_class",
        "gender",
        "subject_type",
        "ethnicity",
        "public",
        "enabled",
        "ready",
        "lora_status",
        "lora_trigger",
        "cover_image_url",
        "data_image_urls",
        "owner_id"
    ],
    "title": "SubjectPublic"
}

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string",
            "input": null,
            "ctx": {}
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

POST /api/v1/subjects/admin/{subject_id}/upload-lora

Upload Subject Lora

Description

Upload a LoRA file for a subject to the compute server. File must be a supported LoRA format (.safetensors, .ckpt, .pt, .pth, .bin) and max 100MB. The lora_trigger (trigger word) is required when uploading a file.

Input parameters

Parameter In Type Default Nullable Description
OAuth2PasswordBearer header string N/A No
subject_id path string No

Request body

{
    "file": "string",
    "lora_trigger": "string",
    "entity_type": null
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the request body
{
    "properties": {
        "file": {
            "type": "string",
            "contentMediaType": "application/octet-stream",
            "title": "File"
        },
        "lora_trigger": {
            "type": "string",
            "title": "Lora Trigger"
        },
        "entity_type": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Entity Type"
        }
    },
    "type": "object",
    "required": [
        "file",
        "lora_trigger"
    ],
    "title": "Body_upload_subject_lora"
}

Responses

{
    "id": "f0807b74-6449-4191-85d8-081a033ba62d",
    "created_at": "2022-04-13T15:42:05.901Z",
    "updated_at": "2022-04-13T15:42:05.901Z",
    "name": "string",
    "surname": null,
    "slug": "string",
    "description": null,
    "age_class": "newborn",
    "gender": "MALE",
    "subject_type": "AI",
    "body_type": null,
    "positive_prompt": null,
    "negative_prompt": null,
    "ethnicity": null,
    "public": true,
    "enabled": true,
    "ready": true,
    "lora_status": "string",
    "lora_trigger": null,
    "cover_image_url": null,
    "portrait_image_url": null,
    "data_image_urls": [
        "string"
    ],
    "cover_image_media": null,
    "portrait_image_media": null,
    "data_images_media": null,
    "portfolio_images_media": null,
    "base_images": [
        {
            "shot_type_id": "50ab6e07-05ee-4756-8fff-778d1d6c92c8",
            "shot_type_label": "string",
            "image_url": "string"
        }
    ],
    "measurements": null,
    "deleted_at": null,
    "owner_id": "9c6071d9-e548-496f-a15d-3ce8ff63318e",
    "organization_id": null
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
        },
        "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
        },
        "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "Updated At"
        },
        "name": {
            "type": "string",
            "title": "Name"
        },
        "surname": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Surname"
        },
        "slug": {
            "type": "string",
            "title": "Slug"
        },
        "description": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Description"
        },
        "age_class": {
            "$ref": "#/components/schemas/SubjectAgeClass"
        },
        "gender": {
            "$ref": "#/components/schemas/Gender"
        },
        "subject_type": {
            "$ref": "#/components/schemas/SubjectType"
        },
        "body_type": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/BodyType"
                },
                {
                    "type": "null"
                }
            ]
        },
        "positive_prompt": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Positive Prompt"
        },
        "negative_prompt": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Negative Prompt"
        },
        "ethnicity": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Ethnicity"
        },
        "public": {
            "type": "boolean",
            "title": "Public"
        },
        "enabled": {
            "type": "boolean",
            "title": "Enabled"
        },
        "ready": {
            "type": "boolean",
            "title": "Ready"
        },
        "lora_status": {
            "type": "string",
            "title": "Lora Status"
        },
        "lora_trigger": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Lora Trigger"
        },
        "cover_image_url": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Cover Image Url"
        },
        "portrait_image_url": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Portrait Image Url"
        },
        "data_image_urls": {
            "items": {
                "type": "string"
            },
            "type": "array",
            "title": "Data Image Urls"
        },
        "cover_image_media": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/MediaResourcePublic"
                },
                {
                    "type": "null"
                }
            ]
        },
        "portrait_image_media": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/MediaResourcePublic"
                },
                {
                    "type": "null"
                }
            ]
        },
        "data_images_media": {
            "anyOf": [
                {
                    "items": {
                        "$ref": "#/components/schemas/MediaResourcePublic"
                    },
                    "type": "array"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Data Images Media"
        },
        "portfolio_images_media": {
            "anyOf": [
                {
                    "items": {
                        "$ref": "#/components/schemas/MediaResourcePublic"
                    },
                    "type": "array"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Portfolio Images Media"
        },
        "base_images": {
            "items": {
                "$ref": "#/components/schemas/BaseImagePublic"
            },
            "type": "array",
            "title": "Base Images"
        },
        "measurements": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/SubjectMeasurementsPublic"
                },
                {
                    "type": "null"
                }
            ]
        },
        "deleted_at": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "date-time"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Deleted At"
        },
        "owner_id": {
            "type": "string",
            "format": "uuid",
            "title": "Owner Id"
        },
        "organization_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Organization Id"
        }
    },
    "type": "object",
    "required": [
        "id",
        "created_at",
        "name",
        "slug",
        "description",
        "age_class",
        "gender",
        "subject_type",
        "ethnicity",
        "public",
        "enabled",
        "ready",
        "lora_status",
        "lora_trigger",
        "cover_image_url",
        "data_image_urls",
        "owner_id"
    ],
    "title": "SubjectPublic"
}

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string",
            "input": null,
            "ctx": {}
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

PATCH /api/v1/subjects/admin/{subject_id}/assign-owner

Assign Subject Owner

Description

Transfer subject ownership to a different user (admin only). Optionally also assign to an organization.

Input parameters

Parameter In Type Default Nullable Description
OAuth2PasswordBearer header string N/A No
organization_id query No Organization ID to assign
subject_id path string No

Request body

{
    "id": "09cdb40c-0a16-470b-97b3-258b71ce22a2",
    "created_at": "2022-04-13T15:42:05.901Z",
    "updated_at": "2022-04-13T15:42:05.901Z",
    "new_owner_id": "ae0484a7-bcb0-409f-89af-5fb16f81522c"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the request body
{
    "properties": {
        "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
        },
        "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
        },
        "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "Updated At"
        },
        "new_owner_id": {
            "type": "string",
            "format": "uuid",
            "title": "New Owner Id"
        }
    },
    "type": "object",
    "required": [
        "new_owner_id"
    ],
    "title": "AssignOwnerRequest"
}

Responses

{
    "id": "ec9088b7-87e8-4db9-a3e3-070592b4c7be",
    "created_at": "2022-04-13T15:42:05.901Z",
    "updated_at": "2022-04-13T15:42:05.901Z",
    "name": "string",
    "surname": null,
    "slug": "string",
    "description": null,
    "age_class": "newborn",
    "gender": "MALE",
    "subject_type": "AI",
    "body_type": null,
    "positive_prompt": null,
    "negative_prompt": null,
    "ethnicity": null,
    "public": true,
    "enabled": true,
    "ready": true,
    "lora_status": "string",
    "lora_trigger": null,
    "cover_image_url": null,
    "portrait_image_url": null,
    "data_image_urls": [
        "string"
    ],
    "cover_image_media": null,
    "portrait_image_media": null,
    "data_images_media": null,
    "portfolio_images_media": null,
    "base_images": [
        {
            "shot_type_id": "d45c5eb5-ba5c-4a5c-8892-89864cc44c86",
            "shot_type_label": "string",
            "image_url": "string"
        }
    ],
    "measurements": null,
    "deleted_at": null,
    "owner_id": "b911af95-fcba-4786-b441-f13e66f9326f",
    "organization_id": null
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
        },
        "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
        },
        "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "Updated At"
        },
        "name": {
            "type": "string",
            "title": "Name"
        },
        "surname": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Surname"
        },
        "slug": {
            "type": "string",
            "title": "Slug"
        },
        "description": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Description"
        },
        "age_class": {
            "$ref": "#/components/schemas/SubjectAgeClass"
        },
        "gender": {
            "$ref": "#/components/schemas/Gender"
        },
        "subject_type": {
            "$ref": "#/components/schemas/SubjectType"
        },
        "body_type": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/BodyType"
                },
                {
                    "type": "null"
                }
            ]
        },
        "positive_prompt": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Positive Prompt"
        },
        "negative_prompt": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Negative Prompt"
        },
        "ethnicity": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Ethnicity"
        },
        "public": {
            "type": "boolean",
            "title": "Public"
        },
        "enabled": {
            "type": "boolean",
            "title": "Enabled"
        },
        "ready": {
            "type": "boolean",
            "title": "Ready"
        },
        "lora_status": {
            "type": "string",
            "title": "Lora Status"
        },
        "lora_trigger": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Lora Trigger"
        },
        "cover_image_url": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Cover Image Url"
        },
        "portrait_image_url": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Portrait Image Url"
        },
        "data_image_urls": {
            "items": {
                "type": "string"
            },
            "type": "array",
            "title": "Data Image Urls"
        },
        "cover_image_media": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/MediaResourcePublic"
                },
                {
                    "type": "null"
                }
            ]
        },
        "portrait_image_media": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/MediaResourcePublic"
                },
                {
                    "type": "null"
                }
            ]
        },
        "data_images_media": {
            "anyOf": [
                {
                    "items": {
                        "$ref": "#/components/schemas/MediaResourcePublic"
                    },
                    "type": "array"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Data Images Media"
        },
        "portfolio_images_media": {
            "anyOf": [
                {
                    "items": {
                        "$ref": "#/components/schemas/MediaResourcePublic"
                    },
                    "type": "array"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Portfolio Images Media"
        },
        "base_images": {
            "items": {
                "$ref": "#/components/schemas/BaseImagePublic"
            },
            "type": "array",
            "title": "Base Images"
        },
        "measurements": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/SubjectMeasurementsPublic"
                },
                {
                    "type": "null"
                }
            ]
        },
        "deleted_at": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "date-time"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Deleted At"
        },
        "owner_id": {
            "type": "string",
            "format": "uuid",
            "title": "Owner Id"
        },
        "organization_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Organization Id"
        }
    },
    "type": "object",
    "required": [
        "id",
        "created_at",
        "name",
        "slug",
        "description",
        "age_class",
        "gender",
        "subject_type",
        "ethnicity",
        "public",
        "enabled",
        "ready",
        "lora_status",
        "lora_trigger",
        "cover_image_url",
        "data_image_urls",
        "owner_id"
    ],
    "title": "SubjectPublic"
}

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string",
            "input": null,
            "ctx": {}
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

POST /api/v1/subjects/admin/users/{user_id}/assign-subjects

Bulk Assign Subjects

Description

Assign multiple subjects to a user (admin only). Optionally also assign to an organization.

Input parameters

Parameter In Type Default Nullable Description
OAuth2PasswordBearer header string N/A No
organization_id query No Organization ID to assign
user_id path string No

Request body

{
    "id": "b49b9eb6-d419-4771-beb3-599643bf8e3b",
    "created_at": "2022-04-13T15:42:05.901Z",
    "updated_at": "2022-04-13T15:42:05.901Z",
    "subject_ids": [
        "e345d37e-73aa-4df0-b3c7-9fddb7cb7739"
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the request body
{
    "properties": {
        "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
        },
        "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
        },
        "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "Updated At"
        },
        "subject_ids": {
            "items": {
                "type": "string",
                "format": "uuid"
            },
            "type": "array",
            "title": "Subject Ids"
        }
    },
    "type": "object",
    "required": [
        "subject_ids"
    ],
    "title": "BulkAssignSubjectsRequest"
}

Responses

{
    "message": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "message": {
            "type": "string",
            "title": "Message"
        }
    },
    "type": "object",
    "required": [
        "message"
    ],
    "title": "Message"
}

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string",
            "input": null,
            "ctx": {}
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

GET /api/v1/subjects/admin/users/{user_id}/subjects

Get User Subjects

Description

Get all subjects owned by a specific user (admin only). Optionally filter by organization.

Input parameters

Parameter In Type Default Nullable Description
OAuth2PasswordBearer header string N/A No
limit query integer 100 No
organization_id query No Organization ID to filter by
skip query integer 0 No
user_id path string No

Responses

{
    "id": "71356209-cf98-41eb-8df7-9c71ce973208",
    "created_at": "2022-04-13T15:42:05.901Z",
    "updated_at": "2022-04-13T15:42:05.901Z",
    "data": [
        {
            "id": "31bacf85-a2d2-4ffb-bc59-4c1f4698a791",
            "created_at": "2022-04-13T15:42:05.901Z",
            "updated_at": "2022-04-13T15:42:05.901Z",
            "name": "string",
            "surname": null,
            "slug": "string",
            "description": null,
            "age_class": "newborn",
            "gender": "MALE",
            "subject_type": "AI",
            "body_type": null,
            "positive_prompt": null,
            "negative_prompt": null,
            "ethnicity": null,
            "public": true,
            "enabled": true,
            "ready": true,
            "lora_status": "string",
            "lora_trigger": null,
            "cover_image_url": null,
            "portrait_image_url": null,
            "data_image_urls": [
                "string"
            ],
            "cover_image_media": null,
            "portrait_image_media": null,
            "data_images_media": null,
            "portfolio_images_media": null,
            "base_images": [
                {
                    "shot_type_id": "08937707-98ad-4cdb-9f9d-52b1eaa24f99",
                    "shot_type_label": "string",
                    "image_url": "string"
                }
            ],
            "measurements": null,
            "deleted_at": null,
            "owner_id": "538c433a-968c-4709-a795-86da932f177c",
            "organization_id": null
        }
    ],
    "count": 0
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
        },
        "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
        },
        "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "Updated At"
        },
        "data": {
            "items": {
                "$ref": "#/components/schemas/SubjectPublic"
            },
            "type": "array",
            "title": "Data"
        },
        "count": {
            "type": "integer",
            "title": "Count"
        }
    },
    "type": "object",
    "required": [
        "data",
        "count"
    ],
    "title": "SubjectsPublic"
}

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string",
            "input": null,
            "ctx": {}
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

GET /api/v1/subjects/admin/

Read Subjects Admin

Description

Retrieve all subjects with admin fields (admin only).

Input parameters

Parameter In Type Default Nullable Description
OAuth2PasswordBearer header string N/A No
body_type query No
limit query integer 100 No
organization_id query No Organization ID to filter by
skip query integer 0 No

Responses

{
    "id": "33fd35ca-08d8-4974-8775-dbbc16158e95",
    "created_at": "2022-04-13T15:42:05.901Z",
    "updated_at": "2022-04-13T15:42:05.901Z",
    "data": [
        {
            "id": "88554396-ffc6-41a5-8ca6-a5551f24daa2",
            "created_at": "2022-04-13T15:42:05.901Z",
            "updated_at": "2022-04-13T15:42:05.901Z",
            "name": "string",
            "surname": null,
            "slug": "string",
            "description": null,
            "age_class": "newborn",
            "gender": "MALE",
            "subject_type": "AI",
            "body_type": null,
            "positive_prompt": null,
            "negative_prompt": null,
            "ethnicity": null,
            "public": true,
            "enabled": true,
            "ready": true,
            "lora_status": "string",
            "lora_trigger": null,
            "cover_image_url": null,
            "portrait_image_url": null,
            "data_image_urls": [
                "string"
            ],
            "cover_image_media": null,
            "portrait_image_media": null,
            "data_images_media": null,
            "portfolio_images_media": null,
            "base_images": [
                {
                    "shot_type_id": "bfe038bd-9422-438f-bb83-0546b2295b4a",
                    "shot_type_label": "string",
                    "image_url": "string"
                }
            ],
            "measurements": null,
            "deleted_at": null,
            "owner_id": "2e35eccd-cea7-49c0-9153-458b0aa85d8b",
            "organization_id": null,
            "local_model_path": null,
            "lora_filename": null
        }
    ],
    "count": 0
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
        },
        "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
        },
        "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "Updated At"
        },
        "data": {
            "items": {
                "$ref": "#/components/schemas/SubjectAdmin"
            },
            "type": "array",
            "title": "Data"
        },
        "count": {
            "type": "integer",
            "title": "Count"
        }
    },
    "type": "object",
    "required": [
        "data",
        "count"
    ],
    "title": "SubjectsAdmin"
}

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string",
            "input": null,
            "ctx": {}
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

GET /api/v1/subjects/admin/{id}

Read Subject Admin

Description

Get subject by ID with admin fields (admin only).

Input parameters

Parameter In Type Default Nullable Description
OAuth2PasswordBearer header string N/A No
id path string No

Responses

{
    "id": "4ec66620-655c-46b4-b60b-eefe732299ed",
    "created_at": "2022-04-13T15:42:05.901Z",
    "updated_at": "2022-04-13T15:42:05.901Z",
    "name": "string",
    "surname": null,
    "slug": "string",
    "description": null,
    "age_class": "newborn",
    "gender": "MALE",
    "subject_type": "AI",
    "body_type": null,
    "positive_prompt": null,
    "negative_prompt": null,
    "ethnicity": null,
    "public": true,
    "enabled": true,
    "ready": true,
    "lora_status": "string",
    "lora_trigger": null,
    "cover_image_url": null,
    "portrait_image_url": null,
    "data_image_urls": [
        "string"
    ],
    "cover_image_media": null,
    "portrait_image_media": null,
    "data_images_media": null,
    "portfolio_images_media": null,
    "base_images": [
        {
            "shot_type_id": "e24ac49e-ee3c-4d86-9356-bd1d434d15d3",
            "shot_type_label": "string",
            "image_url": "string"
        }
    ],
    "measurements": null,
    "deleted_at": null,
    "owner_id": "293923b8-87db-4581-8ba9-7313f43117f2",
    "organization_id": null,
    "local_model_path": null,
    "lora_filename": null
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
        },
        "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
        },
        "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "Updated At"
        },
        "name": {
            "type": "string",
            "title": "Name"
        },
        "surname": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Surname"
        },
        "slug": {
            "type": "string",
            "title": "Slug"
        },
        "description": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Description"
        },
        "age_class": {
            "$ref": "#/components/schemas/SubjectAgeClass"
        },
        "gender": {
            "$ref": "#/components/schemas/Gender"
        },
        "subject_type": {
            "$ref": "#/components/schemas/SubjectType"
        },
        "body_type": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/BodyType"
                },
                {
                    "type": "null"
                }
            ]
        },
        "positive_prompt": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Positive Prompt"
        },
        "negative_prompt": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Negative Prompt"
        },
        "ethnicity": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Ethnicity"
        },
        "public": {
            "type": "boolean",
            "title": "Public"
        },
        "enabled": {
            "type": "boolean",
            "title": "Enabled"
        },
        "ready": {
            "type": "boolean",
            "title": "Ready"
        },
        "lora_status": {
            "type": "string",
            "title": "Lora Status"
        },
        "lora_trigger": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Lora Trigger"
        },
        "cover_image_url": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Cover Image Url"
        },
        "portrait_image_url": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Portrait Image Url"
        },
        "data_image_urls": {
            "items": {
                "type": "string"
            },
            "type": "array",
            "title": "Data Image Urls"
        },
        "cover_image_media": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/MediaResourcePublic"
                },
                {
                    "type": "null"
                }
            ]
        },
        "portrait_image_media": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/MediaResourcePublic"
                },
                {
                    "type": "null"
                }
            ]
        },
        "data_images_media": {
            "anyOf": [
                {
                    "items": {
                        "$ref": "#/components/schemas/MediaResourcePublic"
                    },
                    "type": "array"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Data Images Media"
        },
        "portfolio_images_media": {
            "anyOf": [
                {
                    "items": {
                        "$ref": "#/components/schemas/MediaResourcePublic"
                    },
                    "type": "array"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Portfolio Images Media"
        },
        "base_images": {
            "items": {
                "$ref": "#/components/schemas/BaseImagePublic"
            },
            "type": "array",
            "title": "Base Images"
        },
        "measurements": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/SubjectMeasurementsPublic"
                },
                {
                    "type": "null"
                }
            ]
        },
        "deleted_at": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "date-time"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Deleted At"
        },
        "owner_id": {
            "type": "string",
            "format": "uuid",
            "title": "Owner Id"
        },
        "organization_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Organization Id"
        },
        "local_model_path": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Local Model Path"
        },
        "lora_filename": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Lora Filename",
            "description": "Extract just the filename from local_model_path if it exists.",
            "readOnly": true
        }
    },
    "type": "object",
    "required": [
        "id",
        "created_at",
        "name",
        "slug",
        "description",
        "age_class",
        "gender",
        "subject_type",
        "ethnicity",
        "public",
        "enabled",
        "ready",
        "lora_status",
        "lora_trigger",
        "cover_image_url",
        "data_image_urls",
        "owner_id",
        "local_model_path",
        "lora_filename"
    ],
    "title": "SubjectAdmin"
}

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string",
            "input": null,
            "ctx": {}
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

POST /api/v1/subjects/{id}/base_images

Upload Subject Base Image

Description

Add a base image for a subject with specified shot type. Expects a JSON body with image_url (presigned URL from uploads endpoint) and shot_type_id.

Input parameters

Parameter In Type Default Nullable Description
OAuth2PasswordBearer header string N/A No
id path string No
organization_id query No

Request body

{
    "shot_type_id": "64c46c81-66b1-4721-85c6-8a7530ce5c6f",
    "image_url": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the request body
{
    "properties": {
        "shot_type_id": {
            "type": "string",
            "format": "uuid",
            "title": "Shot Type Id"
        },
        "image_url": {
            "type": "string",
            "title": "Image Url"
        }
    },
    "type": "object",
    "required": [
        "shot_type_id",
        "image_url"
    ],
    "title": "BaseImageCreate",
    "description": "Schema for creating a base image"
}

Responses

{
    "shot_type_id": "97d3cd38-0ce3-47f1-9f39-e7b4d584c4f0",
    "shot_type_label": "string",
    "image_url": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "shot_type_id": {
            "type": "string",
            "format": "uuid",
            "title": "Shot Type Id"
        },
        "shot_type_label": {
            "type": "string",
            "title": "Shot Type Label"
        },
        "image_url": {
            "type": "string",
            "title": "Image Url"
        }
    },
    "type": "object",
    "required": [
        "shot_type_id",
        "shot_type_label",
        "image_url"
    ],
    "title": "BaseImagePublic",
    "description": "Schema for base image response"
}

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string",
            "input": null,
            "ctx": {}
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

GET /api/v1/subjects/{id}/base_images

Get Subject Base Images

Description

Get all base images for a subject, optionally filtered by shot type.

Input parameters

Parameter In Type Default Nullable Description
OAuth2PasswordBearer header string N/A No
id path string No
organization_id query No
shot_type query No Filter by shot type ID

Responses

{
    "data": [
        {
            "shot_type_id": "c1c2a0e4-57ce-463d-947f-85f8312f51c7",
            "shot_type_label": "string",
            "image_url": "string"
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "data": {
            "items": {
                "$ref": "#/components/schemas/BaseImagePublic"
            },
            "type": "array",
            "title": "Data"
        }
    },
    "type": "object",
    "required": [
        "data"
    ],
    "title": "BaseImageListResponse",
    "description": "Schema for listing base images"
}

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string",
            "input": null,
            "ctx": {}
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

DELETE /api/v1/subjects/{id}/base_images

Delete Subject Base Image

Description

Delete a specific base image by URL and remove the file from filesystem.

Input parameters

Parameter In Type Default Nullable Description
OAuth2PasswordBearer header string N/A No
id path string No
organization_id query No
url query string No URL of the base image to delete

Responses

{
    "message": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "message": {
            "type": "string",
            "title": "Message"
        }
    },
    "type": "object",
    "required": [
        "message"
    ],
    "title": "Message"
}

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string",
            "input": null,
            "ctx": {}
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

POST /api/v1/subjects/base-images/upload

Upload Subject Base Images Zip

Description

Upload ZIP with base images for a subject.

When subject_id is provided the ZIP is processed against that existing subject (original behaviour). When omitted, a new subject is created from metadata.json inside the ZIP (required — returns 422 if absent).

The ZIP should contain images named after shot types (e.g., front_full_body.jpg). Returns a task object for polling progress.

Input parameters

Parameter In Type Default Nullable Description
OAuth2PasswordBearer header string N/A No
organization_id query No
subject_id query No

Request body

{
    "file": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the request body
{
    "properties": {
        "file": {
            "type": "string",
            "contentMediaType": "application/octet-stream",
            "title": "File"
        }
    },
    "type": "object",
    "required": [
        "file"
    ],
    "title": "Body_upload_subject_base_images_zip"
}

Responses

{
    "id": "620453f2-71a5-4f55-9ba9-a11d2be1ee05",
    "owner_id": "69aa91df-c838-48c0-8669-9b8bcf836fb8",
    "subject_id": "1fba45ed-660d-486c-88e2-c47f451e4962",
    "status": "PENDING",
    "progress": 0,
    "total_items": 0,
    "processed_items": 0,
    "images_processed": 0,
    "images_skipped": 0,
    "portfolio_images_processed": 0,
    "error_message": null,
    "created_at": "2022-04-13T15:42:05.901Z",
    "started_at": null,
    "completed_at": null,
    "result_data": null
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
        },
        "owner_id": {
            "type": "string",
            "format": "uuid",
            "title": "Owner Id"
        },
        "subject_id": {
            "type": "string",
            "format": "uuid",
            "title": "Subject Id"
        },
        "status": {
            "$ref": "#/components/schemas/TaskStatus-Output"
        },
        "progress": {
            "type": "integer",
            "title": "Progress"
        },
        "total_items": {
            "type": "integer",
            "title": "Total Items"
        },
        "processed_items": {
            "type": "integer",
            "title": "Processed Items"
        },
        "images_processed": {
            "type": "integer",
            "title": "Images Processed"
        },
        "images_skipped": {
            "type": "integer",
            "title": "Images Skipped"
        },
        "portfolio_images_processed": {
            "type": "integer",
            "title": "Portfolio Images Processed",
            "default": 0
        },
        "error_message": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Error Message"
        },
        "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
        },
        "started_at": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "date-time"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Started At"
        },
        "completed_at": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "date-time"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Completed At"
        },
        "result_data": {
            "anyOf": [
                {
                    "additionalProperties": true,
                    "type": "object"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Result Data"
        }
    },
    "type": "object",
    "required": [
        "id",
        "owner_id",
        "subject_id",
        "status",
        "progress",
        "total_items",
        "processed_items",
        "images_processed",
        "images_skipped",
        "created_at"
    ],
    "title": "SubjectBaseImagesUploadTaskPublic",
    "description": "Response model for subject base images upload task."
}

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string",
            "input": null,
            "ctx": {}
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

GET /api/v1/subjects/upload-tasks/{task_id}

Get Subject Base Images Upload Task

Description

Poll task status for base images upload.

Use this endpoint to check progress after uploading a ZIP file.

Input parameters

Parameter In Type Default Nullable Description
OAuth2PasswordBearer header string N/A No
task_id path string No

Responses

{
    "id": "a9bfe5d8-7e33-4520-8738-650b3c256695",
    "owner_id": "2a890577-878f-4f68-9e2b-81598f00d9c1",
    "subject_id": "353a4cb9-30e2-4e14-a278-cf9fe69702f0",
    "status": "PENDING",
    "progress": 0,
    "total_items": 0,
    "processed_items": 0,
    "images_processed": 0,
    "images_skipped": 0,
    "portfolio_images_processed": 0,
    "error_message": null,
    "created_at": "2022-04-13T15:42:05.901Z",
    "started_at": null,
    "completed_at": null,
    "result_data": null
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
        },
        "owner_id": {
            "type": "string",
            "format": "uuid",
            "title": "Owner Id"
        },
        "subject_id": {
            "type": "string",
            "format": "uuid",
            "title": "Subject Id"
        },
        "status": {
            "$ref": "#/components/schemas/TaskStatus-Output"
        },
        "progress": {
            "type": "integer",
            "title": "Progress"
        },
        "total_items": {
            "type": "integer",
            "title": "Total Items"
        },
        "processed_items": {
            "type": "integer",
            "title": "Processed Items"
        },
        "images_processed": {
            "type": "integer",
            "title": "Images Processed"
        },
        "images_skipped": {
            "type": "integer",
            "title": "Images Skipped"
        },
        "portfolio_images_processed": {
            "type": "integer",
            "title": "Portfolio Images Processed",
            "default": 0
        },
        "error_message": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Error Message"
        },
        "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
        },
        "started_at": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "date-time"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Started At"
        },
        "completed_at": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "date-time"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Completed At"
        },
        "result_data": {
            "anyOf": [
                {
                    "additionalProperties": true,
                    "type": "object"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Result Data"
        }
    },
    "type": "object",
    "required": [
        "id",
        "owner_id",
        "subject_id",
        "status",
        "progress",
        "total_items",
        "processed_items",
        "images_processed",
        "images_skipped",
        "created_at"
    ],
    "title": "SubjectBaseImagesUploadTaskPublic",
    "description": "Response model for subject base images upload task."
}

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string",
            "input": null,
            "ctx": {}
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

GET /api/v1/subjects/{subject_id}/base-images/upload-task

Get Subject Base Images Upload Task By Subject

Description

Get the latest base images upload task for a subject.

Use this endpoint when returning to a subject page to resume/check upload status. Returns the most recent task (by created_at) for this subject.

Input parameters

Parameter In Type Default Nullable Description
OAuth2PasswordBearer header string N/A No
organization_id query No
subject_id path string No

Responses

{
    "id": "655f4056-07e6-4d39-b75a-d0b4be908f5c",
    "owner_id": "c9bf4c71-c11c-4426-ac6e-7213f1026d3b",
    "subject_id": "10490f38-8091-4c85-9427-84976d1f1644",
    "status": "PENDING",
    "progress": 0,
    "total_items": 0,
    "processed_items": 0,
    "images_processed": 0,
    "images_skipped": 0,
    "portfolio_images_processed": 0,
    "error_message": null,
    "created_at": "2022-04-13T15:42:05.901Z",
    "started_at": null,
    "completed_at": null,
    "result_data": null
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
        },
        "owner_id": {
            "type": "string",
            "format": "uuid",
            "title": "Owner Id"
        },
        "subject_id": {
            "type": "string",
            "format": "uuid",
            "title": "Subject Id"
        },
        "status": {
            "$ref": "#/components/schemas/TaskStatus-Output"
        },
        "progress": {
            "type": "integer",
            "title": "Progress"
        },
        "total_items": {
            "type": "integer",
            "title": "Total Items"
        },
        "processed_items": {
            "type": "integer",
            "title": "Processed Items"
        },
        "images_processed": {
            "type": "integer",
            "title": "Images Processed"
        },
        "images_skipped": {
            "type": "integer",
            "title": "Images Skipped"
        },
        "portfolio_images_processed": {
            "type": "integer",
            "title": "Portfolio Images Processed",
            "default": 0
        },
        "error_message": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Error Message"
        },
        "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
        },
        "started_at": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "date-time"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Started At"
        },
        "completed_at": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "date-time"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Completed At"
        },
        "result_data": {
            "anyOf": [
                {
                    "additionalProperties": true,
                    "type": "object"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Result Data"
        }
    },
    "type": "object",
    "required": [
        "id",
        "owner_id",
        "subject_id",
        "status",
        "progress",
        "total_items",
        "processed_items",
        "images_processed",
        "images_skipped",
        "created_at"
    ],
    "title": "SubjectBaseImagesUploadTaskPublic",
    "description": "Response model for subject base images upload task."
}

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string",
            "input": null,
            "ctx": {}
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

styles


POST /api/v1/styles/

Create Style

Description

Create new style.

Supports both traditional image uploads (URL, base64) and MediaInput objects. For presigned URLs, the image should have been previously uploaded using the /uploads endpoint.

Input parameters

Parameter In Type Default Nullable Description
OAuth2PasswordBearer header string N/A No
organization_id query No

Request body

{
    "brand": "RetroFashion",
    "cover_image": "https://example.com/image.jpg",
    "default_lora_weight": 0.8,
    "description": "Classic vintage denim style with worn-out look",
    "name": "Vintage Denim",
    "prompt_keywords": "vintage, denim, retro, classic",
    "public": false,
    "style_category": "VINTAGE",
    "tags": [
        "vintage",
        "denim",
        "retro"
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the request body
{
    "properties": {
        "name": {
            "type": "string",
            "maxLength": 255,
            "title": "Name"
        },
        "description": {
            "anyOf": [
                {
                    "type": "string",
                    "maxLength": 1000
                },
                {
                    "type": "null"
                }
            ],
            "title": "Description"
        },
        "brand": {
            "anyOf": [
                {
                    "type": "string",
                    "maxLength": 1000
                },
                {
                    "type": "null"
                }
            ],
            "title": "Brand"
        },
        "style_category": {
            "$ref": "#/components/schemas/StyleCategory",
            "default": "OTHER"
        },
        "local_model_path": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Local Model Path"
        },
        "lora_trigger": {
            "anyOf": [
                {
                    "type": "string",
                    "maxLength": 128
                },
                {
                    "type": "null"
                }
            ],
            "title": "Lora Trigger"
        },
        "default_lora_weight": {
            "type": "number",
            "title": "Default Lora Weight",
            "default": 0.7
        },
        "prompt_keywords": {
            "anyOf": [
                {
                    "type": "string",
                    "maxLength": 1000
                },
                {
                    "type": "null"
                }
            ],
            "title": "Prompt Keywords"
        },
        "public": {
            "type": "boolean",
            "title": "Public",
            "default": false
        },
        "cover_image": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "$ref": "#/components/schemas/MediaInput"
                }
            ],
            "title": "Cover Image",
            "description": "URL or base64 string for cover image, or MediaInput object"
        },
        "data_images": {
            "anyOf": [
                {
                    "items": {
                        "anyOf": [
                            {
                                "type": "string"
                            },
                            {
                                "$ref": "#/components/schemas/MediaInput"
                            }
                        ]
                    },
                    "type": "array"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Data Images",
            "description": "List of image URLs, base64 strings, or MediaInput objects"
        },
        "tags": {
            "anyOf": [
                {
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Tags",
            "description": "List of tags for the style"
        },
        "organization_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Organization Id",
            "description": "Organization this style belongs to"
        }
    },
    "type": "object",
    "required": [
        "name",
        "cover_image"
    ],
    "title": "StyleCreate",
    "example": {
        "brand": "RetroFashion",
        "cover_image": "https://example.com/image.jpg",
        "default_lora_weight": 0.8,
        "description": "Classic vintage denim style with worn-out look",
        "name": "Vintage Denim",
        "prompt_keywords": "vintage, denim, retro, classic",
        "public": false,
        "style_category": "VINTAGE",
        "tags": [
            "vintage",
            "denim",
            "retro"
        ]
    }
}

Responses

{
    "id": "5656046a-47c2-4d00-8f28-3b052fdde481",
    "created_at": "2022-04-13T15:42:05.901Z",
    "updated_at": "2022-04-13T15:42:05.901Z",
    "name": "string",
    "slug": "string",
    "description": null,
    "brand": null,
    "style_category": "VINTAGE",
    "local_model_path": null,
    "lora_trigger": null,
    "default_lora_weight": 10.12,
    "prompt_keywords": null,
    "public": true,
    "enabled": true,
    "archived": true,
    "demo": true,
    "cover_image_url": null,
    "data_image_urls": [
        "string"
    ],
    "tags": [
        "string"
    ],
    "deleted_at": null,
    "lora_status": "string",
    "current_training_id": null,
    "training_progress": 10.12,
    "training_error": null,
    "owner_id": "6f6816da-9215-47f0-87db-192228aa65be",
    "organization_id": null,
    "cover_image_media": null,
    "data_images_media": null
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
        },
        "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
        },
        "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "Updated At"
        },
        "name": {
            "type": "string",
            "title": "Name"
        },
        "slug": {
            "type": "string",
            "title": "Slug"
        },
        "description": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Description"
        },
        "brand": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Brand"
        },
        "style_category": {
            "$ref": "#/components/schemas/StyleCategory"
        },
        "local_model_path": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Local Model Path"
        },
        "lora_trigger": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Lora Trigger"
        },
        "default_lora_weight": {
            "type": "number",
            "title": "Default Lora Weight"
        },
        "prompt_keywords": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Prompt Keywords"
        },
        "public": {
            "type": "boolean",
            "title": "Public"
        },
        "enabled": {
            "type": "boolean",
            "title": "Enabled"
        },
        "archived": {
            "type": "boolean",
            "title": "Archived"
        },
        "demo": {
            "type": "boolean",
            "title": "Demo"
        },
        "cover_image_url": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Cover Image Url"
        },
        "data_image_urls": {
            "items": {
                "type": "string"
            },
            "type": "array",
            "title": "Data Image Urls"
        },
        "tags": {
            "items": {
                "type": "string"
            },
            "type": "array",
            "title": "Tags"
        },
        "deleted_at": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "date-time"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Deleted At"
        },
        "lora_status": {
            "type": "string",
            "title": "Lora Status"
        },
        "current_training_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Current Training Id"
        },
        "training_progress": {
            "type": "number",
            "title": "Training Progress",
            "default": 0.0
        },
        "training_error": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Training Error"
        },
        "owner_id": {
            "type": "string",
            "format": "uuid",
            "title": "Owner Id"
        },
        "organization_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Organization Id"
        },
        "cover_image_media": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/MediaResourcePublic"
                },
                {
                    "type": "null"
                }
            ]
        },
        "data_images_media": {
            "anyOf": [
                {
                    "items": {
                        "$ref": "#/components/schemas/MediaResourcePublic"
                    },
                    "type": "array"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Data Images Media"
        }
    },
    "type": "object",
    "required": [
        "id",
        "created_at",
        "name",
        "slug",
        "description",
        "brand",
        "style_category",
        "local_model_path",
        "lora_trigger",
        "default_lora_weight",
        "prompt_keywords",
        "public",
        "enabled",
        "archived",
        "demo",
        "cover_image_url",
        "data_image_urls",
        "tags",
        "lora_status",
        "owner_id"
    ],
    "title": "StylePublic"
}

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string",
            "input": null,
            "ctx": {}
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

GET /api/v1/styles/

Read Styles

Description

Retrieve styles. Optionally filter by owner, category, public status, enabled status, archived status, and demo status.

When organization_id query param is provided, returns styles belonging to that organization. Without organization_id, returns only personal styles (not belonging to any organization).

Input parameters

Parameter In Type Default Nullable Description
OAuth2PasswordBearer header string N/A No
archived query No
demo query No
enabled query No
limit query integer 100 No
organization_id query No
owner_id query No
public query No
search query No
skip query integer 0 No
style_category query No

Responses

{
    "id": "1bdd12b1-ad66-45d0-a8a5-1e08040a7a5b",
    "created_at": "2022-04-13T15:42:05.901Z",
    "updated_at": "2022-04-13T15:42:05.901Z",
    "data": [
        {
            "id": "808acfaf-5667-4bcf-b3d3-6245bdac0f68",
            "created_at": "2022-04-13T15:42:05.901Z",
            "updated_at": "2022-04-13T15:42:05.901Z",
            "name": "string",
            "slug": "string",
            "description": null,
            "brand": null,
            "style_category": "VINTAGE",
            "local_model_path": null,
            "lora_trigger": null,
            "default_lora_weight": 10.12,
            "prompt_keywords": null,
            "public": true,
            "enabled": true,
            "archived": true,
            "demo": true,
            "cover_image_url": null,
            "data_image_urls": [
                "string"
            ],
            "tags": [
                "string"
            ],
            "deleted_at": null,
            "lora_status": "string",
            "current_training_id": null,
            "training_progress": 10.12,
            "training_error": null,
            "owner_id": "c04f5801-b61b-4121-b58d-61023b13abf1",
            "organization_id": null,
            "cover_image_media": null,
            "data_images_media": null
        }
    ],
    "count": 0
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
        },
        "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
        },
        "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "Updated At"
        },
        "data": {
            "items": {
                "$ref": "#/components/schemas/StylePublic"
            },
            "type": "array",
            "title": "Data"
        },
        "count": {
            "type": "integer",
            "title": "Count"
        }
    },
    "type": "object",
    "required": [
        "data",
        "count"
    ],
    "title": "StylesPublic"
}

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string",
            "input": null,
            "ctx": {}
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

GET /api/v1/styles/{id}

Read Style

Description

Get style by ID.

Input parameters

Parameter In Type Default Nullable Description
OAuth2PasswordBearer header string N/A No
id path string No
organization_id query No

Responses

{
    "id": "ac9d1a30-403e-4dab-9a09-fd6dd6904770",
    "created_at": "2022-04-13T15:42:05.901Z",
    "updated_at": "2022-04-13T15:42:05.901Z",
    "name": "string",
    "slug": "string",
    "description": null,
    "brand": null,
    "style_category": "VINTAGE",
    "local_model_path": null,
    "lora_trigger": null,
    "default_lora_weight": 10.12,
    "prompt_keywords": null,
    "public": true,
    "enabled": true,
    "archived": true,
    "demo": true,
    "cover_image_url": null,
    "data_image_urls": [
        "string"
    ],
    "tags": [
        "string"
    ],
    "deleted_at": null,
    "lora_status": "string",
    "current_training_id": null,
    "training_progress": 10.12,
    "training_error": null,
    "owner_id": "94f10e75-c7d7-4afa-983b-43e3fd6bd14a",
    "organization_id": null,
    "cover_image_media": null,
    "data_images_media": null
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
        },
        "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
        },
        "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "Updated At"
        },
        "name": {
            "type": "string",
            "title": "Name"
        },
        "slug": {
            "type": "string",
            "title": "Slug"
        },
        "description": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Description"
        },
        "brand": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Brand"
        },
        "style_category": {
            "$ref": "#/components/schemas/StyleCategory"
        },
        "local_model_path": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Local Model Path"
        },
        "lora_trigger": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Lora Trigger"
        },
        "default_lora_weight": {
            "type": "number",
            "title": "Default Lora Weight"
        },
        "prompt_keywords": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Prompt Keywords"
        },
        "public": {
            "type": "boolean",
            "title": "Public"
        },
        "enabled": {
            "type": "boolean",
            "title": "Enabled"
        },
        "archived": {
            "type": "boolean",
            "title": "Archived"
        },
        "demo": {
            "type": "boolean",
            "title": "Demo"
        },
        "cover_image_url": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Cover Image Url"
        },
        "data_image_urls": {
            "items": {
                "type": "string"
            },
            "type": "array",
            "title": "Data Image Urls"
        },
        "tags": {
            "items": {
                "type": "string"
            },
            "type": "array",
            "title": "Tags"
        },
        "deleted_at": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "date-time"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Deleted At"
        },
        "lora_status": {
            "type": "string",
            "title": "Lora Status"
        },
        "current_training_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Current Training Id"
        },
        "training_progress": {
            "type": "number",
            "title": "Training Progress",
            "default": 0.0
        },
        "training_error": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Training Error"
        },
        "owner_id": {
            "type": "string",
            "format": "uuid",
            "title": "Owner Id"
        },
        "organization_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Organization Id"
        },
        "cover_image_media": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/MediaResourcePublic"
                },
                {
                    "type": "null"
                }
            ]
        },
        "data_images_media": {
            "anyOf": [
                {
                    "items": {
                        "$ref": "#/components/schemas/MediaResourcePublic"
                    },
                    "type": "array"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Data Images Media"
        }
    },
    "type": "object",
    "required": [
        "id",
        "created_at",
        "name",
        "slug",
        "description",
        "brand",
        "style_category",
        "local_model_path",
        "lora_trigger",
        "default_lora_weight",
        "prompt_keywords",
        "public",
        "enabled",
        "archived",
        "demo",
        "cover_image_url",
        "data_image_urls",
        "tags",
        "lora_status",
        "owner_id"
    ],
    "title": "StylePublic"
}

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string",
            "input": null,
            "ctx": {}
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

PUT /api/v1/styles/{id}

Update Style

Description

Update a style.

Supports both traditional image uploads (URL, base64) and MediaInput objects. For presigned URLs, the image should have been previously uploaded using the /uploads endpoint.

Organization transfer: - To transfer a personal style to an organization: set organization_id to the target org ID - To transfer a style out of an organization: set organization_id to None (org owner only)

Input parameters

Parameter In Type Default Nullable Description
OAuth2PasswordBearer header string N/A No
id path string No
organization_id query No

Request body

{
    "brand": "New RetroFashion",
    "default_lora_weight": 0.9,
    "name": "Updated Vintage Denim",
    "public": true,
    "style_category": "VINTAGE",
    "tags": [
        "vintage",
        "denim",
        "updated"
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the request body
{
    "properties": {
        "name": {
            "anyOf": [
                {
                    "type": "string",
                    "maxLength": 255
                },
                {
                    "type": "null"
                }
            ],
            "title": "Name"
        },
        "description": {
            "anyOf": [
                {
                    "type": "string",
                    "maxLength": 1000
                },
                {
                    "type": "null"
                }
            ],
            "title": "Description"
        },
        "brand": {
            "anyOf": [
                {
                    "type": "string",
                    "maxLength": 1000
                },
                {
                    "type": "null"
                }
            ],
            "title": "Brand"
        },
        "style_category": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/StyleCategory"
                },
                {
                    "type": "null"
                }
            ]
        },
        "lora_trigger": {
            "anyOf": [
                {
                    "type": "string",
                    "maxLength": 128
                },
                {
                    "type": "null"
                }
            ],
            "title": "Lora Trigger"
        },
        "default_lora_weight": {
            "anyOf": [
                {
                    "type": "number"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Default Lora Weight"
        },
        "prompt_keywords": {
            "anyOf": [
                {
                    "type": "string",
                    "maxLength": 1000
                },
                {
                    "type": "null"
                }
            ],
            "title": "Prompt Keywords"
        },
        "public": {
            "anyOf": [
                {
                    "type": "boolean"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Public"
        },
        "enabled": {
            "anyOf": [
                {
                    "type": "boolean"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Enabled"
        },
        "archived": {
            "anyOf": [
                {
                    "type": "boolean"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Archived"
        },
        "cover_image": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "$ref": "#/components/schemas/MediaInput"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Cover Image",
            "description": "URL or base64 string for cover image, or MediaInput object"
        },
        "data_images": {
            "anyOf": [
                {
                    "items": {
                        "anyOf": [
                            {
                                "type": "string"
                            },
                            {
                                "$ref": "#/components/schemas/MediaInput"
                            }
                        ]
                    },
                    "type": "array"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Data Images",
            "description": "List of image URLs, base64 strings, or MediaInput objects"
        },
        "tags": {
            "anyOf": [
                {
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Tags",
            "description": "List of tags for the style"
        },
        "organization_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Organization Id",
            "description": "Organization to transfer this style to"
        }
    },
    "type": "object",
    "title": "StyleUpdate",
    "example": {
        "brand": "New RetroFashion",
        "default_lora_weight": 0.9,
        "name": "Updated Vintage Denim",
        "public": true,
        "style_category": "VINTAGE",
        "tags": [
            "vintage",
            "denim",
            "updated"
        ]
    }
}

Responses

{
    "id": "40434b2a-74bf-42aa-91ef-5c869c1bda22",
    "created_at": "2022-04-13T15:42:05.901Z",
    "updated_at": "2022-04-13T15:42:05.901Z",
    "name": "string",
    "slug": "string",
    "description": null,
    "brand": null,
    "style_category": "VINTAGE",
    "local_model_path": null,
    "lora_trigger": null,
    "default_lora_weight": 10.12,
    "prompt_keywords": null,
    "public": true,
    "enabled": true,
    "archived": true,
    "demo": true,
    "cover_image_url": null,
    "data_image_urls": [
        "string"
    ],
    "tags": [
        "string"
    ],
    "deleted_at": null,
    "lora_status": "string",
    "current_training_id": null,
    "training_progress": 10.12,
    "training_error": null,
    "owner_id": "0d500d72-dba3-4240-b843-da03a93b265c",
    "organization_id": null,
    "cover_image_media": null,
    "data_images_media": null
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
        },
        "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
        },
        "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "Updated At"
        },
        "name": {
            "type": "string",
            "title": "Name"
        },
        "slug": {
            "type": "string",
            "title": "Slug"
        },
        "description": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Description"
        },
        "brand": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Brand"
        },
        "style_category": {
            "$ref": "#/components/schemas/StyleCategory"
        },
        "local_model_path": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Local Model Path"
        },
        "lora_trigger": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Lora Trigger"
        },
        "default_lora_weight": {
            "type": "number",
            "title": "Default Lora Weight"
        },
        "prompt_keywords": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Prompt Keywords"
        },
        "public": {
            "type": "boolean",
            "title": "Public"
        },
        "enabled": {
            "type": "boolean",
            "title": "Enabled"
        },
        "archived": {
            "type": "boolean",
            "title": "Archived"
        },
        "demo": {
            "type": "boolean",
            "title": "Demo"
        },
        "cover_image_url": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Cover Image Url"
        },
        "data_image_urls": {
            "items": {
                "type": "string"
            },
            "type": "array",
            "title": "Data Image Urls"
        },
        "tags": {
            "items": {
                "type": "string"
            },
            "type": "array",
            "title": "Tags"
        },
        "deleted_at": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "date-time"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Deleted At"
        },
        "lora_status": {
            "type": "string",
            "title": "Lora Status"
        },
        "current_training_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Current Training Id"
        },
        "training_progress": {
            "type": "number",
            "title": "Training Progress",
            "default": 0.0
        },
        "training_error": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Training Error"
        },
        "owner_id": {
            "type": "string",
            "format": "uuid",
            "title": "Owner Id"
        },
        "organization_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Organization Id"
        },
        "cover_image_media": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/MediaResourcePublic"
                },
                {
                    "type": "null"
                }
            ]
        },
        "data_images_media": {
            "anyOf": [
                {
                    "items": {
                        "$ref": "#/components/schemas/MediaResourcePublic"
                    },
                    "type": "array"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Data Images Media"
        }
    },
    "type": "object",
    "required": [
        "id",
        "created_at",
        "name",
        "slug",
        "description",
        "brand",
        "style_category",
        "local_model_path",
        "lora_trigger",
        "default_lora_weight",
        "prompt_keywords",
        "public",
        "enabled",
        "archived",
        "demo",
        "cover_image_url",
        "data_image_urls",
        "tags",
        "lora_status",
        "owner_id"
    ],
    "title": "StylePublic"
}

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string",
            "input": null,
            "ctx": {}
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

DELETE /api/v1/styles/{id}

Delete Style

Description

Delete a style and all associated assets.

This includes: - LoRA model files on compute server - Training datasets on compute server - Generated images and related files - Media resource attachments

Input parameters

Parameter In Type Default Nullable Description
OAuth2PasswordBearer header string N/A No
id path string No
organization_id query No

Responses

{
    "message": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "message": {
            "type": "string",
            "title": "Message"
        }
    },
    "type": "object",
    "required": [
        "message"
    ],
    "title": "Message"
}

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string",
            "input": null,
            "ctx": {}
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

GET /api/v1/styles/slug/{slug}

Read Style By Slug

Description

Get style by slug.

Input parameters

Parameter In Type Default Nullable Description
OAuth2PasswordBearer header string N/A No
organization_id query No
slug path string No

Responses

{
    "id": "a87cd7ec-7a01-43ea-8aa7-7aa0d90af149",
    "created_at": "2022-04-13T15:42:05.901Z",
    "updated_at": "2022-04-13T15:42:05.901Z",
    "name": "string",
    "slug": "string",
    "description": null,
    "brand": null,
    "style_category": "VINTAGE",
    "local_model_path": null,
    "lora_trigger": null,
    "default_lora_weight": 10.12,
    "prompt_keywords": null,
    "public": true,
    "enabled": true,
    "archived": true,
    "demo": true,
    "cover_image_url": null,
    "data_image_urls": [
        "string"
    ],
    "tags": [
        "string"
    ],
    "deleted_at": null,
    "lora_status": "string",
    "current_training_id": null,
    "training_progress": 10.12,
    "training_error": null,
    "owner_id": "16b75929-fbd5-4260-bd7d-67534493e6a8",
    "organization_id": null,
    "cover_image_media": null,
    "data_images_media": null
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
        },
        "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
        },
        "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "Updated At"
        },
        "name": {
            "type": "string",
            "title": "Name"
        },
        "slug": {
            "type": "string",
            "title": "Slug"
        },
        "description": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Description"
        },
        "brand": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Brand"
        },
        "style_category": {
            "$ref": "#/components/schemas/StyleCategory"
        },
        "local_model_path": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Local Model Path"
        },
        "lora_trigger": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Lora Trigger"
        },
        "default_lora_weight": {
            "type": "number",
            "title": "Default Lora Weight"
        },
        "prompt_keywords": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Prompt Keywords"
        },
        "public": {
            "type": "boolean",
            "title": "Public"
        },
        "enabled": {
            "type": "boolean",
            "title": "Enabled"
        },
        "archived": {
            "type": "boolean",
            "title": "Archived"
        },
        "demo": {
            "type": "boolean",
            "title": "Demo"
        },
        "cover_image_url": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Cover Image Url"
        },
        "data_image_urls": {
            "items": {
                "type": "string"
            },
            "type": "array",
            "title": "Data Image Urls"
        },
        "tags": {
            "items": {
                "type": "string"
            },
            "type": "array",
            "title": "Tags"
        },
        "deleted_at": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "date-time"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Deleted At"
        },
        "lora_status": {
            "type": "string",
            "title": "Lora Status"
        },
        "current_training_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Current Training Id"
        },
        "training_progress": {
            "type": "number",
            "title": "Training Progress",
            "default": 0.0
        },
        "training_error": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Training Error"
        },
        "owner_id": {
            "type": "string",
            "format": "uuid",
            "title": "Owner Id"
        },
        "organization_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Organization Id"
        },
        "cover_image_media": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/MediaResourcePublic"
                },
                {
                    "type": "null"
                }
            ]
        },
        "data_images_media": {
            "anyOf": [
                {
                    "items": {
                        "$ref": "#/components/schemas/MediaResourcePublic"
                    },
                    "type": "array"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Data Images Media"
        }
    },
    "type": "object",
    "required": [
        "id",
        "created_at",
        "name",
        "slug",
        "description",
        "brand",
        "style_category",
        "local_model_path",
        "lora_trigger",
        "default_lora_weight",
        "prompt_keywords",
        "public",
        "enabled",
        "archived",
        "demo",
        "cover_image_url",
        "data_image_urls",
        "tags",
        "lora_status",
        "owner_id"
    ],
    "title": "StylePublic"
}

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string",
            "input": null,
            "ctx": {}
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

POST /api/v1/styles/{id}/restore

Restore Style

Description

Restore a soft-deleted style (admin only).

Input parameters

Parameter In Type Default Nullable Description
OAuth2PasswordBearer header string N/A No
id path string No

Responses

{
    "id": "f2e131af-2229-44de-aec5-9d018418eaf1",
    "created_at": "2022-04-13T15:42:05.901Z",
    "updated_at": "2022-04-13T15:42:05.901Z",
    "name": "string",
    "slug": "string",
    "description": null,
    "brand": null,
    "style_category": "VINTAGE",
    "local_model_path": null,
    "lora_trigger": null,
    "default_lora_weight": 10.12,
    "prompt_keywords": null,
    "public": true,
    "enabled": true,
    "archived": true,
    "demo": true,
    "cover_image_url": null,
    "data_image_urls": [
        "string"
    ],
    "tags": [
        "string"
    ],
    "deleted_at": null,
    "lora_status": "string",
    "current_training_id": null,
    "training_progress": 10.12,
    "training_error": null,
    "owner_id": "0781c916-5ed8-4182-b908-1a2c372cec6e",
    "organization_id": null,
    "cover_image_media": null,
    "data_images_media": null
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
        },
        "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
        },
        "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "Updated At"
        },
        "name": {
            "type": "string",
            "title": "Name"
        },
        "slug": {
            "type": "string",
            "title": "Slug"
        },
        "description": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Description"
        },
        "brand": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Brand"
        },
        "style_category": {
            "$ref": "#/components/schemas/StyleCategory"
        },
        "local_model_path": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Local Model Path"
        },
        "lora_trigger": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Lora Trigger"
        },
        "default_lora_weight": {
            "type": "number",
            "title": "Default Lora Weight"
        },
        "prompt_keywords": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Prompt Keywords"
        },
        "public": {
            "type": "boolean",
            "title": "Public"
        },
        "enabled": {
            "type": "boolean",
            "title": "Enabled"
        },
        "archived": {
            "type": "boolean",
            "title": "Archived"
        },
        "demo": {
            "type": "boolean",
            "title": "Demo"
        },
        "cover_image_url": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Cover Image Url"
        },
        "data_image_urls": {
            "items": {
                "type": "string"
            },
            "type": "array",
            "title": "Data Image Urls"
        },
        "tags": {
            "items": {
                "type": "string"
            },
            "type": "array",
            "title": "Tags"
        },
        "deleted_at": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "date-time"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Deleted At"
        },
        "lora_status": {
            "type": "string",
            "title": "Lora Status"
        },
        "current_training_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Current Training Id"
        },
        "training_progress": {
            "type": "number",
            "title": "Training Progress",
            "default": 0.0
        },
        "training_error": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Training Error"
        },
        "owner_id": {
            "type": "string",
            "format": "uuid",
            "title": "Owner Id"
        },
        "organization_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Organization Id"
        },
        "cover_image_media": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/MediaResourcePublic"
                },
                {
                    "type": "null"
                }
            ]
        },
        "data_images_media": {
            "anyOf": [
                {
                    "items": {
                        "$ref": "#/components/schemas/MediaResourcePublic"
                    },
                    "type": "array"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Data Images Media"
        }
    },
    "type": "object",
    "required": [
        "id",
        "created_at",
        "name",
        "slug",
        "description",
        "brand",
        "style_category",
        "local_model_path",
        "lora_trigger",
        "default_lora_weight",
        "prompt_keywords",
        "public",
        "enabled",
        "archived",
        "demo",
        "cover_image_url",
        "data_image_urls",
        "tags",
        "lora_status",
        "owner_id"
    ],
    "title": "StylePublic"
}

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string",
            "input": null,
            "ctx": {}
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

PUT /api/v1/styles/{id}/archive

Archive Style

Description

Archive a style.

Input parameters

Parameter In Type Default Nullable Description
OAuth2PasswordBearer header string N/A No
id path string No
organization_id query No

Responses

{
    "id": "d8d8fdc9-64fe-4e07-9840-25b31b5be661",
    "created_at": "2022-04-13T15:42:05.901Z",
    "updated_at": "2022-04-13T15:42:05.901Z",
    "name": "string",
    "slug": "string",
    "description": null,
    "brand": null,
    "style_category": "VINTAGE",
    "local_model_path": null,
    "lora_trigger": null,
    "default_lora_weight": 10.12,
    "prompt_keywords": null,
    "public": true,
    "enabled": true,
    "archived": true,
    "demo": true,
    "cover_image_url": null,
    "data_image_urls": [
        "string"
    ],
    "tags": [
        "string"
    ],
    "deleted_at": null,
    "lora_status": "string",
    "current_training_id": null,
    "training_progress": 10.12,
    "training_error": null,
    "owner_id": "4bca799b-c721-4273-8bcd-0f36562fc0e0",
    "organization_id": null,
    "cover_image_media": null,
    "data_images_media": null
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
        },
        "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
        },
        "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "Updated At"
        },
        "name": {
            "type": "string",
            "title": "Name"
        },
        "slug": {
            "type": "string",
            "title": "Slug"
        },
        "description": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Description"
        },
        "brand": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Brand"
        },
        "style_category": {
            "$ref": "#/components/schemas/StyleCategory"
        },
        "local_model_path": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Local Model Path"
        },
        "lora_trigger": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Lora Trigger"
        },
        "default_lora_weight": {
            "type": "number",
            "title": "Default Lora Weight"
        },
        "prompt_keywords": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Prompt Keywords"
        },
        "public": {
            "type": "boolean",
            "title": "Public"
        },
        "enabled": {
            "type": "boolean",
            "title": "Enabled"
        },
        "archived": {
            "type": "boolean",
            "title": "Archived"
        },
        "demo": {
            "type": "boolean",
            "title": "Demo"
        },
        "cover_image_url": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Cover Image Url"
        },
        "data_image_urls": {
            "items": {
                "type": "string"
            },
            "type": "array",
            "title": "Data Image Urls"
        },
        "tags": {
            "items": {
                "type": "string"
            },
            "type": "array",
            "title": "Tags"
        },
        "deleted_at": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "date-time"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Deleted At"
        },
        "lora_status": {
            "type": "string",
            "title": "Lora Status"
        },
        "current_training_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Current Training Id"
        },
        "training_progress": {
            "type": "number",
            "title": "Training Progress",
            "default": 0.0
        },
        "training_error": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Training Error"
        },
        "owner_id": {
            "type": "string",
            "format": "uuid",
            "title": "Owner Id"
        },
        "organization_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Organization Id"
        },
        "cover_image_media": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/MediaResourcePublic"
                },
                {
                    "type": "null"
                }
            ]
        },
        "data_images_media": {
            "anyOf": [
                {
                    "items": {
                        "$ref": "#/components/schemas/MediaResourcePublic"
                    },
                    "type": "array"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Data Images Media"
        }
    },
    "type": "object",
    "required": [
        "id",
        "created_at",
        "name",
        "slug",
        "description",
        "brand",
        "style_category",
        "local_model_path",
        "lora_trigger",
        "default_lora_weight",
        "prompt_keywords",
        "public",
        "enabled",
        "archived",
        "demo",
        "cover_image_url",
        "data_image_urls",
        "tags",
        "lora_status",
        "owner_id"
    ],
    "title": "StylePublic"
}

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string",
            "input": null,
            "ctx": {}
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

PUT /api/v1/styles/{id}/unarchive

Unarchive Style

Description

Unarchive a style.

Input parameters

Parameter In Type Default Nullable Description
OAuth2PasswordBearer header string N/A No
id path string No
organization_id query No

Responses

{
    "id": "2af9653c-0116-45a9-9175-b939868cb94f",
    "created_at": "2022-04-13T15:42:05.901Z",
    "updated_at": "2022-04-13T15:42:05.901Z",
    "name": "string",
    "slug": "string",
    "description": null,
    "brand": null,
    "style_category": "VINTAGE",
    "local_model_path": null,
    "lora_trigger": null,
    "default_lora_weight": 10.12,
    "prompt_keywords": null,
    "public": true,
    "enabled": true,
    "archived": true,
    "demo": true,
    "cover_image_url": null,
    "data_image_urls": [
        "string"
    ],
    "tags": [
        "string"
    ],
    "deleted_at": null,
    "lora_status": "string",
    "current_training_id": null,
    "training_progress": 10.12,
    "training_error": null,
    "owner_id": "c7569eda-e1f0-4aff-8eee-4e1ed0b4570d",
    "organization_id": null,
    "cover_image_media": null,
    "data_images_media": null
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
        },
        "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
        },
        "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "Updated At"
        },
        "name": {
            "type": "string",
            "title": "Name"
        },
        "slug": {
            "type": "string",
            "title": "Slug"
        },
        "description": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Description"
        },
        "brand": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Brand"
        },
        "style_category": {
            "$ref": "#/components/schemas/StyleCategory"
        },
        "local_model_path": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Local Model Path"
        },
        "lora_trigger": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Lora Trigger"
        },
        "default_lora_weight": {
            "type": "number",
            "title": "Default Lora Weight"
        },
        "prompt_keywords": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Prompt Keywords"
        },
        "public": {
            "type": "boolean",
            "title": "Public"
        },
        "enabled": {
            "type": "boolean",
            "title": "Enabled"
        },
        "archived": {
            "type": "boolean",
            "title": "Archived"
        },
        "demo": {
            "type": "boolean",
            "title": "Demo"
        },
        "cover_image_url": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Cover Image Url"
        },
        "data_image_urls": {
            "items": {
                "type": "string"
            },
            "type": "array",
            "title": "Data Image Urls"
        },
        "tags": {
            "items": {
                "type": "string"
            },
            "type": "array",
            "title": "Tags"
        },
        "deleted_at": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "date-time"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Deleted At"
        },
        "lora_status": {
            "type": "string",
            "title": "Lora Status"
        },
        "current_training_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Current Training Id"
        },
        "training_progress": {
            "type": "number",
            "title": "Training Progress",
            "default": 0.0
        },
        "training_error": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Training Error"
        },
        "owner_id": {
            "type": "string",
            "format": "uuid",
            "title": "Owner Id"
        },
        "organization_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Organization Id"
        },
        "cover_image_media": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/MediaResourcePublic"
                },
                {
                    "type": "null"
                }
            ]
        },
        "data_images_media": {
            "anyOf": [
                {
                    "items": {
                        "$ref": "#/components/schemas/MediaResourcePublic"
                    },
                    "type": "array"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Data Images Media"
        }
    },
    "type": "object",
    "required": [
        "id",
        "created_at",
        "name",
        "slug",
        "description",
        "brand",
        "style_category",
        "local_model_path",
        "lora_trigger",
        "default_lora_weight",
        "prompt_keywords",
        "public",
        "enabled",
        "archived",
        "demo",
        "cover_image_url",
        "data_image_urls",
        "tags",
        "lora_status",
        "owner_id"
    ],
    "title": "StylePublic"
}

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string",
            "input": null,
            "ctx": {}
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

GET /api/v1/styles/admin/

Read Styles Admin

Description

Retrieve all styles with admin fields (admin only).

Input parameters

Parameter In Type Default Nullable Description
OAuth2PasswordBearer header string N/A No
limit query integer 100 No
organization_id query No Organization ID to filter by
skip query integer 0 No

Responses

{
    "id": "ca556abb-4825-40c8-abbf-f8e0d4ab8814",
    "created_at": "2022-04-13T15:42:05.901Z",
    "updated_at": "2022-04-13T15:42:05.901Z",
    "data": [
        {
            "id": "43408481-c73c-4426-b18f-31067ce420a2",
            "created_at": "2022-04-13T15:42:05.901Z",
            "updated_at": "2022-04-13T15:42:05.901Z",
            "name": "string",
            "slug": "string",
            "description": null,
            "brand": null,
            "style_category": "VINTAGE",
            "local_model_path": null,
            "lora_trigger": null,
            "default_lora_weight": 10.12,
            "prompt_keywords": null,
            "public": true,
            "enabled": true,
            "archived": true,
            "demo": true,
            "cover_image_url": null,
            "data_image_urls": [
                "string"
            ],
            "tags": [
                "string"
            ],
            "deleted_at": null,
            "lora_status": "string",
            "current_training_id": null,
            "training_progress": 10.12,
            "training_error": null,
            "owner_id": "ac32d7e6-7319-4cc5-ba89-cf96515c236d",
            "organization_id": null,
            "cover_image_media": null,
            "data_images_media": null
        }
    ],
    "count": 0
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
        },
        "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
        },
        "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "Updated At"
        },
        "data": {
            "items": {
                "$ref": "#/components/schemas/StyleAdmin"
            },
            "type": "array",
            "title": "Data"
        },
        "count": {
            "type": "integer",
            "title": "Count"
        }
    },
    "type": "object",
    "required": [
        "data",
        "count"
    ],
    "title": "StylesAdmin"
}

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string",
            "input": null,
            "ctx": {}
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

GET /api/v1/styles/admin/{id}

Read Style Admin

Description

Get style by ID with admin fields (admin only).

Input parameters

Parameter In Type Default Nullable Description
OAuth2PasswordBearer header string N/A No
id path string No

Responses

{
    "id": "97d3172c-96bc-4ff1-9b67-0df724a0013b",
    "created_at": "2022-04-13T15:42:05.901Z",
    "updated_at": "2022-04-13T15:42:05.901Z",
    "name": "string",
    "slug": "string",
    "description": null,
    "brand": null,
    "style_category": "VINTAGE",
    "local_model_path": null,
    "lora_trigger": null,
    "default_lora_weight": 10.12,
    "prompt_keywords": null,
    "public": true,
    "enabled": true,
    "archived": true,
    "demo": true,
    "cover_image_url": null,
    "data_image_urls": [
        "string"
    ],
    "tags": [
        "string"
    ],
    "deleted_at": null,
    "lora_status": "string",
    "current_training_id": null,
    "training_progress": 10.12,
    "training_error": null,
    "owner_id": "c318de8d-0299-45d0-943b-1cee7d18ddaa",
    "organization_id": null,
    "cover_image_media": null,
    "data_images_media": null
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
        },
        "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
        },
        "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "Updated At"
        },
        "name": {
            "type": "string",
            "title": "Name"
        },
        "slug": {
            "type": "string",
            "title": "Slug"
        },
        "description": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Description"
        },
        "brand": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Brand"
        },
        "style_category": {
            "$ref": "#/components/schemas/StyleCategory"
        },
        "local_model_path": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Local Model Path"
        },
        "lora_trigger": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Lora Trigger"
        },
        "default_lora_weight": {
            "type": "number",
            "title": "Default Lora Weight"
        },
        "prompt_keywords": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Prompt Keywords"
        },
        "public": {
            "type": "boolean",
            "title": "Public"
        },
        "enabled": {
            "type": "boolean",
            "title": "Enabled"
        },
        "archived": {
            "type": "boolean",
            "title": "Archived"
        },
        "demo": {
            "type": "boolean",
            "title": "Demo"
        },
        "cover_image_url": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Cover Image Url"
        },
        "data_image_urls": {
            "items": {
                "type": "string"
            },
            "type": "array",
            "title": "Data Image Urls"
        },
        "tags": {
            "items": {
                "type": "string"
            },
            "type": "array",
            "title": "Tags"
        },
        "deleted_at": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "date-time"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Deleted At"
        },
        "lora_status": {
            "type": "string",
            "title": "Lora Status"
        },
        "current_training_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Current Training Id"
        },
        "training_progress": {
            "type": "number",
            "title": "Training Progress",
            "default": 0.0
        },
        "training_error": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Training Error"
        },
        "owner_id": {
            "type": "string",
            "format": "uuid",
            "title": "Owner Id"
        },
        "organization_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Organization Id"
        },
        "cover_image_media": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/MediaResourcePublic"
                },
                {
                    "type": "null"
                }
            ]
        },
        "data_images_media": {
            "anyOf": [
                {
                    "items": {
                        "$ref": "#/components/schemas/MediaResourcePublic"
                    },
                    "type": "array"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Data Images Media"
        }
    },
    "type": "object",
    "required": [
        "id",
        "created_at",
        "name",
        "slug",
        "description",
        "brand",
        "style_category",
        "local_model_path",
        "lora_trigger",
        "default_lora_weight",
        "prompt_keywords",
        "public",
        "enabled",
        "archived",
        "demo",
        "cover_image_url",
        "data_image_urls",
        "tags",
        "lora_status",
        "owner_id"
    ],
    "title": "StyleAdmin",
    "description": "Style model with admin fields."
}

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string",
            "input": null,
            "ctx": {}
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

PATCH /api/v1/styles/admin/{style_id}/assign-owner

Assign Style Owner

Description

Assign a style to a different owner (admin only). Optionally also assign to an organization.

Input parameters

Parameter In Type Default Nullable Description
OAuth2PasswordBearer header string N/A No
organization_id query No Organization ID to assign
style_id path string No

Request body

{
    "id": "677a556b-eecb-4ed7-913a-815eb07b140e",
    "created_at": "2022-04-13T15:42:05.901Z",
    "updated_at": "2022-04-13T15:42:05.901Z",
    "new_owner_id": "28ef2cd9-2bb7-4b8f-8481-37d07ed6bcfe"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the request body
{
    "properties": {
        "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
        },
        "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
        },
        "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "Updated At"
        },
        "new_owner_id": {
            "type": "string",
            "format": "uuid",
            "title": "New Owner Id"
        }
    },
    "type": "object",
    "required": [
        "new_owner_id"
    ],
    "title": "AssignOwnerRequest"
}

Responses

{
    "id": "e0ca759a-c63a-4f9f-969e-ec54fdea6450",
    "created_at": "2022-04-13T15:42:05.901Z",
    "updated_at": "2022-04-13T15:42:05.901Z",
    "name": "string",
    "slug": "string",
    "description": null,
    "brand": null,
    "style_category": "VINTAGE",
    "local_model_path": null,
    "lora_trigger": null,
    "default_lora_weight": 10.12,
    "prompt_keywords": null,
    "public": true,
    "enabled": true,
    "archived": true,
    "demo": true,
    "cover_image_url": null,
    "data_image_urls": [
        "string"
    ],
    "tags": [
        "string"
    ],
    "deleted_at": null,
    "lora_status": "string",
    "current_training_id": null,
    "training_progress": 10.12,
    "training_error": null,
    "owner_id": "b3baefc5-832e-416b-ad2d-f9db88f3db73",
    "organization_id": null,
    "cover_image_media": null,
    "data_images_media": null
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
        },
        "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
        },
        "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "Updated At"
        },
        "name": {
            "type": "string",
            "title": "Name"
        },
        "slug": {
            "type": "string",
            "title": "Slug"
        },
        "description": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Description"
        },
        "brand": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Brand"
        },
        "style_category": {
            "$ref": "#/components/schemas/StyleCategory"
        },
        "local_model_path": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Local Model Path"
        },
        "lora_trigger": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Lora Trigger"
        },
        "default_lora_weight": {
            "type": "number",
            "title": "Default Lora Weight"
        },
        "prompt_keywords": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Prompt Keywords"
        },
        "public": {
            "type": "boolean",
            "title": "Public"
        },
        "enabled": {
            "type": "boolean",
            "title": "Enabled"
        },
        "archived": {
            "type": "boolean",
            "title": "Archived"
        },
        "demo": {
            "type": "boolean",
            "title": "Demo"
        },
        "cover_image_url": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Cover Image Url"
        },
        "data_image_urls": {
            "items": {
                "type": "string"
            },
            "type": "array",
            "title": "Data Image Urls"
        },
        "tags": {
            "items": {
                "type": "string"
            },
            "type": "array",
            "title": "Tags"
        },
        "deleted_at": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "date-time"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Deleted At"
        },
        "lora_status": {
            "type": "string",
            "title": "Lora Status"
        },
        "current_training_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Current Training Id"
        },
        "training_progress": {
            "type": "number",
            "title": "Training Progress",
            "default": 0.0
        },
        "training_error": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Training Error"
        },
        "owner_id": {
            "type": "string",
            "format": "uuid",
            "title": "Owner Id"
        },
        "organization_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Organization Id"
        },
        "cover_image_media": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/MediaResourcePublic"
                },
                {
                    "type": "null"
                }
            ]
        },
        "data_images_media": {
            "anyOf": [
                {
                    "items": {
                        "$ref": "#/components/schemas/MediaResourcePublic"
                    },
                    "type": "array"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Data Images Media"
        }
    },
    "type": "object",
    "required": [
        "id",
        "created_at",
        "name",
        "slug",
        "description",
        "brand",
        "style_category",
        "local_model_path",
        "lora_trigger",
        "default_lora_weight",
        "prompt_keywords",
        "public",
        "enabled",
        "archived",
        "demo",
        "cover_image_url",
        "data_image_urls",
        "tags",
        "lora_status",
        "owner_id"
    ],
    "title": "StylePublic"
}

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string",
            "input": null,
            "ctx": {}
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

PATCH /api/v1/styles/admin/{style_id}/lora-trigger

Update Style Lora Trigger

Description

Update the LoRA trigger word for a style (admin only). If no lora_trigger is provided, it will be cleared (set to None).

Input parameters

Parameter In Type Default Nullable Description
OAuth2PasswordBearer header string N/A No
style_id path string No

Request body

{
    "lora_trigger": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the request body
{
    "properties": {
        "lora_trigger": {
            "type": "string",
            "title": "Lora Trigger"
        }
    },
    "type": "object",
    "title": "Body_update_style_lora_trigger"
}

Responses

{
    "id": "d685b351-1dad-4431-83d7-d957068defb7",
    "created_at": "2022-04-13T15:42:05.901Z",
    "updated_at": "2022-04-13T15:42:05.901Z",
    "name": "string",
    "slug": "string",
    "description": null,
    "brand": null,
    "style_category": "VINTAGE",
    "local_model_path": null,
    "lora_trigger": null,
    "default_lora_weight": 10.12,
    "prompt_keywords": null,
    "public": true,
    "enabled": true,
    "archived": true,
    "demo": true,
    "cover_image_url": null,
    "data_image_urls": [
        "string"
    ],
    "tags": [
        "string"
    ],
    "deleted_at": null,
    "lora_status": "string",
    "current_training_id": null,
    "training_progress": 10.12,
    "training_error": null,
    "owner_id": "d3833604-949d-4524-9f7d-e1a3a4f4a59f",
    "organization_id": null,
    "cover_image_media": null,
    "data_images_media": null
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
        },
        "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
        },
        "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "Updated At"
        },
        "name": {
            "type": "string",
            "title": "Name"
        },
        "slug": {
            "type": "string",
            "title": "Slug"
        },
        "description": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Description"
        },
        "brand": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Brand"
        },
        "style_category": {
            "$ref": "#/components/schemas/StyleCategory"
        },
        "local_model_path": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Local Model Path"
        },
        "lora_trigger": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Lora Trigger"
        },
        "default_lora_weight": {
            "type": "number",
            "title": "Default Lora Weight"
        },
        "prompt_keywords": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Prompt Keywords"
        },
        "public": {
            "type": "boolean",
            "title": "Public"
        },
        "enabled": {
            "type": "boolean",
            "title": "Enabled"
        },
        "archived": {
            "type": "boolean",
            "title": "Archived"
        },
        "demo": {
            "type": "boolean",
            "title": "Demo"
        },
        "cover_image_url": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Cover Image Url"
        },
        "data_image_urls": {
            "items": {
                "type": "string"
            },
            "type": "array",
            "title": "Data Image Urls"
        },
        "tags": {
            "items": {
                "type": "string"
            },
            "type": "array",
            "title": "Tags"
        },
        "deleted_at": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "date-time"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Deleted At"
        },
        "lora_status": {
            "type": "string",
            "title": "Lora Status"
        },
        "current_training_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Current Training Id"
        },
        "training_progress": {
            "type": "number",
            "title": "Training Progress",
            "default": 0.0
        },
        "training_error": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Training Error"
        },
        "owner_id": {
            "type": "string",
            "format": "uuid",
            "title": "Owner Id"
        },
        "organization_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Organization Id"
        },
        "cover_image_media": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/MediaResourcePublic"
                },
                {
                    "type": "null"
                }
            ]
        },
        "data_images_media": {
            "anyOf": [
                {
                    "items": {
                        "$ref": "#/components/schemas/MediaResourcePublic"
                    },
                    "type": "array"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Data Images Media"
        }
    },
    "type": "object",
    "required": [
        "id",
        "created_at",
        "name",
        "slug",
        "description",
        "brand",
        "style_category",
        "local_model_path",
        "lora_trigger",
        "default_lora_weight",
        "prompt_keywords",
        "public",
        "enabled",
        "archived",
        "demo",
        "cover_image_url",
        "data_image_urls",
        "tags",
        "lora_status",
        "owner_id"
    ],
    "title": "StylePublic"
}

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string",
            "input": null,
            "ctx": {}
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

POST /api/v1/styles/admin/{style_id}/upload-lora

Upload Style Lora

Description

Upload a pre-trained LoRA file for a style (admin only).

Input parameters

Parameter In Type Default Nullable Description
OAuth2PasswordBearer header string N/A No
style_id path string No

Request body

{
    "file": "string",
    "lora_trigger": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the request body
{
    "properties": {
        "file": {
            "type": "string",
            "contentMediaType": "application/octet-stream",
            "title": "File"
        },
        "lora_trigger": {
            "type": "string",
            "title": "Lora Trigger"
        }
    },
    "type": "object",
    "required": [
        "file",
        "lora_trigger"
    ],
    "title": "Body_upload_style_lora"
}

Responses

{
    "id": "76ea3707-3e62-4d3b-9b0f-ae6c2ec8b306",
    "created_at": "2022-04-13T15:42:05.901Z",
    "updated_at": "2022-04-13T15:42:05.901Z",
    "name": "string",
    "slug": "string",
    "description": null,
    "brand": null,
    "style_category": "VINTAGE",
    "local_model_path": null,
    "lora_trigger": null,
    "default_lora_weight": 10.12,
    "prompt_keywords": null,
    "public": true,
    "enabled": true,
    "archived": true,
    "demo": true,
    "cover_image_url": null,
    "data_image_urls": [
        "string"
    ],
    "tags": [
        "string"
    ],
    "deleted_at": null,
    "lora_status": "string",
    "current_training_id": null,
    "training_progress": 10.12,
    "training_error": null,
    "owner_id": "347b5dad-6dbb-479c-bd41-e6fe397f2965",
    "organization_id": null,
    "cover_image_media": null,
    "data_images_media": null
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
        },
        "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
        },
        "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "Updated At"
        },
        "name": {
            "type": "string",
            "title": "Name"
        },
        "slug": {
            "type": "string",
            "title": "Slug"
        },
        "description": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Description"
        },
        "brand": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Brand"
        },
        "style_category": {
            "$ref": "#/components/schemas/StyleCategory"
        },
        "local_model_path": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Local Model Path"
        },
        "lora_trigger": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Lora Trigger"
        },
        "default_lora_weight": {
            "type": "number",
            "title": "Default Lora Weight"
        },
        "prompt_keywords": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Prompt Keywords"
        },
        "public": {
            "type": "boolean",
            "title": "Public"
        },
        "enabled": {
            "type": "boolean",
            "title": "Enabled"
        },
        "archived": {
            "type": "boolean",
            "title": "Archived"
        },
        "demo": {
            "type": "boolean",
            "title": "Demo"
        },
        "cover_image_url": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Cover Image Url"
        },
        "data_image_urls": {
            "items": {
                "type": "string"
            },
            "type": "array",
            "title": "Data Image Urls"
        },
        "tags": {
            "items": {
                "type": "string"
            },
            "type": "array",
            "title": "Tags"
        },
        "deleted_at": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "date-time"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Deleted At"
        },
        "lora_status": {
            "type": "string",
            "title": "Lora Status"
        },
        "current_training_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Current Training Id"
        },
        "training_progress": {
            "type": "number",
            "title": "Training Progress",
            "default": 0.0
        },
        "training_error": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Training Error"
        },
        "owner_id": {
            "type": "string",
            "format": "uuid",
            "title": "Owner Id"
        },
        "organization_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Organization Id"
        },
        "cover_image_media": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/MediaResourcePublic"
                },
                {
                    "type": "null"
                }
            ]
        },
        "data_images_media": {
            "anyOf": [
                {
                    "items": {
                        "$ref": "#/components/schemas/MediaResourcePublic"
                    },
                    "type": "array"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Data Images Media"
        }
    },
    "type": "object",
    "required": [
        "id",
        "created_at",
        "name",
        "slug",
        "description",
        "brand",
        "style_category",
        "local_model_path",
        "lora_trigger",
        "default_lora_weight",
        "prompt_keywords",
        "public",
        "enabled",
        "archived",
        "demo",
        "cover_image_url",
        "data_image_urls",
        "tags",
        "lora_status",
        "owner_id"
    ],
    "title": "StylePublic"
}

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string",
            "input": null,
            "ctx": {}
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

shot-types


POST /api/v1/shot-types/

Create Shot Type

Description

Create new shot type.

Supports both traditional image uploads (URL, base64) and presigned URLs. For presigned URLs, the image should have been previously uploaded using the /uploads endpoint.

Input parameters

Parameter In Type Default Nullable Description
OAuth2PasswordBearer header string N/A No
organization_id query No

Request body

{
    "file_naming_convention": "{product_name}_front_upper",
    "framing": "upper_body",
    "name": "front_upper_body",
    "shot_type_prompt_instruction": "Capture the front view from waist up",
    "shot_type_ref_image_url": "https://example.com/reference.jpg",
    "view_angle": "front"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the request body
{
    "properties": {
        "name": {
            "type": "string",
            "title": "Name"
        },
        "view_angle": {
            "$ref": "#/components/schemas/ViewAngle"
        },
        "framing": {
            "$ref": "#/components/schemas/ShotTypeFraming"
        },
        "shot_type_ref_image_url": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Shot Type Ref Image Url"
        },
        "shot_type_prompt_instruction": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Shot Type Prompt Instruction"
        },
        "file_naming_convention": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "File Naming Convention"
        },
        "reference_image_url": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "$ref": "#/components/schemas/MediaInput"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Reference Image Url"
        },
        "prompt": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Prompt"
        },
        "prompt_builder_section": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Prompt Builder Section"
        },
        "core_focus": {
            "type": "boolean",
            "title": "Core Focus",
            "default": false
        },
        "default_shot_type": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/DefaultShotTypes"
                },
                {
                    "type": "null"
                }
            ]
        },
        "margins": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Margins"
        },
        "owner_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Owner Id"
        },
        "public": {
            "type": "boolean",
            "title": "Public",
            "default": true
        },
        "organization_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Organization Id"
        }
    },
    "type": "object",
    "required": [
        "name",
        "view_angle",
        "framing"
    ],
    "title": "ShotTypeCreate",
    "description": "Schema for creating a ShotType",
    "example": {
        "file_naming_convention": "{product_name}_front_upper",
        "framing": "upper_body",
        "name": "front_upper_body",
        "shot_type_prompt_instruction": "Capture the front view from waist up",
        "shot_type_ref_image_url": "https://example.com/reference.jpg",
        "view_angle": "front"
    }
}

Responses

{
    "name": "string",
    "view_angle": "front",
    "framing": "full_body",
    "shot_type_ref_image_url": null,
    "shot_type_prompt_instruction": null,
    "file_naming_convention": null,
    "reference_image_url": null,
    "prompt": null,
    "prompt_builder_section": null,
    "core_focus": true,
    "default_shot_type": null,
    "margins": null,
    "owner_id": null,
    "public": true,
    "organization_id": null,
    "id": "0979d328-ca15-4a1f-9821-44d8de863014",
    "created_at": "2022-04-13T15:42:05.901Z",
    "updated_at": "2022-04-13T15:42:05.901Z",
    "deleted_at": null,
    "reference_image": null
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "name": {
            "type": "string",
            "title": "Name"
        },
        "view_angle": {
            "$ref": "#/components/schemas/ViewAngle"
        },
        "framing": {
            "$ref": "#/components/schemas/ShotTypeFraming"
        },
        "shot_type_ref_image_url": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Shot Type Ref Image Url"
        },
        "shot_type_prompt_instruction": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Shot Type Prompt Instruction"
        },
        "file_naming_convention": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "File Naming Convention"
        },
        "reference_image_url": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "$ref": "#/components/schemas/MediaInput"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Reference Image Url"
        },
        "prompt": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Prompt"
        },
        "prompt_builder_section": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Prompt Builder Section"
        },
        "core_focus": {
            "type": "boolean",
            "title": "Core Focus",
            "default": false
        },
        "default_shot_type": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/DefaultShotTypes"
                },
                {
                    "type": "null"
                }
            ]
        },
        "margins": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Margins"
        },
        "owner_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Owner Id"
        },
        "public": {
            "type": "boolean",
            "title": "Public",
            "default": true
        },
        "organization_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Organization Id"
        },
        "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
        },
        "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
        },
        "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "Updated At"
        },
        "deleted_at": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "date-time"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Deleted At"
        },
        "reference_image": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/MediaResourcePublic"
                },
                {
                    "type": "null"
                }
            ]
        }
    },
    "type": "object",
    "required": [
        "name",
        "view_angle",
        "framing",
        "id",
        "created_at",
        "updated_at"
    ],
    "title": "ShotTypePublic",
    "description": "Public schema for ShotType"
}

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string",
            "input": null,
            "ctx": {}
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

GET /api/v1/shot-types/

Read Shot Types

Description

Retrieve shot types. Optionally filter by view angle, framing, or search term.

When organization_id query param is provided, returns shot types belonging to that organization. Without organization_id, returns only personal shot types (not belonging to any organization).

Admin-only: owner_id filter returns public shot types + shot types owned by that user.

Input parameters

Parameter In Type Default Nullable Description
OAuth2PasswordBearer header string N/A No
framing query No
include_public query No
limit query integer 100 No
organization_id query No
owner_id query No
public query No
search query No
skip query integer 0 No
view_angle query No

Responses

{
    "data": [
        {
            "name": "string",
            "view_angle": "front",
            "framing": "full_body",
            "shot_type_ref_image_url": null,
            "shot_type_prompt_instruction": null,
            "file_naming_convention": null,
            "reference_image_url": null,
            "prompt": null,
            "prompt_builder_section": null,
            "core_focus": true,
            "default_shot_type": null,
            "margins": null,
            "owner_id": null,
            "public": true,
            "organization_id": null,
            "id": "19fc0961-7564-4570-885e-80a735b62fba",
            "created_at": "2022-04-13T15:42:05.901Z",
            "updated_at": "2022-04-13T15:42:05.901Z",
            "deleted_at": null,
            "reference_image": null
        }
    ],
    "count": 0
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "data": {
            "items": {
                "$ref": "#/components/schemas/ShotTypePublic"
            },
            "type": "array",
            "title": "Data"
        },
        "count": {
            "type": "integer",
            "title": "Count"
        }
    },
    "type": "object",
    "required": [
        "data",
        "count"
    ],
    "title": "ShotTypesPublic",
    "description": "Collection of ShotTypePublic objects"
}

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string",
            "input": null,
            "ctx": {}
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

GET /api/v1/shot-types/{id}

Read Shot Type

Description

Get shot type by ID.

Input parameters

Parameter In Type Default Nullable Description
OAuth2PasswordBearer header string N/A No
id path string No
organization_id query No

Responses

{
    "name": "string",
    "view_angle": "front",
    "framing": "full_body",
    "shot_type_ref_image_url": null,
    "shot_type_prompt_instruction": null,
    "file_naming_convention": null,
    "reference_image_url": null,
    "prompt": null,
    "prompt_builder_section": null,
    "core_focus": true,
    "default_shot_type": null,
    "margins": null,
    "owner_id": null,
    "public": true,
    "organization_id": null,
    "id": "98f33805-87bc-4149-8c30-89055a812f2d",
    "created_at": "2022-04-13T15:42:05.901Z",
    "updated_at": "2022-04-13T15:42:05.901Z",
    "deleted_at": null,
    "reference_image": null
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "name": {
            "type": "string",
            "title": "Name"
        },
        "view_angle": {
            "$ref": "#/components/schemas/ViewAngle"
        },
        "framing": {
            "$ref": "#/components/schemas/ShotTypeFraming"
        },
        "shot_type_ref_image_url": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Shot Type Ref Image Url"
        },
        "shot_type_prompt_instruction": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Shot Type Prompt Instruction"
        },
        "file_naming_convention": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "File Naming Convention"
        },
        "reference_image_url": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "$ref": "#/components/schemas/MediaInput"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Reference Image Url"
        },
        "prompt": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Prompt"
        },
        "prompt_builder_section": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Prompt Builder Section"
        },
        "core_focus": {
            "type": "boolean",
            "title": "Core Focus",
            "default": false
        },
        "default_shot_type": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/DefaultShotTypes"
                },
                {
                    "type": "null"
                }
            ]
        },
        "margins": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Margins"
        },
        "owner_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Owner Id"
        },
        "public": {
            "type": "boolean",
            "title": "Public",
            "default": true
        },
        "organization_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Organization Id"
        },
        "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
        },
        "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
        },
        "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "Updated At"
        },
        "deleted_at": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "date-time"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Deleted At"
        },
        "reference_image": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/MediaResourcePublic"
                },
                {
                    "type": "null"
                }
            ]
        }
    },
    "type": "object",
    "required": [
        "name",
        "view_angle",
        "framing",
        "id",
        "created_at",
        "updated_at"
    ],
    "title": "ShotTypePublic",
    "description": "Public schema for ShotType"
}

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string",
            "input": null,
            "ctx": {}
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

PUT /api/v1/shot-types/{id}

Update Shot Type

Description

Update a shot type.

Supports both traditional image uploads (URL, base64) and presigned URLs. For presigned URLs, the image should have been previously uploaded using the /uploads endpoint.

Input parameters

Parameter In Type Default Nullable Description
OAuth2PasswordBearer header string N/A No
id path string No
organization_id query No

Request body

{
    "name": "front_upper_body_updated",
    "shot_type_prompt_instruction": "Updated instructions for front view",
    "view_angle": "front"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the request body
{
    "properties": {
        "name": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Name"
        },
        "view_angle": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/ViewAngle"
                },
                {
                    "type": "null"
                }
            ]
        },
        "framing": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/ShotTypeFraming"
                },
                {
                    "type": "null"
                }
            ]
        },
        "shot_type_ref_image_url": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Shot Type Ref Image Url"
        },
        "shot_type_prompt_instruction": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Shot Type Prompt Instruction"
        },
        "file_naming_convention": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "File Naming Convention"
        },
        "reference_image_url": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "$ref": "#/components/schemas/MediaInput"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Reference Image Url"
        },
        "prompt": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Prompt"
        },
        "prompt_builder_section": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Prompt Builder Section"
        },
        "core_focus": {
            "anyOf": [
                {
                    "type": "boolean"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Core Focus"
        },
        "default_shot_type": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/DefaultShotTypes"
                },
                {
                    "type": "null"
                }
            ]
        },
        "margins": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Margins"
        },
        "owner_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Owner Id"
        },
        "public": {
            "anyOf": [
                {
                    "type": "boolean"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Public",
            "default": true
        },
        "organization_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Organization Id"
        }
    },
    "type": "object",
    "title": "ShotTypeUpdate",
    "description": "Schema for updating a ShotType",
    "example": {
        "name": "front_upper_body_updated",
        "shot_type_prompt_instruction": "Updated instructions for front view",
        "view_angle": "front"
    }
}

Responses

{
    "name": "string",
    "view_angle": "front",
    "framing": "full_body",
    "shot_type_ref_image_url": null,
    "shot_type_prompt_instruction": null,
    "file_naming_convention": null,
    "reference_image_url": null,
    "prompt": null,
    "prompt_builder_section": null,
    "core_focus": true,
    "default_shot_type": null,
    "margins": null,
    "owner_id": null,
    "public": true,
    "organization_id": null,
    "id": "bae261ee-3567-47c6-bbe7-1c7b3f7419e8",
    "created_at": "2022-04-13T15:42:05.901Z",
    "updated_at": "2022-04-13T15:42:05.901Z",
    "deleted_at": null,
    "reference_image": null
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "name": {
            "type": "string",
            "title": "Name"
        },
        "view_angle": {
            "$ref": "#/components/schemas/ViewAngle"
        },
        "framing": {
            "$ref": "#/components/schemas/ShotTypeFraming"
        },
        "shot_type_ref_image_url": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Shot Type Ref Image Url"
        },
        "shot_type_prompt_instruction": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Shot Type Prompt Instruction"
        },
        "file_naming_convention": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "File Naming Convention"
        },
        "reference_image_url": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "$ref": "#/components/schemas/MediaInput"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Reference Image Url"
        },
        "prompt": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Prompt"
        },
        "prompt_builder_section": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Prompt Builder Section"
        },
        "core_focus": {
            "type": "boolean",
            "title": "Core Focus",
            "default": false
        },
        "default_shot_type": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/DefaultShotTypes"
                },
                {
                    "type": "null"
                }
            ]
        },
        "margins": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Margins"
        },
        "owner_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Owner Id"
        },
        "public": {
            "type": "boolean",
            "title": "Public",
            "default": true
        },
        "organization_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Organization Id"
        },
        "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
        },
        "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
        },
        "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "Updated At"
        },
        "deleted_at": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "date-time"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Deleted At"
        },
        "reference_image": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/MediaResourcePublic"
                },
                {
                    "type": "null"
                }
            ]
        }
    },
    "type": "object",
    "required": [
        "name",
        "view_angle",
        "framing",
        "id",
        "created_at",
        "updated_at"
    ],
    "title": "ShotTypePublic",
    "description": "Public schema for ShotType"
}

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string",
            "input": null,
            "ctx": {}
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

DELETE /api/v1/shot-types/{id}

Delete Shot Type

Description

Delete a shot type.

Input parameters

Parameter In Type Default Nullable Description
OAuth2PasswordBearer header string N/A No
id path string No
organization_id query No

Responses

{
    "message": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "message": {
            "type": "string",
            "title": "Message"
        }
    },
    "type": "object",
    "required": [
        "message"
    ],
    "title": "Message"
}

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string",
            "input": null,
            "ctx": {}
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

GET /api/v1/shot-types/name/{name}

Read Shot Type By Name

Description

Get shot type by name.

Input parameters

Parameter In Type Default Nullable Description
OAuth2PasswordBearer header string N/A No
name path string No
organization_id query No

Responses

{
    "name": "string",
    "view_angle": "front",
    "framing": "full_body",
    "shot_type_ref_image_url": null,
    "shot_type_prompt_instruction": null,
    "file_naming_convention": null,
    "reference_image_url": null,
    "prompt": null,
    "prompt_builder_section": null,
    "core_focus": true,
    "default_shot_type": null,
    "margins": null,
    "owner_id": null,
    "public": true,
    "organization_id": null,
    "id": "7d3ec10b-b6fb-434c-8526-0c51f1bdb223",
    "created_at": "2022-04-13T15:42:05.901Z",
    "updated_at": "2022-04-13T15:42:05.901Z",
    "deleted_at": null,
    "reference_image": null
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "name": {
            "type": "string",
            "title": "Name"
        },
        "view_angle": {
            "$ref": "#/components/schemas/ViewAngle"
        },
        "framing": {
            "$ref": "#/components/schemas/ShotTypeFraming"
        },
        "shot_type_ref_image_url": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Shot Type Ref Image Url"
        },
        "shot_type_prompt_instruction": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Shot Type Prompt Instruction"
        },
        "file_naming_convention": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "File Naming Convention"
        },
        "reference_image_url": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "$ref": "#/components/schemas/MediaInput"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Reference Image Url"
        },
        "prompt": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Prompt"
        },
        "prompt_builder_section": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Prompt Builder Section"
        },
        "core_focus": {
            "type": "boolean",
            "title": "Core Focus",
            "default": false
        },
        "default_shot_type": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/DefaultShotTypes"
                },
                {
                    "type": "null"
                }
            ]
        },
        "margins": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Margins"
        },
        "owner_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Owner Id"
        },
        "public": {
            "type": "boolean",
            "title": "Public",
            "default": true
        },
        "organization_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Organization Id"
        },
        "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
        },
        "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
        },
        "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "Updated At"
        },
        "deleted_at": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "date-time"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Deleted At"
        },
        "reference_image": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/MediaResourcePublic"
                },
                {
                    "type": "null"
                }
            ]
        }
    },
    "type": "object",
    "required": [
        "name",
        "view_angle",
        "framing",
        "id",
        "created_at",
        "updated_at"
    ],
    "title": "ShotTypePublic",
    "description": "Public schema for ShotType"
}

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string",
            "input": null,
            "ctx": {}
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

POST /api/v1/shot-types/{id}/restore

Restore Shot Type

Description

Restore a soft-deleted shot type (admin only).

Input parameters

Parameter In Type Default Nullable Description
OAuth2PasswordBearer header string N/A No
id path string No

Responses

{
    "name": "string",
    "view_angle": "front",
    "framing": "full_body",
    "shot_type_ref_image_url": null,
    "shot_type_prompt_instruction": null,
    "file_naming_convention": null,
    "reference_image_url": null,
    "prompt": null,
    "prompt_builder_section": null,
    "core_focus": true,
    "default_shot_type": null,
    "margins": null,
    "owner_id": null,
    "public": true,
    "organization_id": null,
    "id": "075f0e92-e45c-4758-b9cf-6e2321bde807",
    "created_at": "2022-04-13T15:42:05.901Z",
    "updated_at": "2022-04-13T15:42:05.901Z",
    "deleted_at": null,
    "reference_image": null
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "name": {
            "type": "string",
            "title": "Name"
        },
        "view_angle": {
            "$ref": "#/components/schemas/ViewAngle"
        },
        "framing": {
            "$ref": "#/components/schemas/ShotTypeFraming"
        },
        "shot_type_ref_image_url": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Shot Type Ref Image Url"
        },
        "shot_type_prompt_instruction": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Shot Type Prompt Instruction"
        },
        "file_naming_convention": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "File Naming Convention"
        },
        "reference_image_url": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "$ref": "#/components/schemas/MediaInput"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Reference Image Url"
        },
        "prompt": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Prompt"
        },
        "prompt_builder_section": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Prompt Builder Section"
        },
        "core_focus": {
            "type": "boolean",
            "title": "Core Focus",
            "default": false
        },
        "default_shot_type": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/DefaultShotTypes"
                },
                {
                    "type": "null"
                }
            ]
        },
        "margins": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Margins"
        },
        "owner_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Owner Id"
        },
        "public": {
            "type": "boolean",
            "title": "Public",
            "default": true
        },
        "organization_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Organization Id"
        },
        "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
        },
        "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
        },
        "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "Updated At"
        },
        "deleted_at": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "date-time"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Deleted At"
        },
        "reference_image": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/MediaResourcePublic"
                },
                {
                    "type": "null"
                }
            ]
        }
    },
    "type": "object",
    "required": [
        "name",
        "view_angle",
        "framing",
        "id",
        "created_at",
        "updated_at"
    ],
    "title": "ShotTypePublic",
    "description": "Public schema for ShotType"
}

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string",
            "input": null,
            "ctx": {}
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

background-presets


POST /api/v1/background-presets/

Create Background Preset

Description

Create new background preset with per-framing images.

Input parameters

Parameter In Type Default Nullable Description
OAuth2PasswordBearer header string N/A No
organization_id query No

Request body

{
    "framings": [
        {
            "image": "https://example.com/backgrounds/white.jpg"
        }
    ],
    "name": "Studio White Background",
    "strategy": "DEFAULT"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the request body
{
    "properties": {
        "name": {
            "type": "string",
            "maxLength": 255,
            "title": "Name"
        },
        "framings": {
            "items": {
                "$ref": "#/components/schemas/BackgroundPresetFramingCreate"
            },
            "type": "array",
            "minItems": 1,
            "title": "Framings",
            "description": "At least one framing entry is required"
        },
        "owner_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Owner Id"
        },
        "strategy": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/BackgroundFixStrategy"
                },
                {
                    "type": "null"
                }
            ],
            "description": "Strategy for background fix processing",
            "default": "DEFAULT"
        },
        "organization_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Organization Id",
            "description": "Organization this preset belongs to"
        }
    },
    "type": "object",
    "required": [
        "name",
        "framings"
    ],
    "title": "BackgroundPresetCreate",
    "example": {
        "framings": [
            {
                "image": "https://example.com/backgrounds/white.jpg"
            }
        ],
        "name": "Studio White Background",
        "strategy": "DEFAULT"
    }
}

Responses

{
    "id": "481e548f-2bee-47c5-91b2-c9bd72184783",
    "created_at": "2022-04-13T15:42:05.901Z",
    "updated_at": "2022-04-13T15:42:05.901Z",
    "name": "string",
    "owner_id": "13746571-73fc-4720-a219-a4ea8446763b",
    "organization_id": null,
    "framings": [
        {
            "id": "4f428a73-b988-48df-83eb-428c7dff5d71",
            "created_at": "2022-04-13T15:42:05.901Z",
            "updated_at": "2022-04-13T15:42:05.901Z",
            "framing": null,
            "image_url": null,
            "image_media": null
        }
    ],
    "cover_image_url": null,
    "strategy": null,
    "deleted_at": null
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
        },
        "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
        },
        "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "Updated At"
        },
        "name": {
            "type": "string",
            "title": "Name"
        },
        "owner_id": {
            "type": "string",
            "format": "uuid",
            "title": "Owner Id"
        },
        "organization_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Organization Id"
        },
        "framings": {
            "items": {
                "$ref": "#/components/schemas/BackgroundPresetFramingPublic"
            },
            "type": "array",
            "title": "Framings",
            "default": []
        },
        "cover_image_url": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Cover Image Url"
        },
        "strategy": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/BackgroundFixStrategy"
                },
                {
                    "type": "null"
                }
            ]
        },
        "deleted_at": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "date-time"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Deleted At"
        }
    },
    "type": "object",
    "required": [
        "id",
        "created_at",
        "updated_at",
        "name",
        "owner_id",
        "strategy"
    ],
    "title": "BackgroundPresetPublic"
}

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string",
            "input": null,
            "ctx": {}
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

GET /api/v1/background-presets/

Read Background Presets

Description

Retrieve background presets.

Input parameters

Parameter In Type Default Nullable Description
OAuth2PasswordBearer header string N/A No
limit query integer 100 No
organization_id query No
owner_id query No
skip query integer 0 No

Responses

{
    "data": [
        {
            "id": "d34911c2-be5b-49f2-ae8f-0d84e8583d1d",
            "created_at": "2022-04-13T15:42:05.901Z",
            "updated_at": "2022-04-13T15:42:05.901Z",
            "name": "string",
            "owner_id": "11882ab1-ccc5-4cf0-9d1a-699baf0f836d",
            "organization_id": null,
            "framings": [
                {
                    "id": "7c8a7e0c-5cbe-422e-853d-4f9438d08946",
                    "created_at": "2022-04-13T15:42:05.901Z",
                    "updated_at": "2022-04-13T15:42:05.901Z",
                    "framing": null,
                    "image_url": null,
                    "image_media": null
                }
            ],
            "cover_image_url": null,
            "strategy": null,
            "deleted_at": null
        }
    ],
    "count": 0
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "data": {
            "items": {
                "$ref": "#/components/schemas/BackgroundPresetPublic"
            },
            "type": "array",
            "title": "Data"
        },
        "count": {
            "type": "integer",
            "title": "Count"
        }
    },
    "type": "object",
    "required": [
        "data",
        "count"
    ],
    "title": "BackgroundPresetsPublic"
}

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string",
            "input": null,
            "ctx": {}
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

GET /api/v1/background-presets/{id}

Read Background Preset

Description

Get background preset by ID.

Input parameters

Parameter In Type Default Nullable Description
OAuth2PasswordBearer header string N/A No
id path string No
organization_id query No

Responses

{
    "id": "d7b5cc34-95fb-484d-a6d3-ee9f625a2cda",
    "created_at": "2022-04-13T15:42:05.901Z",
    "updated_at": "2022-04-13T15:42:05.901Z",
    "name": "string",
    "owner_id": "0748e75d-96cb-47c3-9992-d7e41855298c",
    "organization_id": null,
    "framings": [
        {
            "id": "e5cbc5f5-f6d7-4637-a9cd-9bda88dbdd70",
            "created_at": "2022-04-13T15:42:05.901Z",
            "updated_at": "2022-04-13T15:42:05.901Z",
            "framing": null,
            "image_url": null,
            "image_media": null
        }
    ],
    "cover_image_url": null,
    "strategy": null,
    "deleted_at": null
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
        },
        "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
        },
        "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "Updated At"
        },
        "name": {
            "type": "string",
            "title": "Name"
        },
        "owner_id": {
            "type": "string",
            "format": "uuid",
            "title": "Owner Id"
        },
        "organization_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Organization Id"
        },
        "framings": {
            "items": {
                "$ref": "#/components/schemas/BackgroundPresetFramingPublic"
            },
            "type": "array",
            "title": "Framings",
            "default": []
        },
        "cover_image_url": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Cover Image Url"
        },
        "strategy": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/BackgroundFixStrategy"
                },
                {
                    "type": "null"
                }
            ]
        },
        "deleted_at": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "date-time"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Deleted At"
        }
    },
    "type": "object",
    "required": [
        "id",
        "created_at",
        "updated_at",
        "name",
        "owner_id",
        "strategy"
    ],
    "title": "BackgroundPresetPublic"
}

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string",
            "input": null,
            "ctx": {}
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

PUT /api/v1/background-presets/{id}

Update Background Preset

Description

Update a background preset.

Input parameters

Parameter In Type Default Nullable Description
OAuth2PasswordBearer header string N/A No
id path string No
organization_id query No

Request body

{
    "framings": [
        {
            "framing": "full_body",
            "image": "https://example.com/backgrounds/full.jpg"
        },
        {
            "image": "https://example.com/backgrounds/fallback.jpg"
        }
    ],
    "name": "Updated Background Name",
    "strategy": "OVS"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the request body
{
    "properties": {
        "name": {
            "anyOf": [
                {
                    "type": "string",
                    "maxLength": 255
                },
                {
                    "type": "null"
                }
            ],
            "title": "Name"
        },
        "framings": {
            "anyOf": [
                {
                    "items": {
                        "$ref": "#/components/schemas/BackgroundPresetFramingCreate"
                    },
                    "type": "array"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Framings",
            "description": "Full-replace framings list. None = no change."
        },
        "owner_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Owner Id"
        },
        "strategy": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/BackgroundFixStrategy"
                },
                {
                    "type": "null"
                }
            ],
            "description": "Strategy for background fix processing"
        },
        "organization_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Organization Id",
            "description": "Organization to transfer this preset to"
        }
    },
    "type": "object",
    "title": "BackgroundPresetUpdate",
    "example": {
        "framings": [
            {
                "framing": "full_body",
                "image": "https://example.com/backgrounds/full.jpg"
            },
            {
                "image": "https://example.com/backgrounds/fallback.jpg"
            }
        ],
        "name": "Updated Background Name",
        "strategy": "OVS"
    }
}

Responses

{
    "id": "5997cbde-23ac-4c6c-818d-0c31d5de26ba",
    "created_at": "2022-04-13T15:42:05.901Z",
    "updated_at": "2022-04-13T15:42:05.901Z",
    "name": "string",
    "owner_id": "b0a2cef3-9593-4fdb-89d7-fd6ce6f710ee",
    "organization_id": null,
    "framings": [
        {
            "id": "bf423e30-af62-43f9-a61d-d92de30c090c",
            "created_at": "2022-04-13T15:42:05.901Z",
            "updated_at": "2022-04-13T15:42:05.901Z",
            "framing": null,
            "image_url": null,
            "image_media": null
        }
    ],
    "cover_image_url": null,
    "strategy": null,
    "deleted_at": null
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
        },
        "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
        },
        "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "Updated At"
        },
        "name": {
            "type": "string",
            "title": "Name"
        },
        "owner_id": {
            "type": "string",
            "format": "uuid",
            "title": "Owner Id"
        },
        "organization_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Organization Id"
        },
        "framings": {
            "items": {
                "$ref": "#/components/schemas/BackgroundPresetFramingPublic"
            },
            "type": "array",
            "title": "Framings",
            "default": []
        },
        "cover_image_url": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Cover Image Url"
        },
        "strategy": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/BackgroundFixStrategy"
                },
                {
                    "type": "null"
                }
            ]
        },
        "deleted_at": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "date-time"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Deleted At"
        }
    },
    "type": "object",
    "required": [
        "id",
        "created_at",
        "updated_at",
        "name",
        "owner_id",
        "strategy"
    ],
    "title": "BackgroundPresetPublic"
}

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string",
            "input": null,
            "ctx": {}
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

DELETE /api/v1/background-presets/{id}

Delete Background Preset

Description

Delete a background preset.

Input parameters

Parameter In Type Default Nullable Description
OAuth2PasswordBearer header string N/A No
id path string No
organization_id query No

Responses

{
    "message": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "message": {
            "type": "string",
            "title": "Message"
        }
    },
    "type": "object",
    "required": [
        "message"
    ],
    "title": "Message"
}

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string",
            "input": null,
            "ctx": {}
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

POST /api/v1/background-presets/{id}/restore

Restore Background Preset

Description

Restore a soft-deleted background preset (admin only).

Input parameters

Parameter In Type Default Nullable Description
OAuth2PasswordBearer header string N/A No
id path string No

Responses

{
    "id": "b8dbb0fe-815f-4cd3-aeac-b02da4a489fe",
    "created_at": "2022-04-13T15:42:05.901Z",
    "updated_at": "2022-04-13T15:42:05.901Z",
    "name": "string",
    "owner_id": "504ba41f-7375-4fa6-b1d3-a3810f9eeafd",
    "organization_id": null,
    "framings": [
        {
            "id": "a9a3e3f5-acb1-47bf-a2bb-22e67afb0dc5",
            "created_at": "2022-04-13T15:42:05.901Z",
            "updated_at": "2022-04-13T15:42:05.901Z",
            "framing": null,
            "image_url": null,
            "image_media": null
        }
    ],
    "cover_image_url": null,
    "strategy": null,
    "deleted_at": null
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
        },
        "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
        },
        "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "Updated At"
        },
        "name": {
            "type": "string",
            "title": "Name"
        },
        "owner_id": {
            "type": "string",
            "format": "uuid",
            "title": "Owner Id"
        },
        "organization_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Organization Id"
        },
        "framings": {
            "items": {
                "$ref": "#/components/schemas/BackgroundPresetFramingPublic"
            },
            "type": "array",
            "title": "Framings",
            "default": []
        },
        "cover_image_url": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Cover Image Url"
        },
        "strategy": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/BackgroundFixStrategy"
                },
                {
                    "type": "null"
                }
            ]
        },
        "deleted_at": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "date-time"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Deleted At"
        }
    },
    "type": "object",
    "required": [
        "id",
        "created_at",
        "updated_at",
        "name",
        "owner_id",
        "strategy"
    ],
    "title": "BackgroundPresetPublic"
}

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string",
            "input": null,
            "ctx": {}
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

resolution-presets


POST /api/v1/resolution-presets/

Create Resolution Preset

Description

Create new resolution preset.

Input parameters

Parameter In Type Default Nullable Description
OAuth2PasswordBearer header string N/A No
organization_id query No

Request body

{
    "height": 1080,
    "name": "Full HD",
    "width": 1920
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the request body
{
    "properties": {
        "name": {
            "type": "string",
            "maxLength": 255,
            "title": "Name"
        },
        "width": {
            "type": "integer",
            "exclusiveMinimum": 0.0,
            "title": "Width",
            "description": "Width in pixels"
        },
        "height": {
            "type": "integer",
            "exclusiveMinimum": 0.0,
            "title": "Height",
            "description": "Height in pixels"
        },
        "owner_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Owner Id"
        },
        "organization_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Organization Id",
            "description": "Organization this preset belongs to"
        }
    },
    "type": "object",
    "required": [
        "name",
        "width",
        "height"
    ],
    "title": "ResolutionPresetCreate",
    "example": {
        "height": 1080,
        "name": "Full HD",
        "width": 1920
    }
}

Responses

{
    "id": "fe61d79f-cc71-49d8-a809-accaded4fe49",
    "created_at": "2022-04-13T15:42:05.901Z",
    "updated_at": "2022-04-13T15:42:05.901Z",
    "name": "string",
    "owner_id": "425b01f6-24bf-4c49-a206-5c1b37c65473",
    "organization_id": null,
    "width": 0,
    "height": 0,
    "deleted_at": null
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
        },
        "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
        },
        "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "Updated At"
        },
        "name": {
            "type": "string",
            "title": "Name"
        },
        "owner_id": {
            "type": "string",
            "format": "uuid",
            "title": "Owner Id"
        },
        "organization_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Organization Id"
        },
        "width": {
            "type": "integer",
            "title": "Width"
        },
        "height": {
            "type": "integer",
            "title": "Height"
        },
        "deleted_at": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "date-time"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Deleted At"
        }
    },
    "type": "object",
    "required": [
        "id",
        "created_at",
        "updated_at",
        "name",
        "owner_id",
        "width",
        "height"
    ],
    "title": "ResolutionPresetPublic"
}

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string",
            "input": null,
            "ctx": {}
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

GET /api/v1/resolution-presets/

Read Resolution Presets

Description

Retrieve resolution presets.

When organization_id query param is provided, returns presets belonging to that organization. Without organization_id, returns only personal presets (not belonging to any organization).

Input parameters

Parameter In Type Default Nullable Description
OAuth2PasswordBearer header string N/A No
limit query integer 100 No
organization_id query No
owner_id query No
skip query integer 0 No

Responses

{
    "data": [
        {
            "id": "500c5fdd-887b-4561-8214-02d346c75bb1",
            "created_at": "2022-04-13T15:42:05.901Z",
            "updated_at": "2022-04-13T15:42:05.901Z",
            "name": "string",
            "owner_id": "cd795a45-d8ed-4871-92fe-e52f45956097",
            "organization_id": null,
            "width": 0,
            "height": 0,
            "deleted_at": null
        }
    ],
    "count": 0
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "data": {
            "items": {
                "$ref": "#/components/schemas/ResolutionPresetPublic"
            },
            "type": "array",
            "title": "Data"
        },
        "count": {
            "type": "integer",
            "title": "Count"
        }
    },
    "type": "object",
    "required": [
        "data",
        "count"
    ],
    "title": "ResolutionPresetsPublic"
}

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string",
            "input": null,
            "ctx": {}
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

GET /api/v1/resolution-presets/{id}

Read Resolution Preset

Description

Get resolution preset by ID.

Input parameters

Parameter In Type Default Nullable Description
OAuth2PasswordBearer header string N/A No
id path string No
organization_id query No

Responses

{
    "id": "c7998564-c0ec-40db-b120-5cbebcee3f30",
    "created_at": "2022-04-13T15:42:05.901Z",
    "updated_at": "2022-04-13T15:42:05.901Z",
    "name": "string",
    "owner_id": "c36d6300-1ddd-462c-b1d4-ca6bd7abdc80",
    "organization_id": null,
    "width": 0,
    "height": 0,
    "deleted_at": null
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
        },
        "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
        },
        "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "Updated At"
        },
        "name": {
            "type": "string",
            "title": "Name"
        },
        "owner_id": {
            "type": "string",
            "format": "uuid",
            "title": "Owner Id"
        },
        "organization_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Organization Id"
        },
        "width": {
            "type": "integer",
            "title": "Width"
        },
        "height": {
            "type": "integer",
            "title": "Height"
        },
        "deleted_at": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "date-time"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Deleted At"
        }
    },
    "type": "object",
    "required": [
        "id",
        "created_at",
        "updated_at",
        "name",
        "owner_id",
        "width",
        "height"
    ],
    "title": "ResolutionPresetPublic"
}

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string",
            "input": null,
            "ctx": {}
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

PUT /api/v1/resolution-presets/{id}

Update Resolution Preset

Description

Update a resolution preset.

Input parameters

Parameter In Type Default Nullable Description
OAuth2PasswordBearer header string N/A No
id path string No
organization_id query No

Request body

{
    "height": 720,
    "name": "Updated HD",
    "width": 1280
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the request body
{
    "properties": {
        "name": {
            "anyOf": [
                {
                    "type": "string",
                    "maxLength": 255
                },
                {
                    "type": "null"
                }
            ],
            "title": "Name"
        },
        "width": {
            "anyOf": [
                {
                    "type": "integer",
                    "exclusiveMinimum": 0.0
                },
                {
                    "type": "null"
                }
            ],
            "title": "Width",
            "description": "Width in pixels"
        },
        "height": {
            "anyOf": [
                {
                    "type": "integer",
                    "exclusiveMinimum": 0.0
                },
                {
                    "type": "null"
                }
            ],
            "title": "Height",
            "description": "Height in pixels"
        },
        "owner_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Owner Id"
        },
        "organization_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Organization Id",
            "description": "Organization to transfer this preset to"
        }
    },
    "type": "object",
    "title": "ResolutionPresetUpdate",
    "example": {
        "height": 720,
        "name": "Updated HD",
        "width": 1280
    }
}

Responses

{
    "id": "6077248b-f2f7-41e3-acc5-37adac2a8a6b",
    "created_at": "2022-04-13T15:42:05.901Z",
    "updated_at": "2022-04-13T15:42:05.901Z",
    "name": "string",
    "owner_id": "08cdd2bf-c629-44dd-844e-28e4f878760c",
    "organization_id": null,
    "width": 0,
    "height": 0,
    "deleted_at": null
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
        },
        "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
        },
        "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "Updated At"
        },
        "name": {
            "type": "string",
            "title": "Name"
        },
        "owner_id": {
            "type": "string",
            "format": "uuid",
            "title": "Owner Id"
        },
        "organization_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Organization Id"
        },
        "width": {
            "type": "integer",
            "title": "Width"
        },
        "height": {
            "type": "integer",
            "title": "Height"
        },
        "deleted_at": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "date-time"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Deleted At"
        }
    },
    "type": "object",
    "required": [
        "id",
        "created_at",
        "updated_at",
        "name",
        "owner_id",
        "width",
        "height"
    ],
    "title": "ResolutionPresetPublic"
}

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string",
            "input": null,
            "ctx": {}
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

DELETE /api/v1/resolution-presets/{id}

Delete Resolution Preset

Description

Delete a resolution preset.

Input parameters

Parameter In Type Default Nullable Description
OAuth2PasswordBearer header string N/A No
id path string No
organization_id query No

Responses

{
    "message": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "message": {
            "type": "string",
            "title": "Message"
        }
    },
    "type": "object",
    "required": [
        "message"
    ],
    "title": "Message"
}

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string",
            "input": null,
            "ctx": {}
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

POST /api/v1/resolution-presets/{id}/restore

Restore Resolution Preset

Description

Restore a soft-deleted resolution preset (admin only).

Input parameters

Parameter In Type Default Nullable Description
OAuth2PasswordBearer header string N/A No
id path string No

Responses

{
    "id": "f9cb6fdc-b06b-4661-8c6c-802de66f1fb2",
    "created_at": "2022-04-13T15:42:05.901Z",
    "updated_at": "2022-04-13T15:42:05.901Z",
    "name": "string",
    "owner_id": "dd65ceee-a5db-4481-a08f-775e277c8829",
    "organization_id": null,
    "width": 0,
    "height": 0,
    "deleted_at": null
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
        },
        "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
        },
        "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "Updated At"
        },
        "name": {
            "type": "string",
            "title": "Name"
        },
        "owner_id": {
            "type": "string",
            "format": "uuid",
            "title": "Owner Id"
        },
        "organization_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Organization Id"
        },
        "width": {
            "type": "integer",
            "title": "Width"
        },
        "height": {
            "type": "integer",
            "title": "Height"
        },
        "deleted_at": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "date-time"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Deleted At"
        }
    },
    "type": "object",
    "required": [
        "id",
        "created_at",
        "updated_at",
        "name",
        "owner_id",
        "width",
        "height"
    ],
    "title": "ResolutionPresetPublic"
}

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string",
            "input": null,
            "ctx": {}
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

guidelines


POST /api/v1/guidelines/

Create Guidelines

Description

Create new shooting guidelines preset.

Input parameters

Parameter In Type Default Nullable Description
OAuth2PasswordBearer header string N/A No
organization_id query No

Request body

{
    "name": "string",
    "auto_start_look_generations": true,
    "allow_back_shots_without_back_image": true,
    "resolution_preset_id": null,
    "background_preset_id": null,
    "set_design_id": null,
    "stylist_id": null,
    "export_configuration_id": null,
    "generative_workflow_template_id": null,
    "shot_type_ids": [
        "1b9a26b9-dac2-4596-b778-52d038444ef6"
    ],
    "subject_ids": [
        "330aaa2b-6b62-456f-9484-a3b0194ae46f"
    ],
    "pose_preset_ids": [
        "92cd8b0e-6332-4ca7-9002-189c2709b48e"
    ],
    "shot_type_rules": null,
    "owner_id": null,
    "organization_id": null
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the request body
{
    "properties": {
        "name": {
            "type": "string",
            "title": "Name"
        },
        "auto_start_look_generations": {
            "type": "boolean",
            "title": "Auto Start Look Generations",
            "default": true
        },
        "allow_back_shots_without_back_image": {
            "type": "boolean",
            "title": "Allow Back Shots Without Back Image",
            "default": false
        },
        "resolution_preset_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Resolution Preset Id"
        },
        "background_preset_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Background Preset Id"
        },
        "set_design_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Set Design Id"
        },
        "stylist_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Stylist Id"
        },
        "export_configuration_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Export Configuration Id"
        },
        "generative_workflow_template_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Generative Workflow Template Id",
            "description": "Optional generative workflow template attached at guideline creation. Cross-org and invalid-validation-status templates are rejected at the route layer (422)."
        },
        "shot_type_ids": {
            "items": {
                "type": "string",
                "format": "uuid"
            },
            "type": "array",
            "title": "Shot Type Ids"
        },
        "subject_ids": {
            "items": {
                "type": "string",
                "format": "uuid"
            },
            "type": "array",
            "title": "Subject Ids"
        },
        "pose_preset_ids": {
            "items": {
                "type": "string",
                "format": "uuid"
            },
            "type": "array",
            "title": "Pose Preset Ids"
        },
        "shot_type_rules": {
            "anyOf": [
                {
                    "items": {
                        "$ref": "#/components/schemas/GuidelinesShotTypeRuleGroupInput"
                    },
                    "type": "array"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Shot Type Rules",
            "description": "Optional list of shot-type rules to create alongside the guideline (one DB transaction).  Each entry is one (rule_kind, rule_value) → list of shot_type_ids group.  Omit to create the guideline with no rules."
        },
        "owner_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Owner Id"
        },
        "organization_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Organization Id",
            "description": "Organization these guidelines belong to"
        }
    },
    "type": "object",
    "required": [
        "name"
    ],
    "title": "ShootingGuidelinesCreate",
    "description": "Request model for creating ShootingGuidelines."
}

Responses

{
    "id": "1ad24917-35a8-4411-8b6a-6deed77894ff",
    "created_at": "2022-04-13T15:42:05.901Z",
    "updated_at": "2022-04-13T15:42:05.901Z",
    "name": "string",
    "auto_start_look_generations": true,
    "allow_back_shots_without_back_image": true,
    "owner_id": null,
    "organization_id": null,
    "resolution_preset_id": null,
    "background_preset_id": null,
    "set_design_id": null,
    "stylist_id": null,
    "export_configuration_id": null,
    "shot_types": [
        {
            "name": "string",
            "view_angle": "front",
            "framing": "full_body",
            "shot_type_ref_image_url": null,
            "shot_type_prompt_instruction": null,
            "file_naming_convention": null,
            "reference_image_url": null,
            "prompt": null,
            "prompt_builder_section": null,
            "core_focus": true,
            "default_shot_type": null,
            "margins": null,
            "owner_id": null,
            "public": true,
            "organization_id": null,
            "id": "da28d3e6-7de7-4e26-b5fa-af934ff4a1d5",
            "created_at": "2022-04-13T15:42:05.901Z",
            "updated_at": "2022-04-13T15:42:05.901Z",
            "deleted_at": null,
            "reference_image": null
        }
    ],
    "subjects": [
        {
            "id": "6d2d9915-7e16-4d31-83fe-c6e6df967b50",
            "created_at": "2022-04-13T15:42:05.901Z",
            "updated_at": "2022-04-13T15:42:05.901Z",
            "name": "string",
            "surname": null,
            "slug": "string",
            "description": null,
            "age_class": "newborn",
            "gender": "MALE",
            "subject_type": "AI",
            "body_type": null,
            "positive_prompt": null,
            "negative_prompt": null,
            "ethnicity": null,
            "public": true,
            "enabled": true,
            "ready": true,
            "lora_status": "string",
            "lora_trigger": null,
            "cover_image_url": null,
            "portrait_image_url": null,
            "data_image_urls": [
                "string"
            ],
            "cover_image_media": null,
            "portrait_image_media": null,
            "data_images_media": null,
            "portfolio_images_media": null,
            "base_images": [
                {
                    "shot_type_id": "0d932f44-8522-49e5-999a-b8294b0eafc5",
                    "shot_type_label": "string",
                    "image_url": "string"
                }
            ],
            "measurements": null,
            "deleted_at": null,
            "owner_id": "3e0c20ca-2071-49f0-a121-9f4e9dd5c187",
            "organization_id": null
        }
    ],
    "pose_presets": [
        {
            "id": "8880bbae-29a6-453a-af23-5d9e33002b8f",
            "created_at": "2022-04-13T15:42:05.901Z",
            "updated_at": "2022-04-13T15:42:05.901Z",
            "name": "string",
            "prompt": null,
            "shot_type_id": "31f944ed-e15c-4ac7-b747-34f63362497f",
            "owner_id": "5f511ff5-0ab1-42e2-a41c-bf44757609d8",
            "organization_id": null,
            "pose_image_url": null,
            "pose_image_media": null,
            "deleted_at": null
        }
    ],
    "set_design": null,
    "shot_type_rules": [
        {
            "rule_kind": "PLACEMENT",
            "rule_value": "string",
            "shot_types": null
        }
    ],
    "generative_workflow_template_id": null,
    "deleted_at": null
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
        },
        "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
        },
        "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "Updated At"
        },
        "name": {
            "type": "string",
            "title": "Name"
        },
        "auto_start_look_generations": {
            "type": "boolean",
            "title": "Auto Start Look Generations",
            "default": true
        },
        "allow_back_shots_without_back_image": {
            "type": "boolean",
            "title": "Allow Back Shots Without Back Image",
            "default": false
        },
        "owner_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Owner Id"
        },
        "organization_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Organization Id"
        },
        "resolution_preset_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Resolution Preset Id"
        },
        "background_preset_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Background Preset Id"
        },
        "set_design_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Set Design Id"
        },
        "stylist_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Stylist Id"
        },
        "export_configuration_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Export Configuration Id"
        },
        "shot_types": {
            "items": {
                "$ref": "#/components/schemas/ShotTypePublic"
            },
            "type": "array",
            "title": "Shot Types",
            "default": []
        },
        "subjects": {
            "items": {
                "$ref": "#/components/schemas/SubjectPublic"
            },
            "type": "array",
            "title": "Subjects",
            "default": []
        },
        "pose_presets": {
            "items": {
                "$ref": "#/components/schemas/PosePresetPublic"
            },
            "type": "array",
            "title": "Pose Presets",
            "default": []
        },
        "set_design": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/SetDesignPublic"
                },
                {
                    "type": "null"
                }
            ]
        },
        "shot_type_rules": {
            "items": {
                "$ref": "#/components/schemas/GuidelinesShotTypeRuleGroup"
            },
            "type": "array",
            "title": "Shot Type Rules",
            "default": []
        },
        "generative_workflow_template_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Generative Workflow Template Id"
        },
        "deleted_at": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "date-time"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Deleted At"
        }
    },
    "type": "object",
    "required": [
        "id",
        "created_at",
        "updated_at",
        "name",
        "resolution_preset_id",
        "background_preset_id"
    ],
    "title": "ShootingGuidelinesPublic",
    "description": "Response model for ShootingGuidelines.\n\nCovers both row variants discriminated by the\n``ck_shootingguidelines_provenance`` CHECK:\n\n- **Templates**: ``owner_id`` is set, ``production_id`` is NULL.\n- **Snapshots**: ``owner_id`` is NULL, ``production_id`` points at\n  a ShootingProduction (the polymorphic snapshot baked at\n  production-create or guidelines-update time).\n\n``owner_id`` is therefore optional on the response — snapshots\nlegitimately carry NULL there."
}

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string",
            "input": null,
            "ctx": {}
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

GET /api/v1/guidelines/

Read Guidelines List

Description

Retrieve shooting guidelines.

  • Regular users: Only see their own guidelines or organization guidelines
  • Superusers: See all guidelines by default, or filter by owner_id

When organization_id query param is provided, returns guidelines belonging to that organization. Without organization_id, returns only personal guidelines (not belonging to any organization).

Input parameters

Parameter In Type Default Nullable Description
OAuth2PasswordBearer header string N/A No
limit query integer 100 No
organization_id query No
owner_id query No
skip query integer 0 No

Responses

{
    "data": [
        {
            "id": "a6cf6872-f288-4a48-9e6c-9f7f56019bb1",
            "created_at": "2022-04-13T15:42:05.901Z",
            "updated_at": "2022-04-13T15:42:05.901Z",
            "name": "string",
            "auto_start_look_generations": true,
            "allow_back_shots_without_back_image": true,
            "owner_id": null,
            "organization_id": null,
            "resolution_preset_id": null,
            "background_preset_id": null,
            "set_design_id": null,
            "stylist_id": null,
            "export_configuration_id": null,
            "shot_types": [
                {
                    "name": "string",
                    "view_angle": "front",
                    "framing": "full_body",
                    "shot_type_ref_image_url": null,
                    "shot_type_prompt_instruction": null,
                    "file_naming_convention": null,
                    "reference_image_url": null,
                    "prompt": null,
                    "prompt_builder_section": null,
                    "core_focus": true,
                    "default_shot_type": null,
                    "margins": null,
                    "owner_id": null,
                    "public": true,
                    "organization_id": null,
                    "id": "53726f64-f0a6-473d-b99d-47308f2d4585",
                    "created_at": "2022-04-13T15:42:05.901Z",
                    "updated_at": "2022-04-13T15:42:05.901Z",
                    "deleted_at": null,
                    "reference_image": null
                }
            ],
            "subjects": [
                {
                    "id": "8b37941f-239f-4736-9604-30d9c72cc262",
                    "created_at": "2022-04-13T15:42:05.901Z",
                    "updated_at": "2022-04-13T15:42:05.901Z",
                    "name": "string",
                    "surname": null,
                    "slug": "string",
                    "description": null,
                    "age_class": "newborn",
                    "gender": "MALE",
                    "subject_type": "AI",
                    "body_type": null,
                    "positive_prompt": null,
                    "negative_prompt": null,
                    "ethnicity": null,
                    "public": true,
                    "enabled": true,
                    "ready": true,
                    "lora_status": "string",
                    "lora_trigger": null,
                    "cover_image_url": null,
                    "portrait_image_url": null,
                    "data_image_urls": [
                        "string"
                    ],
                    "cover_image_media": null,
                    "portrait_image_media": null,
                    "data_images_media": null,
                    "portfolio_images_media": null,
                    "base_images": [
                        {
                            "shot_type_id": "7e61b00f-5dde-4f01-a232-21151cf7218d",
                            "shot_type_label": "string",
                            "image_url": "string"
                        }
                    ],
                    "measurements": null,
                    "deleted_at": null,
                    "owner_id": "95b2f961-a895-48aa-ae22-c8c3eab42db7",
                    "organization_id": null
                }
            ],
            "pose_presets": [
                {
                    "id": "6b9fb5ac-b21b-4459-b291-196b8bc96e0c",
                    "created_at": "2022-04-13T15:42:05.901Z",
                    "updated_at": "2022-04-13T15:42:05.901Z",
                    "name": "string",
                    "prompt": null,
                    "shot_type_id": "98dc2cd0-e253-4155-a6d7-4ab08da2192d",
                    "owner_id": "22107e24-a4c8-49ac-a8f4-1cc2267293c0",
                    "organization_id": null,
                    "pose_image_url": null,
                    "pose_image_media": null,
                    "deleted_at": null
                }
            ],
            "set_design": null,
            "shot_type_rules": [
                {
                    "rule_kind": "PLACEMENT",
                    "rule_value": "string",
                    "shot_types": null
                }
            ],
            "generative_workflow_template_id": null,
            "deleted_at": null
        }
    ],
    "count": 0
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "data": {
            "items": {
                "$ref": "#/components/schemas/ShootingGuidelinesPublic"
            },
            "type": "array",
            "title": "Data"
        },
        "count": {
            "type": "integer",
            "title": "Count"
        }
    },
    "type": "object",
    "required": [
        "data",
        "count"
    ],
    "title": "ShootingGuidelinesListPublic",
    "description": "Response model for paginated list of ShootingGuidelines."
}

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string",
            "input": null,
            "ctx": {}
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

GET /api/v1/guidelines/{id}

Read Guidelines

Description

Get shooting guidelines by ID.

Input parameters

Parameter In Type Default Nullable Description
OAuth2PasswordBearer header string N/A No
id path string No
organization_id query No

Responses

{
    "id": "e401db95-7ab7-4998-b4d7-715ac7c280ed",
    "created_at": "2022-04-13T15:42:05.901Z",
    "updated_at": "2022-04-13T15:42:05.901Z",
    "name": "string",
    "auto_start_look_generations": true,
    "allow_back_shots_without_back_image": true,
    "owner_id": null,
    "organization_id": null,
    "resolution_preset_id": null,
    "background_preset_id": null,
    "set_design_id": null,
    "stylist_id": null,
    "export_configuration_id": null,
    "shot_types": [
        {
            "name": "string",
            "view_angle": "front",
            "framing": "full_body",
            "shot_type_ref_image_url": null,
            "shot_type_prompt_instruction": null,
            "file_naming_convention": null,
            "reference_image_url": null,
            "prompt": null,
            "prompt_builder_section": null,
            "core_focus": true,
            "default_shot_type": null,
            "margins": null,
            "owner_id": null,
            "public": true,
            "organization_id": null,
            "id": "554004bc-0317-4494-80d9-7fba6f304ad6",
            "created_at": "2022-04-13T15:42:05.901Z",
            "updated_at": "2022-04-13T15:42:05.901Z",
            "deleted_at": null,
            "reference_image": null
        }
    ],
    "subjects": [
        {
            "id": "5f68fd01-cf55-4d7e-ba43-d2e2a77e8b48",
            "created_at": "2022-04-13T15:42:05.901Z",
            "updated_at": "2022-04-13T15:42:05.901Z",
            "name": "string",
            "surname": null,
            "slug": "string",
            "description": null,
            "age_class": "newborn",
            "gender": "MALE",
            "subject_type": "AI",
            "body_type": null,
            "positive_prompt": null,
            "negative_prompt": null,
            "ethnicity": null,
            "public": true,
            "enabled": true,
            "ready": true,
            "lora_status": "string",
            "lora_trigger": null,
            "cover_image_url": null,
            "portrait_image_url": null,
            "data_image_urls": [
                "string"
            ],
            "cover_image_media": null,
            "portrait_image_media": null,
            "data_images_media": null,
            "portfolio_images_media": null,
            "base_images": [
                {
                    "shot_type_id": "6925ed8c-41ae-4e3e-998f-8a12fad0f193",
                    "shot_type_label": "string",
                    "image_url": "string"
                }
            ],
            "measurements": null,
            "deleted_at": null,
            "owner_id": "c659fe5c-8762-4cce-b4eb-bd27306e63d0",
            "organization_id": null
        }
    ],
    "pose_presets": [
        {
            "id": "eecf9e91-036f-4073-ac25-61e44d90051a",
            "created_at": "2022-04-13T15:42:05.901Z",
            "updated_at": "2022-04-13T15:42:05.901Z",
            "name": "string",
            "prompt": null,
            "shot_type_id": "5cf235e4-8193-4a2c-9df2-f68ab7e9a902",
            "owner_id": "827450a5-a73e-435d-b62d-7aa3aa4f3598",
            "organization_id": null,
            "pose_image_url": null,
            "pose_image_media": null,
            "deleted_at": null
        }
    ],
    "set_design": null,
    "shot_type_rules": [
        {
            "rule_kind": "PLACEMENT",
            "rule_value": "string",
            "shot_types": null
        }
    ],
    "generative_workflow_template_id": null,
    "deleted_at": null
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
        },
        "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
        },
        "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "Updated At"
        },
        "name": {
            "type": "string",
            "title": "Name"
        },
        "auto_start_look_generations": {
            "type": "boolean",
            "title": "Auto Start Look Generations",
            "default": true
        },
        "allow_back_shots_without_back_image": {
            "type": "boolean",
            "title": "Allow Back Shots Without Back Image",
            "default": false
        },
        "owner_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Owner Id"
        },
        "organization_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Organization Id"
        },
        "resolution_preset_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Resolution Preset Id"
        },
        "background_preset_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Background Preset Id"
        },
        "set_design_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Set Design Id"
        },
        "stylist_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Stylist Id"
        },
        "export_configuration_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Export Configuration Id"
        },
        "shot_types": {
            "items": {
                "$ref": "#/components/schemas/ShotTypePublic"
            },
            "type": "array",
            "title": "Shot Types",
            "default": []
        },
        "subjects": {
            "items": {
                "$ref": "#/components/schemas/SubjectPublic"
            },
            "type": "array",
            "title": "Subjects",
            "default": []
        },
        "pose_presets": {
            "items": {
                "$ref": "#/components/schemas/PosePresetPublic"
            },
            "type": "array",
            "title": "Pose Presets",
            "default": []
        },
        "set_design": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/SetDesignPublic"
                },
                {
                    "type": "null"
                }
            ]
        },
        "shot_type_rules": {
            "items": {
                "$ref": "#/components/schemas/GuidelinesShotTypeRuleGroup"
            },
            "type": "array",
            "title": "Shot Type Rules",
            "default": []
        },
        "generative_workflow_template_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Generative Workflow Template Id"
        },
        "deleted_at": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "date-time"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Deleted At"
        }
    },
    "type": "object",
    "required": [
        "id",
        "created_at",
        "updated_at",
        "name",
        "resolution_preset_id",
        "background_preset_id"
    ],
    "title": "ShootingGuidelinesPublic",
    "description": "Response model for ShootingGuidelines.\n\nCovers both row variants discriminated by the\n``ck_shootingguidelines_provenance`` CHECK:\n\n- **Templates**: ``owner_id`` is set, ``production_id`` is NULL.\n- **Snapshots**: ``owner_id`` is NULL, ``production_id`` points at\n  a ShootingProduction (the polymorphic snapshot baked at\n  production-create or guidelines-update time).\n\n``owner_id`` is therefore optional on the response — snapshots\nlegitimately carry NULL there."
}

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string",
            "input": null,
            "ctx": {}
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

PUT /api/v1/guidelines/{id}

Update Guidelines

Description

Update shooting guidelines.

Input parameters

Parameter In Type Default Nullable Description
OAuth2PasswordBearer header string N/A No
id path string No
organization_id query No

Request body

{
    "name": null,
    "auto_start_look_generations": null,
    "allow_back_shots_without_back_image": null,
    "resolution_preset_id": null,
    "background_preset_id": null,
    "set_design_id": null,
    "stylist_id": null,
    "export_configuration_id": null,
    "shot_type_ids": null,
    "subject_ids": null,
    "pose_preset_ids": null,
    "shot_type_rules": null,
    "owner_id": null,
    "organization_id": null,
    "generative_workflow_template_id": null
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the request body
{
    "properties": {
        "name": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Name"
        },
        "auto_start_look_generations": {
            "anyOf": [
                {
                    "type": "boolean"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Auto Start Look Generations"
        },
        "allow_back_shots_without_back_image": {
            "anyOf": [
                {
                    "type": "boolean"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Allow Back Shots Without Back Image"
        },
        "resolution_preset_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Resolution Preset Id"
        },
        "background_preset_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Background Preset Id"
        },
        "set_design_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Set Design Id"
        },
        "stylist_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Stylist Id"
        },
        "export_configuration_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Export Configuration Id"
        },
        "shot_type_ids": {
            "anyOf": [
                {
                    "items": {
                        "type": "string",
                        "format": "uuid"
                    },
                    "type": "array"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Shot Type Ids"
        },
        "subject_ids": {
            "anyOf": [
                {
                    "items": {
                        "type": "string",
                        "format": "uuid"
                    },
                    "type": "array"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Subject Ids"
        },
        "pose_preset_ids": {
            "anyOf": [
                {
                    "items": {
                        "type": "string",
                        "format": "uuid"
                    },
                    "type": "array"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Pose Preset Ids"
        },
        "shot_type_rules": {
            "anyOf": [
                {
                    "items": {
                        "$ref": "#/components/schemas/GuidelinesShotTypeRuleGroupInput"
                    },
                    "type": "array"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Shot Type Rules",
            "description": "Optional full-replace list of shot-type rules in group form (one entry per (rule_kind, rule_value) with its list of shot_type_ids).  Omit to leave rules untouched; pass [] to clear all rules."
        },
        "owner_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Owner Id"
        },
        "organization_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Organization Id",
            "description": "Organization to transfer these guidelines to"
        },
        "generative_workflow_template_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Generative Workflow Template Id",
            "description": "Optional generative workflow template attached to these guidelines. Null clears the override. Cross-org templates are rejected (422)."
        }
    },
    "type": "object",
    "title": "ShootingGuidelinesUpdate",
    "description": "Request model for updating ShootingGuidelines."
}

Responses

{
    "id": "df755e99-2424-4c76-8f4a-9b6d86e227e5",
    "created_at": "2022-04-13T15:42:05.901Z",
    "updated_at": "2022-04-13T15:42:05.901Z",
    "name": "string",
    "auto_start_look_generations": true,
    "allow_back_shots_without_back_image": true,
    "owner_id": null,
    "organization_id": null,
    "resolution_preset_id": null,
    "background_preset_id": null,
    "set_design_id": null,
    "stylist_id": null,
    "export_configuration_id": null,
    "shot_types": [
        {
            "name": "string",
            "view_angle": "front",
            "framing": "full_body",
            "shot_type_ref_image_url": null,
            "shot_type_prompt_instruction": null,
            "file_naming_convention": null,
            "reference_image_url": null,
            "prompt": null,
            "prompt_builder_section": null,
            "core_focus": true,
            "default_shot_type": null,
            "margins": null,
            "owner_id": null,
            "public": true,
            "organization_id": null,
            "id": "b695a8f9-1162-49cd-b692-b5f372b7ae59",
            "created_at": "2022-04-13T15:42:05.901Z",
            "updated_at": "2022-04-13T15:42:05.901Z",
            "deleted_at": null,
            "reference_image": null
        }
    ],
    "subjects": [
        {
            "id": "7034d75d-afd7-4f7a-9b9c-6bd3a285ada3",
            "created_at": "2022-04-13T15:42:05.901Z",
            "updated_at": "2022-04-13T15:42:05.901Z",
            "name": "string",
            "surname": null,
            "slug": "string",
            "description": null,
            "age_class": "newborn",
            "gender": "MALE",
            "subject_type": "AI",
            "body_type": null,
            "positive_prompt": null,
            "negative_prompt": null,
            "ethnicity": null,
            "public": true,
            "enabled": true,
            "ready": true,
            "lora_status": "string",
            "lora_trigger": null,
            "cover_image_url": null,
            "portrait_image_url": null,
            "data_image_urls": [
                "string"
            ],
            "cover_image_media": null,
            "portrait_image_media": null,
            "data_images_media": null,
            "portfolio_images_media": null,
            "base_images": [
                {
                    "shot_type_id": "df88eef2-083f-49ed-a8ce-957d69095e9c",
                    "shot_type_label": "string",
                    "image_url": "string"
                }
            ],
            "measurements": null,
            "deleted_at": null,
            "owner_id": "298e79a5-6968-446c-bdea-7a379cff32ce",
            "organization_id": null
        }
    ],
    "pose_presets": [
        {
            "id": "413deabc-026b-4486-86eb-46430bfe62c6",
            "created_at": "2022-04-13T15:42:05.901Z",
            "updated_at": "2022-04-13T15:42:05.901Z",
            "name": "string",
            "prompt": null,
            "shot_type_id": "d17fdc71-a368-4826-a38b-a298dda15079",
            "owner_id": "a78340b8-1dfa-4b59-b430-eaf4182727ab",
            "organization_id": null,
            "pose_image_url": null,
            "pose_image_media": null,
            "deleted_at": null
        }
    ],
    "set_design": null,
    "shot_type_rules": [
        {
            "rule_kind": "PLACEMENT",
            "rule_value": "string",
            "shot_types": null
        }
    ],
    "generative_workflow_template_id": null,
    "deleted_at": null
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
        },
        "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
        },
        "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "Updated At"
        },
        "name": {
            "type": "string",
            "title": "Name"
        },
        "auto_start_look_generations": {
            "type": "boolean",
            "title": "Auto Start Look Generations",
            "default": true
        },
        "allow_back_shots_without_back_image": {
            "type": "boolean",
            "title": "Allow Back Shots Without Back Image",
            "default": false
        },
        "owner_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Owner Id"
        },
        "organization_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Organization Id"
        },
        "resolution_preset_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Resolution Preset Id"
        },
        "background_preset_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Background Preset Id"
        },
        "set_design_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Set Design Id"
        },
        "stylist_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Stylist Id"
        },
        "export_configuration_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Export Configuration Id"
        },
        "shot_types": {
            "items": {
                "$ref": "#/components/schemas/ShotTypePublic"
            },
            "type": "array",
            "title": "Shot Types",
            "default": []
        },
        "subjects": {
            "items": {
                "$ref": "#/components/schemas/SubjectPublic"
            },
            "type": "array",
            "title": "Subjects",
            "default": []
        },
        "pose_presets": {
            "items": {
                "$ref": "#/components/schemas/PosePresetPublic"
            },
            "type": "array",
            "title": "Pose Presets",
            "default": []
        },
        "set_design": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/SetDesignPublic"
                },
                {
                    "type": "null"
                }
            ]
        },
        "shot_type_rules": {
            "items": {
                "$ref": "#/components/schemas/GuidelinesShotTypeRuleGroup"
            },
            "type": "array",
            "title": "Shot Type Rules",
            "default": []
        },
        "generative_workflow_template_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Generative Workflow Template Id"
        },
        "deleted_at": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "date-time"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Deleted At"
        }
    },
    "type": "object",
    "required": [
        "id",
        "created_at",
        "updated_at",
        "name",
        "resolution_preset_id",
        "background_preset_id"
    ],
    "title": "ShootingGuidelinesPublic",
    "description": "Response model for ShootingGuidelines.\n\nCovers both row variants discriminated by the\n``ck_shootingguidelines_provenance`` CHECK:\n\n- **Templates**: ``owner_id`` is set, ``production_id`` is NULL.\n- **Snapshots**: ``owner_id`` is NULL, ``production_id`` points at\n  a ShootingProduction (the polymorphic snapshot baked at\n  production-create or guidelines-update time).\n\n``owner_id`` is therefore optional on the response — snapshots\nlegitimately carry NULL there."
}

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string",
            "input": null,
            "ctx": {}
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

DELETE /api/v1/guidelines/{id}

Delete Guidelines

Description

Delete shooting guidelines.

Input parameters

Parameter In Type Default Nullable Description
OAuth2PasswordBearer header string N/A No
id path string No
organization_id query No

Responses

{
    "message": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "message": {
            "type": "string",
            "title": "Message"
        }
    },
    "type": "object",
    "required": [
        "message"
    ],
    "title": "Message"
}

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string",
            "input": null,
            "ctx": {}
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

POST /api/v1/guidelines/{id}/restore

Restore Guidelines

Description

Restore a soft-deleted shooting guidelines (admin only).

Input parameters

Parameter In Type Default Nullable Description
OAuth2PasswordBearer header string N/A No
id path string No

Responses

{
    "id": "bf6dd686-e813-423b-a3b8-2fc6720958db",
    "created_at": "2022-04-13T15:42:05.901Z",
    "updated_at": "2022-04-13T15:42:05.901Z",
    "name": "string",
    "auto_start_look_generations": true,
    "allow_back_shots_without_back_image": true,
    "owner_id": null,
    "organization_id": null,
    "resolution_preset_id": null,
    "background_preset_id": null,
    "set_design_id": null,
    "stylist_id": null,
    "export_configuration_id": null,
    "shot_types": [
        {
            "name": "string",
            "view_angle": "front",
            "framing": "full_body",
            "shot_type_ref_image_url": null,
            "shot_type_prompt_instruction": null,
            "file_naming_convention": null,
            "reference_image_url": null,
            "prompt": null,
            "prompt_builder_section": null,
            "core_focus": true,
            "default_shot_type": null,
            "margins": null,
            "owner_id": null,
            "public": true,
            "organization_id": null,
            "id": "d78291dd-aaa1-466c-9e55-e0fd682fad19",
            "created_at": "2022-04-13T15:42:05.901Z",
            "updated_at": "2022-04-13T15:42:05.901Z",
            "deleted_at": null,
            "reference_image": null
        }
    ],
    "subjects": [
        {
            "id": "cbf472e7-0e54-4eab-978c-179bd307cdd3",
            "created_at": "2022-04-13T15:42:05.901Z",
            "updated_at": "2022-04-13T15:42:05.901Z",
            "name": "string",
            "surname": null,
            "slug": "string",
            "description": null,
            "age_class": "newborn",
            "gender": "MALE",
            "subject_type": "AI",
            "body_type": null,
            "positive_prompt": null,
            "negative_prompt": null,
            "ethnicity": null,
            "public": true,
            "enabled": true,
            "ready": true,
            "lora_status": "string",
            "lora_trigger": null,
            "cover_image_url": null,
            "portrait_image_url": null,
            "data_image_urls": [
                "string"
            ],
            "cover_image_media": null,
            "portrait_image_media": null,
            "data_images_media": null,
            "portfolio_images_media": null,
            "base_images": [
                {
                    "shot_type_id": "22763567-d033-4399-8491-cc2170279ab8",
                    "shot_type_label": "string",
                    "image_url": "string"
                }
            ],
            "measurements": null,
            "deleted_at": null,
            "owner_id": "a4c1bb72-6a82-469c-9804-80164e0c1270",
            "organization_id": null
        }
    ],
    "pose_presets": [
        {
            "id": "fec5062e-4d41-484d-b646-cc5810024edb",
            "created_at": "2022-04-13T15:42:05.901Z",
            "updated_at": "2022-04-13T15:42:05.901Z",
            "name": "string",
            "prompt": null,
            "shot_type_id": "76b8e710-3ad1-42c9-8c79-40ac4e5902a6",
            "owner_id": "e5dbb7a7-8dd9-4f9d-aca7-e41ee148dc86",
            "organization_id": null,
            "pose_image_url": null,
            "pose_image_media": null,
            "deleted_at": null
        }
    ],
    "set_design": null,
    "shot_type_rules": [
        {
            "rule_kind": "PLACEMENT",
            "rule_value": "string",
            "shot_types": null
        }
    ],
    "generative_workflow_template_id": null,
    "deleted_at": null
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
        },
        "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
        },
        "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "Updated At"
        },
        "name": {
            "type": "string",
            "title": "Name"
        },
        "auto_start_look_generations": {
            "type": "boolean",
            "title": "Auto Start Look Generations",
            "default": true
        },
        "allow_back_shots_without_back_image": {
            "type": "boolean",
            "title": "Allow Back Shots Without Back Image",
            "default": false
        },
        "owner_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Owner Id"
        },
        "organization_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Organization Id"
        },
        "resolution_preset_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Resolution Preset Id"
        },
        "background_preset_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Background Preset Id"
        },
        "set_design_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Set Design Id"
        },
        "stylist_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Stylist Id"
        },
        "export_configuration_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Export Configuration Id"
        },
        "shot_types": {
            "items": {
                "$ref": "#/components/schemas/ShotTypePublic"
            },
            "type": "array",
            "title": "Shot Types",
            "default": []
        },
        "subjects": {
            "items": {
                "$ref": "#/components/schemas/SubjectPublic"
            },
            "type": "array",
            "title": "Subjects",
            "default": []
        },
        "pose_presets": {
            "items": {
                "$ref": "#/components/schemas/PosePresetPublic"
            },
            "type": "array",
            "title": "Pose Presets",
            "default": []
        },
        "set_design": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/SetDesignPublic"
                },
                {
                    "type": "null"
                }
            ]
        },
        "shot_type_rules": {
            "items": {
                "$ref": "#/components/schemas/GuidelinesShotTypeRuleGroup"
            },
            "type": "array",
            "title": "Shot Type Rules",
            "default": []
        },
        "generative_workflow_template_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Generative Workflow Template Id"
        },
        "deleted_at": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "date-time"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Deleted At"
        }
    },
    "type": "object",
    "required": [
        "id",
        "created_at",
        "updated_at",
        "name",
        "resolution_preset_id",
        "background_preset_id"
    ],
    "title": "ShootingGuidelinesPublic",
    "description": "Response model for ShootingGuidelines.\n\nCovers both row variants discriminated by the\n``ck_shootingguidelines_provenance`` CHECK:\n\n- **Templates**: ``owner_id`` is set, ``production_id`` is NULL.\n- **Snapshots**: ``owner_id`` is NULL, ``production_id`` points at\n  a ShootingProduction (the polymorphic snapshot baked at\n  production-create or guidelines-update time).\n\n``owner_id`` is therefore optional on the response — snapshots\nlegitimately carry NULL there."
}

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string",
            "input": null,
            "ctx": {}
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

Schemas

AssignOwnerRequest

Name Type Description
created_at string(date-time)
id string(uuid)
new_owner_id string(uuid)
updated_at string(date-time)

BackgroundFixStrategy

Type: string

BackgroundPresetCreate

Name Type Description
framings Array<BackgroundPresetFramingCreate> At least one framing entry is required
name string
organization_id Organization this preset belongs to
owner_id
strategy Strategy for background fix processing

BackgroundPresetFramingCreate

Name Type Description
framing
image URL or MediaInput for framing image

BackgroundPresetFramingPublic

Name Type Description
created_at string(date-time)
framing
id string(uuid)
image_media
image_url
updated_at string(date-time)

BackgroundPresetPublic

Name Type Description
cover_image_url
created_at string(date-time)
deleted_at
framings Array<BackgroundPresetFramingPublic>
id string(uuid)
name string
organization_id
owner_id string(uuid)
strategy
updated_at string(date-time)

BackgroundPresetsPublic

Name Type Description
count integer
data Array<BackgroundPresetPublic>

BackgroundPresetUpdate

Name Type Description
framings Full-replace framings list. None = no change.
name
organization_id Organization to transfer this preset to
owner_id
strategy Strategy for background fix processing

BaseImageCreate

Name Type Description
image_url string
shot_type_id string(uuid)

BaseImageListResponse

Name Type Description
data Array<BaseImagePublic>

BaseImagePublic

Name Type Description
image_url string
shot_type_id string(uuid)
shot_type_label string

Body_update_style_lora_trigger

Name Type Description
lora_trigger string

Body_update_subject_lora_trigger

Name Type Description
lora_trigger

Body_upload_style_lora

Name Type Description
file string
lora_trigger string

Body_upload_subject_base_images_zip

Name Type Description
file string

Body_upload_subject_lora

Name Type Description
entity_type
file string
lora_trigger string

BodyType

Type: string

BulkAssignSubjectsRequest

Name Type Description
created_at string(date-time)
id string(uuid)
subject_ids Array<string(uuid)>
updated_at string(date-time)

DefaultShotTypes

Type: string

EyeColor

Type: string

Gender

Type: string

GuidelinesShotTypeRuleGroup

Name Type Description
rule_kind GuidelinesShotTypeRuleKind
rule_value string
shot_types Array<ShotTypePublic>

GuidelinesShotTypeRuleGroupInput

Name Type Description
rule_kind GuidelinesShotTypeRuleKind
rule_value string
shot_type_ids Array<string(uuid)>

GuidelinesShotTypeRuleKind

Type: string

HairColor

Type: string

HTTPValidationError

Name Type Description
detail Array<ValidationError>

MediaInput

Name Type Description
alt_text
caption
color_profile
dominant_color
duration
height
media_resource_id
protected boolean
url
width

MediaResourcePublic

Name Type Description
alt_text
aspect_ratio
caption
color_profile
content_hash string
created_at string(date-time)
dominant_color
duration
extension string
file_size integer
height
id string(uuid)
orientation
protected boolean
resource_type MediaResourceType
url string
width

MediaResourceType

Type: string

Message

Name Type Description
message string

PosePresetPublic

Name Type Description
created_at string(date-time)
deleted_at
id string(uuid)
name string
organization_id
owner_id string(uuid)
pose_image_media
pose_image_url
prompt
shot_type_id string(uuid)
updated_at string(date-time)

ResolutionPresetCreate

Name Type Description
height integer Height in pixels
name string
organization_id Organization this preset belongs to
owner_id
width integer Width in pixels

ResolutionPresetPublic

Name Type Description
created_at string(date-time)
deleted_at
height integer
id string(uuid)
name string
organization_id
owner_id string(uuid)
updated_at string(date-time)
width integer

ResolutionPresetsPublic

Name Type Description
count integer
data Array<ResolutionPresetPublic>

ResolutionPresetUpdate

Name Type Description
height Height in pixels
name
organization_id Organization to transfer this preset to
owner_id
width Width in pixels

SetBaseImagePublic

Name Type Description
created_at string(date-time)
id string(uuid)
image_media
image_url
shot_type_id string(uuid)
subject_id string(uuid)
updated_at string(date-time)
variant_index integer

SetDesignPublic

Name Type Description
background_preset_id
base_images Array<SetBaseImagePublic>
created_at string(date-time)
deleted_at
description
id string(uuid)
name string
organization_id
owner_id string(uuid)
reference_images Array<SetReferenceImagePublic>
subject_portraits Array<SubjectPortraitPublic>
updated_at string(date-time)

SetReferenceImagePublic

Name Type Description
created_at string(date-time)
id string(uuid)
image_media
image_url
label
shot_type_id string(uuid)
updated_at string(date-time)

ShootingGuidelinesCreate

Name Type Description
allow_back_shots_without_back_image boolean
auto_start_look_generations boolean
background_preset_id
export_configuration_id
generative_workflow_template_id Optional generative workflow template attached at guideline creation. Cross-org and invalid-validation-status templates are rejected at the route layer (422).
name string
organization_id Organization these guidelines belong to
owner_id
pose_preset_ids Array<string(uuid)>
resolution_preset_id
set_design_id
shot_type_ids Array<string(uuid)>
shot_type_rules Optional list of shot-type rules to create alongside the guideline (one DB transaction). Each entry is one (rule_kind, rule_value) → list of shot_type_ids group. Omit to create the guideline with no rules.
stylist_id
subject_ids Array<string(uuid)>

ShootingGuidelinesListPublic

Name Type Description
count integer
data Array<ShootingGuidelinesPublic>

ShootingGuidelinesPublic

Name Type Description
allow_back_shots_without_back_image boolean
auto_start_look_generations boolean
background_preset_id
created_at string(date-time)
deleted_at
export_configuration_id
generative_workflow_template_id
id string(uuid)
name string
organization_id
owner_id
pose_presets Array<PosePresetPublic>
resolution_preset_id
set_design
set_design_id
shot_type_rules Array<GuidelinesShotTypeRuleGroup>
shot_types Array<ShotTypePublic>
stylist_id
subjects Array<SubjectPublic>
updated_at string(date-time)

ShootingGuidelinesUpdate

Name Type Description
allow_back_shots_without_back_image
auto_start_look_generations
background_preset_id
export_configuration_id
generative_workflow_template_id Optional generative workflow template attached to these guidelines. Null clears the override. Cross-org templates are rejected (422).
name
organization_id Organization to transfer these guidelines to
owner_id
pose_preset_ids
resolution_preset_id
set_design_id
shot_type_ids
shot_type_rules Optional full-replace list of shot-type rules in group form (one entry per (rule_kind, rule_value) with its list of shot_type_ids). Omit to leave rules untouched; pass [] to clear all rules.
stylist_id
subject_ids

ShotTypeCreate

Name Type Description
core_focus boolean
default_shot_type
file_naming_convention
framing ShotTypeFraming
margins
name string
organization_id
owner_id
prompt
prompt_builder_section
public boolean
reference_image_url
shot_type_prompt_instruction
shot_type_ref_image_url
view_angle ViewAngle

ShotTypeFraming

Type: string

ShotTypePublic

Name Type Description
core_focus boolean
created_at string(date-time)
default_shot_type
deleted_at
file_naming_convention
framing ShotTypeFraming
id string(uuid)
margins
name string
organization_id
owner_id
prompt
prompt_builder_section
public boolean
reference_image
reference_image_url
shot_type_prompt_instruction
shot_type_ref_image_url
updated_at string(date-time)
view_angle ViewAngle

ShotTypesPublic

Name Type Description
count integer
data Array<ShotTypePublic>

ShotTypeUpdate

Name Type Description
core_focus
default_shot_type
file_naming_convention
framing
margins
name
organization_id
owner_id
prompt
prompt_builder_section
public
reference_image_url
shot_type_prompt_instruction
shot_type_ref_image_url
view_angle

StyleAdmin

Name Type Description
archived boolean
brand
cover_image_media
cover_image_url
created_at string(date-time)
current_training_id
data_image_urls Array<string>
data_images_media
default_lora_weight number
deleted_at
demo boolean
description
enabled boolean
id string(uuid)
local_model_path
lora_status string
lora_trigger
name string
organization_id
owner_id string(uuid)
prompt_keywords
public boolean
slug string
style_category StyleCategory
tags Array<string>
training_error
training_progress number
updated_at string(date-time)

StyleCategory

Type: string

StyleCreate

Name Type Description
brand
cover_image URL or base64 string for cover image, or MediaInput object
data_images List of image URLs, base64 strings, or MediaInput objects
default_lora_weight number
description
local_model_path
lora_trigger
name string
organization_id Organization this style belongs to
prompt_keywords
public boolean
style_category StyleCategory
tags List of tags for the style

StylePublic

Name Type Description
archived boolean
brand
cover_image_media
cover_image_url
created_at string(date-time)
current_training_id
data_image_urls Array<string>
data_images_media
default_lora_weight number
deleted_at
demo boolean
description
enabled boolean
id string(uuid)
local_model_path
lora_status string
lora_trigger
name string
organization_id
owner_id string(uuid)
prompt_keywords
public boolean
slug string
style_category StyleCategory
tags Array<string>
training_error
training_progress number
updated_at string(date-time)

StylesAdmin

Name Type Description
count integer
created_at string(date-time)
data Array<StyleAdmin>
id string(uuid)
updated_at string(date-time)

StylesPublic

Name Type Description
count integer
created_at string(date-time)
data Array<StylePublic>
id string(uuid)
updated_at string(date-time)

StyleUpdate

Name Type Description
archived
brand
cover_image URL or base64 string for cover image, or MediaInput object
data_images List of image URLs, base64 strings, or MediaInput objects
default_lora_weight
description
enabled
lora_trigger
name
organization_id Organization to transfer this style to
prompt_keywords
public
style_category
tags List of tags for the style

SubjectAdmin

Name Type Description
age_class SubjectAgeClass
base_images Array<BaseImagePublic>
body_type
cover_image_media
cover_image_url
created_at string(date-time)
data_image_urls Array<string>
data_images_media
deleted_at
description
enabled boolean
ethnicity
gender Gender
id string(uuid)
local_model_path
lora_filename Extract just the filename from local_model_path if it exists.
lora_status string
lora_trigger
measurements
name string
negative_prompt
organization_id
owner_id string(uuid)
portfolio_images_media
portrait_image_media
portrait_image_url
positive_prompt
public boolean
ready boolean
slug string
subject_type SubjectType
surname
updated_at string(date-time)

SubjectAgeClass

Type: string

SubjectBaseImagesUploadTaskPublic

Name Type Description
completed_at
created_at string(date-time)
error_message
id string(uuid)
images_processed integer
images_skipped integer
owner_id string(uuid)
portfolio_images_processed integer
processed_items integer
progress integer
result_data
started_at
status TaskStatus-Output
subject_id string(uuid)
total_items integer

SubjectCreate

Name Type Description
age_class SubjectAgeClass
base_images
body_type
cover_image
data_images
description
ethnicity
gender Gender
local_model_path
lora_status string
lora_trigger
measurements
name string
negative_prompt
organization_id Organization this subject belongs to
portfolio_images
portrait_image
positive_prompt
public boolean
subject_type SubjectType
surname

SubjectMeasurementsCreate

Name Type Description
bust_cm
eye_color
hair_color
height_cm
hips_cm
shoe_eu
waist_cm

SubjectMeasurementsPublic

Name Type Description
bust_cm
eye_color
hair_color
height_cm
hips_cm
id string(uuid)
shoe_eu
waist_cm

SubjectMeasurementsUpdate

Name Type Description
bust_cm
eye_color
hair_color
height_cm
hips_cm
shoe_eu
waist_cm

SubjectPortraitPublic

Name Type Description
created_at string(date-time)
id string(uuid)
image_media
subject_id string(uuid)
updated_at string(date-time)

SubjectPublic

Name Type Description
age_class SubjectAgeClass
base_images Array<BaseImagePublic>
body_type
cover_image_media
cover_image_url
created_at string(date-time)
data_image_urls Array<string>
data_images_media
deleted_at
description
enabled boolean
ethnicity
gender Gender
id string(uuid)
lora_status string
lora_trigger
measurements
name string
negative_prompt
organization_id
owner_id string(uuid)
portfolio_images_media
portrait_image_media
portrait_image_url
positive_prompt
public boolean
ready boolean
slug string
subject_type SubjectType
surname
updated_at string(date-time)

SubjectsAdmin

Name Type Description
count integer
created_at string(date-time)
data Array<SubjectAdmin>
id string(uuid)
updated_at string(date-time)

SubjectsPublic

Name Type Description
count integer
created_at string(date-time)
data Array<SubjectPublic>
id string(uuid)
updated_at string(date-time)

SubjectType

Type: string

SubjectUpdate

Name Type Description
age_class
body_type
cover_image
data_images
description
ethnicity
gender
measurements
name
negative_prompt
organization_id Organization to transfer this subject to
portfolio_images
portrait_image
positive_prompt
public
ready
surname

TaskStatus-Output

Type: string

ValidationError

Name Type Description
ctx
input
loc Array<>
msg string
type string

ViewAngle

Type: string

Security schemes

Name Type Scheme Description
OAuth2PasswordBearer oauth2