POST /v1/videos/clone takes a reference video and a request such as “replace the main character with the cat in the reference image”, and makes a new video with the same pacing, shots and motion. Each version of the result is a revision, and each revision is a workflow run (geekidea/video-clone). Progress, confirmation, redo and cancellation use the /v1/workflow_runs endpoints.

Create a video clone

Follow the revision with GET /v1/workflow_runs/{run_id}, its event stream or webhooks. Give exactly one of source_file_id and source_url. A source that can’t be used returns 400 video_clone_source_invalid; an understand_model without video input returns 400 input_not_supported. POST /v1/videos/clone/quote takes the same body and saves nothing. It returns estimated_cost_usd, the amount held when the task is created (split into model_cost_usd and fee_usd), the steps in that first segment, total_cost_usd for the whole of revision 1, source_duration_ms the estimate is based on, and within_budget when you sent budget_usd. Before the plan exists the number of shots is unknown, so it is estimated from the reference video length (probed for source_file_id; for source_url, the smaller of max_duration_seconds and 60 seconds) and the video model’s default clip length.

Steps

With auto_confirm: true no step stops. A new revision skips import and understand and reuses the understanding of the revision it is based on. Skipped steps are not charged. When the run stops in waiting_input, review the revision, edit the understanding or plan if you like, then call POST /v1/workflow_runs/{id}/confirm. Redo a step with POST /v1/workflow_runs/{id}/steps/{stepKey}/redo and cancel with POST /v1/workflow_runs/{id}/cancel.

Tasks and revisions

Task status follows the current revision: draft, producing, waiting_input, completed, failed or cancelled.

New revisions

The body is optional. base_revision_no picks the revision to start from (default: the current one; it must already have an understanding). prompt, reference_file_ids (replaces the whole list), understand_model, image_model, video_model, aspect_ratio, resolution, max_duration_seconds, audio_policy, voice_model, voice and budget_usd are as above; fields you leave out keep the base revision’s values. The reference video stays the same; to use another one, create a new task. The new revision becomes current. It returns 409 workflow_invalid_state while the current revision is running.

Edit the understanding and plan

Send {"payload": { … }} with the whole new content, in the same structure as understanding or plan in the revision detail.
  • Replacing the understanding resets plan and the later steps.
  • Replacing the plan first fits it to the video model’s durations and the length limit, then resets images and the later steps.
The run goes back to waiting_input; confirm to continue. Invalid content returns 400 invalid_parameter; a running run returns 409 workflow_invalid_state.

Assets

Images, depth videos, clips and the voice-over are asset candidates (casset_…). Each belongs to a slot (for example image:s01_first or clip:s01), and the selected candidate of a slot is the one used. role is subject, frame, source_frame, motion, clip or voice.
  • Regenerate opens its own charge (kind media) for that one asset’s model cost and feature fee (one image, or the shot’s seconds), and does not reset any step. When it succeeds the new candidate is selected.
  • Upload adds the image as a new selected candidate in the slot of asset_id, free of charge.
  • When a candidate is selected, assets made from it are marked stale: true.
  • Regenerate, adopt and upload return 409 workflow_invalid_state while the run is running. Regenerate also returns 409 while the slot is already generating.
An asset has id, revision_no, kind (image, video, audio or depth), role, slot, shot_key, subject_key, status (generating, succeeded or failed), selected, stale, source (generated, regenerated, uploaded, extracted or dubbed), file, generation_id, prompt, feedback, error_code and created_at. File urls are signed and expire; query again for fresh links.

Pricing

A revision costs the model calls its steps make, at the same price as calling the models directly, plus a feature fee per step. The depth extraction and the voice-over are billed as model cost only; they have no feature fee of their own. See Billing for the current feature fees.