On-device text-to-video, verified on Android

Run Wan2.1 locally on your Android phone.

Wan2.1 T2V 1.3B, generating real video clips end-to-end on a stock phone's own Vulkan GPU. No cloud API, no render queue, no account.

This isn't a mobile UI in front of a cloud job. Saient's video engine is a native process that runs on the device — verified live on a Samsung Galaxy S24, foreground service, real local GPU load, start to finish.

The model

What is Wan2.1?

Wan2.1 is an open-weight text-to-video diffusion model. The 1.3B-parameter T2V variant is small enough, quantized, to run on consumer hardware — including, as of Saient mobile, an Android phone GPU, not just a desktop or cloud GPU.

Wan2.1 is developed and released by its own upstream team. Saient does not claim authorship of the model — Saient builds and ships the on-device engine that runs it locally on a phone.
On-device architecture

How Saient runs Wan2.1 on a phone, step by step

  1. Model pack, verified. A quantized Wan2.1 T2V 1.3B transformer (GGUF, Q4_K), a quantized UMT5-XXL text encoder (Q2_K), and an fp16 VAE — about 2.93GB total, each file SHA-256 checked before install.
  2. Chat engine steps aside. Saient's LLM engine (Quartz) unloads first so the phone's memory budget is free for video generation — the two never run at once.
  3. Split backend. The text encoder and VAE run on CPU; only the diffusion transformer — the actual per-step compute — runs on the phone's Vulkan GPU, keeping peak VRAM down.
  4. Disk-paged weights, tiled VAE, hard VRAM caps. Weights are streamed from disk rather than fully memory-resident, and the VAE decodes in tiles, so a multi-gigabyte pipeline fits a phone's shared memory.
  5. Real video, on-device. Output is written as a local .webm file and played back immediately — nothing round-trips to a server.

Full technical write-up, with the exact process arguments and why each one is set the way it is: docs/VIDEO_PIPELINE.md in the Saient mobile repo.

Install guide

How to run Wan2.1 locally on Android with Saient

  1. Clone the app source. git clone https://github.com/SaientAI/saient
  2. Install dependencies. npm ci
  3. Generate the native Android project. npx expo prebuild --platform android --no-install
  4. Build and run on a connected device. npm run android — a native development build is required; Expo Go is not sufficient, since this depends on custom native modules.
  5. Download the Wan2.1 pack in-app. Open the Video tab, download the model pack, and activate it once installed.
  6. Generate. Type a prompt, choose a step/frame preset, and generate — start with the shortest preset (5 frames, 1 step) first.
Saient mobile isn't on an app store yet — building from source is currently the way to run it. See the full README for the production release build path.
Requirements

Supported hardware

Android, Vulkan GPU

Verified — developed and tested on a Samsung Galaxy S24 (SM-S921B), Android 16.

GB

~8GB RAM, ~3GB storage

Target device class. Roughly 3GB free storage for the Wan2.1 pack, plus whatever chat/image models you add separately.

iOS

In progress

Native code needs to be built and exercised on macOS with Xcode before an iOS release.

FAQ

Wan2.1 on Android — questions

Can Wan2.1 actually run locally on a phone?

Yes. Verified end-to-end on a stock Samsung Galaxy S24, using the phone's own Vulkan GPU. No cloud inference call is in the generation path.

Is this the same as a cloud Wan2.1 app with a mobile UI?

No. Several "Wan mobile" apps are a phone UI wrapping a cloud render job. Saient's video engine is a native process running on-device, visible as a foreground service doing real local compute.

Is the engine open source?

Quartz (LLM + SDXL) is MIT-licensed at SaientAI/saient-quartz. The mobile app source, including the Wan2.1 integration, is at SaientAI/saient.

How long does generation take?

Minutes, not seconds — this is real work for a phone. Start with the shortest preset.

Run Wan2.1 on your own phone.

Clone the repo, build it, and generate your first clip on-device.