1
0
Fork 0
Commit Graph

1018 Commits

Author SHA1 Message Date
Sean Sube ea36082e43
add job count to healthy worker logs 2023-03-26 11:53:06 -05:00
Sean Sube 8eab92a7df
define device on pending job 2023-03-26 11:49:58 -05:00
Sean Sube 83884bcafa
enqueue jobs on idle workers during progress check 2023-03-26 11:48:27 -05:00
Sean Sube 14ade83937
fix(api): enqueue next job when previous one finishes and after recycling worker 2023-03-26 11:41:45 -05:00
Sean Sube f3ab25f671
lint(api): add start method to worker pool 2023-03-26 11:30:07 -05:00
Sean Sube 2b179bebac
fix(api): always reset job counter when creating new device worker 2023-03-26 11:22:03 -05:00
Sean Sube 55e44e8ac9
fix(api): increment job counter for worker when it starts a new job (#283) 2023-03-26 11:18:27 -05:00
Sean Sube e552a5560f
feat(api): check device worker pool and recycle on a regular interval (#284) 2023-03-26 11:09:22 -05:00
Sean Sube aeb71ad50a
lint lock name 2023-03-26 08:30:34 -05:00
Sean Sube 580d621209
fix(api): make format list in schema match code 2023-03-26 08:28:14 -05:00
Sean Sube 95a61f3573
fix(api): restart worker threads when their respective queues are full 2023-03-25 13:46:12 -05:00
Sean Sube 88f4713e23
fix(api): use lock when restarting workers 2023-03-25 09:47:51 -05:00
Sean Sube 2c47904057
lint(api): use constant for model filename 2023-03-24 08:14:19 -05:00
Sean Sube 6b4c046867
pass pool to threads 2023-03-22 22:58:46 -05:00
Sean Sube 86c1b29c31
lint(api): extract worker thread main functions (#279) 2023-03-22 22:55:34 -05:00
Sean Sube 4dd68ea6b6
fix(api): restart worker threads if they crash 2023-03-22 19:58:46 -05:00
Sean Sube fa71d87e2c
apply lint 2023-03-21 22:19:50 -05:00
Sean Sube e445d2afaa
fix hidden state conversion 2023-03-21 22:08:17 -05:00
Sean Sube c8aad8554e
fix(api): convert back to model format after blending, convert samples as needed (#274) 2023-03-21 22:05:14 -05:00
Sean Sube 0315a8cbc6
fix(api): apply fp16 optimizations to LoRA and Textual Inversion blending 2023-03-21 21:45:27 -05:00
Sean Sube 4f6574c88e
sonar lint fixes 2023-03-21 17:11:38 -05:00
Sean Sube a660d9f1b1
apply lint 2023-03-20 22:28:48 -05:00
Sean Sube 7f459e0e29
correct extensions in ignore list 2023-03-19 23:31:11 -05:00
Sean Sube f779fbd5cc
fix(api): remove prefix before downloading for HF hub 2023-03-19 23:30:31 -05:00
Sean Sube 19712262e6
fix(api): filter out temporary files from model lists (#271) 2023-03-19 23:26:05 -05:00
Sean Sube ae3bcf3b8b
fix(api): add HF hub download to fetch logic for Inversion concepts 2023-03-19 20:32:21 -05:00
Sean Sube 0732058aa8
feat(api): detect Textual Inversion type from keys (#262) 2023-03-19 20:16:52 -05:00
Sean Sube fe498b16f0
fix(api): embed Inversion concepts using their name 2023-03-19 19:01:22 -05:00
Sean Sube 19d4d554c3
fix(api): add base token for Textual Inversion as sum layer 2023-03-19 18:04:21 -05:00
Sean Sube aefa5b4613
fix(api): clear job cancelled flag when worker starts a new job (#269) 2023-03-19 17:57:14 -05:00
Sean Sube 8acc15f52e
fix(api): better error handling around tensor loading 2023-03-19 15:38:43 -05:00
Sean Sube 07622690dc
fix(api): use Torch JIT and fallback loading 2023-03-19 15:31:35 -05:00
Sean Sube b797b3d616
fix(api): do not assume file extension for additional networks 2023-03-19 15:27:51 -05:00
Sean Sube 33008531e9
fix(api): load blending tensors onto CPU 2023-03-19 15:13:54 -05:00
Sean Sube 1c631c28d3
feat(api): add flag for ORT float16 optimizations 2023-03-19 11:59:35 -05:00
Sean Sube b8f816323e
fix(api): correctly load server env for conversion 2023-03-19 10:39:09 -05:00
Sean Sube 98e488319c
use fp16 optimization flag during conversion, add to admin docs 2023-03-19 10:33:46 -05:00
Sean Sube edd32f6044
apply lint, fix up log levels 2023-03-19 10:25:09 -05:00
Sean Sube 6f283c5c02
proxy nets that need fp16 conversion 2023-03-19 10:18:22 -05:00
Sean Sube bbd4c0fd72
dtype logging for potential fp16 params 2023-03-19 09:59:08 -05:00
Sean Sube 243a2d9df6
apply lint 2023-03-19 09:29:06 -05:00
Sean Sube 27bd10d2f7
fix(api): restrict CLIP skip token to integers, allow negative LoRA and Inversion weights 2023-03-19 09:13:40 -05:00
Sean Sube e6d7d30225
move tensor logs to trace level 2023-03-19 09:11:55 -05:00
Sean Sube 0e43acc0f7
fix(api): fetch sources and additional networks by default 2023-03-19 09:09:03 -05:00
Sean Sube b82246fdab
parse CLIP skip count from prompt 2023-03-19 08:43:39 -05:00
Sean Sube 46d1b5636d
normalize hidden states without using CLIP model class 2023-03-19 08:40:06 -05:00
Sean Sube 2ef00599b6
experimental CLIP skip 2023-03-19 08:17:40 -05:00
Sean Sube 9a949806d3
apply lint 2023-03-18 21:48:51 -05:00
Sean Sube 645da3d1a6
fix(api): allow dash in network names 2023-03-18 21:48:20 -05:00
Sean Sube a9e55ff9f2
remove references to inversion parameter 2023-03-18 19:47:22 -05:00
Sean Sube 5363037ab1
use network name in label key 2023-03-18 19:43:00 -05:00
Sean Sube 61d12b8ebd
include model type in label when present 2023-03-18 19:34:03 -05:00
Sean Sube f8f36e602c
feat(api): load i18n labels from additional networks 2023-03-18 19:25:22 -05:00
Sean Sube 2e89fd43d3
fix(api): only remove running jobs from running state 2023-03-18 19:21:40 -05:00
Sean Sube 716e009611
serialize networks 2023-03-18 19:21:15 -05:00
Sean Sube 2d112104fb
feat: show additional networks in client 2023-03-18 19:15:23 -05:00
Sean Sube e5862d178c
fix(api): assume inversion tokens are embeddings for now 2023-03-18 18:35:11 -05:00
Sean Sube ed8a7c8934
fix(api): move prompt parsing logs to trace level 2023-03-18 17:32:32 -05:00
Sean Sube d321321507
fix fields 2023-03-18 17:28:59 -05:00
Sean Sube 1d52dc684d
init last progress on worker context 2023-03-18 17:27:41 -05:00
Sean Sube e08a9aa2ab
add pending job list to pool 2023-03-18 17:26:28 -05:00
Sean Sube 8cbdad3a71
feat(api): add pending field to image ready response 2023-03-18 17:25:13 -05:00
Sean Sube 15b6e036e1
fix(api): maintain list of pending jobs 2023-03-18 17:15:18 -05:00
Sean Sube 588c8c7fdb
fix(api): track last progress within worker 2023-03-18 15:32:49 -05:00
Sean Sube 5106dd48a9
remove another ref to finished queue 2023-03-18 15:27:07 -05:00
Sean Sube b026566ccb
remove remaining references to finished queue and worker 2023-03-18 15:26:19 -05:00
Sean Sube d1565b056e
apply lint, make missing images an error 2023-03-18 15:16:41 -05:00
Sean Sube 7cf5554bef
feat(api): add error flag to image ready response 2023-03-18 15:13:42 -05:00
Sean Sube f336cc5d02
fix(api): provide noise parameter to SD upscaling (#196) 2023-03-18 14:02:30 -05:00
Sean Sube 391a707c84
fix(scripts): check Torch CUDA devices (#242) 2023-03-18 13:54:12 -05:00
Sean Sube a9456f4a16
fix(api): bump default model cache to 5 (#242) 2023-03-18 13:47:39 -05:00
Sean Sube aec540a524
feat(api): add server setting for CUDA memory limit (#211) 2023-03-18 13:40:37 -05:00
Sean Sube af326a784f
fix(api): avoid loading encoder twice when using LoRAs and inversions together 2023-03-18 13:39:35 -05:00
Sean Sube 9f9b73b780
fix(api): use ORT session for correct device when loading blended nets 2023-03-18 13:39:04 -05:00
Sean Sube c465b61fb5
fix(scripts): check for ORT modules 2023-03-18 13:21:17 -05:00
Sean Sube 84718e5928
feat(scripts): add env debug script (#191) 2023-03-18 13:16:59 -05:00
Sean Sube 17e4fd7b06
feat(scripts): add model type guessing script (#210) 2023-03-18 13:01:05 -05:00
Sean Sube 5b308d5fc1
lint(api): improve logging for inversion tokens 2023-03-18 12:04:39 -05:00
Sean Sube 2cb0a6be3c
more lint 2023-03-18 11:55:06 -05:00
Sean Sube e104c81e19
apply lint 2023-03-18 11:50:09 -05:00
Sean Sube a1f17c0877
fix dest paths for blended nets 2023-03-18 11:37:16 -05:00
Sean Sube f465120cad
use conversion dest path when applying additional nets 2023-03-18 11:34:05 -05:00
Sean Sube 1f6105a8fe
make blend functions take tuples rather than split lists 2023-03-18 10:50:48 -05:00
Sean Sube 6cd0b4f7eb
fix extras schema 2023-03-18 10:24:16 -05:00
Sean Sube 40c92f054b
add networks as conversion arg 2023-03-18 10:22:24 -05:00
Sean Sube 5dd14c19ce
feat(api): build a single token for multi-layer Textual Inversions (#212) 2023-03-18 07:47:36 -05:00
Sean Sube af62c1c3b6
apply lint 2023-03-18 07:41:29 -05:00
Sean Sube e3bf04ab8f
feat(api): add section to extras file for additional networks 2023-03-18 07:40:57 -05:00
Sean Sube c3979246df
make blending happen once after conversion 2023-03-18 07:14:22 -05:00
Sean Sube 32b2a76a0b
fix(api): download additional networks to their own subdir in models 2023-03-18 07:07:05 -05:00
Sean Sube 84bd852837
feat(api): blend LoRAs and Textual Inversions from extras file 2023-03-18 07:01:24 -05:00
Sean Sube 1d44f985a4
fix(api): restore python 3.8 compatibility 2023-03-17 23:07:10 -05:00
Sean Sube c943a55a44
fix(api): move imports of patches modules into function 2023-03-17 23:06:39 -05:00
Sean Sube fc9245f4ee
fix(buil): limit torchvision versions to match torch 2023-03-17 22:42:37 -05:00
Sean Sube a21750ff8e
fix(build): pin Torch to 1.x for now 2023-03-17 21:31:15 -05:00
Sean Sube 4de8c160c9
fix(build): make sure Torch is installed first in containers 2023-03-17 19:41:34 -05:00
Sean Sube 226710a015
fix(api): use exception level logs 2023-03-16 22:29:07 -05:00
Sean Sube d9bae80778
fix(build): install wheel for basicsr 2023-03-16 21:46:30 -05:00
Sean Sube d3a17ec648
fix logging metadata 2023-03-16 21:45:57 -05:00
Sean Sube 4b832f3d8d
more lint, more trace 2023-03-16 20:22:20 -05:00
Sean Sube 9f0a6f134e
fix(api): move model conversion messages to trace level 2023-03-16 19:37:25 -05:00
Sean Sube c397c1e42a
apply sonar lint 2023-03-16 18:47:04 -05:00
Sean Sube f4c0c52029
apply lint 2023-03-16 18:35:30 -05:00
Sean Sube 959798eabb
feat(api): add trace log level 2023-03-16 18:34:47 -05:00
Sean Sube c8c5e9f42e
fix(api): handle more out-of-memory errors in the workers 2023-03-16 18:34:28 -05:00
Sean Sube 315e5a3837
fix(api): add theoretical support for 3x3 conv in LoRA 2023-03-15 19:37:17 -05:00
Sean Sube 8e8e230ffd
apply lint 2023-03-15 19:27:29 -05:00
Sean Sube 506cf9f65f
feat(api): blend Textual Inversions from prompt 2023-03-15 17:14:52 -05:00
Sean Sube 973ad0f682
fix inversion var 2023-03-15 08:57:17 -05:00
Sean Sube b451196dfa
add prefix to inversion path 2023-03-15 08:55:35 -05:00
Sean Sube 421ed632b1
only use name from first inversion 2023-03-15 08:53:15 -05:00
Sean Sube b2eb406197
fix(api): handle CUDA memory errors in workers 2023-03-15 08:51:29 -05:00
Sean Sube a2e21f427f
feat(api): load Textual Inversions from prompt 2023-03-15 08:51:12 -05:00
Sean Sube 829cedc934
fix error when prompt has no LoRA tokens 2023-03-15 08:35:44 -05:00
Sean Sube a7f77a033d
feat(api): parse LoRA weights from prompt 2023-03-15 08:30:31 -05:00
Sean Sube 45166f281e
apply lint 2023-03-14 23:32:47 -05:00
Sean Sube 91210ee236
remove extra param, correct output path 2023-03-14 23:32:18 -05:00
Sean Sube 8cf6f2215d
fix(scripts): diff model nodes as well 2023-03-14 22:58:36 -05:00
Sean Sube 143904fc51
feat(api): parse LoRA names from prompt 2023-03-14 22:28:18 -05:00
Sean Sube 03f4e1b922
start wiring LoRAs into prompt 2023-03-14 22:10:33 -05:00
Sean Sube ce05e76947
load base models from model dir, use correct ORT provider 2023-03-14 21:57:37 -05:00
Sean Sube 56a4519818
test loading UNet and encoder with LoRAs 2023-03-14 21:27:23 -05:00
Sean Sube 2a8c85cb3e
feat(api): blend ONNX models in memory 2023-03-14 19:38:27 -05:00
Sean Sube 4c17edb267
feat(api): add conversion script for LoRAs from sd-scripts (#213) 2023-03-14 18:17:00 -05:00
Sean Sube 0b1aa26be5
blend LoRAs into a valid ONNX UNet (#213) 2023-03-12 13:38:51 -05:00
Sean Sube cf429ad715
fix(tests): add reference image for UniPC scheduler 2023-03-11 14:43:36 -06:00
Sean Sube a9906faec8
chore(release): 0.8.1 2023-03-11 14:32:05 -06:00
Sean Sube 919f88c7d0
fix(tests): clear cache between tests 2023-03-11 13:59:09 -06:00
Sean Sube 9555a7a3ea
lint(api): only log new worker message if some workers need to be restarted 2023-03-11 13:30:54 -06:00
Sean Sube 9c65922526
lint(api): remove unnecessary delete calls 2023-03-11 13:30:33 -06:00
Sean Sube 575cb8831b
fix(api): make cache global within each worker process (#227) 2023-03-11 13:30:11 -06:00
Sean Sube 01d3519aa3
fix(api): remove unused num_workers logic from server 2023-03-11 08:17:27 -06:00
Sean Sube 8e5d0871c8
log which cache items have been pruned 2023-03-11 08:06:22 -06:00
Sean Sube cb2b054fde
fix(api): only run GC when a diffusion model has been replaced 2023-03-11 08:06:03 -06:00
Sean Sube a195bc100d
chore(release): 0.8.0 2023-03-10 22:06:33 -06:00
Sean Sube 58250976d4
fix(tests): update blend refs for release tests 2023-03-10 21:58:40 -06:00
Sean Sube cd11e8f3ab
use a proper fake config class 2023-03-10 18:57:01 -06:00
Sean Sube df1504d9b0
use fake VAE config 2023-03-10 18:50:01 -06:00
Sean Sube 555de5e07d
fix(api): correct VAE config check 2023-03-10 18:46:07 -06:00
Sean Sube e960ee1d85
fix(api): patch VAE for SD upscaling on older versions of diffusers (#234) 2023-03-10 18:42:11 -06:00
Sean Sube 6bdaa4a4ed
fix(api): make stage-specific source image optional in GFPGAN stage (#233) 2023-03-10 18:15:31 -06:00
Sean Sube da3d95ff49
fix(api): include bottom margin when calculating output size 2023-03-10 17:59:16 -06:00
Sean Sube fe437e8cd4
feat: add support for UniPC multistep scheduler (#226) 2023-03-09 08:00:59 -06:00
Sean Sube 3d0f2434af
fix(tests): make release tests more strict, update DEIS reference 2023-03-08 23:17:54 -06:00
Sean Sube 312d8d251a
fix(tests): add release test for partial blending 2023-03-08 23:06:52 -06:00
Sean Sube d794835d20
fix(tests): use correct endpoint in release tests for blend mode 2023-03-08 22:56:53 -06:00
Sean Sube 21c60709bc
fix(api): move prompt splitting logging to debug level 2023-03-08 22:55:58 -06:00
Sean Sube 6c47542d46
fix(api): correct continuation syntax for Windows launch scripts 2023-03-08 21:43:02 -06:00
Sean Sube 35303c7d20
feat(api): add a way to pass extra args to the conversion script 2023-03-08 21:38:51 -06:00
Sean Sube 25c41c8d66
feat(api): add an option to remove temporary Torch files after converting to ONNX (#122) 2023-03-08 21:38:17 -06:00
Sean Sube 6e71775782
fix(api): load LPW pipeline from local source (#224) 2023-03-08 19:47:22 -06:00
Sean Sube 7bd98d4a46
apply lint 2023-03-07 23:57:39 -06:00
Sean Sube bc21165fd9
fix path ref 2023-03-07 23:54:32 -06:00
Sean Sube c0b88733b8
fix(api): check for cache rather than converted model before fetch 2023-03-07 23:51:27 -06:00
Sean Sube 843e2f1ff3
feat(api): look for an index file when checking for converted models (#222) 2023-03-07 23:40:04 -06:00
Sean Sube 30b08c6d6d
fix(api): log correct token when converting Textual Inversions 2023-03-07 23:05:53 -06:00
Sean Sube 6542646005
fix(api): match format in schema for sd-concepts 2023-03-07 22:53:05 -06:00
Sean Sube 85ff700525
apply lint 2023-03-07 22:40:17 -06:00
Sean Sube 0a4f83ac0f
feat(api): add range syntax to expand numbered tokens (#179) 2023-03-07 20:48:26 -06:00
Sean Sube 66c42485cb
feat(api): add support for extremely long prompts 2023-03-07 19:00:25 -06:00
Sean Sube c45915e558
fix(api): use server model path while converting SD checkpoints (#221) 2023-03-07 18:55:14 -06:00
Sean Sube 9d9bd1a639
apply lint 2023-03-07 08:02:53 -06:00
Sean Sube 6e8d51b9fa
fix(build): reset old coverage before running tests 2023-03-06 19:41:56 -06:00
Sean Sube af1c3c7839
fix(api): track items removed from cache 2023-03-06 07:34:09 -06:00
Sean Sube 339868de4d
fix(api): use pipeline class name in cache key 2023-03-05 21:54:09 -06:00
Sean Sube 55576ae87c
fix(api): include cache keys in logs 2023-03-05 21:50:01 -06:00
Sean Sube 35dc8a0bc4
improve exit logging 2023-03-05 21:37:39 -06:00
Sean Sube c0a01efef4
fix(api): track currently active worker for each device 2023-03-05 21:28:21 -06:00
Sean Sube 57fed94337
fix(api): exit worker on memory allocation errors 2023-03-05 21:11:33 -06:00
Sean Sube cb460a0c59
fix(api): add worker PID to log messages 2023-03-05 20:25:02 -06:00
Sean Sube 4ae4ce176c
fix(api): attempt to recycle leaking workers when a job finishes 2023-03-05 20:13:28 -06:00
Sean Sube 3a4928e59b
fix(api): prevent workers from blocking on their progress queues 2023-03-05 20:07:06 -06:00
Sean Sube edc55ae8b4
fix(api): finished job notification should not block worker 2023-03-05 19:53:44 -06:00
Sean Sube cfc20d3133
fix(api): improve cache logging 2023-03-05 19:30:52 -06:00
Sean Sube 39b9741b24
fix(api): show VRAM percent in logs 2023-03-05 19:23:23 -06:00
Sean Sube 7a3a81a4ef
fix(api): track and repeatedly attempt to recycle leaking workers (#219) 2023-03-05 18:58:13 -06:00
Sean Sube ccd15c1921
set torch and ORT as extra indexes 2023-03-05 18:15:41 -06:00
Sean Sube 05c628d8a6
fix(build): use platform-specific requirements for containers 2023-03-05 17:55:44 -06:00
Sean Sube 31054c4ee3
feat(api): add requirements file for each platform (#193) 2023-03-05 17:55:23 -06:00
Sean Sube d5a3b0fed8
feat(gui): add local params and API stub so client can load without a server (#181) 2023-03-05 16:23:26 -06:00
Sean Sube 468870e2e7
apply lint 2023-03-05 08:14:47 -06:00
Sean Sube 00fa9c5807
feat(api): collect labels from textual inversions (#144) 2023-03-05 08:00:25 -06:00
Sean Sube b198b3baff
fix(api): attempt to validate extra translation strings 2023-03-05 07:53:23 -06:00
Sean Sube 6d2dd0a043
apply lint 2023-03-05 07:20:43 -06:00
Sean Sube 539d0febce
load extras during server init 2023-03-05 07:20:37 -06:00
Sean Sube 537c67619e
fix strings endpoint 2023-03-05 07:20:34 -06:00
Sean Sube 5d459ab17c
feat: allow users to add their own labels for models (#144) 2023-03-05 07:20:31 -06:00
Sean Sube 628812fb0b
fix(api): correct conversion imports 2023-03-04 23:03:15 -06:00
Sean Sube 43d4d4b86d
chore(api): dedupe model listing logic 2023-03-04 22:26:27 -06:00
Sean Sube 10fbafaff0
fix(api): correct imports 2023-03-04 22:25:49 -06:00
Sean Sube 7b88371832
lint(api): use load pattern in server submodule 2023-03-04 22:13:09 -06:00
Sean Sube bb1d945761
lint(api): submodules for major libs 2023-03-04 22:12:35 -06:00
Sean Sube 39d36618e6
feat(api): add support for custom tokens for textual inversions (#179) 2023-03-02 23:32:20 -06:00
Sean Sube 22e9d54408
apply lint 2023-03-02 22:32:37 -06:00
Sean Sube be1c8cd79f
feat(api): support ckpt inversions by splitting multivector embeddings into multiple tokens 2023-03-02 22:11:27 -06:00
Sean Sube 9a0d2051fb
fix(api): better logging when converting textual inversions 2023-03-02 07:57:59 -06:00
Sean Sube 46aac263d5
feat(api): initial support for textual inversion embeddings from civitai and others (#179) 2023-03-01 19:09:51 -06:00
Sean Sube 1f3a5f6f3c
fix(api): track completed jobs for each device worker (#170) 2023-03-01 19:09:18 -06:00
Sean Sube 4b77a00ca7
fix(api): load tokenizer with textual inversions 2023-03-01 19:08:31 -06:00
Sean Sube 21fc7c5968
fix(api): mark all convert methods as no_grad 2023-03-01 08:26:40 -06:00