Getting Started

From zero to your first generated image. This should take about 10 to 20 minutes.

Local use only. picoDiffusion is designed to run on your own computer for personal use. It has no user authentication, no access controls, and an open API. Under no circumstances should it be exposed to the internet or used to host image generation for others.

What you need

No GPU? picoDiffusion can run on CPU, but it will be very slow (several minutes per image). It works, but it is not a fun experience. A cheap second-hand GPU with 4GB+ VRAM is a worthwhile investment.
Need help with CUDA setup? If you do not have drivers, Docker, or the container toolkit installed yet, see our CUDA / NVIDIA Setup guide for step-by-step instructions for Ubuntu, Linux Mint, and Debian.

Setup

1

Get the code

If you have git installed, you can clone the repository. This downloads a copy of all the project files to your computer:

git clone https://github.com/lacquerlabs/picodiffusion.git
cd picodiffusion

The first line downloads the project into a folder called picodiffusion. The second line moves your terminal into that folder so the rest of the commands run in the right place.

If you do not have git or prefer not to use it, you can also download the project as a zip file directly from the GitHub page — look for the green Code button and choose Download ZIP. Unzip it and open a terminal inside the folder.

2

Create the cache directories

Make sure your terminal is inside the picodiffusion project directory from step 1. picoDiffusion keeps model files and downloaded data on your computer (not inside the container) so nothing is lost when the container restarts. These commands create the folders it expects to find:

mkdir -p cache/models/checkpoints
mkdir -p cache/models/vae
mkdir -p cache/models/loras
mkdir -p cache/huggingface

mkdir -p creates folders, and the -p means it creates any parent folders along the way too. You only need to do this once. Unless you delete them. You probably do not want to do that.

3

Download a checkpoint

You need at least one Stable Diffusion 1.5 checkpoint. Here are some good ones to start with:

Checkpoint Good for
DreamShaper All-rounder, good at many styles
Deliberate Photorealism and portraits
Counterfeit Anime and illustration
AbsoluteReality Photorealism, highly detailed real-world scenes
Dreamlike Photoreal 2.0 Photorealistic with a slightly dreamy, cinematic quality

Download the .safetensors file and put it in cache/models/checkpoints/. If you haven't started building the container, go ahead and do that (it's in the next step) because that will take some time. Time enough to find a few models to play with! If the container is already running, just refresh the page and the new checkpoint will appear in the dropdown.

Important: Make sure you download checkpoints built for sd1.5 (or 1.4). SDXL and SD 2.x checkpoints will not work with picoDiffusion.
4

Build and start

The easiest way is to use the included Makefile. A Makefile is just a recipe file — it contains shortcuts for longer commands so you do not have to remember them. This one automatically detects whether you have an NVIDIA GPU and sets everything up for you:

make up

That single command builds the Docker image, installs all the Python dependencies (including PyTorch), and starts the container. The first build can take around 5-6 minutes because it is downloading a lot of heavy libraries like PyTorch (~2GB). Docker caches all of this, so subsequent builds are a bit faster.

Some other useful commands you will want to know:

make down   # stop the container
make logs   # show the live log output (press Ctrl+C to stop watching)
make build  # rebuild the container without starting it

If you do not have make installed (some minimal Linux installs do not include it), you can run the Docker commands directly instead. With an NVIDIA GPU:

docker compose -f docker-compose.yml -f docker-compose.gpu.yml up -d --build

The -f flags tell Docker Compose which config files to use — the first is the main config, the second adds GPU passthrough. up means "start the container", -d means "detached" (runs in the background so you get your terminal back), and --build makes sure the image is built first.

Without a GPU (CPU only):

docker compose up -d --build
5

Open the UI

The container should start shortly, upto about 30seconds. Open your web browser and go to http://localhost:8004. If you get a "site cannot be reached" give it a few more seconds and try again. If it still doesn't come up, run `make logs` and see if you can find the error and post it in an issue here. localhost means "this computer" and 8004 is the port picoDiffusion listens on. You should see the interface.

picoDiffusion interface on first load
6

Generate your first image

  1. Select your checkpoint from the dropdown
  2. The default prompt is already filled in — a welsh pembroke corgi. You are welcome.
  3. Click Generate
  4. Wait for the progress bar to complete

The first generation takes longer than usual. Two things are happening: the model is loading into your GPU's memory, and some small config files are being downloaded from HuggingFace (a website that hosts AI model data). This only happens once — after that, everything is cached and each generation is much faster.

picoDiffusion showing a generated image

Optional: add a VAE

If your images look washed out or have dull colours, download a VAE file and put it in cache/models/vae/. Refresh the page and it will appear in the VAE dropdown.

VAE Notes
vae-ft-mse-840000 The go-to VAE for sd1.5. Fixes washed-out colours and improves sharpness with most checkpoints. If you only download one VAE, make it this one. On the HuggingFace page, click the Files tab and download the file ending in .safetensors.

Optional: add LoRAs

LoRAs are small add-on files that modify the checkpoint's style. Download sd1.5 LoRAs from civitai.com and put them in cache/models/loras/. Refresh the page and they will appear in the LoRA dropdown. Check the LoRA's page for its trigger word — you usually need to include it in your prompt.

Here are a couple to get you started:

LoRA Trigger word What it does
50s Panavision Movie ArsMovieStill, Movie Still From Colored 1950s Super Panavision 70 Movie Gives images the look of a 1950s Super Panavision 70mm film. Cinematic colour grading, film grain, vintage framing.
50s Noir Movie ArsMovieStill, 50s Noir Movie Still Black and white film noir aesthetic. Dramatic shadows, high contrast, moody lighting.
60s Psychedelic Movie ArsMovieStill, movie still from a 60s psychedelic movie Vivid, saturated 1960s psychedelic film look. Bold colours, dreamy distortion, retro framing.
Make sure you download the sd1.5 version of each LoRA. Many LoRAs on civitai have multiple versions for different model types (SD1, SDXL, Flux). Look for the version labelled SD1 or sd1.5.

Next steps

Read the guide for a detailed explanation of every control in the UI — what it does, what values to start with, and how to experiment.

Want to run without Docker? If you prefer to run picoDiffusion natively with Python and pip (or want MPS support on Mac), there is an at-your-own-risk native install guide. The Docker setup above is still the recommended path.