Skip to content

Overview

Tailored Generation provides capabilities to generate visuals (photos, illustrations, vectors) that preserve and faithfully reproduce specific IP elements or guidelines, ensuring consistency across all generated outputs.

The Tailored Generation APIs allow you to manage and train tailored models that maintain the integrity of your visual IP. You can train models through our Console or implement training directly via API. Explore the Console here.

Fully Automated Training Mode Bria supports users in training high-quality finetuned models without the guesswork. Based on the selected IP type & dataset, Bria automatically selects the right training parameters. This means that the user only needs to spend time curating their dataset.

Advanced Customization and Access: Bria offers 2 types of advanced training customization: Expert training mode and source-code & weights.

  • Expert training mode is for LoRa Finetune experts and provides the ability to finetune training parameters and upload larger training datasets.
  • Source-code & Weights is for developers seeking deeper customization and access to Bria’s source-available GenAI models via Hugging Face.

All methods allow full control over fine-tuning, pipeline creation, and integration into proprietary workflows—empowering AI teams to develop and optimize their own generative AI solutions.

The Tailored Generation Training API provides a set of endpoints to manage the entire lifecycle of a tailored generation project:

  1. Project Management: Create and manage projects that define IP characteristics:
  • Create and Retrieve Projects: Use the /projects endpoints to create a new project or retrieve existing projects that belong to your organization.
  • Define IP Type: Specify the IP type (e.g., multi_object_set, defined_character, stylized_scene) and medium.
  • Manage Project Details: Use the /projects/{id} endpoints to update or delete specific projects.
  1. Dataset Management: Organize and refine datasets within your projects:
  • Create and Retrieve Datasets: Use the /datasets endpoints to create new datasets or retrieve existing ones.
  • Generate a Visual Schema (FIBO Models)
    • Required for fibo training versions
    • Use /tailored-gen/generate_visual_schema to create a structured visual schema using 5-10 sample images.
  • Generate Caption Prefix (Legacy Models)
    • Use /tailored-gen/generate_prefix to create a text-based prefix for legacy training versions.
  • Refine Structured Data
    • Use /tailored-gen/refine_structured_prompt to iterate on your Visual Schema or Image Captions using natural language instructions.
    • Example: You can send your generated schema with the instruction "Character's name is Lucy" to improve the training metadata programmatically.
  • Upload and Manage Images:
    • Basic upload: Use /datasets/{dataset_id}/images to upload up to 200 images individually.
    • Bulk upload: Use /datasets/{dataset_id}/images/bulk to upload zip files with >200 high-quality images (Advanced).
  • Clone Datasets: Create variations of existing datasets using the clone functionality.
  1. Model Management: Train and optimize tailored models based on your datasets:
  • Create and Retrieve Models: Use the /models endpoints to create new models or list existing ones.
  • Choose training mode: Select between Fully automated mode (automatic training based on Bria's recipes) and Expert mode (for training parameter tweaking).
  • Choose Training version: Select "Fibo" for best results.
  • Monitor and Control: Manage the model lifecycle, including training start/stop, status monitoring, and version control over the training parameters.
  1. Generation Capabilities:
  • Image Generation: Use v2/image/generate/tailored (FIBO) or v1/text-to-image/tailored (Legacy).
  • Structured Prompting: Use v2/structured_prompt/generate/tailored to create structured prompts via VLM before generation.
  • Video Generation: Use /video/generate/tailored/image-to-video to animate tailored images.

Training Process

To train a tailored model:

  1. Create a Project: Use the /projects endpoint to define your IP type and medium.
  2. Create a Dataset: Use the /datasets endpoint to create a dataset within your project.
  3. Define Visual Identity:
    • Step A (Generate): Call /tailored-gen/generate_visual_schema, sampling 5-10 images from your input set.
    • Step B (Refine - Optional): Call /tailored-gen/refine_structured_prompt with the generated schema and instructions to tweak the definitions (e.g., "Remove references to blue background").
    • Step C (Apply): Update the dataset with the final schema using /datasets/{dataset_id}.
  4. Upload Images: Upload images using the /datasets/{dataset_id}/images or /datasets/{dataset_id}/images/bulk endpoints (minimum resolution: 1024x1024px).
  5. Prepare Dataset: Review auto-generated captions (you can also use refine_structured_prompt to fix specific image captions) and update the dataset status to 'completed'.
  6. Create Model: Use the /models endpoint to create a model, which requires a training mode and version.
  7. Start Training: Initiate training via the /models/{id}/start_training endpoint. Training typically takes 4-6 hours.
  8. Monitor Progress: Check the training status using the /models/{id} endpoint until training is 'Completed'.
  9. Generate Images:
  • Use v2/image/generate/tailored for text-to-image generation.

Alternatively, manage and train tailored models through Bria's user-friendly Console.
Get started here.

Languages
Servers
https://engine.prod.bria-api.com/v2
https://engine.prod.bria-api.com/v1

Project

Manage your projects

Operations

Dataset

Manage training datasets

Operations

Model

Manage and train models

Operations

Create Model

Request

Create new model. Compatibility Rules: * FIBO Models: Must use a dataset with training_version = fibo. * Legacy Models: Must use a dataset with training_version in [max, light, 3.2, 2.3]. * Cross-Compatibility: * Legacy datasets are generally interchangeable (e.g., a max dataset can train a light model). * FIBO is isolated. You cannot train a legacy model on a FIBO dataset or vice versa.

Headers
api_tokenstringrequired
Bodyapplication/jsonrequired
namestring

Name of the model (required)

dataset_idinteger

ID of the dataset to use (required)

training_modestring

Defines the training configuration strategy.

  • fully_automated: Get good results without the guesswork. Automatically configures the training recipe based on dataset size and IP medium/type.
  • expert: Designed for experienced users needing control over training parameters and support for larger datasets.
Default "fully_automated"
Enum"fully_automated""expert"
training_versionstring

Defines the foundational model used for fine-tuning. Must be compatible with the dataset's training_version.

Enum"light""max""bria-2.3""bria-3.2""fibo"
descriptionstring

Description of the model (optional)

curl -i -X POST \
  https://engine.prod.bria-api.com/v1/tailored-gen/models \
  -H 'Content-Type: application/json' \
  -H 'api_token: string' \
  -d '{
    "name": "Lora Character Model",
    "dataset_id": 456,
    "training_mode": "fully_automated",
    "training_version": "max",
    "description": "A model trained on Lora character illustrations"
  }'

Responses

Model successfully created

Bodyapplication/json
idinteger

Unique identifier for the model

namestring

Name of the model

descriptionstring

Description of the model

statusstring

Status of the model

Value"Created"
training_versionstring

Training version

Enum"light""max""bria-2.3""bria-3.2"
training_modestring

Training configuration strategy

Enum"fully_automated""expert"
generation_prefixstring or null

Text automatically prepended to prompts.

  • For fibo models: Null.
  • For legacy models: String matching the dataset's caption_prefix.
project_idinteger

ID of the project this model belongs to

dataset_idinteger

ID of the dataset used for training

created_atstring(date-time)

Timestamp when the model was created

updated_atstring(date-time)

Timestamp when the model was last updated.

custom_metadatastring

Custom metadata associated with the model.

active_model_versionstring

The active version (checkpoint) of the model. becomes relevant after a training has been completed.

training_parametersobject

The training parameters used for the model. will be filled using the /start_training endpoint.

checkpoint_stepsArray of strings

A list of checkpoints saved for the model. will be filled using the /start_training endpoint.

Response
application/json
{ "id": 12233, "name": "Test Model", "description": "Test description", "status": "Created", "dataset_id": 13748, "training_version": "bria-3.2", "training_mode": "expert", "generation_prefix": "An illustration of ", "project_id": 12429, "created_at": "2025-08-20T06:06:05.849402", "updated_at": "2025-08-20T06:06:05.849404", "custom_metadata": "", "active_model_version": "default", "training_parameters": {}, "checkpoint_steps": [] }

Get Models

Request

Retrieve a list of models. If there are no models, an empty array is returned.

Query
include_training_parametersboolean

If true, includes detailed training parameters and checkpoint steps in the response.

Default false
Headers
api_tokenstringrequired
curl -i -X GET \
  'https://engine.prod.bria-api.com/v1/tailored-gen/models?include_training_parameters=false' \
  -H 'api_token: string'

Responses

Successfully retrieved models

Bodyapplication/jsonArray [
idinteger

Unique identifier for the model

namestring

Name of the model

descriptionstring

Description of the model

statusstring

Status of the model

Enum"Created""InProgress""Completed""Failed""Stopping""Stopped"
training_modestring

training mode

Enum"fully_automated""expert"
training_versionstring

Training version

Enum"fibo""light""max""bria-2.3""bria-3.2"
active_model_versionstring

The active version (checkpoint) of the model

training_parametersobject

The training parameters used for the model.

training_parameters.​learning_ratenumber(float)
training_parameters.​lr_schedulerstring
training_parameters.​rankinteger
training_parameters.​total_training_stepsinteger
training_parameters.​checkpoint_intervalinteger
training_parameters.​lr_warmup_stepsinteger or null

Number of warmup steps used. Value is an integer if lr_scheduler is constant_with_warmup, otherwise null.

checkpoint_stepsArray of strings

A list of checkpoint steps for the model. Only included when include_training_parameters=true

generation_prefixstring or null

Text automatically prepended to prompts.

  • For fibo models: Null.
  • For legacy models: String matching the dataset's caption_prefix.
project_idinteger

ID of the project this model belongs to

dataset_idinteger

ID of the dataset used for training

created_atstring(date-time)

Timestamp when the model was created

]
Response
application/json
[ { "id": 789, "name": "Lora Character Model", "description": "A model trained on Lora character illustrations", "status": "Completed", "training_mode": "fully_automated", "training_version": "max", "active_model_version": "default", "training_parameters": {}, "checkpoint_steps": [], "generation_prefix": "An illustration of a character named Lora, a female character with purple hair,", "project_id": 123, "dataset_id": 456, "created_at": "2024-05-26T12:00:00Z" }, { "id": 790, "name": "Max Character Model", "description": "A model trained for better generation", "status": "Completed", "training_mode": "expert", "training_version": "bria-3.2", "active_model_version": "1500", "training_parameters": { "learning_rate": 0.001, "lr_scheduler": "constant", "lr_warmup_steps": null, "rank": 128, "total_training_steps": 1500 }, "checkpoint_steps": [ "1500", "1000", "500" ], "generation_prefix": "An illustration of a character named Max, a male character with spiky black hair,", "project_id": 123, "dataset_id": 457, "created_at": "2024-05-27T09:00:00Z" } ]

Upload Model

Request

This API allows users to upload a pre-trained tailored model to Bria’s infrastructure, and run them within Bria’s ecosystem.

Important Note:: If you wish to upload a FIBO-based model, contact us for support. Model has to be in .safetensors format. Maximum model size supported is 3GB.

You can find out the model's status by using the /tailored-gen/models/{model_id} route. Potential statuses are: "syncing" or "completed".

Headers
api_tokenstringrequired

API authentication token.

Bodyapplication/jsonrequired
model_urlstringrequired

URL of the tailored model file to be uploaded.

training_versionstringrequired

Training version

Enum"bria-2.3""bria-3.2"
model_namestring

Name of the new tailored model.

caption_prefixstring

Words automatically appended to prompts when running the model.

project_idinteger

ID of the project the model should be assigned to. If omitted, a new project will be created.

project_parametersobject

Parameters for creating a new project, required only if project_id is not provided.

project_parameters.​project_namestring

Name of the project.

project_parameters.​ip_mediumstring

Medium of the IP.

Enum"photography""illustration"
project_parameters.​project_descriptionstring

Description of the project.

project_parameters.​ip_typestring

Type of IP for the project.

Default "other"
Enum"multi_object_set""object_variants""icons""defined_character""character_variants""stylized_scene""other"
curl -i -X POST \
  https://engine.prod.bria-api.com/v1/tailored-gen/models/upload_model \
  -H 'Content-Type: application/json' \
  -H 'api_token: string' \
  -d '{
    "model_url": "string",
    "training_version": "bria-2.3",
    "model_name": "string",
    "caption_prefix": "string",
    "project_id": 0,
    "project_parameters": {
      "project_name": "string",
      "ip_medium": "photography",
      "project_description": "string",
      "ip_type": "multi_object_set"
    }
  }'

Responses

Successful model upload

Bodyapplication/json
idinteger
namestring
descriptionstring
statusstring
training_versionstring
generation_prefixstring
project_idinteger
dataset_idinteger
created_atstring(date-time)
Response
application/json
{ "id": 789, "name": "Lora Character Model", "description": "A model trained on my character", "status": "Completed", "training_version": "max", "generation_prefix": "An illustration of a character purple hair,", "project_id": 123, "dataset_id": 456, "created_at": "2024-05-26T12:00:00Z" }

Image Generation V2

Generation using FIBO models

Operations

Image Generation (Legacy)

Generation using Legacy models

Operations

Video Generation

Image-to-Video capabilities

Operations