POST
/
v1
/
training
/
lora
/
video
curl --request POST \
  --url https://geoff.ai/api/v1/training/lora/video \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
    "dataset": "https://files.geoff.ai/datasets/my_motion_pack.zip",
    "name": "drone_pullback"
  }'
{
  "data": {
    "task_id": "trn_vid_abc123",
    "name": "drone_pullback",
    "status": "queued"
  },
  "trace_id": "04ede0ab069fb1ba8be5156a24b1e081"
}
Train a LoRA adapter on a curated video dataset. Captures motion patterns, camera language, or stylistic treatments that the base video models don’t expose directly.

Authorization

Authorization
string
required
Bearer token. Bearer API_key.

Request Body

dataset
string
required
Reference to the training dataset. Accepts either:
  • A URL to a zip archive of training clips (mp4 / mov)
  • A file id returned from file upload
name
string
required
Stable snake-case identifier for the trained adapter. Passed as lora_name on video generation calls.
curl --request POST \
  --url https://geoff.ai/api/v1/training/lora/video \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
    "dataset": "https://files.geoff.ai/datasets/my_motion_pack.zip",
    "name": "drone_pullback"
  }'
{
  "data": {
    "task_id": "trn_vid_abc123",
    "name": "drone_pullback",
    "status": "queued"
  },
  "trace_id": "04ede0ab069fb1ba8be5156a24b1e081"
}

Tips

  • Clip length: 3–10 seconds per clip is ideal; longer clips are automatically chunked.
  • Dataset size: 8–20 clips for motion adapters.
  • Camera consistency: when training a camera-move adapter, keep the lensing and movement consistent across the dataset.
  • Status: poll Training Status with the returned task_id.