Skip to content

fix(compose): image-gen default off on non-GPU platforms + dreamforge network convention#1009

Merged
Lightheartdevs merged 2 commits intoLight-Heart-Labs:mainfrom
yasinBursali:fix/compose-runtime-defects
Apr 27, 2026
Merged

fix(compose): image-gen default off on non-GPU platforms + dreamforge network convention#1009
Lightheartdevs merged 2 commits intoLight-Heart-Labs:mainfrom
yasinBursali:fix/compose-runtime-defects

Conversation

@yasinBursali
Copy link
Copy Markdown
Contributor

What

Two small independent compose defects.

1. ENABLE_IMAGE_GENERATION default

docker-compose.base.yml defaulted ENABLE_IMAGE_GENERATION to
true. ComfyUI's manifest restricts it to gpu_backends: [amd, nvidia], so the image-gen backend cannot run on macOS Apple
Silicon, Linux CPU-only, Linux Intel/ARC, or Windows AMD. On those
platforms Open WebUI happily showed the image-gen UI, but clicking
it produced a connection error to comfyui:8188.

Flipped the base default to false. NVIDIA and AMD overlays now
add ENABLE_IMAGE_GENERATION to the open-webui environment
using env substitution (\${ENABLE_IMAGE_GENERATION:-true}) so the
existing user opt-out path remains intact:

  • installers/phases/06-directories.sh writes
    ENABLE_IMAGE_GENERATION=false to .env when ENABLE_COMFYUI=false
    (i.e. --no-comfyui or Tier 0/1 auto-disable). Env-substitution
    means that `.env` value wins over the overlay default → button
    correctly hidden.
  • The dashboard settings toggle (dashboard-api
    _OPEN_WEBUI_APPLY_KEYS) continues to work at runtime by writing
    .env.
  • Git-clone-and-docker-compose-up path (no installer, no .env)
    still gets true on NVIDIA/AMD via the overlay default.

2. dreamforge network convention

extensions/services/dreamforge/compose.yaml declared a top-level
networks: dream-network: external: true block and added
networks: - dream-network to the service. Base compose renames the
default network to dream-network via
networks: default: name: dream-network, so at runtime the merge
produced a single network and everything worked.

However: standalone docker compose -f dreamforge/compose.yaml config failed (network dream-network declared as external, but could not be found), and the pattern diverged from the convention
used by all 16 other extensions (none declare networks).

Removed both the top-level networks: block and the service-level
networks: reference. Dreamforge now implicitly joins the project
default network — identical runtime reachability, matching
convention.

Testing

  • docker compose config --quiet passes for: base alone, base +
    nvidia, base + amd, base + dreamforge (merged).
  • Standalone docker compose -f dreamforge/compose.yaml config now
    exits 0 (previously failed).
  • Env substitution verified on both overlays:
    • NVIDIA / AMD, env unset → ENABLE_IMAGE_GENERATION: "true"
    • NVIDIA / AMD, env=false → ENABLE_IMAGE_GENERATION: "false"

Platform Impact

  • macOS Apple Silicon: image-gen UI now hidden (button no longer
    errors).
  • Linux NVIDIA / AMD default install: unchanged — UI visible,
    ComfyUI available.
  • Linux NVIDIA / AMD with --no-comfyui: UI now correctly hidden
    (previously would have shown a broken button).
  • Linux CPU-only / Intel / ARC: UI hidden (was the primary goal of
    the base flip; matches ComfyUI manifest scope).
  • Windows AMD: UI hidden (correct — the Windows installer does not
    load ComfyUI's AMD overlay).
  • Windows NVIDIA: unchanged (UI visible, ComfyUI available).

Scope note

An initially-related healthcheck concern on
`extensions/services/perplexica/compose.yaml` was dropped from
this PR pending runtime reproduction — the original report cited
"Next.js 16" as root cause, which does not exist as a version,
and the 127.0.0.1 probe was already the intended convention after
an earlier PR. Tracked as a separate follow-up.

Two independent defects in one PR.

1. ENABLE_IMAGE_GENERATION default flipped true → false in
   docker-compose.base.yml so Open WebUI hides its image-gen UI on
   installs where ComfyUI is not present (macOS Apple Silicon, Linux
   CPU-only, Linux Intel/ARC, Windows AMD). ComfyUI's manifest
   restricts it to gpu_backends: [amd, nvidia], so those other
   platforms cannot start the image backend and the button would
   always click-to-error.

   NVIDIA and AMD overlays add ENABLE_IMAGE_GENERATION to the
   open-webui environment using env substitution so .env still
   wins: ${ENABLE_IMAGE_GENERATION:-true}. This preserves the
   existing user opt-out path (installers/phases/06-directories.sh
   writes ENABLE_IMAGE_GENERATION=false to .env when
   ENABLE_COMFYUI=false via --no-comfyui or Tier 0/1 auto-disable)
   and keeps the dashboard settings toggle
   (_OPEN_WEBUI_APPLY_KEYS) effective.

2. extensions/services/dreamforge/compose.yaml declared its own
   'networks: dream-network: external: true' block and joined the
   service to it explicitly. Base compose renames the default
   network to dream-network via 'networks: default: name:
   dream-network', so at runtime the merge produced a single
   network — but the external declaration caused standalone
   docker compose -f dreamforge/compose.yaml config to fail, and
   it diverged from the convention used by every other extension.

   Removed both the top-level networks block and the service-level
   networks reference. Dreamforge now implicitly joins the project
   default network (still dream-network via base), matching every
   other extension.
Add a short comment above ENABLE_IMAGE_GENERATION in docker-compose.base.yml
explaining the default-false / overlays-re-assert pattern. ComfyUI ships only
on amd/nvidia (per its manifest), so CPU/Apple users would otherwise hit a
missing-engine error from Open WebUI when the var is unset. The comment
prevents future GPU overlay authors from silently dropping image-gen by
omission.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants