Effects API
One photo in. A new image or a moving clip out.
Every effect is a maintained instruction you address by a short id. Upload a picture, name the effect, poll the task — the samples below are what came back.
POST /v1/images/transformations
Image effects
A photo goes in and a transformed image comes back: the same subject, re-posed, re-dressed or undressed. Each card shows the source inset over the result. Click one for the exact request.
undress
26 effectsCostume
27 effectsPose
60 effectsPOST /v1/videos/transformations
Video effects
A photo goes in and a five-second clip comes back, animated by the effect you name. Hover a card to play it. Click one for the exact request.
Two endpoints, your own prompt too
An effect is one parameter on a request you already control. Send a prompt of your own on the image endpoint, or add one beside a video effect to steer it.
Image to image
Transform an uploaded image with a prompt, an effectId, or both.
curl -X POST https://app.piernode.com/api/v1/images/transformations \
-H "Authorization: Bearer $PIERNODE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"assetId": "<uploaded asset id>",
"prompt": "change the background to a sunlit beach",
"resolution": "hd",
"aspectRatio": "3:4"
}'- Prompt alone, effect alone, or an effect with a prompt on top
- Output in HD or Full HD, seven aspect ratios
- Asynchronous: the response is a task you poll for the image
Image to video
Animate an uploaded image into a five- or eight-second clip driven by a video effect.
curl -X POST https://app.piernode.com/api/v1/videos/transformations \
-H "Authorization: Bearer $PIERNODE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"assetId": "<uploaded asset id>",
"effectId": "<video effect id>",
"resolution": "hd",
"durationSeconds": 5
}'- An effectId is required; a prompt is optional and additive
- 832×480 or 1280×720, 5 or 8 seconds
- Billed per second of output, only on success
Three calls from a photo to a result
Every request on this page shares the same shape. There is nothing to install and no model to host.
- 1
Upload the image
Ask for an upload slot, PUT the bytes, confirm. You get an assetId that any request can reference.
POST /v1/assets - 2
Name the effect
One POST with the assetId and the effectId — plus a prompt or presets if you want to override its defaults.
POST /v1/images|videos/transformations - 3
Poll the task
The response is a task. Poll it until it succeeds and read the output URL. A failed task is never charged.
GET /v1/tasks/{id}
Try any effect on your own image
Sign up, fund the wallet in US dollars, and every effect on this page answers the first request you send.