Credit Costs
How many credits each model and variant costs per generation.
Every generation deducts credits from your team's balance at submission time. If a job fails, the credits are automatically refunded.
You can check your current balance via the Account endpoint or in the Apiframe console.
Image generation
Models tagged × n multiply by the number of images requested in the call (n, number_of_images, or num_images depending on the model).
| Model | Variant | Credits per generation |
|---|---|---|
| Midjourney | — | 16 |
| Midjourney | Upsample | 4 |
| Midjourney | Variation | 16 |
| Midjourney | Inpaint | 16 |
| Midjourney | Outpaint | 16 |
| Midjourney | Pan | 16 |
| Kling Image | — | 2 × n |
| Nano Banana | — | 8 |
| Nano Banana Pro | 1K / 2K | 26 |
| Nano Banana Pro | 4K | 52 |
| Nano Banana 2 | 1K | 12 |
| Nano Banana 2 | 2K | 18 |
| Nano Banana 2 | 4K | 26 |
| Flux 1.1 Pro | — | 8 |
| Flux 1.1 Pro Ultra | — | 12 |
| Flux 2 Pro | 0.5MP | 6 |
| Flux 2 Pro | 1MP | 6 |
| Flux 2 Pro | 2MP | 10 |
| Flux 2 Pro | 4MP | 14 |
| Flux 2 Dev | — | 6 |
| Flux 2 Flex | 0.5MP | 10 |
| Flux 2 Flex | 1MP | 20 |
| Flux 2 Flex | 2MP | 20 |
| Flux 2 Flex | 4MP | 40 |
| Flux 2 Max | 0.5MP | 12 |
| Flux 2 Max | 1MP | 12 |
| Flux 2 Max | 2MP | 16 |
| Flux 2 Max | 4MP | 28 |
| Seedream 3 | — | 6 |
| Seedream 3.1 | — | 6 |
| Seedream 4 | — | 6 |
| Seedream 4.5 | — | 8 |
| Seedream 5 Lite | — | 8 |
| Ideogram V2 | — | 14 |
| Ideogram V2 Turbo | — | 9 |
| Ideogram V2a | — | 7 |
| Ideogram V2a Turbo | — | 6 |
| Ideogram V3 Balanced | — | 11 |
| Ideogram V3 Turbo | — | 6 |
| Ideogram V3 Quality | — | 16 |
| Ideogram Character | Turbo | 17 |
| Ideogram Character | Default | 26 |
| Ideogram Character | Quality | 34 |
| Reve Create | — | 6 |
| Imagen 3 | — | 9 |
| Imagen 3 Fast | — | 6 |
| Imagen 4 | — | 7 |
| Imagen 4 Ultra | — | 11 |
| Imagen 4 Fast | — | 4 |
| DALL-E 3 | — | 21 |
| DALL-E 2 | — | 4 |
| GPT Image 1.5 | Low | 4 × n |
| GPT Image 1.5 | Medium | 9 × n |
| GPT Image 1.5 | Auto | 24 × n |
| GPT Image 1.5 | High | 24 × n |
| GPT Image 2 | Low | 4 × n |
| GPT Image 2 | Medium | 9 × n |
| GPT Image 2 | Auto | 23 × n |
| GPT Image 2 | High | 23 × n |
| Qwen Image | — | 6 × n |
| Qwen Image 2 | — | 7 |
| Qwen Image 2 Pro | — | 14 |
| Wan Image 2.6 | — | 6 |
| Wan Image 2.7 | — | 6 |
| Wan Image 2.7 Pro | — | 6 |
| Grok Imagine Image | — | 4 |
| Flux LoRA (AI Photos inference) | — | 2 × num_outputs |
AI Photos (LoRA training)
POST /v2/loras — train a Flux LoRA from 15-30 subject photos.
| Step | Credits | Notes |
|---|---|---|
| LoRA create (upload + caption + zip) | 2 | Charged at submission. Refunded on failure. |
| LoRA training | 255 | Charged just before training starts. Refunded if training fails. |
| Inference per image | 2 | See Flux LoRA — num_outputs of 1-4 supported. |
Video generation
Per-clip pricing
| Model | Variant | Credits |
|---|---|---|
| Midjourney Video | — | 48 |
| Kling 2.1 | Standard 5s | 43 |
| Kling 2.1 | Standard 10s | 85 |
| Kling 2.1 | Pro 5s | 77 |
| Kling 2.1 | Pro 10s | 153 |
| Kling 2.1 Master | 5s | 238 |
| Kling 2.1 Master | 10s | 476 |
| Kling 2.5 Turbo Pro | 5s | 60 |
| Kling 2.5 Turbo Pro | 10s | 119 |
| Kling 2.6 | 5s | 60 |
| Kling 2.6 | 5s + audio | 119 |
| Kling 2.6 | 10s | 119 |
| Kling 2.6 | 10s + audio | 238 |
| Sora 2 | 4s | 68 |
| Sora 2 | 8s | 136 |
| Sora 2 | 10s | 170 |
| Sora 2 | 12s | 204 |
| Sora 2 | 15s | 255 |
| Sora 2 Pro | Standard · 4s | 204 |
| Sora 2 Pro | Standard · 8s | 408 |
| Sora 2 Pro | Standard · 10s | 510 |
| Sora 2 Pro | Standard · 12s | 612 |
| Sora 2 Pro | Standard · 15s | 765 |
| Sora 2 Pro | High · 4s | 340 |
| Sora 2 Pro | High · 8s | 680 |
| Sora 2 Pro | High · 10s | 850 |
| Sora 2 Pro | High · 12s | 1020 |
| Sora 2 Pro | High · 15s | 1275 |
| Seedance 1 Lite | 480p · 5s | 16 |
| Seedance 1 Lite | 720p · 5s | 31 |
| Seedance 1 Lite | 1080p · 5s | 62 |
| Seedance 1 Lite | 480p · 10s | 31 |
| Seedance 1 Lite | 720p · 10s | 62 |
| Seedance 1 Lite | 1080p · 10s | 123 |
| Seedance 1 Pro | 480p · 5s | 26 |
| Seedance 1 Pro | 720p · 5s | 51 |
| Seedance 1 Pro | 1080p · 5s | 128 |
| Seedance 1 Pro | 480p · 10s | 51 |
| Seedance 1 Pro | 720p · 10s | 102 |
| Seedance 1 Pro | 1080p · 10s | 255 |
| Seedance 1 Pro Fast | 480p · 5s | 13 |
| Seedance 1 Pro Fast | 720p · 5s | 22 |
| Seedance 1 Pro Fast | 1080p · 5s | 51 |
| Seedance 1 Pro Fast | 480p · 10s | 26 |
| Seedance 1 Pro Fast | 720p · 10s | 43 |
| Seedance 1 Pro Fast | 1080p · 10s | 102 |
| Seedance 1.5 Pro | 480p · 4s | 9 |
| Seedance 1.5 Pro | 720p · 4s | 18 |
| Seedance 1.5 Pro | 1080p · 4s | 41 |
| Seedance 1.5 Pro | 480p · 4s + audio | 17 |
| Seedance 1.5 Pro | 720p · 4s + audio | 36 |
| Seedance 1.5 Pro | 1080p · 4s + audio | 82 |
| Seedance 1.5 Pro | 480p · 8s | 17 |
| Seedance 1.5 Pro | 720p · 8s | 36 |
| Seedance 1.5 Pro | 1080p · 8s | 82 |
| Seedance 1.5 Pro | 480p · 8s + audio | 34 |
| Seedance 1.5 Pro | 720p · 8s + audio | 71 |
| Seedance 1.5 Pro | 1080p · 8s + audio | 164 |
| Seedance 1.5 Pro | 480p · 12s | 26 |
| Seedance 1.5 Pro | 720p · 12s | 54 |
| Seedance 1.5 Pro | 1080p · 12s | 123 |
| Seedance 1.5 Pro | 480p · 12s + audio | 51 |
| Seedance 1.5 Pro | 720p · 12s + audio | 107 |
| Seedance 1.5 Pro | 1080p · 12s + audio | 245 |
| Veo 2 | 5s | 425 |
| Veo 2 | 6s | 510 |
| Veo 2 | 7s | 595 |
| Veo 2 | 8s | 680 |
| Veo 3 / Veo 3.1 | 4s | 136 |
| Veo 3 / Veo 3.1 | 6s | 204 |
| Veo 3 / Veo 3.1 | 8s | 272 |
| Veo 3 / Veo 3.1 | 4s + audio | 272 |
| Veo 3 / Veo 3.1 | 6s + audio | 408 |
| Veo 3 / Veo 3.1 | 8s + audio | 544 |
| Veo 3 Fast / Veo 3.1 Fast | 4s | 68 |
| Veo 3 Fast / Veo 3.1 Fast | 6s | 102 |
| Veo 3 Fast / Veo 3.1 Fast | 8s | 136 |
| Veo 3 Fast / Veo 3.1 Fast | 4s + audio | 102 |
| Veo 3 Fast / Veo 3.1 Fast | 6s + audio | 153 |
| Veo 3 Fast / Veo 3.1 Fast | 8s + audio | 204 |
| Hailuo 02 | 768p · 6s | 46 |
| Hailuo 02 | 768p · 10s | 77 |
| Hailuo 02 | 1080p · 6s | 82 |
| Hailuo 2.3 | 768p · 6s | 48 |
| Hailuo 2.3 | 768p · 10s | 96 |
| Hailuo 2.3 | 1080p · 6s | 84 |
| Hailuo 2.3 Fast | 768p · 6s | 33 |
| Hailuo 2.3 Fast | 768p · 10s | 55 |
| Hailuo 2.3 Fast | 1080p · 6s | 57 |
| Luma Ray 2 | 5s | 153 |
| Luma Ray 2 | 9s | 276 |
| Luma Ray Flash 2 | 5s | 51 |
| Luma Ray Flash 2 | 9s | 92 |
| Wan 2.5 | 480p · 5s | 43 |
| Wan 2.5 | 720p · 5s | 85 |
| Wan 2.5 | 1080p · 5s | 128 |
| Wan 2.5 | 480p · 10s | 85 |
| Wan 2.5 | 720p · 10s | 170 |
| Wan 2.5 | 1080p · 10s | 255 |
| Wan 2.5 Fast | 720p · 5s | 58 |
| Wan 2.5 Fast | 1080p · 5s | 116 |
| Wan 2.5 Fast | 720p · 10s | 87 |
| Wan 2.5 Fast | 1080p · 10s | 174 |
| Wan 2.6 | 720p · 5s | 85 |
| Wan 2.6 | 1080p · 5s | 128 |
| Wan 2.6 | 720p · 10s | 170 |
| Wan 2.6 | 1080p · 10s | 255 |
| Wan 2.6 | 720p · 15s | 255 |
| Wan 2.6 | 1080p · 15s | 383 |
| Wan 2.6 Flash | 720p · 5s | 43 |
| Wan 2.6 Flash | 1080p · 5s | 64 |
| Wan 2.6 Flash | 720p · 10s | 85 |
| Wan 2.6 Flash | 1080p · 10s | 128 |
| Wan 2.6 Flash | 720p · 15s | 128 |
| Wan 2.6 Flash | 1080p · 15s | 192 |
| Runway Gen4 Turbo | 5s | 43 |
| Runway Gen4 Turbo | 10s | 85 |
| Runway Gen4.5 | 5s | 102 |
| Runway Gen4.5 | 10s | 204 |
| Grok Imagine Video | 6s | 54 |
| Grok Imagine Video | 10s | 90 |
| Grok Imagine Video | 15s | 135 |
Per-second pricing
credits = rate × duration. The route probes the requested duration (or input video length, for wan-2.7-r2v) and bills accordingly.
| Model | Variant | Credits / second |
|---|---|---|
| Kling 3.0 | Standard | 29 |
| Kling 3.0 | Pro | 39 |
| Kling 3.0 | Standard + audio | 43 |
| Kling 3.0 | Pro + audio | 58 |
| Seedance 2 | 480p | 14 |
| Seedance 2 | 720p | 31 |
| Seedance 2 | 1080p | 77 |
| Seedance 2 | 480p · ref-video | 17 |
| Seedance 2 | 720p · ref-video | 38 |
| Seedance 2 | 1080p · ref-video | 94 |
| Seedance 2 Fast | 480p | 12 |
| Seedance 2 Fast | 720p | 25 |
| Seedance 2 Fast | 480p · ref-video | 14 |
| Seedance 2 Fast | 720p · ref-video | 31 |
| Wan 2.7 | T2V · 720p | 17 |
| Wan 2.7 | T2V · 1080p | 17 |
| Wan 2.7 | I2V · 720p | 17 |
| Wan 2.7 | I2V · 1080p | 26 |
| Wan 2.7 R2V | any resolution | 17 |
Image editing
POST /v2/images/upscale, POST /v2/images/background-remove, POST /v2/images/edit — Upscale, background removal, inpainting and outpainting.
| Model | Variant | Credits per generation |
|---|---|---|
| Topaz Image Upscale | ≤ 12 MP output | 9 |
| Topaz Image Upscale | ≤ 24 MP output | 9 |
| Topaz Image Upscale | ≤ 36 MP output | 17 |
| Topaz Image Upscale | ≤ 48 MP output | 17 |
| Topaz Image Upscale | ≤ 60 MP output | 26 |
| Topaz Image Upscale | ≤ 96 MP output | 34 |
| Topaz Image Upscale | ≤ 132 MP output | 41 |
| Topaz Image Upscale | ≤ 168 MP output | 50 |
| Topaz Image Upscale | ≤ 336 MP output | 91 |
| Topaz Image Upscale | ≤ 512 MP output | 140 |
| Clarity Upscaler | — | 3 |
| Bria Background Remove | — | 4 |
| 851-labs Background Remove | — | 2 |
| Flux Fill Pro (inpaint or outpaint) | — | 9 |
The Topaz output-megapixel tier is computed automatically from the input image's dimensions × upscale_factor² and rounded up to the next configured row.
Video editing
POST /v2/videos/upscale — Topaz video upscale and frame interpolation.
Pricing is per second of input video, tiered by output resolution × output fps. The route probes the input duration via ffprobe at submit time and charges cost-per-second × ceil(duration).
| Model | Variant | Credits / second of input |
|---|---|---|
| Topaz Video Upscale | 720p · 24 fps | 1 |
| Topaz Video Upscale | 720p · 30 fps | 1 |
| Topaz Video Upscale | 720p · 60 fps | 2 |
| Topaz Video Upscale | 1080p · 24 fps | 4 |
| Topaz Video Upscale | 1080p · 30 fps | 4 |
| Topaz Video Upscale | 1080p · 60 fps | 7 |
| Topaz Video Upscale | 4K · 24 fps | 13 |
| Topaz Video Upscale | 4K · 30 fps | 13 |
| Topaz Video Upscale | 4K · 60 fps | 26 |
| Wan 2.7 VideoEdit | any resolution | 17 |
Music generation
| Model | Variant | Credits per generation |
|---|---|---|
| Suno | — | 11 |
| Suno | Extend | 11 |
| Suno | Cover | 11 |
| Suno | Add Vocals | 11 |
| Suno | Stems | 11 |
| Udio | — | 9 |
| Producer | — | 6 |
| Lyria 3 Clip | — | 7 |
| Lyria 3 Pro | — | 14 |
| ElevenLabs Music | ≤ 30s (short) | 26 |
| ElevenLabs Music | ≤ 120s (medium) | 102 |
| ElevenLabs Music | > 120s (long) | 255 |
| Mureka | 1 song (n=1) | 6 |
| Mureka | 2 songs (n=2) | 12 |
| Mureka | 3 songs (n=3) | 18 |
How credits work
- Deducted at submission — credits are reserved the moment you send a generation request.
- Refunded on failure — if a job fails (provider error, content policy violation, etc.), the full credit cost is returned to your balance.
- Snapshotted per job — the
creditCostfield on a job reflects the cost at the time of submission, even if pricing changes later. - Team-scoped — credits belong to your team, not individual users. All team members share the same balance.
Checking your balance
curl https://api.apiframe.ai/v2/me \
-H "X-API-Key: afk_your_api_key_here"The response includes your current credit balance:
{
"id": "...",
"email": "...",
"team": {
"id": "...",
"credits": 850
}
}