pkuliyi2015 / multidiffusion-upscaler-for-automatic1111

Tiled Diffusion and VAE optimize, licensed under CC BY-NC-SA 4.0
Other
4.73k stars 334 forks source link

AttributeError: 'MultiDiffusion' object has no attribute 'get_image_cond' #313

Open tangcan1600 opened 11 months ago

tangcan1600 commented 11 months ago

找不到函数啊 Traceback (most recent call last): File "F:\ai\stable_diffusion\stable-diffusion-webui-directml\modules\call_queue.py", line 57, in f res = list(func(*args, kwargs)) File "F:\ai\stable_diffusion\stable-diffusion-webui-directml\modules\call_queue.py", line 36, in f res = func(*args, *kwargs) File "F:\ai\stable_diffusion\stable-diffusion-webui-directml\modules\txt2img.py", line 64, in txt2img processed = processing.process_images(p) File "F:\ai\stable_diffusion\stable-diffusion-webui-directml\modules\processing.py", line 733, in process_images res = process_images_inner(p) File "F:\ai\stable_diffusion\stable-diffusion-webui-directml\extensions\sd-webui-controlnet\scripts\batch_hijack.py", line 42, in processing_process_images_hijack return getattr(processing, '__controlnet_original_process_images_inner')(p, args, kwargs) File "F:\ai\stable_diffusion\stable-diffusion-webui-directml\modules\processing.py", line 871, in process_images_inner samples_ddim = p.sample(conditioning=p.c, unconditional_conditioning=p.uc, seeds=p.seeds, subseeds=p.subseeds, subseed_strength=p.subseed_strength, prompts=p.prompts) File "F:\ai\stable_diffusion\stable-diffusion-webui-directml\modules\processing.py", line 1144, in sample samples = self.sampler.sample(self, x, conditioning, unconditional_conditioning, image_conditioning=self.txt2img_image_conditioning(x)) File "F:\ai\stable_diffusion\stable-diffusion-webui-directml\modules\sd_samplers_kdiffusion.py", line 238, in sample samples = self.launch_sampling(steps, lambda: self.func(self.model_wrap_cfg, x, extra_args=self.sampler_extra_args, disable=False, callback=self.callback_state, extra_params_kwargs)) File "F:\ai\stable_diffusion\stable-diffusion-webui-directml\modules\sd_samplers_common.py", line 261, in launch_sampling return func() File "F:\ai\stable_diffusion\stable-diffusion-webui-directml\modules\sd_samplers_kdiffusion.py", line 238, in samples = self.launch_sampling(steps, lambda: self.func(self.model_wrap_cfg, x, extra_args=self.sampler_extra_args, disable=False, callback=self.callback_state, extra_params_kwargs)) File "D:\Users\tangtang1600\Anaconda3\envs\automatic\Lib\site-packages\torch\utils_contextlib.py", line 115, in decorate_context return func(*args, kwargs) File "F:\ai\stable_diffusion\stable-diffusion-webui-directml\repositories\k-diffusion\k_diffusion\sampling.py", line 150, in sample_euler_ancestral denoised = model(x, sigmas[i] * s_in, *extra_args) File "D:\Users\tangtang1600\Anaconda3\envs\automatic\Lib\site-packages\torch\nn\modules\module.py", line 1501, in _call_impl return forward_call(args, kwargs) File "F:\ai\stable_diffusion\stable-diffusion-webui-directml\modules\sd_samplers_cfg_denoiser.py", line 169, in forward x_out = self.inner_model(x_in, sigma_in, cond=make_condition_dict(cond_in, image_cond_in)) File "D:\Users\tangtang1600\Anaconda3\envs\automatic\Lib\site-packages\torch\nn\modules\module.py", line 1501, in _call_impl return forward_call(*args, kwargs) File "D:\Users\tangtang1600\Anaconda3\envs\automatic\Lib\site-packages\torch\utils_contextlib.py", line 115, in decorate_context return func(*args, *kwargs) File "F:\ai\stable_diffusion\stable-diffusion-webui-directml\extensions\multidiffusion-upscaler-for-automatic1111\tile_utils\utils.py", line 243, in wrapper return fn(args, kwargs) File "F:\ai\stable_diffusion\stable-diffusion-webui-directml\extensions\multidiffusion-upscaler-for-automatic1111\tile_methods\multidiffusion.py", line 88, in kdiff_forward return self.sample_one_step(x_in, org_func, repeat_func, custom_func) File "F:\ai\stable_diffusion\stable-diffusion-webui-directml\extensions\multidiffusion-upscaler-for-automatic1111\tile_methods\multidiffusion.py", line 216, in sample_one_step x_tile_out = custom_func(x_tile, bbox_id, bbox) File "F:\ai\stable_diffusion\stable-diffusion-webui-directml\extensions\multidiffusion-upscaler-for-automatic1111\tile_methods\multidiffusion.py", line 86, in custom_func return self.kdiff_custom_forward(x, sigma_in, cond, bbox_id, bbox, self.sampler_forward) File "F:\ai\stable_diffusion\stable-diffusion-webui-directml\extensions\multidiffusion-upscaler-for-automatic1111\tile_utils\utils.py", line 243, in wrapper return fn(*args, *kwargs) File "F:\ai\stable_diffusion\stable-diffusion-webui-directml\extensions\multidiffusion-upscaler-for-automatic1111\tile_methods\abstractdiffusion.py", line 274, in kdiff_custom_forward tensor, uncond, image_cond_in = self.reconstruct_custom_cond(original_cond, bbox.cond, bbox.uncond, bbox) File "F:\ai\stable_diffusion\stable-diffusion-webui-directml\extensions\multidiffusion-upscaler-for-automatic1111\tile_utils\utils.py", line 243, in wrapper return fn(args, **kwargs) File "F:\ai\stable_diffusion\stable-diffusion-webui-directml\extensions\multidiffusion-upscaler-for-automatic1111\tile_methods\abstractdiffusion.py", line 241, in reconstruct_custom_cond image_cond = self.get_image_cond(org_cond) AttributeError: 'MultiDiffusion' object has no attribute 'get_image_cond'

john3935-at commented 11 months ago

I also get the same error. Traceback (most recent call last): File "/content/stable-diffusion-webui/modules/call_queue.py", line 57, in f res = list(func(*args, kwargs)) File "/content/stable-diffusion-webui/modules/call_queue.py", line 36, in f res = func(*args, *kwargs) File "/content/stable-diffusion-webui/modules/img2img.py", line 208, in img2img processed = process_images(p) File "/content/stable-diffusion-webui/modules/processing.py", line 732, in process_images res = process_images_inner(p) File "/content/stable-diffusion-webui/extensions/sd-webui-controlnet/scripts/batch_hijack.py", line 42, in processing_process_images_hijack return getattr(processing, '__controlnet_original_process_images_inner')(p, args, kwargs) File "/content/stable-diffusion-webui/modules/processing.py", line 867, in process_images_inner samples_ddim = p.sample(conditioning=p.c, unconditional_conditioning=p.uc, seeds=p.seeds, subseeds=p.subseeds, subseed_strength=p.subseed_strength, prompts=p.prompts) File "/content/stable-diffusion-webui/modules/processing.py", line 1528, in sample samples = self.sampler.sample_img2img(self, self.init_latent, x, conditioning, unconditional_conditioning, image_conditioning=self.image_conditioning) File "/content/stable-diffusion-webui/extensions/multidiffusion-upscaler-for-automatic1111/tile_utils/utils.py", line 243, in wrapper return fn(*args, kwargs) File "/content/stable-diffusion-webui/extensions/multidiffusion-upscaler-for-automatic1111/tile_utils/utils.py", line 243, in wrapper return fn(*args, *kwargs) File "/content/stable-diffusion-webui/extensions/multidiffusion-upscaler-for-automatic1111/tile_methods/abstractdiffusion.py", line 645, in sample_img2img latent = self.find_noise_for_image_sigma_adjustment(sampler.model_wrap, self.noise_inverse_steps, prompts) File "/content/stable-diffusion-webui/extensions/multidiffusion-upscaler-for-automatic1111/tile_utils/utils.py", line 243, in wrapper return fn(args, kwargs) File "/usr/local/lib/python3.10/dist-packages/torch/utils/_contextlib.py", line 115, in decorate_context return func(*args, **kwargs) File "/content/stable-diffusion-webui/extensions/multidiffusion-upscaler-for-automatic1111/tile_methods/abstractdiffusion.py", line 699, in find_noise_for_image_sigma_adjustment cond_in = self.make_condition_dict([cond], self.p.image_conditioning) AttributeError: 'MultiDiffusion' object has no attribute 'make_condition_dict'

zxwwxz001 commented 11 months ago

i2i模式启用Noise Inversion时同样报错 AttributeError: 'MultiDiffusion' object has no attribute 'make_condition_dict' 不启用Noise Inversion则正常(batch size的bug不算)

使用模型为 animeArtDiffusionXL_alpha3.safetensors [53bb4fdc63] 具体错误信息如下: Traceback (most recent call last): File "/notebooks/sdwebui/stable-diffusion-webui/modules/call_queue.py", line 57, in f res = list(func(*args, kwargs)) File "/notebooks/sdwebui/stable-diffusion-webui/modules/call_queue.py", line 36, in f res = func(*args, *kwargs) File "/notebooks/sdwebui/stable-diffusion-webui/modules/img2img.py", line 208, in img2img processed = process_images(p) File "/notebooks/sdwebui/stable-diffusion-webui/modules/processing.py", line 732, in process_images res = process_images_inner(p) File "/notebooks/sdwebui/stable-diffusion-webui/modules/processing.py", line 867, in process_images_inner samples_ddim = p.sample(conditioning=p.c, unconditional_conditioning=p.uc, seeds=p.seeds, subseeds=p.subseeds, subseed_strength=p.subseed_strength, prompts=p.prompts) File "/notebooks/sdwebui/stable-diffusion-webui/modules/processing.py", line 1528, in sample samples = self.sampler.sample_img2img(self, self.init_latent, x, conditioning, unconditional_conditioning, image_conditioning=self.image_conditioning) File "/notebooks/sdwebui/stable-diffusion-webui/extensions/multidiffusion-upscaler-for-automatic1111/tile_utils/utils.py", line 243, in wrapper return fn(args, kwargs) File "/notebooks/sdwebui/stable-diffusion-webui/extensions/multidiffusion-upscaler-for-automatic1111/tile_utils/utils.py", line 243, in wrapper return fn(*args, kwargs) File "/notebooks/sdwebui/stable-diffusion-webui/extensions/multidiffusion-upscaler-for-automatic1111/tile_methods/abstractdiffusion.py", line 645, in sample_img2img latent = self.find_noise_for_image_sigma_adjustment(sampler.model_wrap, self.noise_inverse_steps, prompts) File "/notebooks/sdwebui/stable-diffusion-webui/extensions/multidiffusion-upscaler-for-automatic1111/tile_utils/utils.py", line 243, in wrapper return fn(*args, *kwargs) File "/usr/local/lib/python3.9/dist-packages/torch/utils/_contextlib.py", line 115, in decorate_context return func(args, kwargs) File "/notebooks/sdwebui/stable-diffusion-webui/extensions/multidiffusion-upscaler-for-automatic1111/tile_methods/abstractdiffusion.py", line 699, in find_noise_for_image_sigma_adjustment cond_in = self.make_condition_dict([cond], self.p.image_conditioning) AttributeError: 'MultiDiffusion' object has no attribute 'make_condition_dict'

realjuemie commented 11 months ago

找到原因了,原因是底图不是SD直出的,应该是用PS或其他软件修改过导致没有原图数据,只需要随便用SD随便再改点东西就没有报错了