curl --request POST \
--url https://geoff.ai/api/v1/training/lora/image \
--header 'Authorization: Bearer <token>' \
--header 'X-Stack-Id: stk_jmqog66ha0mugmro' \
--header 'Content-Type: application/json' \
--data '{
"dataset": "https://files.geoff.ai/datasets/my_brand_pack.zip",
"name": "my_brand_style"
}'
{
"data": {
"task_id": "trn_img_abc123",
"name": "my_brand_style",
"status": "queued"
},
"trace_id": "04ede0ab069fb1ba8be5156a24b1e081"
}
LoRA Training
Train Image LoRA
Train a LoRA adapter on an image dataset. Returns a task id for status polling.
POST
/
v1
/
training
/
lora
/
image
curl --request POST \
--url https://geoff.ai/api/v1/training/lora/image \
--header 'Authorization: Bearer <token>' \
--header 'X-Stack-Id: stk_jmqog66ha0mugmro' \
--header 'Content-Type: application/json' \
--data '{
"dataset": "https://files.geoff.ai/datasets/my_brand_pack.zip",
"name": "my_brand_style"
}'
{
"data": {
"task_id": "trn_img_abc123",
"name": "my_brand_style",
"status": "queued"
},
"trace_id": "04ede0ab069fb1ba8be5156a24b1e081"
}
Train a lightweight LoRA adapter on a curated image dataset to
capture a style, subject, or aesthetic. The trained adapter is
addressable by the
name you supply and can be passed to any
LoRA-aware image generation tool.
Authorization
string
required
Bearer token.
Bearer API_key.Request Body
string
required
Reference to the training dataset. Accepts either:
- A URL to a zip archive of training images
- A file id returned from file upload
string
required
Stable snake-case identifier for the trained adapter. Used as the
lora_name field when passing the adapter to image generation
calls. Lowercase letters, digits, and underscores only.curl --request POST \
--url https://geoff.ai/api/v1/training/lora/image \
--header 'Authorization: Bearer <token>' \
--header 'X-Stack-Id: stk_jmqog66ha0mugmro' \
--header 'Content-Type: application/json' \
--data '{
"dataset": "https://files.geoff.ai/datasets/my_brand_pack.zip",
"name": "my_brand_style"
}'
{
"data": {
"task_id": "trn_img_abc123",
"name": "my_brand_style",
"status": "queued"
},
"trace_id": "04ede0ab069fb1ba8be5156a24b1e081"
}
Status polling
Poll Training Status with the returnedtask_id until status is completed. The completed
adapter is then addressable by its name everywhere LoRAs are
supported.
Tips
- Dataset size: 10–30 images for style adapters; up to 100 for subject adapters with diverse viewpoints.
- Resolution: 1024×1024 is the sweet spot. Mixed aspect ratios are fine: they’re center-cropped server-side.
- Caption format: include caption text files alongside images inside the zip when you want explicit guidance; otherwise the trainer auto-captions via a VL pre-step.
string
default:"stk_jmqog66ha0mugmro"
required
Supplied automatically by the documentation playground.