AI Image Tools

Updated Oct 15, 2026 Open the tool

The AI image tools ("Imagine") generate 2D artwork for FiveM: inventory icons, logos, scenes, characters, embroidered patches, UV texture atlases, image refinements and tattoo overlays. They run on OpenAI GPT Image (and optionally Google Nano Banana) and charge credits per image, refunding automatically when a generation fails. In /app, right-click works on image results (Download, Refine, Make a model, Delete), Designer generate results, tattoo layers and saved tattoo packs (since 2026-09-22; see workspace.md).

GPT Image 2.5 (2026-09-16)

OpenAI released two GPT Image 2.5 models and the /app tools moved to them. Flare (gpt-image-2.5-flare) is the fast one and the default for everything: icons, logos, patches, scenes, liveries and clothing textures. Sunburst (gpt-image-2.5-sunburst) is the precise one and is used wherever a mask is sent, which means the Designer's "refine an area" and the plugin panel's Refine, and whenever someone picks it. Both cost the same at the provider ($5 per million text input tokens, $8 per million image input, $30 per million image output) so the credit price does not depend on which one runs.

The model picked is the model that runs (since 2026-10-12). Until then every unmasked generation ran on Flare whatever the picker said: a Sunburst pick got Flare, and a GPT Image 2 pick was charged the GPT Image 2 price and drawn by Flare. Now Sunburst and GPT Image 2 run as picked; Flare still follows OPENAI_IMAGE_MODEL / OPENAI_TEXTURE_MODEL, and a masked edit still runs on OPENAI_EDIT_MODEL whatever was picked.

Transparency comes from the model now. 2.5 accepts background: 'transparent' and returns real alpha, so a transparent category (icons, logos, patches) no longer asks the model for a flat grey backdrop that we then strip. The old matte pipeline still runs for GPT Image 2, for Nano Banana, and as a safety net whenever a 2.5 result comes back opaque anyway, so nothing ships with a grey plate behind it.

GPT Image 2 is still selectable in the model picker, one step below the 2.5 pair, for work tuned to it. Every /app tool is on 2.5 — Images, the Designer (textures, patches, area refine), Tattoos, the plugin panel, and the picture the Props tool generates before it makes a model. The legacy plugin pages (/plugin/photoshop, /plugin/photopea, /plugin/browser) and their Imagine dialog defaulted to GPT Image 2 until 2026-10-12, when they moved to Flare: those runs had been drawn by Flare all along, so the pictures stay the same and the price drops to Flare's. The v1 routes also fall back to Flare when a request names no model, and a masked v1 refine is priced as Sunburst, which is what runs it.

2.5 is markedly cheaper to run, and the prices came down with it. OpenAI publishes no tokens-per-image table for 2.5, so it was measured against the live API on 2026-09-16 (scripts/measure-image-cost.ts). A square 1024 image spends 196 output tokens at Draft, 439 at Standard and 1,756 at High — identical on Flare and Sunburst — which at $30 per million is $0.006, $0.013 and $0.053. One 1024² reference image adds about 1,052 tokens, roughly $0.008. GPT Image 2 spends about four times that at Standard and High, and three times as much per reference: 2.5 at High costs what 2 cost at Standard. Credit prices on 2.5 were cut to match — High by half, Standard by a third, Draft by a sixth (see the table below). Every run also records what the provider actually billed (provider_model, provider_input_tokens, provider_output_tokens, provider_actual_usd on the result log, at $8 per million input and $30 per million output). Until 2026-10-12 only POST /api/v2/images wrote these; since then /api/v2/tattoos (summed over the versions), masked refines, and the v1 create, refine and texture routes do too (the v1 tattoo route was removed on 2026-10-13; tattoos are made on /api/v2/tattoos).

2.5 also refuses input_fidelity ("does not support the 'input_fidelity' parameter"), so references are always processed at the model's own fidelity; only the legacy gpt-image-1 / 1.5 path sends it.

The /app tool (2026-09-15)

The workspace has its own door to the same engine: Images at /app/image, with Generate and Refine on one set of controls, the free-form categories (inventory icons, UI icons, logos, scenes, characters) and batches of one, two or four. What differs from this page: it calls POST /api/v2/images instead of /api/v1/imagine/create and /refine, and every finished image is saved to the person's workspace library as a file of its own with a thumbnail, so it is on their other devices and still there next week, where a generation made here keeps results in the browser under a signed link that expires in seven days. Prices, rate limits, refunds and the prompt rules are identical; the per-minute limits are shared between the two doors. A picture already in the library is refined without uploading anything. The results offer Download, Refine again, Make a model (hands the picture to Image to 3D in the Props tool) and Delete. Vehicle liveries and clothing textures are generated in the /app Designer against a real UV map, and since 2026-09-16 the Designer also makes text patches and image patches (from the sheet or a file) and adds them to the design as layers; its textures, patches and area refines all run on POST /api/v2/images and are saved to the library. The Images tool itself still has no patch categories. Since 2026-10-02 the library groups what these make (workspace.md, "Project folders"): a picture refined from a library picture goes into a project with it, so a refine chain is one project with every step; Designer liveries, patches and refines go into the project of the car or model they were painted on; a lone generation stays a file of its own. The rebuilt plugin panel's Imagine tab (not released yet) makes patches, refines and UV textures on the same v2 route, and saves them to the library the same way. Tattoo packs have their own /app tool, described under Tattoo Pack Studio. Details for staff are in workspace.md, section "Images, and the first v2 route for AI pictures".

Opened from Home (since 2026-10-09). When the Home guide sends someone to Images or Tattoos, the tool opens with what they asked for already in the prompt (?prompt= in the address; Tattoos also opens its generator). Words already typed, or a run in progress, are left as they are. Nothing is generated or spent until Generate is pressed.

The Text to Image page

The Text to Image page at /app/image is the main AI image tool. Pick a category, a style, a quality ("Standard" or "High"; the "Draft" option is hidden) and an aspect ratio (1:1, 16:9, 9:16, 4:3, 3:4), type a prompt, optionally add a reference image and press "Generate · {n}c". The cost card reads "Per image {n} credits" and shows plan prices with an "Upgrade" link. Only one job generates at a time; the rest wait in the queue as "Queued".

Categories are "Inventory Icon", "UI / HUD Icon", "Logo / Emblem", "Scene", "Refine Image", "Character", "Vehicle Livery", "Clothing Texture", "Text Patch" and "Image Patch". Transparent categories (icons, logos, patches) have a "Remove background automatically" checkbox ("Off = inspect the chroma backdrop before stripping"). The model picker lists "GPT Image 2.5 Flare" ("Fastest for everyday icons, logos, patches and textures."), "GPT Image 2.5 Sunburst" ("Lands an edit exactly, at the same price.") and "GPT Image 2" ("The previous model, kept for work tuned to it."); this page starts on Flare. The server also accepts nano-banana-2 when Gemini is configured.

Each result offers "Download" (several pixel sizes), "Refine image", "Remove background", "Use as 3D prop" (hands the PNG to /app/prop?generate=1) and "Reuse settings". Results are cached in the browser and saved to the user's storage library; the signed link the server returns is valid for 7 days.

Credit costs per image

AI image generations are priced per model, quality and plan from the FEATURE_PRICES table. Flare and Sunburst charge the same as each other. Since 2026-09-30 Lite (Plugin Pass) and Booster pay exactly Free's price on every row: only Standard and up are paid plans for pricing, and the Plugin Pass buys the plugin, not cheaper credits. Until then they paid one step under Free (GPT Image 2.5 8 / 13 / 33, GPT Image 2 10 / 20 / 60, Nano Banana 20 / 22 / 42, the legacy Standard row 25).

GPT Image 2.5 (both models), listed as Free / Lite / Booster / Standard / Pro / Max:

  • Draft (low): 10 / 10 / 10 / 6 / 5 / 5
  • Standard (medium): 16 / 16 / 16 / 10 / 8 / 8
  • High: 40 / 40 / 40 / 25 / 20 / 20

GPT Image 2, when picked, kept its prices when 2.5 came in:

  • Draft (low): 15 / 15 / 15 / 8 / 6 / 6
  • Standard (medium): 25 / 25 / 25 / 15 / 12 / 12
  • High: 70 / 70 / 70 / 50 / 40 / 40

Nano Banana (nano-banana-2), when enabled: 1K 25 / 25 / 25 / 15 / 12 / 12, 2K 28 / 28 / 28 / 18 / 14 / 14, 4K 50 / 50 / 50 / 35 / 28 / 28 (cut on 2026-09-14, see the Credits doc). Referrer pays the Free column.

Sheets (since 2026-09-23): a Roblox livery or clothing run in /app puts every piece on one image (texture modes roblox-livery, roblox-clothing and, since 2026-10-08, roblox-outfit), and that image is asked for at the largest size GPT Image 2.5 draws instead of the 1024 preset: 2304x3456, 3456x2304 or 2816x2816 (SHEET_OUTPUT_SIZE in app/server/imagine.ts, a pixel budget near 8 megapixels; 2432x3648 is refused). Before this a five-slot vehicle sheet came back 683x1024 and the front and back panels were stretched six to eight times onto their 2048 canvases. Measured on the edit endpoint (scripts/measure-sheet-cost.ts --run): the large sheet spends 2.3 times the output tokens of the preset size at every quality (medium 343 against 796 tokens for 1024x1536 against 2048x3072; high 1,372 against 3,184), so a sheet costs twice the GPT Image 2.5 price for its quality: Standard (medium) 32 / 32 / 32 / 20 / 16 / 16, High 80 / 80 / 80 / 50 / 40 / 40 (SHEET_CREDIT_MULTIPLIER, sheet: true in getImageGenerationPriceDetails). A single-slot run in those tools is priced and drawn the same way. Gemini keeps its own sizes by quality and is not affected.

A picture brought to the middle is a picture to refine (since 2026-09-28). In /app/image, a PNG, JPG or WebP dropped on the middle of the tool, pasted there, or chosen with Refine an image under the empty state switches the tool to Refine with that picture, whichever of Generate or Refine was showing. A reference for a generation is added in the left column's Reference box, as before.

Short of credits (since 2026-09-27). In /app the button a generation shows when the balance is below its price, "Get N credits" (Images, Tattoos, the Designer's Generate and Refine, Generate model, the Roblox liveries and clothing, the Packs texture, the Preview panel's Imagine tab, and the cost table's plans button), opens the plans dialog with Pro picked out, the packs under the plans on the same dialog; it used to land on the packs section. Pro is where the lowest credit prices are, which is the point of the door; the analytics source names are unchanged.

Extras: the first 2 input images are free on GPT Image; each further input costs 6 / 6 / 6 / 4 / 3 / 3 credits (Lite and Booster paid 5 until 2026-09-30). Gemini inputs are free. Generating 2 outputs in one request (tattoos) gets 10% off, 3 or more gets 15% off. Credits are taken before the provider call; a failure refunds them and the error says so ("Your {n} credits have been refunded" or "We could not automatically refund your {n} credits; our team has been alerted"). The response includes a request id to quote to support.

Input rules, limits and moderation

AI image inputs must be PNG, JPEG or WebP ("Reference image must be PNG, JPEG, or WebP"). The server allows 25MB per image ("Reference image exceeds 25MB limit") and 30MB per request; the Text to Image page is stricter for references ("Reference image must be under 3.5MB"). Prompts are capped at 4,000 characters and additional context at 2,000 ("Prompt exceeds 4000 characters"). Images are uploaded first through /api/v1/imagine/input-upload (up to 8 files, 25MB each, 75MB combined, "Images exceed 75MB combined limit") into a temporary folder that is deleted after the job. Image to 3D in /app uses the same upload since 2026-09-22; its views are moved out of the temporary folder into the public site bucket (publishImagineInput in src/lib/app/server/imagine-inputs.ts) because the 3D providers fetch them by link. A request with no JSON reason (the platform's own 413, 502, 503 or 504 page) now reads as a sentence in describeGenerationFailure instead of "(HTTP n)". Discord input and result logs now carry the user (they passed a Supabase User, which the logger used to drop) and skip attachments past 9 MB total instead of losing the whole log.

Rate limits per minute depend on plan (Free, Lite and Booster / Standard and up): create 8 / 30, refine 6 / 20, texture 4 / 15, tattoo 4 / 12, the same on the legacy /api/v1/imagine/* routes and on POST /api/v2/images and /api/v2/tattoos. Until 2026-09-30 Lite and Booster had a middle step (create 15, refine 10, texture 8, tattoo 8); it is gone. Over the limit returns "Rate limit reached. Please slow down."

Content rules live in the server prompt: output must be original, and the model is told not to reproduce copyrighted logos, real brand marks, celebrity likenesses or trademarked emblems unless the user describes their own variation. Provider-side moderation can still reject a request, and provider error text is never shown, because it carries request ids and rate-limit hints. Since 2026-09-23 the workspace routes (/api/v2/images, /api/v2/tattoos) say which kind of refusal it was instead of one flat line: "That request was rejected for content reasons. Change the picture or the wording and try again.", "The picture could not be read. Try another one.", or "The image generator is busy right now. Try again in a minute." An unrecognised failure keeps the old fallback ("Could not make the image · try again", "Could not make the tattoo · try again"). The wording is shared with the 3D generator; see the Credits doc, "What a failed generation says". The legacy pages on /api/v1/imagine/* still show "Image generation failed. Please try again or contact support." Every case is refunded. The Discord account behind the request must also be at least 30 days old: since 2026-09-15 every POST to Imagine, the Code agent and the workspace generators (/api/v2/images, /api/v2/tattoos) from a younger account is refused with "AI tools need a Discord account at least 30 days old · appeal at admin@zoov.dev".

A generation the model refuses (a request for banknotes, a real logo) or that fails is refunded in full, and the tool says so on the spot. Since 2026-10-05 the refund is also on record in the workspace bell as Credits refunded ("8 credits back · Images"), with the badge and a dot but no pop-up, since the person already saw it happen.

Refine an existing image

Refine Image ("Guided Edit") improves or restyles an uploaded image while keeping its subject and layout. Upload a source, optionally paint a region, describe the change ("Describe what to refine") and press "Refine · {n}c". A painted region turns the job into a masked edit, which always uses GPT Image; only the painted area changes and the rest of the picture is composited back from the original. Small regions are edited as a cropped tile at full resolution for more detail.

Limits: direction up to 2,500 characters ("Refinement direction is required"), context 1,500, source and mask up to 25MB each. Price is the normal GPT Image price for the chosen quality with the source (and mask) counted as inputs. Outputs are saved as refined_image_*.png in the user's library.

UV texture atlases for liveries and clothing

The "Vehicle Livery" and "Clothing Texture" categories generate a flat, square texture atlas aligned to a UV map. Upload a UV map or "Generate a UV map from a YFT or upload your own UV guide." ("Generating UV map...", "UV map ready"), then give a creative direction ("Describe the texture you want"). Up to 12 UV markers can be placed with labels, areas, direction notes, rotation (+90, -90, 180, "Match island") and flips; they are drawn onto a guide image the model sees.

Reference images are limited by plan: 1 on Free, Lite and Booster, 4 on Standard and above ("Use up to {n} reference images"). Lite and Booster carried 2 until 2026-09-30, in /app, on /api/v1/imagine/texture and in the legacy plugin pages (/plugin/photoshop, /plugin/photopea, /plugin/browser), which now all offer 1 below Standard. The UV map, and the sheet the Roblox tools draw, never count as a reference. Since 2026-09-29 the Roblox Liveries and Clothing panels in /app offer exactly the plan's number of reference slots, with a locked Up to 4 tile carrying a Standard badge beside them on Free, Lite and Booster that opens the plans; before, they offered four slots on every plan and a Free run with two or more pictures was refused after the upload ("Up to 1 reference on this plan"). UV map, guide and references may total 75MB. The output is always square ("Texture atlas output is square and uses the UV guide as the layout source."). Roblox livery and clothing modes use the same endpoint with a flat, blocky style. Price is the GPT Image price for the quality plus any extra inputs beyond the free two.

Lettering the user asks for is painted (since 2026-09-29). Every texture run used to end with a general instruction to avoid visible text, which fought a request like "POLICE on the doors"; texture runs now avoid only text nobody asked for. ER:LC livery runs also have their own instructions: the brief is the specification, every word and number in it is painted spelled as written and large enough to read, the design stays as simple as the brief (most ER:LC liveries are a base colour, a stripe or two, a department name, a badge and unit numbers), badges and stars are allowed, and a reference picture of a livery is reproduced rather than used only for colours. Words in quotes in the prompt ("SHERIFF", "12") are repeated to the model on their own line to be painted letter for letter; the prompt's example shows it.

Embroidered patches

Text Patch and Image Patch produce embroidered patch graphics with transparent backgrounds. Text Patch builds from fields: "Patch text" (required, up to 200 characters), text, background and outline colours (a colour name or hex code; otherwise "Invalid patch text color. Use a color name or hex code."), an optional font style, a layering option (single, multi or curved) and a shape chosen as the style: Rectangle, Circle, Top Rocker, Side Rocker, Bottom Rocker, Diamond, Triangle. Rectangle and rocker shapes use a shipped silhouette template. The silhouettes are bundled with the server since 2026-10-15 (src/lib/app/image-generation/shapes/, read through SvelteKit's read in shape-templates.server.ts, by the v2 images route and both v1 imagine routes); until then they were read from static/ with fs, which a Vercel function does not ship, so every Text Patch on production ran without its shape (ENOENT /var/task/static/assets/normal_patch.png, 26 people in a fortnight).

Image Patch needs an uploaded image ("An image is required for Image to Patch") and a finish: Embroidered, Cut-out Embroidered (background removed, border follows the subject), Velcro-Backed or Distressed. Both are priced as a normal GPT Image generation.

Older endpoints /api/v1/imagine/text-to-patch and /api/v1/imagine/image-to-patch are still used by the Photoshop, Photopea and browser plugins. They use gpt-image-1, charge a flat 25 credits, are limited to 5 and 15 requests per minute, and save to library/patches/. Failures there are refunded too ("Patch generation failed. Please try again or contact support.").

Tattoo Pack Studio

In the workspace (2026-09-15). Tattoos at /app/tattoo is the same studio rebuilt: generate from the same eight styles or bring a picture, click the body where it goes, export the same ZIP. Every generated tattoo is saved to the workspace library (since 2026-10-02 inside the pack's project, each run one version, and Export pack keeps the dictionary, the XML and the pack itself there, so the pack opens on another computer from the project); a set of versions is made side by side, and a version that fails is refunded on its own while the others still arrive (this page refunds the whole set). A hidden tattoo is left out of the export, and there is no opacity setting, because the game has none. A picture that is not square can be fitted whole instead of cropped. Recolouring can be undone. Packs are saved on the device and reopen from their own link, and packs made in this page can be brought over once from the Packs list. Staff detail: workspace.md, "Tattoos, the pack studio in the workspace". Since 2026-10-04 its placement (what a click, the wheel and the fields do to a tattoo's numbers, and how it is painted on the body) is a shared engine, modes/tattoo/engine.ts, which Packs uses for its own tattoos with the same body, fields and a zone sheet with handles (ZoneSheet.svelte); see the Packs doc, "Tattoos and overlays". Nothing in the tool changed for a person using it.

Baked skin packs (2026-10-04, owner: "direct baked tattoos, for full body on peds and MP characters, using the body texture"). Tattoos has two kinds of pack (Pack: Overlays or Baked skin). Overlays is what it always made: decorations a script puts on a player. Baked skin paints the tattoos into the MP body's own skin texture, so every MP character of that body on the server wears them, whatever their skin. An MP character's body skin is not its clothes' texture: the game blends it at run time from mp_fm_skin_<m|f>_<up|lo|fe>_<race>.ytd (upper body and arms, legs, feet, for six races; found in ped_mp_overlay_txds.rpf and the streamed strm_peds_mp_overlay_txds.rpf) by the head blend's parents, so a tattoo baked into a drawable's own diffuse would never show. Those dictionaries share the UV layout of the bare body (uppr_015_r, lowr_000_r, the feet; checked by drawing each mesh's UVs over the textures), which is the body the stage shows (static/ped/<ped>/body.glb). A baked pack is one body's (Male or Female). The stage shows that body in a chosen skin (six swatches, one per race); a click puts the selected tattoo there, facing out from the skin; pressed on the tattoo, a drag moves it across the body; the handles drawn around it size it evenly (corners), stretch it (sides) and turn it (the knob, Shift in 15° steps); Ctrl and the wheel size it, Alt and the wheel turn it. The left column takes its width and height in centimetres and its turn. A new tattoo waits to be placed ("Not placed"); the footer counts the ones not placed, which are left out. Only the upper body and arms take tattoos (owner, 2026-10-05): the bare body's legs are the jeans drawable (lowr_000_r), not a body the game's leg skin shows on, so the legs and feet are drawn dark, take no click, and are neither baked nor exported (BAKED_PARTS in skin.ts). Export pack bakes every placed tattoo into the upper body's texture over all six races, and writes each as the game's own dictionary (its name, the texture's name inside, DXT1 with mips, the game's size: 512, feet 256; checked by reading the exported files back), with an fxmanifest.lua and a README, as <resource>.zip (kept in the pack's project as a version). Only one skin pack per body can run on a server; the head is not baked yet (its 46 face textures per sex come next). How it works (modes/tattoo/): a tattoo is placed in the body's own space (projected.ts: a point on the skin, its normal, a size in metres and a turn) rather than in a zone's texture, and bake.ts paints it into any model's texture through that model's UVs on the GPU: each triangle drawn where its UVs put it, each texel inside the tattoo's rectangle, near its plane and facing it taking the tattoo's colour (fading at grazing angles), the result grown four texels past every UV island's edge so the game's filtering never pulls skin into a seam, then laid over the skin. The stage (SkinStage.svelte, ProjectedHandles.svelte, SkinPreview.svelte) bakes again on every change, so what it shows is the texture the export writes. The game's skin textures are site assets (static/ped/<ped>/skin/, with index.json holding each one's name, size and format), written by winapi scripts/skin_textures_build.py from the legacy game. The same engine bakes tattoos into any ped's own skin in the Peds tool, and Packs carries a skin pack's files as overlays. Walked 2026-10-04 (node_modules/.probe/tattoo-skin.mjs: placed, every handle, a skin swatch, the export's dictionaries read back); again 2026-10-05 with the upper body only (six up dictionaries, a click on the legs placing nothing). Tests: tattoo/projected.test.ts.

The Tattoo Pack Studio at /app/tattoo ("FiveM ped decoration pack editor") generates tattoo artwork and places it on a ped. Choose one of eight presets (Japanese, Blackwork, Fine Line, Traditional, Tribal, Lettering, Gothic, Geometric), describe the tattoo ("Describe the tattoo", up to 1,200 characters), optionally add a reference image (under 25MB; the server also accepts reference notes, but the page's notes field is switched off), and pick "Single", "Pair" ("Save 10%") or "Triple" ("Save 15%"). Generation uses GPT Image at Standard quality, so a single tattoo costs 25 credits on Free, Lite and Booster, 15 on Standard and 12 on Pro and Max, before any batch discount.

Every tattoo is post-processed to a transparent 512px texture. Blackwork, Fine Line, Tribal, Lettering, Gothic and Geometric are forced to black ink; other presets may keep colour. The studio also imports your own images, crops them, recolours them ("Tattoo recolored") and places them by zone, position, scale, rotation and opacity on a male or female preview. Collections autosave in the browser ("Collection saved") and can be duplicated for the other gender.

"Export pack" needs a signed-in account ("Sign in to export a pack") and downloads a ZIP with fxmanifest.lua, the ped overlay XML, a README.txt with the Lua AddPedDecorationFromHashes line, and stream/{collection}.ytd built by the WinAPI backend ("Tattoo pack ready", or "Could not create YTD").

Remove background

The background remover strips the backdrop from a picture and costs no credits. In /app it is the Remove background button in the Designer's effects for an image layer, which sends the layer as it stands to the WinAPI remover and puts the cut-out back on the layer ("Removing" while it runs); a failure shows the WinAPI's error message. Images generated with a known chroma backdrop can be keyed by colour for cleaner edges. The transparent categories of the image tools (icons, logos, patches) remove their own backdrop as part of the generation.

The site's own route for it, /api/v1/imagine/remove-background (8MB per image, 30 calls a minute), was removed on 2026-10-13 because nothing called it any more; the buttons that remove a background talk to the WinAPI remover directly.

Other helpers under Imagine

Several smaller endpoints share the Imagine prefix and charge no credits:

  • OG images (/api/v1/imagine/og-image/{slug}): renders social preview PNGs for pages. Not AI.

Removed 2026-10-12: POST /api/v1/imagine (a raw generator on gpt-image-1.5 at high quality), /api/v1/imagine/badge, /api/v1/imagine/name-props, /api/v1/imagine/assistant (a gpt-5.1 canvas agent of up to 12 steps), the /api/v1/imagine/agent stub and GET /api/v1/upload (dall-e-3). Nothing in the site called them, and any signed-in account could spend OpenAI money through them without paying credits. Their tool library src/lib/ai/tools went with the assistant.

A 3D model reference, in a tool's pose (2026-10-13)

The 3D generator's Describe it path draws its picture through the same image route. Opened from the Animals tool or Shells, it asks for the hidden category 3D model reference (model-subject, never listed in the Images tool): one subject, whole, centred, transparent, in soft even light with true colours, since the picture is read for shape and painted onto the model. The tool adds its own direction (a stance, a framing), and the Animals tool adds a pose picture: a grey clay figure of the game animal the result must stand like, never copied for its colour or identity. A photo can be sent with the pose to be redrawn in it, keeping who it is. The pose picture is an input image and is priced as one. Elsewhere (Props, Weapons, Clothing) the words are still drawn as an inventory icon, as before.

Common questions

How much does one image cost? GPT Image 2.5 at Standard quality is 16 credits on Free, Lite and Booster, 10 on Standard and 8 on Pro and Max. High quality is 40 on Free, Lite and Booster, 25 on Standard and 20 on Pro and Max. Picking the older GPT Image 2 costs more: 25 and 70 on Free, Lite and Booster. The exact figure is shown next to "Per image" before you generate.

The generation failed. Was I charged? No. Credits are refunded automatically and the error message states the amount. If it says the refund could not be made, staff were alerted; quote the request id from the message. In the workspace (/app) the message ends in a six-letter code instead (for example "Code K7Q2XD"); quote that, and staff can find the full error and the request id from it.

It says "Connection dropped before the result came back". Did it work? Maybe. Your browser lost the connection while the image was being made, but the server keeps going. If the image finished, it is in your library (it appears there within a minute) and was charged normally; if it failed, it was refunded. Check the library before trying again.

Why was my reference image rejected? Use PNG, JPEG or WebP. The Text to Image page limits references to 3.5MB; other tools accept up to 25MB.

Why do I get "Rate limit reached"? Each tool has a per-minute cap that grows from Standard up (for example 8 image generations per minute on Free, Lite and Booster, 30 on Standard and above). Wait a minute and retry.

It says my request was rejected for content reasons. What now? The AI provider refused it under its own content rules. Your credits are refunded. Change the picture or the wording and try again; brand logos, real people and explicit content are the usual causes. "The picture could not be read" instead means the reference itself was the problem, not the subject.

Can it draw a real brand logo or a celebrity? No. The prompt rules forbid copyrighted logos, brand marks and celebrity likenesses, and the provider may block such requests. Describe an original design instead.

Where do my generated images go? They are saved to your library in Zoov storage (links valid 7 days) and cached in your browser on the Text to Image page. Use "Download" to keep a copy.

Is removing a background free? Yes. Background removal costs no credits. In the workspace it is the Remove background button on an image layer in the Designer.

Topics ai imageimaginetext to imagetattoopatchlivery textureremove backgroundcreditsbaked tattooskin packmp_fm_skinbody texturetattoo on skin

Something missing? Ask on Discord