Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
539 commits
Select commit Hold shift + click to select a range
e21e901
Fixes inpainting + code cleanup
psychedelicious Nov 11, 2022
5410d42
Disable stage info in Inpainting Tab
blessedcoolant Nov 11, 2022
775f032
Mask Brush Preview now always at 0.5 opacity
blessedcoolant Nov 11, 2022
7f0fb47
Remove save button from Canvas Controls (cleanup)
blessedcoolant Nov 11, 2022
7075a17
Implements invert mask
psychedelicious Nov 11, 2022
c7ef41a
Changes "Invert Mask" to "Preserve Masked Areas"
psychedelicious Nov 11, 2022
1114ac9
Fixes (?) spacebar issues
psychedelicious Nov 12, 2022
eb17dfd
Patches redux-persist and redux-deep-persist with debounced persists
psychedelicious Nov 12, 2022
e3735eb
Adds debouncing
psychedelicious Nov 12, 2022
bb79c78
Fixes AttributeError: 'dict' object has no attribute 'invert_mask'
psychedelicious Nov 12, 2022
9284983
Updates package.json to use redux-persist patches
psychedelicious Nov 12, 2022
d5467e7
Attempts to fix redux-persist debounce patch
psychedelicious Nov 12, 2022
3f13603
Fixes undo/redo
psychedelicious Nov 12, 2022
3177628
Fixes invert mask
psychedelicious Nov 12, 2022
f82e82f
Debounce > 300ms
psychedelicious Nov 12, 2022
88d0258
Limits history to 256 for each of undo and redo
psychedelicious Nov 12, 2022
7831468
Canvas styling
psychedelicious Nov 12, 2022
0a2e67d
Hotkeys improvement
psychedelicious Nov 12, 2022
00e2674
Add Metadata To Viewer
blessedcoolant Nov 12, 2022
4e34194
Increases CFG Scale max to 200
psychedelicious Nov 12, 2022
c223d93
Fix gallery width size for Outpainting
blessedcoolant Nov 12, 2022
73099af
Fixes disappearing canvas grid lines
psychedelicious Nov 13, 2022
179656d
Adds staging area
psychedelicious Nov 13, 2022
5d48427
Fixes "use all" not setting variationAmount
psychedelicious Nov 13, 2022
70dcfa1
Builds fresh bundle
psychedelicious Nov 13, 2022
17b2958
Outpainting tab loads to empty canvas instead of upload
psychedelicious Nov 13, 2022
5304ef5
Fixes wonky canvas layer ordering & compositing
psychedelicious Nov 13, 2022
0e7b735
Fixes error on inpainting paste back
psychedelicious Nov 13, 2022
82f6402
Hides staging area outline on mouseover prev/next
psychedelicious Nov 14, 2022
d788443
Fixes inpainting not doing img2img when no mask
psychedelicious Nov 14, 2022
1bc1085
Fixes bbox not resizing in outpainting if partially off screen
psychedelicious Nov 14, 2022
34395ff
Fixes crashes during iterative outpaint. Still doesn't work correctly…
Kyle0654 Nov 14, 2022
b049bbc
Fix iterative outpainting by restoring original images
Kyle0654 Nov 14, 2022
4382cd0
Moves image uploading to HTTP
psychedelicious Nov 14, 2022
c0ad1b3
Fixes: outpainting temp images show in gallery
psychedelicious Nov 15, 2022
cfb87bc
WIP refactor to unified canvas
psychedelicious Nov 15, 2022
caf8f0a
Removes console.log from redux-persist patch
psychedelicious Nov 16, 2022
15dd133
Initial unification of canvas
psychedelicious Nov 16, 2022
e3efcc6
Removes all references to split inpainting/outpainting canvas
psychedelicious Nov 17, 2022
98e3bbb
Add patchmatch and infill_method parameter to prompt2image (options a…
Kyle0654 Nov 17, 2022
223e052
Fixes app after removing in/out-painting refs
psychedelicious Nov 17, 2022
48ad0c2
Rebases on dev, updates new env files w/ patchmatch
psychedelicious Nov 17, 2022
827f516
Organises features/canvas
psychedelicious Nov 17, 2022
1d54021
Fixes bounding box ending up offscreen
psychedelicious Nov 17, 2022
432dc70
Organises features/canvas
psychedelicious Nov 17, 2022
0100a63
Stops unnecessary canvas rescales on gallery state change
psychedelicious Nov 17, 2022
3994c28
Fixes 2px layout shift on toggle canvas lock
psychedelicious Nov 17, 2022
425d3bc
Clips lines drawn while canvas locked
psychedelicious Nov 17, 2022
ed70fc6
Fixes reset canvas view when locked
psychedelicious Nov 17, 2022
7448541
Fixes send to buttons
psychedelicious Nov 17, 2022
c0005eb
Fixes bounding box not being rounded to 64
psychedelicious Nov 17, 2022
635e7da
Abandons "inpainting" canvas lock
psychedelicious Nov 18, 2022
19322fc
Fixes save to gallery including empty area, adds download and copy image
psychedelicious Nov 18, 2022
ae6dd21
Fix Current Image display background going over image bounds
blessedcoolant Nov 18, 2022
e28599c
Sets status immediately when clicking Invoke
psychedelicious Nov 18, 2022
aa96a45
Adds hotkeys and refactors sharing of konva instances
psychedelicious Nov 18, 2022
07ca087
Updates hotkeys
psychedelicious Nov 18, 2022
70e67c4
Fixes canvas showing spinner on first load
psychedelicious Nov 18, 2022
425a171
Fixes possible hang on MaskCompositer
psychedelicious Nov 18, 2022
bb70c32
Improves behaviour when setting init canvas image/reset view
psychedelicious Nov 18, 2022
84f702b
Resets bounding box coords/dims when no image present
psychedelicious Nov 18, 2022
c69573e
Disables canvas actions which cannot be done during processing
psychedelicious Nov 18, 2022
04cb2d3
Adds useToastWatcher hook
psychedelicious Nov 18, 2022
024acf4
Update Hotkey Info
blessedcoolant Nov 18, 2022
93192b9
Fix theme changer not displaying current theme on page refresh
blessedcoolant Nov 18, 2022
a96af7a
Fix tab count in hotkeys panel
blessedcoolant Nov 18, 2022
2bda3d6
Unify Brush and Eraser Sizes
blessedcoolant Nov 18, 2022
d0ceabd
Fix staging area display toggle not working
blessedcoolant Nov 18, 2022
4f51680
Staging Area delete button is now red
blessedcoolant Nov 18, 2022
e5951ad
Revert "Fix theme changer not displaying current theme on page refresh"
blessedcoolant Nov 18, 2022
87439fe
Add arguments to use SSL to webserver
javl Nov 18, 2022
d82a21c
Integrates #1487 - touch events
psychedelicious Nov 18, 2022
bc46c46
Refactors upload-related async thunks
psychedelicious Nov 19, 2022
2ab8683
Reorganises app file structure
psychedelicious Nov 19, 2022
ae4a44d
Fixes Canvas Auto Save to Gallery
psychedelicious Nov 19, 2022
68aebad
Fixes staging area outline
psychedelicious Nov 19, 2022
b8cebf2
Adds staging area hotkeys, disables gallery left/right when staging
psychedelicious Nov 19, 2022
cdc5f66
Fixes Use All Parameters
psychedelicious Nov 19, 2022
e358ade
Fix metadata viewer image url length when viewing intermediate
psychedelicious Nov 19, 2022
d018b2d
Fixes intermediate images being tiny in txt2img/img2img
psychedelicious Nov 19, 2022
cccbfb1
Removes stale code
psychedelicious Nov 19, 2022
37a356d
Improves canvas status text and adds option to toggle debug info
psychedelicious Nov 19, 2022
5fd43fc
Fixes paste image to upload
psychedelicious Nov 19, 2022
548bcac
Adds model drop-down to site header
psychedelicious Nov 19, 2022
dfc0c58
Adds theme changer popover
psychedelicious Nov 19, 2022
917c576
Fix missing key on ThemeChanger map
blessedcoolant Nov 19, 2022
e7f670a
Fixes stage position changing on zoom
psychedelicious Nov 19, 2022
cde395e
Hotkey Cleanup
blessedcoolant Nov 19, 2022
a3308c8
Fix canvas resizing when both options and gallery are unpinned
blessedcoolant Nov 19, 2022
50a67a7
Implements thumbnails for gallery
psychedelicious Nov 19, 2022
d987d0a
Saves thumbnails to separate thumbnails directory
psychedelicious Nov 19, 2022
1071a12
Thumbnail size = 256px
psychedelicious Nov 19, 2022
d55b1e1
Fix Lightbox Issues
blessedcoolant Nov 19, 2022
b50a1eb
Disables canvas image saving functions when processing
psychedelicious Nov 19, 2022
9950790
Fix index error on going past last image in Gallery
blessedcoolant Nov 19, 2022
0c3ae23
WIP - Lightbox Fixes
blessedcoolant Nov 19, 2022
7f999e9
Fixes another similar index error, simplifies logic
psychedelicious Nov 19, 2022
83d8e69
Reworks canvas toolbar
psychedelicious Nov 19, 2022
0f6856b
Fixes canvas toolbar upload button
psychedelicious Nov 19, 2022
9418324
Cleans up IAICanvasStatusText
psychedelicious Nov 19, 2022
b908f2b
Improves metadata handling, fixes #1450
psychedelicious Nov 20, 2022
9d34213
Gracefully handles corrupted images; fixes #1486
psychedelicious Nov 20, 2022
d4376ed
Adds hotkey to reset canvas interaction state
psychedelicious Nov 20, 2022
76e7e82
Removes stray console.log()
psychedelicious Nov 20, 2022
b6dd5b6
Fixes bug causing gallery to close on context menu open
psychedelicious Nov 20, 2022
f08c78a
Minor bugfixes
psychedelicious Nov 20, 2022
6c33d13
Removes unused imports
psychedelicious Nov 20, 2022
c7c6940
Fixes repo root .gitignore ignoring frontend things
psychedelicious Nov 20, 2022
b812318
Builds fresh bundle
psychedelicious Nov 20, 2022
b72b61b
Styling updates
psychedelicious Nov 20, 2022
5ed6a31
Removes reasonsWhyNotReady
psychedelicious Nov 20, 2022
3f6b275
Image gallery resize/style tweaks
psychedelicious Nov 20, 2022
7dff8cc
Styles buttons for clearing canvas history and mask
psychedelicious Nov 20, 2022
80f6f9a
First pass on Canvas options panel
psychedelicious Nov 20, 2022
d27d923
Fixes bug where discarding staged images results in loss of history
psychedelicious Nov 20, 2022
e1e978b
Adds Save to Gallery button to staging toolbar
psychedelicious Nov 20, 2022
088fd97
Rearrange some canvas toolbar icons
blessedcoolant Nov 20, 2022
286e46a
Fix gallery maxwidth on unified canvas
blessedcoolant Nov 20, 2022
f687025
Update Layer hotkey display to UI
blessedcoolant Nov 20, 2022
896c253
Adds option to crop to bounding box on save
psychedelicious Nov 20, 2022
90eaac5
Masking option tweaks
psychedelicious Nov 20, 2022
8a16c8a
Crop to Bounding Box > Save Box Region Only
psychedelicious Nov 20, 2022
6a3d725
Adds clear temp folder
psychedelicious Nov 20, 2022
3e22160
Updates mask options popover behavior
psychedelicious Nov 20, 2022
ef482b4
Builds fresh bundle
psychedelicious Nov 20, 2022
cb7458d
Fix styling on alert modals
blessedcoolant Nov 20, 2022
1f772e4
Fix input checkbox styling being incorrect on light theme
blessedcoolant Nov 20, 2022
c787a3a
Styling fixes
blessedcoolant Nov 20, 2022
d9c7a28
Improves gallery resize behaviour
psychedelicious Nov 21, 2022
a1d80fd
Cap gallery size on canvas tab so it doesnt overflow
blessedcoolant Nov 21, 2022
089c85a
Fixes bug when postprocessing image with no metadata
psychedelicious Nov 21, 2022
b0810e1
Adds IAIAlertDialog component
psychedelicious Nov 21, 2022
306ed44
Moves Loopback to app settings
psychedelicious Nov 21, 2022
0cdb7bb
Fixes metadata viewer not showing metadata after refresh
psychedelicious Nov 21, 2022
ef1dbdb
Adds outpainting specific options
psychedelicious Nov 21, 2022
e821b97
Linting
psychedelicious Nov 21, 2022
11969c2
Fixes gallery width on lightbox, fixes gallery button expansion
psychedelicious Nov 21, 2022
7caf20a
Builds fresh bundle
psychedelicious Nov 21, 2022
6445e80
Fix Lightbox images of different res not centering
blessedcoolant Nov 22, 2022
00da042
Update feature tooltip text
hipsterusername Nov 22, 2022
93de78b
Highlight mask icon when on mask layer
blessedcoolant Nov 22, 2022
9a6a970
Fix gallery not resizing correctly on open and close
blessedcoolant Nov 22, 2022
25b19b9
Add loopback to just img2img. Remove from settings.
blessedcoolant Nov 22, 2022
f3b7316
Fix to gallery resizing
blessedcoolant Nov 22, 2022
7e4e51b
Removes Advanced checkbox, cleans up options panel for unified canvas
psychedelicious Nov 22, 2022
8488575
Minor styling fixes to new options panel layout
blessedcoolant Nov 22, 2022
ddfd825
Styling Updates
blessedcoolant Nov 22, 2022
723dcf4
Adds infill method
psychedelicious Nov 22, 2022
8b08af7
Tab Styling Fixes
blessedcoolant Nov 22, 2022
c6112e3
memoize outpainting options
blessedcoolant Nov 22, 2022
78217f5
Fix unnecessary gallery re-renders
blessedcoolant Nov 22, 2022
2fcc7d9
Isolate Cursor Pos debug text on canvas to prevent rerenders
blessedcoolant Nov 22, 2022
0060551
Fixes missing postprocessed image metadata before refresh
psychedelicious Nov 22, 2022
dc5d696
Builds fresh bundle
psychedelicious Nov 22, 2022
3ea7323
Fix rerenders on model select
blessedcoolant Nov 22, 2022
7b76b79
Floating panel re-render fix
blessedcoolant Nov 22, 2022
69a4a6f
Simplify fullscreen hotkey selector
blessedcoolant Nov 22, 2022
ec3d25d
Add Training WIP Tab
blessedcoolant Nov 22, 2022
a86049f
Adds Training icon
psychedelicious Nov 22, 2022
876ae7f
Move full screen hotkey to floating to prevent tab rerenders
blessedcoolant Nov 22, 2022
941d427
Adds single-column gallery layout
psychedelicious Nov 23, 2022
30dc922
Fixes crash on cancel with intermediates enabled, fixes #1416
psychedelicious Nov 23, 2022
419f670
Updates npm dependencies
psychedelicious Nov 23, 2022
df03927
Fixes img2img attempting inpaint when init image has transparency
psychedelicious Nov 23, 2022
500bde5
Fixes missing threshold and perlin parameters in metadata viewer
psychedelicious Nov 23, 2022
344cdf0
Renames "Threshold" > "Noise Threshold"
psychedelicious Nov 23, 2022
b31f90c
Fixes postprocessing not being disabled when clicking use all
psychedelicious Nov 23, 2022
d44112c
Builds fresh bundle
psychedelicious Nov 23, 2022
9f1c1cf
Adds color picker
psychedelicious Nov 23, 2022
8d0ef02
Lints & builds fresh bundle
psychedelicious Nov 23, 2022
7515bcf
Fixes iterations being disabled when seed random & variations are off
psychedelicious Nov 23, 2022
6f3e99e
Un-floors cursor position
psychedelicious Nov 23, 2022
318426b
Changes color picker preview to circles
psychedelicious Nov 23, 2022
a7f11a8
Fixes variation params not set correctly when recalled
psychedelicious Nov 24, 2022
fcd3ef1
Fixes invoke hotkey not working in input fields
psychedelicious Nov 24, 2022
c8c1b3e
Simplifies Accordion
psychedelicious Nov 24, 2022
473869b
Fixes mask brush preview color
psychedelicious Nov 24, 2022
e67ef4a
Committing color picker color changes tool to brush
psychedelicious Nov 24, 2022
db188cd
Color picker does not overwrite user-selected alpha
psychedelicious Nov 24, 2022
62ac725
Adds brush color alpha hotkey
psychedelicious Nov 24, 2022
52c79fa
Lints
psychedelicious Nov 24, 2022
7f1b95f
Removes force_outpaint param
psychedelicious Nov 24, 2022
9fe9301
Add inpaint size options to inpaint at a larger size than the actual …
psychedelicious Nov 24, 2022
b93336d
Bug fix for inpaint size
psychedelicious Nov 24, 2022
46a5fd6
Adds inpaint size (as scale bounding box) to UI
psychedelicious Nov 24, 2022
d4280bb
Adds auto-scaling for inpaint size
psychedelicious Nov 24, 2022
9568ac6
Improves scaled bbox display logic
psychedelicious Nov 24, 2022
c7864f8
Fixes bug with clear mask and history
psychedelicious Nov 24, 2022
404d81f
Fixes shouldShowStagingImage not resetting to true on commit
psychedelicious Nov 24, 2022
f5e8ffe
Builds fresh bundle
psychedelicious Nov 24, 2022
a3a0a87
Fixes canvas failing to scale on first run
psychedelicious Nov 24, 2022
3f0cfaa
Builds fresh bundle
psychedelicious Nov 24, 2022
3aebe75
Fixes unnecessary canvas scaling
psychedelicious Nov 24, 2022
916e795
Adds gallery drag and drop to img2img/canvas
psychedelicious Nov 24, 2022
1e9121c
Builds fresh bundle
psychedelicious Nov 25, 2022
b0697bc
Fix desktop mode being broken with new versions of flaskwebgui
blessedcoolant Nov 26, 2022
3131edb
Fixes canvas dimensions not setting on first load
psychedelicious Nov 26, 2022
9e0504a
Builds fresh bundle
psychedelicious Nov 26, 2022
a341297
stop crash on !import_models call on model inside rootdir
lstein Nov 26, 2022
9adaf8f
prevent "!switch state gets confused if model switching fails"
lstein Nov 26, 2022
7a04385
Merge branch 'development' into model-import-fixes
lstein Nov 26, 2022
7f3ba16
Revert "make the docstring more readable and improve the list_models …
lstein Nov 26, 2022
4ae1df5
Merge branch 'development' into backend-can-find-frontend
lstein Nov 26, 2022
a50f4da
install frontend/dist into package directory (#1554)
lstein Nov 26, 2022
74487a9
Merge branch 'development' into model-import-fixes
lstein Nov 26, 2022
d5011ef
fix model cache path
mauwii Nov 26, 2022
e5646de
also set fail-fast to it's default (true)
mauwii Nov 26, 2022
37535f5
fix output path for Archive results
mauwii Nov 26, 2022
f2d2a49
disable checks for python 3.9
mauwii Nov 26, 2022
939164e
Merge branch 'development' into model-import-fixes
mauwii Nov 27, 2022
12eff0d
Update-requirements and test-invoke-pip workflow (#1574)
mauwii Nov 27, 2022
0608d25
move requirements-mkdocs.txt to docs folder (#1575)
mauwii Nov 27, 2022
b101334
Merge branch 'development' into model-import-fixes
mauwii Nov 27, 2022
9f02595
Fixes outpainting with resized inpaint size
Kyle0654 Nov 27, 2022
30c5a0b
Interactive configuration (#1517)
lstein Nov 28, 2022
1e1f871
Embedding merging (#1526)
lstein Nov 28, 2022
495104e
Merge branch 'invoke-ai:development' into development
devops117 Nov 28, 2022
7c658c6
model_cache.py: fix list_models
devops117 Nov 28, 2022
81cb7fd
Merge branch 'development' into model-import-fixes
lstein Nov 28, 2022
08ef4d6
add statement of values (#1584)
lstein Nov 28, 2022
3f6d0fb
update dockerfile (#1551)
mauwii Nov 28, 2022
a3121b8
!model_import autocompletes in ROOTDIR
lstein Nov 28, 2022
84cd96d
set readline root to ROOTDIR for model import
lstein Nov 28, 2022
281a2e3
make the docstring more readable and improve the list_models logic (…
damian0815 Nov 28, 2022
bc44ab7
Bug Fix: Model import fixes (#1566)
damian0815 Nov 28, 2022
90b21db
Adds psychedelicious to statement of values signature (#1602)
psychedelicious Nov 28, 2022
a514f9b
add a --no-patchmatch option to disable patchmatch loading (#1598)
lstein Nov 28, 2022
45e51ba
Fix #1599 by relaxing the `match_trigger` regex (#1601)
damian0815 Nov 28, 2022
62cda00
make concepts library work with Web UI
lstein Nov 28, 2022
6cc5604
documentation enhancements (#1603)
lstein Nov 28, 2022
8423be5
tweak setup and environment files for linux & pypatchmatch (#1580)
lstein Nov 29, 2022
8999a55
make concepts library work with Web UI (#1608)
damian0815 Nov 29, 2022
40c3ab0
revert to older version of list_models() (#1611)
lstein Nov 29, 2022
61cc41a
Fixes for #1604 (#1605)
psychedelicious Nov 29, 2022
f43b767
update index.md (#1609)
mauwii Nov 29, 2022
5897e51
Debloat-docker (#1612)
mauwii Nov 29, 2022
6bc11bf
Test installer (#1618)
lstein Nov 29, 2022
b60edab
2.2 Doc Updates (#1589)
hipsterusername Nov 29, 2022
103efea
include a step after config to `cat ~/.invokeai` (#1629)
mauwii Nov 30, 2022
f8708f5
disable patchmatch in CI actions (#1626)
lstein Nov 30, 2022
1f8e566
Fix installer script for macOS. (#1630)
dreness Nov 30, 2022
b68074b
Removes symlinked environment.yaml (#1631)
psychedelicious Nov 30, 2022
9b6b27a
Fix inpainting with iterations (#1635)
Kyle0654 Nov 30, 2022
a9aa4e4
fix error when inpainting using runwayml inpainting model (#1634)
lstein Nov 30, 2022
2443e5d
add k_dpmpp_2_a and k_dpmpp_2 solvers options (#1389)
victorca25 Nov 30, 2022
9fae65e
add .editorconfig (#1636)
mauwii Nov 30, 2022
5e81f51
Web UI 2.2 bugfixes (#1572)
psychedelicious Nov 30, 2022
2213339
disable NSFW checker loading during the CI tests (#1641)
lstein Nov 30, 2022
971f5c5
Configure the NSFW checker at install time with default on (#1624)
lstein Nov 30, 2022
70baa6c
fix conflicts
lstein Nov 30, 2022
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
13 changes: 11 additions & 2 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,12 @@
*
!environment*.yml
!docker-build
!backend
!configs
!environments-and-requirements
!frontend
!installer
!ldm
!main.py
!scripts
!server
!static
!setup.py
12 changes: 12 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# All files
[*]
charset = utf-8
end_of_line = lf
indent_size = 2
indent_style = space
insert_final_newline = true
trim_trailing_whitespace = true

# Python
[*.py]
indent_size = 4
2 changes: 2 additions & 0 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
Expand Up @@ -3,3 +3,5 @@ ldm/invoke/server_legacy.py @CapableWeb
scripts/legacy_api.py @CapableWeb
tests/legacy_tests.sh @CapableWeb
installer/ @tildebyte
.github/workflows/ @mauwii
docker_build/ @mauwii
19 changes: 7 additions & 12 deletions .github/workflows/build-container.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ on:
branches:
- 'main'
- 'development'
- 'update-dockerfile'

jobs:
docker:
Expand All @@ -15,13 +16,11 @@ jobs:
arch:
- x86_64
- aarch64
include:
- arch: x86_64
conda-env-file: environment-lin-cuda.yml
- arch: aarch64
conda-env-file: environment-lin-aarch64.yml
pip-requirements:
- requirements-lin-amd.txt
- requirements-lin-cuda.txt
runs-on: ubuntu-latest
name: ${{ matrix.arch }}
name: ${{ matrix.pip-requirements }} ${{ matrix.arch }}
steps:
- name: prepare docker-tag
env:
Expand All @@ -40,9 +39,5 @@ jobs:
file: docker-build/Dockerfile
platforms: Linux/${{ matrix.arch }}
push: false
tags: ${{ env.dockertag }}:${{ matrix.arch }}
build-args: |
conda_env_file=${{ matrix.conda-env-file }}
conda_version=py39_4.12.0-Linux-${{ matrix.arch }}
invokeai_git=${{ github.repository }}
invokeai_branch=${{ github.ref_name }}
tags: ${{ env.dockertag }}:${{ matrix.pip-requirements }}-${{ matrix.arch }}
build-args: pip_requirements=${{ matrix.pip-requirements }}
2 changes: 1 addition & 1 deletion .github/workflows/mkdocs-material.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ jobs:
- name: install requirements
run: |
python -m \
pip install -r requirements-mkdocs.txt
pip install -r docs/requirements-mkdocs.txt

- name: confirm buildability
run: |
Expand Down
77 changes: 43 additions & 34 deletions .github/workflows/test-invoke-conda.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,31 +13,32 @@ on:
jobs:
matrix:
strategy:
fail-fast: false
matrix:
stable-diffusion-model:
# - 'https://huggingface.co/CompVis/stable-diffusion-v-1-4-original/resolve/main/sd-v1-4.ckpt'
- 'https://huggingface.co/runwayml/stable-diffusion-v1-5/resolve/main/v1-5-pruned-emaonly.ckpt'
os:
- ubuntu-latest
- macOS-12
- 'stable-diffusion-1.5'
environment-yaml:
- environment-lin-amd.yml
- environment-lin-cuda.yml
- environment-mac.yml
include:
- os: ubuntu-latest
environment-file: environment-lin-cuda.yml
- environment-yaml: environment-lin-amd.yml
os: ubuntu-latest
default-shell: bash -l {0}
- os: macOS-12
environment-file: environment-mac.yml
- environment-yaml: environment-lin-cuda.yml
os: ubuntu-latest
default-shell: bash -l {0}
# - stable-diffusion-model: https://huggingface.co/CompVis/stable-diffusion-v-1-4-original/resolve/main/sd-v1-4.ckpt
# stable-diffusion-model-dl-path: models/ldm/stable-diffusion-v1/sd-v1-4.ckpt
# stable-diffusion-model-switch: stable-diffusion-1.4
- stable-diffusion-model: https://huggingface.co/runwayml/stable-diffusion-v1-5/resolve/main/v1-5-pruned-emaonly.ckpt
stable-diffusion-model-dl-path: models/ldm/stable-diffusion-v1/v1-5-pruned-emaonly.ckpt
stable-diffusion-model-switch: stable-diffusion-1.5
name: ${{ matrix.os }} with ${{ matrix.stable-diffusion-model-switch }}
- environment-yaml: environment-mac.yml
os: macos-12
default-shell: bash -l {0}
- stable-diffusion-model: stable-diffusion-1.5
stable-diffusion-model-url: https://huggingface.co/runwayml/stable-diffusion-v1-5/resolve/main/v1-5-pruned-emaonly.ckpt
stable-diffusion-model-dl-path: models/ldm/stable-diffusion-v1
stable-diffusion-model-dl-name: v1-5-pruned-emaonly.ckpt
name: ${{ matrix.environment-yaml }} on ${{ matrix.os }}
runs-on: ${{ matrix.os }}
env:
CONDA_ENV_NAME: invokeai
INVOKEAI_ROOT: '${{ github.workspace }}/invokeai'
defaults:
run:
shell: ${{ matrix.default-shell }}
Expand All @@ -47,17 +48,19 @@ jobs:
uses: actions/checkout@v3

- name: create models.yaml from example
run: cp configs/models.yaml.example configs/models.yaml
run: |
mkdir -p ${{ env.INVOKEAI_ROOT }}/configs
cp configs/models.yaml.example ${{ env.INVOKEAI_ROOT }}/configs/models.yaml

- name: create environment.yml
run: cp environments-and-requirements/${{ matrix.environment-file }} environment.yml
run: cp "environments-and-requirements/${{ matrix.environment-yaml }}" environment.yml

- name: Use cached conda packages
id: use-cached-conda-packages
uses: actions/cache@v3
with:
path: ~/conda_pkgs_dir
key: conda-pkgs-${{ runner.os }}-${{ runner.arch }}-${{ hashFiles(matrix.environment-file) }}
key: conda-pkgs-${{ runner.os }}-${{ runner.arch }}-${{ hashFiles(matrix.environment-yaml) }}

- name: Activate Conda Env
id: activate-conda-env
Expand All @@ -83,34 +86,40 @@ jobs:
id: cache-sd-model
uses: actions/cache@v3
env:
cache-name: cache-${{ matrix.stable-diffusion-model-switch }}
cache-name: cache-${{ matrix.stable-diffusion-model }}
with:
path: ${{ matrix.stable-diffusion-model-dl-path }}
path: ${{ env.INVOKEAI_ROOT }}/${{ matrix.stable-diffusion-model-dl-path }}
key: ${{ env.cache-name }}

- name: Download ${{ matrix.stable-diffusion-model-switch }}
- name: Download ${{ matrix.stable-diffusion-model }}
id: download-stable-diffusion-model
if: ${{ steps.cache-sd-model.outputs.cache-hit != 'true' }}
run: |
[[ -d models/ldm/stable-diffusion-v1 ]] \
|| mkdir -p models/ldm/stable-diffusion-v1
mkdir -p "${{ env.INVOKEAI_ROOT }}/${{ matrix.stable-diffusion-model-dl-path }}"
curl \
-H "Authorization: Bearer ${{ secrets.HUGGINGFACE_TOKEN }}" \
-o ${{ matrix.stable-diffusion-model-dl-path }} \
-L ${{ matrix.stable-diffusion-model }}
-o "${{ env.INVOKEAI_ROOT }}/${{ matrix.stable-diffusion-model-dl-path }}/${{ matrix.stable-diffusion-model-dl-name }}" \
-L ${{ matrix.stable-diffusion-model-url }}

- name: run preload_models.py
- name: run configure_invokeai.py
id: run-preload-models
run: |
python scripts/preload_models.py \
--no-interactive
python scripts/configure_invokeai.py --no-interactive --yes

- name: cat ~/.invokeai
id: cat-invokeai
run: cat ~/.invokeai

- name: Run the tests
id: run-tests
run: |
time python scripts/invoke.py \
--model ${{ matrix.stable-diffusion-model-switch }} \
--from_file ${{ env.TEST_PROMPTS }}
--no-patchmatch \
--no-nsfw_checker \
--model ${{ matrix.stable-diffusion-model }} \
--from_file ${{ env.TEST_PROMPTS }} \
--root="${{ env.INVOKEAI_ROOT }}" \
--outdir="${{ env.INVOKEAI_ROOT }}/outputs"

- name: export conda env
id: export-conda-env
Expand All @@ -122,5 +131,5 @@ jobs:
id: archive-results
uses: actions/upload-artifact@v3
with:
name: results_${{ matrix.os }}_${{ matrix.stable-diffusion-model-switch }}
path: outputs/img-samples
name: results_${{ matrix.requirements-file }}_${{ matrix.python-version }}
path: ${{ env.INVOKEAI_ROOT }}/outputs
128 changes: 128 additions & 0 deletions .github/workflows/test-invoke-pip.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,128 @@
name: Test invoke.py pip
on:
push:
branches:
- 'main'
- 'development'
pull_request:
branches:
- 'main'
- 'development'

jobs:
matrix:
strategy:
matrix:
stable-diffusion-model:
- stable-diffusion-1.5
requirements-file:
- requirements-lin-cuda.txt
- requirements-lin-amd.txt
- requirements-mac-mps-cpu.txt
python-version:
# - '3.9'
- '3.10'
include:
- requirements-file: requirements-lin-cuda.txt
os: ubuntu-latest
default-shell: bash -l {0}
- requirements-file: requirements-lin-amd.txt
os: ubuntu-latest
default-shell: bash -l {0}
- requirements-file: requirements-mac-mps-cpu.txt
os: macOS-12
default-shell: bash -l {0}
- stable-diffusion-model: stable-diffusion-1.5
stable-diffusion-model-url: https://huggingface.co/runwayml/stable-diffusion-v1-5/resolve/main/v1-5-pruned-emaonly.ckpt
stable-diffusion-model-dl-path: models/ldm/stable-diffusion-v1
stable-diffusion-model-dl-name: v1-5-pruned-emaonly.ckpt
name: ${{ matrix.requirements-file }} on ${{ matrix.python-version }}
runs-on: ${{ matrix.os }}
defaults:
run:
shell: ${{ matrix.default-shell }}
env:
INVOKEAI_ROOT: '${{ github.workspace }}/invokeai'
steps:
- name: Checkout sources
id: checkout-sources
uses: actions/checkout@v3

- name: create models.yaml from example
run: |
mkdir -p ${{ env.INVOKEAI_ROOT }}/configs
cp configs/models.yaml.example ${{ env.INVOKEAI_ROOT }}/configs/models.yaml

- name: set test prompt to main branch validation
if: ${{ github.ref == 'refs/heads/main' }}
run: echo "TEST_PROMPTS=tests/preflight_prompts.txt" >> $GITHUB_ENV

- name: set test prompt to development branch validation
if: ${{ github.ref == 'refs/heads/development' }}
run: echo "TEST_PROMPTS=tests/dev_prompts.txt" >> $GITHUB_ENV

- name: set test prompt to Pull Request validation
if: ${{ github.ref != 'refs/heads/main' && github.ref != 'refs/heads/development' }}
run: echo "TEST_PROMPTS=tests/validate_pr_prompt.txt" >> $GITHUB_ENV

- name: create requirements.txt
run: cp 'environments-and-requirements/${{ matrix.requirements-file }}' '${{ matrix.requirements-file }}'

- name: setup python
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
cache: 'pip'
cache-dependency-path: ${{ matrix.requirements-file }}

# - name: install dependencies
# run: ${{ env.pythonLocation }}/bin/pip install --upgrade pip setuptools wheel

- name: install requirements
run: ${{ env.pythonLocation }}/bin/pip install -r '${{ matrix.requirements-file }}'

- name: Use Cached Stable Diffusion Model
id: cache-sd-model
uses: actions/cache@v3
env:
cache-name: cache-${{ matrix.stable-diffusion-model }}
with:
path: ${{ env.INVOKEAI_ROOT }}/${{ matrix.stable-diffusion-model-dl-path }}
key: ${{ env.cache-name }}

- name: Download ${{ matrix.stable-diffusion-model }}
id: download-stable-diffusion-model
if: ${{ steps.cache-sd-model.outputs.cache-hit != 'true' }}
run: |
mkdir -p "${{ env.INVOKEAI_ROOT }}/${{ matrix.stable-diffusion-model-dl-path }}"
curl \
-H "Authorization: Bearer ${{ secrets.HUGGINGFACE_TOKEN }}" \
-o "${{ env.INVOKEAI_ROOT }}/${{ matrix.stable-diffusion-model-dl-path }}/${{ matrix.stable-diffusion-model-dl-name }}" \
-L ${{ matrix.stable-diffusion-model-url }}

- name: run configure_invokeai.py
id: run-preload-models
run: |
${{ env.pythonLocation }}/bin/python scripts/configure_invokeai.py --no-interactive --yes

- name: cat ~/.invokeai
id: cat-invokeai
run: cat ~/.invokeai

- name: Run the tests
id: run-tests
run: |
time ${{ env.pythonLocation }}/bin/python scripts/invoke.py \
--no-patchmatch \
--no-nsfw_checker \
--model ${{ matrix.stable-diffusion-model }} \
--from_file ${{ env.TEST_PROMPTS }} \
--root="${{ env.INVOKEAI_ROOT }}" \
--outdir="${{ env.INVOKEAI_ROOT }}/outputs"

- name: Archive results
id: archive-results
uses: actions/upload-artifact@v3
with:
name: results_${{ matrix.requirements-file }}_${{ matrix.python-version }}
path: ${{ env.INVOKEAI_ROOT }}/outputs
9 changes: 4 additions & 5 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -194,10 +194,6 @@ checkpoints

# Let the frontend manage its own gitignore
!frontend/*
frontend/apt-get
frontend/dist
frontend/sudo
frontend/update

# Scratch folder
.scratch/
Expand All @@ -218,7 +214,7 @@ models/clipseg
models/gfpgan

# ignore initfile
invokeai.init
.invokeai

# ignore environment.yml and requirements.txt
# these are links to the real files in environments-and-requirements
Expand All @@ -235,3 +231,6 @@ update.sh

# this may be present if the user created a venv
invokeai

# no longer stored in source directory
models
Loading