# Models & capabilities

A **model** is an AI engine you can run. Layer exposes 500+ built-in models plus any custom styles your team has trained, all through the same endpoints.

## Listing and filtering

`GET /v1/workspaces/{id}/models` lists the models available in a workspace. It’s [paginated](/docs/pagination) and supports filtering:

| Filter                                           | Purpose                                     |
| ------------------------------------------------ | ------------------------------------------- |
| modality                                         | One of image, video, three\_d, audio, text. |
| search                                           | Free-text search over name/description.     |
| supports\_reference\_images                      | Models that accept reference images.        |
| inpainting, outpainting                          | Masked edit support.                        |
| text\_to\_3d, image\_to\_3d                      | 3D generation modes.                        |
| text\_to\_speech, sound\_effect, generate\_audio | Audio modes.                                |

```bash
curl "https://api.app.layer.ai/api/v1/workspaces/$WORKSPACE_ID/models?modality=image&inpainting=true" \
  -H "Authorization: Bearer $LAYER_TOKEN"
```

## Model details

`GET /v1/workspaces/{id}/models/{model_id}` returns the full record, including:

* **`capabilities`** — what the model supports (session modes, accepted guidance file types, duration ranges, and per-modality flags).
* **`inference_timing`** — a rough runtime estimate (e.g. `"5–15s"`).
* **`base_model_id`** — the underlying base model (e.g. `flux_2_pro`, `kling_v3_pro`).
* **`prompt_format`** — how prompts should be structured for this model.

Use these to decide which model fits a task and how to shape the request before you [estimate](/docs/creative-units) and [run](/docs/async-jobs) it.

## Custom trained styles

Team-trained styles appear alongside built-in models in the same list. For adapter-backed styles (LoRA), the forge `weight` parameter (range **0–2**, default `1.0`) controls style strength.

Note

`weight` only affects models with a trainable adapter — it’s ignored for base models that don’t have one.

Which base models and modalities are available can vary by workspace, based on its plan and configuration.
