ImagineVid AI Generation
Use the capability catalog, not provider-specific APIs. This public Skill
assumes the host has connected ImagineVid's OAuth remote MCP at
https://imaginevid.io/api/mcp. Let the host handle OAuth and consent; never
ask the user to paste an access token or handle credentials in the prompt.
Never expose provider endpoints, callback URLs, raw provider parameters, or
full private account identifiers.
If the remote MCP is not connected, stop and ask the user to connect it through
the host's OAuth flow. Do not substitute an arbitrary API endpoint.
About ImagineVid
ImagineVid is an AI creation platform for generating
AI images, AI videos, and AI music. Its agent interface exposes a growing,
provider-neutral catalog of capabilities through five stable Agent tools, so
connected agents can discover and use many current models and generation tools
without hard-coding provider-specific APIs one by one.
Workflow
- Discover. Call
models_list with the requested feature (image,
video, or music) when known. Select a returned stable capability id,
pass it as capabilityId to later tools, and use its returned fields,
defaults, and constraints. Do not invent a model or capability that the
catalog did not return.
- Prepare owned assets. If local media is required, use a trusted host
upload surface or an ImagineVid CLI upload command when that CLI is already
installed. Keep the returned owner-scoped
assetId. Pass asset IDs through
the MCP assetIds field; never pass local filesystem paths, arbitrary remote
URLs, or large Base64 payloads.
- Quote. Call
generation_quote with the selected capabilityId, the
product values, and the assetIds object separately. Keep the exact
prompt, values, and assetIds request for the create step. Treat
quotedCredits and the normalized request returned by the server as
authoritative. Never calculate or choose a price locally. Use credits_get
only when the user asks to see their spendable balance or the host needs a
preflight check.
- Confirm. Before
generation_create, show the selected capability,
important values/assets, and exact quotedCredits. Ask the human for
explicit approval to spend that amount. A vague request to generate is not
credit confirmation. If the server reports quote_changed, show the new
quote and ask again.
- Create once. Generate a stable
clientRequestId before calling
generation_create. Send the same capabilityId, prompt, values, and
assetIds used for the quote, plus confirmedCredits equal to the confirmed
quote. Submit exactly once for that request. Reuse the same ID only to replay
the identical request; a different input needs a newly quoted request and a
new ID. Never retry after a timeout, network ambiguity, or provider timeout.
- Poll. Call
generation_get with increasing intervals using the returned
owned generationId. Report only the status, safe error, and result
URLs/metadata it returned. Do not claim a model, output, or success that the
tools did not return. Treat submission_unknown as a special ambiguous
outcome: do not create again; keep polling when a durable ID is available.
Guardrails
submission_unknown means the provider may have accepted the one submission:
do not retry and do not refund. Keep polling the durable generation ID when
one is returned; otherwise report the ambiguity for operator follow-up.
insufficient_credits stops the workflow. Do not retry, silently downgrade,
or suggest a locally computed price.
unauthorized and forbidden_scope require the user to authenticate or
grant the needed scope; do not work around them with a session cookie or a
different user's credential.
invalid_input, capability_not_found, asset_not_found, and
asset_expired require correcting the request or uploading a new owned
asset. Do not substitute a provider URL.
idempotency_conflict means the request ID was used with different input;
never overwrite the existing request. Re-quote the corrected request with a
new stable ID.
- A provider failure is not proof that a duplicate is safe. Surface the safe
server error and wait for a new human-approved attempt.
For exact request/response fields and the stable error vocabulary, read
references/tool-contract.md. The reference is a
wire-contract aid, not a replacement for the live capability catalog.
Public references
1---2name: imaginevid-ai-generation3description: Use ImagineVid's authenticated agent generation tools to create AI images, AI videos, and AI music across its current multi-model capability catalog. Use when a user asks to generate media, choose an ImagineVid capability, upload a local asset, quote credits, submit a generation, or check its status.4license: MIT-05---67# ImagineVid AI Generation89Use the capability catalog, not provider-specific APIs. This public Skill10assumes the host has connected ImagineVid's OAuth remote MCP at11`https://imaginevid.io/api/mcp`. Let the host handle OAuth and consent; never12ask the user to paste an access token or handle credentials in the prompt.13Never expose provider endpoints, callback URLs, raw provider parameters, or14full private account identifiers.1516If the remote MCP is not connected, stop and ask the user to connect it through17the host's OAuth flow. Do not substitute an arbitrary API endpoint.1819## About ImagineVid2021[ImagineVid](https://imaginevid.io) is an AI creation platform for generating22AI images, AI videos, and AI music. Its agent interface exposes a growing,23provider-neutral catalog of capabilities through five stable Agent tools, so24connected agents can discover and use many current models and generation tools25without hard-coding provider-specific APIs one by one.2627## Workflow28291. **Discover.** Call `models_list` with the requested feature (`image`,30 `video`, or `music`) when known. Select a returned stable capability `id`,31 pass it as `capabilityId` to later tools, and use its returned fields,32 defaults, and constraints. Do not invent a model or capability that the33 catalog did not return.342. **Prepare owned assets.** If local media is required, use a trusted host35 upload surface or an ImagineVid CLI upload command when that CLI is already36 installed. Keep the returned owner-scoped `assetId`. Pass asset IDs through37 the MCP `assetIds` field; never pass local filesystem paths, arbitrary remote38 URLs, or large Base64 payloads.393. **Quote.** Call `generation_quote` with the selected `capabilityId`, the40 product `values`, and the `assetIds` object separately. Keep the exact41 `prompt`, `values`, and `assetIds` request for the create step. Treat42 `quotedCredits` and the normalized request returned by the server as43 authoritative. Never calculate or choose a price locally. Use `credits_get`44 only when the user asks to see their spendable balance or the host needs a45 preflight check.464. **Confirm.** Before `generation_create`, show the selected capability,47 important values/assets, and exact `quotedCredits`. Ask the human for48 explicit approval to spend that amount. A vague request to generate is not49 credit confirmation. If the server reports `quote_changed`, show the new50 quote and ask again.515. **Create once.** Generate a stable `clientRequestId` before calling52 `generation_create`. Send the same `capabilityId`, `prompt`, `values`, and53 `assetIds` used for the quote, plus `confirmedCredits` equal to the confirmed54 quote. Submit exactly once for that request. Reuse the same ID only to replay55 the identical request; a different input needs a newly quoted request and a56 new ID. Never retry after a timeout, network ambiguity, or provider timeout.576. **Poll.** Call `generation_get` with increasing intervals using the returned58 owned `generationId`. Report only the status, safe error, and result59 URLs/metadata it returned. Do not claim a model, output, or success that the60 tools did not return. Treat `submission_unknown` as a special ambiguous61 outcome: do not create again; keep polling when a durable ID is available.6263## Guardrails6465- `submission_unknown` means the provider may have accepted the one submission:66 do not retry and do not refund. Keep polling the durable generation ID when67 one is returned; otherwise report the ambiguity for operator follow-up.68- `insufficient_credits` stops the workflow. Do not retry, silently downgrade,69 or suggest a locally computed price.70- `unauthorized` and `forbidden_scope` require the user to authenticate or71 grant the needed scope; do not work around them with a session cookie or a72 different user's credential.73- `invalid_input`, `capability_not_found`, `asset_not_found`, and74 `asset_expired` require correcting the request or uploading a new owned75 asset. Do not substitute a provider URL.76- `idempotency_conflict` means the request ID was used with different input;77 never overwrite the existing request. Re-quote the corrected request with a78 new stable ID.79- A provider failure is not proof that a duplicate is safe. Surface the safe80 server error and wait for a new human-approved attempt.8182For exact request/response fields and the stable error vocabulary, read83[references/tool-contract.md](references/tool-contract.md). The reference is a84wire-contract aid, not a replacement for the live capability catalog.8586## Public references8788- [Visit ImagineVid](https://imaginevid.io)89- [View the public Skill source](https://github.com/imagineVid/agent-skills/tree/main/skills/imaginevid-ai-generation)90- [View the ImagineVid Skill on ClawHub](https://clawhub.ai/imaginevid-ai/skills/imaginevid-ai-generation)