Skip to content

Image models

Text-to-image generation, image editing, and upscaling. Parameter tables are each model’s input schema; our wrapper params (out, mock, format) are noted per model.

Generations are charged in credits (see Credits & plans). Every generation model also accepts mock: true for a free placeholder result.

FLUX.1 Schnell flux_schnell

Turbo-mode (1-4 step) text-to-image generation from a 12B-parameter FLUX flow transformer — fast enough for prototyping, prompt iteration, and bulk draft runs.

Call it viaimage tool, action: "create", tier: "draft" (the default tier) · raw: POST /v1/jobs/flux_schnell

Cost1 cr per call
Mode / timeoutsync / 30s (from our YAML)

Parameters — the model's input schema:

ParamTypeRequiredDefaultAllowed / rangeDescription
promptstringThe prompt to generate an image from.
image_sizestring | objectlandscape_4_3enum: square_hd, square, portrait_4_3, portrait_16_9, landscape_4_3, landscape_16_9 — or {width, height} object (each 1–14142)The size of the generated image.
num_inference_stepsinteger41–12The number of inference steps to perform.
num_imagesinteger11–4The number of images to generate.
guidance_scalenumber3.51–20CFG scale — how closely the model sticks to the prompt.
seedinteger | nullnullSame seed + same prompt + same model version → same image.
output_formatstringjpegenum: jpeg, pngThe format of the generated image.
enable_safety_checkerbooleantrueIf true, the safety checker is enabled.
accelerationstringnoneenum: none, regular, highGeneration speed — higher is faster.
sync_modebooleanfalseIf true, media returns as a data URI and isn't stored in request history.

Our wrapper params (not part of the model input schema): out (required — output filename/workdir-relative path), mock (optional — test placeholder), and format (optional — our size preset shorts/reels/horizontal, mapped to the model's image_size field: shorts/reels → portrait_16_9, horizontal → landscape_16_9, default → portrait_16_9).

Limits — billed at 1 cr per megapixel, rounded up to the nearest megapixel. Custom image_size max 14142 × 14142 px. Up to 4 images per call; 1–12 inference steps. (No prompt character limit, duration, frame count, or file-size limit is published for this model.)

FLUX 1.1 [pro] ultra flux_pro

Text-to-image generation at up to 2K resolution (4 megapixels) with enhanced photorealism, with optional reference-image conditioning.

Call it viaimage tool, action: "create", tier: "fine" (MCP) · raw: POST /v1/jobs/flux_pro

Cost12 cr per call
Mode / timeoutsync / 30s (from our YAML)

Parameters — the model's input schema:

ParamTypeRequiredDefaultAllowed / rangeDescription
promptstringThe prompt to generate an image from.
seedintegernullSame seed + same prompt + same model version → same image.
sync_modebooleanfalseIf true, media is returned as a data URI and not stored in request history.
num_imagesinteger11–4Number of images to generate.
output_formatstringjpegjpeg, pngFormat of the generated image.
safety_tolerancestring"2""1""6"Content-filter level; 1 = most strict, 6 = most permissive.
enhance_promptbooleanfalseWhether to enhance the prompt for better results.
image_urlstringnullReference image URL to condition generation on.
image_prompt_strengthnumber0.10–1Strength of the image prompt (reference-image influence).
aspect_ratiostring9:1621:9, 16:9, 4:3, 3:2, 1:1, 2:3, 3:4, 9:16, 9:21 (free-form string also accepted)Aspect ratio of the generated image.
rawbooleanfalseGenerate less processed, more natural-looking images.

Our wrapper params (not part of the model input schema): out (required — output filename/path), mock (optional — test placeholder), and format (optional — size preset mapped to the model's aspect_ratio field: shorts/reels9:16, horizontal16:9, default 9:16).

Limits — model limits:

  • Max resolution: 4 megapixels (up to 2048×2048). Billing rounds up to the nearest megapixel.
  • Max images per call: 4 (num_images).
  • image_prompt_strength range: 0–1.
  • Output formats: JPEG, PNG.

Flux 2 LoRA Realism flux_realism

Text-to-image photorealism — FLUX.2 with a realism LoRA tuned for natural lighting, skin texture, and documentary-style detail; ideal for character portraits, people, products, and lifestyle scenes.

Call it viaimage(action: "create", tier: "photo") · raw: POST /v1/jobs/flux_realism

CostBilled per megapixel — ≈4–5 cr per image at the ~1 MP presets
Mode / timeoutsync / 60s (from our YAML)

Parameters — the model's input schema:

ParamTypeRequiredDefaultAllowed / rangeDescription
promptstringThe prompt to generate a realistic image with natural lighting and authentic details.
image_sizeenum | objectlandscape_4_3square_hd, square, portrait_4_3, portrait_16_9, landscape_4_3, landscape_16_9 — or an object {width, height} (each int, >0, max 14142)The size of the generated image.
guidance_scalenumber2.5020CFG scale. How closely the model follows the prompt.
num_inference_stepsinteger40450Number of inference steps; higher enhances realism.
accelerationenumregularnone, regularAcceleration level; regular balances speed and quality.
seedinteger | nullnoneRandom seed for reproducibility; same seed + prompt → same result.
sync_modebooleanfalseIf true, media is returned as a data URI and not saved in history.
enable_safety_checkerbooleantrueWhether to enable the safety checker for the generated image.
output_formatenumpngpng, jpeg, webpThe format of the output image.
num_imagesinteger114Number of images to generate per call.
lora_scalenumber102Strength of the realism effect.

Our wrapper params (not part of the model input schema): out (required — output filename), mock (optional — test placeholder), and format (optional — our friendly aspect preset, e.g. shorts/reels/horizontal, which we map to the model's image_size field via format_mapping: shorts/reels → portrait_16_9, horizontal → landscape_16_9).

Limits — max 4 images per call (num_images 1–4); inference steps 4–50; custom image_size object dimensions up to 14142 px per side (max ~4 MP recommended); output formats PNG / JPEG / WebP; text prompt only (no image input).

Nano Banana Pro nano_banana

Text-to-image on Google's Nano Banana Pro (Gemini 3 Pro Image): strong prompt adherence and best-in-class text rendering inside the image — posters, labels, UI mockups, and scenes that must follow the brief closely.

Call it viaimage tool, action: "create", model: "nano_banana" (explicit model — the tier presets map to the FLUX family) · raw: POST /v1/jobs/nano_banana

Cost30 cr per call; 4K outputs charged at 2x
Mode / timeoutsync / 2m (from our YAML)

Parameters — the model's input schema:

ParamTypeRequiredDefaultAllowed / rangeDescription
promptstringWhat to generate.
num_imagesinteger11–4Number of images to generate.
seedintegerany intSeed for the RNG.
aspect_ratiostring (enum)1:121:9, 16:9, 3:2, 4:3, 5:4, 1:1, 4:5, 3:4, 2:3, 9:16Aspect ratio of the output.
output_formatstring (enum)pngjpeg, png, webpFormat of the generated image.
safety_tolerancestring (enum)416Content-moderation tolerance (1 strictest, 6 least strict).
sync_modebooleanfalseIf true, media is returned as a data URI and is not kept in request history.
system_promptstring""length ≤ 50000 charsOptional system instruction steering persona/output style.
resolutionstring (enum)1K1K, 2K, 4KOutput resolution (4K costs 2x).
limit_generationsbooleanfalseExperimental: cap each prompting round to 1 image, ignoring count hints in the prompt.
enable_web_searchbooleanfalseAllow the model to use live web data.

Our wrapper params (not part of the model input schema): out (required — workdir-relative output path), mock (optional — test placeholder), and format (optional — friendly size preset shorts/reels/horizontal, mapped to the model's aspect_ratio via format_mapping: shorts/reels → 9:16, horizontal → 16:9, default 1:1).

Limits — text prompt only (no image input; for instruction-based editing use nano_banana_edit); system_prompt ≤ 50000 chars; all outputs carry SynthID watermarking.

Nano Banana Pro Edit nano_banana_edit

Instruction-based image editing built on Google's Gemini 3 Pro Image (Nano Banana 2): modify, restyle, inpaint, or compose images via natural-language instructions with no masks.

Call it viaimage(edit) MCP tool/action routes to our default editor (seedream_v5_edit); nano_banana_edit is a registered editor reachable directly · raw: POST /v1/jobs/nano_banana_edit

Cost30 cr per call; 4K outputs charged at 2x
Mode / timeoutsync / 60s (from our YAML)

Parameters — the model's input schema:

ParamTypeRequiredDefaultAllowed / rangeDescription
promptstringlength 3–50000 charsThe prompt / editing instruction.
image_urlsarray[string]up to 14 imagesURLs of the images to edit / compose.
num_imagesinteger11–4Number of images to generate.
seedintegerany int (nullable)Seed for the RNG.
aspect_ratiostring (enum)autoauto, 21:9, 16:9, 3:2, 4:3, 5:4, 1:1, 4:5, 3:4, 2:3, 9:16Aspect ratio of the output (auto preserves source proportions).
output_formatstring (enum)pngjpeg, png, webpFormat of the generated image.
safety_tolerancestring (enum)416Content-moderation tolerance (1 strictest, 6 least strict).
sync_modebooleanfalseIf true, media is returned as a data URI and is not kept in request history.
system_promptstring""length ≤ 50000 charsOptional system instruction steering persona/output style.
resolutionstring (enum)1K1K, 2K, 4KOutput resolution (4K costs 2x).
limit_generationsbooleanfalseExperimental: cap each prompting round to 1 image, ignoring count hints in the prompt.
enable_web_searchbooleanfalseAllow the model to use live web data.

Our wrapper params (not part of the model input schema): out (required — workdir-relative output path), mock (optional — test placeholder), and format (optional — friendly size preset shorts/reels/horizontal, which our config maps to the model's aspect_ratio field via format_field: aspect_ratioshorts/reels=9:16, horizontal=16:9; with no explicit format the default is auto — the edit preserves the source image's aspect ratio).

Limits — prompt 3–50000 chars; system_prompt ≤ 50000 chars; num_images 1–4; up to 14 input images per composition; character consistency for up to 5 people; resolutions 1K (1024px) / 2K (2048px) / 4K; input images capped at ~89,478,485 pixels (oversized inputs rejected with 422 image_too_large); output formats PNG / JPEG / WebP; all outputs carry SynthID watermarking.

Seedream v5 Lite seedream_v5_edit

One model, two modes. Attach images and it edits them; leave them out and it generates from the prompt alone. The price is the same either way — 7 cr — because the model is one model upstream too, and the mode is inferred from what you send rather than selected.

  • Editingimage(action: "edit", image_url, prompt), the default editor and the one included in the free plan.
  • Generationimage(action: "create", model: "seedream_v5_edit", prompt, out). Naming the model is what selects it; create without a model still goes to the tier ladder (draft/fine/photo/nano/pro).

Editing is what it is mostly used for — modify existing images, add/remove elements, composite subjects into scenes, apply style/colour transfer, with up to 10 reference images in one call. Included in the free plan.

Multi-image compositing works on this tier. Pass several image_urls and name each one's role in the prompt ("the subject from Image 2 onto the surface in Image 1"): a verified example took a landscape photo plus a product photo and returned a single 2K image with the product placed into the landscape, its light and perspective matched and the landscape's background kept.

Call it viaimage(action: "edit", image_url, prompt) to edit, or image(action: "create", model: "seedream_v5_edit", prompt) to generate · raw: POST /v1/jobs/seedream_v5_edit

Cost7 cr per call, either mode
Mode / timeoutasync job / 10m

The call returns a job_id — poll get_status rather than expecting the image in the reply. We do not publish a latency figure for this route: the old “~40s” was measured on the previous provider, and the 10m timeout is headroom for a queued upstream rather than an expected wait.

Need the top-quality tier instead? seedream_v5_pro_edit is documented further down this page — same parameters, 18 cr, ~110s.

Parameters — the model's input schema:

ParamTypeRequiredDefaultAllowed / rangeDescription
promptstringText prompt describing the edit to apply.
image_urlsstring[]up to 10 imagesInput images to edit. Omit them and the model generates from the prompt instead — this field is what selects the mode. If more than 10 are sent, only the last 10 are used.
image_sizeImageSize object | enum stringauto_2Konly auto_2K is served (see below)Output image size.
num_imagesinteger1only 1 is servedNumber of separate generations to run with the prompt.
max_imagesinteger1only 1 is servedImages per generation.
sync_modebooleanfalseonly false is servedIf true, media would be returned as a data URI instead of a URL.
enable_safety_checkerbooleantrueonly true is servedContent safety checker.

Our wrapper params (not part of the model input schema): out (required — workdir-relative output filename), mock (optional — test placeholder, no real generation). format (shorts/reels/horizontal) is not served on this model — an edit keeps the input image's aspect ratio.

Limits — model limits:

  • Max reference images: 10 (last 10 used if more are sent).
  • Output: one 2K image per call. When editing, the aspect ratio follows the input image (~2368×1776 for a 4:3 input); when generating from a prompt alone there is no input to follow and the model picks its own 2K frame. Either way there is no size or aspect parameter here — crop or resize afterwards, or use seedream_v5_pro when you need to choose the frame.
  • The input-image rules below apply to EDITING only, since generation sends none: JPEG/PNG/WebP/BMP/TIFF/GIF/HEIC/HEIF, each side >14px, aspect between 1:16 and 16:1, ≤30 MB, ≤6000×6000.
  • Generation needs the gateway route, which is the default. The fal fallback is edit-only — see the routing note in the model's YAML.
  • Output format: JPEG delivered via HTTPS URL.
  • All five values marked "only … is served" above — image_size, num_images, max_images, sync_mode, enable_safety_checker — plus format are refused with a clear reason rather than quietly ignored, and you are never charged for a request that couldn't be honoured. Over MCP format/image_size come back as an input error; the rest surface as a job that fails right away naming the offending field.
  • A source image can be refused by the model's own input moderation (the input image may contain sensitive information) — that is a terminal failure of that call, and it is not charged.

Seedream v5 Pro seedream_v5_pro

Text-to-image at the top-quality tier. Use it for finals — key art, posters, and anything with words rendered inside the picture. One image per call. Not included in the free plan.

Call it viaimage(action: "create", tier: "pro", prompt, size, out) · raw: POST /v1/jobs/seedream_v5_pro

Cost18 cr per image · 9 cr at size: "1K"
Mode / timeoutasync job / 10m (a still normally lands well inside that)

size is how you choose the shape. This model has no aspect-ratio parameter at all — the pixel pair is the frame:

sizeShapeCost
1K4:3, about 1 megapixel9 cr
1.5K4:3, about 2 megapixels9 cr
2K (default)4:3, about 4 megapixels18 cr
2048x20481:118 cr
2816x158416:918 cr
1584x28169:1618 cr
2368x17764:318 cr
1776x23683:418 cr
2496x16643:218 cr
1664x24962:318 cr
3136x134421:918 cr

1K, 1.5K and 2K set the area, not the shape — all three come back 4:3. Anything else, including a square, needs the explicit pixel pair. Prefer 1.5K over 1K: it costs the same 9 credits and carries twice the pixels.

Over REST the friendly format preset (shorts/reels/vertical, square, horizontal/wide, cinematic) maps onto size for you. Over MCP, pass size.

Limits — one image per call: there is no batch, variations or count parameter. There is also no seed, so a re-run is a new picture rather than a variation of the last one — settle the composition at 1K (half the credits), then run the wording you kept at the delivery shape.

Writing for it — describe what is in frame, not how good it should look: material first (brushed aluminium, wet terracotta), then the setting, then where the light comes from. Quality-word piles (4k, hyperdetailed) change nothing here. For text in the image, quote the exact words and say where they sit. Full guidance: models(action: "guide", model: "seedream_v5_pro").

Seedream v5 Pro Edit seedream_v5_pro_edit

The same editing capability as the Lite tier at the top-quality level. Identical parameters and limits — only the price, the latency and the output quality differ. Not included in the free plan.

Call it viaimage(action: "edit", model: "seedream_v5_pro_edit", image_url, prompt) · raw: POST /v1/jobs/seedream_v5_pro_edit

Cost18 cr per call
Mode / timeoutasync job / 10m

An edit takes roughly 110s. Parameters, limits and the format/size caveats follow seedream_v5_edit above with ONE difference that matters: Pro Edit requires input images. It edits only — it has no prompt-only mode, so image_urls is required rather than optional. For generation at the Pro tier use seedream_v5_pro, which is a separate model on this page.

Limits — Pro is the quality tier, not a resolution tier: it returns a single 2K image, the same as Lite. If you need a larger result, upscale it with image(upscale).

Topaz Image Upscale topaz_upscale_image

Topaz image enhancer — upscale and enhance images (add detail, face enhancement, sharpening, denoising, compression-artifact removal, and generative detail).

Call it viaimage tool, action: "upscale" (MCP) · raw: POST /v1/jobs/topaz_upscale_image

Cost16 cr per call
Mode / timeoutsync / 120s (from our YAML)

Parameters — the model's input schema:

ParamTypeRequiredDefaultAllowed / rangeDescription
image_urlstringnon-empty URLURL of the image to be upscaled.
modelstring (enum)Standard V2Low Resolution V2, Standard V2, CGI, High Fidelity V2, Text Refine, Recovery, Redefine, Recovery V2, Standard MAX, Wonder, Wonder 3Model to use for image enhancement.
upscale_factornumber214Factor to upscale the image by (2.0 doubles width and height).
crop_to_fillbooleanfalsetrue / falseCrop the output to fill the target size.
output_formatstring (enum)jpegjpeg, pngOutput format of the upscaled image.
subject_detectionstring (enum)AllAll, Foreground, BackgroundSubject detection mode. Applies to standard enhance and Recovery V2 models.
face_enhancementbooleantruetrue / falseApply face enhancement. Applies to standard enhance and Recovery V2 models.
face_enhancement_creativitynumber001Creativity for face enhancement; 0 = none, 1 = max. Ignored if face enhancement is disabled.
face_enhancement_strengthnumber0.801Strength of face enhancement; 0 = none, 1 = max. Ignored if face enhancement is disabled.
sharpennumber01Sharpening level. Applies to Standard V2, Low Resolution V2, CGI, High Fidelity V2, Text Refine, Redefine.
denoisenumber01Denoising level. Applies to Standard V2, Low Resolution V2, CGI, High Fidelity V2, Text Refine, Redefine.
fix_compressionnumber01Compression-artifact removal. Applies to Standard V2, Low Resolution V2, High Fidelity V2, Text Refine.
strengthnumber0.011Enhancement strength. Applies to Text Refine model only.
creativityinteger16Generative creativity (higher = more hallucinated detail). Applies to Redefine model only.
textureinteger15Texture detail level for generative upscaling. Applies to Redefine model only.
promptstringmax 1024 charsText prompt to guide generative upscaling. Applies to Redefine model only.
autopromptbooleantrue / falseAuto-generate the prompt for generative upscaling. Applies to Redefine model only.
detailnumber01Detail recovery level. Applies to Recovery V2 model only.
enhancement_strengthstring (enum)low, medium, highEnhancement strength for generative upscaling. Applies to Wonder 3 model only; auto-configured when omitted.

Our wrapper params (not part of the model input schema): out (required — workdir-relative output filename), mock (optional — test placeholder). This model has no format mapping (format_field is empty), so no model size field is derived from format.

Limits — model limits: upscale_factor 14; prompt ≤ 1024 chars; accepted input formats jpg, jpeg, png, webp, gif, avif. Catalog cost is a flat 16 cr per call, matching the provider's own ≤24 MP output bracket; larger outputs (from a high-resolution source combined with a high upscale_factor) are billed at the same 16 cr today pending a future per-request signal — the provider's own tiers above 24 MP go up to 272 cr at ≤512 MP.

Framehood