vladmandic / automatic

SD.Next: Advanced Implementation Generative Image Models
https://github.com/vladmandic/automatic
GNU Affero General Public License v3.0
5.75k stars 430 forks source link

[Issue]: no module named scripts.photomaker_model #2752

Closed Ph0rk0z closed 10 months ago

Ph0rk0z commented 10 months ago

Issue Description

I am having issues with certain scripts now not being able to find the import. photomaker is one that fails gracefully but ipadapter.py prevents starting the UI unless commented out.

In the classic back end I can't run animatediff as several of it's files fail on the same error. Is this something I am doing or a bug in dev?

Animated diff on diffusers fails with divide by zero errors (sdp attention) and xformers errors on the forward pass and flash attention despite it being off and supported by hw or not. Single images generate normally.

Version Platform Description

Linux 22.04 Conda, Python 3.10

Relevant log output

No response

Backend

Diffusers

Branch

Dev

Model

SD 1.5

Acknowledgements

vladmandic commented 10 months ago

i need actual logs, not general statements. but ipadapter, animatediff, photomaker - they are all diffusers only features, they should not even show up in original backend.

Ph0rk0z commented 10 months ago

Ok, here are some logs.. they all seem to follow the same theme.

Normal gen:


09:41:20-540956 INFO     Applying token merging: ratio=0.5                                                                                                    
Progress 18.55it/s █████████████████████████████████ 100% 20/20 00:01 00:00 Base
09:41:21-807957 INFO     Processed: images=1 time=1.26 its=15.84 memory={'ram': {'used': 6.55, 'total': 251.77}, 'gpu': {'used': 3.2, 'total': 23.69},        
                         'retries': 0, 'oom': 0}     

AnimatedDiff -diffusers/xformers


09:42:22-742644 ERROR    Processing: RuntimeError                                                                                                             
╭──────────────────────────────────────────────────────────── Traceback (most recent call last) ─────────────────────────────────────────────────────────────╮
│ /home/supermicro/ai/automatic/modules/processing_diffusers.py:483 in process_diffusers                                                                     │
│                                                                                                                                                            │
│   482 │   │   t0 = time.time()                                                                                                                             │
│ ❱ 483 │   │   output = shared.sd_model(**base_args) # pylint: disable=not-callable                                                                         │
│   484 │   │   openvino_post_compile(op="base") # only executes on compiled vino models                                                                     │
│                                                                                                                                                            │
│ /home/supermicro/miniconda3/envs/automatic/lib/python3.10/site-packages/torch/utils/_contextlib.py:115 in decorate_context                                 │
│                                                                                                                                                            │
│   114 │   │   with ctx_factory():                                                                                                                          │
│ ❱ 115 │   │   │   return func(*args, **kwargs)                                                                                                             │
│   116                                                                                                                                                      │
│                                                                                                                                                            │
│ /home/supermicro/miniconda3/envs/automatic/lib/python3.10/site-packages/diffusers/pipelines/animatediff/pipeline_animatediff.py:718 in __call__            │
│                                                                                                                                                            │
│   717 │   │   │   │   # predict the noise residual                                                                                                         │
│ ❱ 718 │   │   │   │   noise_pred = self.unet(                                                                                                              │
│   719 │   │   │   │   │   latent_model_input,                                                                                                              │
│                                                                                                                                                            │
│ /home/supermicro/miniconda3/envs/automatic/lib/python3.10/site-packages/torch/nn/modules/module.py:1518 in _wrapped_call_impl                              │
│                                                                                                                                                            │
│   1517 │   │   else:                                                                                                                                       │
│ ❱ 1518 │   │   │   return self._call_impl(*args, **kwargs)                                                                                                 │
│   1519                                                                                                                                                     │
│                                                                                                                                                            │
│ /home/supermicro/miniconda3/envs/automatic/lib/python3.10/site-packages/torch/nn/modules/module.py:1527 in _call_impl                                      │
│                                                                                                                                                            │
│   1526 │   │   │   │   or _global_forward_hooks or _global_forward_pre_hooks):                                                                             │
│ ❱ 1527 │   │   │   return forward_call(*args, **kwargs)                                                                                                    │
│   1528                                                                                                                                                     │
│                                                                                                                                                            │
│                                                                  ... 15 frames hidden ...                                                                  │
│                                                                                                                                                            │
│ /home/supermicro/miniconda3/envs/automatic/lib/python3.10/site-packages/xformers-0.0.24+dfc74d2.d20240124-py3.10-linux-x86_64.egg/xformers/ops/fmha/__init │
│                                                                                                                                                            │
│   320 │   if all(x.requires_grad is False for x in [inp.query, inp.key, inp.value]):                                                                       │
│ ❱ 321 │   │   return _memory_efficient_attention_forward(                                                                                                  │
│   322 │   │   │   inp, op=op[0] if op is not None else None                                                                                                │
│                                                                                                                                                            │
│ /home/supermicro/miniconda3/envs/automatic/lib/python3.10/site-packages/xformers-0.0.24+dfc74d2.d20240124-py3.10-linux-x86_64.egg/xformers/ops/fmha/__init │
│                                                                                                                                                            │
│   340 │                                                                                                                                                    │
│ ❱ 341 │   out, *_ = op.apply(inp, needs_gradient=False)                                                                                                    │
│   342 │   return out.reshape(output_shape)                                                                                                                 │
│                                                                                                                                                            │
│ /home/supermicro/miniconda3/envs/automatic/lib/python3.10/site-packages/xformers-0.0.24+dfc74d2.d20240124-py3.10-linux-x86_64.egg/xformers/ops/fmha/flash. │
│                                                                                                                                                            │
│   457 │   │   │   win_left, win_right = _window_size(inp.attn_bias)                                                                                        │
│ ❱ 458 │   │   │   out, softmax_lse, rng_state = cls.OPERATOR(                                                                                              │
│   459 │   │   │   │   inp.query,                                                                                                                           │
│                                                                                                                                                            │
│ /home/supermicro/miniconda3/envs/automatic/lib/python3.10/site-packages/torch/_ops.py:692 in __call__                                                      │
│                                                                                                                                                            │
│   691 │   │   # OpOverloadPacket to access it here.                                                                                                        │
│ ❱ 692 │   │   return self._op(*args, **kwargs or {})                                                                                                       │
│   693                                                                                                                                                      │
│                                                                                                                                                            │
│ /home/supermicro/miniconda3/envs/automatic/lib/python3.10/site-packages/xformers-0.0.24+dfc74d2.d20240124-py3.10-linux-x86_64.egg/xformers/ops/fmha/flash. │
│                                                                                                                                                            │
│   105 │   │   │   │   rng_state,                                                                                                                           │
│ ❱ 106 │   │   │   ) = _C_flashattention.fwd(                                                                                                               │
│   107 │   │   │   │   query,                                                                                                                               │
╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
RuntimeError: CUDA error: invalid configuration argument
CUDA kernel errors might be asynchronously reported at some other API call, so the stacktrace below might be incorrect.
For debugging consider passing CUDA_LAUNCH_BLOCKING=1.
Compile with `TORCH_USE_CUDA_DSA` to enable device-side assertions.

AnimateDiff -no xformers/classic backend


09:45:42-258511 ERROR    Module load: extensions/sd-webui-animatediff/scripts/animatediff.py: ModuleNotFoundError                                             
╭──────────────────────────────────────────────────────────── Traceback (most recent call last) ─────────────────────────────────────────────────────────────╮
│ /home/supermicro/ai/automatic/modules/script_loading.py:29 in load_module                                                                                  │
│                                                                                                                                                            │
│   28 │   │   │   │   with contextlib.redirect_stdout(io.StringIO()) as stdout:                                                                             │
│ ❱ 29 │   │   │   │   │   module_spec.loader.exec_module(module)                                                                                            │
│   30 │   │   │   setup_logging() # reset since scripts can hijaack logging                                                                                 │
│ in exec_module:883                                                                                                                                         │
│ in _call_with_frames_removed:241                                                                                                                           │
│                                                                                                                                                            │
│ /home/supermicro/ai/automatic/extensions/sd-webui-animatediff/scripts/animatediff.py:7 in <module>                                                         │
│                                                                                                                                                            │
│     6                                                                                                                                                      │
│ ❱   7 from scripts.animatediff_cn import AnimateDiffControl                                                                                                │
│     8 from scripts.animatediff_infv2v import AnimateDiffInfV2V                                                                                             │
╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
ModuleNotFoundError: No module named 'scripts.animatediff_cn'
09:45:42-266918 ERROR    Module load: extensions/sd-webui-animatediff/scripts/animatediff_cn.py: ModuleNotFoundError                                          
╭──────────────────────────────────────────────────────────── Traceback (most recent call last) ─────────────────────────────────────────────────────────────╮
│ /home/supermicro/ai/automatic/modules/script_loading.py:29 in load_module                                                                                  │
│                                                                                                                                                            │
│   28 │   │   │   │   with contextlib.redirect_stdout(io.StringIO()) as stdout:                                                                             │
│ ❱ 29 │   │   │   │   │   module_spec.loader.exec_module(module)                                                                                            │
│   30 │   │   │   setup_logging() # reset since scripts can hijaack logging                                                                                 │
│ in exec_module:883                                                                                                                                         │
│ in _call_with_frames_removed:241                                                                                                                           │
│                                                                                                                                                            │
│ /home/supermicro/ai/automatic/extensions/sd-webui-animatediff/scripts/animatediff_cn.py:18 in <module>                                                     │
│                                                                                                                                                            │
│    17                                                                                                                                                      │
│ ❱  18 from scripts.animatediff_logger import logger_animatediff as logger                                                                                  │
│    19 from scripts.animatediff_ui import AnimateDiffProcess                                                                                                │
╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
ModuleNotFoundError: No module named 'scripts.animatediff_logger'
09:45:42-277089 ERROR    Module load: extensions/sd-webui-animatediff/scripts/animatediff_i2ibatch.py: ModuleNotFoundError                                    
╭──────────────────────────────────────────────────────────── Traceback (most recent call last) ─────────────────────────────────────────────────────────────╮
│ /home/supermicro/ai/automatic/modules/script_loading.py:29 in load_module                                                                                  │
│                                                                                                                                                            │
│   28 │   │   │   │   with contextlib.redirect_stdout(io.StringIO()) as stdout:                                                                             │
│ ❱ 29 │   │   │   │   │   module_spec.loader.exec_module(module)                                                                                            │
│   30 │   │   │   setup_logging() # reset since scripts can hijaack logging                                                                                 │
│ in exec_module:883                                                                                                                                         │
│ in _call_with_frames_removed:241                                                                                                                           │
│                                                                                                                                                            │
│ /home/supermicro/ai/automatic/extensions/sd-webui-animatediff/scripts/animatediff_i2ibatch.py:21 in <module>                                               │
│                                                                                                                                                            │
│    20                                                                                                                                                      │
│ ❱  21 from scripts.animatediff_logger import logger_animatediff as logger                                                                                  │
│    22                                                                                                                                                      │
╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
ModuleNotFoundError: No module named 'scripts.animatediff_logger'
09:45:42-286627 ERROR    Module load: extensions/sd-webui-animatediff/scripts/animatediff_infotext.py: ModuleNotFoundError                                    
╭──────────────────────────────────────────────────────────── Traceback (most recent call last) ─────────────────────────────────────────────────────────────╮
│ /home/supermicro/ai/automatic/modules/script_loading.py:29 in load_module                                                                                  │
│                                                                                                                                                            │
│   28 │   │   │   │   with contextlib.redirect_stdout(io.StringIO()) as stdout:                                                                             │
│ ❱ 29 │   │   │   │   │   module_spec.loader.exec_module(module)                                                                                            │
│   30 │   │   │   setup_logging() # reset since scripts can hijaack logging                                                                                 │
│ in exec_module:883                                                                                                                                         │
│ in _call_with_frames_removed:241                                                                                                                           │
│                                                                                                                                                            │
│ /home/supermicro/ai/automatic/extensions/sd-webui-animatediff/scripts/animatediff_infotext.py:6 in <module>                                                │
│                                                                                                                                                            │
│    5                                                                                                                                                       │
│ ❱  6 from scripts.animatediff_ui import AnimateDiffProcess                                                                                                 │
│    7 from scripts.animatediff_logger import logger_animatediff as logger                                                                                   │
╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
ModuleNotFoundError: No module named 'scripts.animatediff_ui'
09:45:42-294831 ERROR    Module load: extensions/sd-webui-animatediff/scripts/animatediff_infv2v.py: ModuleNotFoundError                                      
╭──────────────────────────────────────────────────────────── Traceback (most recent call last) ─────────────────────────────────────────────────────────────╮
│ /home/supermicro/ai/automatic/modules/script_loading.py:29 in load_module                                                                                  │
│                                                                                                                                                            │
│   28 │   │   │   │   with contextlib.redirect_stdout(io.StringIO()) as stdout:                                                                             │
│ ❱ 29 │   │   │   │   │   module_spec.loader.exec_module(module)                                                                                            │
│   30 │   │   │   setup_logging() # reset since scripts can hijaack logging                                                                                 │
│ in exec_module:883                                                                                                                                         │
│ in _call_with_frames_removed:241                                                                                                                           │
│                                                                                                                                                            │
│ /home/supermicro/ai/automatic/extensions/sd-webui-animatediff/scripts/animatediff_infv2v.py:13 in <module>                                                 │
│                                                                                                                                                            │
│    12                                                                                                                                                      │
│ ❱  13 from scripts.animatediff_logger import logger_animatediff as logger                                                                                  │
│    14 from scripts.animatediff_ui import AnimateDiffProcess                                                                                                │
╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
ModuleNotFoundError: No module named 'scripts.animatediff_logger'
09:45:42-303524 ERROR    Module load: extensions/sd-webui-animatediff/scripts/animatediff_latent.py: ModuleNotFoundError                                      
╭──────────────────────────────────────────────────────────── Traceback (most recent call last) ─────────────────────────────────────────────────────────────╮
│ /home/supermicro/ai/automatic/modules/script_loading.py:29 in load_module                                                                                  │
│                                                                                                                                                            │
│   28 │   │   │   │   with contextlib.redirect_stdout(io.StringIO()) as stdout:                                                                             │
│ ❱ 29 │   │   │   │   │   module_spec.loader.exec_module(module)                                                                                            │
│   30 │   │   │   setup_logging() # reset since scripts can hijaack logging                                                                                 │
│ in exec_module:883                                                                                                                                         │
│ in _call_with_frames_removed:241                                                                                                                           │
│                                                                                                                                                            │
│ /home/supermicro/ai/automatic/extensions/sd-webui-animatediff/scripts/animatediff_latent.py:9 in <module>                                                  │
│                                                                                                                                                            │
│    8                                                                                                                                                       │
│ ❱  9 from scripts.animatediff_logger import logger_animatediff as logger                                                                                   │
│   10 from scripts.animatediff_ui import AnimateDiffProcess                                                                                                 │
╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
ModuleNotFoundError: No module named 'scripts.animatediff_logger'
09:45:42-311797 ERROR    Module load: extensions/sd-webui-animatediff/scripts/animatediff_lcm.py: ModuleNotFoundError                                         
╭──────────────────────────────────────────────────────────── Traceback (most recent call last) ─────────────────────────────────────────────────────────────╮
│ /home/supermicro/ai/automatic/modules/script_loading.py:29 in load_module                                                                                  │
│                                                                                                                                                            │
│   28 │   │   │   │   with contextlib.redirect_stdout(io.StringIO()) as stdout:                                                                             │
│ ❱ 29 │   │   │   │   │   module_spec.loader.exec_module(module)                                                                                            │
│   30 │   │   │   setup_logging() # reset since scripts can hijaack logging                                                                                 │
│ in exec_module:883                                                                                                                                         │
│ in _call_with_frames_removed:241                                                                                                                           │
│                                                                                                                                                            │
│ /home/supermicro/ai/automatic/extensions/sd-webui-animatediff/scripts/animatediff_lcm.py:10 in <module>                                                    │
│                                                                                                                                                            │
│     9 from modules import shared, sd_samplers_cfg_denoiser, sd_samplers_kdiffusion                                                                         │
│ ❱  10 from scripts.animatediff_logger import logger_animatediff as logger                                                                                  │
│    11                                                                                                                                                      │
╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
ModuleNotFoundError: No module named 'scripts.animatediff_logger'
09:45:42-321215 ERROR    Module load: extensions/sd-webui-animatediff/scripts/animatediff_lora.py: ModuleNotFoundError                                        
╭──────────────────────────────────────────────────────────── Traceback (most recent call last) ─────────────────────────────────────────────────────────────╮
│ /home/supermicro/ai/automatic/modules/script_loading.py:29 in load_module                                                                                  │
│                                                                                                                                                            │
│   28 │   │   │   │   with contextlib.redirect_stdout(io.StringIO()) as stdout:                                                                             │
│ ❱ 29 │   │   │   │   │   module_spec.loader.exec_module(module)                                                                                            │
│   30 │   │   │   setup_logging() # reset since scripts can hijaack logging                                                                                 │
│ in exec_module:883                                                                                                                                         │
│ in _call_with_frames_removed:241                                                                                                                           │
│                                                                                                                                                            │
│ /home/supermicro/ai/automatic/extensions/sd-webui-animatediff/scripts/animatediff_lora.py:8 in <module>                                                    │
│                                                                                                                                                            │
│    7                                                                                                                                                       │
│ ❱  8 from scripts.animatediff_logger import logger_animatediff as logger                                                                                   │
│    9                                                                                                                                                       │
╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
ModuleNotFoundError: No module named 'scripts.animatediff_logger'
09:45:42-329243 ERROR    Module load: extensions/sd-webui-animatediff/scripts/animatediff_mm.py: ModuleNotFoundError                                          
╭──────────────────────────────────────────────────────────── Traceback (most recent call last) ─────────────────────────────────────────────────────────────╮
│ /home/supermicro/ai/automatic/modules/script_loading.py:29 in load_module                                                                                  │
│                                                                                                                                                            │
│   28 │   │   │   │   with contextlib.redirect_stdout(io.StringIO()) as stdout:                                                                             │
│ ❱ 29 │   │   │   │   │   module_spec.loader.exec_module(module)                                                                                            │
│   30 │   │   │   setup_logging() # reset since scripts can hijaack logging                                                                                 │
│ in exec_module:883                                                                                                                                         │
│ in _call_with_frames_removed:241                                                                                                                           │
│                                                                                                                                                            │
│ /home/supermicro/ai/automatic/extensions/sd-webui-animatediff/scripts/animatediff_mm.py:10 in <module>                                                     │
│                                                                                                                                                            │
│     9 from motion_module import MotionWrapper, MotionModuleType                                                                                            │
│ ❱  10 from scripts.animatediff_logger import logger_animatediff as logger                                                                                  │
│    11                                                                                                                                                      │
╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
ModuleNotFoundError: No module named 'scripts.animatediff_logger'
09:45:42-346054 ERROR    Module load: extensions/sd-webui-animatediff/scripts/animatediff_output.py: ModuleNotFoundError                                      
╭──────────────────────────────────────────────────────────── Traceback (most recent call last) ─────────────────────────────────────────────────────────────╮
│ /home/supermicro/ai/automatic/modules/script_loading.py:29 in load_module                                                                                  │
│                                                                                                                                                            │
│   28 │   │   │   │   with contextlib.redirect_stdout(io.StringIO()) as stdout:                                                                             │
│ ❱ 29 │   │   │   │   │   module_spec.loader.exec_module(module)                                                                                            │
│   30 │   │   │   setup_logging() # reset since scripts can hijaack logging                                                                                 │
│ in exec_module:883                                                                                                                                         │
│ in _call_with_frames_removed:241                                                                                                                           │
│                                                                                                                                                            │
│ /home/supermicro/ai/automatic/extensions/sd-webui-animatediff/scripts/animatediff_output.py:13 in <module>                                                 │
│                                                                                                                                                            │
│    12                                                                                                                                                      │
│ ❱  13 from scripts.animatediff_logger import logger_animatediff as logger                                                                                  │
│    14 from scripts.animatediff_ui import AnimateDiffProcess                                                                                                │
╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
ModuleNotFoundError: No module named 'scripts.animatediff_logger'
09:45:42-354810 ERROR    Module load: extensions/sd-webui-animatediff/scripts/animatediff_prompt.py: ModuleNotFoundError                                      
╭──────────────────────────────────────────────────────────── Traceback (most recent call last) ─────────────────────────────────────────────────────────────╮
│ /home/supermicro/ai/automatic/modules/script_loading.py:29 in load_module                                                                                  │
│                                                                                                                                                            │
│   28 │   │   │   │   with contextlib.redirect_stdout(io.StringIO()) as stdout:                                                                             │
│ ❱ 29 │   │   │   │   │   module_spec.loader.exec_module(module)                                                                                            │
│   30 │   │   │   setup_logging() # reset since scripts can hijaack logging                                                                                 │
│ in exec_module:883                                                                                                                                         │
│ in _call_with_frames_removed:241                                                                                                                           │
│                                                                                                                                                            │
│ /home/supermicro/ai/automatic/extensions/sd-webui-animatediff/scripts/animatediff_prompt.py:6 in <module>                                                  │
│                                                                                                                                                            │
│     5                                                                                                                                                      │
│ ❱   6 from scripts.animatediff_logger import logger_animatediff as logger                                                                                  │
│     7 from scripts.animatediff_infotext import write_params_txt                                                                                            │
╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
ModuleNotFoundError: No module named 'scripts.animatediff_logger'
09:45:42-362060 ERROR    Module load: extensions/sd-webui-animatediff/scripts/animatediff_ui.py: ModuleNotFoundError                                          
╭──────────────────────────────────────────────────────────── Traceback (most recent call last) ─────────────────────────────────────────────────────────────╮
│ /home/supermicro/ai/automatic/modules/script_loading.py:29 in load_module                                                                                  │
│                                                                                                                                                            │
│   28 │   │   │   │   with contextlib.redirect_stdout(io.StringIO()) as stdout:                                                                             │
│ ❱ 29 │   │   │   │   │   module_spec.loader.exec_module(module)                                                                                            │
│   30 │   │   │   setup_logging() # reset since scripts can hijaack logging                                                                                 │
│ in exec_module:883                                                                                                                                         │
│ in _call_with_frames_removed:241                                                                                                                           │
│                                                                                                                                                            │
│ /home/supermicro/ai/automatic/extensions/sd-webui-animatediff/scripts/animatediff_ui.py:9 in <module>                                                      │
│                                                                                                                                                            │
│     8                                                                                                                                                      │
│ ❱   9 from scripts.animatediff_mm import mm_animatediff as motion_module                                                                                   │
│    10 from scripts.animatediff_i2ibatch import animatediff_i2ibatch                                                                                        │
╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
ModuleNotFoundError: No module named 'scripts.animatediff_mm'

Btw, the whole uninstalling xformers things sucks. I have to compile it from source so it's not as simple as a pip install for me. SDP attention doesn't cut it for cards without tensorcores like P100/P40. In fact its the difference between usability and not. That's a separate issue though.

I thought it was some dependency issue or something but it seems I can't make the imports be found despite them being right in the same folder where they belong.

Ph0rk0z commented 10 months ago

And the original error:

09:38:37-451602 ERROR    Module load: /home/supermicro/ai/automatic/scripts/photomaker.py: ModuleNotFoundError                                                
╭──────────────────────────────────────────────────────────── Traceback (most recent call last) ─────────────────────────────────────────────────────────────╮
│ /home/supermicro/ai/automatic/modules/script_loading.py:29 in load_module                                                                                  │
│                                                                                                                                                            │
│   28 │   │   │   │   with contextlib.redirect_stdout(io.StringIO()) as stdout:                                                                             │
│ ❱ 29 │   │   │   │   │   module_spec.loader.exec_module(module)                                                                                            │
│   30 │   │   │   setup_logging() # reset since scripts can hijaack logging                                                                                 │
│ in exec_module:883                                                                                                                                         │
│ in _call_with_frames_removed:241                                                                                                                           │
│                                                                                                                                                            │
│ /home/supermicro/ai/automatic/scripts/photomaker.py:6 in <module>                                                                                          │
│                                                                                                                                                            │
│     5 from modules import shared, processing, sd_models, scripts                                                                                           │
│ ❱   6 from scripts.photomaker_model import PhotoMakerStableDiffusionXLPipeline # pylint: disable=no-name-in-module                                         │
│     7                                                                                                                                                      │
╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
vladmandic commented 10 months ago
Ph0rk0z commented 10 months ago

I have more than one GPU, I have P40, P100, 3090 but I can't always use the 3090. Anyways, the photomaker error is gone but the error that prevents the UI from loading is still there.


│ /home/supermicro/ai/automatic/launch.py:231 in <module>                                                                                                    │
│                                                                                                                                                            │
│   230                                                                                                                                                      │
│ ❱ 231     uv, instance = start_server(immediate=True, server=None)                                                                                         │
│   232     while True:                                                                                                                                      │
│                                                                                                                                                            │
│ /home/supermicro/ai/automatic/launch.py:171 in start_server                                                                                                │
│                                                                                                                                                            │
│   170         else:                                                                                                                                        │
│ ❱ 171             uvicorn = server.webui(restart=not immediate)                                                                                            │
│   172     if args.profile:                                                                                                                                 │
│                                                                                                                                                            │
│ /home/supermicro/ai/automatic/webui.py:307 in webui                                                                                                        │
│                                                                                                                                                            │
│   306     start_common()                                                                                                                                   │
│ ❱ 307     start_ui()                                                                                                                                       │
│   308     modules.sd_models.write_metadata()                                                                                                               │
│                                                                                                                                                            │
│ /home/supermicro/ai/automatic/webui.py:225 in start_ui                                                                                                     │
│                                                                                                                                                            │
│   224     timer.startup.record("before-ui")                                                                                                                │
│ ❱ 225     shared.demo = modules.ui.create_ui(timer.startup)                                                                                                │
│   226     timer.startup.record("ui")                                                                                                                       │
│                                                                                                                                                            │
│ /home/supermicro/ai/automatic/modules/ui.py:135 in create_ui                                                                                               │
│                                                                                                                                                            │
│   134         if shared.backend == shared.Backend.DIFFUSERS:                                                                                               │
│ ❱ 135             from modules import ui_control                                                                                                           │
│   136             ui_control.create_ui()                                                                                                                   │
│                                                                                                                                                            │
│ /home/supermicro/ai/automatic/modules/ui_control.py:13 in <module>                                                                                         │
│                                                                                                                                                            │
│    12 from modules.control.units import reference # reference pipeline                                                                                     │
│ ❱  13 from scripts import ipadapter # pylint: disable=no-name-in-module                                                                                    │
│    14 from modules import errors, shared, progress, sd_samplers, ui_components, ui_symbols, ui

also.. the second use of animatediff causes divide by zero even without xformers


12:00:15-900273 ERROR    Exception: division by zero                                                                                                          
12:00:15-902017 ERROR    Arguments: args=('task(ih8k1t041rvikmd)', '1girl', '', [], 20, 15, 0, True, False, False, 1, 1, 6, 6, 0.7, 0, 1, -1.0, -1.0, 0, 0, 0,
                         512, 512, False, 0.5, 2, 'None', False, 20, 0, 0, 5, 0.8, '', '', False, 4, 0.95, False, 1, 1, False, 0.6, 1, [], 0, 3, 1, 1, 0.8, 8,
                         64, True, ['FaceID'], 'FaceID Base', 1, None, True, 128, 4, 1, True, 'person', 1, 0.5, [], False, False, 'positive', 'comma', 0,     
                         False, False, '', 'None', True, 0, 'None', 2, True, 1, 0, 0, '', [], 0, '', [], 0, '', [], False, True, False, False, False, False,  
                         0, 'Motion 1.5 v3', 16, 'Zoom-out', 1, True, 'None', 2, True, 1, 0, True, 'none', 3, 4, 0.25, 0.25, 'none', 0.5, None) kwargs={}     
12:00:15-906374 ERROR    gradio call: ZeroDivisionError                                                                                                       
╭──────────────────────────────────────────────────────────── Traceback (most recent call last) ─────────────────────────────────────────────────────────────╮
│ /home/supermicro/ai/automatic/modules/call_queue.py:31 in f                                                                                                │
│                                                                                                                                                            │
│   30 │   │   │   try:                                                                                                                                      │
│ ❱ 31 │   │   │   │   res = func(*args, **kwargs)                                                                                                           │
│   32 │   │   │   │   progress.record_results(id_task, res)                                                                                                 │
│                                                                                                                                                            │
│ /home/supermicro/ai/automatic/modules/txt2img.py:89 in txt2img                                                                                             │
│                                                                                                                                                            │
│   88 │   if processed is None:                                                                                                                             │
│ ❱ 89 │   │   processed = processing.process_images(p)                                                                                                      │
│   90 │   p.close()                                                                                                                                         │
│                                                                                                                                                            │
│ /home/supermicro/ai/automatic/modules/processing.py:780 in process_images                                                                                  │
│                                                                                                                                                            │
│    779 │   │   │   with context_hypertile_vae(p), context_hypertile_unet(p):                                                                               │
│ ❱  780 │   │   │   │   res = process_images_inner(p)                                                                                                       │
│    781                                                                                                                                                     │
│                                                                                                                                                            │
│ /home/supermicro/ai/automatic/modules/processing.py:945 in process_images_inner                                                                            │
│                                                                                                                                                            │
│    944 │   │   │   │   from modules.processing_diffusers import process_diffusers                                                                          │
│ ❱  945 │   │   │   │   x_samples_ddim = process_diffusers(p)                                                                                               │
│    946 │   │   │   else:                                                                                                                                   │
│                                                                                                                                                            │
│ /home/supermicro/ai/automatic/modules/processing_diffusers.py:483 in process_diffusers                                                                     │
│                                                                                                                                                            │
│   482 │   │   t0 = time.time()                                                                                                                             │
│ ❱ 483 │   │   output = shared.sd_model(**base_args) # pylint: disable=not-callable                                                                         │
│   484 │   │   openvino_post_compile(op="base") # only executes on compiled vino models                                                                     │
│                                                                                                                                                            │
│                                                                  ... 10 frames hidden ...                                                                  │
│                                                                                                                                                            │
│ /home/supermicro/miniconda3/envs/automatic/lib/python3.10/site-packages/diffusers/models/transformer_2d.py:392 in forward                                  │
│                                                                                                                                                            │
│   391 │   │   │   else:                                                                                                                                    │
│ ❱ 392 │   │   │   │   hidden_states = block(                                                                                                               │
│   393 │   │   │   │   │   hidden_states,                                                                                                                   │
│                                                                                                                                                            │
│ /home/supermicro/miniconda3/envs/automatic/lib/python3.10/site-packages/torch/nn/modules/module.py:1518 in _wrapped_call_impl                              │
│                                                                                                                                                            │
│   1517 │   │   else:                                                                                                                                       │
│ ❱ 1518 │   │   │   return self._call_impl(*args, **kwargs)                                                                                                 │
│   1519                                                                                                                                                     │
│                                                                                                                                                            │
│ /home/supermicro/miniconda3/envs/automatic/lib/python3.10/site-packages/torch/nn/modules/module.py:1527 in _call_impl                                      │
│                                                                                                                                                            │
│   1526 │   │   │   │   or _global_forward_hooks or _global_forward_pre_hooks):                                                                             │
│ ❱ 1527 │   │   │   return forward_call(*args, **kwargs)                                                                                                    │
│   1528                                                                                                                                                     │
│                                                                                                                                                            │
│ /home/supermicro/miniconda3/envs/automatic/lib/python3.10/site-packages/tomesd/patch.py:95 in forward                                                      │
│                                                                                                                                                            │
│    94 │   │   │   # (1) ToMe                                                                                                                               │
│ ❱  95 │   │   │   m_a, m_c, m_m, u_a, u_c, u_m = compute_merge(hidden_states, self._tome_info)                                                             │
│    96                                                                                                                                                      │
│                                                                                                                                                            │
│ /home/supermicro/miniconda3/envs/automatic/lib/python3.10/site-packages/tomesd/patch.py:18 in compute_merge                                                │
│                                                                                                                                                            │
│    17 │   if downsample <= args["max_downsample"]:                                                                                                         │
│ ❱  18 │   │   w = int(math.ceil(original_w / downsample))                                                                                                  │
│    19 │   │   h = int(math.ceil(original_h / downsample))                                                                                                  │
╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
ZeroDivisionError: division by zero
vladmandic commented 10 months ago

also.. the second use of animatediff causes divide by zero even without xformers

error is in tomesd - don't use it - its an amazing tool, but it cannot be expected to work with everything.

I have more than one GPU, I have P40, P100, 3090 but I can't always use the 3090. Anyways, the photomaker error is gone but the error that prevents the UI from loading is still there.

you've cut the log just before it shows actual error so not much i can do also, i cannot reproduce what is the exact scenario where this occurs?

Ph0rk0z commented 10 months ago

for the first the error is

ModuleNotFoundError: No module named "ipadapter"

Its similar to the error like with photomaker.

inside ui_control.py you are doing

from scripts import ipadapter # pylint: disable=no-name-in-module

Instead of looking inside the scripts folder in automatic, it is looking in python site packages scripts. I can't even start the UI without commenting out ipadapter stuff.

For the second one, to reproduce, just generate an image set or gif with animatediff and then generate again after it's done. I will verify what version of tomesd I have and see if there is a difference.

vladmandic commented 10 months ago

i understand what i'm doing, but it works everywhere except on your system, so i'm trying to figure out why.

regarding tomesd - its not about version, its about the fact that tomesd should not be used with animatediff.

Ph0rk0z commented 10 months ago

I turned off token merging and that went away. Xformers is still broken, I think animatediff tries to use flash attention and fails.

For the second error I found out what did it. package lm-eval was installed and for some reason it takes over scripts under site packages. Python gets confused and goes to the package instead of the folder.

Thanks for the help.