Why local matters beyond cost
Three reasons to run models yourself rather than uploading.
Confidentiality. A client’s unreleased product, a photograph of a child, a medical image, anything under an agreement. Uploading it to a service means it has left your control under terms you probably have not read, and several services reserve rights to use uploads for improvement.
Cost at volume. Four hundred background removals or upscales through a paid service is a line on an invoice. Locally it is electricity.
Availability. A service that shuts down, changes its terms or raises its prices takes your workflow with it. A model on your disk does not.
The hardware reality, stated plainly
With a discrete GPU (NVIDIA with 8 GB or more of video memory is the comfortable case): everything in this module runs at a usable speed. An inpaint is seconds; an upscale is seconds.
With 4 to 6 GB of video memory: everything still runs, with smaller batch sizes and tiling. An inpaint is tens of seconds.
With integrated graphics or on a CPU only: background removal is two to five seconds and completely practical. Upscaling a 12-megapixel image is one to several minutes and practical for a handful. Diffusion inpainting is one to five minutes per generation, which is slow but workable when you need three fills rather than three hundred.
On Apple Silicon: the unified memory architecture works well and most tools support the Metal backend. An M-series laptop with 16 GB is a capable machine for this.
On a phone: some on-device background removal and upscaling exists; diffusion generally does not, and apps that offer it are usually uploading.
The free stack, by job
Background removal: rembg, installed with pip install rembg. CPU-friendly, batch-capable, several models.
Upscaling: Upscayl, a desktop app with a plain interface and no upload. Or realesrgan-ncnn-vulkan from the command line, which uses Vulkan so it works on AMD, Intel and NVIDIA alike.
Inpainting and generation: Fooocus is the gentlest entry point: one download, sensible defaults, an inpaint mode. AUTOMATIC1111’s web UI is the established general tool. ComfyUI is a node graph, more capable and steeper. Krita’s AI diffusion plugin puts local inpainting directly on a Krita layer with masks, which for an image editor is the most useful integration available anywhere, free or paid.
Colourising: DeOldify, locally or in a free Google Colab notebook.
Denoising: darktable’s profiled denoise, which is not a learned model and is excellent.
Everything else: chaiNNer builds pipelines from community models; OpenModelDB hosts them; Hugging Face hosts the model weights for most of the above along with model cards describing training data and licences.
Google Colab, and what it is for
Colab gives you a Python notebook running on Google’s hardware, with a free tier that includes a GPU for limited sessions. For someone with no graphics card it converts an impossible task into a slow but workable one.
The honest limits: the free tier’s GPU availability varies and can be refused at busy times, sessions disconnect after a period of inactivity and everything not saved is lost, and whatever you upload goes to Google’s machines, which puts it back in the confidentiality category. For personal or public images it is a genuine free route; for client-confidential material it is not local, whatever the notebook is called.
Kaggle offers a similar free notebook environment with GPU hours.
Licences: the part people skip
Models have licences, and they differ substantially.
- Some are permissively licensed for any use including commercial.
- Some carry use restrictions: the RAIL family of licences, used by several well-known image models, permits commercial use while prohibiting specified applications.
- Some are explicitly research-only, and using them for client work breaches the terms.
- Some community fine-tunes have unclear provenance and inherit whatever their base model required, which is often unstated.
The model card on Hugging Face states the licence. Reading it takes two minutes and is the difference between a defensible workflow and one you cannot describe to a client.
This is separate from the copyright status of the training data, which is unsettled and is the subject of the last lesson in this module.
A practical starting setup
For an editor on an ordinary laptop who wants to stop uploading things:
pip install rembg: background removal today.- Upscayl: upscaling today.
- darktable: raw development and denoise today.
- Fooocus or Krita’s AI diffusion plugin: inpainting when you have a spare afternoon to set it up.
That is four installations, no subscription, nothing uploaded, and it covers the large majority of what generative tools are used for in image editing.
The trade you are making
Local models are usually a step behind the best hosted ones. Adobe’s generative fill is more convenient and often produces a better first result than a local Stable Diffusion inpaint. Paid upscalers have better interfaces.
What you get in exchange is control: nothing leaves the machine, nothing depends on a service, nothing costs per image, and you can read what the model was trained on.
For a hobbyist the convenience may well win. For anyone handling other people’s photographs professionally, the ability to say truthfully that a client’s images never left your computer is worth more than a slightly better first attempt, and it is increasingly something clients ask about.
Every lesson here is open. Your progress is recorded once you pass the Design, before Any Software exam.
Check your understanding
A retoucher under a non-disclosure agreement needs to inpaint an unreleased product photograph and has no graphics card. Which option satisfies the agreement?
Pick the one you would defend. Your answer stays private.
Stuck on something?Ask Neema, your AI tutor