ImagineArt
Generate images, video, music
- Category
- Content & Design
- Primary Subcategory
- Multi-Modal Generative Media Platforms
Integration details
Description
ImagineArt turns a written brief into finished creative, images, video, music, logos, ads and social posts, without leaving the chat. Describe what you want and it generates it: a product ad, a fashion photoshoot, an Instagram post, a YouTube thumbnail, an interior design render, a logo animation, or a background track. You can also work on images you already have, remove a background, upscale, apply effects, or re-edit an earlier generation. For teams doing repeat work, it keeps reusable pieces in your workspace: products, presenter avatars, fashion models, outfits and shot settings, so later shoots stay consistent with earlier ones. Everything is saved into your ImagineArt folders and stays available after the conversation. Requires an ImagineArt account. Generations use your plan's credits.
- Integration type
- Plugin
- Verification status
- Not applicable
- Platform
- ChatGPT
- Primary Subcategory
- Multi-Modal Generative Media Platforms
- Secondary Subcategories
- None listed
- Brand
- ImagineArt
- Access
- Account required
- First tracked
- 2026-09-13
- Tool count
- 96
- Geography
- US
The Primary Subcategory used for this profile’s headline score.
Other Subcategories where the Integration is listed.
ChatGPT Plugin Discovery Score
ChatGPT Plugin discovery is coming soon
ChatGPT can surface a Plugin when it matches a user's request.Your Plugin Discovery Score measures how often yours appears.
No spam. Unsubscribe any time.
What discovery looks like

Competing in ChatGPT Multi-Modal Generative Media Platforms
View Category96 tools agents can invoke
Burn styled, auto-transcribed captions into an existing video. Returns a uuid immediately and mounts a widget that polls fetch_status itself (queued → generating → complete). Only call this once a style has been chosen — the user named one ("add whisper captions"), or select_caption_preset came back with one. select_caption_preset covers captions requests that name no style ("add captions to this video"). Arguments: • org_id (required) — from select_organization. • asset_id (required) — uuid of a finished video this server hosts. From list_assets, or the last path segment of any asset.imagine.art/processed/<uuid> URL already in the conversation (from user_upload, a listing, or another widget) — that uuid IS the asset id. A link the user pasted from elsewhere cannot be captioned. • preset (required) — an id from list_caption_presets, verbatim: the match is exact. • language (optional) — locale of the spoken audio, region-qualified ("en-US", not "en"); omit to auto-detect. translation_language (optional) — same form, to translate; adds a surcharge. • position (optional) — top | center | bottom. shadow (optional) — none | min | mid | max. • folder_id (optional) — from select_folder; omit to inherit the source video's folder. Cost scales with the source: per started minute, doubled for 2K/4K, doubled again for an animated preset.
generate_video_captions
Used internally by the ImagineArt widgets: animate a finished fashion still into a short campaign video. Two modes: (1) template mode — pass a template_id from list_fashion_video_templates; the template drives the backgrounds, camera, transitions, and pacing. (2) advanced mode — pass a free-text prompt describing the motion, plus an optional camera_movement_id from list_camera_movements (e.g. Pan Right, Push In, Orbit Left). Supply exactly one of template_id or prompt. In both modes the model and wardrobe stay locked to the source still. It registers the still with bytedance (or reuses an existing reference) and runs a reference-to-video generation. Returns immediately with the queued video uuid; where a widget is rendered it polls fetch_status and updates in place. In a text-only context, poll fetch_status (id=<uuid>, sync:true) until status is "complete" or "error", then use the returned url. Requires an active subscription (paid organizations only). Arguments: • org_id (required) — the organization the user selected via select_organization. • fashion_project_id (required) — the numeric project id threaded from select_fashion_project; the clip is linked to it. • images — a JSON array STRING of reference stills (a JSON string, not a raw array), in order (first = Image1), e.g. '[{"asset_id":"…","bytedance_id":"…"}]'. asset_id (the still's asset uuid, from list_fashion_generations, or the last path segment of any asset.imagine.art/processed/<uuid> URL already in the conversation (from an upload or another widget) — that uuid IS the asset id) is required per entry; this tool resolves the image url from it, so asset_id carries a uuid rather than a url. bytedance_id is the still's seedance reference when it already has one (from list_fashion_generations or upload_asset_bytedance); omit it and this tool registers the still with bytedance itself. A bytedance_id comes from those tools, and a still that already has one is not re-uploaded through upload_asset_bytedance: a re-upload is rejected upstream. • videos (optional) — the same JSON array STRING shape as images, but for reference VIDEOS (in order, first = Video1). Use this for any reference asset that is a video, NOT images: a video's asset_id put in the images arg is rejected upstream ("not an image"). Same asset_id rule (uuid from a list, or the last path segment of an asset.imagine.art/processed/<uuid> URL) and same optional bytedance_id. At least one reference across images + videos is required; each kind keeps its own 1-based order. • template_id (template mode) — the template to apply, from list_fashion_video_templates. • prompt (advanced mode) — free text describing the desired motion. May be combined with template_id (template drives the shoot, the prompt refines it). • camera_movement_id (optional) — a movement from list_camera_movements to steer the camera; pairs with a prompt. • aspect_ratio (optional) — e.g. 16:9, 9:16, 1:1, 4:3, 3:4, 21:9. Defaults to 3:4. • duration (optional) — clip length in seconds (e.g. 4, 5, 10, 15). Defaults to 15. • resolution (optional) — e.g. 480p, 720p, 1080p. Defaults to 720p. • count (optional) — how many clips. Defaults to 1. • folder_id (optional) — a folder id from select_folder to place the result in. uuid, org_id, asset_id, template_id, camera_movement_id, bytedance_id and fashion_project_id are internal identifiers.
animate_fashion_image
Used internally by the ImagineArt widgets: apply a chosen image effect (a grain / film-stock or color-grade preset from list_image_effects) to an existing generation. It runs a two-step workflow — analyze the source image with the preset to engineer a finishing prompt, then image-to-image generate one variant that re-renders the source with the effect while preserving its subject, wardrobe, pose, framing, and background. It recovers the source asset's framing, resolution, and (for fashion assets) project + composition and preserves them. Returns immediately with the queued variant uuid; where a widget is rendered it polls fetch_status and updates in place. In a text-only context, poll fetch_status (id=<uuid>, sync:true) until status is "complete" or "error", then use the returned url. Requires an active subscription (paid organizations only). Arguments: • effect_id (required) — the id of the effect to apply, from list_image_effects. • asset_id (required) — the uuid of the existing generation to apply the effect to (an ImagineArt asset the user selected or that a prior tool produced). • org_id (required) — the organization the user selected via select_organization. • folder_id (optional) — a folder id from select_folder to place the result in; omit to keep the source asset's folder.
apply_image_effect
Use this for any captions request that does not name a style — "add captions to this video", "generate captions for this clip", "subtitle this". The user chooses the caption style, plus language, position and shadow, and the video itself if none was pre-selected. Interactive: the user's choice comes back as a separate message carrying the chosen preset id and the collected settings, for the generate_video_captions call that follows. Where no UI is rendered, the result carries the equivalent details as text. Where the user has already named a style ("add whisper captions"), generate_video_captions takes it directly. Arguments: • org_id (required) — from select_organization. • asset_id (optional) — uuid of a finished video to pre-select, sourced exactly as for generate_video_captions. Omit it and the picker lets the user choose the video too.
select_caption_preset
Composite two or more source images into a single reconciled frame — e.g. place the same model across shots into one scene, or merge separate product/garment stills into one composition. Runs image-to-image on nano-banana-pro with the reference-aware reconciler so the people, outfits, and setting stay consistent. Returns immediately with the queued asset and a widget that polls fetch_status itself. Requires an active subscription (paid organizations only). Arguments: • org_id (required) — the organization the user selected via select_organization. • image_urls (required) — two or more source image urls to composite. Pass urls the user selected (prior generations) or obtained via user_upload. • camera_angle_id (optional) — a camera angle from list_camera_angles (e.g. Close-Up, FPV Drone Shot) to frame the composite; its preset instruction block drives the composition. Omit to just combine the inputs into one cohesive frame. • background_select_id (optional) — a scene from select_fashion_background (which needs org_id). When the user wants the composite set in a specific scene, call select_fashion_background, then thread the picked select_id here — the scene image is added as a reference. Omit to keep the inputs' own setting. • aspect_ratio (optional) — defaults to the model default. • resolution (optional) — e.g. "1K", "2K", "4K". • count (optional) — how many composites. Defaults to 1. • fashion_project_id (optional) — link the result to a fashion project. • folder_id (optional) — a folder id from select_folder to place the result in.
composite_shoot
Use this when the user asks to create an ad of ANY kind — "create an ad", "product ad", "UGC ad", "video ad", "hyper-motion ad", "make an ad for <product>", etc. It returns the step-by-step ad-studio workflow to run (organization → product → avatar → format → hook → setting → project → generate_ad). Takes no arguments.
create_ad
Used internally by the ImagineArt picker widgets. Saves a market avatar from already-uploaded photos; the avatar picker widget drives it.
create_avatar
Use this when the user asks to create anything with the fashion studio — a photoshoot of ANY kind ("fashion photoshoot", "fashion shoot", "lookbook", "editorial shoot", "model wearing <garment>", "put this outfit on a model", etc.) OR a fashion video ("fashion video", "animate this look", "turn the shoot into a clip"). It returns the step-by-step fashion-studio workflow, which shares one setup (organization → shoot type → project) and then splits: a photoshoot branch (model → wardrobe → background → pose → generate_fashion_photoshoot) or a video branch (fashion_video_shoot). Takes no arguments.
create_fashion
Create a fashion model for the organization from one or more reference photos. Returns the created model immediately, then generates its character sheet (a 2x2 grid of the same person from four angles, used to keep later fashion generations identity-consistent) in the background and saves it onto the model when ready, with no polling required. Requires org_id (from select_organization), a name, a gender, and at least one image_url reference photo; description, age, and size are optional but size improves the sheet. visibility is optional and defaults to "organization" (shared with the rest of the org); pass "private" to keep the model to the creator.
create_fashion_model
Create a fashion outfit (a top or bottom) for the organization. Requires org_id, a title, and a type; frontal/rear/fabric image_urls, metadata, and visibility are optional. visibility defaults to "organization" (shared with the rest of the org); pass "private" to keep the outfit to the creator.
create_fashion_outfit
Used internally by the ImagineArt widgets: create a new fashion project in the selected folder and return its fashion_project_id. The select_fashion_project widget drives this via its inline "Create new project" field. A direct call applies where no widget is rendered and the user asked for a new project; it takes a name plus org_id and directory_id, from select_organization and select_folder.
create_fashion_project
Create a fashion shot setting — a scene (type "background") or pose (type "pose") — for the organization. Requires org_id, a title, and a type; category, image_urls, metadata, and visibility are optional. visibility defaults to "organization" (shared with the rest of the org); pass "private" to keep the shot setting to the creator. For type "background" with an image, the server auto-derives a lighting prompt from the image and stores it in metadata.prompt (unless metadata already has a prompt), so the subject is lit as if inside the scene.
create_fashion_shot_setting
Create a fashion utility (footwear or accessory) for the organization. Requires org_id, a title, and a type; description, image_urls, metadata, and visibility are optional. visibility defaults to "organization" (shared with the rest of the org); pass "private" to keep the utility to the creator.
create_fashion_utility
Used internally by the ImagineArt widgets: create a new marketing project (campaign container) in the selected folder and return its market_project_id. The select_market_project widget drives this via its inline "Create new project" field. A direct call applies where no widget is rendered and the user asked for a new project; it takes a name plus org_id and folder_id, from select_organization and select_folder.
create_market_project
Used internally by the ImagineArt picker widgets. Creates a market product from a scraped URL or uploaded photos; the product picker widget drives it.
create_product
Delete a saved market avatar. Provide avatar_id (from a prior select_avatar) plus org_id. The ad-studio widget drives this; the model may also call it when the user explicitly asks to delete an avatar. Returns {id}.
delete_avatar
Delete a generated asset from a fashion project. Requires org_id, the project_uuid, and the asset_id.
delete_fashion_asset
Delete an organization's saved fashion model. Requires org_id and the model id.
delete_fashion_model
Delete an organization's saved fashion outfit. Requires org_id and the outfit id.
delete_fashion_outfit
Delete a fashion project. Requires org_id and the project uuid.
delete_fashion_project
Delete an organization's saved fashion shot setting. Requires org_id and the shot setting id.
delete_fashion_shot_setting
Delete an organization's saved fashion utility. Requires org_id and the utility id.
delete_fashion_utility
Delete a saved market product. Provide product_id (from a prior select_product) plus org_id. The ad-studio widget drives this; the model may also call it when the user explicitly asks to delete a product. Returns {id}.
delete_product
Used internally by the ImagineArt widgets: apply a photo edit to an existing generation. It runs a two-step workflow — analyze the source image to engineer edit prompt(s), then image-to-image generate one variant per prompt (each effect returns a 4-shot set). It recovers the source asset's framing, resolution, and (for fashion assets) project + composition and preserves them on the edit. Returns immediately with the queued variant uuids; where a widget is rendered it polls fetch_status and updates in place. In a text-only context, poll fetch_status (id=<uuid>, sync:true) on each uuid until status is "complete" or "error", then use the returned urls. Requires an active subscription (paid organizations only). Arguments: • effect (required) — which edit to apply; each produces a 4-shot set anchored on the source. One of: Editorial (narrative/creative coverage of the same look): editorial_pose_variation — different poses, gestures, and expressions; look, location, and mood held. editorial_angle_coverage — cinematic camera setups (low, overhead, profile, dutch, over-the-shoulder). editorial_mood_lighting_shift — same outfit and location under different lighting/atmosphere. editorial_location_jump — same look carried across different environments; wardrobe and model held. editorial_time_season_shift — same scene progressed through times of day or seasons. editorial_story_progression — sequential narrative beats within the same scene (a film-still arc). Catalog (e-commerce product coverage): catalog_standard_angle_coverage — the canonical front/back/3-4-left/3-4-right/side set. catalog_pose_variation — clean catalog poses keeping the garment fully visible and silhouette readable. catalog_colorway_swap — recolor the hero garment across color variants at full styling parity. catalog_detail_feature — close-up inserts (collar, cuffs, hem, hardware, stitching, labels, trims). catalog_styling_combinations — the same hero piece restyled with different complementary garments. catalog_model_fit_coverage — the same garment on a range of body types, heights, or sizes. • asset_id (required) — the uuid of the existing generation to edit (an ImagineArt asset the user selected or that a prior tool produced). • org_id (required) — the organization the user selected via select_organization.
edit_photo
Enhance an image using the ImagineArt API. Pass org_id (required) — the organization id the user selected via select_organization. Optionally pass folder_id (a folder the user picked via select_folder) to create the result inside that folder; omit it to use the workspace root. Pass image_url — if the user selected an existing generation, pass its url; for a non-ImagineArt asset, first call user_upload and pass the resulting url. Returns immediately with a uuid and a widget that mounts in the queued state; the widget polls fetch_status and updates in place. The widget handles the polling.
enhance_image
Used internally by the ImagineArt widgets: extract a single garment (or its motif) from a reference photo and render it as a clean, isolated product asset suitable for virtual try-on — a ghost-mannequin garment view on a white background, or a flat isolated motif. Renders NO widget. Runs image-to-image and returns immediately with a uuid; poll fetch_status yourself (id=<uuid>, sync:true) until status is "complete" or "error", then use the returned image url as the extracted asset. Requires an active subscription (paid organizations only). Arguments: • org_id (required) — the organization the user selected via select_organization. • image_url (required) — the reference photo. If the user selected an existing generation, pass its url; for a non-ImagineArt asset (a user attachment), user_upload returns a url to pass here. • garment_type (required) — which view to extract. One of: top_front / top_back — the upper-body garment (shirt/blouse/top), front or back. bottom_front / bottom_back — the lower-body garment (pants/skirt/shorts), front or back. dress_front / dress_back — a one-piece / full-length garment (dress/kurta/jumpsuit), front or back. motif — only the print/graphic/logo/embroidery, isolated as flat artwork. • folder_id (optional) — a folder id from select_folder to place the result in; omit for the workspace root.
extract_garment
Open the fashion video shoot: a single interactive surface where the user builds a fashion reference-to-video clip end to end — picking a source still, a template or free-text motion, an optional camera movement, duration/aspect/resolution — and runs the generation. This is data-less: the widget drives the whole flow itself, calling list_fashion_video_templates, list_camera_movements, and animate_fashion_image via its own controls. Call this tool when the user wants to animate a fashion still into a video or asks for a fashion video. After calling this tool, call list_fashion_generations with the same organization ID and fashion project ID you used here. Requires org_id (the organization the user selected via select_organization), fashion_project_id (from select_fashion_project — scopes which stills the widget offers as animation sources), and shoot_type — "editorial" or "catalog" — which the widget uses to filter its templates. shoot_type is required: ask the user whether they want an editorial or catalog shoot and confirm their choice before calling.
fashion_video_shoot
Status fetcher for queued music generations. The widget polls this silently via the callServerTool backchannel during the queued → generating → complete transition. In text-only contexts, pass sync:true to wait server-side for completion (bounded ~45s). Without sync (default), it's a single point-in-time check.
fetch_music_status
Used internally by the ImagineArt picker widgets. Polls a from-URL product scrape until it is finished or failed.
fetch_product_status
Status fetcher for queued image or video generations (the asset type is derived from the generation, not fixed). The widget polls this silently via the callServerTool backchannel during the queued → generating → complete transition. In text-only contexts, pass sync:true to wait server-side for completion (bounded ~45s). Without sync (default), it's a single point-in-time check.
fetch_status
Turn a flat 2D logo into a premium 3D version and animate it into a short cinematic logo-reveal clip — smooth rotation, dynamic studio lighting sweeps, reflections gliding over the material, and motion-graphics polish, building to a clean hero hold. This runs the whole 3d-logo-animation recipe in ONE call: internally it first converts the supplied 2D logo into a high-quality 3D version (realistic reflections, studio lighting), waits for that to finish, then animates the 3D logo into the reveal. Use this when the user asks for a 3D logo, an animated logo, a logo reveal / intro, or wants to turn a flat logo into a cinematic motion graphic. Phase A renders on nano-banana-2 (image-to-image edit) and phase B on veo-3.1-fast (image-to-video). Because it renders the 3D logo first, this tool BLOCKS for a short while (typically under a minute) before it returns the queued video. That wait is expected and the call is still running. It then returns a uuid and a widget that mounts in the queued state — the widget itself polls fetch_status and updates in place (queued → generating → complete). The widget handles the polling. Arguments: • org_id (required) — the organization id the user selected via select_organization. The same org_id applies for the whole chat. • folder_id (optional) — a folder id the user picked via select_folder, to create the video inside that folder. Omit to create it at the workspace root. Reuse the same folder_id for the whole chat. • logo_image_url (required) — a URL of the flat 2D logo to convert and animate. Pass a URL the user supplied directly, or one obtained by uploading a user-attached logo via user_upload first. • material_style (optional) — the 3D material appearance (e.g. "gold", "matte plastic", "holographic", "brushed metal"). Defaults to "glossy glass and chrome". • model (optional) — the phase-B video model. One of: "veo-3.1-fast" (default), "veo-3.1", "kling-2.6-pro", "ltx-2.3", "seedance-2.5", "seedance-2.0-fast", "happy_horse", "seedance-2.0", "wan-2.6", "seedance-1.5-pro", "seedance-pro-fast", "kling-o3", "kling-3.0-pro", "pixverse-v6", "wan-2.2". Pass the model name exactly as written. Omit to use the default. • aspect_ratio (optional) — the animation framing. Defaults to "16:9" (the skill's cinematic option). Each model has its own allow-list (same lists as generate_video); a value not in the chosen model's list silently falls back to a valid ratio, and the request still succeeds. (The intermediate 3D logo still always renders square.) • duration (optional) — clip length as a string (seconds). Defaults to "6". Each model has its own allow-list (same as generate_video); a value not in the chosen model's list silently falls back to a valid duration. • resolution (optional) — the output resolution. One of: "720p", "1080p" (default), "4k". Pass when the user asks for a specific resolution; omit to use 1080p. An unrecognised value falls back to "1080p".
generate_3d_logo_animation
Run the ad-studio video generation once the selections are made. Args: org_id, market_project_id (from select_market_project/create_market_project), format_id (required), product_id and avatar_id (from select_product/select_avatar), optional setting_id/hook_id, resolution (REQUIRED — from list_resolutions), aspect_ratio (REQUIRED — from list_aspect_ratios), duration (REQUIRED seconds — from list_durations), optional prompt (free-text ad brief — may be empty; the format supplies the base), optional count (default 1), folder_id?. resolution, aspect_ratio, and duration are all required: call list_resolutions, list_aspect_ratios, and list_durations and have the user confirm each before generating, so credits aren't spent on unintended output. format_id is the numeric id from list_formats or a select_format click, rather than the format name. The user saying "UGC" gives you the name "UGC", whose format_id is a number (e.g. 1); pass the number. Passing "UGC" as format_id is wrong and will fail. setting_id/hook_id are likewise numeric ids, not names. The server resolves the ids into the prompt + reference images. If format_id is missing or unrecognized this returns an error; call list_formats to get the right number (or select_format to let the user pick), then retry. Renders the asset-generation widget (queued → progress).
generate_ad
Used internally by the ImagineArt picker widgets. Generates one candidate avatar image from a prompt for the avatar picker widget.
generate_avatar
Generate a multi-slide social carousel (Instagram / LinkedIn style) from one topic. The server plans the deck — cover, content slides, CTA, each with its own headline, subtext and visual in a shared brand style — so it takes the topic, rather than per-slide prompts or copy. Returns one uuid per slide; the result text says what to do next. Use for any carousel / swipe post / slide deck; for a single image use generate_image. Before the first carousel in a chat, ask slides (3/5/7, default 5) and frame (4:5 default, 1:1, 9:16) in ONE question via your native choice interface — not two questions, not an interview. Skip it when the user already said, or told you to just make it, then reuse those answers all chat. Audience and tone belong in prompt. For a carousel about a concrete product, select_product follows that question and its choice supplies product_id. The picker collects the photo itself and calls user_upload on its own. No other ad-studio step belongs in a carousel. For a generic deck — tips, education, quotes — skip the picker and generate straight away.
generate_carousel
Turn a single photo of a person into a polished, cinematic cooking tutorial video. This runs the whole storyboard-to-cooking-video recipe in ONE call: internally it first renders a composite production reference board (a character reference preserving the person's face, a kitchen location reference, and a 9-panel step-by-step action sequence for the dish), waits for that board to finish, then animates it into a single continuous cinematic clip with soft kitchen ambience — following the steps beat by beat from raw ingredients to a final plated close-up. Use this when the user wants to turn a person's photo into a cooking / recipe tutorial video. Stage 1 renders on gpt-image-2 and stage 2 on seedance-2.0-fast (image-to-video). Because it renders the reference board first, this tool BLOCKS for a short while (typically under a minute) before it returns the queued video. That wait is expected and the call is still running. It then returns a uuid and a widget that mounts in the queued state — the widget itself polls fetch_status and updates in place (queued → generating → complete). The widget handles the polling. Arguments: • org_id (required) — the organization id the user selected via select_organization. The same org_id applies for the whole chat. • folder_id (optional) — a folder id the user picked via select_folder, to create the video inside that folder. Omit to create it at the workspace root. Reuse the same folder_id for the whole chat. • person_image_url (required) — a reference image URL of the person who will star in the tutorial. If the user attaches an image, first call user_upload with it and pass the returned url here; if the user gives an image URL directly, pass it as-is. • dish (optional) — the food being made (e.g. "fresh pasta", "chocolate soufflé", "sushi rolls"). Defaults to "fresh pasta". • kitchen_style (optional) — the kitchen aesthetic (e.g. "modern minimalist", "cozy farmhouse"). Defaults to "Italian rustic-modern". • outfit (optional) — what the person wears (e.g. "chef's whites", "casual sweater and apron"). Defaults to "a clean apron over smart-casual clothing, sleeves rolled up". • duration_seconds (optional) — clip length in seconds. Defaults to "15". An unsupported value for the model silently falls back to a valid duration and the request still succeeds. • aspect_ratio (optional) — pass when the user specifies one. Defaults to "16:9"; pass "9:16" for vertical social-media reels. An unsupported value falls back to a valid ratio. • resolution (optional) — the output resolution. One of: "480p", "720p" (default), "1080p". Pass when the user asks for a specific resolution; omit to use 720p. An unrecognised value falls back to "720p".
generate_cooking_video
Generate a cinematic aerial / drone-style video using the ImagineArt API — sweeping bird's-eye views, orbit shots, flyovers, and top-down footage of landscapes, architecture, and events. Use this when the user asks for drone, aerial, bird's-eye, flyover, overhead, or top-down footage. It expands a subject + shot type + style into an aerial-tuned prompt and renders it on the veo-3.1 model by default (best physics and camera motion for aerial scenes). Returns immediately with a uuid and a widget that mounts in the queued state — the widget itself polls fetch_status and updates in place (queued → generating → complete). Arguments: • org_id (required) — the organization id the user selected via select_organization. The same org_id applies for the whole chat. • folder_id (optional) — a folder id the user picked via select_folder, to create the video inside that folder. Omit to create it at the workspace root. Reuse the same folder_id for the whole chat. • location_or_subject (required) — what to shoot from above (e.g. "a mountain valley at sunrise", "a luxury villa by the ocean", "a crowded city intersection"). • shot_type (optional) — the camera movement. One of: "reveal" (default — ascends and reveals the subject), "orbit" (smooth 360° circular arc around the subject), "flyover" (low, fast forward tracking with depth of field), "top-down" (static overhead bird's-eye). An unrecognised value falls back to "reveal". • style (optional) — the visual atmosphere (e.g. "dramatic storm clouds", "misty morning", "blue hour city lights"). Defaults to "golden hour, cinematic, 4K, ultra-detailed". • reference_image (optional) — an aerial/location reference image to run image-to-video instead of text-to-video. If the user attaches an image, first call user_upload with it and pass the returned url here; if the user gives an image URL directly, pass it as-is. Omit for plain text-to-video. • model (optional) — one of: "veo-3.1" (default), "veo-3.1-fast", "ltx-2.3", "seedance-2.5", "seedance-2.0-fast", "happy_horse", "seedance-2.0", "wan-2.6", "seedance-1.5-pro", "seedance-pro-fast", "kling-2.6-pro", "kling-o3", "kling-3.0-pro", "pixverse-v6", "wan-2.2". Pass the model name exactly as written. Omit to use the aerial-tuned default. • aspect_ratio (optional) — pass when the user specifies one. Defaults to "16:9". Per-model allow-lists: - veo-3.1: 16:9, 9:16 - veo-3.1-fast: 16:9, 9:16 - ltx-2.3: 16:9, 9:16 - seedance-2.5: 16:9, 4:3, 1:1, 3:4, 9:16, 21:9, adaptive (with a reference_image the ratio is always "adaptive") - seedance-2.0-fast: 21:9, 16:9, 9:16, 3:4, 4:3, 1:1, auto - happy_horse: 16:9, 9:16, 1:1, 4:3, 3:4 - seedance-2.0: 21:9, 16:9, 9:16, 3:4, 4:3, 1:1, auto - wan-2.6: 16:9, 9:16, 1:1, 4:3, 3:4 - seedance-1.5-pro: 21:9, 16:9, 9:16, 3:4, 4:3, 1:1 - seedance-pro-fast: 16:9, 4:3, 1:1, 9:16, 21:9, 3:4 - kling-2.6-pro: 16:9, 9:16, 1:1 - kling-o3: 16:9, 9:16, 1:1 - kling-3.0-pro: 16:9, 9:16, 1:1 - pixverse-v6: 16:9, 9:16, 4:3, 3:4, 1:1, 2:3, 3:2, 21:9 - wan-2.2: (none — always uses 16:9) An aspect_ratio that isn't in the chosen model's list silently falls back to 16:9 (or the model's first listed ratio if it doesn't allow 16:9); the request will still succeed. • duration (optional) — pass as a string (seconds, or "auto" where supported). Defaults to "6". Per-model allow-lists: - veo-3.1: 4, 6, 8 - veo-3.1-fast: 4, 6, 8 - ltx-2.3: 6, 8, 10 - seedance-2.5: 4 through 30 (any whole second) - seedance-2.0-fast: auto, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 - happy_horse: 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 - seedance-2.0: auto, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 - wan-2.6: 5, 10, 15 - seedance-1.5-pro: 4, 5, 6, 7, 8, 9, 10, 11, 12 - seedance-pro-fast: 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 - kling-2.6-pro: 5, 10 - kling-o3: 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 - kling-3.0-pro: 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 - pixverse-v6: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 - wan-2.2: (none — always uses its default) A duration that isn't in the chosen model's list silently falls back to "6" (or the model's first listed duration if it doesn't allow "6"); the request will still succeed. • resolution (optional) — only some models support it; pass only when the user asks for one. Per-model allow-lists (first value is the default the model uses when omitted): - veo-3.1: 720p, 1080p, 4k - veo-3.1-fast: 720p, 1080p, 4k - ltx-2.3: 1080p, 1440p, 2160p - seedance-2.5: 480p, 720p - seedance-2.0-fast: 480p, 720p - happy_horse: 720p, 1080p - seedance-2.0: 480p, 720p, 1080p - wan-2.6: 720p, 1080p - seedance-1.5-pro: 480p, 720p - seedance-pro-fast: 480p, 720p, 1080p - pixverse-v6: 360p, 540p, 720p, 1080p - kling-2.6-pro, kling-o3, kling-3.0-pro, wan-2.2: (none — resolution is ignored) A resolution that isn't in the chosen model's list silently falls back to that model's default.
generate_drone_video
Used internally by the ImagineArt picker widgets. Generates candidate fashion-model images from a text description for the model picker widget.
generate_fashion_model_image
Fire the final Fashion Studio shoot: compose the selected model, wardrobe, scene, and pose into finished photos. This tool only queues the generation and renders no widget — after it succeeds, call show_fashion_generations (with the org_id, fashion_project_id, and shoot_type it reports back) to display the results widget. Requires an active subscription (paid organizations only). Arguments: • org_id (required) — the organization the user selected via select_organization. • fashion_project_id (required) — the numeric project id threaded from select_fashion_project; the shoot is linked to it. • prompt (required) — the user's shoot description. The selected background's lighting is appended automatically. • model_select_id (required) — the select_id from select_fashion_model. • outfit_select_ids (optional) — comma-separated select_ids from select_fashion_wardrobe, e.g. "beige-shirt-2e,faded-jeans-39" (a top and/or a bottom, or a single dress). Pass each select_id exactly as reported. Pass one string, not an array. Omit for no outfit. • utility_select_ids (optional) — comma-separated select_ids for footwear / accessories from select_fashion_wardrobe, e.g. "white-sneakers-2d,gold-hoops-71". Pass one string, not an array. • pose_select_id (optional) — the select_id from select_fashion_pose. • background_select_id (optional) — the select_id from select_fashion_background. Omit to shoot at the plain root. • shoot_type (optional) — "editorial" or "catalogue". • aspect_ratio (required) — one of 16:9, 9:16, 1:1, 4:3, 3:4. Ask the user which they want (or call list_aspect_ratios) before generating; the shoot fails if it is empty. • count (optional) — how many images, as a numeric string, e.g. "1". Defaults to the standard batch. • folder_id (optional) — a folder id from select_folder to place the assets in. select_id, fashion_project_id and folder_id are internal identifiers, used as arguments.
generate_fashion_photoshoot
Generate a dramatic "giant product" advertising image — a regular product enlarged to a massive, building-sized scale, towering next to a person for scale comparison, in a polished commercial studio setting. Use this when the user wants a giant/oversized product visual, a surreal scale-comparison ad, or a "product as a building" hero shot. It takes the product photo and renders the giant-scale scene (image-to-image) on the nano-banana-pro model. Returns immediately with a uuid and a widget that mounts in the queued state — the widget itself polls fetch_status and updates in place (queued → generating → complete). Arguments: • org_id (required) — the organization id the user selected via select_organization. The same org_id applies for the whole chat. • folder_id (optional) — a folder id the user picked via select_folder, to create the image inside that folder. Omit to create it at the workspace root. Reuse the same folder_id for the whole chat. • product_image (required) — the product photo to enlarge. If the user attaches an image, first call user_upload with it and pass the returned url here; if the user gives an image URL directly, pass it as-is. This is essential — the giant scene is rendered from this image. • person_description (optional) — the person standing beside the giant product for scale, e.g. "a woman in a red dress", "a child looking up in awe". Defaults to "a stylishly dressed man".
generate_giant_product_showcase
Generate an image using the ImagineArt API. Returns immediately with a uuid and a widget that mounts in the queued state — the widget itself polls fetch_status and updates in place as the generation progresses (queued → generating → complete). Arguments: • org_id (required) — the organization id the user selected via select_organization. The same org_id applies for the whole chat. • folder_id (optional) — a folder id the user picked via select_folder, to create the image inside that folder. Omit to create it at the workspace root. Reuse the same folder_id for the whole chat. • prompt (required) — the text prompt. • image_url (optional) — a reference image to run image-to-image (edit / variation) mode instead of text-to-image. If the user attaches an image, first call user_upload with it and pass the returned url here; if the user gives an image URL directly, pass it as-is. Omit for plain text-to-image. When set, the request automatically switches to the img2img variation (models that don't support img2img silently fall back to text-to-image). • model (optional) — one of: "nano-banana-pro" (default), "imagine-art-2.0", "nano-banana-2", "gpt-image-2", "imagine-art-1.5", "imagine-art-1.5-pro", "recraft-v4.1", "ideogram-v4", "seedream-v5-lite", "xAI-grok-imagine". Pass the model name exactly as written. Omit unless the user asks for a specific model. • aspect_ratio (optional) — pass when the user specifies one. Defaults to "1:1". Per-model allow-lists: - nano-banana-pro: 21:9, 16:9, 3:2, 4:3, 5:4, 1:1, 4:5, 3:4, 2:3, 9:16 - imagine-art-2.0: 1:1, 9:16, 16:9, 4:3, 3:4, 2:3, 3:2, 21:9, 4:5, 5:4 - nano-banana-2: 21:9, 16:9, 3:2, 4:3, 5:4, 1:1, 4:5, 3:4, 2:3, 9:16 - gpt-image-2: 1:1, 4:3, 3:4, 3:2, 16:9, 9:16, 21:9, 2:3 - imagine-art-1.5: 1:1, 9:16, 16:9, 4:3, 3:4, 1:3, 3:1, 2:3, 3:2 - imagine-art-1.5-pro: 1:1, 9:16, 16:9, 4:3, 3:4, 1:3, 3:1, 2:3, 3:2 - recraft-v4.1: 1:1, 4:3, 3:4, 16:9, 9:16 - ideogram-v4: 1:1, 4:3, 3:4, 16:9, 9:16 - seedream-v5-lite: 1:1, 2:3, 3:2, 4:3, 3:4, 16:9, 9:16 - xAI-grok-imagine: 2:1, 20:9, 19.5:9, 16:9, 4:3, 3:2, 1:1, 2:3, 3:4, 9:16, 9:19.5, 9:20, 1:2 An aspect_ratio that isn't in the chosen model's list silently falls back to 1:1; the request will still succeed. • resolution (optional) — only some models support it; pass only when the user asks for one. Per-model allow-lists (first value is the default the model uses when omitted): - nano-banana-pro: 1K, 2K, 4K - nano-banana-2: 1K, 2K, 4K - gpt-image-2: 1K, 2K, 4K - seedream-v5-lite: 2K, 4K Other models ignore resolution entirely. A value not in the chosen model's list silently falls back to that model's default. • quality (optional) — only gpt-image-2 supports it: "low", "medium", "high" (first value is the default when omitted). Other models ignore quality. A value not in the model's list silently falls back to the model's default.
generate_image
Generate a polished, Instagram-ready post using the ImagineArt API: a scroll-stopping hero image plus a caption and hashtags. Use this when the user asks for an Instagram post, a social media post/visual, a feed or Reels image, or "content for Instagram". It expands a short brief (and optional brand style) into a prompt tuned for social-media photography that grabs attention within two seconds, and renders it on the nano-banana-pro model. Returns immediately with a uuid and a widget that mounts in the queued state — the widget itself polls fetch_status and updates in place (queued → generating → complete). This recipe has two phases. Phase A (the hero image) is produced by this tool and shown in the widget. Phase B (the caption + hashtags) is text output: this tool expects a text reply alongside the image — a 2–4 line caption (hook, brand message, call-to-action) based on the brief, followed by a separate block of 15–20 mixed-tier hashtags (broad, niche, and branded). The widget displays the image. Arguments: • org_id (required) — the organization id the user selected via select_organization. The same org_id applies for the whole chat. • folder_id (optional) — a folder id the user picked via select_folder, to create the post inside that folder. Omit to create it at the workspace root. Reuse the same folder_id for the whole chat. • brief (required) — what the post is about or promotes, e.g. "launch of our summer cold-brew coffee line" or "behind-the-scenes of our pottery studio". • brand_style (optional) — the post's visual personality, e.g. "earthy, minimal, warm film tones". Defaults to "modern, vibrant, clean typography, lifestyle photography aesthetic". • format (optional) — the post aspect ratio: "1:1" (square feed), "4:5" (portrait) or "9:16" (Reels). Defaults to "4:5". Any other value falls back to the default. Boundary: this makes ONE social hero image + caption. create_fashion covers requests involving fashion: a garment on a model, a "fashion post", a lookbook, an editorial shoot, or "put this outfit on a model".
generate_instagram_post
Generate a professional interior design visualization using the ImagineArt API — redesign an existing room from a photo, generate a brand-new room concept, or visualize a furniture style in a space. Use this when the user asks for interior design, a room redesign, home decor, an architecture/room visualization, a furniture layout, or house design. It expands a room type (and optional style / color palette / specific elements) into a prompt tuned for high-end, magazine-quality renders and renders it on the nano-banana-pro model by default. Returns immediately with a uuid and a widget that mounts in the queued state — the widget itself polls fetch_status and updates in place (queued → generating → complete). The widget handles the polling. Arguments: • org_id (required) — the organization id the user selected via select_organization. The same org_id applies for the whole chat. • folder_id (optional) — a folder id the user picked via select_folder, to create the render inside that folder. Omit to create it at the workspace root. Reuse the same folder_id for the whole chat. • room_type (required) — the type of room (e.g. "modern living room", "scandinavian kitchen", "luxury master bedroom", "minimalist home office"). • design_style (optional) — the aesthetic direction (e.g. "japandi", "industrial loft", "boho chic", "mid-century modern", "art deco"). Defaults to "modern minimalist". • color_palette (optional) — preferred colors and materials (e.g. "sage green and brass", "monochrome black and white", "warm terracotta"). Defaults to "neutral tones with wood accents". • specific_elements (optional) — particular items to include (e.g. "large floor-to-ceiling windows", "velvet green sofa", "statement pendant light"). • room_photo (optional) — a photo of an existing room to redesign or use as a layout reference. When supplied, the render keeps the room's structural layout and window placement and transforms only the furniture, decor, and finishes (image-to-image). If the user attaches an image, first call user_upload with it and pass the returned url here; if the user gives an image URL directly, pass it as-is. Omit for a brand-new room concept (text-to-image). • model (optional) — one of: "nano-banana-pro" (default), "imagine-art-2.0", "nano-banana-2", "gpt-image-2", "imagine-art-1.5", "imagine-art-1.5-pro", "recraft-v4.1", "ideogram-v4", "seedream-v5-lite", "xAI-grok-imagine". Pass the model name exactly as written. Omit unless the user asks for a specific model — the default handles both photo redesigns and new concepts. • aspect_ratio (optional) — defaults to "16:9" (standard for room views). nano-banana-pro allows 21:9, 16:9, 3:2, 4:3, 5:4, 1:1, 4:5, 3:4, 2:3, 9:16; a value the chosen model doesn't allow silently falls back to 16:9 (or the model's first listed ratio) and the request still succeeds.
generate_interior_design
Generate a luxury jewelry advertisement video — a premium, high-end commercial clip with detailed macro animation: a slow, elegant camera rotation around the piece followed by an extreme close-up that glides over the diamond facets under a focused light. This runs the whole jewelry-product-video recipe in ONE call: internally it first renders a luxury product still of the jewelry (100mm macro lens, warm key light, shallow depth of field) from a text description, waits for that still to finish, then animates it into the cinematic commercial. Use this when the user asks for a jewelry video, a luxury / diamond / ring ad, a high-end jewelry showcase, or wants to turn a jewelry description into a commercial. Phase A renders on nano-banana-2 (text-to-image) and phase B on kling-2.6-pro (image-to-video). Because it renders the still first, this tool BLOCKS for a short while (typically under a minute) before it returns the queued video. That wait is expected and the call is still running. It then returns a uuid and a widget that mounts in the queued state — the widget itself polls fetch_status and updates in place (queued → generating → complete). The widget handles the polling. Arguments: • org_id (required) — the organization id the user selected via select_organization. The same org_id applies for the whole chat. • folder_id (optional) — a folder id the user picked via select_folder, to create the video inside that folder. Omit to create it at the workspace root. Reuse the same folder_id for the whole chat. • jewelry_description (optional) — the jewelry item to feature (e.g. "an emerald-cut diamond pendant on a white gold chain", "a vintage sapphire halo ring"). Defaults to "a delicate rose gold ring with a lotus design and a sparkling diamond". • surface_description (optional) — the surface the jewelry rests on (e.g. "a black marble slab", "folded ivory silk"). Defaults to "a beige surface". • model (optional) — the phase-B video model. One of: "kling-2.6-pro" (default), "veo-3.1", "veo-3.1-fast", "ltx-2.3", "seedance-2.5", "seedance-2.0-fast", "happy_horse", "seedance-2.0", "wan-2.6", "seedance-1.5-pro", "seedance-pro-fast", "kling-o3", "kling-3.0-pro", "pixverse-v6", "wan-2.2". Pass the model name exactly as written. Omit to use the default. • aspect_ratio (optional) — pass when the user specifies one. Defaults to "1:1" (the skill's square macro framing). Each model has its own allow-list (same lists as generate_video); a value not in the chosen model's list silently falls back to a valid ratio, and the request still succeeds. • duration (optional) — clip length as a string (seconds). Defaults to "5" (the skill's combined macro rotation + facet glide). Each model has its own allow-list (same as generate_video); a value not in the chosen model's list silently falls back to a valid duration. • resolution (optional) — the output resolution. One of: "720p", "1080p" (default), "4k". Pass when the user asks for a specific resolution; omit to use 1080p. An unrecognised value falls back to "1080p".
generate_jewelry_video
Quickly generate a single polished brand logo — a clean, scalable, vector-style mark with the brand name rendered legibly. Use this when the user wants a logo, brand mark, or "logo for my brand". It builds a focused logo prompt from the brand name (+ optional style, industry, colors, background) and renders a single logo. Returns immediately with a uuid and a widget that mounts in the queued state — the widget itself polls fetch_status and updates in place (queued → generating → complete). Arguments: • org_id (required) — the organization id the user selected via select_organization. The same org_id applies for the whole chat. • folder_id (optional) — a folder id the user picked via select_folder, to create the logo inside that folder. Omit to create it at the workspace root. Reuse the same folder_id for the whole chat. • brand_name (required) — the brand or company name to render in the logo, e.g. "Northwind Coffee". • style (optional) — the logo style, e.g. "monogram initials", "icon + text horizontal", "bold sans-serif wordmark", "badge/emblem", "abstract mark". Defaults to "modern wordmark with icon, minimal". (Styles mentioning "horizontal"/"wide" render at 16:9; otherwise 1:1.) • industry (optional) — industry context to guide the icon metaphor, e.g. "food & beverage", "finance", "creative agency". Defaults to "technology". • colors (optional) — color scheme, e.g. "black and gold", "forest green and cream". Defaults to "brand blue and white". • background (optional) — "white", "black", or "transparent". Defaults to "white".
generate_logo
Generate music using the ImagineArt API. Pass org_id (required) — the organization id the user selected via select_organization. Optionally pass folder_id (a folder the user picked via select_folder) to create the track inside that folder; omit it to use the workspace root. Pass prompt as a string. Duration is optional (default 10, range 1–90); variation is optional (default "music", or "instrumental"). Returns immediately with a uuid and a widget that mounts in the queued state; the widget polls fetch_music_status and updates in place. The widget handles the polling.
generate_music
Generate a video using the ImagineArt API. Returns immediately with a uuid and a widget that mounts in the queued state — the widget itself polls fetch_status and updates in place as the generation progresses (queued → generating → complete). Arguments: • org_id (required) — the organization id the user selected via select_organization. The same org_id applies for the whole chat. • folder_id (optional) — a folder id the user picked via select_folder, to create the video inside that folder. Omit to create it at the workspace root. Reuse the same folder_id for the whole chat. • prompt (required) — the text prompt. • image_url (optional) — an ARRAY of reference image URLs. For each image, if the user attaches it, first call user_upload and pass the returned url; if the user gives a URL directly, pass it as-is. Omit for plain text-to-video. Behaviour by count: - exactly one image and no video_url/audio_url => image-to-video (animate a single still). - two or more images, or any video_url/audio_url => reference-to-video (see below). • video_url (optional) — an ARRAY of reference video URLs. Forwarded only for reference-to-video. • audio_url (optional) — an ARRAY of reference audio URLs. Forwarded only for reference-to-video. Reference-to-video is supported only by these models: seedance-2.5, seedance-2.0, seedance-2.0-fast, happy_horse, wan-2.6, veo-3.1. Each accepts a different media set; passing media a model doesn't accept is ignored: - seedance-2.5, seedance-2.0, seedance-2.0-fast: image_url, video_url, audio_url (all optional) - happy_horse: image_url (at least one REQUIRED) - wan-2.6: video_url (at least one REQUIRED) - veo-3.1: image_url (optional) If a model's required reference media is missing the call fails with an "Unable to" error naming what's required; relay it. Sending reference media to any other model falls back to image-to-video (first image) or text-to-video. • model (optional) — one of: "ltx-2.3" (default), "seedance-2.5", "seedance-2.0-fast", "veo-3.1-fast", "happy_horse", "seedance-2.0", "wan-2.6", "seedance-1.5-pro", "seedance-pro-fast", "kling-2.6-pro", "kling-o3", "kling-3.0-pro", "pixverse-v6", "veo-3.1", "wan-2.2". Pass the model name exactly as written. Omit unless the user asks for a specific model. • aspect_ratio (optional) — pass when the user specifies one. Defaults to "16:9". Per-model allow-lists: - seedance-2.5: 16:9, 4:3, 1:1, 3:4, 9:16, 21:9, adaptive (image-to-video always uses "adaptive" — any ratio you pass is overridden) - seedance-2.0-fast: 21:9, 16:9, 9:16, 3:4, 4:3, 1:1, auto - veo-3.1-fast: 16:9, 9:16 - happy_horse: 16:9, 9:16, 1:1, 4:3, 3:4 - seedance-2.0: 21:9, 16:9, 9:16, 3:4, 4:3, 1:1, auto - ltx-2.3: 16:9, 9:16 - wan-2.6: 16:9, 9:16, 1:1, 4:3, 3:4 - seedance-1.5-pro: 21:9, 16:9, 9:16, 3:4, 4:3, 1:1 - seedance-pro-fast: 16:9, 4:3, 1:1, 9:16, 21:9, 3:4 - kling-2.6-pro: 16:9, 9:16, 1:1 - kling-o3: 16:9, 9:16, 1:1 - kling-3.0-pro: 16:9, 9:16, 1:1 - pixverse-v6: 16:9, 9:16, 4:3, 3:4, 1:1, 2:3, 3:2, 21:9 - veo-3.1: 16:9, 9:16 - wan-2.2: (none — always uses 16:9) An aspect_ratio that isn't in the chosen model's list silently falls back to 16:9 (or the model's first listed ratio if it doesn't allow 16:9); the request will still succeed. • duration (optional) — pass as a string (seconds, or "auto" where supported). Defaults to "4". Per-model allow-lists: - seedance-2.5: 4 through 30 (any whole second) - seedance-2.0-fast: auto, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 - veo-3.1-fast: 4, 6, 8 - happy_horse: 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 - seedance-2.0: auto, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 - ltx-2.3: 6, 8, 10 - wan-2.6: 5, 10, 15 - seedance-1.5-pro: 4, 5, 6, 7, 8, 9, 10, 11, 12 - seedance-pro-fast: 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 - kling-2.6-pro: 5, 10 - kling-o3: 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 - kling-3.0-pro: 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 - pixverse-v6: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 - veo-3.1: 4, 6, 8 - wan-2.2: (none — always uses 4) A duration that isn't in the chosen model's list silently falls back to "4" (or the model's first listed duration if it doesn't allow "4", e.g. "6" for the default ltx-2.3); the request will still succeed. • resolution (optional) — only some models support it; pass only when the user asks for one. Per-model allow-lists (first value is the default the model uses when omitted): - seedance-2.5: 480p, 720p - seedance-2.0-fast: 480p, 720p - veo-3.1-fast: 720p, 1080p, 4k - happy_horse: 720p, 1080p - seedance-2.0: 480p, 720p, 1080p - ltx-2.3: 1080p, 1440p, 2160p - wan-2.6: 720p, 1080p - seedance-1.5-pro: 480p, 720p - seedance-pro-fast: 480p, 720p, 1080p - pixverse-v6: 360p, 540p, 720p, 1080p - veo-3.1: 720p, 1080p, 4k - kling-2.6-pro, kling-o3, kling-3.0-pro, wan-2.2: (none — resolution is ignored) A resolution that isn't in the chosen model's list silently falls back to that model's default.
generate_video
Generate a high click-through-rate YouTube thumbnail using the ImagineArt API: a striking 16:9 image plus text-overlay guidance. Use this when the user asks for a YouTube thumbnail, a video thumbnail, a "yt thumbnail", or a youtube cover. It expands a video title (and optional channel style / subject) into a prompt tuned for an eye-catching, high-contrast thumbnail with a clear focal subject, an emotional hook, and clean negative space for text, and renders it on the nano-banana-pro model at 16:9. Returns immediately with a uuid and a widget that mounts in the queued state — the widget itself polls fetch_status and updates in place (queued → generating → complete). This recipe has two parts. The image is produced by this tool and shown in the widget — it deliberately contains NO rendered text, because image models render text poorly. The text overlay is guidance in text: this tool expects a text reply alongside the image — 2–3 short overlay options (each 3–5 bold words max, drawn from the title), where to place the text, a couple of bold high-impact font suggestions, and a note to add the text afterward in a tool like Canva or Photoshop. The widget displays the image. Arguments: • org_id (required) — the organization id the user selected via select_organization. The same org_id applies for the whole chat. • folder_id (optional) — a folder id the user picked via select_folder, to create the thumbnail inside that folder. Omit to create it at the workspace root. Reuse the same folder_id for the whole chat. • title (required) — the video topic or title the thumbnail is for, e.g. "I survived 24 hours in the wilderness" or "5 Python tricks every developer should know". • channel_style (optional) — the channel's brand aesthetic, e.g. "minimal dark tech", "playful pastel vlog". Defaults to "bold, high contrast, bright colors". • subject_description (optional) — the person or subject to feature, e.g. "a shocked man pointing at a laptop" or "a close-up of a glowing circuit board".
generate_youtube_thumbnail
Get the user's ImagineArt credit balance for an organization and render it in a widget. org_id (required) — the organization the user selected via select_organization; balance is per-organization. The same org_id applies for the whole chat.
get_balance
List the aspect ratios available for ad generation, each with a note on what platform/use it suits (e.g. 9:16 for Instagram Reels / TikTok / Shorts, 1:1 for feed posts, 16:9 for YouTube). Call this before generate_ad and pass the chosen value as generate_ad's aspect_ratio arg (REQUIRED). Match a user-named value; otherwise present the options and let them choose.
list_aspect_ratios
List the ad durations (in seconds) available for generation, each with a note on length/cost. Call this before generate_ad and pass the chosen value as generate_ad's duration arg (REQUIRED). Match a user-named value; otherwise present the options and let them choose.
list_durations
How do I improve a ChatGPT Plugin's discoverability?
The levers are the listing surface agents actually read: names, descriptions, keywords, tool metadata, and registry health. Which lever matters depends on where discovery breaks, which is what continuous measurement shows.
What are ImagineArt alternatives on ChatGPT?
As of 2026-09-13, ImagineArt competes with Arcads, Creative Claw, Deep Art AI, Fal, Flixly, Higgsfield, Kolbo.AI, Krea, Magnific, Morphed, Morphix, OpenArt, Picsart, Pollo AI, Topview, Wixel in ChatGPT Multi-Modal Generative Media Platforms, ranked by public Discoverability Score.
Where is this profile measured?
This profile uses the geography attached to the latest public registry snapshot: US. Locale tags are intentionally omitted.