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
}
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"
}
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
}
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
}
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"
}
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
}
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"
}
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
}
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
}
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"
}
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
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
}
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"
}
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
}
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"
}
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
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
}
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"
}
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
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
}
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"
}
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"
}
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
}
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"
}
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"
]
}
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
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
}
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"
}
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
}
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"
}
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
}
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"
}
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
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"
}
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"
}
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
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
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
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
}
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."
}
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
}
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."
}
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
}
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."
}
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"
]
}
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
}
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"
}
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
}
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"
}
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
}
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"
}
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"
]
}
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
}
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"
}
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
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
}
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"
}
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
}
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"
}
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
}
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"
}
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
}
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"
}
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
}
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"
}
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
}
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."
}
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"
}
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
}
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"
}
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
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
}
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"
}
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
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
}
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"
}
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"
}
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
}
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"
}
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
}
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"
}
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
}
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"
}
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"
}
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
}
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"
}
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
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
}
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"
}
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
}
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"
}
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"
}
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
}
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"
}
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
}
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
}
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"
}
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"
}
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
}
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"
}
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
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
}
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"
}
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
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
}
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"
}
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
}
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
}
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"
}
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
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
}
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"
}
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
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
}
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"
}
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
}
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
}
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."
}
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
}
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."
}
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
}
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."
}
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
}
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
}
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."
}
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
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
}
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."
}
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 |