Skip to content

chore: add standardized vscode devcontainer for development #7944

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 63 commits into
base: main
Choose a base branch
from

Conversation

dsisco11
Copy link
Contributor

@dsisco11 dsisco11 commented Apr 19, 2025

Summary

This PR adds a standardized VSCode devcontainer setup for the repository.
It allows developers to checkout branches (or mount the repo from a local folder) into a sterile and isolated container that contains a standard configuration for all tools required for development.

Included is a debugger setup for both the frontend & backend, located under the usual "Run & Debug" menu.
Additionally, a few VSCode build actions have been included (Ctrl+Shift+B) for common actions such as:

  • Run frontend tests
  • Run backend tests
  • Install frontend packages
  • Install backend packages

Discord Thread

There is a discussion thread in the discord forum on this work.
https://discord.com/channels/1020123559063990373/1360184927538249809

Dependency Caching

The devcontainer is configured such that all current packaging systems for the project (UV & PNPM) have their package-store directory mounted as a global named volume "invokeai-dev-cache".
What this means is that packages are downloaded into this volume and then linked into any devcontainer instance that needs them.
A named volume is used here instead of a bind mount due to performance penalties incurred when docker has to transfer between its virtual file system and the host file system.

InvokeAI Data Persistance

In order to keep the devcontainer isolated & sterile, the InvokeAI app data & models are only persisted for a given container instance.
What this means is that if you have to rebuild the container or open a new container instance, then the previous app data such as the database & downloaded models will be deleted.
This isn't a bad thing, it's good to be able to work on multiple branches without risk of one envrionment impacting another.

Proposal: Model-Store

Admittedly, having to redownload AI models is frustrating.
This is why I propose we implement a relatively simple feature, a .model-store directory similar to the existing .download-cache directory.
This model-store would function just like the PNPM or UV package-store.
The proposed behavior is such that when Invoke goes to download a model, it will first check the model-store and if the desired model folder is found then it will be linked into the usual download destination.
This will allow us to configure the devcontainer to do the same thing it already does for the UV/PNPM stores and mount a named global volume to invokes model-store, allowing downloaded models to be shared across all container instances.
Thus, reinstalling models when you create a new container (after a rebuild or such) will complete instantly!

Custom Node Development

The devcontainer also facilitates very easy node development by allowing custom-node folders or git-repos to be placed within .devcontainer/mounts/custom-nodes.
Node packages within this path are automatically mounted into the devcontainer.
This means the devcontainer can be used to both launch the development version of InvokeAI and develop custom nodes.
Source files for custom nodes within the devcontainer gain the benefit of being fully compatible with all dev tools such as Pylance and the Python debugger.

EDIT
Hot-Reloading for custom nodes now works!

Differences

There are a few things done differently in the devcontainer when compared to the traditional setup for InvokeAI.

Project Install

The project is installed using only the uv sync command, purposely excluding uv pip install.
This is because uv sync already installs the project in editable by default.

Removing Setuptools

Using setuptools as the build backend was causing excessive build times within the container (upward of 50 minutes).
This is possibly related to bugs such as this one.
The project has been migrated to using Hatchling, resulting in build times of around 2 minutes.
image

UV Index

Traditionally, the correct packages to be installed for a given compute device (CPU/CUDA/ROCM) have been determined by setting a special envar UV_INDEX during container builds.
The problem is that there is logic required to determine the value for this envar, and the envar has to be set at multiple different stages.
Additionally, specifying an override-index like this would cause uv lock to produce a different lockfile for different developers (based on the compute-device they use, which determines their UV_INDEX value).

To fix these issues, I have created a package resolution setup in the UV section of pyproject.toml.
This setup uses a few custom 'extras' values along with the system/platform identifiers to determine which index to pull from.
Now, rather than manually setting an envar, one of the following extras can be specified to indicate which compute-device-type is being used.

  • --extra using-cuda
  • --extra using-rocm
  • --extra using-cpu

If none of these extras are specified then the system will just default to CPU.
For MacOS (system_platform=='darwin') no special index is used and the default index is chosen.

This completely eliminates the need to manually specify a UV index and now the switching logic lives inside the pyproject config!

@github-actions github-actions bot added python PRs that change python files Root invocations PRs that change invocations labels Apr 19, 2025
@hipsterusername
Copy link
Member

This is awesome. Thanks for contributing - we will take a look at it this week.

@psychedelicious
Copy link
Collaborator

Hell yeah, thank you for working on this! I'll take some time to test next week.

Copy link
Collaborator

@psychedelicious psychedelicious left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looking good! Left a few comments.

@dsisco11 dsisco11 requested a review from lstein as a code owner April 22, 2025 23:06
@github-actions github-actions bot added the python-deps PRs that change python dependencies label Apr 22, 2025
@dsisco11 dsisco11 force-pushed the sisco/feat/vscode-devcontainer branch from 702ad8f to 1a69b6f Compare April 24, 2025 07:35
dsisco11 added 28 commits April 27, 2025 21:35
chore: use container mount path variable instead of hardcoded strings

chore: add proper env file initialization for devcontainer

chore: explicitly create other cache folders

chore remove file so it can be recommitted properly

chore: commit init file with executable mode set

chore: remove unneeded debug launch target

chore: add more recommended extensions

chore: remove unneeded git files

chore: fix python preinstall

chore: update cuda index to match main

chore: drop redundant devcontainer specific extensions list and just use global workspace extensions list.

refactor: move to hatchling for python compiler-backend

chore: oh we actually DO need to specify extensions in the devcontainer.json

refactor: enable UV to handle device-specific torch index resolution.

chore: whoops, fix the named volume name
chore: add vscode action for "run currently focused python test file"

chore: fix permissions in devcontainer image

chore: fix devcontainer image brace expansion

chore: improve vscode test task

chore: add reasonable minimum requirements

chore: add commented podman workarounds

chore: setup vscode test discovery for python
@dsisco11 dsisco11 force-pushed the sisco/feat/vscode-devcontainer branch from 11d41f7 to 477cdd8 Compare April 28, 2025 04:35
@psychedelicious
Copy link
Collaborator

psychedelicious commented May 19, 2025

Apologies again for the very late review. I've been testing today and investigating some uv quirks.

I'm running into issues with macOS and the new uv sources setup for torch indices.

Dependency issue w/ uv sync and macOS

uv sync is failing:

error: Distribution `bitsandbytes==0.45.4 @ registry+https://pypi.org/simple` can't be installed because it doesn't have a source distribution or wheel for the current platform

hint: You're on Linux (`manylinux_2_36_aarch64`), but `bitsandbytes` (v0.45.4) only has wheels for the following platforms: `manylinux_2_24_x86_64`, `win_amd64`
[24997 ms] postAttachCommand from devcontainer.json failed with exit code 2. Skipping any further user-provided commands.

edit: I thought this was a uv lockfile issue, but it looks like making these two changes to pyproject.toml fixes it:

  • Change "bitsandbytes; sys_platform!='darwin'", to "bitsandbytes; platform_machine=='x86_64'",
  • Remove "using-cuda" = ["onnxruntime-gpu"] to "using-cuda" = []

Dev container works on macOS now, sweet!

click here to expand full logs
[9 ms] Dev Containers 0.413.0 in VS Code 1.100.2 (848b80aeb52026648a8ff9f7c45a9b0a80641e2e).
[9 ms] Start: Resolving Remote
[20 ms] Setting up container for folder or workspace: /Users/spencer/Documents/Code/InvokeAI
[20 ms] Context: desktop-linux
[22 ms] Start: Check Docker is running
[22 ms] Start: Run: docker version
[42 ms] Client: Docker Engine - Community
 Version:           24.0.7
 API version:       1.43
 Go version:        go1.21.3
 Git commit:        afdd53b4e3
 Built:             Thu Oct 26 07:06:42 2023
 OS/Arch:           darwin/arm64
 Context:           desktop-linux

Server: Docker Desktop 4.40.0 (187762)
 Engine:
[42 ms]   Version:          28.0.4
  API version:      1.48 (minimum version 1.24)
  Go version:       go1.23.7
  Git commit:       6430e49
  Built:            Tue Mar 25 15:07:18 2025
  OS/Arch:          linux/arm64
  Experimental:     false
 containerd:
  Version:          1.7.26
  GitCommit:        753481ec61c7c8955a23d6ff7bc8e4daed455734
 runc:
  Version:          1.2.5
  GitCommit:        v1.2.5-0-g59923ef
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0
[44 ms] Start: Run: docker volume ls -q
[56 ms] Start: Run: docker ps -q -a --filter label=vsch.local.folder=/Users/spencer/Documents/Code/InvokeAI --filter label=vsch.quality=stable
[70 ms] Start: Run: docker ps -q -a --filter label=devcontainer.local_folder=/Users/spencer/Documents/Code/InvokeAI --filter label=devcontainer.config_file=/Users/spencer/Documents/Code/InvokeAI/.devcontainer/devcontainer.json
[86 ms] Start: Run: docker inspect --type container 7d3c1e6fc7ff
[104 ms] Running Dev Containers CLI:   up --user-data-folder /Users/spencer/Library/Application Support/Code/User/globalStorage/ms-vscode-remote.remote-containers/data --container-session-data-folder /tmp/devcontainers-41d5f64f-9d69-442f-a733-1f8dfea6f5ad1747633645087 --workspace-folder /Users/spencer/Documents/Code/InvokeAI --workspace-mount-consistency cached --gpu-availability detect --id-label devcontainer.local_folder=/Users/spencer/Documents/Code/InvokeAI --id-label devcontainer.config_file=/Users/spencer/Documents/Code/InvokeAI/.devcontainer/devcontainer.json --log-level debug --log-format json --config /Users/spencer/Documents/Code/InvokeAI/.devcontainer/devcontainer.json --default-user-env-probe loginInteractiveShell --remove-existing-container --mount type=volume,source=vscode,target=/vscode,external=true --skip-post-create --update-remote-user-uid-default on --mount-workspace-git-root --include-configuration --include-merged-configuration
[116 ms] ProxyResolver#loadSystemCertificates count
[117 ms] ProxyResolver#loadSystemCertificates count filtered
[117 ms] Start: Run: /Applications/Visual Studio Code.app/Contents/Frameworks/Code Helper (Plugin).app/Contents/MacOS/Code Helper (Plugin) /Users/spencer/.vscode/extensions/ms-vscode-remote.remote-containers-0.413.0/dist/spec-node/devContainersSpecCLI.js up --user-data-folder /Users/spencer/Library/Application Support/Code/User/globalStorage/ms-vscode-remote.remote-containers/data --container-session-data-folder /tmp/devcontainers-41d5f64f-9d69-442f-a733-1f8dfea6f5ad1747633645087 --workspace-folder /Users/spencer/Documents/Code/InvokeAI --workspace-mount-consistency cached --gpu-availability detect --id-label devcontainer.local_folder=/Users/spencer/Documents/Code/InvokeAI --id-label devcontainer.config_file=/Users/spencer/Documents/Code/InvokeAI/.devcontainer/devcontainer.json --log-level debug --log-format json --config /Users/spencer/Documents/Code/InvokeAI/.devcontainer/devcontainer.json --default-user-env-probe loginInteractiveShell --remove-existing-container --mount type=volume,source=vscode,target=/vscode,external=true --skip-post-create --update-remote-user-uid-default on --mount-workspace-git-root --include-configuration --include-merged-configuration
[237 ms] @devcontainers/cli 0.76.0. Node.js v20.19.0. darwin 23.3.0 arm64.
[237 ms] Start: Run: docker buildx version
[288 ms] github.com/docker/buildx v0.22.0-desktop.1 b45d7a53aa26a5e76aae051acdb15775c0e178da
[288 ms] 
[288 ms] Start: Run: docker -v
[297 ms] Start: Resolving Remote
[322 ms] Start: Run: git rev-parse --show-cdup
[358 ms] Loading 6 extra certificates from /var/folders/y5/2vhs7cbd0gdf67mygnlbcfv80000gn/T/vsch/certificates-4b18e17a8b76abb0479e094602878c5eeb67de7f36f2e411111cfa0d619e2e92.pem.
Running the initializeCommand from devcontainer.json...

[425 ms] Start: Run: .devcontainer/scripts/init 

[438 ms] Start: Run: docker ps -q -a --filter label=devcontainer.local_folder=/Users/spencer/Documents/Code/InvokeAI --filter label=devcontainer.config_file=/Users/spencer/Documents/Code/InvokeAI/.devcontainer/devcontainer.json
[453 ms] Start: Run: docker inspect --type container 7d3c1e6fc7ff
[469 ms] Start: Removing Existing Container
[469 ms] Start: Run: docker rm -f 7d3c1e6fc7ff3578ecd28677d825b08f1037da4ff96695051012e2f04f491d3d
[611 ms] Start: Run: docker inspect --type image mcr.microsoft.com/devcontainers/typescript-node:22
[624 ms] Resolving Feature dependencies for 'ghcr.io/devcontainers/features/git-lfs'...
[624 ms] * Processing feature: ghcr.io/devcontainers/features/git-lfs
[939 ms] Start: Run: docker-credential-desktop get
[1830 ms] * Processing feature: ghcr.io/devcontainers/features/common-utils
[2159 ms] Resolving Feature dependencies for 'ghcr.io/devcontainers/features/github-cli'...
[2159 ms] * Processing feature: ghcr.io/devcontainers/features/github-cli
[2569 ms] * Processing feature: ghcr.io/devcontainers/features/common-utils
[2902 ms] * Processing feature: ghcr.io/devcontainers/features/git
[3232 ms] Soft-dependency 'ghcr.io/devcontainers/features/common-utils' is not required.  Removing from installation order...
[3232 ms] Soft-dependency 'ghcr.io/devcontainers/features/git' is not required.  Removing from installation order...
[3232 ms] Soft-dependency 'ghcr.io/devcontainers/features/common-utils' is not required.  Removing from installation order...
[3233 ms] * Fetching feature: git-lfs_0_oci
[3881 ms] Files to omit: ''
[3890 ms] * Fetched feature: git-lfs_0_oci version 1.2.4
[3890 ms] * Fetching feature: github-cli_1_oci
[4494 ms] Files to omit: ''
[4497 ms] * Fetched feature: github-cli_1_oci version 1.0.14
[4502 ms] Start: Run: docker buildx build --load --build-arg BUILDKIT_INLINE_CACHE=1 -f /var/folders/y5/2vhs7cbd0gdf67mygnlbcfv80000gn/T/devcontainercli/container-features/0.76.0-1747633646245/Dockerfile-with-features -t vsc-invokeai-e199869c073443f3a88cb7ee0c2d481d41a1ae42940acf1c6a2de8f4ebaf4f0e --target dev_containers_target_stage --build-arg USERNAME=node --build-arg PYTHON_VERSION=3.12 --build-arg INVOKEAI_ROOT=/home/node/invokeai --build-arg INVOKEAI_SRC=/workspaces/InvokeAI --build-context dev_containers_feature_content_source=/var/folders/y5/2vhs7cbd0gdf67mygnlbcfv80000gn/T/devcontainercli/container-features/0.76.0-1747633646245 --build-arg _DEV_CONTAINERS_BASE_IMAGE=dev_container_auto_added_stage_label --build-arg _DEV_CONTAINERS_IMAGE_USER=root --build-arg _DEV_CONTAINERS_FEATURE_CONTENT_SOURCE=dev_container_feature_content_temp /Users/spencer/Documents/Code/InvokeAI/.devcontainer
[+] Building 3.5s (27/27) FINISHED                         docker:desktop-linux
 => [internal] load build definition from Dockerfile-with-features         0.0s
 => => transferring dockerfile: 9.88kB                                     0.0s
 => resolve image config for docker-image://docker.io/docker/dockerfile:1  2.3s
 => CACHED docker-image://docker.io/docker/dockerfile:1.4@sha256:9ba7531b  0.0s
 => [internal] load .dockerignore                                          0.0s
 => => transferring context: 2B                                            0.0s
 => [internal] load metadata for ghcr.io/astral-sh/uv:0.6                  1.0s
 => [internal] load metadata for mcr.microsoft.com/devcontainers/typescri  0.0s
 => [context dev_containers_feature_content_source] load .dockerignore     0.0s
 => => transferring dev_containers_feature_content_source: 2B              0.0s
 => [dev_container_auto_added_stage_label  1/10] FROM mcr.microsoft.com/d  0.0s
 => FROM ghcr.io/astral-sh/uv:0.6@sha256:4a6c9444b126bd325fba904bff796bf9  0.0s
 => [context dev_containers_feature_content_source] load from client       0.0s
 => => transferring dev_containers_feature_content_source: 29.43kB         0.0s
 => CACHED [dev_container_auto_added_stage_label  2/10] RUN rm -f /etc/ap  0.0s
 => CACHED [dev_container_auto_added_stage_label  3/10] RUN --mount=type=  0.0s
 => CACHED [dev_container_auto_added_stage_label  4/10] RUN mkdir -p "/op  0.0s
 => CACHED [dev_container_auto_added_stage_label  5/10] RUN set -eux;      0.0s
 => CACHED [dev_container_auto_added_stage_label  6/10] RUN corepack use   0.0s
 => CACHED [dev_container_auto_added_stage_label  7/10] COPY --from=ghcr.  0.0s
 => CACHED [dev_container_auto_added_stage_label  8/10] RUN uv venv && uv  0.0s
 => CACHED [dev_container_auto_added_stage_label  9/10] RUN set -eux;      0.0s
 => CACHED [dev_container_auto_added_stage_label 10/10] WORKDIR /workspac  0.0s
 => CACHED [dev_containers_target_stage 1/5] RUN mkdir -p /tmp/dev-contai  0.0s
 => CACHED [dev_containers_feature_content_normalize 1/2] COPY --from=dev  0.0s
 => CACHED [dev_containers_feature_content_normalize 2/2] RUN chmod -R 07  0.0s
 => CACHED [dev_containers_target_stage 2/5] COPY --from=dev_containers_f  0.0s
 => CACHED [dev_containers_target_stage 3/5] RUN echo "_CONTAINER_USER_HO  0.0s
 => CACHED [dev_containers_target_stage 4/5] RUN --mount=type=bind,from=d  0.0s
 => CACHED [dev_containers_target_stage 5/5] RUN --mount=type=bind,from=d  0.0s
 => exporting to image                                                     0.0s
 => => exporting layers                                                    0.0s
 => => preparing layers for inline cache                                   0.0s
 => => writing image sha256:e521d4018984e8e279f0bbe94c9d88997601f08308591  0.0s
 => => naming to docker.io/library/vsc-invokeai-e199869c073443f3a88cb7ee0  0.0s
[8176 ms] Start: Run: docker info -f {{.Runtimes.nvidia}}
[8229 ms] Start: Run: docker events --format {{json .}} --filter event=start
[8230 ms] Start: Starting container
[8230 ms] Start: Run: docker run --sig-proxy=false -a STDOUT -a STDERR --mount type=bind,source=/Users/spencer/Documents/Code/InvokeAI,target=/workspaces/InvokeAI,consistency=cached --mount type=volume,src=invokeai-dev-cache,dst=/home/node/.cache --mount type=volume,src=invokeai-downloads-cache,dst=/home/node/invokeai/models/.download_cache --mount type=bind,src=/Users/spencer/Documents/Code/InvokeAI/.devcontainer/.vscode/launch.json,dst=/workspaces/InvokeAI/.vscode/launch.json --mount type=bind,src=/Users/spencer/Documents/Code/InvokeAI/.devcontainer/mounts/custom-nodes,dst=/home/node/invokeai/nodes --mount type=volume,src=vscode,dst=/vscode -l devcontainer.local_folder=/Users/spencer/Documents/Code/InvokeAI -l devcontainer.config_file=/Users/spencer/Documents/Code/InvokeAI/.devcontainer/devcontainer.json -e UV_COMPILE_BYTECODE=1 -e INVOKEAI_DEV_RELOAD=true -e UV_LINK_MODE=symlink --env-file .devcontainer/.env --entrypoint /bin/sh vsc-invokeai-e199869c073443f3a88cb7ee0c2d481d41a1ae42940acf1c6a2de8f4ebaf4f0e -c echo Container started
[8409 ms] Start: Run: docker ps -q -a --filter label=devcontainer.local_folder=/Users/spencer/Documents/Code/InvokeAI --filter label=devcontainer.config_file=/Users/spencer/Documents/Code/InvokeAI/.devcontainer/devcontainer.json
Container started
[8422 ms] Start: Run: docker inspect --type container 83163e912ceb
[8434 ms] Start: Inspecting container
[8434 ms] Start: Run: docker inspect --type container 83163e912ceb0141efc07bf9511f595c58a81cdf52d166607e912fdef11b2a88
[8447 ms] Start: Run in container: /bin/sh
[8448 ms] Start: Run in container: uname -m
[8491 ms] aarch64
[8491 ms] 
[8491 ms] Start: Run in container: (cat /etc/os-release || cat /usr/lib/os-release) 2>/dev/null
[8493 ms] PRETTY_NAME="Debian GNU/Linux 12 (bookworm)"
NAME="Debian GNU/Linux"
VERSION_ID="12"
VERSION="12 (bookworm)"
VERSION_CODENAME=bookworm
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"
[8493 ms] 
[8493 ms] Start: Run in container:  (command -v getent >/dev/null 2>&1 && getent passwd 'node' || grep -E '^node|^[^:]*:[^:]*:node:' /etc/passwd || true)
[8497 ms] Start: Run in container: test -f '/var/devcontainer/.patchEtcEnvironmentMarker'
[8498 ms] 
[8498 ms] 
[8498 ms] Exit code 1
[8498 ms] Start: Run in container: /bin/sh
[8499 ms] Start: Run in container: test ! -f '/var/devcontainer/.patchEtcEnvironmentMarker' && set -o noclobber && mkdir -p '/var/devcontainer' && { > '/var/devcontainer/.patchEtcEnvironmentMarker' ; } 2> /dev/null
[8550 ms] 
[8550 ms] 
[8551 ms] Start: Run in container: cat >> /etc/environment <<'etcEnvrionmentEOF'
[8554 ms] 
[8554 ms] 
[8554 ms] Start: Run in container: test -f '/var/devcontainer/.patchEtcProfileMarker'
[8555 ms] 
[8555 ms] 
[8555 ms] Exit code 1
[8555 ms] Start: Run in container: test ! -f '/var/devcontainer/.patchEtcProfileMarker' && set -o noclobber && mkdir -p '/var/devcontainer' && { > '/var/devcontainer/.patchEtcProfileMarker' ; } 2> /dev/null
[8556 ms] 
[8556 ms] 
[8556 ms] Start: Run in container: sed -i -E 's/((^|\s)PATH=)([^\$]*)$/\1${PATH:-\3}/g' /etc/profile || true
[8559 ms] 
[8559 ms] 
[8562 ms] Start: Run: docker inspect --type container 83163e912ceb0141efc07bf9511f595c58a81cdf52d166607e912fdef11b2a88
[8575 ms] Start: Run: docker exec -i -u root 83163e912ceb0141efc07bf9511f595c58a81cdf52d166607e912fdef11b2a88 /bin/sh -c echo "New container started. Keep-alive process started." ; export VSCODE_REMOTE_CONTAINERS_SESSION=41d5f64f-9d69-442f-a733-1f8dfea6f5ad1747633645087 ; /bin/sh
[8576 ms] Start: Inspecting container
[8576 ms] Start: Run: docker inspect --type container 83163e912ceb0141efc07bf9511f595c58a81cdf52d166607e912fdef11b2a88
[8591 ms] Start: Run in container: /bin/sh
[8592 ms] Start: Run in container: uname -m
[8630 ms] New container started. Keep-alive process started.
[8630 ms] aarch64
[8630 ms] 
[8630 ms] Start: Run in container: (cat /etc/os-release || cat /usr/lib/os-release) 2>/dev/null
[8632 ms] PRETTY_NAME="Debian GNU/Linux 12 (bookworm)"
NAME="Debian GNU/Linux"
VERSION_ID="12"
VERSION="12 (bookworm)"
VERSION_CODENAME=bookworm
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"
[8632 ms] 
[8632 ms] Start: Run in container:  (command -v getent >/dev/null 2>&1 && getent passwd 'node' || grep -E '^node|^[^:]*:[^:]*:node:' /etc/passwd || true)
[8633 ms] safe.directory: Looking up root folder for workspace folder '/workspaces/InvokeAI'.
[8633 ms] Start: Run in container: command -v git >/dev/null 2>&1 && ROOT_FOLDER="$(git -C '/workspaces/InvokeAI' rev-parse --show-toplevel)" && test "$(stat -c %u "$ROOT_FOLDER")" != "$(id -u)" && echo -n "$ROOT_FOLDER"
[8646 ms] 
[8646 ms] 
[8646 ms] Exit code 1
[8647 ms] safe.directory: Checking host ownership of root folder at mount point '/workspaces/InvokeAI' skipped.
[8647 ms] Start: Updating configuration state
[8648 ms] Start: Setup shutdown monitor
[8648 ms] Forking shutdown monitor: /Users/spencer/.vscode/extensions/ms-vscode-remote.remote-containers-0.413.0/dist/shutdown/shutdownMonitorProcess /var/folders/y5/2vhs7cbd0gdf67mygnlbcfv80000gn/T/vscode-remote-containers-ff14c08e-1e8e-42d2-9b14-9a4f2bdb27ec.sock singleContainer Debug /Users/spencer/Library/Application Support/Code/logs/20250519T100151/window3/exthost/ms-vscode-remote.remote-containers 1747633645622
[8650 ms] Start: Run in container: test -d '/home/node/.vscode-server'
[8651 ms] 
[8651 ms] 
[8651 ms] Exit code 1
[8651 ms] Start: Run in container: test -d '/home/node/.vscode-remote'
[8652 ms] 
[8652 ms] 
[8652 ms] Exit code 1
[8652 ms] Start: Run in container: test ! -f '/home/node/.vscode-server/data/Machine/.writeMachineSettingsMarker' && set -o noclobber && mkdir -p '/home/node/.vscode-server/data/Machine' && { > '/home/node/.vscode-server/data/Machine/.writeMachineSettingsMarker' ; } 2> /dev/null
[8653 ms] 
[8653 ms] 
[8653 ms] Start: Run in container: which apt dpkg snap dnf yum rpm apk docker git gh kubectl podman curl wget ssh scp rsync gpg ps lsof netstat top tree find grep zip unzip tar gzip bzip2 xz || true
[8658 ms] Start: Run in container: mkdir -p '/home/node/.vscode-server/data/Machine' && cat >'/home/node/.vscode-server/data/Machine/settings.json' <<'settingsJSON'
[8659 ms] 
[8659 ms] 
[8659 ms] 
Support for ARM64 is in preview.

[8659 ms] Start: Run in container: test -d '/home/node/.vscode-server/bin/848b80aeb52026648a8ff9f7c45a9b0a80641e2e'
[8660 ms] 
[8660 ms] 
[8660 ms] Exit code 1
[8660 ms] Start: Run in container: test -d '/vscode/vscode-server/bin/linux-arm64/848b80aeb52026648a8ff9f7c45a9b0a80641e2e'
[8661 ms] 
[8661 ms] 
[8661 ms] Exit code 1
[8661 ms] Installing VS Code Server for commit 848b80aeb52026648a8ff9f7c45a9b0a80641e2e
[8661 ms] Start: Run in container: /bin/sh
[8663 ms] Start: Downloading VS Code Server
[8663 ms] 848b80aeb52026648a8ff9f7c45a9b0a80641e2e linux-arm64 stable
[8663 ms] URL: https://update.code.visualstudio.com/commit:848b80aeb52026648a8ff9f7c45a9b0a80641e2e/server-linux-arm64/stable
[8663 ms] Path: /var/folders/y5/2vhs7cbd0gdf67mygnlbcfv80000gn/T/vsch/serverCache/848b80aeb52026648a8ff9f7c45a9b0a80641e2e/vscode-server-linux-arm64.tar.gz
[10623 ms] Start: Installing VS Code Server
[10624 ms] Start: Run in container: mkdir -p /vscode/vscode-server/bin/linux-arm64/848b80aeb52026648a8ff9f7c45a9b0a80641e2e_1747633656246
[10625 ms] 
[10625 ms] 
[10636 ms] Start: Run in container: (dd iflag=fullblock bs=8192 count=7359; dd iflag=fullblock bs=4978 count=1) | tar --no-same-owner -xz -C /vscode/vscode-server/bin/linux-arm64/848b80aeb52026648a8ff9f7c45a9b0a80641e2e_1747633656246
[11839 ms] 7359+0 records in
7359+0 records out
60284928 bytes (60 MB, 57 MiB) copied, 1.19913 s, 50.3 MB/s
[11839 ms] 1+0 records in
1+0 records out
4978 bytes (5.0 kB, 4.9 KiB) copied, 2.4291e-05 s, 205 MB/s
[11844 ms] 
[11845 ms] 
[11845 ms] Start: Run in container: mv -n /vscode/vscode-server/bin/linux-arm64/848b80aeb52026648a8ff9f7c45a9b0a80641e2e_1747633656246/* /vscode/vscode-server/bin/linux-arm64/848b80aeb52026648a8ff9f7c45a9b0a80641e2e && rmdir /vscode/vscode-server/bin/linux-arm64/848b80aeb52026648a8ff9f7c45a9b0a80641e2e_1747633656246
[11849 ms] 
[11849 ms] 
[11850 ms] Start: Run in container: mkdir -p '/home/node/.vscode-server/bin' && ln -snf '/vscode/vscode-server/bin/linux-arm64/848b80aeb52026648a8ff9f7c45a9b0a80641e2e' '/home/node/.vscode-server/bin/848b80aeb52026648a8ff9f7c45a9b0a80641e2e'
[11851 ms] 
[11851 ms] 
[11852 ms] Start: Run in container: touch '/vscode/vscode-server/bin/linux-arm64/848b80aeb52026648a8ff9f7c45a9b0a80641e2e' && cd '/vscode/vscode-server/bin/linux-arm64' && ls -td *[^_]????????????? | tail -n +10 | xargs rm -rf
[11852 ms] Start: Run in container: test -x '/home/node/.vscode-server/bin/848b80aeb52026648a8ff9f7c45a9b0a80641e2e/bin/helpers/check-requirements.sh'
[11852 ms] 
[11852 ms] 
[11853 ms] Start: Run in container: '/home/node/.vscode-server/bin/848b80aeb52026648a8ff9f7c45a9b0a80641e2e/bin/helpers/check-requirements.sh'
[11856 ms] 
[11856 ms] ls: cannot access '*[^_]?????????????': No such file or directory
[11883 ms] 
[11884 ms] 
[11885 ms] Start: Launching Dev Containers helper.
[11886 ms] ssh-agent: SSH_AUTH_SOCK in container (/tmp/vscode-ssh-auth-1fc29e51-d32a-4ed1-85a3-67fbd7694000.sock) forwarded to local host (/private/tmp/com.apple.launchd.360bPPFuwV/Listeners).
[11886 ms] X11 forwarding: DISPLAY not set on local host.
[11886 ms] Start: Run in container: gpgconf --list-dirs
[11892 ms] sysconfdir:/etc/gnupg
bindir:/usr/bin
libexecdir:/usr/lib/gnupg
libdir:/usr/lib/aarch64-linux-gnu/gnupg
datadir:/usr/share/gnupg
localedir:/usr/share/locale
socketdir:/home/node/.gnupg
dirmngr-socket:/home/node/.gnupg/S.dirmngr
agent-ssh-socket:/home/node/.gnupg/S.gpg-agent.ssh
agent-extra-socket:/home/node/.gnupg/S.gpg-agent.extra
agent-browser-socket:/home/node/.gnupg/S.gpg-agent.browser
agent-socket:/home/node/.gnupg/S.gpg-agent
homedir:/home/node/.gnupg
[11892 ms] 
[11893 ms] Start: Run in container: ls '/home/node/.gnupg/private-keys-v1.d' 2>/dev/null
[11894 ms] 
[11894 ms] 
[11894 ms] Exit code 2
[11894 ms] Start: Run: gpgconf --list-dirs
[11992 ms] sysconfdir:/opt/homebrew/etc/gnupg
bindir:/opt/homebrew/Cellar/gnupg/2.4.6/bin
libexecdir:/opt/homebrew/Cellar/gnupg/2.4.6/libexec
libdir:/opt/homebrew/Cellar/gnupg/2.4.6/lib/gnupg
datadir:/opt/homebrew/Cellar/gnupg/2.4.6/share/gnupg
localedir:/opt/homebrew/Cellar/gnupg/2.4.6/share/locale
socketdir:/Users/spencer/.gnupg
dirmngr-socket:/Users/spencer/.gnupg/S.dirmngr
keyboxd-socket:/Users/spencer/.gnupg/S.keyboxd
agent-ssh-socket:/Users/spencer/.gnupg/S.gpg-agent.ssh
agent-extra-socket:/Users/spencer/.gnupg/S.gpg-agent.extra
agent-browser-socket:/Users/spencer/.gnupg/S.gpg-agent.browser
agent-socket:/Users/spencer/.gnupg/S.gpg-agent
homedir:/Users/spencer/.gnupg
[11992 ms] 
[11994 ms] Start: Run in container: test -f '/home/node/.gnupg/pubring.kbx'
[11995 ms] 
[11995 ms] 
[11995 ms] Exit code 1
[11995 ms] Start: Run in container: test -f '/home/node/.gnupg/pubring.gpg'
[11996 ms] 
[11996 ms] 
[11996 ms] Exit code 1
[11997 ms] Start: Run in container: test -f '/home/node/.gnupg/trustdb.gpg'
[11997 ms] 
[11998 ms] 
[11998 ms] Exit code 1
[11998 ms] Start: Run in container: mkdir -p -m 700 '/home/node/.gnupg'
[11998 ms] gpg-agent: Socket in container (/home/node/.gnupg/S.gpg-agent) forwarded to local host (/Users/spencer/.gnupg/S.gpg-agent.extra).
[11998 ms] Start: Checking for GitHub CLI
[11999 ms] 
[11999 ms] 
[11999 ms] Start: Run in container: (command -v 'gh') >/dev/null 2>&1
[12000 ms] Start: Run: gpg --export --export-options backup
[12002 ms] 
[12002 ms] 
[12002 ms] Start: Setting up GitHub CLI
[12002 ms] Start: Run in container: gh auth status
[12003 ms] Start: Run in container: (command -v 'docker' || command -v 'oras' || command -v 'skopeo') >/dev/null 2>&1
[12005 ms] 
[12005 ms] 
[12005 ms] Exit code 127
[12005 ms] Start: Run in container: /bin/sh
[12006 ms] userEnvProbe: loginInteractiveShell (default)
[12007 ms] Start: Run in container: test -f '/tmp/devcontainers-41d5f64f-9d69-442f-a733-1f8dfea6f5ad1747633645087/env-loginInteractiveShell.json'
[12007 ms] Start: Run in container: echo ~
[12008 ms] 
[12008 ms] 
[12008 ms] Exit code 1
[12008 ms] Start: Run in container: # Test for /home/node/.ssh/known_hosts and ssh
[12008 ms] userEnvProbe: not found in cache
[12009 ms] userEnvProbe shell: /bin/bash
[12010 ms] 
[12010 ms] 
[12011 ms] Start: Run in container: # Copy /Users/spencer/.ssh/known_hosts to /home/node/.ssh/known_hosts
[12013 ms] 
[12013 ms] 
[12013 ms] Start: Run in container: command -v git >/dev/null 2>&1 && git config --system --replace-all credential.helper '!f() { /home/node/.vscode-server/bin/848b80aeb52026648a8ff9f7c45a9b0a80641e2e/node /tmp/vscode-remote-containers-1fc29e51-d32a-4ed1-85a3-67fbd7694000.js git-credential-helper $*; }; f' || true
[12022 ms] 
[12022 ms] 
[12022 ms] Start: Run in container: for pid in `cd /proc && ls -d [0-9]*`; do { echo $pid ; readlink /proc/$pid/cwd || echo ; readlink /proc/$pid/ns/mnt || echo ; cat /proc/$pid/stat | tr "
[12044 ms] Start: Run in container: cat '/home/node/.vscode-server/bin/848b80aeb52026648a8ff9f7c45a9b0a80641e2e/product.json'
[12046 ms] Start: Run in container: cat '/home/node/.vscode-server/data/Machine/.connection-token-848b80aeb52026648a8ff9f7c45a9b0a80641e2e' 2>/dev/null || (umask 377 && echo '182e3527-54e7-43f0-be46-74915fa72041' >'/home/node/.vscode-server/data/Machine/.connection-token-848b80aeb52026648a8ff9f7c45a9b0a80641e2e-af9f787e-21f8-4bea-9b93-208434709397' && mv -n '/home/node/.vscode-server/data/Machine/.connection-token-848b80aeb52026648a8ff9f7c45a9b0a80641e2e-af9f787e-21f8-4bea-9b93-208434709397' '/home/node/.vscode-server/data/Machine/.connection-token-848b80aeb52026648a8ff9f7c45a9b0a80641e2e' && rm -f '/home/node/.vscode-server/data/Machine/.connection-token-848b80aeb52026648a8ff9f7c45a9b0a80641e2e-af9f787e-21f8-4bea-9b93-208434709397' && cat '/home/node/.vscode-server/data/Machine/.connection-token-848b80aeb52026648a8ff9f7c45a9b0a80641e2e')
[12047 ms] /home/node
[12047 ms] 
[12047 ms] Start: Run in container: cat <<'EOF-/tmp/vscode-remote-containers-1fc29e51-d32a-4ed1-85a3-67fbd7694000.js' >/tmp/vscode-remote-containers-1fc29e51-d32a-4ed1-85a3-67fbd7694000.js
[12049 ms] 182e3527-54e7-43f0-be46-74915fa72041
[12049 ms] 
[12049 ms] Start: Starting VS Code Server
[12050 ms] Start: Preparing Extensions
[12050 ms] Start: Run in container: test ! -f '/home/node/.vscode-server/data/Machine/.installExtensionsMarker' && set -o noclobber && mkdir -p '/home/node/.vscode-server/data/Machine' && { > '/home/node/.vscode-server/data/Machine/.installExtensionsMarker' ; } 2> /dev/null
[12050 ms] 
[12050 ms] 
[12050 ms] Start: Run in container: cat <<'EOF-/tmp/vscode-remote-containers-server-1fc29e51-d32a-4ed1-85a3-67fbd7694000.js' >/tmp/vscode-remote-containers-server-1fc29e51-d32a-4ed1-85a3-67fbd7694000.js_1747633657672
[12051 ms] 
[12051 ms] 
[12052 ms] Extensions cache, install extensions: ms-vscode-remote.remote-containers, ms-azuretools.vscode-docker, ms-toolsai.jupyter, ms-toolsai.vscode-jupyter-cell-tags, ms-toolsai.jupyter-renderers, ms-toolsai.vscode-jupyter-slideshow, ms-python.python, charliermarsh.ruff, esbenp.prettier-vscode, DavidAnson.vscode-markdownlint, antfu.vite, docker.docker, dbaeumer.vscode-eslint, vitest.explorer, tamasfe.even-better-toml, eamodio.gitlens
[12052 ms] Start: Run in container: test -d /home/node/.vscode-server/extensionsCache && ls /home/node/.vscode-server/extensionsCache || true
[12053 ms] 
[12053 ms] 
[12054 ms] 
[12054 ms] 
[12054 ms] Start: Run in container: test -d /vscode/vscode-server/extensionsCache && ls /vscode/vscode-server/extensionsCache || true
[12055 ms] 0185eca3-92c4-4d71-bb27-5a0f7e86faf0
20be95fb-4f5c-4a3a-a899-a358e7d00ca8
227ba14c-d08b-406d-b779-19b0e8d40c4d
2c832c2a-7f0c-4ca7-8046-41d123701a57
41a7cd01-d277-42a5-9630-087e644068a9
446abfdb-52cc-496b-885e-b4cfdc8b0514
4c7330d6-a5fb-4f72-8315-3fa3eded8170
a80379b6-3fc0-4bd6-9e9c-18a658cd4db1
abdf59df-55be-48db-ac26-d38a95a3dee6
antfu.browse-lite-0.3.9
antfu.vite-0.2.5
b3010348-cf64-4ba5-8712-cd8dfc802711
bf51a258-0692-44a9-9fc9-c533583fe53c
charliermarsh.ruff-2025.22.0-linux-arm64
davidanson.vscode-markdownlint-0.59.0
dbaeumer.vscode-eslint-3.0.10
docker.docker-0.6.0-linux-arm64
eamodio.gitlens-17.0.3
esbenp.prettier-vscode-11.0.0
fcae84b1-4a95-434e-9922-96432a271922
github.copilot-1.303.0
github.copilot-1.319.1560
github.copilot-chat-0.26.7
github.copilot-chat-0.27.0
github.vscode-pull-request-github-0.110.0
ms-azuretools.vscode-docker-1.29.6
ms-python.debugpy-2025.8.0-linux-arm64
ms-python.python-2025.6.0-linux-arm64
ms-python.vscode-pylance-2025.4.1
ms-toolsai.jupyter-2025.4.0-linux-arm64
ms-toolsai.jupyter-keymap-1.1.2
ms-toolsai.jupyter-renderers-1.1.0
ms-toolsai.vscode-jupyter-cell-tags-0.1.9
ms-toolsai.vscode-jupyter-slideshow-0.1.6
ms-vscode-remote.remote-containers-0.413.0
tamasfe.even-better-toml-0.21.2
vitest.explorer-1.18.1
[12055 ms] 
[12055 ms] Extensions cache, link in container: antfu.vite-0.2.5, charliermarsh.ruff-2025.22.0-linux-arm64, davidanson.vscode-markdownlint-0.59.0, dbaeumer.vscode-eslint-3.0.10, docker.docker-0.6.0-linux-arm64, eamodio.gitlens-17.0.3, esbenp.prettier-vscode-11.0.0, ms-azuretools.vscode-docker-1.29.6, ms-python.python-2025.6.0-linux-arm64, ms-toolsai.jupyter-2025.4.0-linux-arm64, ms-toolsai.jupyter-keymap-1.1.2, ms-toolsai.jupyter-renderers-1.1.0, ms-toolsai.vscode-jupyter-cell-tags-0.1.9, ms-toolsai.vscode-jupyter-slideshow-0.1.6, ms-vscode-remote.remote-containers-0.413.0, tamasfe.even-better-toml-0.21.2, vitest.explorer-1.18.1
[12055 ms] Start: Run in container: mkdir -p '/home/node/.vscode-server/extensionsCache' && ln -s '/vscode/vscode-server/extensionsCache'/* '/home/node/.vscode-server/extensionsCache' || true
[12057 ms] 
[12057 ms] 
[12058 ms] Optimizing extensions for quality: stable
[12058 ms] Start: Run in container: cd /vscode/vscode-server/extensionsCache && touch 'antfu.vite-0.2.5' 'charliermarsh.ruff-2025.22.0-linux-arm64' 'davidanson.vscode-markdownlint-0.59.0' 'dbaeumer.vscode-eslint-3.0.10' 'docker.docker-0.6.0-linux-arm64' 'eamodio.gitlens-17.0.3' 'esbenp.prettier-vscode-11.0.0' 'ms-azuretools.vscode-docker-1.29.6' 'ms-python.python-2025.6.0-linux-arm64' 'ms-toolsai.jupyter-2025.4.0-linux-arm64' 'ms-toolsai.jupyter-keymap-1.1.2' 'ms-toolsai.jupyter-renderers-1.1.0' 'ms-toolsai.vscode-jupyter-cell-tags-0.1.9' 'ms-toolsai.vscode-jupyter-slideshow-0.1.6' 'ms-vscode-remote.remote-containers-0.413.0' 'tamasfe.even-better-toml-0.21.2' 'vitest.explorer-1.18.1'
[12058 ms] Start: Run in container: /home/node/.vscode-server/bin/848b80aeb52026648a8ff9f7c45a9b0a80641e2e/bin/code-server --log debug --force-disable-user-env --server-data-dir /home/node/.vscode-server --use-host-proxy --telemetry-level off --accept-server-license-terms --host 127.0.0.1 --port 0 --connection-token-file /home/node/.vscode-server/data/Machine/.connection-token-848b80aeb52026648a8ff9f7c45a9b0a80641e2e --extensions-download-dir /home/node/.vscode-server/extensionsCache --install-extension ms-vscode-remote.remote-containers --install-extension ms-azuretools.vscode-docker --install-extension ms-toolsai.jupyter --install-extension ms-toolsai.vscode-jupyter-cell-tags --install-extension ms-toolsai.jupyter-renderers --install-extension ms-toolsai.vscode-jupyter-slideshow --install-extension ms-python.python --install-extension charliermarsh.ruff --install-extension esbenp.prettier-vscode --install-extension DavidAnson.vscode-markdownlint --install-extension antfu.vite --install-extension docker.docker --install-extension dbaeumer.vscode-eslint --install-extension vitest.explorer --install-extension tamasfe.even-better-toml --install-extension eamodio.gitlens --start-server --disable-websocket-compression --skip-requirements-check
[12059 ms] 
[12059 ms] 
[12109 ms] Start: Run: gpgsm --export --armor
[12147 ms] userEnvProbe PATHs:
Probe:     '/usr/local/share/nvm/current/bin:/usr/local/share/npm-global/bin:/home/node/.venv/bin:/home/node/.cache/pnpm:/home/node/.cache/uv:/usr/local/share/nvm/current/bin:/usr/local/share/npm-global/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/home/node/.local/bin'
Container: '/home/node/.venv/bin:/home/node/.cache/pnpm:/home/node/.cache/uv:/usr/local/share/nvm/current/bin:/usr/local/share/npm-global/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin'
[12148 ms] Start: Run in container: mkdir -p '/tmp/devcontainers-41d5f64f-9d69-442f-a733-1f8dfea6f5ad1747633645087' && cat > '/tmp/devcontainers-41d5f64f-9d69-442f-a733-1f8dfea6f5ad1747633645087/env-loginInteractiveShell.json' << 'envJSON'
[12149 ms] 
[12149 ms] 
[12159 ms] *
* Visual Studio Code Server
*
* By using the software, you agree to
* the Visual Studio Code Server License Terms (https://aka.ms/vscode-server-license) and
* the Microsoft Privacy Statement (https://privacy.microsoft.com/en-US/privacystatement).
*
[12162 ms] Server bound to 127.0.0.1:44211 (IPv4)
Extension host agent listening on 44211

[12162 ms] Start: Run in container: echo 44211 >'/home/node/.vscode-server/data/Machine/.devport-848b80aeb52026648a8ff9f7c45a9b0a80641e2e'
[12163 ms] 
[12163 ms] 
[12163 ms] Port forwarding for container port 44211 starts listening on local port.
[12164 ms] Port forwarding local port 44211 to container port 44211
[12169 ms] Start: Run: gpg --export-ownertrust
[12181 ms] Start: Run: gpg-connect-agent updatestartuptty /bye
[12185 ms] Start: Run: gh auth token
[12195 ms] Ignoring option 'skip-requirements-check': not supported for server.
[12199 ms] [05:47:37] 




[12206 ms] Start: Run in container: (dd iflag=fullblock bs=8192 count=0 2>/dev/null; dd iflag=fullblock bs=120 count=1 2>/dev/null) | gpg --import-ownertrust
[12216 ms] 
[12216 ms] gpg: keybox '/home/node/.gnupg/pubring.kbx' created
gpg: /home/node/.gnupg/trustdb.gpg: trustdb created
[12216 ms] Running Dev Containers CLI:   run-user-commands --user-data-folder /Users/spencer/Library/Application Support/Code/User/globalStorage/ms-vscode-remote.remote-containers/data --container-session-data-folder /tmp/devcontainers-41d5f64f-9d69-442f-a733-1f8dfea6f5ad1747633645087 --workspace-folder /Users/spencer/Documents/Code/InvokeAI --id-label devcontainer.local_folder=/Users/spencer/Documents/Code/InvokeAI --id-label devcontainer.config_file=/Users/spencer/Documents/Code/InvokeAI/.devcontainer/devcontainer.json --container-id 83163e912ceb0141efc07bf9511f595c58a81cdf52d166607e912fdef11b2a88 --log-level debug --log-format json --config /Users/spencer/Documents/Code/InvokeAI/.devcontainer/devcontainer.json --default-user-env-probe loginInteractiveShell --skip-non-blocking-commands true --prebuild false --stop-for-personalization true --remote-env REMOTE_CONTAINERS_IPC=/tmp/vscode-remote-containers-ipc-1fc29e51-d32a-4ed1-85a3-67fbd7694000.sock --remote-env SSH_AUTH_SOCK=/tmp/vscode-ssh-auth-1fc29e51-d32a-4ed1-85a3-67fbd7694000.sock --remote-env REMOTE_CONTAINERS=true --mount-workspace-git-root --terminal-columns 186 --terminal-rows 22 --dotfiles-target-path ~/dotfiles
[12216 ms] Start: Run: /Applications/Visual Studio Code.app/Contents/Frameworks/Code Helper (Plugin).app/Contents/MacOS/Code Helper (Plugin) /Users/spencer/.vscode/extensions/ms-vscode-remote.remote-containers-0.413.0/dist/spec-node/devContainersSpecCLI.js run-user-commands --user-data-folder /Users/spencer/Library/Application Support/Code/User/globalStorage/ms-vscode-remote.remote-containers/data --container-session-data-folder /tmp/devcontainers-41d5f64f-9d69-442f-a733-1f8dfea6f5ad1747633645087 --workspace-folder /Users/spencer/Documents/Code/InvokeAI --id-label devcontainer.local_folder=/Users/spencer/Documents/Code/InvokeAI --id-label devcontainer.config_file=/Users/spencer/Documents/Code/InvokeAI/.devcontainer/devcontainer.json --container-id 83163e912ceb0141efc07bf9511f595c58a81cdf52d166607e912fdef11b2a88 --log-level debug --log-format json --config /Users/spencer/Documents/Code/InvokeAI/.devcontainer/devcontainer.json --default-user-env-probe loginInteractiveShell --skip-non-blocking-commands true --prebuild false --stop-for-personalization true --remote-env REMOTE_CONTAINERS_IPC=/tmp/vscode-remote-containers-ipc-1fc29e51-d32a-4ed1-85a3-67fbd7694000.sock --remote-env SSH_AUTH_SOCK=/tmp/vscode-ssh-auth-1fc29e51-d32a-4ed1-85a3-67fbd7694000.sock --remote-env REMOTE_CONTAINERS=true --mount-workspace-git-root --terminal-columns 186 --terminal-rows 22 --dotfiles-target-path ~/dotfiles
[12238 ms] [05:47:37] Installing extensions...
[12239 ms] [05:47:37] Extension host agent started.
[12245 ms] [05:47:37] Error while reading the extension cache file: /home/node/.vscode-server/data/CachedProfilesData/__default__profile__/extensions.builtin.cache Unable to read file '/home/node/.vscode-server/data/CachedProfilesData/__default__profile__/extensions.builtin.cache' (Error: Unable to resolve nonexistent file '/home/node/.vscode-server/data/CachedProfilesData/__default__profile__/extensions.builtin.cache')
[12246 ms] [05:47:37] Started initializing default profile extensions in extensions installation folder. file:///home/node/.vscode-server/extensions
[12272 ms] [05:47:37] ComputeTargetPlatform: linux-arm64
[12299 ms] [05:47:37] Completed initializing default profile extensions in extensions installation folder. file:///home/node/.vscode-server/extensions
[12309 ms] [05:47:37] ComputeTargetPlatform: linux-arm64
[12310 ms] Start: Run in container: gh auth login --with-token
[12350 ms] @devcontainers/cli 0.76.0. Node.js v20.19.0. darwin 23.3.0 arm64.
[12350 ms] Start: Run: docker buildx version
[12396 ms] github.com/docker/buildx v0.22.0-desktop.1 b45d7a53aa26a5e76aae051acdb15775c0e178da
[12396 ms] 
[12396 ms] Start: Run: docker -v
[12408 ms] Start: Run: git rev-parse --show-cdup
[12418 ms] Start: Run: docker inspect --type container 83163e912ceb0141efc07bf9511f595c58a81cdf52d166607e912fdef11b2a88
[12431 ms] Start: Inspecting container
[12431 ms] Start: Run: docker inspect --type container 83163e912ceb0141efc07bf9511f595c58a81cdf52d166607e912fdef11b2a88
[12444 ms] Start: Run in container: /bin/sh
[12445 ms] Start: Run in container: uname -m
[12489 ms] aarch64
[12489 ms] 
[12489 ms] Start: Run in container: (cat /etc/os-release || cat /usr/lib/os-release) 2>/dev/null
[12490 ms] PRETTY_NAME="Debian GNU/Linux 12 (bookworm)"
NAME="Debian GNU/Linux"
VERSION_ID="12"
VERSION="12 (bookworm)"
VERSION_CODENAME=bookworm
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"
[12490 ms] 
[12490 ms] Start: Run in container:  (command -v getent >/dev/null 2>&1 && getent passwd 'node' || grep -E '^node|^[^:]*:[^:]*:node:' /etc/passwd || true)
[12491 ms] userEnvProbe: loginInteractiveShell (default)
[12491 ms] Start: Run in container: test -f '/tmp/devcontainers-41d5f64f-9d69-442f-a733-1f8dfea6f5ad1747633645087/env-loginInteractiveShell.json'
[12492 ms] 
[12492 ms] 
[12492 ms] Start: Run in container: mkdir -p '/home/node/.devcontainer' && CONTENT="$(cat '/home/node/.devcontainer/.onCreateCommandMarker' 2>/dev/null || echo ENOENT)" && [ "${CONTENT:-2025-05-19T05:47:33.868178007Z}" != '2025-05-19T05:47:33.868178007Z' ] && echo '2025-05-19T05:47:33.868178007Z' > '/home/node/.devcontainer/.onCreateCommandMarker'
[12494 ms] 
[12494 ms] 
[12494 ms] Start: Run in container: cat '/tmp/devcontainers-41d5f64f-9d69-442f-a733-1f8dfea6f5ad1747633645087/env-loginInteractiveShell.json'
Running the onCreateCommand from devcontainer.json...

[12495 ms] {
        "NVM_RC_VERSION": "",
        "PYTHONUNBUFFERED": "1",
        "HOSTNAME": "83163e912ceb",
        "PYTHON_VERSION": "3.12",
        "INVOKEAI_DEV_RELOAD": "true",
        "UV_COMPILE_BYTECODE": "1",
        "XDG_DATA_HOME": "/home/node/.data",
        "REMOTE_CONTAINERS_IPC": "/tmp/vscode-remote-containers-ipc-1fc29e51-d32a-4ed1-85a3-67fbd7694000.sock",
        "YARN_VERSION": "1.22.22",
        "COMPUTE_DEVICE": "cuda",
        "GIT_LFS_CACHE": "/home/node/.cache/git-lfs",
        "UV_PYTHON": "3.12",
        "INVOKEAI_PORT": "9090",
        "HOME": "/home/node",
        "LS_COLORS": "",
        "NVM_SYMLINK_CURRENT": "true",
        "VIRTUAL_ENV": "/home/node/.venv",
        "UV_MANAGED_PYTHON": "1",
        "UV_LINK_MODE": "symlink",
        "XDG_CACHE_HOME": "/home/node/.cache",
        "NVM_DIR": "/usr/local/share/nvm",
        "HF_HOME": "/home/node/.invokeai-cache/huggingface",
        "REMOTE_CONTAINERS_SOCKETS": "[\"/tmp/vscode-ssh-auth-1fc29e51-d32a-4ed1-85a3-67fbd7694000.sock\",\"/home/node/.gnupg/S.gpg-agent\"]",
        "USER": "node",
        "INVOKEAI_HOST": "0.0.0.0",
        "SHLVL": "1",
        "NVM_CD_FLAGS": "",
        "PROMPT_DIRTRIM": "4",
        "PYTHONDONTWRITEBYTECODE": "1",
        "PATH": "/usr/local/share/nvm/current/bin:/usr/local/share/npm-global/bin:/home/node/.venv/bin:/home/node/.cache/pnpm:/home/node/.cache/uv:/usr/local/share/nvm/current/bin:/usr/local/share/npm-global/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/home/node/.local/bin",
        "UV_PYTHON_DOWNLOADS": "never",
        "UV_PROJECT_ENVIRONMENT": "/home/node/.venv",
        "NODE_VERSION": "22.14.0",
        "INVOKEAI_ROOT": "/home/node/invokeai",
        "_": "/usr/bin/cat"
}
[12495 ms] 
[12495 ms] Start: Run in container: /bin/sh -c pnpm config --global set store-dir $XDG_CACHE_HOME/pnpm
[12917 ms] Start: Run in container: mkdir -p '/home/node/.devcontainer' && CONTENT="$(cat '/home/node/.devcontainer/.updateContentCommandMarker' 2>/dev/null || echo ENOENT)" && [ "${CONTENT:-2025-05-19T05:47:33.868178007Z}" != '2025-05-19T05:47:33.868178007Z' ] && echo '2025-05-19T05:47:33.868178007Z' > '/home/node/.devcontainer/.updateContentCommandMarker'
[12920 ms] 
[12920 ms] 
Running the updateContentCommand from devcontainer.json...

[12921 ms] Start: Run in container: /bin/sh -c pnpm install --dir invokeai/frontend/web --prefer-offline
Lockfile is up to date, resolution step is skipped
Already up to date
Done in 1.3s
[15097 ms] Running Dev Containers CLI:   run-user-commands --user-data-folder /Users/spencer/Library/Application Support/Code/User/globalStorage/ms-vscode-remote.remote-containers/data --container-session-data-folder /tmp/devcontainers-41d5f64f-9d69-442f-a733-1f8dfea6f5ad1747633645087 --workspace-folder /Users/spencer/Documents/Code/InvokeAI --id-label devcontainer.local_folder=/Users/spencer/Documents/Code/InvokeAI --id-label devcontainer.config_file=/Users/spencer/Documents/Code/InvokeAI/.devcontainer/devcontainer.json --container-id 83163e912ceb0141efc07bf9511f595c58a81cdf52d166607e912fdef11b2a88 --log-level debug --log-format json --config /Users/spencer/Documents/Code/InvokeAI/.devcontainer/devcontainer.json --default-user-env-probe loginInteractiveShell --skip-non-blocking-commands false --prebuild false --stop-for-personalization true --remote-env REMOTE_CONTAINERS_IPC=/tmp/vscode-remote-containers-ipc-1fc29e51-d32a-4ed1-85a3-67fbd7694000.sock --remote-env SSH_AUTH_SOCK=/tmp/vscode-ssh-auth-1fc29e51-d32a-4ed1-85a3-67fbd7694000.sock --remote-env REMOTE_CONTAINERS=true --mount-workspace-git-root --terminal-columns 166 --terminal-rows 22 --dotfiles-target-path ~/dotfiles
[15097 ms] Start: Run: /Applications/Visual Studio Code.app/Contents/Frameworks/Code Helper (Plugin).app/Contents/MacOS/Code Helper (Plugin) /Users/spencer/.vscode/extensions/ms-vscode-remote.remote-containers-0.413.0/dist/spec-node/devContainersSpecCLI.js run-user-commands --user-data-folder /Users/spencer/Library/Application Support/Code/User/globalStorage/ms-vscode-remote.remote-containers/data --container-session-data-folder /tmp/devcontainers-41d5f64f-9d69-442f-a733-1f8dfea6f5ad1747633645087 --workspace-folder /Users/spencer/Documents/Code/InvokeAI --id-label devcontainer.local_folder=/Users/spencer/Documents/Code/InvokeAI --id-label devcontainer.config_file=/Users/spencer/Documents/Code/InvokeAI/.devcontainer/devcontainer.json --container-id 83163e912ceb0141efc07bf9511f595c58a81cdf52d166607e912fdef11b2a88 --log-level debug --log-format json --config /Users/spencer/Documents/Code/InvokeAI/.devcontainer/devcontainer.json --default-user-env-probe loginInteractiveShell --skip-non-blocking-commands false --prebuild false --stop-for-personalization true --remote-env REMOTE_CONTAINERS_IPC=/tmp/vscode-remote-containers-ipc-1fc29e51-d32a-4ed1-85a3-67fbd7694000.sock --remote-env SSH_AUTH_SOCK=/tmp/vscode-ssh-auth-1fc29e51-d32a-4ed1-85a3-67fbd7694000.sock --remote-env REMOTE_CONTAINERS=true --mount-workspace-git-root --terminal-columns 166 --terminal-rows 22 --dotfiles-target-path ~/dotfiles
[15100 ms] Initializing configuration support...
[15100 ms] Internal initialization of dev container support package...
[15103 ms] Port forwarding connection from 52187 > 44211 > 44211 in the container.
[15104 ms] Start: Run in container: /home/node/.vscode-server/bin/848b80aeb52026648a8ff9f7c45a9b0a80641e2e/node -e 
[15167 ms] Port forwarding 52187 > 44211 > 44211 stderr: Connection established
[15180 ms] Port forwarding connection from 52191 > 44211 > 44211 in the container.
[15181 ms] Start: Run in container: /home/node/.vscode-server/bin/848b80aeb52026648a8ff9f7c45a9b0a80641e2e/node -e 
[15182 ms] [05:47:40] [127.0.0.1][70e9b289][ManagementConnection] New connection established.
[15197 ms] [05:47:40] Log level changed to info
[15229 ms] @devcontainers/cli 0.76.0. Node.js v20.19.0. darwin 23.3.0 arm64.
[15229 ms] Start: Run: docker buildx version
[15237 ms] Port forwarding 52191 > 44211 > 44211 stderr: Connection established
[15288 ms] github.com/docker/buildx v0.22.0-desktop.1 b45d7a53aa26a5e76aae051acdb15775c0e178da
[15288 ms] 
[15288 ms] Start: Run: docker -v
[15300 ms] Start: Run: git rev-parse --show-cdup
[15326 ms] Start: Run: docker inspect --type container 83163e912ceb0141efc07bf9511f595c58a81cdf52d166607e912fdef11b2a88
[15344 ms] Start: Inspecting container
[15344 ms] Start: Run: docker inspect --type container 83163e912ceb0141efc07bf9511f595c58a81cdf52d166607e912fdef11b2a88
[15345 ms] [05:47:40] [127.0.0.1][ac87e2a6][ExtensionHostConnection] New connection established.
[15350 ms] [05:47:40] [127.0.0.1][ac87e2a6][ExtensionHostConnection] <536> Launched Extension Host Process.
[15362 ms] Start: Run in container: /bin/sh
[15363 ms] Start: Run in container: uname -m
[15425 ms] aarch64
[15425 ms] 
[15425 ms] Start: Run in container: (cat /etc/os-release || cat /usr/lib/os-release) 2>/dev/null
[15428 ms] PRETTY_NAME="Debian GNU/Linux 12 (bookworm)"
NAME="Debian GNU/Linux"
VERSION_ID="12"
VERSION="12 (bookworm)"
VERSION_CODENAME=bookworm
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"
[15428 ms] 
[15428 ms] Start: Run in container:  (command -v getent >/dev/null 2>&1 && getent passwd 'node' || grep -E '^node|^[^:]*:[^:]*:node:' /etc/passwd || true)
[15431 ms] userEnvProbe: loginInteractiveShell (default)
[15431 ms] Start: Run in container: test -f '/tmp/devcontainers-41d5f64f-9d69-442f-a733-1f8dfea6f5ad1747633645087/env-loginInteractiveShell.json'
[15432 ms] 
[15432 ms] 
[15432 ms] Start: Run in container: mkdir -p '/home/node/.devcontainer' && CONTENT="$(cat '/home/node/.devcontainer/.onCreateCommandMarker' 2>/dev/null || echo ENOENT)" && [ "${CONTENT:-2025-05-19T05:47:33.868178007Z}" != '2025-05-19T05:47:33.868178007Z' ] && echo '2025-05-19T05:47:33.868178007Z' > '/home/node/.devcontainer/.onCreateCommandMarker'
[15435 ms] 
[15435 ms] 
[15435 ms] Exit code 1
[15435 ms] Start: Run in container: cat '/tmp/devcontainers-41d5f64f-9d69-442f-a733-1f8dfea6f5ad1747633645087/env-loginInteractiveShell.json'
[15436 ms] {
        "NVM_RC_VERSION": "",
        "PYTHONUNBUFFERED": "1",
        "HOSTNAME": "83163e912ceb",
        "PYTHON_VERSION": "3.12",
        "INVOKEAI_DEV_RELOAD": "true",
        "UV_COMPILE_BYTECODE": "1",
        "XDG_DATA_HOME": "/home/node/.data",
        "REMOTE_CONTAINERS_IPC": "/tmp/vscode-remote-containers-ipc-1fc29e51-d32a-4ed1-85a3-67fbd7694000.sock",
        "YARN_VERSION": "1.22.22",
        "COMPUTE_DEVICE": "cuda",
        "GIT_LFS_CACHE": "/home/node/.cache/git-lfs",
        "UV_PYTHON": "3.12",
        "INVOKEAI_PORT": "9090",
        "HOME": "/home/node",
        "LS_COLORS": "",
        "NVM_SYMLINK_CURRENT": "true",
        "VIRTUAL_ENV": "/home/node/.venv",
        "UV_MANAGED_PYTHON": "1",
        "UV_LINK_MODE": "symlink",
        "XDG_CACHE_HOME": "/home/node/.cache",
        "NVM_DIR": "/usr/local/share/nvm",
        "HF_HOME": "/home/node/.invokeai-cache/huggingface",
        "REMOTE_CONTAINERS_SOCKETS": "[\"/tmp/vscode-ssh-auth-1fc29e51-d32a-4ed1-85a3-67fbd7694000.sock\",\"/home/node/.gnupg/S.gpg-agent\"]",
        "USER": "node",
        "INVOKEAI_HOST": "0.0.0.0",
        "SHLVL": "1",
        "NVM_CD_FLAGS": "",
        "PROMPT_DIRTRIM": "4",
        "PYTHONDONTWRITEBYTECODE": "1",
        "PATH": "/usr/local/share/nvm/current/bin:/usr/local/share/npm-global/bin:/home/node/.venv/bin:/home/node/.cache/pnpm:/home/node/.cache/uv:/usr/local/share/nvm/current/bin:/usr/local/share/npm-global/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/home/node/.local/bin",
        "UV_PYTHON_DOWNLOADS": "never",
        "UV_PROJECT_ENVIRONMENT": "/home/node/.venv",
        "NODE_VERSION": "22.14.0",
        "INVOKEAI_ROOT": "/home/node/invokeai",
        "_": "/usr/bin/cat"
}
[15437 ms] 
[15437 ms] Start: Run in container: mkdir -p '/home/node/.devcontainer' && CONTENT="$(cat '/home/node/.devcontainer/.updateContentCommandMarker' 2>/dev/null || echo ENOENT)" && [ "${CONTENT:-2025-05-19T05:47:33.868178007Z}" != '2025-05-19T05:47:33.868178007Z' ] && echo '2025-05-19T05:47:33.868178007Z' > '/home/node/.devcontainer/.updateContentCommandMarker'
[15440 ms] 
[15440 ms] 
[15440 ms] Exit code 1
[15440 ms] Start: Run in container: mkdir -p '/home/node/.devcontainer' && CONTENT="$(cat '/home/node/.devcontainer/.postCreateCommandMarker' 2>/dev/null || echo ENOENT)" && [ "${CONTENT:-2025-05-19T05:47:33.868178007Z}" != '2025-05-19T05:47:33.868178007Z' ] && echo '2025-05-19T05:47:33.868178007Z' > '/home/node/.devcontainer/.postCreateCommandMarker'
[15447 ms] 
[15447 ms] 
Running the postCreateCommand from Feature 'ghcr.io/devcontainers/features/git-lfs'...

[15447 ms] Start: Run in container: /bin/sh -c /usr/local/share/pull-git-lfs-artifacts.sh
Fetching git lfs artifacts...
[18005 ms] [05:47:43] Downloaded extension to file:///home/node/.vscode-server/extensionsCache/8d70f938-62b1-4ea8-97ef-f54cf8ad4c7d
[18055 ms] [05:47:43] Installing extension: github.vscode-pull-request-github {
  isApplicationScoped: false,
  profileLocation: _r {
    scheme: 'file',
    authority: '',
    path: '/home/node/.vscode-server/extensions/extensions.json',
    query: '',
    fragment: '',
    _formatted: 'file:///home/node/.vscode-server/extensions/extensions.json',
    _fsPath: '/home/node/.vscode-server/extensions/extensions.json'
  },
  productVersion: { version: '1.100.2', date: '2025-05-14T21:47:40.416Z' }
}
[18521 ms] [05:47:44] Installing extension 'ms-vscode-remote.remote-containers'...
[18535 ms] [05:47:44] Installing extension 'ms-azuretools.vscode-docker'...
[18679 ms] [05:47:44] Extracted extension to file:///home/node/.vscode-server/extensions/github.vscode-pull-request-github-0.110.0: github.vscode-pull-request-github
[18685 ms] [05:47:44] Installing extension 'ms-toolsai.jupyter-renderers'...
[18690 ms] [05:47:44] Installing extension 'ms-toolsai.vscode-jupyter-slideshow'...
[18692 ms] [05:47:44] Renamed to /home/node/.vscode-server/extensions/github.vscode-pull-request-github-0.110.0
[18727 ms] [05:47:44] Installing extension 'ms-toolsai.vscode-jupyter-cell-tags'...
[18741 ms] [05:47:44] Extension installed successfully: github.vscode-pull-request-github file:///home/node/.vscode-server/extensions/extensions.json
[18743 ms] [05:47:44] Installing extension 'ms-toolsai.jupyter'...
[18853 ms] [05:47:44] Installing extension 'ms-python.python'...
[18856 ms] [05:47:44] Installing extension 'charliermarsh.ruff'...
[18989 ms] [05:47:44] Downloaded extension to file:///home/node/.vscode-server/extensionsCache/f8092eb0-d2cb-4ebf-ab28-6c6b296320b1
[19003 ms] [05:47:44] Installing extension: github.copilot-chat {
  isApplicationScoped: false,
  profileLocation: _r {
    scheme: 'file',
    authority: '',
    path: '/home/node/.vscode-server/extensions/extensions.json',
    query: '',
    fragment: '',
    _formatted: 'file:///home/node/.vscode-server/extensions/extensions.json',
    _fsPath: '/home/node/.vscode-server/extensions/extensions.json'
  },
  productVersion: { version: '1.100.2', date: '2025-05-14T21:47:40.416Z' }
}
[19022 ms] [05:47:44] Installing extension 'davidanson.vscode-markdownlint'...
[19030 ms] [05:47:44] Installing extension 'esbenp.prettier-vscode'...
[19216 ms] [05:47:44] Installing extension 'antfu.vite'...
[19251 ms] [05:47:44] Installing extension 'docker.docker'...
Skipping object checkout, Git LFS is not installed for this repository.
Consider installing it with 'git lfs install'.
[19361 ms] Start: Run in container: # Test for /home/node/.gitconfig and git
[19362 ms] 
[19362 ms] 
[19362 ms] Start: Run in container: # Copy /Users/spencer/.gitconfig to /home/node/.gitconfig
[19364 ms] 
[19364 ms] 
[19365 ms] Start: Run in container: # Cleaning up git config
[19376 ms] 
[19377 ms] 
[19377 ms] Start: Run: git config --global --get gpg.ssh.allowedSignersFile
[19378 ms] Start: Run in container: command -v git >/dev/null 2>&1 && git config --global --replace-all credential.helper '!f() { /home/node/.vscode-server/bin/848b80aeb52026648a8ff9f7c45a9b0a80641e2e/node /tmp/vscode-remote-containers-1fc29e51-d32a-4ed1-85a3-67fbd7694000.js git-credential-helper $*; }; f' || true
[19381 ms] [05:47:45] Installing extension 'vitest.explorer'...
[19384 ms] 
[19384 ms] 
[19384 ms] Running Dev Containers CLI:   run-user-commands --user-data-folder /Users/spencer/Library/Application Support/Code/User/globalStorage/ms-vscode-remote.remote-containers/data --container-session-data-folder /tmp/devcontainers-41d5f64f-9d69-442f-a733-1f8dfea6f5ad1747633645087 --workspace-folder /Users/spencer/Documents/Code/InvokeAI --id-label devcontainer.local_folder=/Users/spencer/Documents/Code/InvokeAI --id-label devcontainer.config_file=/Users/spencer/Documents/Code/InvokeAI/.devcontainer/devcontainer.json --container-id 83163e912ceb0141efc07bf9511f595c58a81cdf52d166607e912fdef11b2a88 --log-level debug --log-format json --config /Users/spencer/Documents/Code/InvokeAI/.devcontainer/devcontainer.json --default-user-env-probe loginInteractiveShell --skip-non-blocking-commands false --prebuild false --stop-for-personalization false --remote-env REMOTE_CONTAINERS_IPC=/tmp/vscode-remote-containers-ipc-1fc29e51-d32a-4ed1-85a3-67fbd7694000.sock --remote-env SSH_AUTH_SOCK=/tmp/vscode-ssh-auth-1fc29e51-d32a-4ed1-85a3-67fbd7694000.sock --remote-env REMOTE_CONTAINERS=true --mount-workspace-git-root --terminal-columns 166 --terminal-rows 36 --dotfiles-target-path ~/dotfiles
[19384 ms] Start: Run: /Applications/Visual Studio Code.app/Contents/Frameworks/Code Helper (Plugin).app/Contents/MacOS/Code Helper (Plugin) /Users/spencer/.vscode/extensions/ms-vscode-remote.remote-containers-0.413.0/dist/spec-node/devContainersSpecCLI.js run-user-commands --user-data-folder /Users/spencer/Library/Application Support/Code/User/globalStorage/ms-vscode-remote.remote-containers/data --container-session-data-folder /tmp/devcontainers-41d5f64f-9d69-442f-a733-1f8dfea6f5ad1747633645087 --workspace-folder /Users/spencer/Documents/Code/InvokeAI --id-label devcontainer.local_folder=/Users/spencer/Documents/Code/InvokeAI --id-label devcontainer.config_file=/Users/spencer/Documents/Code/InvokeAI/.devcontainer/devcontainer.json --container-id 83163e912ceb0141efc07bf9511f595c58a81cdf52d166607e912fdef11b2a88 --log-level debug --log-format json --config /Users/spencer/Documents/Code/InvokeAI/.devcontainer/devcontainer.json --default-user-env-probe loginInteractiveShell --skip-non-blocking-commands false --prebuild false --stop-for-personalization false --remote-env REMOTE_CONTAINERS_IPC=/tmp/vscode-remote-containers-ipc-1fc29e51-d32a-4ed1-85a3-67fbd7694000.sock --remote-env SSH_AUTH_SOCK=/tmp/vscode-ssh-auth-1fc29e51-d32a-4ed1-85a3-67fbd7694000.sock --remote-env REMOTE_CONTAINERS=true --mount-workspace-git-root --terminal-columns 166 --terminal-rows 36 --dotfiles-target-path ~/dotfiles
[19445 ms] [05:47:45] Installing extension 'dbaeumer.vscode-eslint'...
[19516 ms] @devcontainers/cli 0.76.0. Node.js v20.19.0. darwin 23.3.0 arm64.
[19516 ms] Start: Run: docker buildx version
[19568 ms] github.com/docker/buildx v0.22.0-desktop.1 b45d7a53aa26a5e76aae051acdb15775c0e178da
[19568 ms] 
[19568 ms] Start: Run: docker -v
[19581 ms] Start: Run: git rev-parse --show-cdup
[19591 ms] Start: Run: docker inspect --type container 83163e912ceb0141efc07bf9511f595c58a81cdf52d166607e912fdef11b2a88
[19608 ms] Start: Inspecting container
[19608 ms] Start: Run: docker inspect --type container 83163e912ceb0141efc07bf9511f595c58a81cdf52d166607e912fdef11b2a88
[19609 ms] [05:47:45] Installing extension 'tamasfe.even-better-toml'...
[19623 ms] Start: Run in container: /bin/sh
[19624 ms] Start: Run in container: uname -m
[19674 ms] aarch64
[19674 ms] 
[19674 ms] Start: Run in container: (cat /etc/os-release || cat /usr/lib/os-release) 2>/dev/null
[19676 ms] PRETTY_NAME="Debian GNU/Linux 12 (bookworm)"
NAME="Debian GNU/Linux"
VERSION_ID="12"
VERSION="12 (bookworm)"
VERSION_CODENAME=bookworm
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"
[19676 ms] 
[19676 ms] Start: Run in container:  (command -v getent >/dev/null 2>&1 && getent passwd 'node' || grep -E '^node|^[^:]*:[^:]*:node:' /etc/passwd || true)
[19678 ms] userEnvProbe: loginInteractiveShell (default)
[19678 ms] Start: Run in container: test -f '/tmp/devcontainers-41d5f64f-9d69-442f-a733-1f8dfea6f5ad1747633645087/env-loginInteractiveShell.json'
[19678 ms] 
[19678 ms] 
[19679 ms] Start: Run in container: mkdir -p '/home/node/.devcontainer' && CONTENT="$(cat '/home/node/.devcontainer/.onCreateCommandMarker' 2>/dev/null || echo ENOENT)" && [ "${CONTENT:-2025-05-19T05:47:33.868178007Z}" != '2025-05-19T05:47:33.868178007Z' ] && echo '2025-05-19T05:47:33.868178007Z' > '/home/node/.devcontainer/.onCreateCommandMarker'
[19680 ms] 
[19680 ms] 
[19680 ms] Exit code 1
[19681 ms] Start: Run in container: cat '/tmp/devcontainers-41d5f64f-9d69-442f-a733-1f8dfea6f5ad1747633645087/env-loginInteractiveShell.json'
[19683 ms] {
        "NVM_RC_VERSION": "",
        "PYTHONUNBUFFERED": "1",
        "HOSTNAME": "83163e912ceb",
        "PYTHON_VERSION": "3.12",
        "INVOKEAI_DEV_RELOAD": "true",
        "UV_COMPILE_BYTECODE": "1",
        "XDG_DATA_HOME": "/home/node/.data",
        "REMOTE_CONTAINERS_IPC": "/tmp/vscode-remote-containers-ipc-1fc29e51-d32a-4ed1-85a3-67fbd7694000.sock",
        "YARN_VERSION": "1.22.22",
        "COMPUTE_DEVICE": "cuda",
        "GIT_LFS_CACHE": "/home/node/.cache/git-lfs",
        "UV_PYTHON": "3.12",
        "INVOKEAI_PORT": "9090",
        "HOME": "/home/node",
        "LS_COLORS": "",
        "NVM_SYMLINK_CURRENT": "true",
        "VIRTUAL_ENV": "/home/node/.venv",
        "UV_MANAGED_PYTHON": "1",
        "UV_LINK_MODE": "symlink",
        "XDG_CACHE_HOME": "/home/node/.cache",
        "NVM_DIR": "/usr/local/share/nvm",
        "HF_HOME": "/home/node/.invokeai-cache/huggingface",
        "REMOTE_CONTAINERS_SOCKETS": "[\"/tmp/vscode-ssh-auth-1fc29e51-d32a-4ed1-85a3-67fbd7694000.sock\",\"/home/node/.gnupg/S.gpg-agent\"]",
        "USER": "node",
        "INVOKEAI_HOST": "0.0.0.0",
        "SHLVL": "1",
        "NVM_CD_FLAGS": "",
        "PROMPT_DIRTRIM": "4",
        "PYTHONDONTWRITEBYTECODE": "1",
        "PATH": "/usr/local/share/nvm/current/bin:/usr/local/share/npm-global/bin:/home/node/.venv/bin:/home/node/.cache/pnpm:/home/node/.cache/uv:/usr/local/share/nvm/current/bin:/usr/local/share/npm-global/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/home/node/.local/bin",
        "UV_PYTHON_DOWNLOADS": "never",
        "UV_PROJECT_ENVIRONMENT": "/home/node/.venv",
        "NODE_VERSION": "22.14.0",
        "INVOKEAI_ROOT": "/home/node/invokeai",
        "_": "/usr/bin/cat"
}
[19683 ms] 
[19683 ms] Start: Run in container: mkdir -p '/home/node/.devcontainer' && CONTENT="$(cat '/home/node/.devcontainer/.updateContentCommandMarker' 2>/dev/null || echo ENOENT)" && [ "${CONTENT:-2025-05-19T05:47:33.868178007Z}" != '2025-05-19T05:47:33.868178007Z' ] && echo '2025-05-19T05:47:33.868178007Z' > '/home/node/.devcontainer/.updateContentCommandMarker'
[19686 ms] 
[19686 ms] 
[19686 ms] Exit code 1
[19686 ms] Start: Run in container: mkdir -p '/home/node/.devcontainer' && CONTENT="$(cat '/home/node/.devcontainer/.postCreateCommandMarker' 2>/dev/null || echo ENOENT)" && [ "${CONTENT:-2025-05-19T05:47:33.868178007Z}" != '2025-05-19T05:47:33.868178007Z' ] && echo '2025-05-19T05:47:33.868178007Z' > '/home/node/.devcontainer/.postCreateCommandMarker'
[19690 ms] 
[19690 ms] 
[19690 ms] Exit code 1
[19690 ms] Start: Run in container: mkdir -p '/home/node/.devcontainer' && CONTENT="$(cat '/home/node/.devcontainer/.postStartCommandMarker' 2>/dev/null || echo ENOENT)" && [ "${CONTENT:-2025-05-19T05:47:33.93405559Z}" != '2025-05-19T05:47:33.93405559Z' ] && echo '2025-05-19T05:47:33.93405559Z' > '/home/node/.devcontainer/.postStartCommandMarker'
[19692 ms] 
[19692 ms] 
Running the postAttachCommand from devcontainer.json...

[19692 ms] Start: Run in container: /bin/sh -c uv sync --extra using-$(echo ${COMPUTE_DEVICE:-cpu}) --extra dev --extra test --extra docs
[19772 ms] [05:47:45] Installing extension 'eamodio.gitlens'...
[19774 ms] [05:47:45] Getting Manifest... ms-vscode-remote.remote-containers
[05:47:45] Getting Manifest... ms-azuretools.vscode-docker
[05:47:45] Getting Manifest... ms-toolsai.jupyter-renderers
[05:47:45] Getting Manifest... ms-toolsai.vscode-jupyter-slideshow
[05:47:45] Getting Manifest... ms-toolsai.vscode-jupyter-cell-tags
[05:47:45] Getting Manifest... ms-toolsai.jupyter
[19774 ms] [05:47:45] Getting Manifest... ms-python.python
[05:47:45] Getting Manifest... charliermarsh.ruff
[05:47:45] Getting Manifest... davidanson.vscode-markdownlint
[05:47:45] Getting Manifest... esbenp.prettier-vscode
[05:47:45] Getting Manifest... antfu.vite
[05:47:45] Getting Manifest... docker.docker
[19774 ms] [05:47:45] Getting Manifest... vitest.explorer
[05:47:45] Getting Manifest... dbaeumer.vscode-eslint
[05:47:45] Getting Manifest... tamasfe.even-better-toml
[05:47:45] Getting Manifest... eamodio.gitlens
Using CPython 3.12.10
Creating virtual environment at: /home/node/.venv
[19845 ms] [05:47:45] Installing extension: ms-vscode-remote.remote-containers {
  isMachineScoped: false,
  installPreReleaseVersion: false,
  isApplicationScoped: true,
  isBuiltin: false,
  installGivenVersion: false,
  profileLocation: _r {
    scheme: 'file',
    authority: '',
    path: '/home/node/.vscode-server/extensions/extensions.json',
    query: '',
    fragment: '',
    _formatted: 'file:///home/node/.vscode-server/extensions/extensions.json',
    _fsPath: '/home/node/.vscode-server/extensions/extensions.json'
  },
  productVersion: { version: '1.100.2', date: '2025-05-14T21:47:40.416Z' }
}
[19846 ms] [05:47:45] Installing extension: ms-toolsai.vscode-jupyter-slideshow {
  isMachineScoped: false,
  installPreReleaseVersion: false,
  isApplicationScoped: true,
  isBuiltin: false,
  installGivenVersion: false,
  profileLocation: _r {
    scheme: 'file',
    authority: '',
    path: '/home/node/.vscode-server/extensions/extensions.json',
    query: '',
    fragment: '',
    _formatted: 'file:///home/node/.vscode-server/extensions/extensions.json',
    _fsPath: '/home/node/.vscode-server/extensions/extensions.json'
  },
  productVersion: { version: '1.100.2', date: '2025-05-14T21:47:40.416Z' }
}
[19846 ms] [05:47:45] Installing extension: esbenp.prettier-vscode {
  isMachineScoped: false,
  installPreReleaseVersion: false,
  isApplicationScoped: true,
  isBuiltin: false,
  installGivenVersion: false,
  profileLocation: _r {
    scheme: 'file',
    authority: '',
    path: '/home/node/.vscode-server/extensions/extensions.json',
    query: '',
    fragment: '',
    _formatted: 'file:///home/node/.vscode-server/extensions/extensions.json',
    _fsPath: '/home/node/.vscode-server/extensions/extensions.json'
  },
  productVersion: { version: '1.100.2', date: '2025-05-14T21:47:40.416Z' }
}
[19846 ms] [05:47:45] Installing extension: davidanson.vscode-markdownlint {
  isMachineScoped: false,
  installPreReleaseVersion: false,
  isApplicationScoped: true,
  isBuiltin: false,
  installGivenVersion: false,
  profileLocation: _r {
    scheme: 'file',
    authority: '',
    path: '/home/node/.vscode-server/extensions/extensions.json',
    query: '',
    fragment: '',
    _formatted: 'file:///home/node/.vscode-server/extensions/extensions.json',
    _fsPath: '/home/node/.vscode-server/extensions/extensions.json'
  },
  productVersion: { version: '1.100.2', date: '2025-05-14T21:47:40.416Z' }
}
[05:47:45] Installing extension: dbaeumer.vscode-eslint {
  isMachineScoped: false,
  installPreReleaseVersion: false,
  isApplicationScoped: true,
  isBuiltin: false,
  installGivenVersion: false,
  profileLocation: _r {
    scheme: 'file',
    authority: '',
    path: '/home/node/.vscode-server/extensions/extensions.json',
    query: '',
    fragment: '',
    _formatted: 'file:///home/node/.vscode-server/extensions/extensions.json',
    _fsPath: '/home/node/.vscode-server/extensions/extensions.json'
  },
  productVersion: { version: '1.100.2', date: '2025-05-14T21:47:40.416Z' }
}
[19846 ms] [05:47:45] Installing extension: vitest.explorer {
  isMachineScoped: false,
  installPreReleaseVersion: false,
  isApplicationScoped: true,
  isBuiltin: false,
  installGivenVersion: false,
  profileLocation: _r {
    scheme: 'file',
    authority: '',
    path: '/home/node/.vscode-server/extensions/extensions.json',
    query: '',
    fragment: '',
    _formatted: 'file:///home/node/.vscode-server/extensions/extensions.json',
    _fsPath: '/home/node/.vscode-server/extensions/extensions.json'
  },
  productVersion: { version: '1.100.2', date: '2025-05-14T21:47:40.416Z' }
}
[05:47:45] Installing extension: antfu.vite {
  isMachineScoped: false,
  installPreReleaseVersion: false,
  isApplicationScoped: true,
  isBuiltin: false,
  installGivenVersion: false,
  profileLocation: _r {
    scheme: 'file',
    authority: '',
    path: '/home/node/.vscode-server/extensions/extensions.json',
    query: '',
    fragment: '',
    _formatted: 'file:///home/node/.vscode-server/extensions/extensions.json',
    _fsPath: '/home/node/.vscode-server/extensions/extensions.json'
  },
  productVersion: { version: '1.100.2', date: '2025-05-14T21:47:40.416Z' }
}
[19847 ms] [05:47:45] Installing extension: ms-toolsai.vscode-jupyter-cell-tags {
  isMachineScoped: false,
  installPreReleaseVersion: false,
  isApplicationScoped: true,
  isBuiltin: false,
  installGivenVersion: false,
  profileLocation: _r {
    scheme: 'file',
    authority: '',
    path: '/home/node/.vscode-server/extensions/extensions.json',
    query: '',
    fragment: '',
    _formatted: 'file:///home/node/.vscode-server/extensions/extensions.json',
    _fsPath: '/home/node/.vscode-server/extensions/extensions.json'
  },
  productVersion: { version: '1.100.2', date: '2025-05-14T21:47:40.416Z' }
}
[19847 ms] [05:47:45] Installing extension: tamasfe.even-better-toml {
  isMachineScoped: false,
  installPreReleaseVersion: false,
  isApplicationScoped: true,
  isBuiltin: false,
  installGivenVersion: false,
  profileLocation: _r {
    scheme: 'file',
    authority: '',
    path: '/home/node/.vscode-server/extensions/extensions.json',
    query: '',
    fragment: '',
    _formatted: 'file:///home/node/.vscode-server/extensions/extensions.json',
    _fsPath: '/home/node/.vscode-server/extensions/extensions.json'
  },
  productVersion: { version: '1.100.2', date: '2025-05-14T21:47:40.416Z' }
}
[05:47:45] Installing extension: charliermarsh.ruff {
  isMachineScoped: false,
  installPreReleaseVersion: false,
  isApplicationScoped: true,
  isBuiltin: false,
  installGivenVersion: false,
  profileLocation: _r {
    scheme: 'file',
    authority: '',
    path: '/home/node/.vscode-server/extensions/extensions.json',
    query: '',
    fragment: '',
    _formatted: 'file:///home/node/.vscode-server/extensions/extensions.json',
    _fsPath: '/home/node/.vscode-server/extensions/extensions.json'
  },
  productVersion: { version: '1.100.2', date: '2025-05-14T21:47:40.416Z' }
}
[19848 ms] [05:47:45] Installing extension: docker.docker {
  isMachineScoped: false,
  installPreReleaseVersion: false,
  isApplicationScoped: true,
  isBuiltin: false,
  installGivenVersion: false,
  profileLocation: _r {
    scheme: 'file',
    authority: '',
    path: '/home/node/.vscode-server/extensions/extensions.json',
    query: '',
    fragment: '',
    _formatted: 'file:///home/node/.vscode-server/extensions/extensions.json',
    _fsPath: '/home/node/.vscode-server/extensions/extensions.json'
  },
  productVersion: { version: '1.100.2', date: '2025-05-14T21:47:40.416Z' }
}
[05:47:45] Installing extension: ms-azuretools.vscode-docker {
  isMachineScoped: false,
  installPreReleaseVersion: false,
  isApplicationScoped: true,
  isBuiltin: false,
  installGivenVersion: false,
  profileLocation: _r {
    scheme: 'file',
    authority: '',
    path: '/home/node/.vscode-server/extensions/extensions.json',
    query: '',
    fragment: '',
    _formatted: 'file:///home/node/.vscode-server/extensions/extensions.json',
    _fsPath: '/home/node/.vscode-server/extensions/extensions.json'
  },
  productVersion: { version: '1.100.2', date: '2025-05-14T21:47:40.416Z' }
}
[05:47:45] Installing extension: eamodio.gitlens {
  isMachineScoped: false,
  installPreReleaseVersion: false,
  isApplicationScoped: true,
  isBuiltin: false,
  installGivenVersion: false,
  profileLocation: _r {
    scheme: 'file',
    authority: '',
    path: '/home/node/.vscode-server/extensions/extensions.json',
    query: '',
    fragment: '',
    _formatted: 'file:///home/node/.vscode-server/extensions/extensions.json',
    _fsPath: '/home/node/.vscode-server/extensions/extensions.json'
  },
  productVersion: { version: '1.100.2', date: '2025-05-14T21:47:40.416Z' }
}
[19848 ms] [05:47:45] Installing extension: ms-toolsai.jupyter-renderers {
  isMachineScoped: false,
  installPreReleaseVersion: false,
  isApplicationScoped: true,
  isBuiltin: false,
  installGivenVersion: false,
  profileLocation: _r {
    scheme: 'file',
    authority: '',
    path: '/home/node/.vscode-server/extensions/extensions.json',
    query: '',
    fragment: '',
    _formatted: 'file:///home/node/.vscode-server/extensions/extensions.json',
    _fsPath: '/home/node/.vscode-server/extensions/extensions.json'
  },
  productVersion: { version: '1.100.2', date: '2025-05-14T21:47:40.416Z' }
}
[05:47:45] Installing extension: ms-python.python {
  isMachineScoped: false,
  installPreReleaseVersion: false,
  isApplicationScoped: true,
  isBuiltin: false,
  installGivenVersion: false,
  profileLocation: _r {
    scheme: 'file',
    authority: '',
    path: '/home/node/.vscode-server/extensions/extensions.json',
    query: '',
    fragment: '',
    _formatted: 'file:///home/node/.vscode-server/extensions/extensions.json',
    _fsPath: '/home/node/.vscode-server/extensions/extensions.json'
  },
  productVersion: { version: '1.100.2', date: '2025-05-14T21:47:40.416Z' }
}
[05:47:45] Installing extension: ms-toolsai.jupyter {
  isMachineScoped: false,
  installPreReleaseVersion: false,
  isApplicationScoped: true,
  isBuiltin: false,
  installGivenVersion: false,
  profileLocation: _r {
    scheme: 'file',
    authority: '',
    path: '/home/node/.vscode-server/extensions/extensions.json',
    query: '',
    fragment: '',
    _formatted: 'file:///home/node/.vscode-server/extensions/extensions.json',
    _fsPath: '/home/node/.vscode-server/extensions/extensions.json'
  },
  productVersion: { version: '1.100.2', date: '2025-05-14T21:47:40.416Z' }
}
[20035 ms] [05:47:45] Getting Manifest... github.copilot
[20057 ms] [05:47:45] Getting Manifest... antfu.browse-lite
[20093 ms] [05:47:45] Installing extension: antfu.browse-lite {
  isMachineScoped: false,
  installPreReleaseVersion: false,
  isApplicationScoped: true,
  isBuiltin: false,
  installGivenVersion: false,
  profileLocation: _r {
    scheme: 'file',
    authority: '',
    path: '/home/node/.vscode-server/extensions/extensions.json',
    query: '',
    fragment: '',
    _formatted: 'file:///home/node/.vscode-server/extensions/extensions.json',
    _fsPath: '/home/node/.vscode-server/extensions/extensions.json'
  },
  productVersion: { version: '1.100.2', date: '2025-05-14T21:47:40.416Z' },
  pinned: false,
  context: { dependecyOrPackExtensionInstall: true }
}
[20288 ms] [05:47:45] Installing extension: github.copilot {
  isApplicationScoped: false,
  profileLocation: _r {
    scheme: 'file',
    authority: '',
    path: '/home/node/.vscode-server/extensions/extensions.json',
    query: '',
    fragment: '',
    _formatted: 'file:///home/node/.vscode-server/extensions/extensions.json',
    _fsPath: '/home/node/.vscode-server/extensions/extensions.json'
  },
  productVersion: { version: '1.100.2', date: '2025-05-14T21:47:40.416Z' },
  pinned: false,
  installGivenVersion: false,
  context: { dependecyOrPackExtensionInstall: true }
}
[20367 ms] [05:47:45] Getting Manifest... ms-toolsai.jupyter-keymap
[20382 ms] [05:47:46] Getting Manifest... ms-toolsai.jupyter-renderers
[20396 ms] [05:47:46] Getting Manifest... ms-toolsai.vscode-jupyter-cell-tags
[20416 ms] [05:47:46] Getting Manifest... ms-toolsai.vscode-jupyter-slideshow
[20441 ms] [05:47:46] Installing extension: ms-toolsai.jupyter-keymap {
  isMachineScoped: false,
  installPreReleaseVersion: false,
  isApplicationScoped: true,
  isBuiltin: false,
  installGivenVersion: false,
  profileLocation: _r {
    scheme: 'file',
    authority: '',
    path: '/home/node/.vscode-server/extensions/extensions.json',
    query: '',
    fragment: '',
    _formatted: 'file:///home/node/.vscode-server/extensions/extensions.json',
    _fsPath: '/home/node/.vscode-server/extensions/extensions.json'
  },
  productVersion: { version: '1.100.2', date: '2025-05-14T21:47:40.416Z' },
  pinned: false,
  context: { dependecyOrPackExtensionInstall: true }
}
[20503 ms] [05:47:46] Downloaded extension to file:///home/node/.vscode-server/extensionsCache/73c67ba9-588a-4621-9314-c1efa0008e36
[20512 ms] [05:47:46] Installing extension: github.copilot {
  isApplicationScoped: false,
  profileLocation: _r {
    scheme: 'file',
    authority: '',
    path: '/home/node/.vscode-server/extensions/extensions.json',
    query: '',
    fragment: '',
    _formatted: 'file:///home/node/.vscode-server/extensions/extensions.json',
    _fsPath: '/home/node/.vscode-server/extensions/extensions.json'
  },
  productVersion: { version: '1.100.2', date: '2025-05-14T21:47:40.416Z' }
}
[20546 ms] [05:47:46] Getting Manifest... ms-python.vscode-pylance
[20574 ms] [05:47:46] Getting Manifest... ms-python.debugpy
[20590 ms] [05:47:46] Extracted extension to file:///home/node/.vscode-server/extensions/github.copilot-chat-0.27.1: github.copilot-chat
[20606 ms] [05:47:46] Installing extension: ms-python.vscode-pylance {
  isMachineScoped: false,
  installPreReleaseVersion: false,
  isApplicationScoped: true,
  isBuiltin: false,
  installGivenVersion: false,
  profileLocation: _r {
    scheme: 'file',
    authority: '',
    path: '/home/node/.vscode-server/extensions/extensions.json',
    query: '',
    fragment: '',
    _formatted: 'file:///home/node/.vscode-server/extensions/extensions.json',
    _fsPath: '/home/node/.vscode-server/extensions/extensions.json'
  },
  productVersion: { version: '1.100.2', date: '2025-05-14T21:47:40.416Z' },
  pinned: false,
  context: { dependecyOrPackExtensionInstall: true }
}
[20606 ms] [05:47:46] Installing extension: ms-python.debugpy {
  isMachineScoped: false,
  installPreReleaseVersion: false,
  isApplicationScoped: true,
  isBuiltin: false,
  installGivenVersion: false,
  profileLocation: _r {
    scheme: 'file',
    authority: '',
    path: '/home/node/.vscode-server/extensions/extensions.json',
    query: '',
    fragment: '',
    _formatted: 'file:///home/node/.vscode-server/extensions/extensions.json',
    _fsPath: '/home/node/.vscode-server/extensions/extensions.json'
  },
  productVersion: { version: '1.100.2', date: '2025-05-14T21:47:40.416Z' },
  pinned: false,
  context: { dependecyOrPackExtensionInstall: true }
}
[20606 ms] [05:47:46] Renamed to /home/node/.vscode-server/extensions/github.copilot-chat-0.27.1
⠹ mediapipe==0.10.14                                                                                                                                                  [21241 ms] [05:47:46] Getting Manifest... ms-python.python
[21339 ms] [05:47:46] Getting Manifest... github.copilot-chat
⠦ requests-testadapter==0.3.0                                                                                                                                         [22060 ms] Start: Run in container: mkdir -p '/vscode/vscode-server/extensionsCache' && cd '/home/node/.vscode-server/extensionsCache' && cp '73c67ba9-588a-4621-9314-c1efa0008e36' 'f8092eb0-d2cb-4ebf-ab28-6c6b296320b1' '/vscode/vscode-server/extensionsCache'
[22074 ms] 
[22074 ms] 
[22074 ms] Start: Run in container: cd '/vscode/vscode-server/extensionsCache' && ls -t | tail -n +500 | xargs rm -f
[22076 ms] 
[22077 ms] 
⠧ requests-testadapter==0.3.0                                                                                                                                         [22248 ms] [05:47:47] Extracted extension to file:///home/node/.vscode-server/extensions/github.copilot-1.322.1571: github.copilot
[22299 ms] [05:47:47] Renamed to /home/node/.vscode-server/extensions/github.copilot-1.322.1571
[22313 ms] [05:47:47] Extension installed successfully: github.copilot file:///home/node/.vscode-server/extensions/extensions.json
[22337 ms] [05:47:47] Getting Manifest... ms-python.vscode-pylance
[22360 ms] [05:47:47] Getting Manifest... ms-python.debugpy
⠇ pywin32-ctypes==0.2.3                                                                                                                                               [24357 ms] [05:47:49] Extension signature verification result for ms-vscode-remote.remote-containers: Success. Internal Code: 0. Executed: true. Duration: 1779ms.
[24361 ms] [05:47:49] Extension signature verification result for vitest.explorer: Success. Internal Code: 0. Executed: true. Duration: 1752ms.
[24375 ms] [05:47:49] Extension signature verification result for antfu.vite: Success. Internal Code: 0. Executed: true. Duration: 1750ms.
⠋ wsproto==1.2.0                                                                                                                                                      [24464 ms] [05:47:50] Extension signature verification result for ms-toolsai.jupyter-keymap: Success. Internal Code: 0. Executed: true. Duration: 1834ms.
[24477 ms] [05:47:50] Extension signature verification result for docker.docker: Success. Internal Code: 0. Executed: true. Duration: 1890ms.
[05:47:50] Extension signature verification result for davidanson.vscode-markdownlint: Success. Internal Code: 0. Executed: true. Duration: 1906ms.
[24479 ms] [05:47:50] Extension signature verification result for ms-toolsai.jupyter: Success. Internal Code: 0. Executed: true. Duration: 1815ms.
[24493 ms] [05:47:50] Extension signature verification result for ms-toolsai.vscode-jupyter-cell-tags: Success. Internal Code: 0. Executed: true. Duration: 1842ms.
[24505 ms] [05:47:50] Extracted extension to file:///home/node/.vscode-server/extensions/antfu.vite-0.2.5: antfu.vite
[24518 ms] [05:47:50] Extension signature verification result for ms-toolsai.vscode-jupyter-slideshow: Success. Internal Code: 0. Executed: true. Duration: 1943ms.
[24524 ms] [05:47:50] Extension signature verification result for esbenp.prettier-vscode: Success. Internal Code: 0. Executed: true. Duration: 1905ms.
[24534 ms] [05:47:50] Extension signature verification result for ms-toolsai.jupyter-renderers: Success. Internal Code: 0. Executed: true. Duration: 1895ms.
[05:47:50] Extension signature verification result for ms-python.debugpy: Success. Internal Code: 0. Executed: true. Duration: 1822ms.
[05:47:50] Extension signature verification result for charliermarsh.ruff: Success. Internal Code: 0. Executed: true. Duration: 1944ms.
[24536 ms] [05:47:50] Renamed to /home/node/.vscode-server/extensions/antfu.vite-0.2.5
[24566 ms] [05:47:50] Extension signature verification result for github.copilot: Success. Internal Code: 0. Executed: true. Duration: 1664ms.
⠋ ansicon==1.89.0                                                                                                                                                     [24597 ms] [05:47:50] Extension signature verification result for ms-azuretools.vscode-docker: Success. Internal Code: 0. Executed: true. Duration: 1822ms.
⠋ more-itertools==10.6.0                                                                                                                                              [24619 ms] [05:47:50] Extracted extension to file:///home/node/.vscode-server/extensions/ms-toolsai.jupyter-keymap-1.1.2: ms-toolsai.jupyter-keymap
[24628 ms] [05:47:50] Extension signature verification result for tamasfe.even-better-toml: Success. Internal Code: 0. Executed: true. Duration: 2022ms.
⠋ nvidia-cublas-cu12==12.4.5.8                                                                                                                                        [24646 ms] [05:47:50] Renamed to /home/node/.vscode-server/extensions/ms-toolsai.jupyter-keymap-1.1.2
[24658 ms] [05:47:50] Extension signature verification result for dbaeumer.vscode-eslint: Success. Internal Code: 0. Executed: true. Duration: 2071ms.
[24671 ms] [05:47:50] Extracted extension to file:///home/node/.vscode-server/extensions/vitest.explorer-1.18.1: vitest.explorer
⠙ nvidia-cuda-runtime-cu12==12.4.127                                                                                                                                  [24691 ms] [05:47:50] Renamed to /home/node/.vscode-server/extensions/vitest.explorer-1.18.1
[24713 ms] [05:47:50] Extracted extension to file:///home/node/.vscode-server/extensions/davidanson.vscode-markdownlint-0.59.0: davidanson.vscode-markdownlint
[24733 ms] [05:47:50] Renamed to /home/node/.vscode-server/extensions/davidanson.vscode-markdownlint-0.59.0
⠙ nvidia-cusolver-cu12==11.6.1.9                                                                                                                                      [24776 ms] [05:47:50] Extracted extension to file:///home/node/.vscode-server/extensions/ms-toolsai.vscode-jupyter-slideshow-0.1.6: ms-toolsai.vscode-jupyter-slideshow
[24788 ms] [05:47:50] Renamed to /home/node/.vscode-server/extensions/ms-toolsai.vscode-jupyter-slideshow-0.1.6
[24798 ms] [05:47:50] Extracted extension to file:///home/node/.vscode-server/extensions/ms-toolsai.vscode-jupyter-cell-tags-0.1.9: ms-toolsai.vscode-jupyter-cell-tags
⠙ nvidia-nccl-cu12==2.21.5                                                                                                                                            [24809 ms] [05:47:50] Renamed to /home/node/.vscode-server/extensions/ms-toolsai.vscode-jupyter-cell-tags-0.1.9
[24824 ms] [05:47:50] Extracted extension to file:///home/node/.vscode-server/extensions/dbaeumer.vscode-eslint-3.0.10: dbaeumer.vscode-eslint
[24839 ms] [05:47:50] Renamed to /home/node/.vscode-server/extensions/dbaeumer.vscode-eslint-3.0.10
⠙ triton==3.2.0                                                                                                                                                       [24884 ms] [05:47:50] Extension signature verification result for eamodio.gitlens: Success. Internal Code: 0. Executed: true. Duration: 827ms.
⠹ tomli==2.2.1                                                                                                                                                        [24911 ms] [05:47:50] Extension signature verification result for antfu.browse-lite: Success. Internal Code: 0. Executed: true. Duration: 786ms.
Resolved 217 packages in 5.14s
[24981 ms] [05:47:50] Extension signature verification result for ms-python.python: Success. Internal Code: 0. Executed: true. Duration: 838ms.
error: Distribution `bitsandbytes==0.45.4 @ registry+https://pypi.org/simple` can't be installed because it doesn't have a source distribution or wheel for the current platform

hint: You're on Linux (`manylinux_2_36_aarch64`), but `bitsandbytes` (v0.45.4) only has wheels for the following platforms: `manylinux_2_24_x86_64`, `win_amd64`
[24997 ms] postAttachCommand from devcontainer.json failed with exit code 2. Skipping any further user-provided commands.
[24999 ms] Error: Command failed: /bin/sh -c uv sync --extra using-$(echo ${COMPUTE_DEVICE:-cpu}) --extra dev --extra test --extra docs
[24999 ms]     at E (/Users/spencer/.vscode/extensions/ms-vscode-remote.remote-containers-0.413.0/dist/spec-node/devContainersSpecCLI.js:235:157)
[24999 ms]     at async Promise.allSettled (index 0)
[24999 ms]     at async b9 (/Users/spencer/.vscode/extensions/ms-vscode-remote.remote-containers-0.413.0/dist/spec-node/devContainersSpecCLI.js:237:119)
[24999 ms]     at async MD (/Users/spencer/.vscode/extensions/ms-vscode-remote.remote-containers-0.413.0/dist/spec-node/devContainersSpecCLI.js:226:4668)
[24999 ms]     at async N9 (/Users/spencer/.vscode/extensions/ms-vscode-remote.remote-containers-0.413.0/dist/spec-node/devContainersSpecCLI.js:226:4475)
[24999 ms]     at async kD (/Users/spencer/.vscode/extensions/ms-vscode-remote.remote-containers-0.413.0/dist/spec-node/devContainersSpecCLI.js:226:3460)
[24999 ms]     at async G7 (/Users/spencer/.vscode/extensions/ms-vscode-remote.remote-containers-0.413.0/dist/spec-node/devContainersSpecCLI.js:668:2746)
[24999 ms]     at async b7 (/Users/spencer/.vscode/extensions/ms-vscode-remote.remote-containers-0.413.0/dist/spec-node/devContainersSpecCLI.js:667:8546)
[25000 ms]     at async /Users/spencer/.vscode/extensions/ms-vscode-remote.remote-containers-0.413.0/dist/spec-node/devContainersSpecCLI.js:484:1188
[25002 ms] Exit code 1
[25003 ms] Command failed: /Applications/Visual Studio Code.app/Contents/Frameworks/Code Helper (Plugin).app/Contents/MacOS/Code Helper (Plugin) /Users/spencer/.vscode/extensions/ms-vscode-remote.remote-containers-0.413.0/dist/spec-node/devContainersSpecCLI.js run-user-commands --user-data-folder /Users/spencer/Library/Application Support/Code/User/globalStorage/ms-vscode-remote.remote-containers/data --container-session-data-folder /tmp/devcontainers-41d5f64f-9d69-442f-a733-1f8dfea6f5ad1747633645087 --workspace-folder /Users/spencer/Documents/Code/InvokeAI --id-label devcontainer.local_folder=/Users/spencer/Documents/Code/InvokeAI --id-label devcontainer.config_file=/Users/spencer/Documents/Code/InvokeAI/.devcontainer/devcontainer.json --container-id 83163e912ceb0141efc07bf9511f595c58a81cdf52d166607e912fdef11b2a88 --log-level debug --log-format json --config /Users/spencer/Documents/Code/InvokeAI/.devcontainer/devcontainer.json --default-user-env-probe loginInteractiveShell --skip-non-blocking-commands false --prebuild false --stop-for-personalization false --remote-env REMOTE_CONTAINERS_IPC=/tmp/vscode-remote-containers-ipc-1fc29e51-d32a-4ed1-85a3-67fbd7694000.sock --remote-env SSH_AUTH_SOCK=/tmp/vscode-ssh-auth-1fc29e51-d32a-4ed1-85a3-67fbd7694000.sock --remote-env REMOTE_CONTAINERS=true --mount-workspace-git-root --terminal-columns 166 --terminal-rows 36 --dotfiles-target-path ~/dotfiles
[25125 ms] [05:47:50] Extracted extension to file:///home/node/.vscode-server/extensions/ms-azuretools.vscode-docker-1.29.6: ms-azuretools.vscode-docker
[25140 ms] [05:47:50] Renamed to /home/node/.vscode-server/extensions/ms-azuretools.vscode-docker-1.29.6
[25163 ms] [05:47:50] Extracted extension to file:///home/node/.vscode-server/extensions/antfu.browse-lite-0.3.9: antfu.browse-lite
[25190 ms] [05:47:50] Renamed to /home/node/.vscode-server/extensions/antfu.browse-lite-0.3.9
[25230 ms] [05:47:50] Extracted extension to file:///home/node/.vscode-server/extensions/esbenp.prettier-vscode-11.0.0: esbenp.prettier-vscode
[25241 ms] [05:47:50] Renamed to /home/node/.vscode-server/extensions/esbenp.prettier-vscode-11.0.0
[25360 ms] [05:47:50] Extracted extension to file:///home/node/.vscode-server/extensions/ms-vscode-remote.remote-containers-0.413.0: ms-vscode-remote.remote-containers
[25380 ms] [05:47:51] Renamed to /home/node/.vscode-server/extensions/ms-vscode-remote.remote-containers-0.413.0
[25620 ms] [05:47:51] Extracted extension to file:///home/node/.vscode-server/extensions/ms-toolsai.jupyter-renderers-1.1.0: ms-toolsai.jupyter-renderers
[25629 ms] [05:47:51] Renamed to /home/node/.vscode-server/extensions/ms-toolsai.jupyter-renderers-1.1.0
[25703 ms] [05:47:51] Extracted extension to file:///home/node/.vscode-server/extensions/ms-toolsai.jupyter-2025.4.0-linux-arm64: ms-toolsai.jupyter
[25719 ms] [05:47:51] Renamed to /home/node/.vscode-server/extensions/ms-toolsai.jupyter-2025.4.0-linux-arm64
[25904 ms] [05:47:51] Extracted extension to file:///home/node/.vscode-server/extensions/docker.docker-0.6.0-linux-arm64: docker.docker
[25910 ms] [05:47:51] Renamed to /home/node/.vscode-server/extensions/docker.docker-0.6.0-linux-arm64
[25949 ms] [05:47:51] Extracted extension to file:///home/node/.vscode-server/extensions/eamodio.gitlens-17.1.0: eamodio.gitlens
[25968 ms] [05:47:51] Renamed to /home/node/.vscode-server/extensions/eamodio.gitlens-17.1.0
[26042 ms] [05:47:51] Extracted extension to file:///home/node/.vscode-server/extensions/charliermarsh.ruff-2025.22.0-linux-arm64: charliermarsh.ruff
[26058 ms] [05:47:51] Renamed to /home/node/.vscode-server/extensions/charliermarsh.ruff-2025.22.0-linux-arm64
[26154 ms] [05:47:51] Extracted extension to file:///home/node/.vscode-server/extensions/ms-python.debugpy-2025.8.0-linux-arm64: ms-python.debugpy
[26170 ms] [05:47:51] Renamed to /home/node/.vscode-server/extensions/ms-python.debugpy-2025.8.0-linux-arm64
[26226 ms] [05:47:51] Extracted extension to file:///home/node/.vscode-server/extensions/github.copilot-1.322.0: github.copilot
[26234 ms] [05:47:51] Renamed to /home/node/.vscode-server/extensions/github.copilot-1.322.0
[26252 ms] [05:47:51] Marked extension as removed github.copilot-1.322.1571
[26257 ms] [05:47:51] Extension installed successfully: github.copilot-chat file:///home/node/.vscode-server/extensions/extensions.json
[05:47:51] Extension installed successfully: github.copilot file:///home/node/.vscode-server/extensions/extensions.json
[26482 ms] [05:47:52] Extracted extension to file:///home/node/.vscode-server/extensions/tamasfe.even-better-toml-0.21.2: tamasfe.even-better-toml
[26861 ms] [05:47:52] Renamed to /home/node/.vscode-server/extensions/tamasfe.even-better-toml-0.21.2
[27871 ms] [05:47:53] Extension signature verification result for ms-python.vscode-pylance: Success. Internal Code: 0. Executed: true. Duration: 678ms.
[28425 ms] [05:47:54] Extracted extension to file:///home/node/.vscode-server/extensions/ms-python.python-2025.6.1-linux-arm64: ms-python.python
[28495 ms] [05:47:54] Renamed to /home/node/.vscode-server/extensions/ms-python.python-2025.6.1-linux-arm64
[34190 ms] [05:47:59] Extracted extension to file:///home/node/.vscode-server/extensions/ms-python.vscode-pylance-2025.5.1: ms-python.vscode-pylance
[34415 ms] [05:48:00] Renamed to /home/node/.vscode-server/extensions/ms-python.vscode-pylance-2025.5.1
[34444 ms] [05:48:00] Extension installed successfully: antfu.vite file:///home/node/.vscode-server/extensions/extensions.json
[05:48:00] Extension installed successfully: ms-toolsai.jupyter-keymap file:///home/node/.vscode-server/extensions/extensions.json
[05:48:00] Extension installed successfully: vitest.explorer file:///home/node/.vscode-server/extensions/extensions.json
[05:48:00] Extension installed successfully: davidanson.vscode-markdownlint file:///home/node/.vscode-server/extensions/extensions.json
[05:48:00] Extension installed successfully: ms-toolsai.vscode-jupyter-slideshow file:///home/node/.vscode-server/extensions/extensions.json
[05:48:00] Extension installed successfully: ms-toolsai.vscode-jupyter-cell-tags file:///home/node/.vscode-server/extensions/extensions.json
[05:48:00] Extension installed successfully: dbaeumer.vscode-eslint file:///home/node/.vscode-server/extensions/extensions.json
[05:48:00] Extension installed successfully: ms-azuretools.vscode-docker file:///home/node/.vscode-server/extensions/extensions.json
[05:48:00] Extension installed successfully: antfu.browse-lite file:///home/node/.vscode-server/extensions/extensions.json
[05:48:00] Extension installed successfully: esbenp.prettier-vscode file:///home/node/.vscode-server/extensions/extensions.json
[05:48:00] Extension installed successfully: ms-vscode-remote.remote-containers file:///home/node/.vscode-server/extensions/extensions.json
[05:48:00] Extension installed successfully: ms-toolsai.jupyter-renderers file:///home/node/.vscode-server/extensions/extensions.json
[05:48:00] Extension installed successfully: ms-toolsai.jupyter file:///home/node/.vscode-server/extensions/extensions.json
[05:48:00] Extension installed successfully: docker.docker file:///home/node/.vscode-server/extensions/extensions.json
[05:48:00] Extension installed successfully: eamodio.gitlens file:///home/node/.vscode-server/extensions/extensions.json
[05:48:00] Extension installed successfully: charliermarsh.ruff file:///home/node/.vscode-server/extensions/extensions.json
[05:48:00] Extension installed successfully: ms-python.debugpy file:///home/node/.vscode-server/extensions/extensions.json
[05:48:00] Extension installed successfully: tamasfe.even-better-toml file:///home/node/.vscode-server/extensions/extensions.json
[05:48:00] Extension installed successfully: ms-python.python file:///home/node/.vscode-server/extensions/extensions.json
[05:48:00] Extension installed successfully: ms-python.vscode-pylance file:///home/node/.vscode-server/extensions/extensions.json
[34459 ms] [05:48:00] Extension 'antfu.vite' v0.2.5 was successfully installed.
[05:48:00] Extension 'ms-toolsai.jupyter-keymap' v1.1.2 was successfully installed.
[05:48:00] Extension 'vitest.explorer' v1.18.1 was successfully installed.
[05:48:00] Extension 'davidanson.vscode-markdownlint' v0.59.0 was successfully installed.
[05:48:00] Extension 'ms-toolsai.vscode-jupyter-slideshow' v0.1.6 was successfully installed.
[05:48:00] Extension 'ms-toolsai.vscode-jupyter-cell-tags' v0.1.9 was successfully installed.
[05:48:00] Extension 'dbaeumer.vscode-eslint' v3.0.10 was successfully installed.
[05:48:00] Extension 'ms-azuretools.vscode-docker' v1.29.6 was successfully installed.
[34460 ms] [05:48:00] Extension 'antfu.browse-lite' v0.3.9 was successfully installed.
[05:48:00] Extension 'esbenp.prettier-vscode' v11.0.0 was successfully installed.
[05:48:00] Extension 'ms-vscode-remote.remote-containers' v0.413.0 was successfully installed.
[05:48:00] Extension 'ms-toolsai.jupyter-renderers' v1.1.0 was successfully installed.
[05:48:00] Extension 'ms-toolsai.jupyter' v2025.4.0 was successfully installed.
[05:48:00] Extension 'docker.docker' v0.6.0 was successfully installed.
[05:48:00] Extension 'eamodio.gitlens' v17.1.0 was successfully installed.
[05:48:00] Extension 'charliermarsh.ruff' v2025.22.0 was successfully installed.
[05:48:00] Extension 'ms-python.debugpy' v2025.8.0 was successfully installed.
[05:48:00] Extension 'tamasfe.even-better-toml' v0.21.2 was successfully installed.
[05:48:00] Extension 'ms-python.python' v2025.6.1 was successfully installed.
[05:48:00] Extension 'ms-python.vscode-pylance' v2025.5.1 was successfully installed.
[34486 ms] [05:48:00] Deleted marked for removal extension from disk github.copilot /home/node/.vscode-server/extensions/github.copilot-1.322.1571
[34662 ms] Port forwarding connection from 52372 > 44211 > 44211 in the container.
[34662 ms] Start: Run in container: /home/node/.vscode-server/bin/848b80aeb52026648a8ff9f7c45a9b0a80641e2e/node -e 
[34726 ms] Port forwarding 52372 > 44211 > 44211 stderr: Connection established
[36287 ms] Start: Run in container: cat /proc/1494/environ
[40731 ms] Port forwarding 52372 > 44211 > 44211 stderr: Remote close
[40737 ms] Port forwarding 52372 > 44211 > 44211 terminated with code 0 and signal null.
[82088 ms] Start: Run in container: mkdir -p '/vscode/vscode-server/extensionsCache' && cd '/home/node/.vscode-server/extensionsCache' && cp 'eamodio.gitlens-17.1.0' 'github.copilot-1.322.0' 'ms-python.python-2025.6.1-linux-arm64' 'ms-python.vscode-pylance-2025.5.1' '/vscode/vscode-server/extensionsCache'
[82136 ms] 
[82137 ms] 
[82138 ms] Start: Run in container: cd '/vscode/vscode-server/extensionsCache' && ls -t | tail -n +500 | xargs rm -f
[82141 ms] 
[82142 ms] 

The new index behavior is opt-out and enabled by default.

For example, if I use this install command...

uv pip install invokeai --index https://download.pytorch.org/whl/cu128

...my manually-specified index URL is ignored. uv instead uses https://download.pytorch.org/whl/cpu per the uv sources setup.

You can pass an additional --no-sources flag to override this behaviour.

Unfortunately, this makes the sources setup a breaking change:

  • Existing documentation.
  • The launcher, which would need to be updated with special handling for the --no-sources flag.
  • The conventional pytorch installation wisdom, where it is common knowledge that you must provide an index URL. The expected behaviour is overridden silently.

We could make the sources opt-in, by requiring the use of one of the extras:

[tool.uv.sources]
torch = [
  # { index = "default", marker = "sys_platform == 'darwin'" }, # macOS
  { index = "pytorch-arm",  marker = "sys_platform != 'darwin' and platform_machine == 'arm64'  and extra == 'using-cpu' and extra != 'using-cuda' and extra != 'using-rocm'" },
  # Linux and Windows
  { index = "pytorch-cuda", marker = "sys_platform != 'darwin' and platform_machine == 'x86_64' and extra != 'using-cpu' and extra == 'using-cuda' and extra != 'using-rocm'" },
  { index = "pytorch-rocm", marker = "sys_platform != 'darwin' and platform_machine == 'x86_64' and extra != 'using-cpu' and extra != 'using-cuda' and extra == 'using-rocm'" },
  { index = "pytorch-cpu",  marker = "sys_platform != 'darwin' and platform_machine == 'x86_64' and extra == 'using-cpu' and extra != 'using-cuda' and extra != 'using-rocm'" },
]

This way, the marker/index/source system is effectively ignored unless you explicitly provide one of using-cpu, using-cuda, or using-rocm.

Transitive dependencies and explicit = true

If you use explicit = true, you must declare all dependencies that should be installed from custom indices in the sources config. This includes transitive dependencies.

For example, torchvision - like torch - has CPU and CUDA builds. It must be installed from the correct index. Therefore, it must be declared in the sources config alongside torch.

This is the root cause of the test failure in this PR - the wrong torchvision is getting installed on our GPU-less linux CI runner.

We could add torchvision alongside torch in the uv setup, but who knows what other upstream/transitive dependencies are relying on the correct index to be used? It feels risky to change this assumed behaviour.

What if we just remove the explicit = true flag? That would replicate the existing behaviour.

Unfortunately, this doesn't seem to work - without explicit = true, uv fails to resolve torch with using-cuda. If I delete all of the ROCm marker and index, it works. It seems like uv is somehow referencing the ROCm index, even though using-cuda is provided.

❯ deactivate && rm -rf .venv && uv venv .venv && source .venv/bin/activate && uv pip install -e ".[dev,docs,test,using-cuda]"
Using CPython 3.12.7
Creating virtual environment at: .venv
Activate with: source .venv/bin/activate
  × No solution found when resolving dependencies:
  ╰─▶ Because there is no version of nvidia-nccl-cu12{platform_machine == 'x86_64' and sys_platform == 'linux'}==2.26.2 and torch==2.7.0+cu128 depends on
      nvidia-nccl-cu12{platform_machine == 'x86_64' and sys_platform == 'linux'}==2.26.2, we can conclude that torch==2.7.0+cu128 cannot be used.
      And because only the following versions of torch are available:
          torch<2.7.0
          torch==2.7.0+cu128
      and invokeai==5.11.0 depends on torch>=2.7.0, we can conclude that invokeai==5.11.0 cannot be used.
      And because only invokeai[dev]==5.11.0 is available and you require invokeai[dev], we can conclude that your requirements are unsatisfiable.

      hint: `torch` was requested with a pre-release marker (e.g., all of:
          torch>=2.7.0,<2.7.0+cu128
          torch>2.7.0+cu128,<2.8.dev0
      ), but pre-releases weren't enabled (try: `--prerelease=allow`)

      hint: `torch` was found on https://download.pytorch.org/whl/cu128, but not at the requested version (all of:
          torch>=2.7.0,<2.7.0+cu128
          torch>2.7.0+cu128,<2.8.dev0
      ). A compatible version may be available on a subsequent index (e.g., https://download.pytorch.org/whl/cpu). By default, uv will only consider versions that
      are published on the first index that contains a given package, to avoid dependency confusion attacks. If all indexes are equally trusted, use `--index-strategy
      unsafe-best-match` to consider all versions from all indexes, regardless of the order in which they were defined.

      hint: `nvidia-nccl-cu12` was found on https://download.pytorch.org/whl/rocm6.3, but not at the requested version (nvidia-nccl-cu12==2.26.2). A compatible version may
      be available on a subsequent index (e.g., https://download.pytorch.org/whl/cu128). By default, uv will only consider versions that are published on the first index
      that contains a given package, to avoid dependency confusion attacks. If all indexes are equally trusted, use `--index-strategy unsafe-best-match` to consider all
      versions from all indexes, regardless of the order in which they were defined.

The above error does not occur if I comment out the ROCm marker/source/index config in pyproject.toml.

I tried --index-strategy unsafe-best-match but then that installs torchvision==0.22.0+rocm6.3 alongside torch==2.7.0+cu128.


In the absence of a very confidence-inspiring solution, I'll propose we revert the uv sources changes in this PR.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
invocations PRs that change invocations python PRs that change python files python-deps PRs that change python dependencies Root
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants