Fast Flux fine tuning API
This documentation outlines the API endpoints for initiating and managing Fast Flux fine-tuning requests in Segmind.
Base URL
https://api.segmind.com
Authentication
All requests require an API key for authentication. Include the API key in the headers as follows:
--header 'x-api-key: YOUR_API_KEY'
1. Initiate Fine-Tune Request
Description
Initiate a new fine-tuning request.
Request
Headers
x-api-key
: Your API key.Content-Type
: Should beapplication/json
.
Dataset (data_source_path)
data_source_path
: A URL pointing to a ZIP file containing your training dataset.Purpose
: Specifies the dataset source for fine-tuning. Must be a valid public URL or a Segmind public URL.Options
: "Public ZIP URL (must support GET & HEAD requests)", "Segmind Public URL using Presigned (public)"Descriptions
: -Public ZIP URL
: Must be directly accessible and respond properly to both HEAD and GET requests with headers like Content-Length. -Segmind Presigned URL
: Use Segmind Presigned URL endpoint with public as true to upload as public zip file. -File Size Limit
: The ZIP file must be under 100 MB in size. Larger files will be rejected or failed by the system.
Body
The request body must be in JSON format.
Request
curl --location 'https://api.segmind.com/finetune/request/submit' \
--header 'x-api-key: YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data '{
"name": "fastfluxtest1",
"data_source_path": "Segmind-hosted Public ZIP URL (uploaded via presigned link with public access)" or "any public zip url",
"instance_prompt": "1MAN, running in brown suit",
"trigger_word": "1MAN",
"base_model": "FAST_FLUX",
"theme": "subject",
"segmind_public": false,
"advance_parameters": {
"steps": 2000,
"face_crop": false,
"finetune_type": "LORA"
}
}'
Sample Response
{
"status": "REQUESTED",
"finetune_id": "uuid",
"name": "fine-tune-job-name"
}
2. Get the Details of Individual Fine-Tune Request
Description
Retrieve a fine-tuning request along with details.
Request
curl --location --request GET 'https://api.segmind.com/finetune/request/details' \
--header 'x-api-key: YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data '{
"request_id": "FINETUNE_ID"
}'
Sample Response
{
"finetune": {
"id": "uuid",
"finetune_id": "uuid",
"name": "fine-tune-job-name",
"data_source_path": "https://your-bucket.s3.amazonaws.com/path/to/dataset.zip",
"instance_prompt": "sample instance prompt",
"status": "AVAILABLE",
"source_type": "AWS_S3",
"base_model": "BASE_MODEL_NAME",
"slug": "model-slug",
"public_model": false,
"error_message": null,
"cloud_storage_url": "https://your-bucket.s3.amazonaws.com/path/to/model.safetensors",
"created_ts": "2025-01-01T00:00:00Z",
"updated_ts": "2025-01-01T00:00:00Z"
}
}
3. Get the List of Fine-Tune Requests
Description
Retrieve a list of fine-tuning requests along with their details.
Request
curl --location 'https://api.segmind.com/finetune/request/list' \
--header 'x-api-key: YOUR_API_KEY'
Sample Response
[
{
"id": "uuid",
"data_source_path": "https://your-bucket.s3.amazonaws.com/path/to/dataset.zip",
"name": "fine-tune-job-name",
"status": "AVAILABLE",
"error_message": null,
"segmind_model_path": null,
"advance_parameters": {
"steps": 10,
"learning_rate": 0.0001,
"prompt": "sample prompt",
"theme": "sample-theme"
},
"segmind_public_model": false,
"train_type": "LORA",
"source_type": "AWS_S3",
"base_model": "BASE_MODEL_NAME",
"theme": "sample-theme",
"cloud_storage_url": null,
"finetune_id": "uuid",
"model_information": {}
}
]
4. Get Fine-Tune Data Upload Pre-Signed URL
Description
Obtain a public pre-signed URL to securely upload fine-tuning data to cloud storage. This URL allows you to upload data directly from your local system or application without needing AWS credentials.
Usage
Call this endpoint to generate a temporary public pre-signed URL. Use the returned URL to upload your dataset file to the specified location via a PUT request.
Request
curl --location --request GET 'https://api.segmind.com/finetune/request/upload/pre-signed-url' \
--header 'x-api-key: YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data '{
"name": "NAME_OF_THE_FILE",
"extension": ".zip",
"public": true
}'
Sample Response
{
"presigned_url": "https://finetune-pipeline.s3.amazonaws.com/uploads/{user_id}/{file_id}-{filename}.zip?X-Amz-Algorithm=...&X-Amz-Signature=...",
"s3_url": "https://finetune-pipeline.s3.amazonaws.com/uploads/{user_id}/{file_id}-{filename}.zip"
}
Upload File Using the Pre-Signed URL
Once you have the presigned_url, upload your dataset file using the following curl command:
Request
curl -X PUT \
-T your_dataset.zip \
-H "Content-Type: application/zip" \
-H "x-amz-acl: public-read" \
"PRESIGNED_URL"
Note
Replace your_dataset.zip with your actual local file name.
Replace PRESIGNED_URL with the exact presigned_url value received in the previous step.
The x-amz-acl: public-read header is required if the pre-signed URL is generated with public read access.
5. Update Fine-Tuned Model Access
Description
Update the access settings of a fine-tuned model (public/private).
Request
curl --location --request PUT 'https://api.segmind.com/finetune/request/access-update' \
--header 'x-api-key: YOUR_API_KEY' \
--form 'request_id="FINETUNE_REQUEST_ID"' \
--form 'segmind_public="True"'
Sample Response
200
6. Download the Fine-Tuned Safetensor File
Description
Fast Fine-tuned model weight files (.safetensors) are now publicly accessible via the cloud_storage_url. You can download them directly without generating a pre-signed URL or using AWS credentials.
Request
curl -L "https://storage.googleapis.com/<bucket-name>/<model-id>.safetensors" -o model.safetensors
Sample Response
https://storage.googleapis.com/my-finetune-bucket/abc12345/model.safetensors
Webhooks
Webhooks provide a way to get real-time updates about finetuning jobs programmatically. You can register a webhook for finetuning jobs in the Developer tab on console.
Once a webhook is created, test it, by having it send a sample payload to verify delivery. Once its up, create a finetuning job to receive status updates. Events are sent to webhooks on 3 status changes:\
TRAINING_COMPLETED
: The training is completed on model, and finetuned model is available for download on thetrained_model_url
.INFERENCE_QUEUED
: Model is being deployed on Segmind inference engine.AVAILABLE
: Model is deployed, and ready for inferences oninference_api_url
Note: You can create only 1 webhook at a time for finetune jobs. If you want to change the webhook, please delete the old webhook before creating a new one.
Last updated