Skip to content

Commit f141555

Browse files
committed
Merge branch 'main' into jayu/rev-dep
2 parents 9d98d97 + 0a09452 commit f141555

999 files changed

Lines changed: 69536 additions & 4848 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/ISSUE_TEMPLATE/config.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
blank_issues_enabled: false
22
contact_links:
33
- name: Project-Documentation
4-
url: https://invoke-ai.github.io/InvokeAI/
4+
url: https://invoke.ai/
55
about: Should be your first place to go when looking for manuals/FAQs regarding our InvokeAI Toolkit
66
- name: Discord
77
url: https://discord.gg/ZmtBAhwWhy

.github/workflows/deploy-docs.yml

Lines changed: 141 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,141 @@
1+
name: 'docs'
2+
3+
on:
4+
push:
5+
branches:
6+
- 'main'
7+
pull_request:
8+
types:
9+
- 'ready_for_review'
10+
- 'opened'
11+
- 'synchronize'
12+
workflow_dispatch:
13+
inputs:
14+
deploy_target:
15+
description: 'Deploy target (custom = invoke.ai, ghpages = invoke-ai.github.io/InvokeAI)'
16+
type: choice
17+
options:
18+
- custom
19+
- ghpages
20+
default: custom
21+
22+
permissions:
23+
contents: read
24+
pull-requests: read
25+
26+
concurrency:
27+
group: ${{ github.workflow }}-${{ github.ref || github.run_id }}
28+
cancel-in-progress: true
29+
30+
jobs:
31+
changes:
32+
runs-on: ubuntu-latest
33+
outputs:
34+
docs: ${{ steps.manual.outputs.docs || steps.filter.outputs.docs }}
35+
steps:
36+
- name: checkout
37+
uses: actions/checkout@v4
38+
with:
39+
fetch-depth: 0
40+
41+
- name: mark manual run
42+
if: github.event_name == 'workflow_dispatch'
43+
id: manual
44+
run: echo "docs=true" >> "$GITHUB_OUTPUT"
45+
46+
- name: detect docs-related changes
47+
if: github.event_name != 'workflow_dispatch'
48+
id: filter
49+
uses: dorny/paths-filter@v3
50+
with:
51+
filters: |
52+
docs:
53+
- '.github/workflows/deploy-docs.yml'
54+
- 'docs/**'
55+
- 'scripts/generate_docs_json.py'
56+
- 'invokeai/app/**'
57+
- 'invokeai/backend/**'
58+
- 'pyproject.toml'
59+
- 'uv.lock'
60+
61+
check-and-build:
62+
needs: changes
63+
if: |
64+
github.event_name == 'workflow_dispatch' ||
65+
(github.event_name == 'pull_request' &&
66+
github.event.pull_request.draft == false &&
67+
needs.changes.outputs.docs == 'true') ||
68+
(github.event_name == 'push' && needs.changes.outputs.docs == 'true')
69+
runs-on: ubuntu-22.04
70+
timeout-minutes: 20
71+
steps:
72+
- name: checkout
73+
uses: actions/checkout@v4
74+
75+
# Python (needed for generate-docs-data)
76+
- name: setup uv
77+
uses: astral-sh/setup-uv@v5
78+
with:
79+
version: '0.6.10'
80+
enable-cache: true
81+
python-version: '3.11'
82+
83+
- name: setup python
84+
uses: actions/setup-python@v5
85+
with:
86+
python-version: '3.11'
87+
88+
# generate_docs_json.py only needs the invokeai package importable
89+
# (pydantic + invokeai.app/backend). Skip the [test] extra to keep CI fast.
90+
- name: install python dependencies
91+
run: uv pip install --editable .
92+
93+
# Node (needed for docs build)
94+
- name: setup node
95+
uses: actions/setup-node@v4
96+
with:
97+
node-version: '22.12.0'
98+
99+
- name: setup pnpm
100+
uses: pnpm/action-setup@v4
101+
with:
102+
version: 10
103+
run_install: false
104+
105+
- name: install docs dependencies
106+
run: pnpm install --prefer-frozen-lockfile
107+
working-directory: docs
108+
109+
# Checks
110+
- name: verify generated docs data
111+
run: pnpm run check-docs-data
112+
working-directory: docs
113+
114+
- name: build docs
115+
run: pnpm build
116+
working-directory: docs
117+
env:
118+
DEPLOY_TARGET: ${{ github.event_name == 'workflow_dispatch' && inputs.deploy_target || github.ref == 'refs/heads/main' && 'ghpages' || 'custom' }}
119+
120+
# Upload artifact for deploy (main branch only)
121+
- name: upload pages artifact
122+
if: github.ref == 'refs/heads/main'
123+
uses: actions/upload-pages-artifact@v3
124+
with:
125+
path: docs/dist
126+
127+
deploy:
128+
if: github.ref == 'refs/heads/main'
129+
needs: check-and-build
130+
runs-on: ubuntu-latest
131+
permissions:
132+
contents: read
133+
pages: write
134+
id-token: write
135+
environment:
136+
name: github-pages
137+
url: ${{ steps.deployment.outputs.page_url }}
138+
steps:
139+
- name: deploy to GitHub Pages
140+
id: deployment
141+
uses: actions/deploy-pages@v4

.github/workflows/mkdocs-material.yml

Lines changed: 0 additions & 49 deletions
This file was deleted.

.github/workflows/translations.yml

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
name: Crowdin Translations
2+
3+
on:
4+
# Allow manual runs from the Actions tab
5+
workflow_dispatch:
6+
inputs:
7+
upload_sources:
8+
description: 'Upload source strings to Crowdin'
9+
type: boolean
10+
default: true
11+
download_translations:
12+
description: 'Download translations from Crowdin'
13+
type: boolean
14+
default: true
15+
16+
# Upload sources & download translations when source files change on main
17+
push:
18+
branches:
19+
- main
20+
paths:
21+
- 'invokeai/frontend/web/public/locales/en.json'
22+
- 'docs/src/content/i18n/en.json'
23+
- 'docs/src/content/docs/**/*.md'
24+
- 'docs/src/content/docs/**/*.mdx'
25+
- '!docs/src/content/docs/[a-z][a-z]/**'
26+
- '!docs/src/content/docs/[a-z][a-z]-*/**'
27+
- 'crowdin.yml'
28+
29+
permissions:
30+
contents: write
31+
pull-requests: write
32+
33+
jobs:
34+
crowdin-sync:
35+
name: Sync with Crowdin
36+
runs-on: ubuntu-latest
37+
38+
steps:
39+
- name: Checkout
40+
uses: actions/checkout@v4
41+
42+
- name: Crowdin Sync
43+
uses: crowdin/github-action@v2
44+
with:
45+
# Upload sources on push to main or when manually requested
46+
upload_sources: ${{ github.event_name != 'workflow_dispatch' || inputs.upload_sources }}
47+
upload_translations: false
48+
49+
# Download translations on push to main or when manually requested
50+
download_translations: ${{ github.event_name != 'workflow_dispatch' || inputs.download_translations }}
51+
52+
# PR settings for downloaded translations
53+
create_pull_request: true
54+
pull_request_title: 'i18n: update translations from Crowdin'
55+
pull_request_body: |
56+
Automated pull request from [Crowdin](https://crowdin.com).
57+
58+
This PR updates translations for:
59+
- **Web App UI** (`invokeai/frontend/web/public/locales/`)
60+
- **Documentation UI Strings** (`docs/src/content/i18n/`)
61+
- **Documentation Content** (`docs/src/content/docs/<locale>/`)
62+
pull_request_base_branch_name: main
63+
pull_request_labels: 'i18n'
64+
65+
# Commit settings
66+
localization_branch_name: crowdin/translations
67+
commit_message: 'i18n: update translations from Crowdin'
68+
69+
# Use the config file at the repo root
70+
config: crowdin.yml
71+
72+
# Skip untranslated strings/files to keep partial translations clean
73+
download_translations_args: '--skip-untranslated-strings'
74+
75+
env:
76+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
77+
CROWDIN_PROJECT_ID: ${{ secrets.CROWDIN_PROJECT_ID }}
78+
CROWDIN_PERSONAL_TOKEN: ${{ secrets.CROWDIN_PERSONAL_TOKEN }}

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -179,6 +179,7 @@ cython_debug/
179179

180180
# Scratch folder
181181
.scratch/
182+
worktrees/
182183
.vscode/
183184
.zed/
184185

Makefile

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,13 @@ help:
1212
@echo "mypy-all Run mypy ignoring the config in pyproject.tom but still ignoring missing imports"
1313
@echo "test Run the unit tests."
1414
@echo "update-config-docstring Update the app's config docstring so mkdocs can autogenerate it correctly."
15-
@echo "frontend-install Install the pnpm modules needed for the front end"
16-
@echo "frontend-build Build the frontend in order to run on localhost:9090"
15+
@echo "frontend-install Install the pnpm modules needed for the frontend"
16+
@echo "frontend-build Build the frontend for localhost:9090"
17+
@echo "frontend-test Run the frontend test suite once"
1718
@echo "frontend-dev Run the frontend in developer mode on localhost:5173"
1819
@echo "frontend-typegen Generate types for the frontend from the OpenAPI schema"
19-
@echo "frontend-prettier Format the frontend using lint:prettier"
20-
@echo "wheel Build the wheel for the current version"
20+
@echo "frontend-lint Run frontend checks and fixable lint/format steps"
21+
@echo "wheel Build the wheel for the current version"
2122
@echo "tag-release Tag the GitHub repository with the current version (use at release time only!)"
2223
@echo "openapi Generate the OpenAPI schema for the app, outputting to stdout"
2324
@echo "docs Serve the mkdocs site with live reload"
@@ -57,6 +58,10 @@ frontend-install:
5758
frontend-build:
5859
cd invokeai/frontend/web && pnpm build
5960

61+
# Run the frontend test suite once
62+
frontend-test:
63+
cd invokeai/frontend/web && pnpm run test:run
64+
6065
# Run the frontend in dev mode
6166
frontend-dev:
6267
cd invokeai/frontend/web && pnpm dev

README.md

Lines changed: 33 additions & 9 deletions

docker/README.md

Lines changed: 1 addition & 1 deletion

0 commit comments

Comments
 (0)