Generate designs
generate_designGenerate designs for a brand, such as ads and social posts: finished, on-brand designs made by Rawa from the brief, one or more per concept. To put a headline, copy or a layout on the user's own photo and keep the photo exactly as it is, pass it as the concept's photoCreativeId: the type is set in the brand's fonts as editable layers, not painted into the picture. Cost: every design is charged, and a call makes concepts × designsPerConcept of them, priced by format. Call with dryRun: true first and tell the user the cost. Once they agree, pass the quoted credits as expectedCredits; a call that would cost a different amount is refused. Give each new generation a new requestId, and repeat it unchanged only on a retry: a retry within 2 minutes returns the first result and is not charged again. Without a requestId, the same arguments within 2 minutes count as a retry. Needs generation allowed over MCP (see get_workspace); a dry run still quotes when it is not, and says why the call would be refused in wouldRefuse. Returns jobs, one jobId per concept, creditsCharged and creditsRemaining; ready in 1 to 5 minutes, a clip longer. If a job panel shows, it tracks the work: do not poll, end your turn with one line saying it is under way, and later use show_creatives with the creativeIds you are told. Otherwise call wait_for_jobs with the jobIds until allFinal is true.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| brief | Yes | What the campaign is for, in the user's own words: the offer, the occasion, the audience, the tone. | |
| dryRun | No | true: return the exact cost (credits, breakdown, balanceAfter) without charging or starting anything, and wouldRefuse when the organization's spending controls would refuse the real call. | |
| format | Yes | Per design: still is a still image, 50 credits. motion is an animated clip designed scene by scene, 3, 5, 6, 8, 10, 15, 20, 30 s long (default 6), 40 credits a second. | |
| brandId | No | A brand id from get_workspace or list_brands, or the brand's name. Omit it when the organization has a single brand. | |
| concepts | Yes | One entry per creative idea. Each becomes its own job. | |
| entityIds | No | Ids from list_entities of the products, places, ambassadors or design elements the design must feature. The designer uses that entity's real images, so only name what the user asked for. | |
| placement | No | Where the ads will run, so the designer keeps that platform's safe zones clear. instagram_feed: Instagram / Facebook feed (1:1 or 4:5); instagram_story: Instagram / Facebook Stories (9:16); instagram_story_ad: Instagram / Facebook Stories ad (9:16); instagram_reels: Instagram Reels (9:16); instagram_reels_ad: Instagram Reels ad (9:16); tiktok_organic: TikTok (organic) (9:16); tiktok_ad: TikTok in-feed ad (9:16); snapchat: Snapchat Story (9:16); snapchat_ad: Snapchat Snap Ad (9:16); linkedin_feed: LinkedIn feed / sponsored (static) (1:1, 4:5 or 1.91:1); linkedin_video: LinkedIn feed (video) (9:16); linkedin_video_ad: LinkedIn sponsored (video) (9:16); google_display: Google Display (responsive) (1:1 or 1.91:1); youtube_instream: YouTube in-stream (16:9); youtube_shorts: YouTube Shorts (9:16); youtube_shorts_ad: YouTube Shorts ad (9:16). Omit for a plain margin on every edge. | |
| requestId | No | Your own unique id for this request. Use a new one for every new request, even with the same arguments. Repeat it unchanged only to retry this exact call within 2 minutes; the retry returns the first result. | |
| audienceId | No | An audience id from list_audiences; the designs then read that audience's age, gender, language, markets, voice and photography. | |
| aspectRatio | Yes | The canvas shape of every design, by name or ratio ("9:16" is portrait_9_16). | |
| designSystemId | No | A design system id from list_design_systems, the look to make it in. Omit for the audience's own design system when it has one, otherwise the brand's default. | |
| durationSeconds | No | motion only: the clip length in seconds, one of the lengths motion lists. | |
| expectedCredits | No | The credits the dryRun quoted and the user agreed to. The call is refused if it would cost a different amount. | |
| designsPerConcept | No | How many different designs to make for each concept. Defaults to 1. The call makes concepts × designsPerConcept designs, each charged. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||