---
title: "generate_with_own_model: Generate with an own model"
description: "Run one of the account's own models on its own key: pick a mode (endpoint + slot from list_own_models), a prompt, files per media field as { generation_id } or { upload_id }, and the mode's other inputs by field name."
canonical_url: "https://meetkuro.com/agents/tools/generate_with_own_model/"
updated: 2026-11-03
locale: "en"
tool: "generate_with_own_model"
scopes: ["generation.write"]
---

# generate_with_own_model

**Generate with an own model**

Run one of the account's own models on its own key: pick a mode (endpoint + slot from list_own_models), a prompt, files per media field as { generation_id } or { upload_id }, and the mode's other inputs by field name. Costs no credits; the vendor bills the key. Returns the generation; read it with get_generation.

## Scope

- `generation.write` — Makes, edits, imports, shares and deletes media in the account.

## Behaviour

- **Writes**: Creates or changes items in the caller's own account.
- **Adds or updates**: Adds or updates; nothing the caller already has is deleted or overwritten.
- **Reaches outside**: Sends the prompt and files to the model's vendor on the account's own key.

## Credits

What the tool's description says about credits, verbatim:

- Costs no credits; the vendor bills the key.

## Inputs

| Name | Type | Required | Details |
| --- | --- | --- | --- |
| `own_model_id` | string | yes | uuid |
| `endpoint` | string | yes | at least 1 character; at most 240 characters |
| `slot` | string | yes | one of "text", "frames", "references", "image", "other" |
| `prompt` | string | no | at most 6000 characters; default "" |
| `media` | object | no | default {} |
| `inputs` | object | no | default {} |

## Example call

A `tools/call` request with the required arguments only, each a placeholder read off the schema. Replace them before sending.

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "generate_with_own_model",
    "arguments": {
      "own_model_id": "00000000-0000-4000-8000-000000000000",
      "endpoint": "<endpoint>",
      "slot": "text"
    }
  }
}
```

## Input schema

As the server sends it in `tools/list`:

```json
{
  "type": "object",
  "properties": {
    "own_model_id": {
      "type": "string",
      "format": "uuid"
    },
    "endpoint": {
      "type": "string",
      "minLength": 1,
      "maxLength": 240
    },
    "slot": {
      "type": "string",
      "enum": [
        "text",
        "frames",
        "references",
        "image",
        "other"
      ]
    },
    "prompt": {
      "type": "string",
      "maxLength": 6000,
      "default": ""
    },
    "media": {
      "type": "object",
      "additionalProperties": {
        "type": "array",
        "items": {
          "anyOf": [
            {
              "type": "object",
              "properties": {
                "type": {
                  "type": "string",
                  "const": "upload"
                },
                "upload_id": {
                  "type": "string",
                  "format": "uuid"
                }
              },
              "required": [
                "type",
                "upload_id"
              ],
              "additionalProperties": false
            },
            {
              "type": "object",
              "properties": {
                "type": {
                  "type": "string",
                  "const": "generation"
                },
                "generation_id": {
                  "type": "string",
                  "format": "uuid"
                }
              },
              "required": [
                "type",
                "generation_id"
              ],
              "additionalProperties": false
            }
          ]
        },
        "maxItems": 8
      },
      "propertyNames": {
        "minLength": 1,
        "maxLength": 120
      },
      "default": {}
    },
    "inputs": {
      "type": "object",
      "additionalProperties": {},
      "propertyNames": {
        "minLength": 1,
        "maxLength": 120
      },
      "default": {}
    }
  },
  "required": [
    "own_model_id",
    "endpoint",
    "slot"
  ],
  "additionalProperties": false
}
```

## Related tools

- [`list_own_models`](https://meetkuro.com/agents/tools/list_own_models.md): The vendor models this account added to its own key (vendor, endpoint, modes, what each makes).
- [`get_generation`](https://meetkuro.com/agents/tools/get_generation.md): Get current status and signed media URL for one generation.

---

## About Kuro

Kuro is an AI picture studio: prompt-driven images, clips, voice-overs and music, and storyboard-backed films with consistent characters across every scene.

Agents connect over MCP and can generate directly:

```
claude mcp add kuro https://api.meetkuro.com/mcp --transport http
```

The app is at https://app.meetkuro.com and requires an account.

Each guide, model page, comparison and free tool page on this site (not a tool's variants, and not the index pages) has a Markdown twin at its own URL plus `.md`, and so do /benchmarks/, the English /agents/ page (as /agents.md) and the MCP tool reference. Every tool: https://meetkuro.com/agents/tools/
