Skip to content

Character training API

Upload 4–30 photos of one person, wait about ten minutes, and get back a character id. Reference that id on any generation call and you get the same person, consistently, in any scene you can describe.

Price
$0.75 / training
Training photos
4–30

Varied angles, lighting, expressions

Training time
~10 min

At the default 1000 steps

Free slots
2

Per account, then monthly packages

How it works

Training runs as a job like everything else: POST the photos, poll the character until its status is ready, then use it. Behind the scenes it fits a LoRA against one of the SDXL checkpoint families and stores it server-side.

You never handle a LoRA file. The API does not accept or return weights — the character is referenced by id, and the server resolves the file and its trigger token at generation time.

  • Choose the family at training time: general-image (photoreal), anime, or cartoon
  • A character is usable on any model in the family it was trained against
  • Photos are kept so a character can be retrained for free if needed
  • Delete a character at any time and the weights go with it

Train a character

Send public https URLs rather than base64 — the request body has to stay under about 4 MB.

curl
curl https://api.fastgencloud.com/v1/characters \
  -H "Authorization: Bearer $FASTGEN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
      "name": "Ada",
      "class": "woman",
      "base_model": "general-image",
      "images": [
        "https://example.com/1.jpg",
        "https://example.com/2.jpg",
        "https://example.com/3.jpg",
        "https://example.com/4.jpg"
      ]
    }'

Generate the trained character

Once the character reports status "ready", reference it by id on a normal generation call.

curl
curl https://api.fastgencloud.com/v1/images/generations \
  -H "Authorization: Bearer $FASTGEN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
      "model": "general-image",
      "prompt": "a woman in a linen shirt reading at a cafe table, soft afternoon light, shallow depth of field",
      "character": {
        "id": "chr_0123456789ab"
      },
      "size": "832x1216"
    }'

Choosing training photos

Photo quality determines likeness far more than step count does.

  • One person per photo, face clearly visible
  • Vary angle, distance, lighting and expression — 10–20 varied photos beat 30 near-identical ones
  • Avoid heavy filters, sunglasses, motion blur and group shots
  • The default 1000 steps suits most sets; more steps tighten likeness but can overfit a small set

Pricing and slots

Each training run is billed once from your wallet. Storing a trained character occupies a slot: every account gets two free, and monthly packages add more.

If a package lapses, characters enter a grace period before being archived — and the original photos are retained so you can retrain without re-uploading.

Frequently asked questions

How is this different from the Face ID API?
Face ID needs one photo and works instantly but the likeness is approximate. Training needs 4–30 photos and about ten minutes, and gives a much tighter, reusable likeness. Use Face ID for one-off scenes, training for a recurring character.
Can I download the trained LoRA?
No. Weights stay server-side and are referenced by character id. The public API never accepts or returns LoRA files, checkpoint names or workflow JSON.
Whose photos can I train on?
Only people whose rights and consent you have. Training on a real, identifiable person to produce sexual or harmful depictions without their consent violates the Acceptable Use Policy.
What happens if training fails?
The job fails and your wallet is refunded automatically, like any other failed job. The most common cause is a photo set with multiple people or unusable faces.

Related

Start generating

Create an account, add a prepaid balance, and call the API with a key from the console. No subscription, no minimum, no per-seat pricing.

Get an API key