What downloads on first use, in short
Octoolo's installer does not contain FFmpeg or any AI. Each of these downloads once, the first time a tool needs it, after Octoolo shows its size and the person agrees:
- FFmpeg (80.7 MB): for the Video Editor, the Audio Editor, the Media Player, the screen recorder and the video and audio converters.
- The AI runtime (15.4 MB: ONNX Runtime and DirectML, from Microsoft): for every AI feature.
- One AI model per feature: the background remover (183.3 MB), object selection (78.0 MB), the object remover (28.1 MB) and the upscaler (4.9 MB) for the Photo Editor; the vocal remover (91.3 MB) for the Audio and Video Editors.
- One translator per language direction (103.6 to 132.3 MB each) for Translate in Text Studio.
Each download is checked against a fixed fingerprint before it is used, is kept in %LOCALAPPDATA%\com.octoolo.app\engines, and then works offline. Nothing the person opens or makes is ever uploaded. Sizes here are in decimal megabytes (1 MB = 1,000,000 bytes); see "Why the sizes differ between screens" for how each screen shows them.
What each feature downloads
| Feature (app) | Downloads the first time | Size | Then also needs |
|---|---|---|---|
| Video Editor, Audio Editor, Media Player (they wait for it before opening) | FFmpeg | 80.7 MB | nothing |
| Screen recorder (Video Editor) | FFmpeg | 80.7 MB | nothing |
| Convert video, Convert audio, Extract audio (Converters) | FFmpeg | 80.7 MB | nothing |
| Remove background, Select subject, Select background (Photo Editor) | Background remover | 183.3 MB | AI runtime, 15.4 MB |
| Select an object (Photo Editor) | Object selection | 78.0 MB | AI runtime |
| Remove things, Fill with its surroundings, Lift an object (Photo Editor) | Object remover | 28.1 MB | AI runtime |
| Upscale 2× and 4× (Photo Editor) | Upscaler | 4.9 MB | AI runtime |
| Separate voice and music, the vocal remover (Audio and Video Editors) | Vocal remover | 91.3 MB | AI runtime |
| Translate, Translate a document (Text Studio) | One model per direction, e.g. English → Spanish | 103.6 to 132.3 MB | AI runtime |
| Depth (listed in Settings only) | Depth | 49.6 MB | AI runtime |
The AI runtime downloads once, with whichever AI feature comes first. In 0.8.0 no tool uses Depth: it is listed in Settings › Downloaded parts ("for background blur") and downloads only if its Download button there is pressed.
Tools that need no download at all are listed in "Tools that download nothing".
FFmpeg
FFmpeg is the open-source video and sound engine. Octoolo uses FFmpeg n8.1.3, 64-bit Windows, LGPL build with shared libraries, from BtbN's FFmpeg-Builds on GitHub (ffmpeg-n8.1.3-win64-lgpl-shared-8.1.zip, 80,726,424 bytes). It is unpacked into %LOCALAPPDATA%\com.octoolo.app\engines\ffmpeg, and the zip is deleted.
The Video Editor, the Audio Editor and the Media Player show "The video editor needs FFmpeg" (or "The audio editor needs FFmpeg", "The Media Player needs FFmpeg") until it is there. The screen recorder and the converters show "Screen recording needs FFmpeg", "Converting video needs FFmpeg", "Converting sound needs FFmpeg" or "Saving a video's sound needs FFmpeg". Each says "A free, one-time download of 77 MB. It is checked against its fingerprint and kept on this computer for every tool that needs it." Press Download FFmpeg; the progress shows as "N MB of 77 MB · N%" with Cancel. After a failure the button says Try again. FFmpeg is downloaded once for all these tools.
FFmpeg cannot be removed from Settings (it has no Remove button).
The AI runtime (ONNX Runtime and DirectML)
Every AI feature in Octoolo runs on ONNX Runtime 1.24.4 (built with DirectML, MIT license) and DirectML 1.15.4 (Microsoft's machine learning layer for DirectX 12). Both come from Microsoft's NuGet packages on api.nuget.org. A NuGet package holds every platform's files (215 MB together), so Octoolo fetches only the two 64-bit Windows DLLs, each as a byte range of its package: 15.4 MB in all (6,039,180 + 9,332,795 bytes), which unpack to onnxruntime.dll and DirectML.dll, 35.9 MB on disk, in %LOCALAPPDATA%\com.octoolo.app\engines\onnxruntime. Each is checked twice: the bytes downloaded, then the unpacked file.
Octoolo loads its own DirectML.dll, not the older copy that comes with Windows. ONNX Runtime's own telemetry is switched off.
The AI models for photos
The Photo Editor's AI features each use one model, downloaded the first time the feature is used (the Photo Editor shows a window with Download (N MB), or AI › AI parts on this computer… downloads them ahead):
| Part (as Settings names it) | Model | Files | Size | From |
|---|---|---|---|---|
| Background remover | BiRefNet lite (Octoolo's export of the official weights) | birefnet_lite_gs.onnx | 183.3 MB | octoolo.com |
| Object selection | SAM 2.1 tiny (Meta's Segment Anything 2.1) | 4 files (image encoder and mask decoder, half precision) | 78.0 MB | huggingface.co |
| Object remover | MI-GAN | migan_pipeline_v2.onnx | 28.1 MB | huggingface.co |
| Upscaler | Real-ESRGAN general x4v3 | realesr-general-x4v3.onnx | 4.9 MB | huggingface.co |
| Depth | Depth Anything V2 Small | model_fp16.onnx | 49.6 MB | huggingface.co |
Each model is kept in %LOCALAPPDATA%\com.octoolo.app\engines\models\<part> (ai-background, ai-select, ai-erase, ai-upscale, ai-depth) and takes the same space on disk as its download. All four Photo Editor features with the runtime: 309.6 MB.
If the person declines a download in the Photo Editor, Select an object uses the magic wand instead and Remove things fills without AI ("Filled from around it without AI."). The other AI features do nothing until their part is there.
The vocal remover model
The vocal remover (Separate voice and music in the Audio Editor and the Video Editor) uses Hybrid Transformer Demucs (Meta's htdemucs, MIT), htdemucs_fp16.onnx, 91.3 MB from huggingface.co, kept in %LOCALAPPDATA%\com.octoolo.app\engines\models\ai-stems. Its window shows Download (107 MB) and separate the first time (91 MB once the AI runtime is there), then "Downloading the vocal remover (107 MB)…" and Stop. While it works it says "Separating the voice from the music on the graphics card…" or "… on the processor…". When the separation ends, the model is unloaded, giving back about 1.5 GB of the graphics card's memory.
The translator's languages
Translate in Text Studio uses Opus-MT models (University of Helsinki, CC-BY 4.0, converted to ONNX by Xenova), one per direction, each five files (103.6 to 132.3 MB) from huggingface.co, kept in %LOCALAPPDATA%\com.octoolo.app\engines\models\mt-<from>-<to> (for example mt-en-es).
Seventeen languages go both ways with English: Arabic, Chinese, Czech, Danish, Dutch, Finnish, French, German, Hungarian, Indonesian, Italian, Portuguese, Russian, Spanish, Swedish, Ukrainian and Vietnamese. Six go into English only: Hindi, Japanese, Korean, Polish, Thai and Turkish. Other pairs go through English and need both directions (Spanish to German needs Spanish → English and English → German).
| Direction | Size | Direction | Size |
|---|---|---|---|
| English → Spanish | 115.6 MB | Spanish → English | 115.7 MB |
| English → French | 109.7 MB | French → English | 109.7 MB |
| English → German | 108.2 MB | German → English | 108.2 MB |
| English → Italian | 131.9 MB | Italian → English | 132.3 MB |
| English → Dutch | 117.8 MB | Dutch → English | 117.8 MB |
| English → Russian | 114.1 MB | Russian → English | 114.4 MB |
| English → Chinese | 115.7 MB | Chinese → English | 115.7 MB |
| English → Arabic | 113.9 MB | Arabic → English | 114.1 MB |
| English → Ukrainian | 112.9 MB | Ukrainian → English | 113.1 MB |
| English → Indonesian | 104.8 MB | Indonesian → English | 104.8 MB |
| English → Portuguese | 115.5 MB | Portuguese → English | 115.5 MB |
| English → Swedish | 106.5 MB | Swedish → English | 106.5 MB |
| English → Danish | 109.2 MB | Danish → English | 109.2 MB |
| English → Finnish | 115.6 MB | Finnish → English | 110.0 MB |
| English → Czech | 113.1 MB | Czech → English | 113.1 MB |
| English → Vietnamese | 103.6 MB | Vietnamese → English | 103.6 MB |
| English → Hungarian | 113.0 MB | Hungarian → English | 113.1 MB |
| Japanese → English | 111.1 MB | Korean → English | 115.8 MB |
| Hindi → English | 112.4 MB | Polish → English | 114.0 MB |
| Turkish → English | 113.0 MB | Thai → English | 114.1 MB |
The Translate panel says which direction is missing, for example "English → Spanish needs a one-time download of 131 MB, with the AI engine that runs it. It runs on this PC: your text is never uploaded." and offers Download (131 MB) (the size includes the AI runtime the first time), "Downloading… N%" and Stop. When it is done: "English to Spanish is ready, and works offline." The translator always runs on the processor; a loaded direction uses about 420 MB of memory.
Tools that download nothing
These run on the PC with nothing to download:
- Image to text (Photo Editor) uses Windows' own text recognition. It reads the languages Windows has text recognition for on that PC; more are added in Windows' Settings › Time & language › Language & region.
- Image trace (Vector Editor: a picture to SVG) is built into Octoolo (VTracer).
- Fonts in the editors are the fonts installed on the PC; Octoolo downloads none.
- The Photo Editor's editing (everything but its AI features), the Vector Editor, the PDF Editor, Documents, Spreadsheets, Presentations, the picture, document, spreadsheet and presentation converters, Files, Passwords, Productivity and the Calculator need no engine download.
How a download works
Every part Octoolo downloads is pinned to exact bytes: its size and SHA-256 fingerprint are fixed in the app, and AI models from Hugging Face are pinned to one commit, so the file can never change under it. A download:
- goes into a temporary
.partfile in%LOCALAPPDATA%\com.octoolo.app\engines\downloads; - if it stops (a dropped connection, Stop, Cancel, closing Octoolo), the
.partfile stays, and the next attempt goes on from where it stopped (when the server allows it; otherwise it starts again); - is checked against its fingerprint; a file that does not match is deleted ("the file arrived damaged (its checksum did not match). Try again.");
- is unpacked (FFmpeg's zip; the AI runtime's DLLs, each checked again once unpacked) or moved into a folder of its own, and only then put in place.
The AI features download the runtime first, then the model, one after the other. Closing the Photo Editor's download window or the vocal remover's window stops its download (what came is kept). Closing the Translate panel does not stop a download, and downloads started from the FFmpeg screens or from Settings go on while Octoolo is open, whatever window is shown. If an Octoolo update moves a part to a new version, that part downloads again the next time it is needed; old half-downloads are deleted when Octoolo starts.
Where the downloads are kept
Everything is under %LOCALAPPDATA%\com.octoolo.app\engines (usually C:\Users\<name>\AppData\Local\com.octoolo.app\engines):
| Folder | Holds |
|---|---|
engines\ffmpeg | FFmpeg (ffmpeg.exe, ffprobe.exe and its DLLs, inside the build's own folder) |
engines\onnxruntime | The AI runtime: onnxruntime.dll, DirectML.dll |
engines\models\ai-background | Background remover |
engines\models\ai-select | Object selection |
engines\models\ai-erase | Object remover |
engines\models\ai-upscale | Upscaler |
engines\models\ai-depth | Depth |
engines\models\ai-stems | Vocal remover |
engines\models\mt-<from>-<to> | One translator direction each |
engines\downloads | Downloads still under way or stopped (.part files) |
engines\trash | Removed parts that were in use; emptied the next time Octoolo starts |
Each folder has an .installed file with the fingerprints it came from; Octoolo uses a part only when that file and every file's size match. Do not move or edit these folders: a part that does not match downloads again. Uninstalling Octoolo keeps them unless the uninstaller's "Delete the application data" box is ticked.
Do they work offline afterwards?
Yes. Once downloaded, FFmpeg, the AI features and the translator directions run with no internet connection; nothing is downloaded again unless a part is removed, damaged or updated by a new Octoolo version. Octoolo Cloud itself checks its license with octoolo.com from time to time; how long the paid apps keep working offline is in Prices and limits.
Graphics card or processor
Octoolo runs AI models on the graphics card through DirectML when it can, and on the processor otherwise. DirectML works with graphics cards that support DirectX 12 (from NVIDIA, AMD, Intel and others); on a laptop with two graphics chips it asks for the faster one. No graphics card is required: every AI feature also runs on the processor, more slowly, using all its threads.
Where each feature runs:
| Feature | Where |
|---|---|
| Background remover (remove background, select subject) | Always the processor (see the next section). About 2.4 s a photo on a 20-thread processor. |
| Object selection, object remover, upscaler, depth | The graphics card, else the processor |
| Vocal remover | The graphics card, unless it fails, gives no numbers, or is slower than the processor on that PC (measured once per run of Octoolo); else the processor. A five-minute song took 13.8 s on an RTX 4060 and 117 s on a 20-thread processor. |
| Translator | Always the processor |
If DirectML cannot be loaded at all, everything runs on the processor. If a model fails on the graphics card, Octoolo runs that model on the processor from then on, until Octoolo is started again. Loaded models are unloaded after 10 minutes unused, to give their memory back; the next use loads them again.
The Photo Editor's drawing (layers, filters, brushes) is separate from the AI: it uses the graphics card through WebGPU, and opens a simple editor where WebGPU is not available (see Photo Editor).
The graphics driver reset risk on busy graphics cards
Windows resets the graphics driver when the card takes longer than two seconds on one piece of work (Windows calls this TDR). The screen can go black for a moment, and apps using the card at that time (games too) can be interrupted. Octoolo's tests saw this with the background remover on an RTX 4060 that was busy with other work (it took 2.2 s when idle), so the background remover always runs on the processor, even on fast cards.
The other AI features run on the graphics card. If the card is busy with a game or other heavy work while an AI tool runs, close that work first. If a reset happens anyway, the AI feature goes on on the processor, and the Photo Editor says "The graphics card restarted; your work is safe." after setting itself up again from the pixels it keeps in memory.
Removing a downloaded part
Downloaded parts can be removed in Settings › Downloaded parts:
- Under AI on this computer: AI runtime, Background remover, Object selection, Object remover, Upscaler, Depth and Vocal remover. Each shows "Ready · N MB" (its size on disk) and Remove ("Deletes its files. It downloads again when a tool needs it."), or Download · N MB, or its progress in percent.
- Under Translator languages: every downloaded direction, with Remove. Text Studio's Translate panel also lists them under Languages ("Languages on this PC"), with Remove ("English → Spanish was removed. It downloads again when needed.").
- FFmpeg has no Remove button.
A part cannot be removed while it downloads ("It is downloading. Stop the download first."). If Windows still has a file of it open (the AI runtime stays loaded once used), it is moved aside and deleted the next time Octoolo starts. Removing the AI runtime makes every AI feature download it again when next used.
Firewalls, proxies and which sites are contacted
Downloads use HTTPS (port 443) from Octoolo itself, with the user agent "Octoolo/0.8.0". The sites:
| Part | Site |
|---|---|
| FFmpeg | github.com (BtbN/FFmpeg-Builds releases) |
| AI runtime | api.nuget.org (Microsoft's NuGet) |
| Background remover | octoolo.com |
| Object selection, Object remover, Upscaler, Depth, Vocal remover, every translator direction | huggingface.co |
GitHub and Hugging Face send their files from their own download servers: a link on github.com or huggingface.co is redirected there, so a firewall that allows only the names above may still block the download. Octoolo has no proxy setting of its own. A connection that cannot be made within 20 seconds fails. A PC that cannot reach these sites can still use every tool that downloads nothing.
Privacy: what is sent when something downloads
Only the request for the file: the site sees the PC's internet address, the file asked for and the user agent "Octoolo/0.8.0". No picture, sound, video, text, file name or account detail is sent; the AI and the translator run entirely on the PC. Settings' "What leaves this computer" card says the same for octoolo.com, GitHub, Microsoft (NuGet) and Hugging Face.
ONNX Runtime's telemetry is turned off in Octoolo. DirectML's license (Microsoft's terms for DirectML) says DirectML may send Microsoft usage data through Windows' own diagnostic data settings.
Licenses of the downloaded parts
| Part | License | Notes |
|---|---|---|
| FFmpeg | LGPL 2.1 | BtbN's LGPL build, shared libraries |
| ONNX Runtime | MIT | Microsoft |
| DirectML | Microsoft's redistributable license | Not open source; allowed in commercial apps |
| BiRefNet lite (Background remover) | MIT | Octoolo's export of the official weights, hosted with BiRefNet's license |
| SAM 2.1 tiny (Object selection) | Apache 2.0 | Meta's weights, Hugging Face's ONNX conversion |
| MI-GAN (Object remover) | MIT | Code and weights |
| Real-ESRGAN general x4v3 (Upscaler) | BSD 3-Clause | Weights checked equal to the official ones |
| Depth Anything V2 Small (Depth) | Apache 2.0 | Only the Small model is Apache 2.0 |
| Hybrid Transformer Demucs (Vocal remover) | MIT | Meta's code and weights |
| Opus-MT (translator) | CC-BY 4.0 | University of Helsinki; converted to ONNX and quantized by Xenova |
Settings' About card lists them under Built with, with links.
Why the sizes differ between screens
Octoolo shows the same download in two ways. The Photo Editor's AI window, the vocal remover and the Translate panel count 1 MB as 1,000,000 bytes and include the AI runtime the first time (the background remover: Download (199 MB), 183 MB without the runtime). Settings and the FFmpeg screen count 1 MB as 1,048,576 bytes and show each part alone (FFmpeg: 77 MB for 80.7 million bytes; the background remover: 175 MB). Both are the same files. Once a part is in, Settings shows its size on disk instead (Ready · N MB), which for FFmpeg and the AI runtime (unpacked) is more than the download.
| Part | Bytes | Decimal MB | As Settings shows it |
|---|---|---|---|
| FFmpeg | 80,726,424 | 80.7 MB | 77 MB |
| AI runtime | 15,371,975 | 15.4 MB | 15 MB (34 MB on disk) |
| Background remover | 183,314,288 | 183.3 MB | 175 MB |
| Object selection | 78,004,244 | 78.0 MB | 74 MB |
| Object remover | 28,079,181 | 28.1 MB | 27 MB |
| Upscaler | 4,866,417 | 4.9 MB | 4.6 MB |
| Depth | 49,642,442 | 49.6 MB | 47 MB |
| Vocal remover | 91,312,383 | 91.3 MB | 87 MB |
Troubleshooting downloads
"The download failed: Could not reach the download server: …"
The PC could not connect to the site (no internet, a firewall, a proxy, or the site is down). Check the connection and that the site in "Firewalls, proxies and which sites are contacted" is allowed, then press Download (or Try again) again. It goes on from where it stopped.
"The download failed: The download server refused: …"
The site answered with an error (for example blocked by a network filter, or temporarily unavailable). Try again later, or from another network. If it keeps failing for everyone, tell the Octoolo team.
"The download failed: The connection broke: …"
The connection dropped during the download. Press Download again: it goes on from where it stopped.
"The download failed: the file arrived damaged (its checksum did not match). Try again."
What arrived is not the exact file Octoolo expects (a broken connection, or something on the network changed it). The bad file was deleted. Press Download again; on a network that alters downloads (some security filters), use another network.
"The download failed: the download is bigger than it should be."
The site sent more than the pinned file. The partial file was deleted. Try again; if it repeats, tell the Octoolo team.
"The download was stopped."
Stop or Cancel was pressed (or the download window was closed). What came is kept; Download goes on from there. A download cut off by closing Octoolo shows no message: it also goes on from where it stopped the next time.
"The download failed: Could not put … in place" or "… is it in use?"
Octoolo could not move the finished files into their folder, usually because something has them open (an antivirus scan, or the part is in use). Close Octoolo, start it again, and download again.
"This needs a download first (N MB)."
An AI feature was used whose part is not downloaded (for example after removing it in Settings). Download it from the feature's window or from Settings › Downloaded parts.
"The AI runtime did not load: …"
ONNX Runtime's DLL could not be loaded. In Settings › Downloaded parts, Remove the AI runtime, restart Octoolo, and download it again with the feature. If it keeps failing, send the message to the Octoolo team.
An AI tool is slow
It is running on the processor: the background remover and the translator always do; the others do when the PC has no DirectX 12 graphics card or the card failed on that model. A few seconds per photo is normal. Closing other heavy apps helps.
The screen went black for a moment while an AI tool ran
Windows reset the graphics driver because the card was busy (see "The graphics driver reset risk on busy graphics cards"). Nothing is lost: the AI goes on on the processor, and the Photo Editor restores itself. Close games and other heavy graphics work while using AI tools.
Limits and what it cannot do
- The installer does not include FFmpeg or the AI; a PC that never goes online cannot get them. Octoolo has no way to import them from a file or another folder.
- FFmpeg cannot be removed from Settings; the AI parts and translator directions can.
- There is no choice between graphics card and processor in Settings: Octoolo decides per model.
- The translator never uses the graphics card.
- Octoolo has no proxy settings of its own.
- Depth is listed in Settings, but no tool uses it in 0.8.0.
- Image to text cannot add recognition languages itself: that is done in Windows' settings.