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.

StepManual InstallThumper InstallTime Saved
1. Clone repositorygit clone + cdClick Install~1 min
2. Create Python venvpython -m venv + activateAutomatic~2 min
3. Install PyTorchpip install torch (GPU-specific)GPU auto-detected~5 min
4. Install dependenciespip install -r requirements.txtAutomatic~3 min
5. Download modelsManual HF/CivitAI downloadModel pack auto-download~10 min
6. Place models in correct dirsCopy to checkpoints/, vae/, etc.Symlinked automatically~5 min
7. Configure GPU flagsResearch + set env varsPlatform 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.

bash
# Default model store location
~/.local/share/tr-desktop/models/
# Subdirectories map to ComfyUI model types:
checkpoints/ # Main diffusion models (.safetensors)
vae/ # VAE decoders
loras/ # LoRA adapters
controlnet/ # ControlNet models
clip/ # 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:

  1. Manifest match — checks if the model is declared in the app’s .thumper.yaml manifest
  2. Model pack match — searches across all installed model packs by filename and hash
  3. CivitAI API lookup — queries the CivitAI API by model name or hash for download URLs
  4. HuggingFace API lookup — searches HuggingFace repositories for matching weight files
  5. 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.

If a model can’t be resolved automatically in any of the first four steps, a dialog appears asking you to provide a download URL. Paste a direct link from HuggingFace or CivitAI and Thumper will download and place the model for you.

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:

bash
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__.py
prompt_enhance.py # ThumperPromptEnhance node
ComfyUI-Manager/ # Popular node manager
ComfyUI-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.

GPUStatusBackendImage GenLLM SpeedNotes
RTX 4090 (24 GB)FullCUDA 12.4~3s~120 tok/sFastest consumer GPU
RTX 4070 (12 GB)FullCUDA 12.4~8s~80 tok/sGreat balance of price/performance
RTX 3060 (12 GB)FullCUDA 11.8~15s~45 tok/s12 GB VRAM at budget price
GTX 1660 (6 GB)PartialCUDA 11.8~30s~20 tok/s6 GB limits model size
RX 7900 XT (20 GB)FullROCm 6.2~6s~90 tok/sBest AMD option, large VRAM
RX 7600 (8 GB)FullROCm 6.2~18s~40 tok/sBudget AMD with ROCm support
Radeon 780M APU (8 GB shared)PartialROCm 6.2~45s~15 tok/sBF16 only, 5-min MIOpen warmup
Arc A770 (16 GB)PartialoneAPI/IPEX~20s~35 tok/sRequires oneAPI runtime
M2 Pro (16 GB unified)FullMPS (Metal)~12s~50 tok/sUnified memory, no discrete VRAM limit
M1 (8 GB unified)PartialMPS (Metal)~35s~25 tok/s8 GB tight for SDXL
M3 Max (36 GB unified)FullMPS (Metal)~8s~70 tok/sRuns large models easily
CPU only (no GPU)PartialCPU fallback~180s~5 tok/sWorks 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 --lowvram automatically
  • 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_VERSION for unsupported GPU IDs
  • First run may be slow while MIOpen builds its Find-DB (~5–8 min)
bash
# Key env vars set by Thumper for AMD dGPU:
HSA_OVERRIDE_GFX_VERSION=11.0.0
MIOPEN_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-memory is only needed if a model requires GPU text encoding
NEVER use --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:

SymptomCauseFix
Install hangs at pip stepSlow network or disk fullCheck 15 GB free space; retry on better connection
"CUDA out of memory" errorModel too large for GPU VRAMSwitch to a smaller model pack or enable --lowvram (NVIDIA only)
Black or corrupt imagesFP16 overflow on AMD/APUSwitch 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 useOld ComfyUI process not killedRun ss -tlnp | grep 8188 and kill the stale PID
Custom node not appearingNode not loaded at startupRestart ComfyUI; check console for import errors
Model not found in workflowSymlink broken or model movedRe-launch the app to regenerate symlinks
Process stuck in "Starting..." stateHealth check failingOpen the Console tab for error details; check GPU drivers are installed