generate_meme_captions writes caption sets that fit catalog templates. The response is JSON. It is not a still. Follow up with render_meme_still or send the human to the studio.
Call generate_meme_captions with prompt "this PR review is 47 comments of nitpicks" and preferredTemplateSlug "drake-hotline-bling". Then render the first variant.
Arguments
prompt(string, 3-2000, required)preferredTemplateSlug(string): pin a formataudience(string)tone(string)uncensored(boolean)
Request
{
"prompt": "standup that could have been an email",
"preferredTemplateSlug": "drake-hotline-bling",
"audience": "engineering slack",
"tone": "dry",
"uncensored": false
}
Response
{
"model": "…",
"returnedCount": 4,
"uncensored": false,
"variants": [
{
"templateSlug": "drake-hotline-bling",
"captions": ["Writing ASCII memes", "Calling render_meme_still"]
}
]
}
HTTP equivalent: POST /api/ai/captions with the same body. That route creates an anonymous session if none exists. Guests get one batch per UTC day (429 when exhausted). Browser JavaScript on other origins cannot call it: there is no CORS.
Don't stop here if the user asked to see a meme. Call render_meme_still.
What to explore next
- render_meme_still for pixels
- get_create_url when they will edit
- Auth if HTTP captions return 429