ComfyUI runs diffusion models as a node graph: every box is one step, and you can see exactly where the prompt, the model and the sampler meet. That visibility is the reason to use it — and the reason the first hour is confusing.
1. Install
Three official routes. Pick by how much you want to manage:
- Desktop app — download from
comfy.org/download(Windows and macOS). The README calls this “the easiest and best way to use ComfyUI for new users”. - Windows portable —
ComfyUI_windows_portable_nvidia.7z(also_amdand_intel) from the repo’s latest release. Unzip, run the launcher, nothing is installed system-wide. - Command line — needs Python 3.10+:
pip install comfy-cli
comfy install
comfy launch
Installs the CLI, downloads ComfyUI plus ComfyUI-Manager into a folder it picks with you, then starts the server on http://127.0.0.1:8188. Add arguments after a --, e.g. comfy launch -- --cpu.
2. Add a checkpoint
ComfyUI ships no weights. Download v1-5-pruned-emaonly-fp16.safetensors (the file the official first-generation tutorial uses) and drop it here:
ComfyUI/
models/
checkpoints/ <- .safetensors model files go here
vae/
loras/
Same tree in every install: ComfyUI_windows_portable/ComfyUI/models/checkpoints for the portable build. Reload the browser tab afterwards — the loader node reads that folder when the page loads, so a model added mid-session will not appear in the dropdown.
3. Load the default workflow
Press Ctrl + D. That loads the built-in text-to-image graph: Load Checkpoint → CLIP Text Encode (positive and negative) → KSampler → VAE Decode → Save Image.
Check the Load Checkpoint node is pointing at your file, then type a prompt into the top CLIP Text Encode box (the bottom one is the negative prompt).
4. Generate
Click Run, or press Ctrl + Enter. The nodes light up in execution order and the image appears in the Save Image node — and on disk in ComfyUI/output.
5. Where the nodes live
- Double-click empty canvas — search box, fastest way to add a known node.
- Right-click canvas → Add Node — the full categorized menu when you don’t know the name.
- Drag from an output dot and release — a filtered list of nodes that accept that input type.
- Workflow → Browse Templates — official starting graphs for other model families.
Next: generate images with FLUX in a Python script or upscale the result locally.