Sergey Borisov
a01998d095
Remove more old logic
2023-06-19 15:57:28 +10:00
Sergey Borisov
7b35162b9e
Remove old logic except for inpaint, add support for lora and ti to inpaint node
2023-06-19 15:57:28 +10:00
StAlKeR7779
c9ae26a176
Merge branch 'main' into lstein/new-model-manager
2023-06-13 23:37:52 +03:00
blessedcoolant
68405910ba
Upgrade to Diffusers 0.17.0
2023-06-08 04:42:52 +12:00
Lincoln Stein
98773b20ac
merge with main
2023-06-01 18:09:49 -04:00
user1
a91dee87d0
Added support for ControlNet and MultiControlNet to legacy non-nodal Txt2Img in backend/generator. Although backend/generator will likely disappear by v3.x, right now they are very useful for testing core ControlNet and MultiControlNet functionality while node codebase is rapidly evolving.
2023-05-26 21:44:00 -04:00
Lincoln Stein
5f8f51436a
merge with main; fix conflicts
2023-05-25 22:40:45 -04:00
psychedelicious
fb0b63c580
fix(nodes): fix seam painting
...
The problem was the same seed was getting used for the seam painting pass, causing the fried look.
Same issue as if you do img2img on a txt2img with the same seed/prompt.
Thanks to @hipsterusername for teaming up to debug this. We got pretty deep into the weeds.
2023-05-25 00:58:03 +10:00
Lincoln Stein
baf5451fa0
Merge branch 'main' into lstein/new-model-manager
2023-05-13 22:01:34 -04:00
blessedcoolant
8a836247c8
Add DPMPP Single, Euler Karras and DPMPP2 Multi Karras Schedulers
2023-05-12 02:23:33 +12:00
blessedcoolant
9a383e456d
Codesplit SCHEDULER_MAP for reusage
2023-05-12 00:40:03 +12:00
blessedcoolant
3ffff023b2
Add missing key to scheduler_map
...
It was breaking coz the sampler was not being reset. So needs a key on each. Will simplify this later.
2023-05-12 00:08:50 +12:00
blessedcoolant
d1029138d2
Default to DDIM if scheduler is missing
2023-05-11 22:54:35 +12:00
blessedcoolant
06b5800d28
Add UniPC Scheduler
2023-05-11 22:43:18 +12:00
Lincoln Stein
8ad8c5c67a
resolve conflicts with main
2023-05-11 00:19:20 -04:00
psychedelicious
49db6f4fac
fix(nodes): fix trivial typing issues
2023-05-11 11:55:51 +10:00
psychedelicious
206e6b1730
feat(nodes): wip inpaint node
2023-05-11 11:55:51 +10:00
Lincoln Stein
e0214a32bc
mostly ported to new manager API; needs testing
2023-05-06 00:44:12 -04:00
Lincoln Stein
8db20e0d95
rename log to logger throughout
2023-04-29 09:43:40 -04:00
Lincoln Stein
0b0e6fe448
convert remainder of print() to log.info()
2023-04-14 15:15:14 -04:00
psychedelicious
5fe38f7c88
fix(backend): simple typing fixes
2023-03-26 17:07:03 +11:00
Lincoln Stein
f329fddab9
make step_callback work again in generate() call
...
This PR fixes #2951 and restores the step_callback argument in the
refactored generate() method. Note that this issue states that
"something is still wrong because steps and step are zero." However,
I think this is confusion over the call signature of the callback, which
since the diffusers merge has been `callback(state:PipelineIntermediateState)`
This is the test script that I used to determine that `step` is being passed
correctly:
```
from pathlib import Path
from invokeai.backend import ModelManager, PipelineIntermediateState
from invokeai.backend.globals import global_config_dir
from invokeai.backend.generator import Txt2Img
def my_callback(state:PipelineIntermediateState, total_steps:int):
print(f'callback(step={state.step}/{total_steps})')
def main():
manager = ModelManager(Path(global_config_dir()) / "models.yaml")
model = manager.get_model('stable-diffusion-1.5')
print ('=== TXT2IMG TEST ===')
steps=30
output = next(Txt2Img(model).generate(prompt='banana sushi',
iterations=None,
steps=steps,
step_callback=lambda x: my_callback(x,steps)
)
)
print(f'image={output.image}, seed={output.seed}, steps={output.params.steps}')
if __name__=='__main__':
main()
```
2023-03-24 09:32:47 +11:00
psychedelicious
b194180f76
feat(backend): make fast latents method static
2023-03-16 20:03:08 +11:00
blessedcoolant
0a761d7c43
fix(inpaint): Seam painting being broken
2023-03-15 00:00:08 +13:00
JPPhoto
596ba754b1
Removed seed from get_make_image.
2023-03-13 08:15:46 -05:00
JPPhoto
b980e563b9
Fix bug #2931
2023-03-13 08:11:09 -05:00
Lincoln Stein
d612f11c11
initialize InvokeAIGenerator object with model, not manager
2023-03-11 09:06:46 -05:00
Lincoln Stein
250b0ab182
add seamless tiling support
2023-03-11 08:33:23 -05:00
Lincoln Stein
675dd12b6c
add attention map images to output object
2023-03-11 08:07:01 -05:00
Lincoln Stein
7e76eea059
add embiggen, remove complicated constructor
2023-03-11 07:50:39 -05:00
Lincoln Stein
95954188b2
remove factory pattern
...
Factory pattern is now removed. Typical usage of the InvokeAIGenerator is now:
```
from invokeai.backend.generator import (
InvokeAIGeneratorBasicParams,
Txt2Img,
Img2Img,
Inpaint,
)
params = InvokeAIGeneratorBasicParams(
model_name = 'stable-diffusion-1.5',
steps = 30,
scheduler = 'k_lms',
cfg_scale = 8.0,
height = 640,
width = 640
)
print ('=== TXT2IMG TEST ===')
txt2img = Txt2Img(manager, params)
outputs = txt2img.generate(prompt='banana sushi', iterations=2)
for i in outputs:
print(f'image={output.image}, seed={output.seed}, model={output.params.model_name}, hash={output.model_hash}, steps={output.params.steps}')
```
The `params` argument is optional, so if you wish to accept default
parameters and selectively override them, just do this:
```
outputs = Txt2Img(manager).generate(prompt='banana sushi',
steps=50,
scheduler='k_heun',
model_name='stable-diffusion-2.1'
)
```
2023-03-10 19:33:04 -05:00
Lincoln Stein
c11e823ff3
remove unused _wrap_results
2023-03-09 16:30:06 -05:00
Lincoln Stein
cde0b6ae8d
Merge branch 'main' into refactor/nodes-on-generator
2023-03-09 01:52:45 -05:00
Lincoln Stein
b679a6ba37
model manager defaults to consistent values of device and precision
2023-03-09 01:09:54 -05:00
Lincoln Stein
5d37fa6e36
node-based txt2img working without generate
2023-03-09 00:18:29 -05:00
Jonathan
2db180d909
Make img2img strength 1 behave the same as txt2img ( #2895 )
...
* Fix img2img and inpainting code so a strength of 1 behaves the same as txt2img.
* Make generated images identical to their txt2img counterparts when strength is 1.
2023-03-08 22:50:16 +01:00
Lincoln Stein
87789c1de8
add InvokeAIGenerator and InvokeAIGeneratorFactory classes
2023-03-07 23:52:53 -05:00
Kevin Turner
c703b60986
remove legacy ldm code
2023-03-04 18:16:59 -08:00
mickr777
53c2c0f91d
Update txt2img2img.py
2023-03-04 12:58:33 +11:00
mickr777
1bfdd54810
Update txt2img2img.py
2023-03-04 11:23:21 +11:00
Lincoln Stein
60a98cacef
all vestiges of ldm.invoke removed
2023-03-03 01:02:00 -05:00
Lincoln Stein
6a990565ff
all files migrated; tweaks needed
2023-03-03 00:02:15 -05:00
Lincoln Stein
3f0b0f3250
almost all of backend migrated; restoration next
2023-03-02 13:28:17 -05:00
Lincoln Stein
850d1ee984
move models and modules under invokeai/backend/ldm
2023-03-01 18:24:18 -05:00
Lincoln Stein
5b6c61fc75
move models and generator into backend
2023-02-28 08:32:11 -05:00