{"course":{"slug":"ai-images","title":"Image Generation, in Practice","url":"https://addaly.com/learn/ai-images","level":"beginner","track":"create"},"lesson":{"slug":"hosted-or-local","title":"Three routes to a GPU, and the arithmetic for each","url":"https://addaly.com/learn/ai-images/hosted-or-local","position":3,"of":69,"minutes":9,"answer":"The choice between a hosted service, your own card and a free cloud notebook is decided by how many images you make per month and how much control you need.","keyIdea":"The choice between a hosted service, your own card and a free cloud notebook is decided by how many images you make per month and how much control you need, and the crossover is usually somewhere around a few thousand images."},"body":{"format":"markdown","text":"## The same picture, three different bills\n\nThere are three ways to get a diffusion model to run, and people pick between them on feel when the decision is arithmetic.\n\n**Route one: a hosted service.** You type into a website or call an API and pay per image. Typical published prices at the time of writing sit between roughly $0.01 and $0.06 an image depending on model and resolution, with the cheap end being small distilled models and the expensive end being the current flagship. No installation, no driver, no disk space. Your phone is enough.\n\n**Route two: your own graphics card.** You install the software once and then generate for the cost of electricity: about 250 watts for a few seconds an image, which is a rounding error. The entry barrier is the card. Useful floors:\n\n- **4 GB VRAM**: Stable Diffusion 1.5 at 512×512. Slow, dated, but it works.\n- **8 GB**: SDXL at 1024×1024, comfortably. SD 1.5 at speed. FLUX only with quantisation and offloading, at maybe 40 seconds an image.\n- **12 to 16 GB**: FLUX dev in fp8, SDXL with several adapters loaded at once, LoRA training.\n- **24 GB**: everything, including training at sensible speeds.\n\nAn Apple Silicon Mac works through Metal rather than CUDA. It is slower than an equivalent Nvidia card (often three to five times) but unified memory means a 16 GB MacBook can load models that would not fit an 8 GB desktop card. It is a real option, not a consolation prize.\n\n**Route three: somebody else's GPU, free.** Google Colab's free tier gives you a T4 with 16 GB, with sessions that disconnect after a few hours and no guarantee of availability. Kaggle Notebooks give roughly 30 GPU-hours a week on a T4 pair or a P100, which is more generous and less advertised. Hugging Face Spaces run other people's apps on shared hardware, and the ZeroGPU tier gives short bursts of an A100 for free. All three are free and all three have the same catch: nothing persists. You reinstall every session, you re-download the model every session, and a 23 GB checkpoint download eats twenty minutes of your allowance before you have made a single picture.\n\n## Where the crossover sits\n\nDo the sum before you buy anything. Suppose you make 200 images a month at $0.03. That is $6 a month, $72 a year. A used card with 12 GB of VRAM costs several hundred dollars. At that volume, hosting is cheaper for years.\n\nNow suppose you are exploring: 40 variations to find one frame, 15 frames a week. That is 2,400 images a month, $72 a month, and the card pays for itself inside a year while also letting you run things no service offers.\n\n> Figure: A year of images: paying per image against owning the card. Line chart of Cost over a year, in dollars against Images generated per month: Hosted, three cents an image (200, 72) (600, 216) (1200, 432) (1800, 648) (2400, 864); A used 12 GB card, bought once (200, 400) (600, 400) (1200, 400) (1800, 400) (2400, 400). The lines cross a little above a thousand images a month. Below that, hosting is cheaper for years. Above it, the card pays for itself inside a year, and most people who buy one do it for the control rather than the arithmetic.\n\nThe honest version of this is that most people who buy a card do it for the second reason and then discover the third: **control**. A hosted service decides which model versions exist, what the safety filter blocks, and whether your workflow still runs next Tuesday. A card you own does none of that to you.\n\n## The constraint nobody mentions\n\nVRAM is not the only limit; it is just the one that produces a clear error message. The quieter limit is **system RAM during model loading**. Loading a 23 GB checkpoint usually means reading it into system memory first, and a machine with 8 GB of RAM will swap to disk and take four minutes to do what a 32 GB machine does in twenty seconds. People blame the GPU for this constantly. If your first generation after a model switch is glacial and later ones are fine, it is loading, not inference.\n\nThe second quiet limit is **disk**. A working local setup with three checkpoints, a VAE, a dozen LoRAs and a control model collection passes 100 GB without effort. On a 256 GB laptop that becomes a weekly problem.\n\n## What to do first\n\nDo not buy anything. Spend one week on a free Kaggle notebook or a hosted service with a small credit, and count two things: how many images you generate, and how many times you are blocked by something the platform will not let you do. Those two numbers pick your route, and they are cheaper to collect than to guess.\n\n## The hybrid most working people end up with\n\nAlmost nobody stays on one route. The arrangement that settles out after a few months looks like this, and it is worth arriving at deliberately rather than by accident:\n\n- **Exploration on a fast cheap model**, hosted or local, where you are making forty frames to find one composition and the quality of each is irrelevant.\n- **The final render wherever the quality is**, which for a flagship look means a hosted API, and for anything the filter dislikes means your own weights.\n- **Repair and compositing in a raster editor**, which needs no GPU at all. GIMP, Krita and Photopea run on the laptop you already have, and a surprising share of the finished work happens there rather than in any generator.\n\nSplitting the job this way also protects you from the thing that breaks single-route setups: a service changing its pricing, its model or its policy. If exploration and final render are already two different tools, replacing one of them is an afternoon rather than a crisis.\n\nOne caution about the free cloud notebooks, because it catches people who are being careful about money. Colab and Kaggle both restrict some categories of use in their terms, and both will disconnect a session that looks unattended or permanently loaded. Using them interactively within the published limits is fine and intended. Wiring one up as a standing server for a client is not, and losing the account takes the project with it."},"check":{"question":"Somebody generates about 150 images a month and keeps hitting a hosted service's refusal filter on ordinary historical war imagery for a school project. Which factor should decide their next step?","options":[{"text":"Control, not cost: at this volume hosting is a few dollars a month, so the real question is whose policy decides what they may make.","correct":true},{"text":"Cost, because 150 images a month is a steady enough workload that owning the hardware outright will repay the purchase price of a mid-range graphics card within a reasonable period.","correct":false,"tempting":"Treats the decision as volume-driven when 150 images at a few cents each is a few dollars a month; a card would take many years to repay at that rate."},{"text":"They should move to a free Colab or Kaggle notebook, which removes the running cost and the platform's content filter at the same time and therefore addresses both halves of the problem at once.","correct":false,"tempting":"Half right about the filter but ignores persistence: nothing survives the session, so every run re-downloads the checkpoint and the setup, which is a poor fit for steady low-volume work."},{"text":"They should rewrite the prompts, since a refusal is a reliable signal that the wording was ambiguous and a clearer, more specific description will pass the check.","correct":false,"tempting":"Assumes filters are precise. They combine a keyword layer with an output classifier and are deliberately over-inclusive, so ordinary historical language trips them regardless of intent."}]},"prev":{"slug":"presets-and-recipes","title":"A preset is somebody else's workflow, frozen","url":"https://addaly.com/learn/ai-images/presets-and-recipes"},"next":{"slug":"what-the-files-are","title":"A model is four kinds of file, and mixing them up wastes an evening","url":"https://addaly.com/learn/ai-images/what-the-files-are"},"authorship":"Founder and series editor: Dr Mustafa Mun. Written by AI models to a written standard. Exam keys checked blind by a second model: 3,665 of 3,666 agreed. Academic review invited.","review":{"status":"Draft, open for academic review"},"cite":"Addaly (2026) 'Three routes to a GPU, and the arithmetic for each', in Image Generation, in Practice. Edited by M. Mun. Addaly. Available at: https://addaly.com/learn/ai-images/hosted-or-local (Accessed: 13 October 2026).","licence":{"name":"CC BY-NC-SA 4.0","url":"https://creativecommons.org/licenses/by-nc-sa/4.0/"},"reader":{"schema":1,"title":"Three routes to a GPU, and the arithmetic for each","courseTitle":"Image Generation, in Practice","module":{"index":1,"slug":"the-kit","title":"The kit, and what each piece of it costs you"},"answer":null,"keyIdea":"The choice between a hosted service, your own card and a free cloud notebook is decided by how many images you make per month and how much control you need, and the crossover is usually somewhere around a few thousand images.","hero":{"kind":"figure","figure":{"t":"figure","label":"Figure","figure":{"type":"line","title":"A year of images: paying per image against owning the card","series":[{"label":"Hosted, three cents an image","points":[[200,72],[600,216],[1200,432],[1800,648],[2400,864]]},{"label":"A used 12 GB card, bought once","points":[[200,400],[600,400],[1200,400],[1800,400],[2400,400]]}],"xLabel":"Images generated per month","yLabel":"Cost over a year, in dollars","caption":"The lines cross a little above a thousand images a month. Below that, hosting is cheaper for years. Above it, the card pays for itself inside a year, and most people who buy one do it for the control rather than the arithmetic."},"alt":"Figure: A year of images: paying per image against owning the card. Line chart of Cost over a year, in dollars against Images generated per month: Hosted, three cents an image (200, 72) (600, 216) (1200, 432) (1800, 648) (2400, 864); A used 12 GB card, bought once (200, 400) (600, 400) (1200, 400) (1800, 400) (2400, 400). The lines cross a little above a thousand images a month. Below that, hosting is cheaper for years. Above it, the card pays for itself inside a year, and most people who buy one do it for the control rather than the arithmetic."}},"blocks":[{"t":"h2","id":"the-same-picture-three-different-bills","runs":[{"text":"The same picture, three different bills"}]},{"t":"p","runs":[{"text":"There are three ways to get a diffusion model to run, and people pick between them on feel when the decision is arithmetic."}]},{"t":"p","runs":[{"text":"Route one: a hosted service.","b":true},{"text":" You type into a website or call an API and pay per image. Typical published prices at the time of writing sit between roughly $0.01 and $0.06 an image depending on model and resolution, with the cheap end being small distilled models and the expensive end being the current flagship. No installation, no driver, no disk space. Your phone is enough."}]},{"t":"p","runs":[{"text":"Route two: your own graphics card.","b":true},{"text":" You install the software once and then generate for the cost of electricity: about 250 watts for a few seconds an image, which is a rounding error. The entry barrier is the card. Useful floors:"}]},{"t":"ul","items":[[{"text":"4 GB VRAM","b":true},{"text":": Stable Diffusion 1.5 at 512×512. Slow, dated, but it works."}],[{"text":"8 GB","b":true},{"text":": SDXL at 1024×1024, comfortably. SD 1.5 at speed. FLUX only with quantisation and offloading, at maybe 40 seconds an image."}],[{"text":"12 to 16 GB","b":true},{"text":": FLUX dev in fp8, SDXL with several adapters loaded at once, LoRA training."}],[{"text":"24 GB","b":true},{"text":": everything, including training at sensible speeds."}]]},{"t":"p","runs":[{"text":"An Apple Silicon Mac works through Metal rather than CUDA. It is slower than an equivalent Nvidia card (often three to five times) but unified memory means a 16 GB MacBook can load models that would not fit an 8 GB desktop card. It is a real option, not a consolation prize."}]},{"t":"p","runs":[{"text":"Route three: somebody else’s GPU, free.","b":true},{"text":" Google Colab’s free tier gives you a T4 with 16 GB, with sessions that disconnect after a few hours and no guarantee of availability. Kaggle Notebooks give roughly 30 GPU-hours a week on a T4 pair or a P100, which is more generous and less advertised. Hugging Face Spaces run other people’s apps on shared hardware, and the ZeroGPU tier gives short bursts of an A100 for free. All three are free and all three have the same catch: nothing persists. You reinstall every session, you re-download the model every session, and a 23 GB checkpoint download eats twenty minutes of your allowance before you have made a single picture."}]},{"t":"h2","id":"where-the-crossover-sits","runs":[{"text":"Where the crossover sits"}]},{"t":"p","runs":[{"text":"Do the sum before you buy anything. Suppose you make 200 images a month at $0.03. That is $6 a month, $72 a year. A used card with 12 GB of VRAM costs several hundred dollars. At that volume, hosting is cheaper for years."}]},{"t":"p","runs":[{"text":"Now suppose you are exploring: 40 variations to find one frame, 15 frames a week. That is 2,400 images a month, $72 a month, and the card pays for itself inside a year while also letting you run things no service offers."}]},{"t":"p","runs":[{"text":"The honest version of this is that most people who buy a card do it for the second reason and then discover the third: "},{"text":"control","b":true},{"text":". A hosted service decides which model versions exist, what the safety filter blocks, and whether your workflow still runs next Tuesday. A card you own does none of that to you."}]},{"t":"h2","id":"the-constraint-nobody-mentions","runs":[{"text":"The constraint nobody mentions"}]},{"t":"p","runs":[{"text":"VRAM is not the only limit; it is just the one that produces a clear error message. The quieter limit is "},{"text":"system RAM during model loading","b":true},{"text":". Loading a 23 GB checkpoint usually means reading it into system memory first, and a machine with 8 GB of RAM will swap to disk and take four minutes to do what a 32 GB machine does in twenty seconds. People blame the GPU for this constantly. If your first generation after a model switch is glacial and later ones are fine, it is loading, not inference."}]},{"t":"p","runs":[{"text":"The second quiet limit is "},{"text":"disk","b":true},{"text":". A working local setup with three checkpoints, a VAE, a dozen LoRAs and a control model collection passes 100 GB without effort. On a 256 GB laptop that becomes a weekly problem."}]},{"t":"h2","id":"what-to-do-first","runs":[{"text":"What to do first"}]},{"t":"p","runs":[{"text":"Do not buy anything. Spend one week on a free Kaggle notebook or a hosted service with a small credit, and count two things: how many images you generate, and how many times you are blocked by something the platform will not let you do. Those two numbers pick your route, and they are cheaper to collect than to guess."}]},{"t":"h2","id":"the-hybrid-most-working-people-end-up-with","runs":[{"text":"The hybrid most working people end up with"}]},{"t":"p","runs":[{"text":"Almost nobody stays on one route. The arrangement that settles out after a few months looks like this, and it is worth arriving at deliberately rather than by accident:"}]},{"t":"ul","items":[[{"text":"Exploration on a fast cheap model","b":true},{"text":", hosted or local, where you are making forty frames to find one composition and the quality of each is irrelevant."}],[{"text":"The final render wherever the quality is","b":true},{"text":", which for a flagship look means a hosted API, and for anything the filter dislikes means your own weights."}],[{"text":"Repair and compositing in a raster editor","b":true},{"text":", which needs no GPU at all. GIMP, Krita and Photopea run on the laptop you already have, and a surprising share of the finished work happens there rather than in any generator."}]]},{"t":"p","runs":[{"text":"Splitting the job this way also protects you from the thing that breaks single-route setups: a service changing its pricing, its model or its policy. If exploration and final render are already two different tools, replacing one of them is an afternoon rather than a crisis."}]},{"t":"p","runs":[{"text":"One caution about the free cloud notebooks, because it catches people who are being careful about money. Colab and Kaggle both restrict some categories of use in their terms, and both will disconnect a session that looks unattended or permanently loaded. Using them interactively within the published limits is fine and intended. Wiring one up as a standing server for a client is not, and losing the account takes the project with it."}]}],"check":{"question":[{"text":"Somebody generates about 150 images a month and keeps hitting a hosted service’s refusal filter on ordinary historical war imagery for a school project. Which factor should decide their next step?"}],"options":[{"text":[{"text":"Control, not cost: at this volume hosting is a few dollars a month, so the real question is whose policy decides what they may make."}],"correct":true,"tempting":null},{"text":[{"text":"Cost, because 150 images a month is a steady enough workload that owning the hardware outright will repay the purchase price of a mid-range graphics card within a reasonable period."}],"correct":false,"tempting":[{"text":"Treats the decision as volume-driven when 150 images at a few cents each is a few dollars a month; a card would take many years to repay at that rate."}]},{"text":[{"text":"They should move to a free Colab or Kaggle notebook, which removes the running cost and the platform’s content filter at the same time and therefore addresses both halves of the problem at once."}],"correct":false,"tempting":[{"text":"Half right about the filter but ignores persistence: nothing survives the session, so every run re-downloads the checkpoint and the setup, which is a poor fit for steady low-volume work."}]},{"text":[{"text":"They should rewrite the prompts, since a refusal is a reliable signal that the wording was ambiguous and a clearer, more specific description will pass the check."}],"correct":false,"tempting":[{"text":"Assumes filters are precise. They combine a keyword layer with an output classifier and are deliberately over-inclusive, so ordinary historical language trips them regardless of intent."}]}],"order":[3,1,2,0],"why":null},"prev":{"slug":"presets-and-recipes","title":"A preset is somebody else’s workflow, frozen","minutes":8},"next":{"slug":"what-the-files-are","title":"A model is four kinds of file, and mixing them up wastes an evening","minutes":8}}}