Animate an existing product image or static ad into a short branded video using the GooseWorks Animate Images workflow, with source-image continuity and optional end-frame control.
npx gooseworks install --all # then, in Claude Code, Cursor, or Codex: /gooseworks use the animate-image skill
Turn an existing product image or static ad into a short motion creative through GooseWorks. This skill uses the same backend workflow as the Animate Images interface.
This workflow requires the GooseWorks MCP connector (https://mcp.gooseworks.ai/mcp). Animate Images has no tools of its own: it is the animate action of ads_creative_edit, and the job is polled with job_get. If ads_creative_edit and job_get are not in the advertised tool list, or account_whoami reports features.animate_image: false, explain that the connection or feature is not available and stop; do not substitute an unrelated image generator.
Older versions of this skill called estimate_animate_image, submit_animate_image and get_animate_image. Those names are no longer advertised. Use the calls below.
| Step | Call | Notes |
|---|---|---|
| Estimate | ads_creative_edit with action: "animate", dry_run: true | Free. Reserves nothing. Returns { dry_run: true, estimate: { frame, duration_seconds, model, estimated_credits, estimated_cost_usd } }. |
| Submit | ads_creative_edit with action: "animate" (no dry_run) | Paid. Reserves credits and starts the job. Returns { job_id, kind: "animate", status }. |
| Poll | job_get with { job_id, kind: "animate" } | Read-only. result.output_url holds the video when status is complete; result.error explains a failure. |
Both ads_creative_edit calls take the same payload:
{
"brand_id": "<brand id from brand_list>",
"creative_id": "<ad project id from ads_creative_read>",
"action": "animate",
"animate": {
"source_render_id": "<render id, or null when animating a plain image URL>",
"source_image_url": "<public https URL of the still>",
"frame": "end",
"prompt": "<motion prompt>",
"duration_seconds": 5
}
}creative_id is the ad project the animation belongs to. Prefer an existing render (source_render_id plus its URL as source_image_url) so provenance is preserved.frame is "start" (the still is the opening frame) or "end" (the still is the closing frame, the default). End-frame mode costs slightly more.duration_seconds must be 5 or 10. Other values are rejected.agent_required otherwise.brand_list and the project or creative with ads_creative_read (include renders to get source_render_id and the render URL). A plain image that is not yet in GooseWorks can be registered with media_upload first to get a public URL.ads_creative_edit with dry_run: true and confirm the quoted credits with the user before generating.ads_creative_edit once without dry_run. Save the returned job_id.job_get with kind: "animate" every few seconds until status is complete or failed. Never re-submit a running job; it double-bills.result.output_url and the source image used. If it fails, report result.error before proposing a retry.creative_id is the ad project the animation belongs to. Prefer an existing render (source_render_id plus its URL as source_image_url) so provenance is preserved.frame is "start" (the still is the opening frame) or "end" (the still is the closing frame, the default). End-frame mode costs slightly more.duration_seconds must be 5 or 10. Other values are rejected.agent_required otherwise.Discover rising category conversations, formats, sounds, questions, and creator patterns across social platforms, then separate durable demand signals from short-lived noise.
Turn TikTok, Instagram, YouTube, Facebook, X, LinkedIn, Reddit, or Rumble transcripts into timestamped hooks, claims, objections, proof, calls to action, sponsorship signals, and reusable content atoms. Use directly for transcript analysis or as support for creator, competitor, trend, demand, and repurposing work.
Produce a decision-ready brief of current brand, product, category, and competitor conversations across social platforms, including sentiment drivers, questions, risks, and growth opportunities.