[X] The issue exists after disabling all extensions
[X] The issue exists on a clean installation of webui
[ ] The issue is caused by an extension, but I believe it is caused by a bug in the webui
[X] The issue exists in the current version of the webui
[X] The issue has not been reported before recently
[ ] The issue has been reported before but has not been fixed yet
What happened?
Calling the /sdapi/v1/txt2img api end point always produces the same error :
File "C:\Users\enrique\git\stable-diffusion-webui-directml\modules\sd_hijack.py", line 317, in apply_circular
for layer in [layer for layer in self.layers if type(layer) == torch.nn.Conv2d]:
TypeError: 'NoneType' object is not iterable
Steps to reproduce the problem
1 make a POST call to /sdapi/v1/txt2img with the proper payload as follow:
API error: POST: http://127.0.0.1:7862/sdapi/v1/txt2img {'error': 'TypeError', 'detail': '', 'body': '', 'errors': "'NoneType' object is not iterable"}
Traceback (most recent call last):
File "C:\Users\me\git\stable-diffusion-webui-directml\venv\lib\site-packages\anyio\streams\memory.py", line 98, in receive
return self.receive_nowait()
File "C:\Users\me\git\stable-diffusion-webui-directml\venv\lib\site-packages\anyio\streams\memory.py", line 93, in receive_nowait
raise WouldBlock
anyio.WouldBlock
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\Users\me\git\stable-diffusion-webui-directml\venv\lib\site-packages\starlette\middleware\base.py", line 78, in call_next
message = await recv_stream.receive()
File "C:\Users\me\git\stable-diffusion-webui-directml\venv\lib\site-packages\anyio\streams\memory.py", line 118, in receive
raise EndOfStream
anyio.EndOfStream
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\Users\me\git\stable-diffusion-webui-directml\modules\api\api.py", line 186, in exception_handling
return await call_next(request)
File "C:\Users\me\git\stable-diffusion-webui-directml\venv\lib\site-packages\starlette\middleware\base.py", line 84, in call_next
raise app_exc
File "C:\Users\me\git\stable-diffusion-webui-directml\venv\lib\site-packages\starlette\middleware\base.py", line 70, in coro
await self.app(scope, receive_or_disconnect, send_no_error)
File "C:\Users\me\git\stable-diffusion-webui-directml\venv\lib\site-packages\starlette\middleware\base.py", line 108, in __call__
response = await self.dispatch_func(request, call_next)
File "C:\Users\me\git\stable-diffusion-webui-directml\modules\api\api.py", line 150, in log_and_time
res: Response = await call_next(req)
File "C:\Users\me\git\stable-diffusion-webui-directml\venv\lib\site-packages\starlette\middleware\base.py", line 84, in call_next
raise app_exc
File "C:\Users\me\git\stable-diffusion-webui-directml\venv\lib\site-packages\starlette\middleware\base.py", line 70, in coro
await self.app(scope, receive_or_disconnect, send_no_error)
File "C:\Users\me\git\stable-diffusion-webui-directml\venv\lib\site-packages\starlette\middleware\cors.py", line 84, in __call__
await self.app(scope, receive, send)
File "C:\Users\me\git\stable-diffusion-webui-directml\venv\lib\site-packages\starlette\middleware\gzip.py", line 26, in __call__
await self.app(scope, receive, send)
File "C:\Users\me\git\stable-diffusion-webui-directml\venv\lib\site-packages\starlette\middleware\exceptions.py", line 79, in __call__
raise exc
File "C:\Users\me\git\stable-diffusion-webui-directml\venv\lib\site-packages\starlette\middleware\exceptions.py", line 68, in __call__
await self.app(scope, receive, sender)
File "C:\Users\me\git\stable-diffusion-webui-directml\venv\lib\site-packages\fastapi\middleware\asyncexitstack.py", line 21, in __call__
raise e
File "C:\Users\me\git\stable-diffusion-webui-directml\venv\lib\site-packages\fastapi\middleware\asyncexitstack.py", line 18, in __call__
await self.app(scope, receive, send)
File "C:\Users\me\git\stable-diffusion-webui-directml\venv\lib\site-packages\starlette\routing.py", line 718, in __call__
await route.handle(scope, receive, send)
File "C:\Users\me\git\stable-diffusion-webui-directml\venv\lib\site-packages\starlette\routing.py", line 276, in handle
await self.app(scope, receive, send)
File "C:\Users\me\git\stable-diffusion-webui-directml\venv\lib\site-packages\starlette\routing.py", line 66, in app
response = await func(request)
File "C:\Users\me\git\stable-diffusion-webui-directml\venv\lib\site-packages\fastapi\routing.py", line 237, in app
raw_response = await run_endpoint_function(
File "C:\Users\me\git\stable-diffusion-webui-directml\venv\lib\site-packages\fastapi\routing.py", line 165, in run_endpoint_function
return await run_in_threadpool(dependant.call, **values)
File "C:\Users\me\git\stable-diffusion-webui-directml\venv\lib\site-packages\starlette\concurrency.py", line 41, in run_in_threadpool
return await anyio.to_thread.run_sync(func, *args)
File "C:\Users\me\git\stable-diffusion-webui-directml\venv\lib\site-packages\anyio\to_thread.py", line 33, in run_sync
return await get_asynclib().run_sync_in_worker_thread(
File "C:\Users\me\git\stable-diffusion-webui-directml\venv\lib\site-packages\anyio\_backends\_asyncio.py", line 877, in run_sync_in_worker_thread
return await future
File "C:\Users\me\git\stable-diffusion-webui-directml\venv\lib\site-packages\anyio\_backends\_asyncio.py", line 807, in run
result = context.run(func, *args)
File "C:\Users\me\git\stable-diffusion-webui-directml\modules\api\api.py", line 379, in text2imgapi
processed = process_images(p)
File "C:\Users\me\git\stable-diffusion-webui-directml\modules\processing.py", line 735, in process_images
res = process_images_inner(p)
File "C:\Users\me\git\stable-diffusion-webui-directml\modules\processing.py", line 780, in process_images_inner
modules.sd_hijack.model_hijack.apply_circular(p.tiling)
File "C:\Users\me\git\stable-diffusion-webui-directml\modules\sd_hijack.py", line 317, in apply_circular
for layer in [layer for layer in self.layers if type(layer) == torch.nn.Conv2d]:
TypeError: 'NoneType' object is not iterable
Checklist
What happened?
Calling the /sdapi/v1/txt2img api end point always produces the same error :
File "C:\Users\enrique\git\stable-diffusion-webui-directml\modules\sd_hijack.py", line 317, in apply_circular for layer in [layer for layer in self.layers if type(layer) == torch.nn.Conv2d]: TypeError: 'NoneType' object is not iterable
Steps to reproduce the problem
1 make a POST call to /sdapi/v1/txt2img with the proper payload as follow:
curl -X POST -v --data '{"prompt":"Nice weather","negative_prompt":"Bad weather","styles":[],"seed":-1,"subseed":-1,"subseed_strength":0,"seed_resize_from_h":-1,"seed_resize_from_w":-1,"sampler_name":"pndm","batch_size":1,"n_iter":1,"steps":50,"cfg_scale":7,"width":512,"height":512,"restore_faces":true,"tiling":true,"do_not_save_samples":false,"do_not_save_grid":false,"eta":0,"denoising_strength":0,"s_min_uncond":0,"s_churn":0,"s_tmax":0,"s_tmin":0,"s_noise":0,"override_settings":{},"override_settings_restore_afterwards":true,"refiner_checkpoint":"","refiner_switch_at":0,"disable_extra_networks":false,"comments":{},"enable_hr":false,"firstphase_width":0,"firstphase_height":0,"hr_scale":2,"hr_upscaler":"","hr_second_pass_steps":0,"hr_resize_x":0,"hr_resize_y":0,"hr_checkpoint_name":"","hr_sampler_name":"","hr_prompt":"","hr_negative_prompt":"","sampler_index":"Euler","script_name":"","script_args":[],"send_images":true,"save_images":true,"alwayson_scripts":{}}' -H "Content-type: application/json" http://127.0.0.1:7862/sdapi/v1/txt2img
2 Server responds with a 500 status code : {"error":"TypeError","detail":"","body":"","errors":"'NoneType' object is not iterable"}
What should have happened?
And image generation should have been execute and then a 200 status code should have been sent as a response with the image result.
What browsers do you use to access the UI ?
Mozilla Firefox
Sysinfo
sysinfo-2024-01-11-21-05.json
Console logs
Additional information
My GPU Drivers are up to date.