Mix & Match API

Each look printed and cut in two at the waist, the top and the bottom on two paper cards. The tops change, then the bottoms, so every pairing passes, with a handwritten line under the cards. Two to six cut-out photos (transparent background).
/v1/generateworkflow: motion_mix_match-v1One endpoint serves every workflow — this page documents motion_mix_match-v1, the current version. Credits are debited at submission (1 cr/s standard, 1 cr/s pro); a failed generation is refunded automatically. Earlier versions of this endpoint, if any, keep being served under their own names.
| Parameter | Value for this workflow |
|---|---|
| workflow | "motion_mix_match-v1" required |
| slot_1 | Look 1 — one public HTTPS URL.required |
| slot_2 | Look 2 — one public HTTPS URL.required |
| slot_3 | Look 3 — one public HTTPS URL. |
| slot_4 | Look 4 — one public HTTPS URL. |
| slot_5 | Look 5 — one public HTTPS URL. |
| slot_6 | Look 6 — one public HTTPS URL. |
| fields.line_1 | Line 1. Defaults to “Mix & match”. |
| fields.line_2 | Line 2. Defaults to “new pieces in”. |
| fields.ground | Ground. Defaults to “#E4E0DC”. |
| fields.card | Paper. Defaults to “#F3F1EE”. |
| duration | 10 (seconds) |
| tier | "standard" (1 cr/s), "pro" (1 cr/s) |
| webhook_url | Optional — we POST the outcome here when the generation settles. Without it, poll the URL returned in the response until the status settles. |
Example request
curl -X POST https://thenewblack.ai/api/v1/generate \
-H "Authorization: Bearer tnb_live_XXXXXXXXXXXX" \
-H "Content-Type: application/json" \
-d '{
"workflow": "motion_mix_match-v1",
"slot_1": "https://example.com/image.jpg",
"slot_2": "https://example.com/image.jpg",
"slot_3": "https://example.com/image.jpg",
"slot_4": "https://example.com/image.jpg",
"slot_5": "https://example.com/image.jpg",
"slot_6": "https://example.com/image.jpg",
"fields": {
"line_1": "Mix & match",
"line_2": "new pieces in",
"ground": "#E4E0DC",
"card": "#F3F1EE"
},
"duration": "10",
"tier": "standard"
}'// 202 Accepted
{
"generation_id": "3f1c9a6e-...",
"status": "running",
"poll": "/api/v1/generations/3f1c9a6e-..."
}Example response
Poll /v1/generations/{id} (or receive the webhook) until the generation settles:
// 200 OK
{
"generation_id": "3f1c9a6e-...",
"workflow": "motion_mix_match",
"status": "succeeded",
"result": {
"type": "video",
"url": "https://.../result.mp4",
"thumbnail": "https://.../thumb.webp"
}
}Results are stored for 48 hours — copy them to your own storage. Authentication, errors and webhooks are documented in the full API reference.
Frequently asked questions
What does the Mix & Match endpoint need?
slot_1 (Look 1), slot_2 (Look 2), slot_3 (Look 3, optional), slot_4 (Look 4, optional), slot_5 (Look 5, optional), slot_6 (Look 6, optional), fields.line_1 (Line 1, optional), fields.line_2 (Line 2, optional), fields.ground (Ground, optional), fields.card (Paper, optional) — all as listed in the parameter table above, and in GET /v1/catalog.
How is it billed?
Per second of output, at the standard, pro or ultra rate shown above; a failed generation is refunded.
How much does it cost?
1 credit per second on the standard tier, 1 per second on pro. Credits come with plans and packs; a failed generation is always refunded.
Other endpoints: Virtual Try-On API · AI Fashion Models API · Fashion Design API · Reimagine Model API · Swap Model API · AI Stylist API · all endpoints