Skip to content

Editto

Integrate

Model id editto
# Run the model; wait up to 20 s for the finished result in the same call
curl -X POST "https://api.doitong.com/v1/run/editto?wait=20" \
  -H "Authorization: Bearer $DOITONG_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "A red fox trots through fresh snow at sunrise, soft golden light, shallow depth of field",
    "video": "https://content.doitong.com/video/showcase/v3/gen_fox_cartoon.mp4"
  }'

# Still "queued" or "running"? Poll with the id from the response:
curl "https://api.doitong.com/v1/requests/REQUEST_ID?wait=20" \
  -H "Authorization: Bearer $DOITONG_API_KEY"

Files like the example: $0.405 405 API credits your files are measured before the run Run it on this page

Get API key
Open model Video to Video up to 720p #video-edit#wan-vace

Instruction-based video editing that rewrites a source video from a prompt, with frame, fps and resolution controls

Open model · Video

Your first result goes here

Build a request below and run it with your API key. Outputs are copied to our storage, kept forever or 7 days for free.

Build a request

Controls are generated from the model schema. The code and the price update as you change them.

•required

Text instructions that guide video generation.

•required video_url
Drop a file, or

Source video file URL; required when performing inpainting.

resolution default auto

Resolution for the output video.

aspect_ratio default auto

Aspect ratio for the resulting video.

default 81

Output frame count, with an inclusive range of 81–241.

default 0

Interpolation count: 0 leaves the original frames uninterpolated; other values specify how many intermediate frames to generate between them.

Advanced negative_prompt · sampler · acceleration · video_quality · video_write_mode · frames_per_second · num_inference_steps · guidance_scale · shift · temporal_downsample_factor · seed · match_input_frames_per_second · enable_safety_checker · enable_auto_downsample · return_frames_zip
default letterboxing, borders...

Negative prompt applied when generating a video.

sampler default unipc

Sampler used when generating video.

acceleration default regular

Inference acceleration setting, with a choice of 'none' or 'regular': accelerated processing offers a substantial speed improvement at the expense of a very small output change.

video_quality default high

Quality level for the resulting video.

video_write_mode default balanced

Write mode for the resulting video.

default 16

Generated video frame rate, applied only when `match_input_frames_per_second` is not true; accepted values are 5–30 frames per second.

default 30

Sampling step count, trading longer processing time for better quality as the count increases.

default 5

Prompt-alignment strength controlled through classifier-free guidance; increasing the scale encourages generated images to follow the text more closely.

default 5

Shift setting applied when generating video.

default 0

Video frame-skipping factor, expressed as an integer, with automatic upsampling applied once for every downsampling factor. Use 0 to leave temporal downsampling disabled.

Seed that makes generation reproducible. Setting it to None selects a seed randomly.

POST /run/editto?wait=20 quote → $0.405
# Run the model; wait up to 20 s for the finished result in the same call
curl -X POST "https://api.doitong.com/v1/run/editto?wait=20" \
  -H "Authorization: Bearer $DOITONG_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "A red fox trots through fresh snow at sunrise, soft golden light, shallow depth of field",
    "video": "https://content.doitong.com/video/showcase/v3/gen_fox_cartoon.mp4"
  }'

# Still "queued" or "running"? Poll with the id from the response:
curl "https://api.doitong.com/v1/requests/REQUEST_ID?wait=20" \
  -H "Authorization: Bearer $DOITONG_API_KEY"

Run this request

Your key stays in this browser: it is sent only to the Doitong API and saved (localStorage) only if you tick Remember. Get an API key

About Editto

Edits an existing video given by `video_url` and guided by a text `prompt`. The output can follow the input's frame count and frame rate, or use `num_frames` (17 to 241) and `frames_per_second` (5 to 30). Resolution runs from 240p to 720p, aspect ratio can be auto, 16:9, 1:1 or 9:16, and a ZIP of the frames can also be returned.

Parameters

Send either the canonical name or the native name, not both. Canonical names

NameType DefaultAllowed Description
promptrequired
Typestring
Text instructions that guide video generation.
negative_promptoptional
Typestring
Defaultletterboxing, borders, black bars, bright colors, overexposed, static, blurred details, subtitles, style, artwork, painting, picture, still, overall gray, worst quality, low quality, JPEG compression residue, ugly, incomplete, extra fingers, poorly drawn hands, poorly drawn faces, deformed, disfigured, malformed limbs, fused fingers, still picture, cluttered background, three legs, many people in the background, walking backwards
Negative prompt applied when generating a video.
match_input_num_framesoptional
Typeboolean
Defaultfalse
Source of the generated video's frame count: false uses `num_frames`, while true copies the input video's frame count.
num_framesoptional
Typeinteger
Default81
17 – 241
Output frame count, with an inclusive range of 81–241.
match_input_frames_per_secondoptional
Typeboolean
Defaultfalse
Source of the generated video's frame rate: false uses `frames_per_second`, while true copies the input video's frame rate.
frames_per_secondoptional
Typeinteger | null
Default16
5 – 30
Generated video frame rate, applied only when `match_input_frames_per_second` is not true; accepted values are 5–30 frames per second.
seedoptional
Typeinteger | null
Seed that makes generation reproducible. Setting it to None selects a seed randomly.
resolutionoptional
Typeenum
Defaultauto
auto240p360p480p580p720p
Resolution for the output video.
aspect_ratiooptional
Typeenum
Defaultauto
auto16:91:19:16
Aspect ratio for the resulting video.
num_inference_stepsoptional
Typeinteger
Default30
2 – 50
Sampling step count, trading longer processing time for better quality as the count increases.
guidance_scaleoptional
Typenumber
Default5
1 – 10
Prompt-alignment strength controlled through classifier-free guidance; increasing the scale encourages generated images to follow the text more closely.
sampleroptional
Typeenum
Defaultunipc
unipcdpm++euler
Sampler used when generating video.
shiftoptional
Typenumber
Default5
1 – 15
Shift setting applied when generating video.
video_urlrequired video
Typeurl · video
Source video file URL; required when performing inpainting.
enable_safety_checkeroptional
Typeboolean
Defaultfalse
Safety-checking switch whose off setting requires account authorization. Without that authorization, every request is checked regardless of the setting; true enables the checker.
accelerationoptional
Typeenum
Defaultregular
nonelowregular
Inference acceleration setting, with a choice of 'none' or 'regular': accelerated processing offers a substantial speed improvement at the expense of a very small output change.
video_qualityoptional
Typeenum
Defaulthigh
lowmediumhighmaximum
Quality level for the resulting video.
video_write_modeoptional
Typeenum
Defaultbalanced
fastbalancedsmall
Write mode for the resulting video.
num_interpolated_framesoptional
Typeinteger
Default0
0 – 5
Interpolation count: 0 leaves the original frames uninterpolated; other values specify how many intermediate frames to generate between them.
temporal_downsample_factoroptional
Typeinteger
Default0
0 – 5
Video frame-skipping factor, expressed as an integer, with automatic upsampling applied once for every downsampling factor. Use 0 to leave temporal downsampling disabled.
enable_auto_downsampleoptional
Typeboolean
Defaultfalse
Automatic frame-count adaptation: enabling this lets the model process a temporally downsampled video of a suitable length, with interpolation afterward restoring the original frame count.
return_frames_zipoptional
Typeboolean
Defaultfalse
Controls whether a ZIP archive containing every generated frame is also returned; enabled when true.
required Canonical name, also accepted

File parameters take a public https:// URL, a data: URI up to 10 MB, or the file_url of an upload. Files

Output

GET /requests/req_8k2m4q7x1z9c3v5b6n0p2r4t
{
  "id": "req_8k2m4q7x1z9c3v5b6n0p2r4t",
  "object": "request",
  "model": "editto",
  "status": "succeeded",
  "created_at": "2026-10-20T12:00:00Z",
  "started_at": "2026-10-20T12:00:02Z",
  "completed_at": "2026-10-20T12:00:09Z",
  "queue_position": null,
  "cost": {
    "credits": 405,
    "usd": "0.405",
    "charged": 405,
    "refunded": 0
  },
  "input": {
    "prompt": "A red fox trots through fresh snow at sunrise, soft golden light, shallow depth of field",
    "video_url": "https://content.doitong.com/video/showcase/v3/gen_fox_cartoon.mp4"
  },
  "output": {
    "video": {
      "url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.mp4",
      "content_type": "video/mp4",
      "file_name": "0-output.mp4",
      "file_size": 1843200,
      "width": 1024,
      "height": 768,
      "fps": 1.0,
      "duration": 5,
      "num_frames": 1
    },
    "prompt": "Make it a Pixel Art video.",
    "seed": 42,
    "frames_zip": {
      "url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.mp4",
      "content_type": "video/mp4",
      "file_name": "0-output.mp4",
      "file_size": 1843200
    }
  },
  "outputs": [
    {
      "type": "video",
      "url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.mp4",
      "content_type": "video/mp4",
      "file_size": 1843200,
      "width": 1280,
      "height": 720,
      "duration": 5,
      "stored": true
    }
  ],
  "error": null,
  "metrics": {
    "inference_seconds": 6.8
  },
  "urls": {
    "self": "https://api.doitong.com/v1/requests/req_8k2m4q7x1z9c3v5b6n0p2r4t",
    "cancel": "https://api.doitong.com/v1/requests/req_8k2m4q7x1z9c3v5b6n0p2r4t/cancel"
  }
}
Your files, your choiceEvery outputs[].url is a copy on our storage: kept forever (paid per GB-month) or 7 days for free, by your account setting or ?storage=.
Same shape on every modeltype, url, content_type, width, height and duration, for images, video and audio alike. output is the model’s own result object.
Fields of output
video
object {url, content_type, file_name, file_size, width, height, fps, duration, num_frames}Video file generated from the image.
prompt
stringPrompt that was used to generate the output.
seed
integerSeed value applied during generation.
frames_zip
object {url, content_type, file_name, file_size} | nullZIP archive containing every video frame, returned when requested.

For AI agents: this page as Markdown is at https://doitong.com/en-US/developers/models/editto.md. All models and guides: https://doitong.com/developers/llms.txt