The ProArt art_pipe generation worker (SpikerSoft.EventHandlers.ArtPipeProcessor) had no local path on Windows. It existed only for:
Mac dev — scripts/mac-dev-up.sh (native worker), and
Production — per-stage swarm stacks in spikersoft-infrastructure (spikersoft-artpipe-modeling / -sdxl / -blender / …), built by CI.
On Windows, the API published art.asset.stage.requested.<stage> messages to RabbitMQ but nothing consumed them, so an art "generate" task sat in its first stage forever ("stage 'concept' was never picked up by the worker").
Direction
Make the pipeline run end-to-end on Windows dev machines in Docker, alongside the stack Visual Studio already brings up — the Windows counterpart to the Mac script and the prod swarm stacks (one image, ArtPipe__Stages selects stages).
Model venvs/weights are not vendored in the image (#348); each dev runs the bootstrap script once. Verified on an RTX 4090 box: concept (SDXLLightning) generation reached the pipeline after bootstrapping the venv.
Follow-ups / open questions
Bootstrap is multi-GB per model; consider a shared prebuilt art_pipe cache for devs.
Confirm blender apt package + listed GL libs are sufficient for headless blender --background on the CUDA base (image rebuild + a Blender-stage smoke test).
Decide whether the single all-stages local worker stays, or we mirror prod's per-stage split locally.
## Problem
The ProArt `art_pipe` generation worker (`SpikerSoft.EventHandlers.ArtPipeProcessor`) had **no local path on Windows**. It existed only for:
- **Mac dev** — `scripts/mac-dev-up.sh` (native worker), and
- **Production** — per-stage swarm stacks in `spikersoft-infrastructure` (`spikersoft-artpipe-modeling` / `-sdxl` / `-blender` / …), built by CI.
On Windows, the API published `art.asset.stage.requested.<stage>` messages to RabbitMQ but nothing consumed them, so an art "generate" task sat in its first stage forever ("stage 'concept' was never picked up by the worker").
## Direction
Make the pipeline run end-to-end on Windows dev machines in Docker, alongside the stack Visual Studio already brings up — the Windows counterpart to the Mac script and the prod swarm stacks (one image, `ArtPipe__Stages` selects stages).
## Done (PR: spikersoft-backend `windows-full-local-composes`)
- **`docker-compose.yml` / `.override.yml`** — new `artpipe-processor` service: CUDA + `runtime: nvidia`, mounts the sibling `../spikersoft-artpipe` checkout at `/opt/art_pipe`, consumes all 7 stages so nothing sits unconsumed. Uses the container-correct default `appsettings.json` (rabbitmq / mongo-router / seq / jaeger, GpuScheduling `shared` via gpu-coordinator); intentionally **not** `ASPNETCORE_ENVIRONMENT=Development` (that profile is Mac-native only).
- **ArtPipeProcessor `Dockerfile`** — install `blender` + headless GL/X libs so the Blender-backed stages (rigging/animation/export/enrichment) run. The prod `spikersoft-artpipe-model-blender` stack needs this too.
- **`scripts/windows-artpipe-bootstrap.ps1`** — one-command bootstrap of the per-model Linux venvs + weights inside the running container.
- **`docs/windows-local-artpipe.md`** — setup + troubleshooting runbook.
## First-run prerequisite (documented)
Model venvs/weights are not vendored in the image (#348); each dev runs the bootstrap script once. Verified on an RTX 4090 box: `concept` (SDXLLightning) generation reached the pipeline after bootstrapping the venv.
## Follow-ups / open questions
- Bootstrap is multi-GB per model; consider a shared prebuilt art_pipe cache for devs.
- Confirm `blender` apt package + listed GL libs are sufficient for headless `blender --background` on the CUDA base (image rebuild + a Blender-stage smoke test).
- Decide whether the single all-stages local worker stays, or we mirror prod's per-stage split locally.
Related: ProArt epic #346, worker #348, safety gate #349, resident mode #368.
Board-sweep verified complete: docker-compose artpipe-processor service + scripts/windows-artpipe-bootstrap.ps1 both in tree; the ticket body's own Done section covers the full scope with only soft follow-up questions remaining. Closing.
Board-sweep verified complete: docker-compose artpipe-processor service + scripts/windows-artpipe-bootstrap.ps1 both in tree; the ticket body's own Done section covers the full scope with only soft follow-up questions remaining. Closing.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Problem
The ProArt
art_pipegeneration worker (SpikerSoft.EventHandlers.ArtPipeProcessor) had no local path on Windows. It existed only for:scripts/mac-dev-up.sh(native worker), andspikersoft-infrastructure(spikersoft-artpipe-modeling/-sdxl/-blender/ …), built by CI.On Windows, the API published
art.asset.stage.requested.<stage>messages to RabbitMQ but nothing consumed them, so an art "generate" task sat in its first stage forever ("stage 'concept' was never picked up by the worker").Direction
Make the pipeline run end-to-end on Windows dev machines in Docker, alongside the stack Visual Studio already brings up — the Windows counterpart to the Mac script and the prod swarm stacks (one image,
ArtPipe__Stagesselects stages).Done (PR: spikersoft-backend
windows-full-local-composes)docker-compose.yml/.override.yml— newartpipe-processorservice: CUDA +runtime: nvidia, mounts the sibling../spikersoft-artpipecheckout at/opt/art_pipe, consumes all 7 stages so nothing sits unconsumed. Uses the container-correct defaultappsettings.json(rabbitmq / mongo-router / seq / jaeger, GpuSchedulingsharedvia gpu-coordinator); intentionally notASPNETCORE_ENVIRONMENT=Development(that profile is Mac-native only).Dockerfile— installblender+ headless GL/X libs so the Blender-backed stages (rigging/animation/export/enrichment) run. The prodspikersoft-artpipe-model-blenderstack needs this too.scripts/windows-artpipe-bootstrap.ps1— one-command bootstrap of the per-model Linux venvs + weights inside the running container.docs/windows-local-artpipe.md— setup + troubleshooting runbook.First-run prerequisite (documented)
Model venvs/weights are not vendored in the image (#348); each dev runs the bootstrap script once. Verified on an RTX 4090 box:
concept(SDXLLightning) generation reached the pipeline after bootstrapping the venv.Follow-ups / open questions
blenderapt package + listed GL libs are sufficient for headlessblender --backgroundon the CUDA base (image rebuild + a Blender-stage smoke test).Related: ProArt epic #346, worker #348, safety gate #349, resident mode #368.
Board-sweep verified complete: docker-compose artpipe-processor service + scripts/windows-artpipe-bootstrap.ps1 both in tree; the ticket body's own Done section covers the full scope with only soft follow-up questions remaining. Closing.