Multimodal AI
AI Model Swap API MCP
Generate model images by combining a source product image with a model head image, optional masks, scene references, and prompt. Available via REST API or MCP.
AI Model Swap API AI Prompts & Use Cases
After connecting this MCP tool to your AI assistant, you can ask the questions below. Replace bracketed placeholders with your own inputs and use the supported values in Arguments.
New to Nexscope MCP? Follow the connection guide, then use the prompts below. The Integration and Parameters & Response tabs contain the connection steps, call example, and technical reference.
1. Replace The Model In A Product Image
Prompt: Use [source outfit image] and [target model head image] to create a new model presentation while retaining the outfit details.
2. Create Several Alternatives
Prompt: Use [source outfit image] and [target model head image] to create a new model presentation while retaining the outfit details. Create [number of outputs within this tool’s supported limit] for review, keeping the same source material and brief.
3. Follow A Scene Reference
Prompt: Use [source outfit image] and [target model head image] to create a new model presentation while retaining the outfit details. Use [scene reference image] and [reference strength from zero to one] to guide the setting.
4. Keep Resolution And Model Appearance
Prompt: Use [source outfit image] and [target model head image] to create a new model presentation while retaining the outfit details. Choose whether to keep the original image resolution and whether to prefer a realistic model appearance.
5. Direct The Model Appearance
Prompt: Use [source outfit image] and [target model head image] to create a new model presentation while retaining the outfit details. Follow [model appearance and positive directions], and avoid [unwanted visual features]. Keep the supplied outfit consistent.
6. Keep The Selected Subject
Prompt: Use [source outfit image] and [target model head image] to create a new model presentation while retaining the outfit details. Use [subject segmentation mask] to guide which part of the original image should remain the subject.
What You Need to Provide
Provide assets you may use and that meet this tool’s documented file, dimension and count limits.
A pending task is not a completed image, video or text result. Retrieve the existing task rather than submitting a duplicate.
Step 1 · Connect
Connect Your AI Assistant
Connect a compatible MCP client to Nexscope, then select this tool from your assistant. Use the connection settings in your client to complete authentication.
POST https://api.nexscope.ai/mcp
MCP-Protocol-Version: 2025-11-25
Content-Type: application/jsonAuthentication
Use OAuth 2.1 Authorization Code with PKCE and the mcp:tools scope. API keys remain supported as a compatibility option.
Authorization: Bearer nk-xxxxxxxxxxxxxxxxxUsing an API key? Get your key from API Access and include it in the Authorization header shown above.
Call this MCP tool
nexscope_ai_model_swaphttps://api.nexscope.ai/mcptools/callInitialize an MCP 2025-11-25 Streamable HTTP session at https://api.nexscope.ai/mcp, then use tools/call.
{
"jsonrpc": "2.0",
"id": "ai-model-swap-1",
"method": "tools/call",
"params": {
"name": "nexscope_ai_model_swap",
"arguments": {
"customNegPrompt": "blur, distorted hands",
"customPrompt": "clean ecommerce catalog photo",
"genOriRes": false,
"imageSegUrl": "https://example.com/mask.png",
"imageUrl": "https://example.com/source-image.jpg",
"modelHeadImageUrl": "https://example.com/model-reference.jpg",
"modelPrompt": "smile, slim",
"outputNum": 1,
"realModel": true,
"sceneImgUrl": "https://example.com/scene.jpg",
"sceneStrength": 0.7
}
}
}MCP 2025-11-25 · Streamable HTTPProgress is delivered on the original POST SSE response. GET SSE carries notifications; reconnecting must query existing asynchronous work rather than submit again.
Asynchronous task workflow
- 1. Create once
Keep the returned taskId.
- 2. Query with backoff
Use nexscope_media_task_result after 5 seconds, then 10, 20, and 30 seconds.
- 3. Use final result
Stop at success, failure, or timeout.
{
"jsonrpc": "2.0",
"id": "ai-model-swap-result-1",
"method": "tools/call",
"params": {
"name": "nexscope_media_task_result",
"arguments": {
"skillSlug": "ai-model-swap",
"taskId": "TASK_ID_FROM_THE_GENERATION_RESULT"
}
}
}Arguments
| Name | Type | Required | Description |
|---|---|---|---|
imageUrl | string | required | Public URL of the source product or outfit image. The image must be up to 20 MB and between 385 and 8192 pixels in both width and height. Example: https://example.com/source-image.jpg |
modelHeadImageUrl | string | required | Public URL of the target model head image. The image must be up to 5 MB and between 512 and 2048 pixels in both width and height. Example: https://example.com/model-reference.jpg |
imageSegUrl | string | optional | Optional segmentation mask URL for the source image. Example: https://example.com/mask.png |
sceneImgUrl | string | optional | Optional scene reference image URL. The image must be up to 10 MB and between 768 and 4096 pixels in both width and height. Example: https://example.com/scene.jpg |
sceneStrength | number | optional | Scene reference strength from 0 to 1. Defaults to 0.7. Example: 0.7 |
modelPrompt | string | optional | Comma-separated model appearance terms, such as smile, laugh, sitting, lying, fat, plump, slim, sideways, profile, back, or bald. Example: smile, slim |
customPrompt | string | optional | Positive generation prompt, up to 600 characters. Example: clean ecommerce catalog photo |
customNegPrompt | string | optional | Negative prompt to avoid unwanted artifacts. Example: blur, distorted hands |
genOriRes | boolean | optional | Whether to generate the original resolution. Defaults to false. Example: false |
realModel | boolean | optional | Whether to prefer a realistic model style. Example: true |
outputNum | integer | optional | Number of images to generate, from 1 to 4. Defaults to 1. Example: 1 |
Response fields
Treat structuredContent as the programmatic API response payload.
| Name | Type | Required | Description |
|---|---|---|---|
code | integer | required | 0 means accepted or successful; nonzero is a platform error. |
cost | string | required | Elapsed milliseconds, never credits; -1 outside web requests. |
data | any | required | Data value used by this API operation. |
msg | string | null | required | Msg value used by this API operation. |
time | string | required | Server local time: yyyy-MM-dd HH:mm:ss. |
traceId | string | null | required | Trace id value used by this API operation. |
ts | string | required | Epoch milliseconds. |
Any of option 1 — requires taskId, status, result
| Name | Type | Required | Description |
|---|---|---|---|
data | object | required | Data value used by this API operation. |
data.result | any | required | Completed generation output retained from the task result. Fields vary by capability; generated resources use Nexscope-hosted URLs and any count represents charged Nexscope credits. This is the business output, not a task creation receipt. |
data.status | string | required | Status value used by this API operation. Allowed: PENDING, RUNNING, SUCCEEDED, FAILED, TIMEOUT |
data.taskId | string | required | Task id value used by this API operation. |
Any of option 1
| Name | Type | Required | Description |
|---|---|---|---|
data.result | object | required | Completed generation output retained from the task result. Fields vary by capability; generated resources use Nexscope-hosted URLs and any count represents charged Nexscope credits. This is the business output, not a task creation receipt. |
Any of option 2
| Name | Type | Required | Description |
|---|---|---|---|
data.result | null | required | Completed generation output retained from the task result. Fields vary by capability; generated resources use Nexscope-hosted URLs and any count represents charged Nexscope credits. This is the business output, not a task creation receipt. |
Any of option 2
| Name | Type | Required | Description |
|---|---|---|---|
data | null | required | Data value used by this API operation. |
Format Illustration
Illustrative example with fictional data, not a live tool call.
Illustrative Question
Use [source outfit image] and [target model head image] to create a new model presentation while retaining the outfit details.
Illustrative Response Explanation
The illustrative request has been accepted as task example-task and is PENDING. No completed output is available yet. Keep this task ID and check its result; do not submit the same request again just because processing has not finished.
About this sample: Illustrative format example with fictional values, not a live tool call. Replace example inputs with your own permitted assets or public identifiers.
Published sample data is not available for this page. A format illustration or workflow guide is not a substitute for a published result.
View the MCP Request & Response Format
Examples
Illustrative example with fictional data, not a live tool call.
The JSON-RPC envelope below illustrates how the shown arguments and payload fit into MCP. It is not captured network traffic or proof of a successful call. Workflow-only examples do not include a result.
MCP Request
{
"jsonrpc": "2.0",
"id": "ai-model-swap-example",
"method": "tools/call",
"params": {
"name": "nexscope_ai_model_swap",
"arguments": {
"customNegPrompt": "blur, distorted hands",
"customPrompt": "clean ecommerce catalog photo",
"genOriRes": false,
"imageSegUrl": "https://example.com/mask.png",
"imageUrl": "https://example.com/source-image.jpg",
"modelHeadImageUrl": "https://example.com/model-reference.jpg",
"modelPrompt": "smile, slim",
"outputNum": 1,
"realModel": true,
"sceneImgUrl": "https://example.com/scene.jpg",
"sceneStrength": 0.7
}
}
}MCP Response Format
{
"jsonrpc": "2.0",
"id": "ai-model-swap-example",
"result": {
"content": [
{
"type": "text",
"text": "{\"code\":0,\"cost\":\"-1\",\"data\":{\"taskId\":\"example-task\",\"status\":\"PENDING\",\"result\":null},\"msg\":null,\"time\":\"2026-01-01 00:00:00\",\"traceId\":null,\"ts\":\"0\"}"
}
],
"structuredContent": {
"code": 0,
"cost": "-1",
"data": {
"taskId": "example-task",
"status": "PENDING",
"result": null
},
"msg": null,
"time": "2026-01-01 00:00:00",
"traceId": null,
"ts": "0"
},
"isError": false
}
}