Private by default
Datasets and LoRA weights stay behind your Hypereal account and storage permissions.
Fixed run pricing
Each trainer is priced at base training cost plus 15% Hypereal margin.
Refund-aware jobs
Submit failures, upstream failures, and pre-delivery cancellations refund the held credits.
Trainers
Curated image and video LoRA runs.
Prices are whole-run credit holds. One credit equals $0.01, and failed or cancelled pre-delivery runs refund the hold.
Flux Dev (LoRA)
flux-dev-lora
Photorealistic image style/character LoRA. Best general purpose pick.
Qwen Image (LoRA)
qwen-image-lora
Image LoRA tuned for the Qwen-Image base. Strong on illustration.
Wan 2.2 Image (LoRA)
wan-2.2-image-lora
High-resolution image LoRA on Wan 2.2. Returns dual high/low-noise weights.
Wan 2.2 I2V (LoRA)
wan-2.2-i2v-lora
Image-to-video LoRA on Wan 2.2. Train on short video clips.
API workflow
One local API contract for the whole training lifecycle.
Customers never handle provider job ids. Hypereal validates the dataset owner, holds credits, submits the trainer, reconciles completion, copies outputs, and exposes a stable local job id.
- 01
Upload a dataset
Store one zip of images or short clips as a private dataset object.
kind=dataset - 02
Start a training job
Choose a curated LoRA trainer and send optional hyperparameters.
POST /v1/training/jobs - 03
Poll or cancel
Read progress by local job id, or cancel before delivery for refund.
GET /v1/training/jobs/{id} - 04
Download weights
Completed jobs copy private .safetensors outputs into Hypereal R2.
outputObjectId
Request
curl -X POST https://api.hypereal.cloud/v1/training/jobs \
-H "Authorization: Bearer ck_..." \
-H "Content-Type: application/json" \
-d '{
"name": "brand-character-lora",
"baseModel": "flux-dev-lora",
"datasetObjectId": "sto_...",
"hyperparams": {
"triggerWord": "ohwx",
"steps": 1000,
"learningRate": 0.0004,
"loraRank": 16
}
}'Response
{
"id": "job_...",
"name": "brand-character-lora",
"baseModel": "flux-dev-lora",
"status": "queued",
"progressPercent": 0,
"creditsCharged": 115
}
