Author SHA1 Message Date
Outis 21265b4d2d Merge pull request #26 from outis1one/claude/gpu-setup-research-c78YT
Claude/gpu setup research c78 yt
2026-03-22 17:34:55 -04:00
Outis 29e6de27f5 Merge pull request #25 from outis1one/claude/gpu-setup-research-c78YT
Add ComfyUI service + image generation docs for Open WebUI integration
2026-03-22 15:11:04 -04:00
Outis 867f08d1dc Merge pull request #24 from outis1one/claude/gpu-setup-research-c78YT
Add all 5 Stack Exchange sites + reorder ZIM list for dev focus
2026-03-22 14:46:06 -04:00
Outis 63276757cd Merge pull request #23 from outis1one/claude/gpu-setup-research-c78YT
Claude/gpu setup research c78 yt
2026-03-22 14:34:33 -04:00
Outis ff4ab4124c Merge pull request #22 from outis1one/claude/gpu-setup-research-c78YT
Claude/gpu setup research c78 yt
2026-03-22 14:23:10 -04:00
6 changed files with 20 additions and 498 deletions
+19 -192
View File
@@ -70,8 +70,6 @@ sudo systemctl status local-ai
| `comfyui-import-lora.sh` | 97 | Copies a LoRA into ComfyUI and prints workflow setup instructions. |
| `comfyui-install-ipadapter.sh` | 185 | Installs IP-Adapter nodes + models into ComfyUI for reference-image workflows (same face, different settings). |
| `setup-image-models.sh` | 200 | **GPU-aware** image model installer. Detects VRAM, offers appropriate SD/SDXL/Flux models, installs into InvokeAI and/or ComfyUI. |
| `comfyui-workflow-default.json` | — | Pre-made ComfyUI workflow for SD 1.5 (512x512). Upload directly into Open WebUI. |
| `comfyui-workflow-sdxl.json` | — | Pre-made ComfyUI workflow for SDXL (1024x1024). Upload directly into Open WebUI. |
### Which setup script should I use?
@@ -138,162 +136,6 @@ Both scripts are **idempotent** — safe to re-run for updates. Config files are
./kiwix_download.sh
```
6. **Configure Open WebUI** (see next section for exact clicks)
---
## Open WebUI Admin Settings — Click-by-Click Setup
After the stack is running, open `http://<ip>:3000`, create your admin account, then go to
**your avatar (top-right)** → **Admin Panel** → **Settings** tab at the top.
You'll see the sidebar: General, Connections, Models, Evaluations, Integrations, Documents,
Web Search, Code Execution, Interface, Audio, Images, Pipelines, Database.
Here's what to configure in each:
### Connections
This is where Open WebUI talks to Ollama and the RAG server.
1. Click **Connections** in the sidebar
2. Under **Ollama API**, verify the URL is `http://ollama:11434`
- Click the refresh icon — it should show "Connected" and list your models
3. Under **OpenAI API**, verify:
- URL: `http://rag-server:8001/v1`
- API Key: `local-rag`
- This is your RAG server posing as an OpenAI-compatible API
4. Click **Save**
> These are pre-configured by the setup script's environment variables. You usually
> don't need to change anything here — just verify the green "Connected" status.
### Models
1. Click **Models** in the sidebar
2. You should see your pulled Ollama models listed (e.g., `qwen3.5:4b`)
3. Click a model to set its **system prompt**, **temperature**, etc.
4. To set a **default model** for new chats: click the model → toggle **Default**
### Integrations (MCP Tool Server)
This is where you connect the MCP server so Open WebUI models can use tools
(search files, run bash, query git, etc.).
1. Click **Integrations** in the sidebar
2. Under **Tool Servers** section, click **+ Add Connection**
3. Enter:
- **URL:** `http://mcp-server:8002/sse`
- (Use the Docker container name, not your LAN IP — they're on the same Docker network)
4. Click **Save** / **Verify**
5. You should see your MCP tools listed (file_search, bash_exec, git_status, etc.)
Once connected, any model in Open WebUI can use these tools during chat. You'll see
tool calls appear inline when the model decides to search code, read files, etc.
> **Note:** This is separate from `claude mcp add local http://<ip>:8002/sse` which
> connects Claude Code (the CLI). Both can connect to the same MCP server simultaneously.
### Documents
Controls how Open WebUI's built-in Knowledge Collections work (the `#` tag system).
1. Click **Documents** in the sidebar
2. **Top K:** `6` (number of chunks retrieved per query — default is fine)
3. **Chunk Size:** `1500` (characters per chunk)
4. **Chunk Overlap:** `200`
5. **RAG Template:** Leave default unless you want custom formatting
> This is for Open WebUI's own Knowledge Collections, NOT the code-aware RAG server
> (which runs separately and is always active).
### Web Search
1. Click **Web Search** in the sidebar
2. **Enable Web Search:** Toggle ON
3. **Engine:** Select `duckduckgo` (no API key needed) or `searxng`
- If using SearXNG (self-hosted): URL is `http://searxng:8080`
4. Click **Save**
Once enabled, models can search the web during chat when you click the globe icon
or when the model decides it needs current information.
### Images (ComfyUI integration)
This is how "generate an image of..." works from chat.
1. Click **Images** in the sidebar
2. **Enable Image Generation:** Toggle ON
3. **Engine:** Select `ComfyUI`
4. **ComfyUI Base URL:** `http://comfyui:8188`
- (These should already be filled in from the env vars set during setup)
5. Click the **refresh/verify** button (circular arrow icon) — should show "Connected"
- If you see an error about `localhost:1111`, that's a stale config. Just clear the
URL field and re-enter `http://comfyui:8188`, then save.
6. **ComfyUI API Key:** Leave blank (no auth needed on local network)
- If there's a default `sk-1234`, clear it — ComfyUI doesn't use API keys
7. **ComfyUI Workflow:** Click **Upload** and select one of the pre-made workflows:
- `comfyui-workflow-default.json` — SD 1.5 (512x512, works on 4GB+ VRAM)
- `comfyui-workflow-sdxl.json` — SDXL (1024x1024, needs 8GB+ VRAM)
- These files are in your `~/docker/ai-stack/` directory
8. **ComfyUI Workflow Nodes** — after uploading, fill in these node IDs:
| Field | Node ID | Why |
|-------|---------|-----|
| **Prompt** → text | `6` | Node 6 is the positive CLIPTextEncode — this is where your chat prompt goes |
| **Model** → ckpt_name | `4` | Node 4 is the CheckpointLoaderSimple — picks which SD model to use |
| **Width** → width | `5` | Node 5 is the EmptyLatentImage — controls output width |
| **Height** → height | `5` | Same node 5 — controls output height |
| **Steps** → steps | `3` | Node 3 is the KSampler — controls generation steps |
| **Seed** → seed | `3` | Same node 3 — controls randomness seed |
9. Click **Save**
> **No workflow yet?** You need to first open ComfyUI at `http://<ip>:8188`,
> build or load a workflow, enable Dev Mode (gear icon), and click
> "Save (API Format)" to get the `workflow_api.json` file. See the
> [Image Generation](#image-generation-from-open-webui) section below.
### Interface
1. Click **Interface** in the sidebar
2. **Default System Prompt:** Set a global system prompt for all chats (optional)
- Example: "You are a helpful coding assistant. Be concise."
3. **Chat Bubble UI:** Toggle to switch between chat bubbles and flat messages
4. **Rich Text Input:** Toggle ON for markdown formatting in the input box
### Audio
1. Click **Audio** in the sidebar
2. **Speech-to-Text (STT):** Select engine (browser default works, or Whisper)
3. **Text-to-Speech (TTS):** Select engine (browser default, or configure OpenAI-compatible)
4. These are optional — skip if you don't need voice
### Pipelines
Advanced: for custom middleware between the user and the model. Skip unless you're
building custom processing pipelines.
### Database
Shows database stats. No configuration needed.
---
### Recommended Open WebUI Functions (one-time install)
These are community add-ons that improve the chat experience. Install from
**Admin Panel** → **Functions** tab (at the top, next to Settings) → **+** button
→ paste the URL → **Import**.
| Function | URL | What it does |
|----------|-----|-------------|
| Context Tracker | `https://openwebui.com/f/centrisic/context_tracker` | Shows tokens used vs available, progress bar, context % remaining |
| Context Compaction | `https://openwebui.com/f/projectmoon/checkpoint_summarization_filter` | Auto-summarizes old messages when context fills up (like Claude does) |
| Auto Memory | Search "Auto Memory" in Discover | Automatically stores relevant info as persistent memories across chats |
After importing each function, toggle it **ON** in the Functions list.
---
## Querying Your Codebase from Open WebUI
@@ -426,50 +268,35 @@ Open WebUI natively supports these image generation engines:
If you selected ComfyUI during setup, the environment variables are already configured. You just need to install a model and set up a workflow.
#### Step 1: Install a Stable Diffusion model
#### Step 1: Install a Stable Diffusion model in ComfyUI
```bash
# GPU-aware — detects your card and installs the right model:
./setup-image-models.sh
# Open ComfyUI at http://<ip>:8188
# Use the built-in Model Manager to download a model, or manually:
docker exec comfyui bash -c "cd /opt/ComfyUI/models/checkpoints && \
wget -q 'https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0/resolve/main/sd_xl_base_1.0.safetensors'"
```
# Or manually:
Or download any `.safetensors` checkpoint and copy it in:
```bash
docker cp ~/Downloads/my-model.safetensors comfyui:/opt/ComfyUI/models/checkpoints/
```
#### Step 2: Upload a workflow into Open WebUI
#### Step 2: Create and export a workflow
Pre-made workflows are included — no need to build one in ComfyUI:
1. Open ComfyUI at `http://<ip>:8188`
2. Build or load a workflow (the default text-to-image workflow works)
3. Click the **gear icon** → enable **Dev Mode**
4. Click **Save (API Format)** — this downloads `workflow_api.json`
| Workflow file | Model | Resolution | VRAM |
|--------------|-------|-----------|------|
| `comfyui-workflow-default.json` | SD 1.5 | 512x512 | 4GB+ |
| `comfyui-workflow-sdxl.json` | SDXL | 1024x1024 | 8GB+ |
#### Step 3: Configure Open WebUI
1. Go to **Admin** → **Settings** → **Images**
1. Open WebUI → **Admin** → **Settings** → **Images**
2. Set **Engine** to `ComfyUI`
3. Set **ComfyUI Base URL** to `http://comfyui:8188`
4. Click the **refresh icon** — should show connected
5. Clear the **ComfyUI API Key** field (ComfyUI doesn't use API keys)
6. Click **Upload** next to **ComfyUI Workflow**
7. Select `comfyui-workflow-default.json` (or `sdxl` version)
8. Fill in the **ComfyUI Workflow Nodes** — these tell Open WebUI which
node in the workflow handles each parameter:
| Field | Node ID |
|-------|---------|
| **Prompt** → text | `6` |
| **Model** → ckpt_name | `4` |
| **Width** → width | `5` |
| **Height** → height | `5` |
| **Steps** → steps | `3` |
| **Seed** → seed | `3` |
9. Click **Save**
> **Custom workflows:** If you build your own workflow in ComfyUI, enable
> Dev Mode (gear icon) → click **Save (API Format)** → upload that JSON file
> instead. The node IDs will be different — check each node's ID number
> in ComfyUI and enter them in the mapping above.
3. Set **URL** to `http://comfyui:8188` (container networking, already set via env vars)
4. Click **Import Workflow** and upload your `workflow_api.json`
5. Map the **prompt node** (usually the KSampler or CLIPTextEncode node)
6. Save settings
#### Step 4: Generate images in chat
-59
View File
@@ -1,59 +0,0 @@
{
"3": {
"class_type": "KSampler",
"inputs": {
"cfg": 7.5,
"denoise": 1,
"latent_image": ["5", 0],
"model": ["4", 0],
"negative": ["7", 0],
"positive": ["6", 0],
"sampler_name": "euler_ancestral",
"scheduler": "normal",
"seed": 42,
"steps": 30
}
},
"4": {
"class_type": "CheckpointLoaderSimple",
"inputs": {
"ckpt_name": "v1-5-pruned-emaonly.safetensors"
}
},
"5": {
"class_type": "EmptyLatentImage",
"inputs": {
"batch_size": 1,
"height": 512,
"width": 512
}
},
"6": {
"class_type": "CLIPTextEncode",
"inputs": {
"clip": ["4", 1],
"text": "a beautiful landscape painting"
}
},
"7": {
"class_type": "CLIPTextEncode",
"inputs": {
"clip": ["4", 1],
"text": "bad quality, blurry, ugly, deformed"
}
},
"8": {
"class_type": "VAEDecode",
"inputs": {
"samples": ["3", 0],
"vae": ["4", 2]
}
},
"9": {
"class_type": "SaveImage",
"inputs": {
"filename_prefix": "ComfyUI",
"images": ["8", 0]
}
}
}
-59
View File
@@ -1,59 +0,0 @@
{
"3": {
"class_type": "KSampler",
"inputs": {
"cfg": 7,
"denoise": 1,
"latent_image": ["5", 0],
"model": ["4", 0],
"negative": ["7", 0],
"positive": ["6", 0],
"sampler_name": "euler_ancestral",
"scheduler": "normal",
"seed": 42,
"steps": 30
}
},
"4": {
"class_type": "CheckpointLoaderSimple",
"inputs": {
"ckpt_name": "sd_xl_base_1.0.safetensors"
}
},
"5": {
"class_type": "EmptyLatentImage",
"inputs": {
"batch_size": 1,
"height": 1024,
"width": 1024
}
},
"6": {
"class_type": "CLIPTextEncode",
"inputs": {
"clip": ["4", 1],
"text": "a beautiful landscape painting"
}
},
"7": {
"class_type": "CLIPTextEncode",
"inputs": {
"clip": ["4", 1],
"text": "bad quality, blurry, ugly, deformed"
}
},
"8": {
"class_type": "VAEDecode",
"inputs": {
"samples": ["3", 0],
"vae": ["4", 2]
}
},
"9": {
"class_type": "SaveImage",
"inputs": {
"filename_prefix": "ComfyUI",
"images": ["8", 0]
}
}
}
+1 -186
View File
@@ -1,6 +1,6 @@
# GPU Setup Research: Rack Server AI Workloads
*Last updated: March 26, 2026*
*Last updated: March 22, 2026*
## Goal
Cost-efficient rack-mountable GPU setup for:
@@ -846,182 +846,6 @@ INVOKEAI_PRECISION=float16
# ComfyUI — no special flags needed
```
---
## Decision: Local AI Deferred — Claude Max + Media Server (March 26, 2026)
### Why the GPU Rig Is Off the Table (For Now)
After thorough analysis, the $1,000 dual RTX 5000 build doesn't make economic sense
for the primary use case: **complex multi-file coding on 10,000+ line codebases**.
**The core problem:** Tasks like "add encrypted sync across a web extension" require
frontier-level reasoning (Claude Opus) + massive context (200K+ tokens). The best local
model at 32GB VRAM (Qwen 2.5 Coder 32B) scores ~55% on SWE-Bench vs Claude Opus at 80.9%.
That gap is the difference between "gets it done" and "burns hours failing."
| Factor | Local (2x RTX 5000) | Claude Max |
|--------|---------------------|------------|
| Cost | ~$1,000 once | $100/mo ($1,000 = 10 months) |
| Complex coding quality | A- (SWE-Bench ~55-73%) | A++ (SWE-Bench 80.9%) |
| Context window | ~32K-128K tokens | 200K tokens |
| 10K-line codebase | Partial, chunked | Entire project in one shot |
| Rate limits | None | None (Max tier) |
| Hardware depreciation | Loses value over time | Always current model |
| Electricity | ~$9/mo | $0 |
**The catch-22:** AI demand is driving up hardware costs. DDR4 ECC RDIMM prices jumped
~90% QoQ in Q1 2026. Used GPU prices are climbing, not falling. The old "wait 6 months,
get 2x for the same price" contract is broken — memory fabs prioritize HBM for data centers
over consumer/used server markets.
**The plan:** Subscribe to Claude Max ($100/mo), revisit local AI when open-source models
close the gap on complex architectural coding tasks (estimated 1-2 years). The $1,000
buys dramatically more local capability in 2027-2028.
### New Server Purpose: Media Server + General Homelab
With GPUs off the table, the R730xd becomes a **media/storage server** with these goals:
1. **Blu-ray/DVD ripping** — Multiple external ODD drives simultaneously via MakeMKV
2. **HandBrake encoding** — CPU-heavy transcoding (the Xeon cores actually matter now)
3. **Media serving** — Plex/Jellyfin
4. **General homelab** — Docker, storage, VMs, network services
---
## R730xd Server Comparison: Media Server Build
### The Three Candidates
| Spec | **E5-2620 V4** | **E5-2660 V4** | **E5-2690 V4** |
|------|----------------|----------------|----------------|
| **Cores/Threads** | 8x2 = 16C/32T | 14x2 = 28C/56T | 14x2 = 28C/56T |
| **Base/Turbo** | 2.1 / 2.5 GHz | 2.0 / 2.4 GHz | 2.6 / 3.5 GHz |
| **TDP per CPU** | 85W | 105W | 135W |
| **Total CPU TDP** | 170W | 210W | 270W |
| **RAID** | H330 | H730 | H730P |
| **RAM** | 32GB | 32GB | 32GB |
| **Drives included** | 2x trays | 2x trays | 2x trays |
### What Matters for Blu-ray/DVD Ripping
**MakeMKV (ripping)** is almost entirely **I/O-bound**, not CPU-bound. Even an old Celeron
can rip 2 discs at once at single-digit CPU usage. MakeMKV just decrypts and copies — the
bottleneck is the optical drive read speed and disk write speed. 16 cores is overkill for
ripping alone.
**HandBrake (encoding)** is **heavily CPU-bound**. This is where cores and clock speed matter.
Encoding a single Blu-ray with x265 can peg all cores at 100% for 30-60+ minutes. Multiple
simultaneous encodes scale linearly with available cores.
| Task | CPU Need | Bottleneck |
|------|----------|------------|
| MakeMKV rip (per drive) | ~2-5% of 1 core | Optical drive read speed |
| 3x simultaneous MakeMKV rips | ~5-15% total | Drive speed + disk write |
| HandBrake x265 encode (1080p) | 100% all cores | Pure CPU |
| HandBrake + 3x MakeMKV rips | 90%+ CPU for HB, trivial for MKV | CPU for encode |
| Plex transcoding (1 stream) | ~2-4 cores at moderate load | CPU or iGPU |
### RAID Controller Matters
| Controller | Cache | RAID Levels | Battery | Notes |
|------------|-------|-------------|---------|-------|
| **H330** | None | 0,1,5,10,50 | No | Basic HBA-ish. No write cache. Fine for JBOD/passthrough |
| **H730** | 1GB | 0,1,5,6,10,50,60 | Yes (BBU) | Write cache = faster writes. Good for ripping to RAID |
| **H730P** | 2GB | 0,1,5,6,10,50,60 | Yes (BBU) | Best controller. 2GB cache handles burst writes well |
For ripping multiple discs simultaneously to spinning drives, the **write cache matters**.
Each Blu-ray drive reads at ~35-55 MB/s. Three drives = ~105-165 MB/s sustained writes.
The H730/H730P cache absorbs bursts; the H330 writes directly, which can bottleneck on
spinning disks.
### USB Connectivity for External ODD Drives
The R730xd has **very few USB ports**:
| Location | Quantity | Standard |
|----------|----------|----------|
| Front | 1 | USB 2.0 (iDRAC management) |
| **Rear** | **2** | **USB 3.0** |
| Internal | 1 | USB 3.0 |
**2 rear USB 3.0 ports is not enough for multiple drives.** You need a PCIe USB 3.0 card.
#### Recommended: PCIe USB 3.0 Expansion
| Card | Ports | Power | Notes |
|------|-------|-------|-------|
| **StarTech PEXUSB3S44V** | 4x USB 3.0 | SATA/LP4 (optional) | 4 dedicated 5 Gbps channels — each port gets full bandwidth |
| HighPoint RocketU 1344A | 4x USB 3.0 | PCIe slot only | Confirmed working in Dell PowerEdge servers |
| SIIG 7-Port USB 3.0 | 7x USB 3.0 | Needs aux power | Overkill but available |
**Important:** The R730xd uses **low-profile PCIe brackets** in the risers. Make sure the
card ships with a low-profile bracket or buy one separately.
With a 4-port PCIe card + 2 rear USB 3.0 = **6 USB 3.0 ports** = up to 6 simultaneous drives.
Each Blu-ray drive reads at ~36 MB/s (1x BD) to ~54 MB/s (UHD). USB 3.0 at 5 Gbps (~400 MB/s
practical) handles many drives per port, but a **powered USB 3.0 hub** is recommended to
ensure each drive gets adequate power.
### Recommendation: E5-2660 V4 (28 Cores, H730)
**Winner: E5-2660 V4** — best balance for a media server.
| Why | Detail |
|-----|--------|
| **28 cores** | Enough for 2-3 simultaneous HandBrake encodes + ripping + Plex |
| **105W TDP** | 60W less than the 2690 = lower power bill, less heat, quieter fans |
| **H730 RAID** | Write cache handles multi-drive rip throughput. Battery-backed |
| **Price** | Should be mid-range of the three listings |
**Why not E5-2690 V4?** The 3.5 GHz turbo is nice, but encoding is a sustained all-core
workload — turbo barely helps. The 135W TDP means $100+/year more in electricity for maybe
10-15% faster encodes. Not worth it for a media server.
**Why not E5-2620 V4?** 16 cores is enough for ripping, but if you ever want to rip 3 discs
AND encode simultaneously, you'll feel the pinch. The H330 with no write cache is the real
problem — sustained writes from multiple Blu-ray rips to spinning disks will bottleneck.
### Before Buying — Ask the Seller
1. **What PSU wattage?** 750W is fine for no-GPU media server use. Don't overpay for 1100W
you won't need.
2. **"2x trays" — what does that mean?** 2x drive trays in front? Or 2x 2.5" rear flex bay?
You want to know what drive caddies are included.
3. **How many drive caddies total?** The R730xd has 12x 3.5" front bays (LFF model) or
24x 2.5" front bays (SFF model). Empty bays without caddies = more $ to fill them.
4. **RAM details?** "32GB" could be 2x16GB (6 empty slots per CPU) or 4x8GB or 8x4GB.
Fewer, larger sticks = more room to upgrade later.
### Accessories You'll Need
```
EXTERNAL ODD DRIVES
2-3x USB 3.0 Blu-ray drive (Pioneer BDR-XD08, LG WP50NB40, etc) ~$60-100 ea
or 5.25" internal drives in USB 3.0 enclosures ~$30-50 ea
USB EXPANSION
1x PCIe USB 3.0 card (StarTech PEXUSB3S44V or similar) ~$30-40
1x Powered USB 3.0 hub (Plugable USBC-HUB4A or similar) ~$25-35
STORAGE
*x 3.5" HDDs for media storage (fill those front bays!) varies
1x SSD for OS + ripping scratch space (500GB-1TB) ~$30-50
SOFTWARE
MakeMKV (free beta / $60 lifetime license)
HandBrake (free, open source)
Plex or Jellyfin (free / Plex Pass $120 lifetime)
```
### UHD Blu-ray Ripping Note
For 4K UHD discs, you need a **UHD-friendly drive** with modified firmware. Not all Blu-ray
drives can read UHD discs — the disc encryption (AACS 2.0) requires specific drive models
that can be flashed. Check the [MakeMKV UHD Drives Guide](https://forum.makemkv.com/forum/viewtopic.php?t=19634)
for compatible models before buying.
## Sources
- [Quadro RTX 8000 for Local LLMs — Hardware Corner](https://www.hardware-corner.net/guides/quadro-rtx-8000-for-llm/)
- [RTX 8000 Passive — Network Outlet](https://networkoutlet.com/blogs/articles/nvidia-quadro-rtx-8000-48gb-passive-cooling-powering-ai-rendering-server-workloads)
@@ -1042,12 +866,3 @@ for compatible models before buying.
- [7 Local LLM Families to Replace Claude/Codex](https://agentnativedev.medium.com/7-local-llm-families-to-replace-claude-codex-for-everyday-tasks-25ba74c3635d)
- [Qwen2.5-Coder 32B on Ollama](https://ollama.com/library/qwen2.5-coder:32b-instruct-q4_K_M)
- [Qwen3-Coder — How to Run Locally](https://unsloth.ai/docs/models/qwen3-coder-how-to-run-locally)
- [MakeMKV Forum: Multiple Drives Ripping](https://forum.makemkv.com/forum/viewtopic.php?f=16&p=173500)
- [MakeMKV Forum: UHD Drives Flashing Guide](https://forum.makemkv.com/forum/viewtopic.php?t=19634)
- [Dell R730xd USB Ports — Owner's Manual](https://www.dell.com/support/manuals/en-us/poweredge-r730xd/r730xd_ompublication/usb-ports?guid=guid-ace748db-1711-4f7c-862d-31ee7600f6e0)
- [Adding USB 3.0 PCIe Card to Dell PowerEdge](https://tachytelic.net/2014/11/dell-poweredge-usb3-pcie/)
- [TrendForce: Q1 2026 Memory Prices Hit Record Highs](https://www.trendforce.com/presscenter/news/20260202-12911.html)
- [Network World: Server Memory Prices Could Double](https://www.networkworld.com/article/4093752/server-memory-prices-could-double-by-2026-as-ai-demand-strains-supply.html)
- [Best Local LLMs for 16GB VRAM (2026)](https://localllm.in/blog/best-local-llms-16gb-vram)
- [Best Local Coding Models Ranked by VRAM Tier (2026)](https://insiderllm.com/guides/best-local-coding-models-2026/)
- [Open Source vs Paid AI for Coding (2026)](https://aarambhdevhub.medium.com/open-source-ai-vs-paid-ai-for-coding-the-ultimate-2026-comparison-guide-ab2ba6813c1d)
-1
View File
@@ -1065,7 +1065,6 @@ $( $SVC_COMFYUI && cat <<'IMGENV'
- ENABLE_IMAGE_GENERATION=true
- IMAGE_GENERATION_ENGINE=comfyui
- COMFYUI_BASE_URL=http://comfyui:8188
- COMFYUI_WORKFLOW_NODES=[{"type":"prompt","key":"text","node_ids":["6"]},{"type":"model","key":"ckpt_name","node_ids":["4"]},{"type":"width","key":"width","node_ids":["5"]},{"type":"height","key":"height","node_ids":["5"]},{"type":"steps","key":"steps","node_ids":["3"]},{"type":"seed","key":"seed","node_ids":["3"]}]
IMGENV
)
depends_on:
-1
View File
@@ -616,7 +616,6 @@ services:
- ENABLE_IMAGE_GENERATION=true
- IMAGE_GENERATION_ENGINE=comfyui
- COMFYUI_BASE_URL=http://comfyui:8188
- COMFYUI_WORKFLOW_NODES=[{"type":"prompt","key":"text","node_ids":["6"]},{"type":"model","key":"ckpt_name","node_ids":["4"]},{"type":"width","key":"width","node_ids":["5"]},{"type":"height","key":"height","node_ids":["5"]},{"type":"steps","key":"steps","node_ids":["3"]},{"type":"seed","key":"seed","node_ids":["3"]}]
depends_on:
ollama: {condition: service_healthy}