Character Creation
Train a consistent character identity from photos (FLUX LoRA). Upload 10-30 images, get a character ID, then generate unlimited consistent images via API. 500 credits per training, 15 credits per image.
New: Train a consistent character identity from photos. Upload 10-30 images of a person, train a FLUX LoRA, then generate unlimited images of that person in any scene, outfit, or style.
Pricing
| Action | Credits | Price (Pro Yearly) | Price (Pro Monthly) |
|---|---|---|---|
| Train character | 500 | $3.00 | $4.00 |
| Generate image | 15 per image | $0.09 | $0.12 |
Training credits are deducted upfront when you create a character. Refunded automatically if training fails.
Workflow
- Create — Upload 10-30 photos of a person. Returns
character_idimmediately. - Poll — Check training status (takes ~2-3 minutes).
- Generate — Once ready, generate unlimited consistent images.
Create Character
Train a new character identity from photos.
POST https://vicsee.com/api/v1/characters/createSee Authentication for API key setup.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| image_urls | string[] | Yes | Array of 10-30 public image URLs (JPEG, PNG, WebP). More images = better consistency. |
| name | string | No | Display name for the character. Default: "Character" |
| trigger_word | string | No | Unique keyword to activate the character in prompts. Auto-generated if not provided. |
Example Request
curl -X POST https://vicsee.com/api/v1/characters/create \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Sarah",
"image_urls": [
"https://example.com/photo1.jpg",
"https://example.com/photo2.jpg",
"https://example.com/photo3.jpg",
"https://example.com/photo4.jpg",
"https://example.com/photo5.jpg",
"https://example.com/photo6.jpg",
"https://example.com/photo7.jpg",
"https://example.com/photo8.jpg",
"https://example.com/photo9.jpg",
"https://example.com/photo10.jpg"
]
}'Response
{
"success": true,
"data": {
"character_id": "abc123-def456",
"name": "Sarah",
"trigger_word": "CHAR1N2K3M4",
"status": "training",
"image_count": 10,
"credits_used": 500,
"created_at": "2026-03-01T12:00:00.000Z"
}
}Training takes approximately 2-3 minutes. Use the status endpoint to check when it's ready.
Check Status
Get character details and training status.
GET https://vicsee.com/api/v1/characters/{character_id}Response (Training)
{
"success": true,
"data": {
"character_id": "abc123-def456",
"name": "Sarah",
"trigger_word": "CHAR1N2K3M4",
"status": "training",
"image_count": 10,
"created_at": "2026-03-01T12:00:00.000Z"
}
}Response (Ready)
{
"success": true,
"data": {
"character_id": "abc123-def456",
"name": "Sarah",
"trigger_word": "CHAR1N2K3M4",
"status": "ready",
"image_count": 10,
"created_at": "2026-03-01T12:00:00.000Z"
}
}Status Values
| Status | Description |
|---|---|
training | LoRA training in progress (~2-3 minutes) |
ready | Character trained and ready for generation |
failed | Training failed (credits refunded automatically) |
Generate Images
Generate consistent images of a trained character.
POST https://vicsee.com/api/v1/characters/{character_id}/generateParameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| prompt | string | Yes | Text description of the scene. The trigger word is auto-injected. |
| aspect_ratio | string | No | Image aspect ratio. Default: "1:1". |
| num_outputs | integer | No | Number of images (1-4). Default: 1. |
Aspect Ratios
1:1, 16:9, 9:16, 4:3, 3:4, 3:2, 2:3
Example Request
curl -X POST https://vicsee.com/api/v1/characters/abc123-def456/generate \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"prompt": "professional headshot in a modern office, wearing a navy blazer",
"aspect_ratio": "3:4",
"num_outputs": 2
}'Response
{
"success": true,
"data": {
"id": "task_xyz789",
"character_id": "abc123-def456",
"status": "completed",
"output": {
"images": [
{ "url": "https://cdn.vicsee.com/results/dew/user-id/img1.png" },
{ "url": "https://cdn.vicsee.com/results/dew/user-id/img2.png" }
]
},
"credits_used": 30,
"credits_remaining": 470,
"created_at": "2026-03-01T12:05:00.000Z"
}
}Generation takes approximately 30 seconds per image. Output URLs are hosted on VicSee CDN (available for 7 days).
Complete Pipeline Example
Train a character and generate marketing photos:
# Step 1: Create character
CHAR_ID=$(curl -s -X POST https://vicsee.com/api/v1/characters/create \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Brand Ambassador",
"image_urls": ["https://...", "https://...", "...10-30 URLs..."]
}' | jq -r '.data.character_id')
echo "Character ID: $CHAR_ID"
# Step 2: Poll until ready (typically 2-3 minutes)
while true; do
STATUS=$(curl -s https://vicsee.com/api/v1/characters/$CHAR_ID \
-H "Authorization: Bearer YOUR_API_KEY" | jq -r '.data.status')
echo "Status: $STATUS"
[ "$STATUS" = "ready" ] && break
[ "$STATUS" = "failed" ] && echo "Training failed" && exit 1
sleep 10
done
# Step 3: Generate marketing photos
curl -X POST https://vicsee.com/api/v1/characters/$CHAR_ID/generate \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"prompt": "professional photoshoot, studio lighting, white background",
"aspect_ratio": "3:4",
"num_outputs": 4
}'Photo Guidelines
For best results:
- Minimum 10 photos, 20+ recommended for best quality
- Include variety: different angles, lighting, expressions, backgrounds
- Clear, well-lit photos of the person's face
- Avoid heavy makeup, sunglasses, or face-obscuring accessories
- Higher resolution = better results (minimum 512x512)
- Consistent appearance: same hairstyle/hair color across photos
Limits
| Constraint | Value |
|---|---|
| Minimum images per character | 10 |
| Maximum images per character | 30 |
| Maximum image size | 10 MB per image |
| Supported image formats | JPEG, PNG, WebP |
| Training time | ~2-3 minutes |
| Generation time | ~30 seconds per image |
| Max images per generation | 4 |
| Output URL availability | 7 days |
Errors
| Code | HTTP | Description |
|---|---|---|
TOO_FEW_IMAGES | 400 | Fewer than 10 image URLs provided |
TOO_MANY_IMAGES | 400 | More than 30 image URLs provided |
INVALID_IMAGE_URL | 400 | Image URL is not a valid HTTP(S) URL |
MISSING_PROMPT | 400 | No prompt provided for generation |
INVALID_ASPECT_RATIO | 400 | Unsupported aspect ratio |
CHARACTER_NOT_READY | 422 | Character is still training or failed |
IMAGE_DOWNLOAD_FAILED | 422 | Could not download one or more images |
INSUFFICIENT_CREDITS | 402 | Not enough credits |
NOT_FOUND | 404 | Character not found or not owned by user |
TRAINING_SUBMIT_FAILED | 500 | Failed to start training on Replicate |
GENERATION_FAILED | 500 | Image generation failed or timed out |
Related
- Credits API — Check your credit balance
- Tasks API — Check task history
- FLUX.2 Pro — Generate standalone images without character training
- Nano Banana Pro — HD image generation
Generate Music
Generate AI music from text prompts using Suno V5. Each generation returns 2 song variations with cover art. 15 credits per generation. Simple mode or custom mode with lyrics, style, and title control.
Lipsync
Lip-sync video characters to an audio track. Modify lip movements in AI-generated or real video to match voiceover narration. Tiered pricing from 50 credits. Max 30s.