InvokeAI 4.2.6rc1__tar.gz → 4.2.7__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (420) hide show
  1. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/InvokeAI.egg-info/PKG-INFO +1 -1
  2. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/InvokeAI.egg-info/SOURCES.txt +17 -3
  3. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/InvokeAI.egg-info/requires.txt +2 -1
  4. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/PKG-INFO +1 -1
  5. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/api/routers/model_manager.py +14 -15
  6. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/invocations/denoise_latents.py +166 -7
  7. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/invocations/fields.py +2 -0
  8. InvokeAI-4.2.7/invokeai/app/invocations/spandrel_image_to_image.py +253 -0
  9. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/invocations/tiled_multi_diffusion_denoise_latents.py +6 -1
  10. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/services/model_install/model_install_base.py +9 -9
  11. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/services/model_install/model_install_common.py +5 -3
  12. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/services/model_install/model_install_default.py +32 -28
  13. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/services/model_records/model_records_base.py +7 -0
  14. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/services/workflow_records/default_workflows/ESRGAN Upscaling with Canny ControlNet.json +223 -209
  15. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/services/workflow_records/default_workflows/Face Detailer with IP-Adapter & Canny (See Note in Details).json +358 -326
  16. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/services/workflow_records/default_workflows/Multi ControlNet (Canny & Depth).json +201 -188
  17. InvokeAI-4.2.7/invokeai/app/services/workflow_records/default_workflows/MultiDiffusion SD1.5.json +1430 -0
  18. InvokeAI-4.2.7/invokeai/app/services/workflow_records/default_workflows/MultiDiffusion SDXL.json +1645 -0
  19. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/services/workflow_records/default_workflows/Prompt from File.json +119 -106
  20. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/services/workflow_records/default_workflows/Text to Image - SD1.5.json +109 -96
  21. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/services/workflow_records/default_workflows/Text to Image - SDXL.json +190 -177
  22. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/services/workflow_records/default_workflows/Text to Image with LoRA.json +90 -77
  23. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/services/workflow_records/default_workflows/Tiled Upscaling (Beta).json +327 -295
  24. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/backend/image_util/lineart_anime.py +1 -1
  25. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/backend/ip_adapter/ip_adapter.py +3 -5
  26. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/backend/lora.py +29 -65
  27. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/backend/model_manager/config.py +15 -2
  28. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/backend/model_manager/load/model_cache/model_cache_default.py +4 -5
  29. InvokeAI-4.2.7/invokeai/backend/model_manager/load/model_loaders/spandrel_image_to_image.py +45 -0
  30. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/backend/model_manager/load/model_loaders/stable_diffusion.py +3 -0
  31. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/backend/model_manager/load/model_util.py +2 -1
  32. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/backend/model_manager/probe.py +46 -10
  33. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/backend/model_manager/starter_models.py +82 -31
  34. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/backend/model_patcher.py +26 -12
  35. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/backend/onnx/onnx_runtime.py +1 -6
  36. InvokeAI-4.2.7/invokeai/backend/raw_model.py +22 -0
  37. InvokeAI-4.2.7/invokeai/backend/spandrel_image_to_image_model.py +139 -0
  38. InvokeAI-4.2.7/invokeai/backend/stable_diffusion/denoise_context.py +131 -0
  39. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/backend/stable_diffusion/diffusers_pipeline.py +1 -10
  40. InvokeAI-4.2.7/invokeai/backend/stable_diffusion/diffusion/conditioning_data.py +248 -0
  41. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/backend/stable_diffusion/diffusion/regional_prompt_data.py +8 -3
  42. InvokeAI-4.2.7/invokeai/backend/stable_diffusion/diffusion_backend.py +142 -0
  43. InvokeAI-4.2.7/invokeai/backend/stable_diffusion/extension_callback_type.py +12 -0
  44. InvokeAI-4.2.7/invokeai/backend/stable_diffusion/extensions/base.py +60 -0
  45. InvokeAI-4.2.7/invokeai/backend/stable_diffusion/extensions/controlnet.py +158 -0
  46. InvokeAI-4.2.7/invokeai/backend/stable_diffusion/extensions/freeu.py +35 -0
  47. InvokeAI-4.2.7/invokeai/backend/stable_diffusion/extensions/preview.py +63 -0
  48. InvokeAI-4.2.7/invokeai/backend/stable_diffusion/extensions/rescale_cfg.py +36 -0
  49. InvokeAI-4.2.7/invokeai/backend/stable_diffusion/extensions_manager.py +75 -0
  50. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/backend/stable_diffusion/multi_diffusion_pipeline.py +39 -15
  51. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/backend/textual_inversion.py +2 -7
  52. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/backend/util/devices.py +0 -12
  53. InvokeAI-4.2.7/invokeai/frontend/web/dist/assets/App-Ds9ZtYAt.js +137 -0
  54. InvokeAI-4.2.6rc1/invokeai/frontend/web/dist/assets/ThemeLocaleProvider-Dfzfg7Ib.js → InvokeAI-4.2.7/invokeai/frontend/web/dist/assets/ThemeLocaleProvider-Bn2q0fTt.js +1 -1
  55. InvokeAI-4.2.7/invokeai/frontend/web/dist/assets/index-DkRlfOU4.js +510 -0
  56. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/frontend/web/dist/index.html +1 -1
  57. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/frontend/web/dist/locales/ar.json +0 -6
  58. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/frontend/web/dist/locales/de.json +0 -6
  59. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/frontend/web/dist/locales/en.json +64 -6
  60. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/frontend/web/dist/locales/es.json +41 -10
  61. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/frontend/web/dist/locales/fr.json +0 -6
  62. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/frontend/web/dist/locales/he.json +0 -6
  63. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/frontend/web/dist/locales/it.json +43 -12
  64. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/frontend/web/dist/locales/ja.json +0 -6
  65. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/frontend/web/dist/locales/ko.json +0 -4
  66. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/frontend/web/dist/locales/nl.json +0 -6
  67. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/frontend/web/dist/locales/pl.json +0 -6
  68. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/frontend/web/dist/locales/pt.json +0 -6
  69. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/frontend/web/dist/locales/pt_BR.json +0 -6
  70. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/frontend/web/dist/locales/ru.json +0 -6
  71. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/frontend/web/dist/locales/sv.json +0 -4
  72. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/frontend/web/dist/locales/tr.json +0 -6
  73. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/frontend/web/dist/locales/uk.json +0 -6
  74. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/frontend/web/dist/locales/zh_CN.json +0 -6
  75. InvokeAI-4.2.7/invokeai/version/invokeai_version.py +1 -0
  76. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/pyproject.toml +2 -1
  77. InvokeAI-4.2.6rc1/invokeai/backend/raw_model.py +0 -29
  78. InvokeAI-4.2.6rc1/invokeai/backend/stable_diffusion/diffusion/conditioning_data.py +0 -123
  79. InvokeAI-4.2.6rc1/invokeai/frontend/web/dist/assets/App-DOTNSDj9.js +0 -137
  80. InvokeAI-4.2.6rc1/invokeai/frontend/web/dist/assets/index-BmvE-xpm.js +0 -510
  81. InvokeAI-4.2.6rc1/invokeai/version/invokeai_version.py +0 -1
  82. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/InvokeAI.egg-info/dependency_links.txt +0 -0
  83. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/InvokeAI.egg-info/entry_points.txt +0 -0
  84. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/InvokeAI.egg-info/top_level.txt +0 -0
  85. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/LICENSE +0 -0
  86. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/LICENSE-SD1+SD2.txt +0 -0
  87. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/LICENSE-SDXL.txt +0 -0
  88. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/README.md +0 -0
  89. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/__init__.py +0 -0
  90. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/api/dependencies.py +0 -0
  91. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/api/no_cache_staticfiles.py +0 -0
  92. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/api/routers/app_info.py +0 -0
  93. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/api/routers/board_images.py +0 -0
  94. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/api/routers/boards.py +0 -0
  95. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/api/routers/download_queue.py +0 -0
  96. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/api/routers/images.py +0 -0
  97. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/api/routers/session_queue.py +0 -0
  98. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/api/routers/utilities.py +0 -0
  99. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/api/routers/workflows.py +0 -0
  100. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/api/sockets.py +0 -0
  101. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/api_app.py +0 -0
  102. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/assets/images/caution.png +0 -0
  103. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/invocations/__init__.py +0 -0
  104. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/invocations/baseinvocation.py +0 -0
  105. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/invocations/blend_latents.py +0 -0
  106. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/invocations/collections.py +0 -0
  107. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/invocations/compel.py +0 -0
  108. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/invocations/constants.py +0 -0
  109. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/invocations/controlnet_image_processors.py +0 -0
  110. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/invocations/create_denoise_mask.py +0 -0
  111. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/invocations/create_gradient_mask.py +0 -0
  112. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/invocations/crop_latents.py +0 -0
  113. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/invocations/custom_nodes/README.md +0 -0
  114. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/invocations/custom_nodes/init.py +0 -0
  115. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/invocations/cv.py +0 -0
  116. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/invocations/facetools.py +0 -0
  117. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/invocations/ideal_size.py +0 -0
  118. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/invocations/image.py +0 -0
  119. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/invocations/image_to_latents.py +0 -0
  120. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/invocations/infill.py +0 -0
  121. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/invocations/ip_adapter.py +0 -0
  122. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/invocations/latents_to_image.py +0 -0
  123. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/invocations/mask.py +0 -0
  124. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/invocations/math.py +0 -0
  125. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/invocations/metadata.py +0 -0
  126. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/invocations/model.py +0 -0
  127. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/invocations/noise.py +0 -0
  128. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/invocations/param_easing.py +0 -0
  129. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/invocations/primitives.py +0 -0
  130. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/invocations/prompt.py +0 -0
  131. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/invocations/resize_latents.py +0 -0
  132. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/invocations/scheduler.py +0 -0
  133. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/invocations/sdxl.py +0 -0
  134. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/invocations/strings.py +0 -0
  135. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/invocations/t2i_adapter.py +0 -0
  136. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/invocations/tiles.py +0 -0
  137. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/invocations/upscale.py +0 -0
  138. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/invocations/util.py +0 -0
  139. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/run_app.py +0 -0
  140. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/services/__init__.py +0 -0
  141. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/services/board_image_records/__init__.py +0 -0
  142. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/services/board_image_records/board_image_records_base.py +0 -0
  143. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/services/board_image_records/board_image_records_sqlite.py +0 -0
  144. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/services/board_images/__init__.py +0 -0
  145. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/services/board_images/board_images_base.py +0 -0
  146. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/services/board_images/board_images_common.py +0 -0
  147. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/services/board_images/board_images_default.py +0 -0
  148. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/services/board_records/board_records_base.py +0 -0
  149. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/services/board_records/board_records_common.py +0 -0
  150. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/services/board_records/board_records_sqlite.py +0 -0
  151. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/services/boards/__init__.py +0 -0
  152. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/services/boards/boards_base.py +0 -0
  153. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/services/boards/boards_common.py +0 -0
  154. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/services/boards/boards_default.py +0 -0
  155. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/services/bulk_download/__init__.py +0 -0
  156. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/services/bulk_download/bulk_download_base.py +0 -0
  157. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/services/bulk_download/bulk_download_common.py +0 -0
  158. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/services/bulk_download/bulk_download_default.py +0 -0
  159. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/services/config/__init__.py +0 -0
  160. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/services/config/config_common.py +0 -0
  161. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/services/config/config_default.py +0 -0
  162. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/services/download/__init__.py +0 -0
  163. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/services/download/download_base.py +0 -0
  164. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/services/download/download_default.py +0 -0
  165. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/services/events/__init__.py +0 -0
  166. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/services/events/events_base.py +0 -0
  167. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/services/events/events_common.py +0 -0
  168. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/services/events/events_fastapievents.py +0 -0
  169. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/services/image_files/__init__.py +0 -0
  170. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/services/image_files/image_files_base.py +0 -0
  171. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/services/image_files/image_files_common.py +0 -0
  172. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/services/image_files/image_files_disk.py +0 -0
  173. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/services/image_records/__init__.py +0 -0
  174. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/services/image_records/image_records_base.py +0 -0
  175. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/services/image_records/image_records_common.py +0 -0
  176. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/services/image_records/image_records_sqlite.py +0 -0
  177. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/services/images/__init__.py +0 -0
  178. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/services/images/images_base.py +0 -0
  179. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/services/images/images_common.py +0 -0
  180. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/services/images/images_default.py +0 -0
  181. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/services/invocation_cache/__init__.py +0 -0
  182. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/services/invocation_cache/invocation_cache_base.py +0 -0
  183. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/services/invocation_cache/invocation_cache_common.py +0 -0
  184. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/services/invocation_cache/invocation_cache_memory.py +0 -0
  185. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/services/invocation_services.py +0 -0
  186. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/services/invocation_stats/__init__.py +0 -0
  187. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/services/invocation_stats/invocation_stats_base.py +0 -0
  188. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/services/invocation_stats/invocation_stats_common.py +0 -0
  189. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/services/invocation_stats/invocation_stats_default.py +0 -0
  190. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/services/invoker.py +0 -0
  191. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/services/item_storage/__init__.py +0 -0
  192. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/services/item_storage/item_storage_base.py +0 -0
  193. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/services/item_storage/item_storage_common.py +0 -0
  194. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/services/item_storage/item_storage_memory.py +0 -0
  195. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/services/model_images/model_images_base.py +0 -0
  196. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/services/model_images/model_images_common.py +0 -0
  197. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/services/model_images/model_images_default.py +0 -0
  198. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/services/model_install/__init__.py +0 -0
  199. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/services/model_load/__init__.py +0 -0
  200. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/services/model_load/model_load_base.py +0 -0
  201. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/services/model_load/model_load_default.py +0 -0
  202. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/services/model_manager/__init__.py +0 -0
  203. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/services/model_manager/model_manager_base.py +0 -0
  204. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/services/model_manager/model_manager_common.py +0 -0
  205. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/services/model_manager/model_manager_default.py +0 -0
  206. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/services/model_records/__init__.py +0 -0
  207. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/services/model_records/model_records_sql.py +0 -0
  208. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/services/names/__init__.py +0 -0
  209. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/services/names/names_base.py +0 -0
  210. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/services/names/names_common.py +0 -0
  211. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/services/names/names_default.py +0 -0
  212. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/services/object_serializer/object_serializer_base.py +0 -0
  213. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/services/object_serializer/object_serializer_common.py +0 -0
  214. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/services/object_serializer/object_serializer_disk.py +0 -0
  215. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/services/object_serializer/object_serializer_forward_cache.py +0 -0
  216. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/services/session_processor/__init__.py +0 -0
  217. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/services/session_processor/session_processor_base.py +0 -0
  218. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/services/session_processor/session_processor_common.py +0 -0
  219. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/services/session_processor/session_processor_default.py +0 -0
  220. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/services/session_queue/__init__.py +0 -0
  221. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/services/session_queue/session_queue_base.py +0 -0
  222. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/services/session_queue/session_queue_common.py +0 -0
  223. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/services/session_queue/session_queue_sqlite.py +0 -0
  224. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/services/shared/__init__.py +0 -0
  225. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/services/shared/graph.py +0 -0
  226. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/services/shared/invocation_context.py +0 -0
  227. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/services/shared/pagination.py +0 -0
  228. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/services/shared/sqlite/__init__.py +0 -0
  229. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/services/shared/sqlite/sqlite_common.py +0 -0
  230. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/services/shared/sqlite/sqlite_database.py +0 -0
  231. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/services/shared/sqlite/sqlite_util.py +0 -0
  232. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/services/shared/sqlite_migrator/__init__.py +0 -0
  233. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/services/shared/sqlite_migrator/migrations/__init__.py +0 -0
  234. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/services/shared/sqlite_migrator/migrations/migration_1.py +0 -0
  235. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/services/shared/sqlite_migrator/migrations/migration_10.py +0 -0
  236. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/services/shared/sqlite_migrator/migrations/migration_11.py +0 -0
  237. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/services/shared/sqlite_migrator/migrations/migration_12.py +0 -0
  238. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/services/shared/sqlite_migrator/migrations/migration_13.py +0 -0
  239. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/services/shared/sqlite_migrator/migrations/migration_2.py +0 -0
  240. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/services/shared/sqlite_migrator/migrations/migration_3.py +0 -0
  241. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/services/shared/sqlite_migrator/migrations/migration_4.py +0 -0
  242. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/services/shared/sqlite_migrator/migrations/migration_5.py +0 -0
  243. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/services/shared/sqlite_migrator/migrations/migration_6.py +0 -0
  244. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/services/shared/sqlite_migrator/migrations/migration_7.py +0 -0
  245. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/services/shared/sqlite_migrator/migrations/migration_8.py +0 -0
  246. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/services/shared/sqlite_migrator/migrations/migration_9.py +0 -0
  247. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/services/shared/sqlite_migrator/sqlite_migrator_common.py +0 -0
  248. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/services/shared/sqlite_migrator/sqlite_migrator_impl.py +0 -0
  249. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/services/urls/__init__.py +0 -0
  250. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/services/urls/urls_base.py +0 -0
  251. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/services/urls/urls_default.py +0 -0
  252. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/services/workflow_records/__init__.py +0 -0
  253. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/services/workflow_records/workflow_records_base.py +0 -0
  254. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/services/workflow_records/workflow_records_common.py +0 -0
  255. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/services/workflow_records/workflow_records_sqlite.py +0 -0
  256. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/shared/__init__.py +0 -0
  257. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/shared/models.py +0 -0
  258. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/util/__init__.py +0 -0
  259. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/util/controlnet_utils.py +0 -0
  260. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/util/custom_openapi.py +0 -0
  261. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/util/metaenum.py +0 -0
  262. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/util/misc.py +0 -0
  263. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/util/model_exclude_null.py +0 -0
  264. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/util/profiler.py +0 -0
  265. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/util/step_callback.py +0 -0
  266. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/util/suppress_output.py +0 -0
  267. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/util/thumbnails.py +0 -0
  268. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/app/util/ti_utils.py +0 -0
  269. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/assets/fonts/inter/Inter-Regular.ttf +0 -0
  270. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/backend/__init__.py +0 -0
  271. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/backend/image_util/__init__.py +0 -0
  272. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/backend/image_util/basicsr/__init__.py +0 -0
  273. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/backend/image_util/basicsr/arch_util.py +0 -0
  274. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/backend/image_util/basicsr/rrdbnet_arch.py +0 -0
  275. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/backend/image_util/canny.py +0 -0
  276. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/backend/image_util/depth_anything/__init__.py +0 -0
  277. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/backend/image_util/depth_anything/model/blocks.py +0 -0
  278. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/backend/image_util/depth_anything/model/dpt.py +0 -0
  279. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/backend/image_util/depth_anything/utilities/util.py +0 -0
  280. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/backend/image_util/dw_openpose/__init__.py +0 -0
  281. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/backend/image_util/dw_openpose/onnxdet.py +0 -0
  282. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/backend/image_util/dw_openpose/onnxpose.py +0 -0
  283. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/backend/image_util/dw_openpose/utils.py +0 -0
  284. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/backend/image_util/dw_openpose/wholebody.py +0 -0
  285. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/backend/image_util/hed.py +0 -0
  286. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/backend/image_util/infill_methods/cv2_inpaint.py +0 -0
  287. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/backend/image_util/infill_methods/lama.py +0 -0
  288. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/backend/image_util/infill_methods/mosaic.py +0 -0
  289. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/backend/image_util/infill_methods/patchmatch.py +0 -0
  290. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/backend/image_util/infill_methods/tile.py +0 -0
  291. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/backend/image_util/invisible_watermark.py +0 -0
  292. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/backend/image_util/lineart.py +0 -0
  293. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/backend/image_util/pngwriter.py +0 -0
  294. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/backend/image_util/realesrgan/__init__.py +0 -0
  295. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/backend/image_util/realesrgan/realesrgan.py +0 -0
  296. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/backend/image_util/safety_checker.py +0 -0
  297. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/backend/image_util/util.py +0 -0
  298. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/backend/ip_adapter/__init__.py +0 -0
  299. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/backend/ip_adapter/ip_attention_weights.py +0 -0
  300. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/backend/ip_adapter/resampler.py +0 -0
  301. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/backend/model_hash/hash_validator.py +0 -0
  302. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/backend/model_hash/model_hash.py +0 -0
  303. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/backend/model_manager/__init__.py +0 -0
  304. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/backend/model_manager/load/__init__.py +0 -0
  305. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/backend/model_manager/load/load_base.py +0 -0
  306. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/backend/model_manager/load/load_default.py +0 -0
  307. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/backend/model_manager/load/memory_snapshot.py +0 -0
  308. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/backend/model_manager/load/model_cache/__init__.py +0 -0
  309. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/backend/model_manager/load/model_cache/model_cache_base.py +0 -0
  310. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/backend/model_manager/load/model_cache/model_locker.py +0 -0
  311. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/backend/model_manager/load/model_loader_registry.py +0 -0
  312. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/backend/model_manager/load/model_loaders/__init__.py +0 -0
  313. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/backend/model_manager/load/model_loaders/controlnet.py +0 -0
  314. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/backend/model_manager/load/model_loaders/generic_diffusers.py +0 -0
  315. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/backend/model_manager/load/model_loaders/ip_adapter.py +0 -0
  316. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/backend/model_manager/load/model_loaders/lora.py +0 -0
  317. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/backend/model_manager/load/model_loaders/onnx.py +0 -0
  318. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/backend/model_manager/load/model_loaders/textual_inversion.py +0 -0
  319. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/backend/model_manager/load/model_loaders/vae.py +0 -0
  320. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/backend/model_manager/load/optimizations.py +0 -0
  321. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/backend/model_manager/merge.py +0 -0
  322. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/backend/model_manager/metadata/__init__.py +0 -0
  323. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/backend/model_manager/metadata/fetch/__init__.py +0 -0
  324. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/backend/model_manager/metadata/fetch/fetch_base.py +0 -0
  325. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/backend/model_manager/metadata/fetch/huggingface.py +0 -0
  326. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/backend/model_manager/metadata/metadata_base.py +0 -0
  327. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/backend/model_manager/search.py +0 -0
  328. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/backend/model_manager/util/libc_util.py +0 -0
  329. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/backend/model_manager/util/model_util.py +0 -0
  330. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/backend/model_manager/util/select_hf_files.py +0 -0
  331. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/backend/stable_diffusion/__init__.py +0 -0
  332. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/backend/stable_diffusion/diffusion/__init__.py +0 -0
  333. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/backend/stable_diffusion/diffusion/custom_atttention.py +0 -0
  334. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/backend/stable_diffusion/diffusion/regional_ip_data.py +0 -0
  335. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/backend/stable_diffusion/diffusion/shared_invokeai_diffusion.py +0 -0
  336. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/backend/stable_diffusion/diffusion/unet_attention_patcher.py +0 -0
  337. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/backend/stable_diffusion/schedulers/__init__.py +0 -0
  338. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/backend/stable_diffusion/schedulers/schedulers.py +0 -0
  339. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/backend/stable_diffusion/seamless.py +0 -0
  340. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/backend/stable_diffusion/vae_tiling.py +0 -0
  341. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/backend/tiles/__init__.py +0 -0
  342. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/backend/tiles/tiles.py +0 -0
  343. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/backend/tiles/utils.py +0 -0
  344. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/backend/util/__init__.py +0 -0
  345. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/backend/util/attention.py +0 -0
  346. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/backend/util/catch_sigint.py +0 -0
  347. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/backend/util/db_maintenance.py +0 -0
  348. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/backend/util/hotfixes.py +0 -0
  349. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/backend/util/logging.py +0 -0
  350. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/backend/util/mask.py +0 -0
  351. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/backend/util/mps_fixes.py +0 -0
  352. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/backend/util/silence_warnings.py +0 -0
  353. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/backend/util/test_utils.py +0 -0
  354. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/backend/util/util.py +0 -0
  355. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/configs/controlnet/cldm_v15.yaml +0 -0
  356. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/configs/controlnet/cldm_v21.yaml +0 -0
  357. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/configs/stable-diffusion/sd_xl_base.yaml +0 -0
  358. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/configs/stable-diffusion/sd_xl_inpaint.yaml +0 -0
  359. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/configs/stable-diffusion/sd_xl_refiner.yaml +0 -0
  360. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/configs/stable-diffusion/v1-finetune.yaml +0 -0
  361. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/configs/stable-diffusion/v1-finetune_style.yaml +0 -0
  362. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/configs/stable-diffusion/v1-inference-v.yaml +0 -0
  363. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/configs/stable-diffusion/v1-inference.yaml +0 -0
  364. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/configs/stable-diffusion/v1-inpainting-inference.yaml +0 -0
  365. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/configs/stable-diffusion/v1-m1-finetune.yaml +0 -0
  366. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/configs/stable-diffusion/v2-inference-v.yaml +0 -0
  367. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/configs/stable-diffusion/v2-inference.yaml +0 -0
  368. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/configs/stable-diffusion/v2-inpainting-inference-v.yaml +0 -0
  369. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/configs/stable-diffusion/v2-inpainting-inference.yaml +0 -0
  370. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/configs/stable-diffusion/v2-midas-inference.yaml +0 -0
  371. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/frontend/__init__.py +0 -0
  372. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/frontend/cli/__init__.py +0 -0
  373. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/frontend/cli/arg_parser.py +0 -0
  374. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/frontend/install/__init__.py +0 -0
  375. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/frontend/install/import_images.py +0 -0
  376. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/frontend/web/__init__.py +0 -0
  377. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/frontend/web/dist/assets/App-DEu4J2pT.css +0 -0
  378. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/frontend/web/dist/assets/ThemeLocaleProvider-DzjsLZSc.css +0 -0
  379. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/frontend/web/dist/assets/images/invoke-alert-favicon.svg +0 -0
  380. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/frontend/web/dist/assets/images/invoke-avatar-circle.svg +0 -0
  381. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/frontend/web/dist/assets/images/invoke-avatar-square.svg +0 -0
  382. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/frontend/web/dist/assets/images/invoke-favicon.png +0 -0
  383. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/frontend/web/dist/assets/images/invoke-favicon.svg +0 -0
  384. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/frontend/web/dist/assets/images/invoke-key-char-lrg.svg +0 -0
  385. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/frontend/web/dist/assets/images/invoke-key-char-sml.svg +0 -0
  386. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/frontend/web/dist/assets/images/invoke-key-wht-lrg.svg +0 -0
  387. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/frontend/web/dist/assets/images/invoke-key-wht-sml.svg +0 -0
  388. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/frontend/web/dist/assets/images/invoke-symbol-char-lrg.svg +0 -0
  389. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/frontend/web/dist/assets/images/invoke-symbol-char-sml.svg +0 -0
  390. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/frontend/web/dist/assets/images/invoke-symbol-wht-lrg.svg +0 -0
  391. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/frontend/web/dist/assets/images/invoke-symbol-wht-sml.svg +0 -0
  392. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/frontend/web/dist/assets/images/invoke-symbol-ylw-lrg.svg +0 -0
  393. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/frontend/web/dist/assets/images/invoke-tag-char-lrg.svg +0 -0
  394. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/frontend/web/dist/assets/images/invoke-tag-char-sml.svg +0 -0
  395. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/frontend/web/dist/assets/images/invoke-tag-lrg.svg +0 -0
  396. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/frontend/web/dist/assets/images/invoke-tag-sml.svg +0 -0
  397. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/frontend/web/dist/assets/images/invoke-wordmark-charcoal.svg +0 -0
  398. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/frontend/web/dist/assets/images/invoke-wordmark-white.svg +0 -0
  399. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/frontend/web/dist/assets/images/mask.svg +0 -0
  400. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/frontend/web/dist/assets/images/transparent_bg.png +0 -0
  401. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/frontend/web/dist/assets/inter-cyrillic-ext-wght-normal-DIEz8p5i.woff2 +0 -0
  402. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/frontend/web/dist/assets/inter-cyrillic-wght-normal-BmJJXa8e.woff2 +0 -0
  403. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/frontend/web/dist/assets/inter-greek-ext-wght-normal-D5AYLNiq.woff2 +0 -0
  404. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/frontend/web/dist/assets/inter-greek-wght-normal-DyIDNIyN.woff2 +0 -0
  405. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/frontend/web/dist/assets/inter-latin-ext-wght-normal-CN1pIXkb.woff2 +0 -0
  406. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/frontend/web/dist/assets/inter-latin-wght-normal-BgVq2Tq4.woff2 +0 -0
  407. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/frontend/web/dist/assets/inter-vietnamese-wght-normal-_GQuwPVU.woff2 +0 -0
  408. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/frontend/web/dist/locales/az.json +0 -0
  409. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/frontend/web/dist/locales/bg.json +0 -0
  410. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/frontend/web/dist/locales/fi.json +0 -0
  411. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/frontend/web/dist/locales/hu.json +0 -0
  412. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/frontend/web/dist/locales/mn.json +0 -0
  413. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/frontend/web/dist/locales/ro.json +0 -0
  414. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/frontend/web/dist/locales/vi.json +0 -0
  415. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/frontend/web/dist/locales/zh_Hant.json +0 -0
  416. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/frontend/web/scripts/clean_translations.py +0 -0
  417. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/frontend/web/static/docs/invoke-favicon-docs.svg +0 -0
  418. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/invocation_api/__init__.py +0 -0
  419. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/invokeai/version/__init__.py +0 -0
  420. {InvokeAI-4.2.6rc1 → InvokeAI-4.2.7}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: InvokeAI
3
- Version: 4.2.6rc1
3
+ Version: 4.2.7
4
4
  Summary: An implementation of Stable Diffusion which provides various new features and options to aid the image generation process
5
5
  Author-email: The InvokeAI Project <lincoln.stein@gmail.com>
6
6
  License: Apache License
@@ -56,6 +56,7 @@ invokeai/app/invocations/prompt.py
56
56
  invokeai/app/invocations/resize_latents.py
57
57
  invokeai/app/invocations/scheduler.py
58
58
  invokeai/app/invocations/sdxl.py
59
+ invokeai/app/invocations/spandrel_image_to_image.py
59
60
  invokeai/app/invocations/strings.py
60
61
  invokeai/app/invocations/t2i_adapter.py
61
62
  invokeai/app/invocations/tiled_multi_diffusion_denoise_latents.py
@@ -187,6 +188,8 @@ invokeai/app/services/workflow_records/workflow_records_sqlite.py
187
188
  invokeai/app/services/workflow_records/default_workflows/ESRGAN Upscaling with Canny ControlNet.json
188
189
  invokeai/app/services/workflow_records/default_workflows/Face Detailer with IP-Adapter & Canny (See Note in Details).json
189
190
  invokeai/app/services/workflow_records/default_workflows/Multi ControlNet (Canny & Depth).json
191
+ invokeai/app/services/workflow_records/default_workflows/MultiDiffusion SD1.5.json
192
+ invokeai/app/services/workflow_records/default_workflows/MultiDiffusion SDXL.json
190
193
  invokeai/app/services/workflow_records/default_workflows/Prompt from File.json
191
194
  invokeai/app/services/workflow_records/default_workflows/Text to Image - SD1.5.json
192
195
  invokeai/app/services/workflow_records/default_workflows/Text to Image - SDXL.json
@@ -210,6 +213,7 @@ invokeai/backend/__init__.py
210
213
  invokeai/backend/lora.py
211
214
  invokeai/backend/model_patcher.py
212
215
  invokeai/backend/raw_model.py
216
+ invokeai/backend/spandrel_image_to_image_model.py
213
217
  invokeai/backend/textual_inversion.py
214
218
  invokeai/backend/image_util/__init__.py
215
219
  invokeai/backend/image_util/canny.py
@@ -268,6 +272,7 @@ invokeai/backend/model_manager/load/model_loaders/generic_diffusers.py
268
272
  invokeai/backend/model_manager/load/model_loaders/ip_adapter.py
269
273
  invokeai/backend/model_manager/load/model_loaders/lora.py
270
274
  invokeai/backend/model_manager/load/model_loaders/onnx.py
275
+ invokeai/backend/model_manager/load/model_loaders/spandrel_image_to_image.py
271
276
  invokeai/backend/model_manager/load/model_loaders/stable_diffusion.py
272
277
  invokeai/backend/model_manager/load/model_loaders/textual_inversion.py
273
278
  invokeai/backend/model_manager/load/model_loaders/vae.py
@@ -281,7 +286,11 @@ invokeai/backend/model_manager/util/model_util.py
281
286
  invokeai/backend/model_manager/util/select_hf_files.py
282
287
  invokeai/backend/onnx/onnx_runtime.py
283
288
  invokeai/backend/stable_diffusion/__init__.py
289
+ invokeai/backend/stable_diffusion/denoise_context.py
284
290
  invokeai/backend/stable_diffusion/diffusers_pipeline.py
291
+ invokeai/backend/stable_diffusion/diffusion_backend.py
292
+ invokeai/backend/stable_diffusion/extension_callback_type.py
293
+ invokeai/backend/stable_diffusion/extensions_manager.py
285
294
  invokeai/backend/stable_diffusion/multi_diffusion_pipeline.py
286
295
  invokeai/backend/stable_diffusion/seamless.py
287
296
  invokeai/backend/stable_diffusion/vae_tiling.py
@@ -292,6 +301,11 @@ invokeai/backend/stable_diffusion/diffusion/regional_ip_data.py
292
301
  invokeai/backend/stable_diffusion/diffusion/regional_prompt_data.py
293
302
  invokeai/backend/stable_diffusion/diffusion/shared_invokeai_diffusion.py
294
303
  invokeai/backend/stable_diffusion/diffusion/unet_attention_patcher.py
304
+ invokeai/backend/stable_diffusion/extensions/base.py
305
+ invokeai/backend/stable_diffusion/extensions/controlnet.py
306
+ invokeai/backend/stable_diffusion/extensions/freeu.py
307
+ invokeai/backend/stable_diffusion/extensions/preview.py
308
+ invokeai/backend/stable_diffusion/extensions/rescale_cfg.py
295
309
  invokeai/backend/stable_diffusion/schedulers/__init__.py
296
310
  invokeai/backend/stable_diffusion/schedulers/schedulers.py
297
311
  invokeai/backend/tiles/__init__.py
@@ -333,10 +347,10 @@ invokeai/frontend/install/import_images.py
333
347
  invokeai/frontend/web/__init__.py
334
348
  invokeai/frontend/web/dist/index.html
335
349
  invokeai/frontend/web/dist/assets/App-DEu4J2pT.css
336
- invokeai/frontend/web/dist/assets/App-DOTNSDj9.js
337
- invokeai/frontend/web/dist/assets/ThemeLocaleProvider-Dfzfg7Ib.js
350
+ invokeai/frontend/web/dist/assets/App-Ds9ZtYAt.js
351
+ invokeai/frontend/web/dist/assets/ThemeLocaleProvider-Bn2q0fTt.js
338
352
  invokeai/frontend/web/dist/assets/ThemeLocaleProvider-DzjsLZSc.css
339
- invokeai/frontend/web/dist/assets/index-BmvE-xpm.js
353
+ invokeai/frontend/web/dist/assets/index-DkRlfOU4.js
340
354
  invokeai/frontend/web/dist/assets/inter-cyrillic-ext-wght-normal-DIEz8p5i.woff2
341
355
  invokeai/frontend/web/dist/assets/inter-cyrillic-wght-normal-BmJJXa8e.woff2
342
356
  invokeai/frontend/web/dist/assets/inter-greek-ext-wght-normal-D5AYLNiq.woff2
@@ -11,13 +11,14 @@ onnxruntime==1.16.3
11
11
  opencv-python==4.9.0.80
12
12
  pytorch-lightning==2.1.3
13
13
  safetensors==0.4.3
14
+ spandrel==0.3.4
14
15
  timm==0.6.13
15
16
  torch==2.2.2
16
17
  torchmetrics==0.11.4
17
18
  torchsde==0.2.6
18
19
  torchvision==0.17.2
19
20
  transformers==4.41.1
20
- fastapi-events==0.11.0
21
+ fastapi-events==0.11.1
21
22
  fastapi==0.111.0
22
23
  huggingface-hub==0.23.1
23
24
  pydantic-settings==2.2.1
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: InvokeAI
3
- Version: 4.2.6rc1
3
+ Version: 4.2.7
4
4
  Summary: An implementation of Stable Diffusion which provides various new features and options to aid the image generation process
5
5
  Author-email: The InvokeAI Project <lincoln.stein@gmail.com>
6
6
  License: Apache License
@@ -6,7 +6,7 @@ import pathlib
6
6
  import traceback
7
7
  from copy import deepcopy
8
8
  from tempfile import TemporaryDirectory
9
- from typing import Any, Dict, List, Optional, Type
9
+ from typing import List, Optional, Type
10
10
 
11
11
  from fastapi import Body, Path, Query, Response, UploadFile
12
12
  from fastapi.responses import FileResponse, HTMLResponse
@@ -430,13 +430,11 @@ async def delete_model_image(
430
430
  async def install_model(
431
431
  source: str = Query(description="Model source to install, can be a local path, repo_id, or remote URL"),
432
432
  inplace: Optional[bool] = Query(description="Whether or not to install a local model in place", default=False),
433
- # TODO(MM2): Can we type this?
434
- config: Optional[Dict[str, Any]] = Body(
435
- description="Dict of fields that override auto-probed values in the model config record, such as name, description and prediction_type ",
436
- default=None,
433
+ access_token: Optional[str] = Query(description="access token for the remote resource", default=None),
434
+ config: ModelRecordChanges = Body(
435
+ description="Object containing fields that override auto-probed values in the model config record, such as name, description and prediction_type ",
437
436
  example={"name": "string", "description": "string"},
438
437
  ),
439
- access_token: Optional[str] = None,
440
438
  ) -> ModelInstallJob:
441
439
  """Install a model using a string identifier.
442
440
 
@@ -451,8 +449,9 @@ async def install_model(
451
449
  - model/name:fp16:path/to/model.safetensors
452
450
  - model/name::path/to/model.safetensors
453
451
 
454
- `config` is an optional dict containing model configuration values that will override
455
- the ones that are probed automatically.
452
+ `config` is a ModelRecordChanges object. Fields in this object will override
453
+ the ones that are probed automatically. Pass an empty object to accept
454
+ all the defaults.
456
455
 
457
456
  `access_token` is an optional access token for use with Urls that require
458
457
  authentication.
@@ -737,7 +736,7 @@ async def convert_model(
737
736
  # write the converted file to the convert path
738
737
  raw_model = converted_model.model
739
738
  assert hasattr(raw_model, "save_pretrained")
740
- raw_model.save_pretrained(convert_path)
739
+ raw_model.save_pretrained(convert_path) # type: ignore
741
740
  assert convert_path.exists()
742
741
 
743
742
  # temporarily rename the original safetensors file so that there is no naming conflict
@@ -750,12 +749,12 @@ async def convert_model(
750
749
  try:
751
750
  new_key = installer.install_path(
752
751
  convert_path,
753
- config={
754
- "name": original_name,
755
- "description": model_config.description,
756
- "hash": model_config.hash,
757
- "source": model_config.source,
758
- },
752
+ config=ModelRecordChanges(
753
+ name=original_name,
754
+ description=model_config.description,
755
+ hash=model_config.hash,
756
+ source=model_config.source,
757
+ ),
759
758
  )
760
759
  except Exception as e:
761
760
  logger.error(str(e))
@@ -1,5 +1,6 @@
1
1
  # Copyright (c) 2023 Kyle Schouviller (https://github.com/kyle0654)
2
2
  import inspect
3
+ import os
3
4
  from contextlib import ExitStack
4
5
  from typing import Any, Dict, Iterator, List, Optional, Tuple, Union
5
6
 
@@ -39,6 +40,7 @@ from invokeai.backend.lora import LoRAModelRaw
39
40
  from invokeai.backend.model_manager import BaseModelType
40
41
  from invokeai.backend.model_patcher import ModelPatcher
41
42
  from invokeai.backend.stable_diffusion import PipelineIntermediateState, set_seamless
43
+ from invokeai.backend.stable_diffusion.denoise_context import DenoiseContext, DenoiseInputs
42
44
  from invokeai.backend.stable_diffusion.diffusers_pipeline import (
43
45
  ControlNetData,
44
46
  StableDiffusionGeneratorPipeline,
@@ -53,6 +55,14 @@ from invokeai.backend.stable_diffusion.diffusion.conditioning_data import (
53
55
  TextConditioningData,
54
56
  TextConditioningRegions,
55
57
  )
58
+ from invokeai.backend.stable_diffusion.diffusion.custom_atttention import CustomAttnProcessor2_0
59
+ from invokeai.backend.stable_diffusion.diffusion_backend import StableDiffusionBackend
60
+ from invokeai.backend.stable_diffusion.extension_callback_type import ExtensionCallbackType
61
+ from invokeai.backend.stable_diffusion.extensions.controlnet import ControlNetExt
62
+ from invokeai.backend.stable_diffusion.extensions.freeu import FreeUExt
63
+ from invokeai.backend.stable_diffusion.extensions.preview import PreviewExt
64
+ from invokeai.backend.stable_diffusion.extensions.rescale_cfg import RescaleCFGExt
65
+ from invokeai.backend.stable_diffusion.extensions_manager import ExtensionsManager
56
66
  from invokeai.backend.stable_diffusion.schedulers import SCHEDULER_MAP
57
67
  from invokeai.backend.stable_diffusion.schedulers.schedulers import SCHEDULER_NAME_VALUES
58
68
  from invokeai.backend.util.devices import TorchDevice
@@ -314,9 +324,10 @@ class DenoiseLatentsInvocation(BaseInvocation):
314
324
  context: InvocationContext,
315
325
  positive_conditioning_field: Union[ConditioningField, list[ConditioningField]],
316
326
  negative_conditioning_field: Union[ConditioningField, list[ConditioningField]],
317
- unet: UNet2DConditionModel,
318
327
  latent_height: int,
319
328
  latent_width: int,
329
+ device: torch.device,
330
+ dtype: torch.dtype,
320
331
  cfg_scale: float | list[float],
321
332
  steps: int,
322
333
  cfg_rescale_multiplier: float,
@@ -330,10 +341,10 @@ class DenoiseLatentsInvocation(BaseInvocation):
330
341
  uncond_list = [uncond_list]
331
342
 
332
343
  cond_text_embeddings, cond_text_embedding_masks = DenoiseLatentsInvocation._get_text_embeddings_and_masks(
333
- cond_list, context, unet.device, unet.dtype
344
+ cond_list, context, device, dtype
334
345
  )
335
346
  uncond_text_embeddings, uncond_text_embedding_masks = DenoiseLatentsInvocation._get_text_embeddings_and_masks(
336
- uncond_list, context, unet.device, unet.dtype
347
+ uncond_list, context, device, dtype
337
348
  )
338
349
 
339
350
  cond_text_embedding, cond_regions = DenoiseLatentsInvocation._concat_regional_text_embeddings(
@@ -341,14 +352,14 @@ class DenoiseLatentsInvocation(BaseInvocation):
341
352
  masks=cond_text_embedding_masks,
342
353
  latent_height=latent_height,
343
354
  latent_width=latent_width,
344
- dtype=unet.dtype,
355
+ dtype=dtype,
345
356
  )
346
357
  uncond_text_embedding, uncond_regions = DenoiseLatentsInvocation._concat_regional_text_embeddings(
347
358
  text_conditionings=uncond_text_embeddings,
348
359
  masks=uncond_text_embedding_masks,
349
360
  latent_height=latent_height,
350
361
  latent_width=latent_width,
351
- dtype=unet.dtype,
362
+ dtype=dtype,
352
363
  )
353
364
 
354
365
  if isinstance(cfg_scale, list):
@@ -455,6 +466,38 @@ class DenoiseLatentsInvocation(BaseInvocation):
455
466
 
456
467
  return controlnet_data
457
468
 
469
+ @staticmethod
470
+ def parse_controlnet_field(
471
+ exit_stack: ExitStack,
472
+ context: InvocationContext,
473
+ control_input: ControlField | list[ControlField] | None,
474
+ ext_manager: ExtensionsManager,
475
+ ) -> None:
476
+ # Normalize control_input to a list.
477
+ control_list: list[ControlField]
478
+ if isinstance(control_input, ControlField):
479
+ control_list = [control_input]
480
+ elif isinstance(control_input, list):
481
+ control_list = control_input
482
+ elif control_input is None:
483
+ control_list = []
484
+ else:
485
+ raise ValueError(f"Unexpected control_input type: {type(control_input)}")
486
+
487
+ for control_info in control_list:
488
+ model = exit_stack.enter_context(context.models.load(control_info.control_model))
489
+ ext_manager.add_extension(
490
+ ControlNetExt(
491
+ model=model,
492
+ image=context.images.get_pil(control_info.image.image_name),
493
+ weight=control_info.control_weight,
494
+ begin_step_percent=control_info.begin_step_percent,
495
+ end_step_percent=control_info.end_step_percent,
496
+ control_mode=control_info.control_mode,
497
+ resize_mode=control_info.resize_mode,
498
+ )
499
+ )
500
+
458
501
  def prep_ip_adapter_image_prompts(
459
502
  self,
460
503
  context: InvocationContext,
@@ -707,9 +750,124 @@ class DenoiseLatentsInvocation(BaseInvocation):
707
750
 
708
751
  return seed, noise, latents
709
752
 
753
+ def invoke(self, context: InvocationContext) -> LatentsOutput:
754
+ if os.environ.get("USE_MODULAR_DENOISE", False):
755
+ return self._new_invoke(context)
756
+ else:
757
+ return self._old_invoke(context)
758
+
710
759
  @torch.no_grad()
711
760
  @SilenceWarnings() # This quenches the NSFW nag from diffusers.
712
- def invoke(self, context: InvocationContext) -> LatentsOutput:
761
+ def _new_invoke(self, context: InvocationContext) -> LatentsOutput:
762
+ ext_manager = ExtensionsManager(is_canceled=context.util.is_canceled)
763
+
764
+ device = TorchDevice.choose_torch_device()
765
+ dtype = TorchDevice.choose_torch_dtype()
766
+
767
+ seed, noise, latents = self.prepare_noise_and_latents(context, self.noise, self.latents)
768
+ latents = latents.to(device=device, dtype=dtype)
769
+ if noise is not None:
770
+ noise = noise.to(device=device, dtype=dtype)
771
+
772
+ _, _, latent_height, latent_width = latents.shape
773
+
774
+ conditioning_data = self.get_conditioning_data(
775
+ context=context,
776
+ positive_conditioning_field=self.positive_conditioning,
777
+ negative_conditioning_field=self.negative_conditioning,
778
+ cfg_scale=self.cfg_scale,
779
+ steps=self.steps,
780
+ latent_height=latent_height,
781
+ latent_width=latent_width,
782
+ device=device,
783
+ dtype=dtype,
784
+ # TODO: old backend, remove
785
+ cfg_rescale_multiplier=self.cfg_rescale_multiplier,
786
+ )
787
+
788
+ scheduler = get_scheduler(
789
+ context=context,
790
+ scheduler_info=self.unet.scheduler,
791
+ scheduler_name=self.scheduler,
792
+ seed=seed,
793
+ )
794
+
795
+ timesteps, init_timestep, scheduler_step_kwargs = self.init_scheduler(
796
+ scheduler,
797
+ seed=seed,
798
+ device=device,
799
+ steps=self.steps,
800
+ denoising_start=self.denoising_start,
801
+ denoising_end=self.denoising_end,
802
+ )
803
+
804
+ denoise_ctx = DenoiseContext(
805
+ inputs=DenoiseInputs(
806
+ orig_latents=latents,
807
+ timesteps=timesteps,
808
+ init_timestep=init_timestep,
809
+ noise=noise,
810
+ seed=seed,
811
+ scheduler_step_kwargs=scheduler_step_kwargs,
812
+ conditioning_data=conditioning_data,
813
+ attention_processor_cls=CustomAttnProcessor2_0,
814
+ ),
815
+ unet=None,
816
+ scheduler=scheduler,
817
+ )
818
+
819
+ # get the unet's config so that we can pass the base to sd_step_callback()
820
+ unet_config = context.models.get_config(self.unet.unet.key)
821
+
822
+ ### preview
823
+ def step_callback(state: PipelineIntermediateState) -> None:
824
+ context.util.sd_step_callback(state, unet_config.base)
825
+
826
+ ext_manager.add_extension(PreviewExt(step_callback))
827
+
828
+ ### cfg rescale
829
+ if self.cfg_rescale_multiplier > 0:
830
+ ext_manager.add_extension(RescaleCFGExt(self.cfg_rescale_multiplier))
831
+
832
+ ### freeu
833
+ if self.unet.freeu_config:
834
+ ext_manager.add_extension(FreeUExt(self.unet.freeu_config))
835
+
836
+ # context for loading additional models
837
+ with ExitStack() as exit_stack:
838
+ # later should be smth like:
839
+ # for extension_field in self.extensions:
840
+ # ext = extension_field.to_extension(exit_stack, context, ext_manager)
841
+ # ext_manager.add_extension(ext)
842
+ self.parse_controlnet_field(exit_stack, context, self.control, ext_manager)
843
+
844
+ # ext: t2i/ip adapter
845
+ ext_manager.run_callback(ExtensionCallbackType.SETUP, denoise_ctx)
846
+
847
+ unet_info = context.models.load(self.unet.unet)
848
+ assert isinstance(unet_info.model, UNet2DConditionModel)
849
+ with (
850
+ unet_info.model_on_device() as (cached_weights, unet),
851
+ ModelPatcher.patch_unet_attention_processor(unet, denoise_ctx.inputs.attention_processor_cls),
852
+ # ext: controlnet
853
+ ext_manager.patch_extensions(denoise_ctx),
854
+ # ext: freeu, seamless, ip adapter, lora
855
+ ext_manager.patch_unet(unet, cached_weights),
856
+ ):
857
+ sd_backend = StableDiffusionBackend(unet, scheduler)
858
+ denoise_ctx.unet = unet
859
+ result_latents = sd_backend.latents_from_embeddings(denoise_ctx, ext_manager)
860
+
861
+ # https://discuss.huggingface.co/t/memory-usage-by-later-pipeline-stages/23699
862
+ result_latents = result_latents.detach().to("cpu")
863
+ TorchDevice.empty_cache()
864
+
865
+ name = context.tensors.save(tensor=result_latents)
866
+ return LatentsOutput.build(latents_name=name, latents=result_latents, seed=None)
867
+
868
+ @torch.no_grad()
869
+ @SilenceWarnings() # This quenches the NSFW nag from diffusers.
870
+ def _old_invoke(self, context: InvocationContext) -> LatentsOutput:
713
871
  seed, noise, latents = self.prepare_noise_and_latents(context, self.noise, self.latents)
714
872
 
715
873
  mask, masked_latents, gradient_mask = self.prep_inpaint_mask(context, latents)
@@ -788,7 +946,8 @@ class DenoiseLatentsInvocation(BaseInvocation):
788
946
  context=context,
789
947
  positive_conditioning_field=self.positive_conditioning,
790
948
  negative_conditioning_field=self.negative_conditioning,
791
- unet=unet,
949
+ device=unet.device,
950
+ dtype=unet.dtype,
792
951
  latent_height=latent_height,
793
952
  latent_width=latent_width,
794
953
  cfg_scale=self.cfg_scale,
@@ -48,6 +48,7 @@ class UIType(str, Enum, metaclass=MetaEnum):
48
48
  ControlNetModel = "ControlNetModelField"
49
49
  IPAdapterModel = "IPAdapterModelField"
50
50
  T2IAdapterModel = "T2IAdapterModelField"
51
+ SpandrelImageToImageModel = "SpandrelImageToImageModelField"
51
52
  # endregion
52
53
 
53
54
  # region Misc Field Types
@@ -134,6 +135,7 @@ class FieldDescriptions:
134
135
  sdxl_main_model = "SDXL Main model (UNet, VAE, CLIP1, CLIP2) to load"
135
136
  sdxl_refiner_model = "SDXL Refiner Main Modde (UNet, VAE, CLIP2) to load"
136
137
  onnx_main_model = "ONNX Main model (UNet, VAE, CLIP) to load"
138
+ spandrel_image_to_image_model = "Image-to-Image model"
137
139
  lora_weight = "The weight at which the LoRA is applied to each model"
138
140
  compel_prompt = "Prompt to be parsed by Compel to create a conditioning tensor"
139
141
  raw_prompt = "Raw prompt text (no parsing)"