Models

Use the models tool for exact model control, provider selection, job submission, and async polling when generate tools are not expressive enough.


When to use models vs generate tools

Start with generate_image, generate_video, and generate_audio. They handle model selection automatically, apply sensible defaults, and return structured next-step directives. Switch to models when you need to inspect a specific provider's schema, override parameters the generate tools don't expose, or poll a job by ID across turns.

generate_* tools (default)

Auto model selection. Task-scoped schemas. No provider knowledge needed. Returns CDN URLs and next_step.

models tool (escape hatch)

Exact provider + model control. Full parameter access. Use when generate tools aren't expressive enough, or for debugging provider behavior.

Models tool

models

Browse and explore available AI models/presets.

listgetrecommendsubmit_jobget_jobwait_job

Async job flow

Generation is non-blocking. Submit a job and get a job ID, then poll for the result.

models(list)models(get)models(submit_job)models(get_job)models(wait_job)

Use wait_job for simpler polling — it blocks until the job completes or times out and returns the output URLs directly. Use get_job when you want to show the user status updates mid-stream.