animate_image
ChatGPTTurn one of your pictures into a short video: the picture is the first frame, and the prompt says what happens. Optionally give a last frame too and the clip moves from one to the other. Choose the model (default Seedance 2.5), the length and the resolution; the clip keeps the picture's shape. Or, with mode "subjects" (Seedance 2.5 or Wan 3.0), use pictures and clips as references rather than frames: asset_id is Image 1 and asset_id_2 to asset_id_9 are Image 2 onwards, video_asset_id is Video 1 and video_asset_id_2 to video_asset_id_5 are Video 2 onwards, named that way in the prompt, so one clip can carry several people, places and shots, or copy another clip's motion ("the movements of Video 1 on the character from Image 1"). A reference clip is charged by its length. Sound is off unless you ask for it. Video takes minutes, not seconds. The reply says roughly how long; collect it with wait_for_jobs (each call waits up to about a minute, so call it again until it is done). The finished clip comes with its first frame as a picture, its length, size and frame rate, and a link to the mp4. THE PRICE DEPENDS ON THE MODEL, THE LENGTH, THE RESOLUTION AND THE SECONDS OF ANY REFERENCE CLIP: ask get_pricing for one run at the usual settings before a long or high-resolution clip. Plnty's guidance: a clip from a start picture and an optional end picture, or, in mode subjects, from up to nine pictures named in the prompt: anything dynamic, cinematic or fast-paced, a story told in several shots in one clip. For one still turned by a camera move, camera_move is closer. Not sure this is the right tool, or how to word the prompt? Call plan first: it costs nothing.
camera_move
ChatGPTMake a short video of one of your pictures as if a camera moved through it: a push in, a crane up, an arc, an orbit. The picture is the first frame. Pick a named move (the same ones the camera-move card offers on the Plnty canvas), the length (5 to 15 s) and the resolution. Video takes minutes, not seconds. The reply says roughly how long; collect it with wait_for_jobs (each call waits up to about a minute, so call it again until it is done). The finished clip comes with its first frame as a picture, its length, size and frame rate, and a link to the mp4. About 36 credits for 5 s at 768P, 23 at 480P, 72 at 1080P; ask get_pricing for anything else. Plnty's guidance: turns one still into a camera move (a push, an orbit, a crane, a reveal); a person turning in place is a half orbit with the motion in the prompt. The scene holds still unless the prompt names a motion, and it cannot change what is in the picture. Not sure this is the right tool, or how to word the prompt? Call plan first: it costs nothing.
cancel_job
ChatGPTStop something you started before it finishes. Your credits for it are released automatically. A job that has already finished cannot be stopped, and it will say so rather than pretending.
closeups
ChatGPTTake one of your pictures and get curated close-ups of its details, as separate pictures. Not variations: these are crops INTO the same object, with its colour, material and identity locked to what you gave it. Two shapes: four square close-ups, or two wide 16:9 stripes. Each cell can be macro (right in, showing texture and grain) or detail (a clean close-up of one feature). Rendered as one sheet and cut up, so the whole set costs the same as one picture. Plnty's guidance: pulls framed detail out of a picture the person already likes, so texture and material read at full size. It crops into what is there and invents nothing: it cannot add a subject or change a composition. Not sure this is the right tool, or how to word the prompt? Call plan first: it costs nothing.
composite_images
ChatGPTPut one of your pictures on top of another, at a position and size you choose, and save the result as a new picture in your library. Layers go BOTTOM FIRST and the first one sets the frame. Spends no credits. It can place, resize and fade; blend modes, cut-out masks and video layers need the compositor on your Plnty canvas.
confirm_upload
ChatGPTCall this after the file has been sent to the upload URL. It checks the file arrived, reads its size (and for a video its length and frame rate), and adds it to your Plnty library so it shows up in the app and can be used by the other tools. Until this is called the file is not in your library.
download_asset
ChatGPTA link to download one of your Plnty files, with the name to save it as and how big it is. Works for anything in your library, however long ago you made it, so this is also how you fetch something again after an older link has stopped working. The link is good for an hour unless you ask for longer (up to a day, for a desktop app that fetches later); call this again for a fresh one. Fetch it with GET and write it to disk yourself. A picture comes with its size; a video with its length, size and frame rate read from the file itself, which is what an editor such as After Effects needs to build a composition.
edit_image
ChatGPTChange one of your pictures by saying what you want different. Good for "make the jacket red", "remove the person on the left", "put it at night". Takes a picture from your Plnty library and spends your credits. Returns a job id to follow with get_job. 17 models are available through the "model" argument, the same ones the pill offers on the Plnty canvas, from 2 credits to 123: see that argument for what each costs. Plnty's guidance: for changing one or more of the person's pictures by describing the change: a new sky, an outfit, an object added or removed, the same picture in one named period or place (her as a 1920s photograph, this street in 1860 Japan). It changes a picture only as far as words can say. Not sure this is the right tool, or how to word the prompt? Call plan first: it costs nothing.
expand_image
ChatGPTGrow one of your pictures outwards, inventing what would have been there rather than stretching what is. Say how many pixels to add on each side. The price follows the finished size: 15 credits for each started megapixel, up to 60 at four. Plnty's guidance: extends a picture past its edges.
generate_image
ChatGPTMake a new picture from a written description. This is the one that starts from nothing rather than from something you already have. Spends your Plnty credits and returns straight away with a job id: call get_job, or wait_for_jobs if you started several. The result is saved in your Plnty library like anything else you make. 16 models are available through the "model" argument, the same ones the Image Gen pill offers on the Plnty canvas, from 1 credit to 123: see that argument for what each costs. Each takes its own settings, and one it does not take is refused by name rather than ignored. Plnty's guidance: for a picture from a description alone. To change a picture the person already has, even into one named period or place, use edit_image. Not sure this is the right tool, or how to word the prompt? Call plan first: it costs nothing.
generate_with_lora
ChatGPTMake a picture using a LoRA you trained in Plnty, so it comes out in your own style or with your own subject in it. Call list_loras first to see which you have and whether one needs a trigger word in the prompt. Spends your credits and returns a job id to follow with get_job. Plnty's guidance: new pictures in a look or subject the person trained, called up by its trigger word in the prompt. It works only with looks already trained. Not sure this is the right tool, or how to word the prompt? Call plan first: it costs nothing.
generate_with_style_reference
ChatGPTGive it a description and one of your pictures to steer the look, and it makes something new in that feel. Different from restyle_image: this one generates rather than repaints, and the reference sets the feel rather than the content. Three sizes at three prices. Plnty's guidance: a new picture carrying the look of work the person has made, steered by a prompt and how hard the reference pulls. It blends mood and style rather than copying, so it will not reproduce a subject pose for pose; a precise change to one picture is edit_image. Not sure this is the right tool, or how to word the prompt? Call plan first: it costs nothing.
get_asset
ChatGPTThe full record for one thing you made, with the picture itself: what it is, what made it, when, its description and tags, and how it came to exist (what it was derived from). The image comes back inline so you can actually look at it, beside a permanent openInPlnty address and a download link that works for about ten minutes. Where a step in the history belongs to somebody else, it is marked as not readable rather than quietly dropped.
get_asset_bytes
ChatGPTHand back one of your Plnty files directly as base64, so you can write it to disk without opening a download link. Use this when you cannot make outbound connections, which is the case in most cloud sandboxes: download_asset gives you a URL those cannot reach. Prefer download_asset wherever you CAN follow a link, because this sends the whole file through your context and that is a lot of tokens. Only for files up to 600 KB, because an MCP reply cannot carry more than about a megabyte; bigger ones are refused with their size, and you should use download_asset for those.
get_balance
ChatGPTHow many Plnty credits you have left in the workspace this connection works in, yours or your team's, and which plan they came from. Worth checking before starting anything expensive. Costs nothing.
get_job
ChatGPTFind out whether something you started has finished. Give it the job id a generation tool handed back. While it is running you get "running"; when it is done you get the finished asset, its id in your Plnty library, a link to the file, and the picture itself so you can look at it. If the tool made a grid of several pictures, they arrive here cut into separate images, each saved in your library with its own id. If it failed you get the reason and your credits are already back.
get_pricing
ChatGPTWhat one run of a Plnty tool would cost you in credits, worked out live rather than from a stored number, and whether you can afford it right now. Leave the tool out to price everything this connection can run. Nothing is charged and nothing is started.
get_upload_url
ChatGPTPut a picture or a video from the local disk into the Plnty library so the other tools can work on it. Give it the filename and the size in bytes, and it hands back a URL to PUT the file to. Upload the bytes to that URL, then call confirm_upload with the asset id to finish. Pictures: png, jpg, webp and gif, up to 100 MB. Videos: mp4, mov and webm, up to 500 MB. For a file that is already online (a Figma export, a CDN, a shared link), use import_from_url instead: Plnty fetches it and nothing passes through you. This uses your Plnty storage, so it is refused if the file would take you over your plan. PREFER THIS OVER upload_image WHENEVER IT WORKS: the bytes go from disk straight to storage and never pass through your context at all, so it costs you almost nothing however big the file is. upload_image costs you the whole file in tokens, twice. Some sandboxes block outbound connections to storage hosts and some do not. TRY THE PUT before assuming yours does — a refused PUT costs one failed request, and guessing wrong costs you the entire file. If the PUT really is refused, fall back to upload_image. In ChatGPT, a file in this chat never comes through here, whether the person attached it or you made it here: a tool takes it directly as image_file, and import_from_url saves it to the library as file. If you cannot pass a file you made that way, ask the person to download it and attach it to the chat.
import_from_url
ChatGPTPut a picture or a video that is already online into your Plnty library, from a direct https link to the file. Plnty fetches it itself, checks what the file really is from its bytes, and adds it to the library so the other tools can work on it. Nothing passes through your context, so it costs you almost nothing however big the file is. Good for: a frame exported from a design tool as an https link, a file on a CDN or in cloud storage, a shared Dropbox or Google Drive link (turned into its download link for you). The link must open without signing in. A link to a web page about the file is refused with a sentence saying so: give the link to the file itself. Pictures: png, jpg, webp, gif, up to 100 MB. Videos: mp4, mov, webm, up to 500 MB. It uses your Plnty storage and never spends credits. A file the person attached to this chat comes in the same way: pass it as file instead of url. To run a tool on an attached picture you do not need this first: the tool takes it directly as image_file.
list_boards
ChatGPTThe boards in your Plnty workspaces, most recently touched first. Useful for knowing what you are working on and what a piece of work belongs to. Generation from here always lands in your library rather than on a board, so this is context, not a place to put things.
list_jobs
ChatGPTThe generations you have started from here, newest first, with whether each one is running, finished or failed. Useful when you have lost track of a job id, or to see whether anything is still going before starting more. Only shows work started through this connection, not what you made on the canvas.
list_loras
ChatGPTThe LoRAs you can generate with: ones you trained in Plnty, plus any shared with you or with your team. Each says whether it needs a trigger word, which has to appear in the prompt or the style will not show up, and what one picture with it costs. Pass an id to generate_with_lora.
list_workspaces
ChatGPTYour personal workspace and each team you belong to, with the credits each can spend and which one this connection works in now. Runs are paid from that workspace and land in it: in a team, in your Drafts there. Costs nothing.
make_contrasting_versions
ChatGPTTake one of your pictures and get back a grid of takes that each push against it in a different, named way, rather than variations on a theme. Use it when a picture is nearly right and you cannot say what is wrong. One charge for the whole grid, and it comes back as a single contact sheet rather than separate files. Plnty's guidance: pressure-tests a picture the person has committed to; each proposal breaks one assumption and holds everything else still. Notes steer it, and one result is meant to be worse than the original. Not sure this is the right tool, or how to word the prompt? Call plan first: it costs nothing.
make_social_kit
ChatGPTTake one picture and reframe it for the places you post it: an X post, a square, a Reel, a YouTube thumbnail, the two profile banners. Each shape is generated properly rather than cropped, so nothing important gets cut off. You pay once per distinct SHAPE, not once per format, so an X post and a YouTube thumbnail together cost the same as either on its own. Returns one job id per shape: collect them with wait_for_jobs. These come back with no headline on them, because drawing type needs the Plnty canvas: open the social media tool there to add it. Plnty's guidance: one picture into the shapes each platform wants, each rebuilt to fit rather than cropped. Text on the picture is carried across, but very small lettering can blur. Not sure this is the right tool, or how to word the prompt? Call plan first: it costs nothing.
make_variations
ChatGPTMake a set of alternative takes on one of your pictures, so you can pick the one you like. Choose WHAT varies: colour (colourways written for the picture), proportions, silhouette, rebuilt from simple shapes, framing, or custom-eq to mix six kinds of change with the eq object. They come back as separate pictures in your library. Spends your credits once for the whole set and returns a job id. Plnty's guidance: sharper options from a picture when the ask is unsure or too wide (abstract, surreal, cool, fresh, modern), or exploring it by colourway, proportions, shape, composition or primitives. It takes no prompt: notes steer it, and the mode decides what varies. Not sure this is the right tool, or how to word the prompt? Call plan first: it costs nothing.
plan
ChatGPTAsk Rothko, Plnty's own creative assistant, how to do it before you choose a tool. Give it what the person asked, in their words, and the pictures it is about. It answers with the tool to call and the arguments to call it with: the right tool for the ask, its model and the settings that tool's card uses, and the prompt written the way Plnty's team writes for that model, from everything the team has taught it. It spends no credits and changes nothing. Call it first whenever the person wants something made or changed (a picture, an edit, a restyle, variations, a clip), then call what it names. Skip it for chores: finding, downloading, uploading, taking a background off.
reimagine_in_year
ChatGPTTake one of your pictures and get back a grid of readings of it from a year you choose, made the way that year would have made it rather than filtered to look old. One charge for the whole grid, returned as a single contact sheet. Plnty's guidance: several readings of a picture as other eras could have made it, as options and ideas. One specific change of one picture to one named period or place (her as a 1920s photograph, this street in 1860 Japan) is edit_image, not this. Not sure this is the right tool, or how to word the prompt? Call plan first: it costs nothing.
remove_background
ChatGPTCut the background out of one of your images and give back the subject on transparency. Takes an image from your Plnty library and costs no credits. Returns straight away with a job id: call get_job with it to find out when the result is ready and to get a link to the file. The result is saved in your Plnty library like anything else you make, so you can use it later from the app or from here. Plnty's guidance: takes the background off a picture so the subject stands alone, ready to composite. It redraws nothing.
restyle_image
ChatGPTTake the look of one picture and put it on another. Give it the subject first and the style reference second. Different from edit_image: you are not describing a change, you are handing over a look to copy. Two modes: style-transfer keeps the first picture's subject and repaints it, object-mixer fuses the two into one thing. Spends your credits and returns a job id. Plnty's guidance: takes the look of one picture (its materials, palette, light and era) and applies it to a subject. It needs both pictures and makes a picture, never a clip. Not sure this is the right tool, or how to word the prompt? Call plan first: it costs nothing.
save_prompt
ChatGPTSave a prompt to the person's Plnty library, to use again later. Call it when the person asks to keep one ("save this prompt to Plnty"). Pass their words exactly as they wrote them: never rewrite, shorten or add to them, and never save a prompt you wrote unless they ask for that one. Up to 20,000 characters. It lands where this connection saves: the person's own library, or their Drafts in the team it works in. It never spends credits.
search_library
ChatGPTFind things you have already made, and SEE them. Searches your Plnty library by words in the name, description and tags, and can be narrowed to a kind of media, a model, or a date range. Returns the newest matches first, and the pictures come back with them as real images you can look at, up to 8 at a time, so this is the tool for "show me my last few images" as well as for finding one by name. Video shows its first frame; audio and 3D have no still and come back as records only. This reaches your own work only, across every workspace you are a member of.
switch_workspace
ChatGPTMove this connection to your personal workspace or to a team you belong to, when you ask for it. From the next run on, results land there and are paid from its credits: in a team, the team's, within any monthly limit its admins set. Pass the id or name list_workspaces gives, or "personal".
upload_image
ChatGPTPut a picture into your Plnty library by sending its bytes here as base64. THIS IS THE LAST RESORT, NOT THE FIRST MOVE. Try these in order. (1) If a generation tool is what you actually want, most of them take an image_data argument themselves and save the picture in the SAME call, so you never come here at all. (2) Otherwise try get_upload_url and PUT the bytes. Some sandboxes block outbound connections to storage hosts and some do not, and we cannot tell from here which yours is. TRY IT AND SEE — a refused PUT costs you one failed request; coming straight here costs you the whole file, twice. (3) Only if that PUT is actually refused, send the bytes here. png, jpg, webp and gif. COST, AND IT IS WORSE THAN IT LOOKS: base64 is a third bigger than the file, and it crosses your context TWICE — once when you read the file, and again when you EMIT it as this argument. That second crossing is output tokens, generated one at a time, and base64 runs about 3 characters per token because it is high-entropy. A 50 KB picture is therefore ~68,000 characters and roughly 40,000 tokens, half of them on the slow path. A 500 KB picture is ten times that and will take minutes. SO: resize the longest side to 512 and save as JPEG q70 before sending. That is about 25 KB for a typical photo, ~34,000 characters, and it is the difference between seconds and minutes. Do not send more than 200 KB through here under any circumstances — use get_upload_url or image_data. In ChatGPT, a file in this chat never comes through here, whether the person attached it or you made it here: a tool takes it directly as image_file, and import_from_url saves it to the library as file. If you cannot pass a file you made that way, ask the person to download it and attach it to the chat.
upscale_image
ChatGPTTake one of your pictures and rebuild it at two or four times the size, inventing the detail rather than smoothing it. Good for a texture, or an image you need at print size. Four times the size costs about four times as much, because it is four times the pixels. A cut-out (a picture with a transparent background) comes back transparent: it is cut out again after the upscale, at no extra cost, and the job reports when that is done. Plnty's guidance: makes a picture larger, adding the surface detail it never had (grass, hair, fabric). It never changes what is in the frame.
variations_eq
ChatGPTCompatibility entry for saved EQ workflows. For new work use make_variations with mode custom-eq and the eq object. Take one of your pictures and get back a family of members that differ by as much as you allow on each of six axes: colour, surface, proportion, silhouette, structure and topology. A band at zero is FROZEN and will not move. One charge for the whole family, returned as a single contact sheet. Plnty's guidance: reworks one picture with control over how much changes, band by band, from its colour to how many parts it has. It takes no prompt: notes steer it and the bands decide how much changes. Not sure this is the right tool, or how to word the prompt? Call plan first: it costs nothing.
wait_for_jobs
ChatGPTWait for one or more things you started and get them all back together. Give it the job ids and it holds on until they are done, up to about a minute, then tells you which finished and which are still going so you can call it again with just those. Use this instead of checking each job in turn when you have started several at once. Finished jobs come back with their asset id, a link, and the picture itself.