---
title: "Discover LoRA trainers and compatible models"
method: GET
path: "/loras/trainers"
tags: ["LoRAs"]
---

# Discover LoRA trainers and compatible models

`GET /loras/trainers`

## Request

- Base URL: `https://app.flora.ai/api/v1`
- URL: `https://app.flora.ai/api/v1/loras/trainers`
- Auth: HTTP bearer

Returns available LoRA families, selected trainers, image limits and supported training parameters with the same effective defaults as the web Train dialog for a dataset without manual labels. Also returns compatible visible inference model IDs and their parameter defaults/ranges. Pass the base_model key to POST /loras/train; when its saved Style is ready, use params.lora_id with one of the compatible inference models. Trainer image inputs and fixed output formats are managed by the training service and are not caller-configurable.

## Query parameters

- `workspace_id` string, required: Workspace for trainer discovery and subsequent training

## Response `200`

Available LoRA trainers returned.

- object
  - `trainers` object[], required: Available trainers using the same visibility and selection rules as the web Train dialog
    - `base_model` string, required: Family key to pass as base_model when training
    - `model_id` string, required: Selected trainer endpoint identifier; use the LoRA training endpoint to invoke it
    - `name` string, required: Trainer display name
    - `image_count` object, required: Image-count limits enforced by the shared training flow
      - `min` integer, required: Minimum number of training images
      - `max` integer, required: Maximum number of training images
    - `image_extensions` string[], required: Accepted training-image formats
    - `params` object[], required: Caller-configurable trainer parameters with effective web/API defaults for a dataset without manual labels. Pass overrides in trainer_params.
      - `name` string, required: Parameter name to pass in generation params
      - `type` 'string' | 'string[]' | 'bool' | 'int' | 'int?' | 'seed' | 'float' | 'dict', required: Parameter value type
      - `required` boolean, required: Whether the model requires this parameter
      - `default` unknown
      - `min` number: Minimum numeric value
      - `max` number: Maximum numeric value
      - `label` string: Human-readable parameter label
      - `description` string: Parameter help text
      - `options` object[]: Allowed values for enum-like parameters
        - `label` string, required: Displayed option label
        - `value` string, required: Option value to pass in generation params
        - `description` string: Option description
      - `properties` object: Nested numeric properties for object parameters
    - `inference_models` object[], required: Visible inference models accepting this trainer's family
      - `model_id` string, required: Compatible inference endpoint identifier for POST /generate
      - `name` string, required: Inference model display name
      - `lora_id_parameter` 'lora_id', required: Put the returned sty_ Style identifier in this params field
      - `params` object[], required: Inference parameters, including the model's strength default and range
        - `name` string, required: Parameter name to pass in generation params
        - `type` 'string' | 'string[]' | 'bool' | 'int' | 'int?' | 'seed' | 'float' | 'dict', required: Parameter value type
        - `required` boolean, required: Whether the model requires this parameter
        - `default` unknown
        - `min` number: Minimum numeric value
        - `max` number: Maximum numeric value
        - `label` string: Human-readable parameter label
        - `description` string: Parameter help text
        - `options` object[]: Allowed values for enum-like parameters
          - `label` string, required: Displayed option label
          - `value` string, required: Option value to pass in generation params
          - `description` string: Option description
        - `properties` object: Nested numeric properties for object parameters

## Other responses

- `400`: 400
- `401`: 401
- `402`: 402
- `403`: 403
- `404`: 404
- `409`: 409
- `429`: 429
- `500`: 500
- `503`: 503

## Changes

- **2026-10-28** `a8351619f225`: 9 warning
  - added the new `not_configured` enum value to the `error/code` response property for the response status `400`
  - added the new `not_configured` enum value to the `error/code` response property for the response status `401`
  - added the new `not_configured` enum value to the `error/code` response property for the response status `402`
  - added the new `not_configured` enum value to the `error/code` response property for the response status `403`
  - …5 more
- **2026-10-16** `e54130373b10`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/florafauna-ai/apis/flora-ai-api/changes/loras/trainers/get.md)

---

[API](https://skmtc.dev/florafauna-ai/apis/flora-ai-api.md) - [All operations](https://skmtc.dev/florafauna-ai/apis/flora-ai-api/llms.txt) - [OpenAPI document](https://skmtc.dev/florafauna-ai/apis/flora-ai-api/revisions/87cfe2c4ac29?raw)
