> ## Documentation Index
> Fetch the complete documentation index at: https://support.myapps.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Model Training

> Train custom LoRA models for personalized image generation

**Model Training** trains a **LoRA** — a small custom model that teaches Pixio a specific subject, character, style, or product from your own images. Once trained, you trigger it from a prompt in [Generate](/generate).

<Info>
  LoRA training requires **Premium** or above. **Maker Mode** removes the limit on how many you keep. See [Credits & Plans](/credits).
</Info>

## What you can train

| Training style | Use it for                              |
| -------------- | --------------------------------------- |
| **Subject**    | A specific person, animal, or object    |
| **Character**  | A recurring character across images     |
| **Style**      | A look or aesthetic rather than a thing |
| **Product**    | A product rendered consistently         |
| **General**    | Everything else                         |

## Model types

| Type                  | Notes                                                                                         |
| --------------------- | --------------------------------------------------------------------------------------------- |
| **Flux Dev**          | General-purpose starting point                                                                |
| **Flux Dev Portrait** | Tuned for faces and people                                                                    |
| **Flux Pro**          | Highest quality — takes around **15 minutes**, and uses a Finetune ID rather than a Model URL |
| **Flux Turbo**        | Fastest; cost scales with step count                                                          |

<Warning>
  **Flux Pro training can take about 15 minutes — don't refresh the page until it completes.**
</Warning>

## Setting up a training run

<Steps>
  <Step title="Upload your dataset">
    Upload individual images or a zip archive. There's a minimum and maximum image count — the form tells you if you're outside it.
  </Step>

  <Step title="Name it and set a trigger word">
    The **trigger word** is what you type in a prompt to invoke the LoRA. Pick something distinctive that won't collide with ordinary vocabulary.
  </Step>

  <Step title="Choose model type and training style">
    See the tables above. Portrait for faces, Style when you're teaching a look rather than a subject.
  </Step>

  <Step title="Set steps">
    More steps can mean better quality and cost more credits. Start moderate.
  </Step>

  <Step title="Options">
    **Face crop** for people, **Is Style** when teaching an aesthetic, a fine-tune comment, and resume-from-checkpoint to continue a previous run.
  </Step>

  <Step title="Start training">
    The job is queued and appears under **Active Jobs**.
  </Step>
</Steps>

## Dataset quality

This is where results are won or lost — far more than in the settings:

* **Variety beats volume.** Different angles, lighting, and backgrounds teach the subject; twenty near-identical shots teach the background.
* **Consistent subject, varied context.** The thing you're training should be the only constant.
* **Crop to the subject.** Don't make the model guess what it's learning.
* **Quality in, quality out.** Blurry or low-resolution inputs produce a blurry LoRA.
* **For style**, use images sharing the aesthetic but *not* the subject — otherwise you train the subject by accident.

<Tip>
  A bad dataset can't be fixed with more steps. If a LoRA won't converge, rebuild the dataset rather than paying for a longer run.
</Tip>

## Credits

Training costs credits, and cost scales with step count on Flux Turbo. If your balance is short, training won't start — you'll be told to add credits and try again. **Check your balance before starting a long run.**

## Using your LoRA

Once trained, it appears in [Generate](/generate) for models that support custom weights. Include the **trigger word** in your prompt to invoke it.

<Info>
  Starting and cancelling training jobs is app-only — you can read training *status* through the API but not start a job. See [what you can automate](/integrations/what-you-can-automate).
</Info>
