Up to 16 images of one character, from text, reference images, or both, on a solid background color you pick, or transparent, ready for stickers, chats, and any backdrop. 1 credit per call.
characterstringat least one
The character every image depicts, in words: who or what it is and how it looks (a mascot, a creature, a person, or a single product or object). Provide this, characterReferences, or both; with both, the references show what it looks like, and the text adds details and, if a reference image shows more than one character, says which of them to draw.
At most 500 characters, with no square brackets. Leave out backgrounds and scenes. When a reference image shows more than one character, say here which of them to draw.
characterReferencesstring[]at least one
Up to 3 reference images of the character, alone or alongside character. Each entry is a ref_ token from the create_reference tool, which has its own guide covering uploads, limits, and token reuse. The set shows the character alone, not the rest of the reference images.
variationsstring[] or object[]required
What the character is doing in each image, one entry per image. Each entry is a string description, OR an object with { description, filename } to control the output filename.
Limits. At most 16 per call, each up to 200 characters of letters, numbers, dashes, spaces and apostrophes, starting and ending with a letter or number. Each must be a distinct, drawable variation: entries that differ only in case, punctuation or spacing count as the same variation.
Filenames. Each file is named from its variation, so a variation with no Latin letters or numbers needs the object form with a filename, cleaned up the same way as an image set's subjects.
Writing them. Each says what the character is doing: the action and pose, the feeling and how strongly, the expression, and anything held or worn. See the variations section.
backgroundstringoptional
The background every image sits on: a solid color as a 6-char hex (#RRGGBB), or transparent for images with no background, ready to drop onto any brand color or surface.
Do NOT describe background in the character or in any variation; set it here so we can ensure you get exactly the background you want.
formatstringoptional
png is always lossless. jpg and webp use the quality parameter.
jpg has no alpha channel, so a set delivered transparent is png or webp.
widthintegeroptional
Delivered width in pixels, 256 to 512 when given. Give both width and height for an exact box: every image lands on it, one uniform scale, the shorter axis padded. Give only one and the other axis hugs each variation at that scale plus the margin, so images in the set differ on it. Give neither and images come back at their native resolution: relative sizing scales nothing but a variation far larger than the rest, and fill scales each variation to its frame.
Leave both unset for highest quality when you plan to post-process; fix them for consistent dimensions across calls; fix one to let each image keep its variation's own proportion on the other.
heightintegeroptional
Delivered height in pixels, 256 to 512 when given; see width for how the two combine (both: an exact box; one: the other axis hugs each variation; neither: native size).
A hugging axis is not checked against the range: a wide variation fixed at 512 wide comes back well under 512 tall, which is the point, and its neighbors each take their own height.
minimumMarginintegeroptional
Minimum margin in pixels around each variation inside its output frame.
With relative sizing the actual margin varies by variation and never falls below this (only the set's largest variation sits exactly on it); with fill sizing every variation touches it on one axis. Raise for breathing room, drop to 0 when you will add your own margin. At most 15% of the smallest fixed side when a size is given, at most 80 without one.
sizingstringoptional
How variations are scaled. relative keeps the sizes the model gave them in relation to one another: one scale for the whole set, so a small variation stays small in its frame. fill scales each variation on its own to fill the frame less the margin, touching it on one axis, so every image reads at the same visual weight.
The icon-set convention is fill; it gives up relative size and enlarges any variation smaller than the frame, which the result reports when it happens. Either can be changed later with edit_set.
qualityintegeroptional
Compression quality for jpg and webp, from 1 (smallest file) to 100 (best quality). Ignored for png.
maxKBintegeroptional
A file size limit for each image, in KB (1 KB = 1024 bytes). webp only; rejected with png or jpg.
An image that fits keeps the quality above; one that does not has its quality and the precision of its transparent edges lowered together, 5 quality points at a time down to 70, until it fits (a set below 70 keeps its quality and lowers only its edges), so images in a set can land at different qualities and the faintest edges of a busy transparent image can soften. An image still over the limit at the last step is delivered anyway and named in the result. For platforms that cap each file's size.
validationstringoptional
How the character and variation cleanup is handled before generating. suggest returns a cleaned-up version of your prompt for review when the character text or a variation carries something it should not (a background, a scene, or in the character text, what the character is doing); skip generates your wording as given, with no cleanup; auto-apply applies the cleanup and generates in one step.
No mode skips the rejection of character text that does not describe a character, or of variations that are not distinct, drawable variations. Set skip when resubmitting a prompt you already revised from a previous suggestion (so your approved wording is used as-is, with no further suggestions) or when you are confident the prompt is clean. Use auto-apply when you just want the cleaned result without a review step; if the cleanup would leave no usable character text and you passed no characterReferences, it returns the suggestion instead of generating.
unpackTostringoptional
Local filesystem path your MCP client should extract the returned zip into.
Any path on your machine, such as ~/stickers; your client extracts the zip there, since the server never writes to your disk. If omitted, the client picks a destination.
zipURLstring
Download URL for the zip of the set. It works until expiresAt.
expiresAtstring
When the download URL expires, 30 days after the call.
imagesobject[]
One entry per image: filename inside the zip, description (the variation it was made from, as the call gave it), width and height in pixels, and the file's size in bytes. Under a file size limit (maxKB) each entry also carries the quality it was delivered at, the transparency levels it kept (maskLevels, 256 when exact), and overBudget when it is still over the limit.
formatstring
The delivered image format.
characterstring
The character text the set was generated with, after any auto-apply cleanup. Absent when the character came from references alone.
backgroundstring
The background the set was generated on: a color, or transparent.
remaininginteger
Credits left on your key after this call.
unpackTostring
Your unpackTo, echoed back.
suggestedCharacter, suggestedVariationsstring, string[]
Only on a validation suggestion: the cleaned character text and variation list, for review. Nothing was generated or charged. An empty suggestedCharacter means nothing in the character text said who or what the character is; replace it, or use characterReferences.
rejectedCharacter, rejectedVariationsstring, string[]
Only when the content check refused the request: the character text that does not describe a character, or the variations that are not distinct, drawable variations, as checked (after any auto-apply cleanup). The refusal comes back as a result, not an error. Nothing was generated or charged; revise them and resubmit.