Training Studio (/platform/studio) is where you turn examples into your own model assets — image and video LoRAs for a consistent character, product, or style, and voice clones for narration — then bind them into workflows. Four tabs: Datasets, Train, Evaluate, Library. Training requires a paid plan. Legacy /assets redirects here.
Want the guided path? Train a character pack (/platform/studio?recipe=character, also reachable from chat Train character) chains the loop — create dataset → upload photos → train → pick checkpoint → Use character — as one wizard. Progress is saved per organization.
1. Datasets
A dataset is a curated collection of training items — images, video clips, or voice samples — with captions and an optional trigger word.
- Two sources: upload files directly, or add artifacts from your own runs with the Add from my recent run outputs picker. The second one matters: generate → keep the best results → train on them is the core Studio loop.
- Pre-train readiness checklist: each dataset shows whether it’s trainable at a glance — minimum item counts (8 images / 6 clips / 1 voice sample), caption coverage, scan status, and any blocked items. Items sit pending while the scan runs; a scan that failed for infrastructure reasons can be retried with Rescan.
- Every item is moderated before it becomes trainable — adult / photoreal / NSFW character photos are allowed. The scan hard-blocks only sexualized-minor suspicion (or an infra scan failure); age-alone does not block.
- Voice consent (required for voice datasets and for publishing a voice asset): you must record the voice owner’s name, your relationship to them, the permitted use scope, and an explicit acknowledgment that consent can be revoked. Training and Discover publish both enforce this — a voice job won’t start without a valid record.
- Items are auto-captioned after the scan; edit captions freely, one at a time or with bulk caption save — caption quality is the highest-leverage input to LoRA quality.
- Dataset storage counts against your plan’s asset budget (2 GB free / 20 GB starter / 100 GB pro+).
2. Training jobs
Pick a dataset, a job type, and a preset (character / style / product / motion / narration). Advanced settings (steps, rank, learning rate) are available within safe bounds.
| Type | Trains | Dataset size | Base price |
|---|---|---|---|
| Image LoRA | a subject or style for image generation | 8–400 images | 60 cr |
| Video LoRA | a look or motion for video generation | 6–200 clips | 200 cr |
| WAN dual-expert pair | a paired video adaptation for the WAN engine | 6–200 clips | 300 cr |
| Voice clone | a narration voice | 1–25 samples | 30 cr |
Prices cover the default step budget; extra steps price incrementally and are shown before you start. Failed jobs auto-refund.
While a job is running, the Train tab shows a live progress bar (phase + percent) so you can see whether the trainer is still warming up, stepping, or rendering sample grids.
3. Checkpoints — you pick the winner
LoRA training saves a checkpoint per epoch, and each checkpoint renders an automatic sample grid (fixed prompts, locked seeds, so grids compare fairly). When the job finishes, you review the grids and pick the checkpoint that becomes your asset version — never “last epoch by default”, because the last epoch is often overcooked. Unpicked checkpoints expire after 14 days.
Each pick becomes a new version of the asset in your Library. Workflows bind specific versions, so improving an asset never silently changes a published workflow.
4. Evaluations — blind A/B
The Evaluate tab answers “which version is actually better, and at what weight?” without kidding yourself:
- Choose candidate versions (and weights, plus a no-asset control — up to 8 variants) and a prompt set: the built-in pack for the asset type, custom prompts, or held-out captions from your dataset.
- The evaluation generates every variant × prompt cell with locked seeds, then shows results pairwise and blind — you vote before identities are revealed.
- Promote winner sets the asset’s default version and recommended weight in one click.
Generation cells bill standard credits; the comparison tooling is free.
5. Library and publishing
Library holds every asset you own — trained here, uploaded, or imported from Civitai / Hugging Face by URL (imports carry a provenance attestation and a license check). Per-file upload ceilings: LoRA / LoRA pair ≤ 2 GB, LUT ≤ 10 MB, font ≤ 5 MB, voice sample ≤ 100 MB. A non-empty license note is required on import and on Discover publish.
Each asset carries a runnable / library-only / pending badge. Assets trained in the Studio are engine-resident and runnable immediately. Imported or uploaded weight files are honest about their status: they’re library-only until their base-model family is hostable on the platform’s engines (krea2, ltx, wan, hunyuan, and ElevenLabs voices — flux/sdxl files have no hosting engine today). The character pack recipe is the supported path to an asset that runs right now.
Publishing an asset that never won a blind evaluation prompts a confirmation first — Discover favors assets whose quality was actually proven.
From an asset you can:
- Bind it into a workflow — Use character from Studio pins the Character chip (krea2 Character engine). Incompatible leaves (Seedream plain-images, Kling/Grok) tell you to switch engine rather than applying silently.
- Publish it to Discover: a sample grid plus provenance goes to moderation; delisting later never breaks workflows that already bound it.
- Cast / style packs — save a named bundle of asset version pins (optional voice) and Apply pack from the workflow Spec panel to fill default bindings in one click.
Uploads never train platform models — your datasets and assets are yours, scoped to your organization.
6. Over the API and MCP
The whole loop is programmable — see API & MCP and the developer reference:
POST $PLATFORM_API_URL/datasets
POST $PLATFORM_API_URL/datasets/{id}/items
POST $PLATFORM_API_URL/training-jobs
KEEP worker /api/v1/datasets still exists for Studio Inngest; new integrations should use platform-api. See API & MCP and the developer reference.
When training finishes you pick a checkpoint in Studio. MCP agents use the platform tool inventory (not worker OAuth /mcp, which returns 410).