A practical guide to generating images with ComfyUI on the Haiven server.
Open https://comfyui.haiven.local in your browser.
ComfyUI loads with a basic text-to-image workflow. The default nodes are:
sd_xl_base_1.0.safetensors)blurry, low quality, watermark in the negative nodeCtrl+Enter)From your local machine:
# Checkpoints
scp -P 25636 ~/Downloads/model.safetensors \
elijahryoung@10.0.0.42:/mnt/models/image/checkpoints/
# LoRAs
scp -P 25636 ~/Downloads/lora.safetensors \
elijahryoung@10.0.0.42:/mnt/models/image/loras/
After upload, click the refresh button (🔄) next to model dropdowns.
ComfyUI uses symlinks to access models stored in /mnt/models/image/. The following model directories are available:
| ComfyUI Path | Symlink Target | Purpose |
|---|---|---|
models/checkpoints |
/mnt/models/image/checkpoints |
Base models (SD 1.5, SDXL, etc.) |
models/loras |
/mnt/models/image/loras |
LoRA adapters |
models/vae |
/mnt/models/image/vae |
VAE models |
models/controlnet |
/mnt/models/image/controlnet |
ControlNet models |
models/clip |
/mnt/models/image/clip |
CLIP text encoders |
models/clip_vision |
/mnt/models/image/clip_vision |
CLIP vision encoders (for image prompts) |
models/embeddings |
/mnt/models/image/embeddings |
Textual inversions |
models/unet |
/mnt/models/image/unet |
UNet models |
models/diffusion_models |
/mnt/models/image/diffusion_models |
Diffusion models |
models/text_encoders |
/mnt/models/image/text_encoders |
Text encoder models |
If a new model type folder is needed (e.g., clip_vision):
# Create symlink as the comfyui user
sudo ln -sfn /mnt/models/image/<folder_name> /opt/comfyui/ComfyUI/models/<folder_name>
# Verify the symlink
ls -la /opt/comfyui/ComfyUI/models/<folder_name>
| Model | Type | Best For |
|---|---|---|
sd_xl_base_1.0 |
SDXL | General purpose, high quality |
sd_xl_turbo_1.0_fp16 |
SDXL Turbo | Fast generation (4-8 steps) |
juggernautXL_v8Rundiffusion |
SDXL | Photorealistic |
playground-v2.5-1024px-aesthetic |
SDXL | Artistic, aesthetic |
animaPencilXL_v500 |
SDXL | Anime/illustration |
realisticStockPhoto_v20 |
SDXL | Stock photo style |
photon_v1 |
SD 1.5 | Fast, lightweight |
euler_ancestral or dpmpp_2mkarraseuler_ancestraleuler_ancestral or dpmpp_2m| Key | Action |
|---|---|
Ctrl+Enter |
Queue prompt |
Ctrl+Shift+Enter |
Queue prompt (front of queue) |
Ctrl+Z |
Undo |
Ctrl+Y |
Redo |
Ctrl+S |
Save workflow |
Ctrl+O |
Load workflow |
Space + drag |
Pan canvas |
Ctrl+Scroll |
Zoom |
Backspace/Delete |
Delete selected node |
Ctrl+M |
Mute/unmute node |
Ctrl+B |
Bypass node |
Ctrl+S → saves to browser's downloads as .jsonCtrl+O → select .json file.json file onto canvasWorkflow data is embedded in generated PNG images. Share the image, and others can drag it into ComfyUI to get your exact setup.
Generated images are saved to:
- Server path: /mnt/storage/generated-images/
- Organized by date: 2025-11-29/ComfyUI_00001_.png
To download images:
1. Right-click image in UI → Save Image
2. Or browse via SCP/SFTP to /mnt/storage/generated-images/
sudo systemctl restart comfyuicd /opt/comfyui/ComfyUI/custom_nodes
sudo -u comfyui git clone https://github.com/user/custom-node-repo.git
sudo systemctl restart comfyui
ls /mnt/models/image/checkpoints/sudo systemctl restart comfyuijournalctl -u comfyui -fsystemctl status comfyuiThe RTX 4090 has 24GB VRAM. If you hit limits:
- Reduce resolution
- Use fewer steps
- Disable preview (saves ~1GB)
- Close other GPU applications
watch -n 1 nvidia-smi
Ctrl+S to save workflow iterationsblurry, low quality, watermark, signature, text, logo,
bad anatomy, bad hands, missing fingers, extra fingers,
cropped, worst quality, jpeg artifacts
journalctl -u comfyui -fLoad Checkpoint (sd_xl_base_1.0)
↓
CLIP Text Encode (positive) → "a serene mountain lake at sunset, photorealistic"
CLIP Text Encode (negative) → "blurry, low quality, watermark"
↓
KSampler (steps=25, cfg=7, sampler=euler_ancestral, scheduler=karras)
↓
VAE Decode
↓
Save Image
Load Checkpoint (sd_xl_turbo_1.0_fp16)
↓
CLIP Text Encode (positive) → "your prompt"
CLIP Text Encode (negative) → "" # can be empty for turbo
↓
KSampler (steps=4, cfg=1, sampler=euler_ancestral)
↓
VAE Decode
↓
Preview Image
Last updated: 2025-12-13