InvokeAI icon indicating copy to clipboard operation
InvokeAI copied to clipboard

[bug]: embiggen doesn't work on the latest dev

Open netsvetaev opened this issue 3 years ago • 2 comments

Is there an existing issue for this?

  • [X] I have searched the existing issues

OS

macOS

GPU

mps

VRAM

16

What happened?

The usual invoke> !fix outputs/1.png --embiggen 2.0 doesn’t work.

╭───────────────────── Traceback (most recent call last) ──────────────────────╮
│ /Users/artur/InvokeAI/./scripts/invoke.py:4 in <module>                      │
│                                                                              │
│   1 #!/usr/bin/env python                                                    │
│   2                                                                          │
│   3 import ldm.invoke.CLI                                                    │
│ ❱ 4 ldm.invoke.CLI.main()                                                    │
│   5                                                                          │
│   6                                                                          │
│                                                                              │
│ /Users/artur/InvokeAI/ldm/invoke/CLI.py:131 in main                          │
│                                                                              │
│   128 │   │   )                                                              │
│   129 │                                                                      │
│   130 │   try:                                                               │
│ ❱ 131 │   │   main_loop(gen, opt)                                            │
│   132 │   except KeyboardInterrupt:                                          │
│   133 │   │   print("\ngoodbye!")                                            │
│   134                                                                        │
│                                                                              │
│ /Users/artur/InvokeAI/ldm/invoke/CLI.py:369 in main_loop                     │
│                                                                              │
│   366 │   │   │   │   │   print(f'** {str(e)} **')                           │
│   367 │   │   │   elif operation == 'postprocess':                           │
│   368 │   │   │   │   print(f'>> fixing {opt.prompt}')                       │
│ ❱ 369 │   │   │   │   opt.last_operation = do_postprocess(gen,opt,image_writ │
│   370 │   │   │                                                              │
│   371 │   │   │   elif operation == 'mask':                                  │
│   372 │   │   │   │   print(f'>> generating masks from {opt.prompt}')        │
│                                                                              │
│ /Users/artur/InvokeAI/ldm/invoke/CLI.py:674 in do_postprocess                │
│                                                                              │
│   671 │   opt.save_original  = True # do not overwrite old image!            │
│   672 │   opt.last_operation = f'postprocess:{tool}'                         │
│   673 │   try:                                                               │
│ ❱ 674 │   │   gen.apply_postprocessor(                                       │
│   675 │   │   │   image_path      = file_path,                               │
│   676 │   │   │   tool            = tool,                                    │
│   677 │   │   │   facetool_strength = opt.facetool_strength,                 │
│                                                                              │
│ /Users/artur/InvokeAI/ldm/generate.py:660 in apply_postprocessor             │
│                                                                              │
│    657 │   │   │   generator = self.select_generator(embiggen=True)          │
│    658 │   │   │   opt.strength = opt.embiggen_strength or 0.40              │
│    659 │   │   │   print(f'>> Setting img2img strength to {opt.strength} for │
│ ❱  660 │   │   │   generator.generate(                                       │
│    661 │   │   │   │   prompt,                                               │
│    662 │   │   │   │   sampler     = self.sampler,                           │
│    663 │   │   │   │   steps       = opt.steps,                              │
│                                                                              │
│ /Users/artur/InvokeAI/ldm/invoke/generator/embiggen.py:41 in generate        │
│                                                                              │
│    38 │   │   │   │   image = make_image()                                   │
│    39 │   │   │   │   results.append([image, seed])                          │
│    40 │   │   │   │   if image_callback is not None:                         │
│ ❱  41 │   │   │   │   │   image_callback(image, seed)                        │
│    42 │   │   │   │   seed = self.new_seed()                                 │
│    43 │   │   return results                                                 │
│    44                                                                        │
│                                                                              │
│ /Users/artur/InvokeAI/ldm/invoke/CLI.py:311 in image_writer                  │
│                                                                              │
│   308 │   │   │   │   │   if use_prefix is not None:                         │
│   309 │   │   │   │   │   │   prefix = use_prefix                            │
│   310 │   │   │   │   │   postprocessed = upscaled if upscaled else operatio │
│ ❱ 311 │   │   │   │   │   opt.prompt = gen.concept_lib().replace_triggers_wi │
│   312 │   │   │   │   │   filename, formatted_dream_prompt = prepare_image_m │
│   313 │   │   │   │   │   │   opt,                                           │
│   314 │   │   │   │   │   │   prefix,                                        │
│                                                                              │
│ /Users/artur/InvokeAI/ldm/invoke/concepts_lib.py:87 in                       │
│ replace_triggers_with_concepts                                               │
│                                                                              │
│    84 │   │   better to store the concept name (unique) than the concept tri │
│    85 │   │   (not necessarily unique!)                                      │
│    86 │   │   '''                                                            │
│ ❱  87 │   │   triggers = self.match_trigger.findall(prompt)                  │
│    88 │   │   if not triggers:                                               │
│    89 │   │   │   return prompt                                              │
│    90                                                                        │
╰──────────────────────────────────────────────────────────────────────────────╯
TypeError: expected string or bytes-like object

Screenshots

No response

Additional context

No response

Contact Details

No response

netsvetaev avatar Dec 01 '22 02:12 netsvetaev

Tested on main just now and I get the same behavior in a Ubuntu WSL2 container w/NVIDIA RTX 3060.

JPPhoto avatar Dec 02 '22 11:12 JPPhoto

Same error here on main for Debian 11 running on bare metal

apfelnymous avatar Dec 02 '22 12:12 apfelnymous