ComfyUI on Thumper
ComfyUI is the most popular node-based image generation tool in the Thumper catalog. This guide covers everything from installation to advanced GPU tuning — whether you’re migrating from a manual setup or starting fresh.
Manual vs Thumper Install
Installing ComfyUI manually requires navigating Python environments, model downloads, custom node dependencies, and GPU driver configuration. Thumper automates the error-prone steps while preserving full access to the ComfyUI interface.
| Step | Manual Install | Thumper Install | Time Saved |
|---|---|---|---|
| 1. Clone repository | git clone + cd | Click Install | ~1 min |
| 2. Create Python venv | python -m venv + activate | Automatic | ~2 min |
| 3. Install PyTorch | pip install torch (GPU-specific) | GPU auto-detected | ~5 min |
| 4. Install dependencies | pip install -r requirements.txt | Automatic | ~3 min |
| 5. Download models | Manual HF/CivitAI download | Model pack auto-download | ~10 min |
| 6. Place models in correct dirs | Copy to checkpoints/, vae/, etc. | Symlinked automatically | ~5 min |
| 7. Configure GPU flags | Research + set env vars | Platform patches applied | ~15 min |
What Thumper automates for you:
- Python virtual environment creation and isolation
- GPU detection and correct PyTorch variant selection (CUDA, ROCm, MPS, CPU)
- Model pack download with resume support and SHA-256 verification
- Symlink-based model placement so models are shared across apps
- Platform-specific launch flags and environment variables
- Health checks, process management, and clean shutdown
What stays the same — you still have full control over:
- The ComfyUI web interface (nodes, workflows, queue)
- Custom node installation and management
- Workflow creation, editing, and sharing
- Prompt engineering and generation settings
- Direct file system access to outputs and models
- ComfyUI’s API for scripting and automation
Model Packs
ComfyUI ships with the SDXL Starter model pack by default. This includes the SDXL Base checkpoint (~6.5 GB), SDXL Refiner, and an FP16 VAE — everything needed to generate 1024×1024 images out of the box.
Switching Model Packs
To switch to a different pack (e.g., SD 1.5, Flux, or a community pack), open the app detail page and click Change Model Pack. The new pack downloads alongside the existing one; you can remove the old pack from Settings → Storage.
Adding Individual Models
You can add models outside of packs by placing weight files directly in the Thumper model store. Thumper will symlink them into ComfyUI’s expected directories on next launch.
# Default model store location~/.local/share/tr-desktop/models/# Subdirectories map to ComfyUI model types:checkpoints/ # Main diffusion models (.safetensors)vae/ # VAE decodersloras/ # LoRA adapterscontrolnet/ # ControlNet modelsclip/ # CLIP text encoders
HuggingFace Cache Linking
If you already have models in your HuggingFace cache (~/.cache/huggingface/hub/), Thumper discovers them automatically. They appear in the Local Cache tab on the Models page — no need to download again.
Using Custom LoRAs
Trained a LoRA on your own art style? Place the .safetensors file in ComfyUI's models/loras/ directory and reference it with a LoRA Loader node. See the Image Fine-Tuning Guide for training workflows, output formats, and strength recommendations.
Workflow Import
When you import a workflow (drag-and-drop a .json or .png with embedded metadata), Thumper resolves model references automatically using a 5-step process:
- Manifest match — checks if the model is declared in the app’s .thumper.yaml manifest
- Model pack match — searches across all installed model packs by filename and hash
- CivitAI API lookup — queries the CivitAI API by model name or hash for download URLs
- HuggingFace API lookup — searches HuggingFace repositories for matching weight files
- User prompt — if no match is found, you’re asked to provide the model manually
After resolution, a summary dialog shows which models were found, which need downloading, and estimated download sizes. You can approve or skip individual models before proceeding.
Custom Nodes
Custom nodes extend ComfyUI with new capabilities — upscalers, prompt enhancers, ControlNet preprocessors, and more.
Manifest-Managed Nodes
The Thumper manifest can declare custom nodes that are installed automatically during app setup. These are cloned into the custom_nodes directory and their Python dependencies are installed in the app’s virtual environment.
Manual Installation
You can also install custom nodes manually by cloning them into the custom_nodes directory. On next launch, ComfyUI will pick them up:
cd ~/.local/share/tr-desktop/apps/comfyui/custom_nodes/git clone https://github.com/author/ComfyUI-SomeNode.git# Restart ComfyUI to load the new node
ThumperPromptEnhance
The built-in ThumperPromptEnhance node runs a local Qwen3-4B GGUF model (~2.4 GB) on CPU to enhance your prompts. It replaces heavy GPU-based prompt enhancers that would compete for VRAM with your diffusion model.
Custom Node Directory Structure
custom_nodes/thumper_autoload/__init__.pyprompt_enhance.py # ThumperPromptEnhance nodeComfyUI-Manager/ # Popular node managerComfyUI-Impact-Pack/ # Detection, segmentation... # Your additional nodes
GPU-Specific Tips
Thumper auto-detects your GPU and applies the right launch flags, but understanding the details helps with troubleshooting and performance tuning.
| GPU | Status | Backend | Image Gen | LLM Speed | Notes |
|---|---|---|---|---|---|
| RTX 4090 (24 GB) | Full | CUDA 12.4 | ~3s | ~120 tok/s | Fastest consumer GPU |
| RTX 4070 (12 GB) | Full | CUDA 12.4 | ~8s | ~80 tok/s | Great balance of price/performance |
| RTX 3060 (12 GB) | Full | CUDA 11.8 | ~15s | ~45 tok/s | 12 GB VRAM at budget price |
| GTX 1660 (6 GB) | Partial | CUDA 11.8 | ~30s | ~20 tok/s | 6 GB limits model size |
| RX 7900 XT (20 GB) | Full | ROCm 6.2 | ~6s | ~90 tok/s | Best AMD option, large VRAM |
| RX 7600 (8 GB) | Full | ROCm 6.2 | ~18s | ~40 tok/s | Budget AMD with ROCm support |
| Radeon 780M APU (8 GB shared) | Partial | ROCm 6.2 | ~45s | ~15 tok/s | BF16 only, 5-min MIOpen warmup |
| Arc A770 (16 GB) | Partial | oneAPI/IPEX | ~20s | ~35 tok/s | Requires oneAPI runtime |
| M2 Pro (16 GB unified) | Full | MPS (Metal) | ~12s | ~50 tok/s | Unified memory, no discrete VRAM limit |
| M1 (8 GB unified) | Partial | MPS (Metal) | ~35s | ~25 tok/s | 8 GB tight for SDXL |
| M3 Max (36 GB unified) | Full | MPS (Metal) | ~8s | ~70 tok/s | Runs large models easily |
| CPU only (no GPU) | Partial | CPU fallback | ~180s | ~5 tok/s | Works but 10-50x slower |
NVIDIA (CUDA)
- Works out of the box with CUDA 11.8+ and driver 525+
- FP16 is the default precision — fastest for most cards
- For cards with 4 GB VRAM, Thumper applies
--lowvramautomatically - xformers is installed when available for additional memory savings
AMD Discrete GPU (ROCm)
- Requires ROCm 5.7+ (or TheRock nightly for gfx1150)
- Thumper sets
HSA_OVERRIDE_GFX_VERSIONfor unsupported GPU IDs - First run may be slow while MIOpen builds its Find-DB (~5–8 min)
# Key env vars set by Thumper for AMD dGPU:HSA_OVERRIDE_GFX_VERSION=11.0.0MIOPEN_FIND_MODE=2 # FAST mode (skips re-benchmark)HIP_VISIBLE_DEVICES=0
AMD APU (Integrated Graphics)
AMD APUs share system RAM between CPU and GPU. This requires careful memory management:
- Thumper runs the text encoder on CPU to free GPU memory for diffusion + VAE
- Smart memory (default) keeps the diffusion model cached between stages
- Use BF16 precision — FP16 causes NaN in DiT attention due to overflow
--disable-smart-memoryis only needed if a model requires GPU text encoding
--lowvram on AMD APU. Per-layer offload shuffles data between the same physical RAM, resulting in ~5% GPU utilization and generation times 10–20x slower than expected.Apple Silicon (MPS)
- Uses Metal Performance Shaders via PyTorch’s MPS backend
- FP32 fallback may be needed for some operations (ComfyUI handles this automatically)
- Unified memory means no explicit VRAM limit — macOS manages allocation
- M1/M2/M3 Pro/Max/Ultra chips work well; base M1 with 8 GB RAM is tight for SDXL
Troubleshooting
Common issues and how to fix them:
| Symptom | Cause | Fix |
|---|---|---|
| Install hangs at pip step | Slow network or disk full | Check 15 GB free space; retry on better connection |
| "CUDA out of memory" error | Model too large for GPU VRAM | Switch to a smaller model pack or enable --lowvram (NVIDIA only) |
| Black or corrupt images | FP16 overflow on AMD/APU | Switch to BF16 precision in workflow settings |
| First generation very slow (5+ min) | MIOpen building Find-DB (AMD) | Normal on first run; subsequent runs use cached kernels |
| Port 8188 already in use | Old ComfyUI process not killed | Run ss -tlnp | grep 8188 and kill the stale PID |
| Custom node not appearing | Node not loaded at startup | Restart ComfyUI; check console for import errors |
| Model not found in workflow | Symlink broken or model moved | Re-launch the app to regenerate symlinks |
| Process stuck in "Starting..." state | Health check failing | Open the Console tab for error details; check GPU drivers are installed |