Snap Freeze API
The trending stop-and-snap reel: a raised palm stops your model, the camera explores the first piece, a finger snap switches it to the second, and they walk on. From a photo of your model and two of your pieces.
/v1/generateworkflow: snap_freeze-v1One endpoint serves every workflow — this page documents snap_freeze-v1, the current version. Credits are debited at submission (2.2 cr/s standard, 4.4 cr/s pro, 23 cr/s ultra); 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 | "snap_freeze-v1" required |
| model_image | Model — one public HTTPS URL.required |
| piece_image_1 | Piece worn first — one public HTTPS URL.required |
| piece_image_2 | Piece it switches to — one public HTTPS URL.required |
| fields.decor | Setting. Where the reel is shot — a crosswalk, a market, a station.Defaults to “a busy city crosswalk on a sunny afternoon”. |
| fields.audio | Audio. The sound of the clip — music, voices, ambience. Leave the default for the natural sounds of the scene.Defaults to “No music, natural environment sounds.”. |
| duration | 10 (seconds) |
| tier | "standard" (2.2 cr/s), "pro" (4.4 cr/s) or "ultra" (23 cr/s) — 1080p on our top video model |
| 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": "snap_freeze-v1",
"model_image": "https://example.com/model.jpg",
"piece_image_1": "https://example.com/image.jpg",
"piece_image_2": "https://example.com/image.jpg",
"fields": {
"decor": "a busy city crosswalk on a sunny afternoon",
"audio": "No music, natural environment sounds."
},
"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": "snap_freeze",
"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 Snap Freeze endpoint need?
model_image (Model), piece_image_1 (Piece worn first), piece_image_2 (Piece it switches to), fields.decor (Setting, optional), fields.audio (Audio, 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?
2.2 credits per second on the standard tier, 4.4 per second on pro, 23 per second on ultra. 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