Runway Act-Two: what it does, API inputs and cost
Runway Act-Two applies an acted performance from a 3–30 second video to a character image or video. API fields, credit cost, and a Sume option.

Runway Act-Two is Runway's character performance model: you give it a video of a person acting, 3 to 30 seconds long, and it applies that performance (facial expressions, and body movement if you turn it on) to a character image or character video. In Runway's API it is POST /v1/character_performance with model: "act_two", priced at 5 credits per second.
The Runway facts below come from Runway's own developer docs, read on 2026-09-28: the API reference, the models list and the pricing page. The Sume facts come from the Sume API reference, whose OpenAPI document is described on the API reference docs page.
What does Act-Two take as input?
Two media inputs and a few controls. The character is the face that ends up on screen; the reference is you, or an actor, doing the lines and the expressions. Runway's models list gives Act-Two's input as image or video and its output as video.
| Field | What Runway documents |
|---|---|
character | Required. An image or a video (type + uri). A visually recognizable face must be visible and stay in frame. |
reference | Required. A video of a person performing, between 3 and 30 seconds long. |
bodyControl | Optional boolean. When on, non-facial movements and gestures are applied as well as facial expressions. |
expressionIntensity | Optional integer from 1 to 5, default 3. Higher means a stronger expression. |
ratio | Optional: 1280:720, 720:1280, 960:960, 1104:832, 832:1104 or 1584:672. |
seed | Optional integer, random when unspecified. |
How do I call Runway Act-Two through the API?
Send a JSON body to Runway's API with your key as a Bearer token and the required X-Runway-Version header. The call starts a task and returns its id; poll GET /v1/tasks/{id} until status is SUCCEEDED or FAILED. Runway's SDKs wrap the same endpoint as client.characterPerformance.create (Node.js) and client.character_performance.create (Python).
curl -X POST https://api.dev.runwayml.com/v1/character_performance \
-H "Authorization: Bearer $RUNWAYML_API_SECRET" \
-H "X-Runway-Version: 2024-11-06" \
-H "Content-Type: application/json" \
-d '{
"model": "act_two",
"character": { "type": "image", "uri": "https://example.com/character.png" },
"reference": { "type": "video", "uri": "https://example.com/performance.mp4" },
"bodyControl": true,
"expressionIntensity": 3,
"ratio": "1280:720"
}'How much does Runway Act-Two cost?
Runway's pricing page lists act_two at 5 credits per second, and credits cost $0.01 each in the developer portal, which works out to $0.05 per second. Sales tax may apply depending on your location. The create response carries estimatedCost, the maximum credits the task may charge; the final amount may be lower.
If you searched for Act-One: neither Runway's API models list nor its API pricing page named an Act-One model on the day we read them; act_two is the character performance model listed. Runway's per-second list for its other models is in Runway API pricing per second.
Can I do something similar on Sume?
Sume does not offer Act-Two. The closest Sume endpoint is Kling 3.0 Motion Control, POST /v1/kling/3.0/motion-control, which animates a still image, or a ready avatar's still, with the motion of a driving video you supply. It is not the same tool, so check the differences before you switch:
- The visual source is exactly one still:
image_url, or a ready avatar byavatar_idoravatar_handle. There is no character-video input. motion_video_urlmust be a fetchable public HTTPS video, 30 seconds at most. The output length follows the driving video.- There is no expression-intensity or body-control switch.
- It costs $0.1575 per output second, plus a 5.5% agent fee by default.
Which one fits my project?
Pick by the input you have and the control you need:
- Act-Two if your character is itself a video, or you want to tune expression intensity and body control on an acted performance.
- Sume's Motion Control if you start from one still or a Sume avatar and want its movement copied from a clip, billed per second of driving video. The full request is in Motion control API: animate an image with a driving video.
- If you want a face to speak an audio track rather than copy an actor, that is lip sync, not performance transfer; see Talking video API: avatar vs lip sync vs motion control.
Sources
Related posts
More in Models
- Runway Aleph 2.0 API: aleph2 inputs, limits and price
Yes: Aleph 2.0 is aleph2 on Runway's POST /v1/video_to_video. It edits a 2–30 s video from a prompt and keyframes at 28 credits a second.
- Runway API Seedance: calling Seedance 2.5 and 2.0 on Runway
Yes, Runway's API serves Seedance: seedance2_5, seedance2, seedance2_fast and seedance2_mini. Inputs, limits and credits, and other ways to call Seedance.
- Runway Gen-4.5 vs Seedance 2.0: inputs, length and price
On Runway's API, Gen-4.5 makes 2–10 s clips for 12 credits a second; Seedance 2.0 makes 4–15 s clips with audio for 36–150 credits a second.
- Runway ML alternatives for AI video: apps and APIs
Runway ML alternatives for AI video: fal, Higgsfield, Kling, Replicate and Sume compared on app vs API, models and billing, read 2026-09-28.
Written by Sume