blessedcoolant
6f162c5dec
experimental: Dilate mask if blurred in Color Correction
2023-09-01 11:12:30 +12:00
psychedelicious
ed72d51969
fix(nodes): fix primitives defaults for collections
2023-08-31 13:22:31 +10:00
user1
79db0e9e93
More cleanup after rebasing to main.
2023-08-30 18:29:06 -07:00
Sergey Borisov
d5267357b1
Pad conditioning tensors from clip and clip2 in sdxl
2023-08-30 21:28:40 -04:00
Sergey Borisov
e085eb63bd
Check noise and latents shapes, more informative error
2023-08-30 21:28:40 -04:00
user1
0c17f8604f
Resolving rebase conflict, redirecting control imports to invocations/control_adapter
2023-08-30 17:35:31 -07:00
user1
054edc4077
Oops, forgot to add control_adapter.py for control nodes in last refactor commit
2023-08-30 17:31:46 -07:00
user1
5a9993772d
Added ip_adapter_strength parameter to adjust weighting of IP-Adapter's added cross-attention layers
2023-08-30 17:28:30 -07:00
user1
f2cd9e9ae2
Working POC for IP-Adapters. Not fully nodified yet, lots of caveats, hardwired model paths, etc.
2023-08-30 17:28:30 -07:00
psychedelicious
24d44ca559
feat(nodes): add scheduler invocation
2023-08-30 22:35:47 +10:00
psychedelicious
044d4c107a
feat(nodes): move all invocation metadata (type, title, tags, category) to decorator
...
All invocation metadata (type, title, tags and category) are now defined in decorators.
The decorators add the `type: Literal["invocation_type"]: "invocation_type"` field to the invocation.
Category is a new invocation metadata, but it is not used by the frontend just yet.
- `@invocation()` decorator for invocations
```py
@invocation(
"sdxl_compel_prompt",
title="SDXL Prompt",
tags=["sdxl", "compel", "prompt"],
category="conditioning",
)
class SDXLCompelPromptInvocation(BaseInvocation, SDXLPromptInvocationBase):
...
```
- `@invocation_output()` decorator for invocation outputs
```py
@invocation_output("clip_skip_output")
class ClipSkipInvocationOutput(BaseInvocationOutput):
...
```
- update invocation docs
- add category to decorator
- regen frontend types
2023-08-30 18:35:12 +10:00
psychedelicious
ae05d34584
fix(nodes): fix uploading image metadata retention
...
was causing failure to save images
2023-08-30 14:52:50 +10:00
psychedelicious
0ed6a141f1
Merge branch 'main' into feat/nodes-phase-5
2023-08-30 11:15:34 +10:00
Sergey Borisov
ca15b8b33e
Fix wrong timestep selection in some cases(dpmpp_sde)
2023-08-30 03:40:59 +03:00
blessedcoolant
258b0814a8
Merge branch 'main' into feat/nodes-phase-5
2023-08-30 02:33:49 +12:00
Sergey Borisov
121396f844
Fix tokenization log for sd models
2023-08-29 17:07:33 +03:00
blessedcoolant
a1398dec91
Merge branch 'main' into pr/4112
2023-08-29 12:56:59 +12:00
blessedcoolant
d0c74822eb
resolve: Merge conflicts
2023-08-29 12:08:00 +12:00
blessedcoolant
383d008529
Merge branch 'main' into feat/nodes-phase-5
2023-08-29 12:05:28 +12:00
blessedcoolant
6db19a8dee
fix: Connection type on Seamless Node VAE Input
2023-08-29 04:15:15 +12:00
blessedcoolant
ef58635a76
chore: black lint
2023-08-29 04:04:03 +12:00
StAlKeR7779
cd548f73fd
Merge branch 'main' into feat_compel_and
2023-08-28 18:31:41 +03:00
Kent Keirsey
421f5b7d75
Seamless Updates
2023-08-28 08:43:08 -04:00
blessedcoolant
3ef36707a8
chore: Black lint
2023-08-28 23:10:00 +12:00
Kent Keirsey
b9731cb434
Merge branch 'main' into Seamless
2023-08-28 00:12:23 -04:00
Kent Keirsey
1f476692da
Seamless fixes
2023-08-28 00:10:46 -04:00
Kent Keirsey
5fdd25501b
updates per stalkers comments
2023-08-27 22:54:53 -04:00
StAlKeR7779
ef3bf2803f
Merge branch 'main' into feat_compel_and
2023-08-28 04:11:35 +03:00
Kent Keirsey
19e0f360e7
Fix vae fields
2023-08-27 15:05:10 -04:00
Kent Keirsey
ea40a7844a
add VAE
2023-08-27 14:53:57 -04:00
Kent Keirsey
c6d00387a7
Revert old latent changes, update seamless
2023-08-27 14:15:37 -04:00
Kent Keirsey
3de45af734
updates
2023-08-27 14:13:00 -04:00
Sergey Borisov
526c7e7737
Provide antialias argument as behaviour will be changed in future(deprecation warning)
2023-08-27 20:04:55 +03:00
Sergey Borisov
1811b54727
Provide metadata to image creation call
2023-08-27 20:03:53 +03:00
Kent Keirsey
95883c2efd
Add Initial (non-working) Seamless Implementation
2023-08-27 12:29:11 -04:00
blessedcoolant
71c3955530
feat: Add Scale Before Processing To Canvas Txt2Img / Img2Img (w/ SDXL)
2023-08-27 08:26:23 +12:00
blessedcoolant
3f8d17d6b7
chore: Black linting
2023-08-27 06:17:08 +12:00
blessedcoolant
249048aae7
fix: Reorder DenoiseMask socket fields
2023-08-27 06:14:35 +12:00
blessedcoolant
c923d094c6
rename: Inpaint Mask to Denoise Mask
2023-08-27 05:50:13 +12:00
blessedcoolant
e9633a3adb
Merge branch 'main' into fix/inpaint_gen
2023-08-27 02:54:19 +12:00
Kevin Turner
dff466244d
Merge remote-tracking branch 'origin/main' into feat/taesd
...
# Conflicts:
# invokeai/app/invocations/latent.py
2023-08-25 15:21:47 -07:00
maryhipp
e6fd1c3d1f
add optional field to type
2023-08-25 00:09:16 +10:00
psychedelicious
7d1942e9f0
feat: workflow saving and loading
2023-08-24 21:42:32 +10:00
Millun Atluri
65feb92286
Merge branch 'main' into feat_compel_and
2023-08-24 17:38:35 +10:00
psychedelicious
79df46bad2
chore: flake8
2023-08-23 23:05:29 -04:00
blessedcoolant
2ba52b8921
fix: File Tile Infill being broken
2023-08-23 23:05:29 -04:00
blessedcoolant
49892faee4
experimental: LaMa Infill
2023-08-23 23:05:29 -04:00
blessedcoolant
f3b293b5cc
feat: Add Blank Image Node
2023-08-23 23:06:42 +10:00
psychedelicious
cd73085eb9
feat(nodes): add ui_order
node field attribute
...
used by UI to sort fields in workflow editor
2023-08-23 23:06:42 +10:00
psychedelicious
5fc60d0539
fix(nodes): id
field is not an InputField
2023-08-23 23:06:42 +10:00
psychedelicious
d95773f50f
Revert "feat(nodes): make fields that accept connection input optional in OpenAPI schema"
...
This reverts commit 7325cbdd250153f347e3782265dd42783f7f1d00.
2023-08-21 19:17:36 +10:00
psychedelicious
bf04e913c2
feat(nodes): make primitive outputs not optional, fix primitive invocation defaults
2023-08-21 19:17:36 +10:00
psychedelicious
37dc2d9d4d
feat(nodes): update vae node tags
2023-08-21 19:17:36 +10:00
psychedelicious
6e1ddb671e
feat(nodes): make fields that accept connection input optional in OpenAPI schema
...
Doing this via `BaseInvocation`'s `Config.schema_extra()` means all clients get an accurate OpenAPI schema.
Shifts the responsibility of correct types to the backend, where previously it was on the client.
2023-08-21 19:17:36 +10:00
psychedelicious
496a2db15c
feat(nodes): make id
, type
required in BaseInvocation, BaseInvocationOutput
...
Doing this via these classes' `Config.schema_extra()` method makes it unintrusive and clients will get the correct types for these properties.
Shifts the responsibility of correct types to the backend, where previously it was on the client.
2023-08-21 19:17:36 +10:00
psychedelicious
5292eda0e4
feat(nodes): remove "Loader" from model nodes
...
They are not loaders, they are selectors - remove this to reduce confusion.
2023-08-21 19:17:36 +10:00
psychedelicious
484b572023
feat(nodes): primitives have value
instead of a
as field names
2023-08-21 19:17:36 +10:00
psychedelicious
3d84e7756a
fix(nodes): fix field names
2023-08-21 19:17:36 +10:00
psychedelicious
98431b3de4
feat: add Scheduler
as field type
...
- update node schemas
- add `UIType.Scheduler`
- add field type to schema parser, input components
2023-08-21 19:17:36 +10:00
psychedelicious
0909812c84
chore: black
2023-08-21 19:17:15 +10:00
psychedelicious
66c0aea9e7
fix(nodes): removed duplicate node
2023-08-21 19:17:15 +10:00
Damian Stewart
2bcded78e1
add BlendInvocation
2023-08-21 19:17:15 +10:00
Sergey Borisov
beb3e5aeb7
Report correctly to compel if we want get pooled in future(affects blend computation)
2023-08-21 19:05:40 +10:00
Kevin Turner
6f9c1c6d4e
Merge remote-tracking branch 'origin/dep/diffusers020' into feat/taesd
...
# Conflicts:
# invokeai/app/invocations/latent.py
2023-08-18 14:19:27 -07:00
Kevin Turner
811c82a677
lint: formatting
2023-08-18 14:06:14 -07:00
Kevin Turner
4f0e43ec1b
fix(TAESD): correct usage of singledispatchmethod so normal VAE still works
2023-08-18 14:05:12 -07:00
Millun Atluri
3798c8bdb0
Merge branch 'main' into feat_compel_and
2023-08-18 17:04:03 +10:00
psychedelicious
c49851e027
chore: minor cleanup after merge & flake8
2023-08-18 16:05:39 +10:00
psychedelicious
3c43594c26
Merge branch 'main' into fix/inpaint_gen
2023-08-18 15:57:48 +10:00
Martin Kristiansen
537ae2f901
Resolving merge conflicts for flake8
2023-08-18 15:52:04 +10:00
Kevin Turner
8611ffe32d
feat(TAESD): support TAESD — Tiny Autoencoder for Stable Diffusion
2023-08-17 20:08:53 -07:00
Sergey Borisov
cfd827cfad
Added node for creating mask inpaint
2023-08-18 04:07:40 +03:00
blessedcoolant
b213335316
feat: Add InpaintMask Field type
2023-08-18 04:54:23 +12:00
Sergey Borisov
ff5c725586
Update mask field type
2023-08-17 19:35:03 +03:00
Sergey Borisov
bf0dfcac2f
Add inapint mask field class
2023-08-17 19:19:07 +03:00
psychedelicious
43b30355e4
feat: make primitive node titles consistent
2023-08-16 23:04:36 +10:00
psychedelicious
2b7dd3e236
feat: add missing primitive collections
...
- add missing primitive collections
- remove `Seed` and `LoRAField` (they don't exist)
2023-08-16 09:54:38 +10:00
psychedelicious
fa884134d9
feat: rename ui_type_hint
to ui_type
...
Just a bit more succinct while not losing any clarity.
2023-08-16 09:54:38 +10:00
psychedelicious
c48fd9c083
feat(nodes): refactor parameter/primitive nodes
...
Refine concept of "parameter" nodes to "primitives":
- integer
- float
- string
- boolean
- image
- latents
- conditioning
- color
Each primitive has:
- A field definition, if it is not already python primitive value. The field is how this primitive value is passed between nodes. Collections are lists of the field in node definitions. ex: `ImageField` & `list[ImageField]`
- A single output class. ex: `ImageOutput`
- A collection output class. ex: `ImageCollectionOutput`
- A node, which functions to load or pass on the primitive value. ex: `ImageInvocation` (in this case, `ImageInvocation` replaces `LoadImage`)
Plus a number of related changes:
- Reorganize these into `primitives.py`
- Update all nodes and logic to use primitives
- Consolidate "prompt" outputs into "string" & "mask" into "image" (there's no reason for these to be different, the function identically)
- Update default graphs & tests
- Regen frontend types & minor frontend tidy related to changes
2023-08-16 09:54:38 +10:00
psychedelicious
f49fc7fb55
feat: node editor
...
squashed rebase on main after backendd refactor
2023-08-16 09:54:38 +10:00
psychedelicious
9d3cd85bdd
chore: black
2023-08-14 13:02:33 +10:00
Sergey Borisov
409e5d01ba
Fix cpu_only schedulers(unipc)
2023-08-14 05:14:05 +03:00
Sergey Borisov
d63bb39475
Make dpmpp_sde(_k) use not random seed
2023-08-14 00:24:38 +03:00
Sergey Borisov
59ba9fc0f6
Flip bits in seed for sde/ancestral schedulers to have different noise from initial
2023-08-13 19:50:16 +03:00
Sergey Borisov
6e0beb1ed4
Fixes for second order scheduler timesteps
2023-08-13 19:31:47 +03:00
Sergey Borisov
94636ddb03
Fix empty prompt handling
2023-08-13 19:31:14 +03:00
blessedcoolant
499e89d6f6
feat: Add SDXL Negative Aesthetic Score
2023-08-14 04:02:36 +12:00
blessedcoolant
561951ad98
chore: Black linting
2023-08-13 21:28:39 +12:00
blessedcoolant
f296e5c41e
wip: Remove MaskBlur / Adjust color correction
2023-08-12 20:54:30 +12:00
blessedcoolant
6034fa12de
feat: Add Mask Blur node
2023-08-12 16:20:58 +12:00
Sergey Borisov
ce3675fc14
Apply denoising_start/end according on timestep value
2023-08-12 03:19:49 +03:00
blessedcoolant
f343ab0302
wip: Port Outpainting to new backend
2023-08-12 06:15:59 +12:00
Sergey Borisov
f3ae52ff97
Fix error at high denoising_start, fix unipc(cpu_only)
2023-08-11 15:46:16 +03:00
blessedcoolant
7c0023ad9e
feat: Remove TextToLatents / Rename Latents To Latents -> DenoiseLatents
2023-08-11 22:20:37 +12:00
blessedcoolant
231e665675
Merge branch 'main' into feat/refactor_generation_backend
2023-08-11 20:53:38 +12:00
Sergey Borisov
2ef6a8995b
Temporary force set vae to same precision as unet
2023-08-10 18:01:58 -04:00
psychedelicious
49cce1eec6
feat: add app_version
to image metadata
2023-08-10 14:22:39 +10:00
Sergey Borisov
e9ec5ab85c
Apply requested changes
...
Co-Authored-By: psychedelicious <4822129+psychedelicious@users.noreply.github.com>
2023-08-10 06:19:22 +03:00
Sergey Borisov
17fed1c870
Fix merge conflict errors
2023-08-10 05:03:33 +03:00
Sergey Borisov
ade78b9591
Merge branch 'main' into feat/refactor_generation_backend
2023-08-10 04:32:16 +03:00
Martin Kristiansen
c8fbaf54b6
Add self.min, not self.max
2023-08-10 09:59:22 +10:00
Sergey Borisov
b4a74f6523
Add MaskEdge and ColorCorrect nodes
...
Co-Authored-By: Kent Keirsey <31807370+hipsterusername@users.noreply.github.com>
2023-08-08 23:57:02 +03:00
Sergey Borisov
f7aec3b934
Move conditioning class to backend
2023-08-08 23:33:52 +03:00
Sergey Borisov
a7e44678fb
Remove legacy/unused code
2023-08-08 20:49:01 +03:00
Sergey Borisov
da0184a786
Invert mask, fix l2l on no mask conntected, remove zeroing latents on zero start
2023-08-08 20:01:49 +03:00
Sergey Borisov
96b7248051
Add mask to l2l
2023-08-08 18:50:36 +03:00
Sergey Borisov
5f29526a8e
Add seed to latents field
2023-08-08 04:00:33 +03:00
Sergey Borisov
492bfe002a
Remove sdxl t2l/l2l nodes
2023-08-08 03:38:42 +03:00
Kevin Turner
25c669b1d6
Merge remote-tracking branch 'origin/main' into refactor/remove_unused_pipeline_methods
2023-08-07 13:03:10 -07:00
Sergey Borisov
1db2c93f75
Fix preview, inpaint
2023-08-07 21:27:32 +03:00
Sergey Borisov
2539e26c18
Apply denoising_start/end, add torch-sdp to memory effictiend attention func
2023-08-07 19:57:11 +03:00
Sergey Borisov
b0738b7f70
Fixes, zero tensor for empty negative prompt, remove raw prompt node
2023-08-07 18:37:06 +03:00
Jonathan
ae17d01e1d
Fix hue adjustment ( #4182 )
...
* Fix hue adjustment
Hue adjustment wasn't working correctly because color channels got swapped. This has now been fixed and we're using PIL rather than cv2 to do the RGBA->HSV->RGBA conversion. The range of hue adjustment is also the more typical 0..360 degrees.
2023-08-06 23:23:51 +00:00
Kevin Turner
6487e7d906
refactor(diffusers_pipeline): remove unused ModelGroup 🚮
...
orphaned since #3550 removed the LazilyLoadedModelGroup code, probably unused since ModelCache took over responsibility for sequential offload somewhere around #3335 .
2023-08-05 21:50:52 -07:00
Kevin Turner
77033eabd3
refactor(diffusers_pipeline): remove unused precision
🚮
2023-08-05 21:50:52 -07:00
Sergey Borisov
9aaf67c5b4
wip
2023-08-06 05:05:25 +03:00
psychedelicious
b8b589c150
fix(nodes): fix hsl nodes rebase conflict
2023-08-06 09:57:49 +10:00
Kent Keirsey
d93900a8de
Added HSL Nodes
2023-08-06 09:57:49 +10:00
Lincoln Stein
6ad565d84c
folded in changes from 4099
2023-08-04 18:24:47 -04:00
Sergey Borisov
04229082d6
Provide ti name from model manager, not from ti itself
2023-08-04 18:24:47 -04:00
StAlKeR7779
0d3c27f46c
Fix typo
...
Co-authored-by: Ryan Dick <ryanjdick3@gmail.com>
2023-08-04 11:44:56 -04:00
Sergey Borisov
cff91f06d3
Add lora apply in sdxl l2l node
2023-08-04 11:44:56 -04:00
Lincoln Stein
1d5d187ba1
model probe detects sdxl lora models
2023-08-04 11:44:56 -04:00
Sergey Borisov
1ac14a1e43
add sdxl lora support
2023-08-04 11:44:56 -04:00
psychedelicious
bf94412d14
feat: add multi-select to gallery
...
multi-select actions include:
- drag to board to move all to that board
- right click to add all to board or delete all
backend changes:
- add routes for changing board for list of image names, deleting list of images
- change image-specific routes to `images/i/{image_name}` to not clobber other routes (like `images/upload`, `images/delete`)
- subclass pydantic `BaseModel` as `BaseModelExcludeNull`, which excludes null values when calling `dict()` on the model. this fixes inconsistent types related to JSON parsing null values into `null` instead of `undefined`
- remove `board_id` from `remove_image_from_board`
frontend changes:
- multi-selection stuff uses `ImageDTO[]` as payloads, for dnd and other mutations. this gives us access to image `board_id`s when hitting routes, and enables efficient cache updates.
- consolidate change board and delete image modals to handle single and multiples
- board totals are now re-fetched on mutation and not kept in sync manually - was way too tedious to do this
- fixed warning about nested `<p>` elements
- closes #4088 , need to handle case when `autoAddBoardId` is `"none"`
- add option to show gallery image delete button on every gallery image
frontend refactors/organisation:
- make typegen script js instead of ts
- enable `noUncheckedIndexedAccess` to help avoid bugs when indexing into arrays, many small changes needed to satisfy TS after this
- move all image-related endpoints into `endpoints/images.ts`, its a big file now, but this fixes a number of circular dependency issues that were otherwise felt impossible to resolve
2023-08-03 11:46:59 +10:00
Lincoln Stein
e7d9e552a7
Merge branch 'main' into feat_compel_and
2023-08-01 07:20:25 -04:00
Brandon Rising
f5ac73b091
Merge branch 'main' into feat/onnx
2023-07-31 10:58:40 -04:00
Damian Stewart
d2c55dc011
enable .and() syntax and long prompts
2023-07-30 14:20:59 +02:00
blessedcoolant
6d82a1019a
fix: Black linting
2023-07-29 17:34:43 +12:00
blessedcoolant
bee678fdd1
fix: Prompt Node using incorrect output type
2023-07-29 17:12:25 +12:00
blessedcoolant
aae1670080
fix: Incorrect Prompt Node output type
2023-07-29 16:04:19 +12:00
blessedcoolant
8a0e1b6cfc
feat: Create Prompt Input Node
2023-07-29 15:52:37 +12:00
Brandon Rising
6ca0c38ee3
Merge branch 'main' into feat/onnx
2023-07-28 22:06:28 -04:00
ZachNagengast
2164674b01
Black format
2023-07-28 07:49:29 -07:00
Lincoln Stein
e342ca872f
fix to work on non-MPS systems
2023-07-28 10:27:49 -04:00
Brandon Rising
da751da3dd
Merge branch 'main' into feat/onnx
2023-07-28 09:59:35 -04:00
Brandon Rising
2b7b3dd4ba
Run python black
2023-07-28 09:46:44 -04:00
ZachNagengast
ddaf753f7b
Merge branch 'set-timestep-mps-fix' of ssh://github.com/ZachNagengast/InvokeAI into set-timestep-mps-fix
2023-07-27 23:40:44 -07:00
ZachNagengast
e6d14c708c
Fix variable name
2023-07-27 23:40:23 -07:00
Millun Atluri
7f81a95b20
Merge branch 'main' into set-timestep-mps-fix
2023-07-28 16:12:07 +10:00
ZachNagengast
aa1f827271
Fix unet_info location, can have no device prop
2023-07-27 14:47:09 -07:00
ZachNagengast
6edeb4e072
Pass device to set_timestep to avoid float64 error
2023-07-27 12:52:18 -07:00
Brandon Rising
1ea9ba84f5
Release session if applying ti or lora
2023-07-27 15:20:38 -04:00
Lincoln Stein
0d8f9cbe55
resolved conflicts with main
2023-07-27 15:11:25 -04:00
Lincoln Stein
fd75a1dd10
reformat with black
2023-07-27 15:01:00 -04:00
Brandon Rising
59716938bf
Remove TensorRT support at the current time until we validate it works, remove time step recorder
2023-07-27 11:18:50 -04:00
Martin Kristiansen
218b6d0546
Apply black
2023-07-27 10:54:01 -04:00
Brandon Rising
f7bb4c3f05
Remove more files no longer needed in main
2023-07-27 10:49:43 -04:00
Brandon Rising
c16da75ac7
Merge branch 'main' into feat/onnx
2023-07-26 10:42:31 -04:00
Lincoln Stein
85ad5ef204
refactored code; added watermark and nsfw facilities to app config route
2023-07-26 15:27:04 +10:00