ByteDanceByteDance video model

ByteDance Video Upscaler. Restore the footage you already have.

ByteDance's video upscaler runs on fal, and on Treza it is a node rather than a one-off tool. It sits in the middle of a pipeline, skips sources that are already sharp, and blends its result back into the original so real faces stay their own.

  • Runs on fal
  • 1080p, 2K, and 4K targets
  • Five enhancement presets
  • Source-height gate
  • Strength blend and grain
The model

An upscaler is only interesting when the source is genuinely bad. Ours was. The 2013-era episodes of the podcast archive we clip exist only at 640x360, and a 9:16 crop keeps a 202x360 sliver of that frame before the sequence stretches it to 1080x1920, more than five times up. On a 4.73 second piece of exactly that footage, the pro tier restored detail we could name: brows, eyes, and skin texture became readable again. The standard and fast tiers, and the old film preset, came back close enough to plain Lanczos scaling that we did not keep them.

Pro at full strength has a cost that is not money. On a face that small it does not sharpen, it repaints, and the speaker comes back looking like a slightly different person. So the Treza node blends the upscaled result back over the original at a strength you set, with optional grain, in a local ffmpeg pass after the fal job returns. Our own archive pipeline runs at 35 percent, which borrows the edge definition and leaves the subject their own texture.

A gate, so it only bills when it must

Set a minimum source height and anything already that large passes through untouched and unbilled. One node can then sit on every footage path in a pipeline where some episodes are 1080p and some are 360p.

Strength, not repainting

Blend 0 to 100 percent of the upscaled result over the Lanczos-scaled original. Between 35 and 50 keeps a real person recognisably themselves while still picking up edge definition.

Grain for footage that is meant to look old

A light noise pass after the blend, 0 to 30, so a soft archive source reads as archive rather than as a bad encode. Around 8 to 12 is subtle.

Presets and tiers for the source you have

General, AI-generated, phone and UGC, short series, or old film, at fast, standard, or pro, targeting 1080p, 2K, or 4K. Pro bills ten times standard, which is why the gate matters.

Source to result

What the upscale node is actually for

The footage that arrives, and what comes back. Every case below is a setting on one node, not a separate tool.

A 2013 podcast upload that exists only at 640x360

Pro tier, strength 35, grain 10. Detail returns without redrawing the speaker's face.

A 9:16 crop that keeps a 202x360 sliver of that frame

Restored before the stretch to 1080x1920, so the sequence is not enlarging a soft source five times over.

The same pipeline running on a modern 1080p episode

The source-height gate passes it straight through. Nothing is sent to fal and nothing is billed.

A 720p draft from an inexpensive video model, picked as the keeper

Upscaled to 1080p on the AI-generated preset before captions are burned in.

A face that the pro tier changes at full strength

Drop strength to 35 or 50 and the blend takes the definition while leaving the original texture.

A long archive episode cut into five separate pieces

One upscale node per piece, then stitched, captioned, and published on a schedule.

Beyond one prompt

ByteDance Video Upscaler is one node on a canvas

Chain it with language, image, and video models, then publish the whole pipeline as an API. See how a full AI video pipeline fits together.

  1. Step 01

    Cut and crop before you restore

    A transcription node and a language model pick the most shareable stretch out of the timestamped transcript, and the Extract Clip node cuts it and reframes to 9:16 around the speaker. Upscaling comes after, so you are restoring 40 seconds instead of 40 minutes.

  2. Step 02

    Upscale only what needs it

    The node measures the source's shorter side first. Below the bar it goes to fal; at or above it, the clip passes through unbilled. The strength blend and grain run locally on ffmpeg once the job returns.

  3. Step 03

    Caption and publish, unattended

    Captions burn word by word from a transcript taken off the pre-upscale clip, same timeline and cheaper bytes, and the YouTube node uploads the result. Our Upscale and Repost template is this whole chain, ready to stamp onto a canvas.

API and pricing

ByteDance Video Upscaler as an API, priced per clip

The ByteDance Video Upscaler API

Build a pipeline with ByteDance Video Upscaler on a node and publish it. It becomes a versioned HTTP endpoint: the typed /invoke route enqueues a run and returns a run id to poll, and an OpenAI-compatible route works with SDKs you already use. Agents connect over MCP the same way. Your prompt engineering ships inside the pipeline, so every caller gets your quality, and swapping the model later does not change the API your product calls.

ByteDance Video Upscaler pricing

Prepaid credits, no subscription. Each clip is charged at ByteDance Video Upscaler's own rate from your balance, shown before you run, and only successful generations are charged, so a failed run costs nothing. Credit packs start at $5 and never expire, which suits spiky production schedules. Run history records the cost of every generation, per node, so spend is auditable rather than a surprise.

FAQ

ByteDance Video Upscaler, answered

Does upscaling change how people look?

At full strength on a very low-resolution face, yes. The pro tier is a restorer, and on a 202x360 crop it invents skin and eye texture until the subject reads as someone slightly different. That is the reason the node exposes a strength control at all: blending the result back over the original at 35 to 50 percent keeps the person's own face and takes only the edge definition.

How is the upscaler billed?

fal bills this endpoint on double the clip duration, which we verified against an invoice where a 6.97 second clip appeared as 13.934 seconds. The per-second rate doubles from 1080p to 2K and again to 4K, and the pro tier bills ten times standard. On Treza that is charged from prepaid credits on success only, and a clip the source-height gate skips costs nothing at all.

Why run an upscaler in a pipeline instead of a standalone tool?

Because the useful position is in the middle of a chain. Restore after the clip has been cut and cropped, so you pay for seconds rather than minutes, and before captions are burned in, so the text is composited onto the finished resolution. A standalone tool cannot see either side of that. On Treza the upscale is one node between the ones that already do the cutting and the publishing, and the whole graph can run on a schedule.

How much does ByteDance Video Upscaler cost on Treza?

Treza uses prepaid credits with no subscription. Each clip is charged at ByteDance Video Upscaler's rate from your balance, and only successful generations are charged. Credit packs start at $5 and never expire.

Can I call ByteDance Video Upscaler through an API?

Yes. Build a pipeline that uses ByteDance Video Upscaler and publish it as a versioned HTTP endpoint. Call the typed /invoke API from your product, or point any OpenAI SDK at the OpenAI-compatible endpoint. If a better model ships later, swap it on the node without changing the API your product calls.