From 875da2b8830b50b45b2cb771a8cdc8f1996f1e84 Mon Sep 17 00:00:00 2001 From: Stephan Auerhahn Date: Thu, 11 May 2023 09:26:29 +0000 Subject: [PATCH 1/5] use experimental stability-api package --- .github/workflows/devcontainer.yml | 19 +++++++++++++++++++ .gitmodules | 3 --- nbs/demo_colab.ipynb | 5 ++++- pyproject.toml | 3 +++ src/stability_sdk/api.py | 4 ++-- src/stability_sdk/client.py | 4 ++-- src/stability_sdk/interfaces | 1 - src/stability_sdk/utils.py | 4 ++-- tests/conftest.py | 11 ++--------- tests/test_api.py | 4 ++-- tests/test_client.py | 4 ++-- tests/test_utils.py | 2 +- 12 files changed, 39 insertions(+), 25 deletions(-) create mode 100644 .github/workflows/devcontainer.yml delete mode 160000 src/stability_sdk/interfaces diff --git a/.github/workflows/devcontainer.yml b/.github/workflows/devcontainer.yml new file mode 100644 index 00000000..ffb0bb51 --- /dev/null +++ b/.github/workflows/devcontainer.yml @@ -0,0 +1,19 @@ +name: Build dev container image + +on: + workflow_dispatch: + push: + paths: + - ".devcontainer/" + - "pyproject.toml" + +jobs: + prebuild: + runs-on: ubuntu-latest + steps: + - name: Pre-build dev container image + uses: devcontainers/ci@v0.3 + with: + imageName: ghcr.io/example/example-devcontainer + cacheFrom: ghcr.io/example/example-devcontainer + push: always \ No newline at end of file diff --git a/.gitmodules b/.gitmodules index 1d32a6c4..e69de29b 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +0,0 @@ -[submodule "api-interfaces"] - path = src/stability_sdk/interfaces - url = https://github.com/stability-ai/api-interfaces diff --git a/nbs/demo_colab.ipynb b/nbs/demo_colab.ipynb index 0a08ebd0..6b6533ef 100644 --- a/nbs/demo_colab.ipynb +++ b/nbs/demo_colab.ipynb @@ -1,6 +1,7 @@ { "cells": [ { + "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ @@ -47,7 +48,7 @@ "from IPython.display import display\n", "from PIL import Image\n", "from stability_sdk import client\n", - "import stability_sdk.interfaces.gooseai.generation.generation_pb2 as generation\n", + "import stability_api.platform.generation.v1.generation_pb2 as generation\n", "\n", "\n", "stability_api = client.StabilityInference(\n", @@ -57,6 +58,7 @@ ] }, { + "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ @@ -100,6 +102,7 @@ ] }, { + "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ diff --git a/pyproject.toml b/pyproject.toml index 3471c6bc..2ea1eb93 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -37,6 +37,7 @@ classifiers = [ "Topic :: Scientific/Engineering :: Image Processing", ] dependencies = [ + "stability-api @ git+https://git@github.com/Stability-AI/api-interfaces.git@19fd1bf29b08cede4f1da6787ee06469ac7e39f0#egg=stability_api", "Pillow", "protobuf>=3.19,<5.0", "pydantic>=1.9.2,<2.0", @@ -44,6 +45,8 @@ dependencies = [ "grpcio>=1.45.0", ] +[tool.hatch.metadata] +allow-direct-references = true [project.optional-dependencies] sagemaker = [ diff --git a/src/stability_sdk/api.py b/src/stability_sdk/api.py index 860ba789..1df3c55c 100644 --- a/src/stability_sdk/api.py +++ b/src/stability_sdk/api.py @@ -7,8 +7,8 @@ from typing import Any, Dict, List, Optional import sys -import stability_sdk.interfaces.gooseai.generation.generation_pb2 as generation -import stability_sdk.interfaces.gooseai.generation.generation_pb2_grpc as generation_grpc +import stability_api.platform.generation.v1.generation_pb2 as generation +import stability_api.platform.generation.v1.generation_pb2_grpc as generation_grpc class TextPrompt(BaseModel): diff --git a/src/stability_sdk/client.py b/src/stability_sdk/client.py index f5100087..6294693d 100644 --- a/src/stability_sdk/client.py +++ b/src/stability_sdk/client.py @@ -26,8 +26,8 @@ else: load_dotenv() -import stability_sdk.interfaces.gooseai.generation.generation_pb2 as generation -import stability_sdk.interfaces.gooseai.generation.generation_pb2_grpc as generation_grpc +import stability_api.platform.generation.v1.generation_pb2 as generation +import stability_api.platform.generation.v1.generation_pb2_grpc as generation_grpc from stability_sdk.utils import ( SAMPLERS, diff --git a/src/stability_sdk/interfaces b/src/stability_sdk/interfaces deleted file mode 160000 index d8839bd9..00000000 --- a/src/stability_sdk/interfaces +++ /dev/null @@ -1 +0,0 @@ -Subproject commit d8839bd97f5f3042fcd9ab9671a7503e8a518bec diff --git a/src/stability_sdk/utils.py b/src/stability_sdk/utils.py index 96b75a97..7908e89c 100644 --- a/src/stability_sdk/utils.py +++ b/src/stability_sdk/utils.py @@ -12,8 +12,8 @@ from PIL import Image -import stability_sdk.interfaces.gooseai.generation.generation_pb2 as generation -import stability_sdk.interfaces.gooseai.generation.generation_pb2_grpc as generation_grpc +import stability_api.platform.generation.v1.generation_pb2 as generation +import stability_api.platform.generation.v1.generation_pb2_grpc as generation_grpc logger = logging.getLogger(__name__) logger.setLevel(level=logging.INFO) diff --git a/tests/conftest.py b/tests/conftest.py index 1c0f084a..c1c6cbb4 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -4,19 +4,12 @@ import pytest import logging -import pathlib -import sys - -thisPath = pathlib.Path(__file__).parent.parent.resolve() -genPath = thisPath / "src/stability_sdk/interfaces/gooseai/generation" -assert genPath.exists() - logger = logging.getLogger(__name__) #sys.path.extend([str(genPath), str(tensPath)]) -import stability_sdk.interfaces.gooseai.generation.generation_pb2 as generation -import stability_sdk.interfaces.gooseai.generation.generation_pb2_grpc as generation_grpc +import stability_api.platform.generation.v1.generation_pb2 as generation +import stability_api.platform.generation.v1.generation_pb2_grpc as generation_grpc # modified from https://github.com/justdoit0823/grpc-resolver/blob/master/tests/conftest.py diff --git a/tests/test_api.py b/tests/test_api.py index 1cf8144b..5ad6c026 100644 --- a/tests/test_api.py +++ b/tests/test_api.py @@ -3,8 +3,8 @@ import base64 from stability_sdk.api import CreateRequest, CreateResponse, GenerationResponse -from stability_sdk.interfaces.gooseai.generation.generation_pb2 import Answer, Artifact -import stability_sdk.interfaces.gooseai.generation.generation_pb2 as generation +from stability_api.platform.generation.v1.generation_pb2 import Answer, Artifact +import stability_api.platform.generation.v1.generation_pb2 as generation def test_text_to_image(): request = CreateRequest( diff --git a/tests/test_client.py b/tests/test_client.py index a17feb72..f6a62830 100644 --- a/tests/test_client.py +++ b/tests/test_client.py @@ -2,8 +2,8 @@ from PIL import Image from stability_sdk import client -import stability_sdk.interfaces.gooseai.generation.generation_pb2 as generation -import stability_sdk.interfaces.gooseai.generation.generation_pb2_grpc as generation_grpc +import stability_api.platform.generation.v1.generation_pb2 as generation +import stability_api.platform.generation.v1.generation_pb2_grpc as generation_grpc import grpc diff --git a/tests/test_utils.py b/tests/test_utils.py index a9c909c5..56f482de 100644 --- a/tests/test_utils.py +++ b/tests/test_utils.py @@ -1,5 +1,5 @@ import pytest -import stability_sdk.interfaces.gooseai.generation.generation_pb2 as generation +import stability_api.platform.generation.v1.generation_pb2 as generation from stability_sdk.utils import ( SAMPLERS, From b1acac604d7fe556d86779affc35923d04a32879 Mon Sep 17 00:00:00 2001 From: Stephan Auerhahn Date: Thu, 11 May 2023 02:30:26 -0700 Subject: [PATCH 2/5] update devcontainer action --- .github/workflows/devcontainer.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/devcontainer.yml b/.github/workflows/devcontainer.yml index ffb0bb51..dab7123f 100644 --- a/.github/workflows/devcontainer.yml +++ b/.github/workflows/devcontainer.yml @@ -6,6 +6,7 @@ on: paths: - ".devcontainer/" - "pyproject.toml" + - ".github/workflows/devcontainer.yml" jobs: prebuild: @@ -14,6 +15,6 @@ jobs: - name: Pre-build dev container image uses: devcontainers/ci@v0.3 with: - imageName: ghcr.io/example/example-devcontainer - cacheFrom: ghcr.io/example/example-devcontainer + imageName: ghcr.io/stability-ai/stability-sdk-devcontainer + cacheFrom: ghcr.io/stability-ai/stability-sdk-devcontainer push: always \ No newline at end of file From 134fb29d27bcb2603a65fb7144c0ed1f898b8069 Mon Sep 17 00:00:00 2001 From: Stephan Auerhahn Date: Thu, 11 May 2023 02:31:12 -0700 Subject: [PATCH 3/5] add checkout --- .github/workflows/devcontainer.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/devcontainer.yml b/.github/workflows/devcontainer.yml index dab7123f..5ed0b176 100644 --- a/.github/workflows/devcontainer.yml +++ b/.github/workflows/devcontainer.yml @@ -10,8 +10,11 @@ on: jobs: prebuild: - runs-on: ubuntu-latest + runs-on: ubuntu-latest steps: + - uses: actions/checkout@v3 + with: + submodules: recursive - name: Pre-build dev container image uses: devcontainers/ci@v0.3 with: From 5e3bed199c0935af70dadd25961f68fe9610af23 Mon Sep 17 00:00:00 2001 From: Stephan Auerhahn Date: Fri, 12 May 2023 07:18:04 -0700 Subject: [PATCH 4/5] login to registry --- .github/workflows/devcontainer.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.github/workflows/devcontainer.yml b/.github/workflows/devcontainer.yml index 5ed0b176..2c1106a1 100644 --- a/.github/workflows/devcontainer.yml +++ b/.github/workflows/devcontainer.yml @@ -15,6 +15,12 @@ jobs: - uses: actions/checkout@v3 with: submodules: recursive + - name: Login to container registry + uses: docker/login-action@v2.1.0 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} - name: Pre-build dev container image uses: devcontainers/ci@v0.3 with: From 82fcca49731f00c9670220a6657a797619563b90 Mon Sep 17 00:00:00 2001 From: Stephan Auerhahn Date: Fri, 12 May 2023 15:41:13 +0000 Subject: [PATCH 5/5] use prebuilt container --- .devcontainer/devcontainer.json | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index bde6ccdc..737aacb8 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -2,10 +2,7 @@ // README at: https://github.com/devcontainers/templates/tree/main/src/python { "name": "Python 3", - // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile - "build": { - "dockerfile": "Dockerfile", - }, + "image": "ghcr.io/stability-ai/stability-sdk-devcontainer:latest", "customizations": { "vscode": { "settings": {