{
  "schema_version": 1,
  "public_model_id": "prunaai/z-image-turbo",
  "canonical_page": "https://www.maxapi.dev/models/prunaai/z-image-turbo",
  "reviewed_at": "2026-10-22",
  "generated_at": "2026-10-30T03:16:42.841Z",
  "scope": "Checked against MaxAPI's public catalogue, gateway implementation and local regression cases. Shared gateway checks are not separate end-to-end tests of every listed model. This is an integration reference, not a live upstream availability or performance report.",
  "summary": "Z-Image Turbo is available in MaxAPI's image API under prunaai/z-image-turbo, for generation and reference-image editing. This catalogue entry allows up to 0 references. Published routes are official; file acceptance, permissions and output options must be checked for the route you actually use.",
  "aliases": [],
  "model_profile": {
    "family_id": "prunaai/z-image-turbo",
    "reviewed_at": "2026-10-22",
    "title": "Text-to-image with explicit dimensions",
    "provider_positioning": "Z-Image Turbo is served through Replicate's prunaai/z-image-turbo endpoint. MaxAPI exposes text-to-image with one output, configurable dimensions and PNG, JPEG or WebP delivery. The Official route settles from Replicate's returned billing metrics.",
    "selection_advice": "Evaluate it for prompt-driven visual drafts and composition variants. Keep the seed, dimensions and steps fixed when comparing prompts, and inspect the actual downloaded file before using it.",
    "limitations": "This entry has no reference-image editing or masks. Each requested edge must be 64–2048 pixels. Upstream may round dimensions (64→128, 720→768). Billing megapixels are provider-reported units, not width × height: observed 512×512 uses 1.25 units at the 0.5 tier. A temporary base hold of 0.025 credits per requested output is replaced by the actual charge; account multipliers apply.",
    "suggested_use_cases": [
      {
        "title": "Prompt composition trials",
        "body": "Describe one subject, one lighting direction and the desired empty space, then inspect the resulting composition."
      },
      {
        "title": "Illustration drafts",
        "body": "Use a short visual brief to explore colors and shapes before adding final typography in an editor."
      },
      {
        "title": "Format selection",
        "body": "Compare PNG, JPEG and WebP for your delivery workflow; compression quality does not change the model's inference tier."
      }
    ],
    "example_prompt": {
      "title": "A geometric ceramic still life",
      "text": "Create a square still life with a blue ceramic cup and a small orange sphere on a pale grey table. Use soft light from the upper left, a plain background, and generous empty space. Keep the two objects separate, show the entire cup handle, and add no lettering or logos.",
      "review": "Check separation, shadows and the downloaded file's dimensions."
    },
    "scope": "Provider capabilities describe the model, not the complete MaxAPI feature set. Use the parameters, input types and routes documented for this MaxAPI entry. Vendor speed or quality descriptions are not service-level guarantees.",
    "variant_note": null,
    "sources": [
      {
        "label": "Replicate · Z-Image Turbo API schema",
        "url": "https://replicate.com/prunaai/z-image-turbo/api/schema"
      }
    ]
  },
  "illustration": {
    "url": "https://www.maxapi.dev/model-guides/individual-20260910/gemini-3-1-flash-image-preview.webp",
    "alt": "Blue backpack on coastal rocks beneath an open sky with green foliage",
    "caption": "Format planning: preserve the product while allowing room for different campaign crops.",
    "provenance": "ai_generated_editorial_concept",
    "is_output_from_named_model": false,
    "is_benchmark": false
  },
  "illustrations": [
    {
      "section": "usecases",
      "url": "https://www.maxapi.dev/model-guides/individual-20260910/gemini-3-1-flash-image-preview.webp",
      "alt": "Blue backpack on coastal rocks beneath an open sky with green foliage",
      "caption": "Format planning: preserve the product while allowing room for different campaign crops.",
      "width": 1536,
      "height": 1024,
      "provenance": "ai_generated_editorial_concept",
      "is_output_from_named_model": false,
      "is_benchmark": false
    },
    {
      "section": "features",
      "url": "https://www.maxapi.dev/model-guides/expanded-20260911/gemini-3-1-flash-image-preview-practice.webp",
      "alt": "Blue hiking backpack, strap sample and portrait crop mat",
      "caption": "Assign separate roles to the product reference and the intended composition.",
      "width": 1536,
      "height": 1024,
      "provenance": "ai_generated_editorial_concept",
      "is_output_from_named_model": false,
      "is_benchmark": false
    },
    {
      "section": "prompts",
      "url": "https://www.maxapi.dev/model-guides/expanded-20260911/gemini-3-1-flash-image-preview-prompt.webp",
      "alt": "Blue hiking backpack near the top of an open coastal composition.",
      "caption": "Composition concept with space for a vertical campaign crop.",
      "width": 1536,
      "height": 1024,
      "provenance": "ai_generated_editorial_concept",
      "is_output_from_named_model": false,
      "is_benchmark": false
    },
    {
      "section": "workflow",
      "url": "https://www.maxapi.dev/model-guides/expanded-20260911/gemini-3-1-flash-image-preview-workflow.webp",
      "alt": "Square and portrait backpack prints beside a matching fabric swatch.",
      "caption": "Check product identity across output formats.",
      "width": 1536,
      "height": 1024,
      "provenance": "ai_generated_editorial_concept",
      "is_output_from_named_model": false,
      "is_benchmark": false
    }
  ],
  "configured_facts": [
    {
      "label": "Request model ID",
      "value": "prunaai/z-image-turbo",
      "code": true
    },
    {
      "label": "Output type",
      "value": "Image"
    },
    {
      "label": "Base URL",
      "value": "https://api.maxapi.dev",
      "code": true
    },
    {
      "label": "Generation workflow",
      "value": "Synchronous or asynchronous"
    },
    {
      "label": "Resolution & dimensions",
      "value": "64–2048 px per edge · default 1024x1024 · num_outputs default 1"
    }
  ],
  "integration_checklist": {
    "reviewedAt": "2026-10-22",
    "labels": {
      "title": "Check your first result",
      "requestTitle": "Send the right fields",
      "responseTitle": "Read the actual result",
      "example": "Illustrative response shape — not a live result",
      "poll": "Query the existing task",
      "reviewed": "Request-contract review",
      "nativeRequest": "Alternative: a Gemini-native request",
      "nativeResult": "Gemini-native result shape — illustrative only"
    },
    "scope": "Checked against the public catalogue and gateway code. Examples are structural illustrations, not paid model tests, latency measurements or a guarantee that every route is currently available.",
    "requestChecks": [
      {
        "field": "model",
        "body": "Use prunaai/z-image-turbo for this MaxAPI entry. The model ID alone does not select a billing route."
      },
      {
        "field": "size / n",
        "body": "Use size=1024x1024 and n=1. Each edge must be 64–2048 pixels, a multiple of 16. Use width and height together only when size is absent."
      },
      {
        "field": "Text-to-image only",
        "body": "Do not send reference images, masks or an edit request. Settlement uses returned resolution_target and image_output_megapixel_count, not inferred pixel area."
      }
    ],
    "responseChecks": [
      {
        "field": "data[]",
        "body": "For a synchronous result, inspect data entries and the returned url or b64_json. Download or decode the image, then check its actual dimensions and visual details."
      },
      {
        "field": "async=true",
        "body": "For asynchronous calls, save id and poll_url. HTTP 200 from polling means the lookup worked; wait for status=succeeded and inspect data. Do not re-submit a POST just to check progress."
      }
    ],
    "sample": {
      "data": [
        {
          "url": "https://example.com/generated-image.png"
        }
      ]
    }
  },
  "pricing_scope": "1 credit = US$1. These are catalogue base rates, not a live account quote. Account multipliers and the active billing configuration determine the final charge. Token rates are not a fixed price per image.",
  "pricing_index": "https://www.maxapi.dev/pricing.json",
  "routing_rules": [
    {
      "title": "Which route wins?",
      "body": "Routing priority is: the API key's configured route_modes list → an explicitly requested route → the model's default route. A non-empty key list takes precedence over route_mode in the request. To test a specific route, check the key configuration first; changing the request alone may not change the route used."
    },
    {
      "title": "RPM is shared at account level",
      "body": "An account's positive RPM limit covers its API keys together. A key can impose a stricter limit, but a higher key limit does not override the user limit. For example, a user limit of 200 RPM is not 200 RPM for each key. Service-level RPM and concurrency controls also apply; adding keys is not a way to bypass them."
    }
  ],
  "troubleshooting": [
    {
      "code": "400",
      "title": "Missing or invalid request fields",
      "meaning": "Check the response's error code, not only 400. For image edits, an empty prompt produces prompt_required. A parameter validation error is different from an upstream generation failure.",
      "action": "Check model, prompt, field types and documented size/quality values. Correct the request before retrying. For Gemini-native responses, inspect the numeric error.code and error.status fields."
    },
    {
      "code": "Invalid image file",
      "title": "A reference cannot be decoded or accepted",
      "meaning": "A filename ending in .png does not prove that the bytes are a valid PNG. The URL may return an error page, an incomplete download or a format the selected channel cannot use. An upstream 400 may be reported as a generic generation failure, so status alone does not identify the bad file.",
      "action": "Download and decode every reference locally. Check MIME type and pixel dimensions, then export a fresh supported image if needed. Submit one reference first and add the others in order to locate the problematic input; do not repeatedly resend an unchanged invalid file."
    },
    {
      "code": "429",
      "title": "rate_limit_exceeded / capacity_exhausted",
      "meaning": "429 can represent account/key RPM, service-wide capacity or generation capacity. Use Retry-After and available X-RateLimit-* / X-Global-* headers to distinguish them; one status code does not identify one unique cause.",
      "action": "Respect Retry-After when present, reduce request rate or active concurrency as appropriate, and use bounded backoff. Do not treat the site's total capacity as your account's personal quota."
    },
    {
      "code": "451",
      "title": "content_policy_violation",
      "meaning": "On the image generation failure path, a recognized upstream content refusal is mapped to 451. This is not the same as a network outage. MaxAPI's local moderation and an upstream refusal are different stages, even when both prevent a result.",
      "action": "Review the stated policy issue and use compliant inputs, or contact support if you believe the classification is mistaken. Do not retry unchanged blocked content or rotate routes to evade moderation."
    },
    {
      "code": "502 / 503 / 504",
      "title": "Generation failure, unavailable service or timeout",
      "meaning": "These responses do not all mean the same thing. MaxAPI distinguishes generation_failed, generation_unavailable and generation_timeout on compatible image endpoints. A client-side timeout can also happen before the server has finished a task.",
      "action": "If you have a task ID, poll before creating another task. Without an ID, keep the request ID and timestamp and investigate before blindly resubmitting. Retry transient failures with a limit, not an unbounded loop."
    }
  ],
  "verification": {
    "environment": "local_mock_requests_and_test_storage",
    "coverage": "shared_gateway_components_not_each_model_end_to_end",
    "paid_upstream_calls": 0,
    "reviewed_at": "2026-10-22",
    "cases": [
      {
        "key": "shared-user-rpm",
        "title": "Multiple keys share the user limit",
        "input": "Use two keys owned by the same account against an in-memory limiter with a small user quota.",
        "result": "Requests across the keys consume the same user quota; subsequent requests are limited. A larger key quota does not override the user quota, and a smaller key quota remains effective."
      },
      {
        "key": "failure-mapping",
        "title": "Content refusal and capacity failure stay distinct",
        "input": "Feed mocked upstream content-refusal and 429/503/504 responses into the generation-error mapper.",
        "result": "Content refusal maps to 451; capacity, unavailable service and timeout retain distinct public codes. The compatible 429/503 responses include Retry-After: 2 in these tests."
      },
      {
        "key": "image-reservation",
        "title": "Image reservations settle or release on completion",
        "input": "Exercise successful and failed synchronous image reservations with a local test database.",
        "result": "Success consumes the hold with a usage record. Failure releases the reservation without a generation charge. This verifies the tested code path, not a live account's current balance."
      }
    ],
    "limitations": "Local tests use simulated requests, responses and test storage; they do not call paid model channels. They verify request handling, not model image quality, live success rates, latency or end-to-end support for the maximum reference count. The concept illustrations elsewhere on this page are not these test outputs."
  },
  "sources": {
    "maxapi_documentation": "https://www.maxapi.dev/docs",
    "catalogue": "https://www.maxapi.dev/models.json",
    "provider_documentation": "https://replicate.com/prunaai/z-image-turbo"
  }
}
