InvokeAI 6.13.7__tar.gz → 6.13.8__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 (855) hide show
  1. {invokeai-6.13.7 → invokeai-6.13.8}/InvokeAI.egg-info/PKG-INFO +1 -1
  2. {invokeai-6.13.7 → invokeai-6.13.8}/InvokeAI.egg-info/SOURCES.txt +1 -1
  3. {invokeai-6.13.7 → invokeai-6.13.8}/PKG-INFO +1 -1
  4. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/api/routers/app_info.py +6 -2
  5. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/api/sockets.py +29 -1
  6. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/api_app.py +0 -2
  7. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/config/config_default.py +4 -0
  8. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/download/download_base.py +12 -1
  9. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/download/download_default.py +69 -6
  10. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/model_install/model_install_default.py +12 -3
  11. invokeai-6.13.8/invokeai/app/util/ssrf.py +361 -0
  12. invokeai-6.13.8/invokeai/version/invokeai_version.py +1 -0
  13. invokeai-6.13.7/invokeai/app/api/routers/download_queue.py +0 -138
  14. invokeai-6.13.7/invokeai/version/invokeai_version.py +0 -1
  15. {invokeai-6.13.7 → invokeai-6.13.8}/InvokeAI.egg-info/dependency_links.txt +0 -0
  16. {invokeai-6.13.7 → invokeai-6.13.8}/InvokeAI.egg-info/entry_points.txt +0 -0
  17. {invokeai-6.13.7 → invokeai-6.13.8}/InvokeAI.egg-info/requires.txt +0 -0
  18. {invokeai-6.13.7 → invokeai-6.13.8}/InvokeAI.egg-info/top_level.txt +0 -0
  19. {invokeai-6.13.7 → invokeai-6.13.8}/LICENSE +0 -0
  20. {invokeai-6.13.7 → invokeai-6.13.8}/LICENSE-SD1+SD2.txt +0 -0
  21. {invokeai-6.13.7 → invokeai-6.13.8}/LICENSE-SDXL.txt +0 -0
  22. {invokeai-6.13.7 → invokeai-6.13.8}/README.md +0 -0
  23. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/__init__.py +0 -0
  24. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/api/auth_dependencies.py +0 -0
  25. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/api/dependencies.py +0 -0
  26. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/api/extract_metadata_from_image.py +0 -0
  27. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/api/no_cache_staticfiles.py +0 -0
  28. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/api/routers/_access.py +0 -0
  29. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/api/routers/auth.py +0 -0
  30. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/api/routers/board_images.py +0 -0
  31. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/api/routers/boards.py +0 -0
  32. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/api/routers/client_state.py +0 -0
  33. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/api/routers/custom_nodes.py +0 -0
  34. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/api/routers/images.py +0 -0
  35. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/api/routers/model_manager.py +0 -0
  36. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/api/routers/model_relationships.py +0 -0
  37. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/api/routers/recall_parameters.py +0 -0
  38. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/api/routers/session_queue.py +0 -0
  39. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/api/routers/style_presets.py +0 -0
  40. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/api/routers/utilities.py +0 -0
  41. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/api/routers/virtual_boards.py +0 -0
  42. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/api/routers/workflows.py +0 -0
  43. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/assets/images/caution.png +0 -0
  44. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/invocations/__init__.py +0 -0
  45. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/invocations/anima_denoise.py +0 -0
  46. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/invocations/anima_image_to_latents.py +0 -0
  47. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/invocations/anima_latents_to_image.py +0 -0
  48. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/invocations/anima_lora_loader.py +0 -0
  49. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/invocations/anima_model_loader.py +0 -0
  50. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/invocations/anima_text_encoder.py +0 -0
  51. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/invocations/baseinvocation.py +0 -0
  52. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/invocations/batch.py +0 -0
  53. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/invocations/blend_latents.py +0 -0
  54. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/invocations/canny.py +0 -0
  55. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/invocations/canvas.py +0 -0
  56. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/invocations/cogview4_denoise.py +0 -0
  57. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/invocations/cogview4_image_to_latents.py +0 -0
  58. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/invocations/cogview4_latents_to_image.py +0 -0
  59. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/invocations/cogview4_model_loader.py +0 -0
  60. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/invocations/cogview4_text_encoder.py +0 -0
  61. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/invocations/collections.py +0 -0
  62. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/invocations/color_map.py +0 -0
  63. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/invocations/compel.py +0 -0
  64. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/invocations/composition-nodes.py +0 -0
  65. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/invocations/constants.py +0 -0
  66. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/invocations/content_shuffle.py +0 -0
  67. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/invocations/controlnet.py +0 -0
  68. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/invocations/create_denoise_mask.py +0 -0
  69. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/invocations/create_gradient_mask.py +0 -0
  70. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/invocations/crop_latents.py +0 -0
  71. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/invocations/custom_nodes/README.md +0 -0
  72. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/invocations/cv.py +0 -0
  73. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/invocations/denoise_latents.py +0 -0
  74. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/invocations/depth_anything.py +0 -0
  75. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/invocations/dw_openpose.py +0 -0
  76. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/invocations/external_image_generation.py +0 -0
  77. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/invocations/facetools.py +0 -0
  78. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/invocations/fields.py +0 -0
  79. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/invocations/flux2_denoise.py +0 -0
  80. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/invocations/flux2_klein_lora_loader.py +0 -0
  81. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/invocations/flux2_klein_model_loader.py +0 -0
  82. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/invocations/flux2_klein_text_encoder.py +0 -0
  83. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/invocations/flux2_vae_decode.py +0 -0
  84. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/invocations/flux2_vae_encode.py +0 -0
  85. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/invocations/flux_control_lora_loader.py +0 -0
  86. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/invocations/flux_controlnet.py +0 -0
  87. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/invocations/flux_denoise.py +0 -0
  88. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/invocations/flux_fill.py +0 -0
  89. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/invocations/flux_ip_adapter.py +0 -0
  90. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/invocations/flux_kontext.py +0 -0
  91. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/invocations/flux_lora_loader.py +0 -0
  92. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/invocations/flux_model_loader.py +0 -0
  93. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/invocations/flux_redux.py +0 -0
  94. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/invocations/flux_text_encoder.py +0 -0
  95. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/invocations/flux_vae_decode.py +0 -0
  96. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/invocations/flux_vae_encode.py +0 -0
  97. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/invocations/grounding_dino.py +0 -0
  98. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/invocations/hed.py +0 -0
  99. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/invocations/ideal_size.py +0 -0
  100. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/invocations/image.py +0 -0
  101. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/invocations/image_panels.py +0 -0
  102. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/invocations/image_to_latents.py +0 -0
  103. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/invocations/infill.py +0 -0
  104. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/invocations/ip_adapter.py +0 -0
  105. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/invocations/latent_noise.py +0 -0
  106. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/invocations/latents_to_image.py +0 -0
  107. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/invocations/lineart.py +0 -0
  108. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/invocations/lineart_anime.py +0 -0
  109. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/invocations/llava_onevision_vllm.py +0 -0
  110. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/invocations/load_custom_nodes.py +0 -0
  111. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/invocations/logic.py +0 -0
  112. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/invocations/mask.py +0 -0
  113. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/invocations/math.py +0 -0
  114. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/invocations/mediapipe_face.py +0 -0
  115. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/invocations/metadata.py +0 -0
  116. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/invocations/metadata_linked.py +0 -0
  117. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/invocations/mlsd.py +0 -0
  118. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/invocations/model.py +0 -0
  119. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/invocations/noise.py +0 -0
  120. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/invocations/normal_bae.py +0 -0
  121. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/invocations/param_easing.py +0 -0
  122. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/invocations/pbr_maps.py +0 -0
  123. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/invocations/pidi.py +0 -0
  124. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/invocations/primitives.py +0 -0
  125. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/invocations/prompt.py +0 -0
  126. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/invocations/prompt_template.py +0 -0
  127. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/invocations/qwen_image_denoise.py +0 -0
  128. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/invocations/qwen_image_image_to_latents.py +0 -0
  129. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/invocations/qwen_image_latents_to_image.py +0 -0
  130. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/invocations/qwen_image_lora_loader.py +0 -0
  131. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/invocations/qwen_image_model_loader.py +0 -0
  132. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/invocations/qwen_image_text_encoder.py +0 -0
  133. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/invocations/resize_latents.py +0 -0
  134. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/invocations/scheduler.py +0 -0
  135. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/invocations/sd3_denoise.py +0 -0
  136. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/invocations/sd3_image_to_latents.py +0 -0
  137. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/invocations/sd3_latents_to_image.py +0 -0
  138. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/invocations/sd3_model_loader.py +0 -0
  139. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/invocations/sd3_text_encoder.py +0 -0
  140. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/invocations/sdxl.py +0 -0
  141. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/invocations/segment_anything.py +0 -0
  142. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/invocations/spandrel_image_to_image.py +0 -0
  143. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/invocations/strings.py +0 -0
  144. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/invocations/t2i_adapter.py +0 -0
  145. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/invocations/text_llm.py +0 -0
  146. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/invocations/tiled_multi_diffusion_denoise_latents.py +0 -0
  147. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/invocations/tiles.py +0 -0
  148. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/invocations/upscale.py +0 -0
  149. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/invocations/util.py +0 -0
  150. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/invocations/z_image_control.py +0 -0
  151. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/invocations/z_image_denoise.py +0 -0
  152. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/invocations/z_image_image_to_latents.py +0 -0
  153. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/invocations/z_image_latents_to_image.py +0 -0
  154. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/invocations/z_image_lora_loader.py +0 -0
  155. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/invocations/z_image_model_loader.py +0 -0
  156. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/invocations/z_image_seed_variance_enhancer.py +0 -0
  157. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/invocations/z_image_text_encoder.py +0 -0
  158. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/run_app.py +0 -0
  159. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/__init__.py +0 -0
  160. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/app_settings/__init__.py +0 -0
  161. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/app_settings/app_settings_service.py +0 -0
  162. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/auth/__init__.py +0 -0
  163. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/auth/password_utils.py +0 -0
  164. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/auth/token_service.py +0 -0
  165. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/board_image_records/__init__.py +0 -0
  166. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/board_image_records/board_image_records_base.py +0 -0
  167. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/board_image_records/board_image_records_sqlite.py +0 -0
  168. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/board_images/__init__.py +0 -0
  169. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/board_images/board_images_base.py +0 -0
  170. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/board_images/board_images_common.py +0 -0
  171. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/board_images/board_images_default.py +0 -0
  172. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/board_records/board_records_base.py +0 -0
  173. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/board_records/board_records_common.py +0 -0
  174. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/board_records/board_records_sqlite.py +0 -0
  175. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/boards/__init__.py +0 -0
  176. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/boards/boards_base.py +0 -0
  177. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/boards/boards_common.py +0 -0
  178. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/boards/boards_default.py +0 -0
  179. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/bulk_download/__init__.py +0 -0
  180. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/bulk_download/bulk_download_base.py +0 -0
  181. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/bulk_download/bulk_download_common.py +0 -0
  182. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/bulk_download/bulk_download_default.py +0 -0
  183. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/client_state_persistence/client_state_persistence_base.py +0 -0
  184. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/client_state_persistence/client_state_persistence_sqlite.py +0 -0
  185. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/config/__init__.py +0 -0
  186. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/config/config_common.py +0 -0
  187. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/download/__init__.py +0 -0
  188. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/events/__init__.py +0 -0
  189. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/events/events_base.py +0 -0
  190. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/events/events_common.py +0 -0
  191. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/events/events_fastapievents.py +0 -0
  192. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/external_generation/__init__.py +0 -0
  193. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/external_generation/errors.py +0 -0
  194. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/external_generation/external_generation_base.py +0 -0
  195. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/external_generation/external_generation_common.py +0 -0
  196. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/external_generation/external_generation_default.py +0 -0
  197. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/external_generation/image_utils.py +0 -0
  198. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/external_generation/providers/__init__.py +0 -0
  199. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/external_generation/providers/alibabacloud.py +0 -0
  200. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/external_generation/providers/gemini.py +0 -0
  201. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/external_generation/providers/openai.py +0 -0
  202. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/external_generation/providers/seedream.py +0 -0
  203. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/external_generation/startup.py +0 -0
  204. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/image_files/__init__.py +0 -0
  205. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/image_files/image_files_base.py +0 -0
  206. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/image_files/image_files_common.py +0 -0
  207. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/image_files/image_files_disk.py +0 -0
  208. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/image_files/image_subfolder_strategy.py +0 -0
  209. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/image_records/__init__.py +0 -0
  210. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/image_records/image_records_base.py +0 -0
  211. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/image_records/image_records_common.py +0 -0
  212. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/image_records/image_records_sqlite.py +0 -0
  213. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/images/__init__.py +0 -0
  214. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/images/images_base.py +0 -0
  215. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/images/images_common.py +0 -0
  216. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/images/images_default.py +0 -0
  217. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/invocation_cache/__init__.py +0 -0
  218. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/invocation_cache/invocation_cache_base.py +0 -0
  219. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/invocation_cache/invocation_cache_common.py +0 -0
  220. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/invocation_cache/invocation_cache_memory.py +0 -0
  221. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/invocation_services.py +0 -0
  222. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/invocation_stats/__init__.py +0 -0
  223. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/invocation_stats/invocation_stats_base.py +0 -0
  224. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/invocation_stats/invocation_stats_common.py +0 -0
  225. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/invocation_stats/invocation_stats_default.py +0 -0
  226. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/invoker.py +0 -0
  227. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/item_storage/__init__.py +0 -0
  228. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/item_storage/item_storage_base.py +0 -0
  229. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/item_storage/item_storage_common.py +0 -0
  230. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/item_storage/item_storage_memory.py +0 -0
  231. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/model_images/model_images_base.py +0 -0
  232. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/model_images/model_images_common.py +0 -0
  233. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/model_images/model_images_default.py +0 -0
  234. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/model_install/__init__.py +0 -0
  235. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/model_install/model_install_base.py +0 -0
  236. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/model_install/model_install_common.py +0 -0
  237. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/model_load/__init__.py +0 -0
  238. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/model_load/model_load_base.py +0 -0
  239. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/model_load/model_load_default.py +0 -0
  240. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/model_manager/__init__.py +0 -0
  241. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/model_manager/model_manager_base.py +0 -0
  242. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/model_manager/model_manager_common.py +0 -0
  243. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/model_manager/model_manager_default.py +0 -0
  244. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/model_records/__init__.py +0 -0
  245. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/model_records/model_records_base.py +0 -0
  246. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/model_records/model_records_sql.py +0 -0
  247. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/model_relationship_records/model_relationship_records_base.py +0 -0
  248. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/model_relationship_records/model_relationship_records_sqlite.py +0 -0
  249. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/model_relationships/model_relationships_base.py +0 -0
  250. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/model_relationships/model_relationships_common.py +0 -0
  251. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/model_relationships/model_relationships_default.py +0 -0
  252. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/names/__init__.py +0 -0
  253. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/names/names_base.py +0 -0
  254. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/names/names_common.py +0 -0
  255. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/names/names_default.py +0 -0
  256. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/object_serializer/object_serializer_base.py +0 -0
  257. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/object_serializer/object_serializer_common.py +0 -0
  258. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/object_serializer/object_serializer_disk.py +0 -0
  259. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/object_serializer/object_serializer_forward_cache.py +0 -0
  260. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/orphaned_models/__init__.py +0 -0
  261. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/orphaned_models/orphaned_models_service.py +0 -0
  262. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/session_processor/__init__.py +0 -0
  263. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/session_processor/session_processor_base.py +0 -0
  264. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/session_processor/session_processor_common.py +0 -0
  265. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/session_processor/session_processor_default.py +0 -0
  266. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/session_queue/__init__.py +0 -0
  267. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/session_queue/session_queue_base.py +0 -0
  268. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/session_queue/session_queue_common.py +0 -0
  269. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/session_queue/session_queue_sqlite.py +0 -0
  270. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/shared/__init__.py +0 -0
  271. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/shared/graph.py +0 -0
  272. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/shared/invocation_context.py +0 -0
  273. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/shared/pagination.py +0 -0
  274. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/shared/sqlite/__init__.py +0 -0
  275. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/shared/sqlite/sqlite_common.py +0 -0
  276. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/shared/sqlite/sqlite_database.py +0 -0
  277. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/shared/sqlite/sqlite_util.py +0 -0
  278. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/shared/sqlite_migrator/__init__.py +0 -0
  279. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/shared/sqlite_migrator/migrations/__init__.py +0 -0
  280. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/shared/sqlite_migrator/migrations/migration_1.py +0 -0
  281. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/shared/sqlite_migrator/migrations/migration_10.py +0 -0
  282. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/shared/sqlite_migrator/migrations/migration_11.py +0 -0
  283. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/shared/sqlite_migrator/migrations/migration_12.py +0 -0
  284. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/shared/sqlite_migrator/migrations/migration_13.py +0 -0
  285. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/shared/sqlite_migrator/migrations/migration_14.py +0 -0
  286. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/shared/sqlite_migrator/migrations/migration_15.py +0 -0
  287. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/shared/sqlite_migrator/migrations/migration_16.py +0 -0
  288. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/shared/sqlite_migrator/migrations/migration_17.py +0 -0
  289. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/shared/sqlite_migrator/migrations/migration_18.py +0 -0
  290. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/shared/sqlite_migrator/migrations/migration_19.py +0 -0
  291. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/shared/sqlite_migrator/migrations/migration_2.py +0 -0
  292. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/shared/sqlite_migrator/migrations/migration_20.py +0 -0
  293. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/shared/sqlite_migrator/migrations/migration_21.py +0 -0
  294. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/shared/sqlite_migrator/migrations/migration_22.py +0 -0
  295. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/shared/sqlite_migrator/migrations/migration_23.py +0 -0
  296. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/shared/sqlite_migrator/migrations/migration_24.py +0 -0
  297. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/shared/sqlite_migrator/migrations/migration_25.py +0 -0
  298. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/shared/sqlite_migrator/migrations/migration_26.py +0 -0
  299. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/shared/sqlite_migrator/migrations/migration_27.py +0 -0
  300. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/shared/sqlite_migrator/migrations/migration_28.py +0 -0
  301. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/shared/sqlite_migrator/migrations/migration_29.py +0 -0
  302. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/shared/sqlite_migrator/migrations/migration_3.py +0 -0
  303. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/shared/sqlite_migrator/migrations/migration_30.py +0 -0
  304. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/shared/sqlite_migrator/migrations/migration_31.py +0 -0
  305. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/shared/sqlite_migrator/migrations/migration_32.py +0 -0
  306. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/shared/sqlite_migrator/migrations/migration_4.py +0 -0
  307. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/shared/sqlite_migrator/migrations/migration_5.py +0 -0
  308. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/shared/sqlite_migrator/migrations/migration_6.py +0 -0
  309. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/shared/sqlite_migrator/migrations/migration_7.py +0 -0
  310. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/shared/sqlite_migrator/migrations/migration_8.py +0 -0
  311. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/shared/sqlite_migrator/migrations/migration_9.py +0 -0
  312. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/shared/sqlite_migrator/sqlite_migrator_common.py +0 -0
  313. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/shared/sqlite_migrator/sqlite_migrator_impl.py +0 -0
  314. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/style_preset_images/default_style_preset_images/Anime.png +0 -0
  315. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/style_preset_images/default_style_preset_images/Architectural Visualization.png +0 -0
  316. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/style_preset_images/default_style_preset_images/Concept Art (Character).png +0 -0
  317. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/style_preset_images/default_style_preset_images/Concept Art (Fantasy).png +0 -0
  318. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/style_preset_images/default_style_preset_images/Concept Art (Painterly).png +0 -0
  319. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/style_preset_images/default_style_preset_images/Concept Art (Sci-Fi).png +0 -0
  320. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/style_preset_images/default_style_preset_images/Environment Art.png +0 -0
  321. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/style_preset_images/default_style_preset_images/Illustration.png +0 -0
  322. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/style_preset_images/default_style_preset_images/Interior Design (Visualization).png +0 -0
  323. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/style_preset_images/default_style_preset_images/Line Art.png +0 -0
  324. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/style_preset_images/default_style_preset_images/Photography (Black and White).png +0 -0
  325. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/style_preset_images/default_style_preset_images/Photography (General).png +0 -0
  326. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/style_preset_images/default_style_preset_images/Photography (Landscape).png +0 -0
  327. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/style_preset_images/default_style_preset_images/Photography (Portrait).png +0 -0
  328. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/style_preset_images/default_style_preset_images/Photography (Studio Lighting).png +0 -0
  329. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/style_preset_images/default_style_preset_images/Product Rendering.png +0 -0
  330. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/style_preset_images/default_style_preset_images/Sketch.png +0 -0
  331. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/style_preset_images/default_style_preset_images/Vehicles.png +0 -0
  332. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/style_preset_images/default_style_preset_images/__init__.py +0 -0
  333. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/style_preset_images/style_preset_images_base.py +0 -0
  334. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/style_preset_images/style_preset_images_common.py +0 -0
  335. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/style_preset_images/style_preset_images_disk.py +0 -0
  336. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/style_preset_records/__init__.py +0 -0
  337. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/style_preset_records/default_style_presets.json +0 -0
  338. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/style_preset_records/style_preset_records_base.py +0 -0
  339. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/style_preset_records/style_preset_records_common.py +0 -0
  340. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/style_preset_records/style_preset_records_sqlite.py +0 -0
  341. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/urls/__init__.py +0 -0
  342. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/urls/urls_base.py +0 -0
  343. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/urls/urls_default.py +0 -0
  344. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/users/__init__.py +0 -0
  345. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/users/users_base.py +0 -0
  346. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/users/users_common.py +0 -0
  347. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/users/users_default.py +0 -0
  348. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/virtual_boards/__init__.py +0 -0
  349. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/virtual_boards/virtual_boards_common.py +0 -0
  350. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/workflow_records/__init__.py +0 -0
  351. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/workflow_records/default_workflows/CogView4_TextToImage.json +0 -0
  352. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/workflow_records/default_workflows/ESRGAN Upscaling with Canny ControlNet.json +0 -0
  353. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/workflow_records/default_workflows/FLUX Image to Image.json +0 -0
  354. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/workflow_records/default_workflows/Face Detailer with IP-Adapter & Canny (See Note in Details).json +0 -0
  355. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/workflow_records/default_workflows/Flux Text to Image.json +0 -0
  356. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/workflow_records/default_workflows/Multi ControlNet (Canny & Depth).json +0 -0
  357. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/workflow_records/default_workflows/MultiDiffusion SD1.5.json +0 -0
  358. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/workflow_records/default_workflows/MultiDiffusion SDXL.json +0 -0
  359. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/workflow_records/default_workflows/Prompt from File.json +0 -0
  360. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/workflow_records/default_workflows/SD3.5 Text to Image.json +0 -0
  361. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/workflow_records/default_workflows/Text to Image - SD1.5.json +0 -0
  362. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/workflow_records/default_workflows/Text to Image - SDXL.json +0 -0
  363. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/workflow_records/default_workflows/Text to Image with LoRA.json +0 -0
  364. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/workflow_records/default_workflows/Tiled Upscaling (Beta).json +0 -0
  365. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/workflow_records/workflow_records_base.py +0 -0
  366. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/workflow_records/workflow_records_common.py +0 -0
  367. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/workflow_records/workflow_records_sqlite.py +0 -0
  368. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/workflow_thumbnails/workflow_thumbnails_base.py +0 -0
  369. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/workflow_thumbnails/workflow_thumbnails_common.py +0 -0
  370. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/services/workflow_thumbnails/workflow_thumbnails_disk.py +0 -0
  371. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/shared/__init__.py +0 -0
  372. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/shared/models.py +0 -0
  373. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/util/__init__.py +0 -0
  374. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/util/controlnet_utils.py +0 -0
  375. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/util/custom_openapi.py +0 -0
  376. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/util/dynamicprompts.py +0 -0
  377. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/util/metaenum.py +0 -0
  378. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/util/misc.py +0 -0
  379. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/util/model_exclude_null.py +0 -0
  380. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/util/profiler.py +0 -0
  381. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/util/startup_utils.py +0 -0
  382. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/util/step_callback.py +0 -0
  383. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/util/suppress_output.py +0 -0
  384. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/util/t5_model_identifier.py +0 -0
  385. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/util/thumbnails.py +0 -0
  386. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/util/ti_utils.py +0 -0
  387. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/util/torch_cuda_allocator.py +0 -0
  388. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/app/util/user_management.py +0 -0
  389. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/assets/fonts/inter/Inter-Regular.ttf +0 -0
  390. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/__init__.py +0 -0
  391. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/anima/__init__.py +0 -0
  392. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/anima/anima_transformer.py +0 -0
  393. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/anima/anima_transformer_patch.py +0 -0
  394. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/anima/conditioning_data.py +0 -0
  395. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/anima/regional_prompting.py +0 -0
  396. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/anima/scheduler_driver.py +0 -0
  397. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/anima/t5_tokenizer.py +0 -0
  398. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/anima/tokenizer/special_tokens_map.json +0 -0
  399. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/anima/tokenizer/tokenizer.json +0 -0
  400. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/anima/tokenizer/tokenizer_config.json +0 -0
  401. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/flux/controlnet/__init__.py +0 -0
  402. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/flux/controlnet/controlnet_flux_output.py +0 -0
  403. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/flux/controlnet/instantx_controlnet_flux.py +0 -0
  404. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/flux/controlnet/state_dict_utils.py +0 -0
  405. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/flux/controlnet/xlabs_controlnet_flux.py +0 -0
  406. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/flux/controlnet/zero_module.py +0 -0
  407. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/flux/custom_block_processor.py +0 -0
  408. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/flux/denoise.py +0 -0
  409. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/flux/dype/__init__.py +0 -0
  410. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/flux/dype/base.py +0 -0
  411. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/flux/dype/embed.py +0 -0
  412. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/flux/dype/presets.py +0 -0
  413. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/flux/dype/rope.py +0 -0
  414. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/flux/extensions/__init__.py +0 -0
  415. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/flux/extensions/base_controlnet_extension.py +0 -0
  416. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/flux/extensions/dype_extension.py +0 -0
  417. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/flux/extensions/instantx_controlnet_extension.py +0 -0
  418. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/flux/extensions/kontext_extension.py +0 -0
  419. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/flux/extensions/regional_prompting_extension.py +0 -0
  420. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/flux/extensions/xlabs_controlnet_extension.py +0 -0
  421. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/flux/extensions/xlabs_ip_adapter_extension.py +0 -0
  422. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/flux/flux_state_dict_utils.py +0 -0
  423. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/flux/ip_adapter/__init__.py +0 -0
  424. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/flux/ip_adapter/ip_double_stream_block_processor.py +0 -0
  425. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/flux/ip_adapter/state_dict_utils.py +0 -0
  426. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/flux/ip_adapter/xlabs_ip_adapter_flux.py +0 -0
  427. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/flux/math.py +0 -0
  428. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/flux/model.py +0 -0
  429. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/flux/modules/autoencoder.py +0 -0
  430. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/flux/modules/conditioner.py +0 -0
  431. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/flux/modules/layers.py +0 -0
  432. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/flux/redux/flux_redux_model.py +0 -0
  433. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/flux/redux/flux_redux_state_dict_utils.py +0 -0
  434. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/flux/sampling_utils.py +0 -0
  435. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/flux/schedulers.py +0 -0
  436. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/flux/text_conditioning.py +0 -0
  437. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/flux/util.py +0 -0
  438. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/flux2/__init__.py +0 -0
  439. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/flux2/denoise.py +0 -0
  440. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/flux2/ref_image_extension.py +0 -0
  441. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/flux2/sampling_utils.py +0 -0
  442. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/image_util/__init__.py +0 -0
  443. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/image_util/assets/CIELab_to_UPLab.icc +0 -0
  444. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/image_util/basicsr/__init__.py +0 -0
  445. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/image_util/basicsr/arch_util.py +0 -0
  446. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/image_util/basicsr/rrdbnet_arch.py +0 -0
  447. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/image_util/canny.py +0 -0
  448. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/image_util/color_conversion.py +0 -0
  449. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/image_util/composition.py +0 -0
  450. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/image_util/content_shuffle.py +0 -0
  451. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/image_util/controlnet_processor.py +0 -0
  452. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/image_util/depth_anything/depth_anything_pipeline.py +0 -0
  453. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/image_util/dw_openpose/__init__.py +0 -0
  454. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/image_util/dw_openpose/onnxdet.py +0 -0
  455. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/image_util/dw_openpose/onnxpose.py +0 -0
  456. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/image_util/dw_openpose/utils.py +0 -0
  457. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/image_util/grounding_dino/__init__.py +0 -0
  458. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/image_util/grounding_dino/detection_result.py +0 -0
  459. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/image_util/grounding_dino/grounding_dino_pipeline.py +0 -0
  460. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/image_util/hed.py +0 -0
  461. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/image_util/imwatermark/vendor.py +0 -0
  462. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/image_util/infill_methods/cv2_inpaint.py +0 -0
  463. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/image_util/infill_methods/lama.py +0 -0
  464. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/image_util/infill_methods/mosaic.py +0 -0
  465. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/image_util/infill_methods/patchmatch.py +0 -0
  466. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/image_util/infill_methods/tile.py +0 -0
  467. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/image_util/invisible_watermark.py +0 -0
  468. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/image_util/lineart.py +0 -0
  469. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/image_util/lineart_anime.py +0 -0
  470. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/image_util/mediapipe_face/__init__.py +0 -0
  471. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/image_util/mediapipe_face/mediapipe_face_common.py +0 -0
  472. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/image_util/mlsd/__init__.py +0 -0
  473. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/image_util/mlsd/models/__init__.py +0 -0
  474. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/image_util/mlsd/models/mbv2_mlsd_large.py +0 -0
  475. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/image_util/mlsd/models/mbv2_mlsd_tiny.py +0 -0
  476. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/image_util/mlsd/utils.py +0 -0
  477. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/image_util/normal_bae/__init__.py +0 -0
  478. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/image_util/normal_bae/nets/NNET.py +0 -0
  479. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/image_util/normal_bae/nets/__init__.py +0 -0
  480. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/image_util/normal_bae/nets/baseline.py +0 -0
  481. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/image_util/normal_bae/nets/submodules/__init__.py +0 -0
  482. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/image_util/normal_bae/nets/submodules/decoder.py +0 -0
  483. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/image_util/normal_bae/nets/submodules/efficientnet_repo/__init__.py +0 -0
  484. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/image_util/normal_bae/nets/submodules/efficientnet_repo/caffe2_benchmark.py +0 -0
  485. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/image_util/normal_bae/nets/submodules/efficientnet_repo/caffe2_validate.py +0 -0
  486. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/image_util/normal_bae/nets/submodules/efficientnet_repo/geffnet/__init__.py +0 -0
  487. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/image_util/normal_bae/nets/submodules/efficientnet_repo/geffnet/activations/__init__.py +0 -0
  488. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/image_util/normal_bae/nets/submodules/efficientnet_repo/geffnet/activations/activations.py +0 -0
  489. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/image_util/normal_bae/nets/submodules/efficientnet_repo/geffnet/activations/activations_jit.py +0 -0
  490. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/image_util/normal_bae/nets/submodules/efficientnet_repo/geffnet/activations/activations_me.py +0 -0
  491. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/image_util/normal_bae/nets/submodules/efficientnet_repo/geffnet/config.py +0 -0
  492. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/image_util/normal_bae/nets/submodules/efficientnet_repo/geffnet/conv2d_layers.py +0 -0
  493. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/image_util/normal_bae/nets/submodules/efficientnet_repo/geffnet/efficientnet_builder.py +0 -0
  494. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/image_util/normal_bae/nets/submodules/efficientnet_repo/geffnet/gen_efficientnet.py +0 -0
  495. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/image_util/normal_bae/nets/submodules/efficientnet_repo/geffnet/helpers.py +0 -0
  496. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/image_util/normal_bae/nets/submodules/efficientnet_repo/geffnet/mobilenetv3.py +0 -0
  497. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/image_util/normal_bae/nets/submodules/efficientnet_repo/geffnet/model_factory.py +0 -0
  498. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/image_util/normal_bae/nets/submodules/efficientnet_repo/geffnet/version.py +0 -0
  499. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/image_util/normal_bae/nets/submodules/efficientnet_repo/hubconf.py +0 -0
  500. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/image_util/normal_bae/nets/submodules/efficientnet_repo/onnx_export.py +0 -0
  501. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/image_util/normal_bae/nets/submodules/efficientnet_repo/onnx_optimize.py +0 -0
  502. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/image_util/normal_bae/nets/submodules/efficientnet_repo/onnx_to_caffe.py +0 -0
  503. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/image_util/normal_bae/nets/submodules/efficientnet_repo/onnx_validate.py +0 -0
  504. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/image_util/normal_bae/nets/submodules/efficientnet_repo/setup.py +0 -0
  505. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/image_util/normal_bae/nets/submodules/efficientnet_repo/utils.py +0 -0
  506. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/image_util/normal_bae/nets/submodules/efficientnet_repo/validate.py +0 -0
  507. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/image_util/normal_bae/nets/submodules/encoder.py +0 -0
  508. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/image_util/normal_bae/nets/submodules/submodules.py +0 -0
  509. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/image_util/pbr_maps/architecture/block.py +0 -0
  510. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/image_util/pbr_maps/architecture/pbr_rrdb_net.py +0 -0
  511. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/image_util/pbr_maps/pbr_maps.py +0 -0
  512. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/image_util/pbr_maps/utils/image_ops.py +0 -0
  513. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/image_util/pidi/__init__.py +0 -0
  514. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/image_util/pidi/model.py +0 -0
  515. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/image_util/pngwriter.py +0 -0
  516. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/image_util/realesrgan/__init__.py +0 -0
  517. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/image_util/realesrgan/realesrgan.py +0 -0
  518. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/image_util/safety_checker.py +0 -0
  519. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/image_util/segment_anything/__init__.py +0 -0
  520. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/image_util/segment_anything/mask_refinement.py +0 -0
  521. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/image_util/segment_anything/segment_anything_2_pipeline.py +0 -0
  522. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/image_util/segment_anything/segment_anything_pipeline.py +0 -0
  523. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/image_util/segment_anything/shared.py +0 -0
  524. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/image_util/util.py +0 -0
  525. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/ip_adapter/__init__.py +0 -0
  526. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/ip_adapter/ip_adapter.py +0 -0
  527. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/ip_adapter/ip_attention_weights.py +0 -0
  528. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/ip_adapter/resampler.py +0 -0
  529. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/llava_onevision_pipeline.py +0 -0
  530. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/model_hash/hash_validator.py +0 -0
  531. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/model_hash/model_hash.py +0 -0
  532. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/model_manager/__init__.py +0 -0
  533. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/model_manager/configs/__init__.py +0 -0
  534. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/model_manager/configs/base.py +0 -0
  535. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/model_manager/configs/clip_embed.py +0 -0
  536. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/model_manager/configs/clip_vision.py +0 -0
  537. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/model_manager/configs/controlnet.py +0 -0
  538. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/model_manager/configs/external_api.py +0 -0
  539. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/model_manager/configs/factory.py +0 -0
  540. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/model_manager/configs/flux_redux.py +0 -0
  541. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/model_manager/configs/identification_utils.py +0 -0
  542. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/model_manager/configs/ip_adapter.py +0 -0
  543. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/model_manager/configs/llava_onevision.py +0 -0
  544. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/model_manager/configs/lora.py +0 -0
  545. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/model_manager/configs/main.py +0 -0
  546. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/model_manager/configs/qwen3_encoder.py +0 -0
  547. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/model_manager/configs/qwen_vl_encoder.py +0 -0
  548. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/model_manager/configs/siglip.py +0 -0
  549. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/model_manager/configs/spandrel.py +0 -0
  550. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/model_manager/configs/t2i_adapter.py +0 -0
  551. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/model_manager/configs/t5_encoder.py +0 -0
  552. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/model_manager/configs/text_llm.py +0 -0
  553. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/model_manager/configs/textual_inversion.py +0 -0
  554. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/model_manager/configs/unknown.py +0 -0
  555. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/model_manager/configs/vae.py +0 -0
  556. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/model_manager/load/__init__.py +0 -0
  557. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/model_manager/load/load_base.py +0 -0
  558. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/model_manager/load/load_default.py +0 -0
  559. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/model_manager/load/memory_snapshot.py +0 -0
  560. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/model_manager/load/model_cache/__init__.py +0 -0
  561. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/model_manager/load/model_cache/cache_record.py +0 -0
  562. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/model_manager/load/model_cache/cache_stats.py +0 -0
  563. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/model_manager/load/model_cache/cached_model/cached_model_only_full_load.py +0 -0
  564. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/model_manager/load/model_cache/cached_model/cached_model_with_partial_load.py +0 -0
  565. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/model_manager/load/model_cache/dev_utils.py +0 -0
  566. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/model_manager/load/model_cache/model_cache.py +0 -0
  567. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/model_manager/load/model_cache/torch_module_autocast/__init__.py +0 -0
  568. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/model_manager/load/model_cache/torch_module_autocast/cast_to_device.py +0 -0
  569. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/model_manager/load/model_cache/torch_module_autocast/custom_modules/__init__.py +0 -0
  570. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/model_manager/load/model_cache/torch_module_autocast/custom_modules/custom_conv1d.py +0 -0
  571. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/model_manager/load/model_cache/torch_module_autocast/custom_modules/custom_conv2d.py +0 -0
  572. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/model_manager/load/model_cache/torch_module_autocast/custom_modules/custom_diffusers_rms_norm.py +0 -0
  573. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/model_manager/load/model_cache/torch_module_autocast/custom_modules/custom_embedding.py +0 -0
  574. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/model_manager/load/model_cache/torch_module_autocast/custom_modules/custom_flux_rms_norm.py +0 -0
  575. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/model_manager/load/model_cache/torch_module_autocast/custom_modules/custom_group_norm.py +0 -0
  576. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/model_manager/load/model_cache/torch_module_autocast/custom_modules/custom_invoke_linear_8_bit_lt.py +0 -0
  577. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/model_manager/load/model_cache/torch_module_autocast/custom_modules/custom_invoke_linear_nf4.py +0 -0
  578. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/model_manager/load/model_cache/torch_module_autocast/custom_modules/custom_layer_norm.py +0 -0
  579. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/model_manager/load/model_cache/torch_module_autocast/custom_modules/custom_linear.py +0 -0
  580. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/model_manager/load/model_cache/torch_module_autocast/custom_modules/custom_module_mixin.py +0 -0
  581. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/model_manager/load/model_cache/torch_module_autocast/custom_modules/utils.py +0 -0
  582. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/model_manager/load/model_cache/torch_module_autocast/torch_module_autocast.py +0 -0
  583. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/model_manager/load/model_cache/utils.py +0 -0
  584. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/model_manager/load/model_loader_registry.py +0 -0
  585. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/model_manager/load/model_loaders/__init__.py +0 -0
  586. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/model_manager/load/model_loaders/anima.py +0 -0
  587. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/model_manager/load/model_loaders/clip_vision.py +0 -0
  588. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/model_manager/load/model_loaders/cogview4.py +0 -0
  589. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/model_manager/load/model_loaders/controlnet.py +0 -0
  590. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/model_manager/load/model_loaders/flux.py +0 -0
  591. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/model_manager/load/model_loaders/generic_diffusers.py +0 -0
  592. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/model_manager/load/model_loaders/ip_adapter.py +0 -0
  593. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/model_manager/load/model_loaders/llava_onevision.py +0 -0
  594. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/model_manager/load/model_loaders/lora.py +0 -0
  595. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/model_manager/load/model_loaders/onnx.py +0 -0
  596. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/model_manager/load/model_loaders/qwen_image.py +0 -0
  597. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/model_manager/load/model_loaders/sig_lip.py +0 -0
  598. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/model_manager/load/model_loaders/spandrel_image_to_image.py +0 -0
  599. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/model_manager/load/model_loaders/stable_diffusion.py +0 -0
  600. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/model_manager/load/model_loaders/text_llm.py +0 -0
  601. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/model_manager/load/model_loaders/textual_inversion.py +0 -0
  602. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/model_manager/load/model_loaders/vae.py +0 -0
  603. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/model_manager/load/model_loaders/z_image.py +0 -0
  604. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/model_manager/load/model_util.py +0 -0
  605. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/model_manager/load/optimizations.py +0 -0
  606. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/model_manager/metadata/__init__.py +0 -0
  607. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/model_manager/metadata/fetch/__init__.py +0 -0
  608. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/model_manager/metadata/fetch/fetch_base.py +0 -0
  609. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/model_manager/metadata/fetch/huggingface.py +0 -0
  610. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/model_manager/metadata/metadata_base.py +0 -0
  611. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/model_manager/model_on_disk.py +0 -0
  612. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/model_manager/omi/__init__.py +0 -0
  613. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/model_manager/omi/omi.py +0 -0
  614. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/model_manager/omi/vendor/__init__.py +0 -0
  615. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/model_manager/omi/vendor/convert/__init__.py +0 -0
  616. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/model_manager/omi/vendor/convert/lora/__init__.py +0 -0
  617. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/model_manager/omi/vendor/convert/lora/convert_clip.py +0 -0
  618. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/model_manager/omi/vendor/convert/lora/convert_flux_lora.py +0 -0
  619. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/model_manager/omi/vendor/convert/lora/convert_lora_util.py +0 -0
  620. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/model_manager/omi/vendor/convert/lora/convert_sdxl_lora.py +0 -0
  621. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/model_manager/omi/vendor/convert/lora/convert_t5.py +0 -0
  622. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/model_manager/omi/vendor/model_spec/__init__.py +0 -0
  623. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/model_manager/omi/vendor/model_spec/architecture.py +0 -0
  624. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/model_manager/search.py +0 -0
  625. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/model_manager/single_file_config_files.py +0 -0
  626. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/model_manager/starter_models.py +0 -0
  627. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/model_manager/taxonomy.py +0 -0
  628. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/model_manager/util/libc_util.py +0 -0
  629. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/model_manager/util/lora_metadata_extractor.py +0 -0
  630. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/model_manager/util/model_util.py +0 -0
  631. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/model_manager/util/select_hf_files.py +0 -0
  632. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/model_patcher.py +0 -0
  633. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/onnx/onnx_runtime.py +0 -0
  634. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/patches/__init__.py +0 -0
  635. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/patches/layer_patcher.py +0 -0
  636. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/patches/layers/__init__.py +0 -0
  637. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/patches/layers/base_layer_patch.py +0 -0
  638. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/patches/layers/dora_layer.py +0 -0
  639. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/patches/layers/flux_control_lora_layer.py +0 -0
  640. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/patches/layers/full_layer.py +0 -0
  641. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/patches/layers/ia3_layer.py +0 -0
  642. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/patches/layers/loha_layer.py +0 -0
  643. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/patches/layers/lokr_layer.py +0 -0
  644. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/patches/layers/lora_layer.py +0 -0
  645. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/patches/layers/lora_layer_base.py +0 -0
  646. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/patches/layers/merged_layer_patch.py +0 -0
  647. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/patches/layers/norm_layer.py +0 -0
  648. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/patches/layers/param_shape_utils.py +0 -0
  649. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/patches/layers/set_parameter_layer.py +0 -0
  650. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/patches/layers/utils.py +0 -0
  651. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/patches/lora_conversions/__init__.py +0 -0
  652. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/patches/lora_conversions/anima_lora_constants.py +0 -0
  653. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/patches/lora_conversions/anima_lora_conversion_utils.py +0 -0
  654. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/patches/lora_conversions/flux_aitoolkit_lora_conversion_utils.py +0 -0
  655. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/patches/lora_conversions/flux_bfl_peft_lora_conversion_utils.py +0 -0
  656. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/patches/lora_conversions/flux_control_lora_utils.py +0 -0
  657. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/patches/lora_conversions/flux_diffusers_lora_conversion_utils.py +0 -0
  658. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/patches/lora_conversions/flux_kohya_lora_conversion_utils.py +0 -0
  659. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/patches/lora_conversions/flux_lora_constants.py +0 -0
  660. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/patches/lora_conversions/flux_onetrainer_bfl_lora_conversion_utils.py +0 -0
  661. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/patches/lora_conversions/flux_onetrainer_lora_conversion_utils.py +0 -0
  662. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/patches/lora_conversions/flux_xlabs_lora_conversion_utils.py +0 -0
  663. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/patches/lora_conversions/formats.py +0 -0
  664. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/patches/lora_conversions/kohya_key_utils.py +0 -0
  665. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/patches/lora_conversions/peft_adapter_utils.py +0 -0
  666. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/patches/lora_conversions/qwen_image_lora_constants.py +0 -0
  667. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/patches/lora_conversions/qwen_image_lora_conversion_utils.py +0 -0
  668. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/patches/lora_conversions/sd_lora_conversion_utils.py +0 -0
  669. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/patches/lora_conversions/sdxl_lora_conversion_utils.py +0 -0
  670. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/patches/lora_conversions/z_image_lora_constants.py +0 -0
  671. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/patches/lora_conversions/z_image_lora_conversion_utils.py +0 -0
  672. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/patches/model_patch_raw.py +0 -0
  673. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/patches/pad_with_zeros.py +0 -0
  674. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/quantization/__init__.py +0 -0
  675. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/quantization/bnb_llm_int8.py +0 -0
  676. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/quantization/bnb_nf4.py +0 -0
  677. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/quantization/gguf/ggml_tensor.py +0 -0
  678. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/quantization/gguf/loaders.py +0 -0
  679. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/quantization/gguf/utils.py +0 -0
  680. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/quantization/scripts/load_flux_model_bnb_llm_int8.py +0 -0
  681. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/quantization/scripts/load_flux_model_bnb_nf4.py +0 -0
  682. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/quantization/scripts/quantize_t5_xxl_bnb_llm_int8.py +0 -0
  683. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/raw_model.py +0 -0
  684. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/rectified_flow/__init__.py +0 -0
  685. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/rectified_flow/er_sde_scheduler.py +0 -0
  686. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/rectified_flow/rectified_flow_inpaint_extension.py +0 -0
  687. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/sig_lip/sig_lip_pipeline.py +0 -0
  688. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/spandrel_image_to_image_model.py +0 -0
  689. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/stable_diffusion/__init__.py +0 -0
  690. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/stable_diffusion/denoise_context.py +0 -0
  691. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/stable_diffusion/diffusers_pipeline.py +0 -0
  692. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/stable_diffusion/diffusion/__init__.py +0 -0
  693. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/stable_diffusion/diffusion/conditioning_data.py +0 -0
  694. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/stable_diffusion/diffusion/custom_atttention.py +0 -0
  695. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/stable_diffusion/diffusion/regional_ip_data.py +0 -0
  696. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/stable_diffusion/diffusion/regional_prompt_data.py +0 -0
  697. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/stable_diffusion/diffusion/shared_invokeai_diffusion.py +0 -0
  698. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/stable_diffusion/diffusion/unet_attention_patcher.py +0 -0
  699. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/stable_diffusion/diffusion_backend.py +0 -0
  700. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/stable_diffusion/extension_callback_type.py +0 -0
  701. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/stable_diffusion/extensions/base.py +0 -0
  702. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/stable_diffusion/extensions/controlnet.py +0 -0
  703. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/stable_diffusion/extensions/freeu.py +0 -0
  704. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/stable_diffusion/extensions/inpaint.py +0 -0
  705. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/stable_diffusion/extensions/inpaint_model.py +0 -0
  706. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/stable_diffusion/extensions/lora.py +0 -0
  707. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/stable_diffusion/extensions/preview.py +0 -0
  708. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/stable_diffusion/extensions/rescale_cfg.py +0 -0
  709. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/stable_diffusion/extensions/seamless.py +0 -0
  710. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/stable_diffusion/extensions/t2i_adapter.py +0 -0
  711. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/stable_diffusion/extensions_manager.py +0 -0
  712. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/stable_diffusion/multi_diffusion_pipeline.py +0 -0
  713. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/stable_diffusion/schedulers/__init__.py +0 -0
  714. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/stable_diffusion/schedulers/schedulers.py +0 -0
  715. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/stable_diffusion/vae_tiling.py +0 -0
  716. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/text_llm_pipeline.py +0 -0
  717. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/textual_inversion.py +0 -0
  718. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/tiles/__init__.py +0 -0
  719. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/tiles/tiles.py +0 -0
  720. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/tiles/utils.py +0 -0
  721. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/util/__init__.py +0 -0
  722. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/util/attention.py +0 -0
  723. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/util/build_line.py +0 -0
  724. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/util/calc_tensor_size.py +0 -0
  725. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/util/catch_sigint.py +0 -0
  726. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/util/devices.py +0 -0
  727. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/util/gallery_maintenance.py +0 -0
  728. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/util/hotfixes.py +0 -0
  729. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/util/logging.py +0 -0
  730. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/util/mask.py +0 -0
  731. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/util/original_weights_storage.py +0 -0
  732. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/util/prefix_logger_adapter.py +0 -0
  733. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/util/silence_warnings.py +0 -0
  734. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/util/test_utils.py +0 -0
  735. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/util/util.py +0 -0
  736. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/util/vae_working_memory.py +0 -0
  737. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/z_image/__init__.py +0 -0
  738. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/z_image/extensions/__init__.py +0 -0
  739. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/z_image/extensions/regional_prompting_extension.py +0 -0
  740. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/z_image/text_conditioning.py +0 -0
  741. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/z_image/z_image_control_adapter.py +0 -0
  742. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/z_image/z_image_control_transformer.py +0 -0
  743. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/z_image/z_image_controlnet_extension.py +0 -0
  744. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/z_image/z_image_patchify_utils.py +0 -0
  745. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/backend/z_image/z_image_transformer_patch.py +0 -0
  746. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/configs/controlnet/cldm_v15.yaml +0 -0
  747. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/configs/controlnet/cldm_v21.yaml +0 -0
  748. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/configs/stable-diffusion/sd_xl_base.yaml +0 -0
  749. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/configs/stable-diffusion/sd_xl_inpaint.yaml +0 -0
  750. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/configs/stable-diffusion/sd_xl_refiner.yaml +0 -0
  751. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/configs/stable-diffusion/v1-finetune.yaml +0 -0
  752. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/configs/stable-diffusion/v1-finetune_style.yaml +0 -0
  753. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/configs/stable-diffusion/v1-inference-v.yaml +0 -0
  754. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/configs/stable-diffusion/v1-inference.yaml +0 -0
  755. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/configs/stable-diffusion/v1-inpainting-inference.yaml +0 -0
  756. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/configs/stable-diffusion/v1-m1-finetune.yaml +0 -0
  757. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/configs/stable-diffusion/v2-inference-v.yaml +0 -0
  758. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/configs/stable-diffusion/v2-inference.yaml +0 -0
  759. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/configs/stable-diffusion/v2-inpainting-inference-v.yaml +0 -0
  760. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/configs/stable-diffusion/v2-inpainting-inference.yaml +0 -0
  761. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/configs/stable-diffusion/v2-midas-inference.yaml +0 -0
  762. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/frontend/__init__.py +0 -0
  763. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/frontend/cli/__init__.py +0 -0
  764. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/frontend/cli/arg_parser.py +0 -0
  765. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/frontend/install/__init__.py +0 -0
  766. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/frontend/install/import_images.py +0 -0
  767. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/frontend/web/__init__.py +0 -0
  768. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/frontend/web/dist/assets/App-BpG1b7ec.js +0 -0
  769. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/frontend/web/dist/assets/App-tn1JZtBo.css +0 -0
  770. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/frontend/web/dist/assets/browser-ponyfill-BpMPqZAt.js +0 -0
  771. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/frontend/web/dist/assets/chunk-jRWAZmH_.js +0 -0
  772. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/frontend/web/dist/assets/denoising-strength-4mznP2tj.png +0 -0
  773. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/frontend/web/dist/assets/images/commercial-license-bg.png +0 -0
  774. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/frontend/web/dist/assets/images/denoising-strength.png +0 -0
  775. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/frontend/web/dist/assets/images/invoke-alert-favicon.svg +0 -0
  776. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/frontend/web/dist/assets/images/invoke-avatar-circle.svg +0 -0
  777. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/frontend/web/dist/assets/images/invoke-avatar-square.svg +0 -0
  778. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/frontend/web/dist/assets/images/invoke-favicon.png +0 -0
  779. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/frontend/web/dist/assets/images/invoke-favicon.svg +0 -0
  780. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/frontend/web/dist/assets/images/invoke-key-char-lrg.svg +0 -0
  781. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/frontend/web/dist/assets/images/invoke-key-char-sml.svg +0 -0
  782. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/frontend/web/dist/assets/images/invoke-key-wht-lrg.svg +0 -0
  783. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/frontend/web/dist/assets/images/invoke-key-wht-sml.svg +0 -0
  784. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/frontend/web/dist/assets/images/invoke-symbol-char-lrg.svg +0 -0
  785. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/frontend/web/dist/assets/images/invoke-symbol-char-sml.svg +0 -0
  786. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/frontend/web/dist/assets/images/invoke-symbol-wht-lrg.svg +0 -0
  787. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/frontend/web/dist/assets/images/invoke-symbol-wht-sml.svg +0 -0
  788. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/frontend/web/dist/assets/images/invoke-symbol-ylw-lrg.svg +0 -0
  789. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/frontend/web/dist/assets/images/invoke-tag-char-lrg.svg +0 -0
  790. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/frontend/web/dist/assets/images/invoke-tag-char-sml.svg +0 -0
  791. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/frontend/web/dist/assets/images/invoke-tag-lrg.svg +0 -0
  792. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/frontend/web/dist/assets/images/invoke-tag-sml.svg +0 -0
  793. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/frontend/web/dist/assets/images/invoke-wordmark-charcoal.svg +0 -0
  794. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/frontend/web/dist/assets/images/invoke-wordmark-white.svg +0 -0
  795. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/frontend/web/dist/assets/images/mask.svg +0 -0
  796. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/frontend/web/dist/assets/index-D-rswhgj.js +0 -0
  797. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/frontend/web/dist/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2 +0 -0
  798. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/frontend/web/dist/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2 +0 -0
  799. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/frontend/web/dist/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2 +0 -0
  800. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/frontend/web/dist/assets/inter-greek-wght-normal-CkhJZR-_.woff2 +0 -0
  801. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/frontend/web/dist/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2 +0 -0
  802. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/frontend/web/dist/assets/inter-latin-wght-normal-Dx4kXJAl.woff2 +0 -0
  803. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/frontend/web/dist/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2 +0 -0
  804. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/frontend/web/dist/assets/worker-DrJIfe_t.js +0 -0
  805. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/frontend/web/dist/index.html +0 -0
  806. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/frontend/web/dist/locales/ar.json +0 -0
  807. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/frontend/web/dist/locales/az.json +0 -0
  808. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/frontend/web/dist/locales/bg.json +0 -0
  809. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/frontend/web/dist/locales/de.json +0 -0
  810. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/frontend/web/dist/locales/en-GB.json +0 -0
  811. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/frontend/web/dist/locales/en.json +0 -0
  812. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/frontend/web/dist/locales/es.json +0 -0
  813. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/frontend/web/dist/locales/fi.json +0 -0
  814. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/frontend/web/dist/locales/fr.json +0 -0
  815. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/frontend/web/dist/locales/he.json +0 -0
  816. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/frontend/web/dist/locales/hu.json +0 -0
  817. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/frontend/web/dist/locales/it.json +0 -0
  818. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/frontend/web/dist/locales/ja.json +0 -0
  819. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/frontend/web/dist/locales/ko.json +0 -0
  820. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/frontend/web/dist/locales/mn.json +0 -0
  821. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/frontend/web/dist/locales/nl.json +0 -0
  822. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/frontend/web/dist/locales/pl.json +0 -0
  823. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/frontend/web/dist/locales/pt-BR.json +0 -0
  824. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/frontend/web/dist/locales/pt.json +0 -0
  825. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/frontend/web/dist/locales/ro.json +0 -0
  826. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/frontend/web/dist/locales/ru.json +0 -0
  827. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/frontend/web/dist/locales/sv.json +0 -0
  828. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/frontend/web/dist/locales/tr.json +0 -0
  829. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/frontend/web/dist/locales/uk.json +0 -0
  830. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/frontend/web/dist/locales/vi.json +0 -0
  831. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/frontend/web/dist/locales/zh-CN.json +0 -0
  832. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/frontend/web/dist/locales/zh-Hant.json +0 -0
  833. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/frontend/web/scripts/clean_translations.py +0 -0
  834. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/frontend/web/static/docs/invoke-favicon-docs.svg +0 -0
  835. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/invocation_api/__init__.py +0 -0
  836. {invokeai-6.13.7 → invokeai-6.13.8}/invokeai/version/__init__.py +0 -0
  837. {invokeai-6.13.7 → invokeai-6.13.8}/pyproject.toml +0 -0
  838. {invokeai-6.13.7 → invokeai-6.13.8}/setup.cfg +0 -0
  839. {invokeai-6.13.7 → invokeai-6.13.8}/tests/test_asyncio_shutdown.py +0 -0
  840. {invokeai-6.13.7 → invokeai-6.13.8}/tests/test_config.py +0 -0
  841. {invokeai-6.13.7 → invokeai-6.13.8}/tests/test_dangerously_run_function_in_subprocess.py +0 -0
  842. {invokeai-6.13.7 → invokeai-6.13.8}/tests/test_docs_json_export.py +0 -0
  843. {invokeai-6.13.7 → invokeai-6.13.8}/tests/test_graph_execution_state.py +0 -0
  844. {invokeai-6.13.7 → invokeai-6.13.8}/tests/test_imports.py +0 -0
  845. {invokeai-6.13.7 → invokeai-6.13.8}/tests/test_invocation_cache_memory.py +0 -0
  846. {invokeai-6.13.7 → invokeai-6.13.8}/tests/test_item_storage_memory.py +0 -0
  847. {invokeai-6.13.7 → invokeai-6.13.8}/tests/test_model_hash.py +0 -0
  848. {invokeai-6.13.7 → invokeai-6.13.8}/tests/test_model_search.py +0 -0
  849. {invokeai-6.13.7 → invokeai-6.13.8}/tests/test_node_graph.py +0 -0
  850. {invokeai-6.13.7 → invokeai-6.13.8}/tests/test_nodes.py +0 -0
  851. {invokeai-6.13.7 → invokeai-6.13.8}/tests/test_object_serializer_disk.py +0 -0
  852. {invokeai-6.13.7 → invokeai-6.13.8}/tests/test_path.py +0 -0
  853. {invokeai-6.13.7 → invokeai-6.13.8}/tests/test_profiler.py +0 -0
  854. {invokeai-6.13.7 → invokeai-6.13.8}/tests/test_session_queue.py +0 -0
  855. {invokeai-6.13.7 → invokeai-6.13.8}/tests/test_sqlite_migrator.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: InvokeAI
3
- Version: 6.13.7
3
+ Version: 6.13.8
4
4
  Summary: A full-featured AI-assisted image generation environment designed for creatives and enthusiasts.
5
5
  Author-email: Invoke <support@invoke.ai>
6
6
  License: Apache License
@@ -24,7 +24,6 @@ invokeai/app/api/routers/board_images.py
24
24
  invokeai/app/api/routers/boards.py
25
25
  invokeai/app/api/routers/client_state.py
26
26
  invokeai/app/api/routers/custom_nodes.py
27
- invokeai/app/api/routers/download_queue.py
28
27
  invokeai/app/api/routers/images.py
29
28
  invokeai/app/api/routers/model_manager.py
30
29
  invokeai/app/api/routers/model_relationships.py
@@ -375,6 +374,7 @@ invokeai/app/util/metaenum.py
375
374
  invokeai/app/util/misc.py
376
375
  invokeai/app/util/model_exclude_null.py
377
376
  invokeai/app/util/profiler.py
377
+ invokeai/app/util/ssrf.py
378
378
  invokeai/app/util/startup_utils.py
379
379
  invokeai/app/util/step_callback.py
380
380
  invokeai/app/util/suppress_output.py
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: InvokeAI
3
- Version: 6.13.7
3
+ Version: 6.13.8
4
4
  Summary: A full-featured AI-assisted image generation environment designed for creatives and enthusiasts.
5
5
  Author-email: Invoke <support@invoke.ai>
6
6
  License: Apache License
@@ -150,8 +150,9 @@ def _redact_config_secrets(config: InvokeAIAppConfig) -> InvokeAIAppConfig:
150
150
  configured.
151
151
 
152
152
  NOTE: coverage is by convention, not automatic. Only `*_api_key` fields listed in
153
- EXTERNAL_PROVIDER_CONFIG_FIELDS plus `remote_api_tokens` are masked. If you add a credential to
154
- InvokeAIAppConfig under any other name, you must extend this function or it will be served verbatim.
153
+ EXTERNAL_PROVIDER_CONFIG_FIELDS plus `remote_api_tokens` and credentials embedded in
154
+ `download_proxy` are masked. If you add a credential to InvokeAIAppConfig under any other
155
+ name, you must extend this function or it will be served verbatim.
155
156
  """
156
157
  updates: dict[str, Any] = {}
157
158
 
@@ -166,6 +167,9 @@ def _redact_config_secrets(config: InvokeAIAppConfig) -> InvokeAIAppConfig:
166
167
  pair.model_copy(update={"token": REDACTED_SECRET}) for pair in config.remote_api_tokens
167
168
  ]
168
169
 
170
+ if config.download_proxy and "@" in config.download_proxy:
171
+ updates["download_proxy"] = REDACTED_SECRET
172
+
169
173
  return config.model_copy(update=updates) if updates else config
170
174
 
171
175
 
@@ -260,6 +260,17 @@ class SocketIO:
260
260
  async def _handle_unsub_bulk_download(self, sid: str, data: Any) -> None:
261
261
  await self._sio.leave_room(sid, BulkDownloadSubscriptionEvent(**data).bulk_download_id)
262
262
 
263
+ def _admin_sids(self) -> list[str]:
264
+ """Sockets belonging to administrators, identified at connect time.
265
+
266
+ The "admin" room is only entered on queue subscription, so it cannot carry events
267
+ that are not tied to a queue: a socket that has connected but not yet sent
268
+ `subscribe_queue` is in no rooms at all and would miss them. `_socket_users` is
269
+ populated in `_handle_connect`, so addressing those sockets directly covers the
270
+ window between connect and subscribe.
271
+ """
272
+ return [sid for sid, info in self._socket_users.items() if info.get("is_admin")]
273
+
263
274
  async def _handle_queue_event(self, event: FastAPIEvent[QueueEventBase]):
264
275
  """Handle queue events with user isolation.
265
276
 
@@ -354,7 +365,24 @@ class SocketIO:
354
365
  logger.error(f"Error handling queue event {event[0]}: {e}", exc_info=True)
355
366
 
356
367
  async def _handle_model_event(self, event: FastAPIEvent[ModelEventBase | DownloadEventBase]) -> None:
357
- await self._sio.emit(event=event[0], data=event[1].model_dump(mode="json"))
368
+ event_name, event_data = event
369
+
370
+ # Model load events drive the loading-models spinner in every client, so they stay
371
+ # broadcast. Their `config` does carry `path` and `source`, but any authenticated user
372
+ # can already read those for every model from `list_model_records`, so broadcasting
373
+ # them discloses nothing new. (Upstream routes these to the triggering user's room
374
+ # instead, which needs a `user_id` on the event that this release line does not have.)
375
+ if isinstance(event_data, (ModelLoadStartedEvent, ModelLoadCompleteEvent)):
376
+ await self._sio.emit(event=event_name, data=event_data.model_dump(mode="json"))
377
+ return
378
+
379
+ # Model install and download events contain signed source URLs and server filesystem
380
+ # paths. They feed the admin-only model manager UI and must not be broadcast to users.
381
+ # Addressed to the admin sockets rather than the "admin" room because that room is only
382
+ # entered on queue subscription, and these events are not tied to a queue.
383
+ admin_sids = self._admin_sids()
384
+ if admin_sids:
385
+ await self._sio.emit(event=event_name, data=event_data.model_dump(mode="json"), to=admin_sids)
358
386
 
359
387
  async def _handle_bulk_image_download_event(self, event: FastAPIEvent[BulkDownloadEventBase]) -> None:
360
388
  event_name, event_data = event
@@ -22,7 +22,6 @@ from invokeai.app.api.routers import (
22
22
  boards,
23
23
  client_state,
24
24
  custom_nodes,
25
- download_queue,
26
25
  images,
27
26
  model_manager,
28
27
  model_relationships,
@@ -175,7 +174,6 @@ app.add_middleware(GZipMiddleware, minimum_size=1000)
175
174
  app.include_router(auth.auth_router, prefix="/api")
176
175
  app.include_router(utilities.utilities_router, prefix="/api")
177
176
  app.include_router(model_manager.model_manager_router, prefix="/api")
178
- app.include_router(download_queue.download_queue_router, prefix="/api")
179
177
  app.include_router(images.images_router, prefix="/api")
180
178
  app.include_router(boards.boards_router, prefix="/api")
181
179
  app.include_router(board_images.board_images_router, prefix="/api")
@@ -122,6 +122,8 @@ class InvokeAIAppConfig(BaseSettings):
122
122
  hashing_algorithm: Model hashing algorthim for model installs. 'blake3_multi' is best for SSDs. 'blake3_single' is best for spinning disk HDDs. 'random' disables hashing, instead assigning a UUID to models. Useful when using a memory db to reduce model installation time, or if you don't care about storing stable hashes for models. Alternatively, any other hashlib algorithm is accepted, though these are not nearly as performant as blake3.<br>Valid values: `blake3_multi`, `blake3_single`, `random`, `md5`, `sha1`, `sha224`, `sha256`, `sha384`, `sha512`, `blake2b`, `blake2s`, `sha3_224`, `sha3_256`, `sha3_384`, `sha3_512`, `shake_128`, `shake_256`
123
123
  remote_api_tokens: List of regular expression and token pairs used when downloading models from URLs. The download URL is tested against the regex, and if it matches, the token is provided in as a Bearer token.
124
124
  scan_models_on_startup: Scan the models directory on startup, registering orphaned models. This is typically only used in conjunction with `use_memory_db` for testing purposes.
125
+ allow_private_download_urls: Allow the download queue to fetch from loopback, link-local and private-network addresses. Disabled by default so that a download URL cannot be used to reach services that are only reachable from the server. Enable this only if you install models from a mirror on your own network.
126
+ download_proxy: Optional HTTP proxy for model downloads. The proxy must enforce the public-address policy because proxy-side DNS cannot be checked by InvokeAI.
125
127
  unsafe_disable_picklescan: UNSAFE. Disable the picklescan security check during model installation. Recommended only for development and testing purposes. This will allow arbitrary code execution during model installation, so should never be used in production.
126
128
  allow_unknown_models: Allow installation of models that we are unable to identify. If enabled, models will be marked as `unknown` in the database, and will not have any metadata associated with them. If disabled, unknown models will be rejected during installation.
127
129
  multiuser: Enable multiuser support. When disabled, the application runs in single-user mode using a default system account with administrator privileges. When enabled, requires user authentication and authorization.
@@ -226,6 +228,8 @@ class InvokeAIAppConfig(BaseSettings):
226
228
  hashing_algorithm: HASHING_ALGORITHMS = Field(default="blake3_single", description="Model hashing algorthim for model installs. 'blake3_multi' is best for SSDs. 'blake3_single' is best for spinning disk HDDs. 'random' disables hashing, instead assigning a UUID to models. Useful when using a memory db to reduce model installation time, or if you don't care about storing stable hashes for models. Alternatively, any other hashlib algorithm is accepted, though these are not nearly as performant as blake3.")
227
229
  remote_api_tokens: Optional[list[URLRegexTokenPair]] = Field(default=None, description="List of regular expression and token pairs used when downloading models from URLs. The download URL is tested against the regex, and if it matches, the token is provided in as a Bearer token.")
228
230
  scan_models_on_startup: bool = Field(default=False, description="Scan the models directory on startup, registering orphaned models. This is typically only used in conjunction with `use_memory_db` for testing purposes.")
231
+ allow_private_download_urls: bool = Field(default=False, description="Allow the download queue to fetch from loopback, link-local and private-network addresses. Disabled by default so that a download URL cannot be used to reach services that are only reachable from the server. Enable this only if you install models from a mirror on your own network.")
232
+ download_proxy: Optional[str] = Field(default=None, description="Optional HTTP proxy for model downloads. The proxy must enforce the public-address policy because proxy-side DNS cannot be checked by InvokeAI.")
229
233
  unsafe_disable_picklescan: bool = Field(default=False, description="UNSAFE. Disable the picklescan security check during model installation. Recommended only for development and testing purposes. This will allow arbitrary code execution during model installation, so should never be used in production.")
230
234
  allow_unknown_models: bool = Field(default=True, description="Allow installation of models that we are unable to identify. If enabled, models will be marked as `unknown` in the database, and will not have any metadata associated with them. If disabled, unknown models will be rejected during installation.")
231
235
 
@@ -7,7 +7,7 @@ from functools import total_ordering
7
7
  from pathlib import Path
8
8
  from typing import Any, Callable, List, Optional, Set, Union
9
9
 
10
- from pydantic import BaseModel, Field, PrivateAttr
10
+ from pydantic import BaseModel, Field, PrivateAttr, field_serializer
11
11
  from pydantic.networks import AnyHttpUrl
12
12
 
13
13
  from invokeai.backend.model_manager.metadata import RemoteModelFile
@@ -60,6 +60,17 @@ class DownloadJobBase(BaseModel):
60
60
  error_type: Optional[str] = Field(default=None, description="Name of exception that caused an error")
61
61
  error: Optional[str] = Field(default=None, description="Traceback of the exception that caused an error")
62
62
 
63
+ @field_serializer("dest", "download_path")
64
+ def _serialize_path(self, path: Optional[Path]) -> Optional[str]:
65
+ """Emit paths with forward slashes so the wire format does not depend on the server's OS.
66
+
67
+ `str(WindowsPath("models/x.bin"))` is `models\\x.bin`, so without this a client that
68
+ submits a POSIX-style `dest` gets a different spelling back from a Windows host than
69
+ from a Linux one. The download events already normalise this way - see
70
+ `DownloadStartedEvent.build` in `events_common.py`.
71
+ """
72
+ return path.as_posix() if path is not None else None
73
+
63
74
  # internal flag
64
75
  _cancelled: bool = PrivateAttr(default=False)
65
76
  _paused: bool = PrivateAttr(default=False)
@@ -6,11 +6,11 @@ import re
6
6
  import threading
7
7
  import time
8
8
  import traceback
9
- from pathlib import Path
9
+ from pathlib import Path, PurePosixPath, PureWindowsPath
10
10
  from queue import Empty, PriorityQueue
11
11
  from shutil import disk_usage
12
12
  from typing import TYPE_CHECKING, Any, Dict, List, Literal, Optional, Set
13
- from urllib.parse import urlparse
13
+ from urllib.parse import urljoin, urlparse
14
14
 
15
15
  import requests
16
16
  from pydantic.networks import AnyHttpUrl
@@ -31,6 +31,7 @@ from invokeai.app.services.download.download_base import (
31
31
  UnknownJobIDException,
32
32
  )
33
33
  from invokeai.app.util.misc import get_iso_timestamp
34
+ from invokeai.app.util.ssrf import build_guarded_session, validate_download_url, warn_if_proxied
34
35
  from invokeai.backend.model_manager.metadata import RemoteModelFile
35
36
  from invokeai.backend.util.logging import InvokeAILogger
36
37
 
@@ -71,7 +72,27 @@ class DownloadQueueService(DownloadQueueServiceBase):
71
72
  self._lock = threading.Lock()
72
73
  self._logger = InvokeAILogger.get_logger("DownloadQueueService")
73
74
  self._event_bus = event_bus
74
- self._requests = requests_session or requests.Session()
75
+ # A caller-supplied session is left exactly as given (the tests inject mock
76
+ # transports). Sessions we build ourselves refuse to connect to a non-public
77
+ # address, which is the check that holds against DNS rebinding and against host
78
+ # spellings that `requests` decodes differently from us.
79
+ self._request_proxies: Optional[Dict[str, str]] = None
80
+ if requests_session is not None:
81
+ self._requests = requests_session
82
+ elif self._app_config.allow_private_download_urls:
83
+ # The operator has opted out of the address policy, so ambient proxy variables
84
+ # keep working here exactly as they always have — but an explicitly configured
85
+ # download_proxy must still be honored rather than silently ignored when both
86
+ # settings are present. It is applied per request (see the single call site in
87
+ # _do_download) because that is the only level that takes precedence over
88
+ # ambient *_PROXY variables in a plain Session.
89
+ self._requests = requests.Session()
90
+ if self._app_config.download_proxy:
91
+ proxy = self._app_config.download_proxy
92
+ self._request_proxies = {"http": proxy, "https": proxy}
93
+ else:
94
+ self._requests = build_guarded_session(proxy=self._app_config.download_proxy)
95
+ warn_if_proxied(self._requests, self._logger)
75
96
  self._accept_download_requests = False
76
97
  self._max_parallel_dl = max_parallel_dl
77
98
 
@@ -418,8 +439,18 @@ class DownloadQueueService(DownloadQueueServiceBase):
418
439
  job.resume_message = "Partial file missing. Restarted download from the beginning."
419
440
 
420
441
  # Make a streaming request. This will retrieve headers including
421
- # content-length and content-disposition, but not fetch any content itself
422
- resp = self._requests.get(str(url), headers=header, stream=True)
442
+ # content-length and content-disposition, but not fetch any content itself.
443
+ # The URL is checked here rather than at submit time so that it is the address we
444
+ # are about to connect to that gets vetted, and the response hook re-checks every
445
+ # redirect hop — otherwise a public URL could bounce us onto a private address.
446
+ self._validate_url(url)
447
+ resp = self._requests.get(
448
+ str(url),
449
+ headers=header,
450
+ stream=True,
451
+ hooks={"response": self._reject_unsafe_redirect},
452
+ proxies=self._request_proxies,
453
+ )
423
454
  job.final_url = str(resp.url) if resp.url else None
424
455
  self._logger.debug(
425
456
  "Resume response: "
@@ -467,6 +498,11 @@ class DownloadQueueService(DownloadQueueServiceBase):
467
498
  if self._validate_filename(job.dest.as_posix(), remote_name):
468
499
  file_name = remote_name
469
500
 
501
+ # The URL path is attacker-influenced too -- a final segment of ".." would
502
+ # otherwise put download_path one level above dest.
503
+ if not self._validate_filename(job.dest.as_posix(), file_name):
504
+ raise ValueError(f"Cannot derive a safe filename for {url} from '{file_name}'")
505
+
470
506
  job.download_path = job.dest / file_name
471
507
 
472
508
  else:
@@ -578,13 +614,40 @@ class DownloadQueueService(DownloadQueueServiceBase):
578
614
  self._logger.debug(f"{job.source}: saved to {job.download_path} (bytes={job.bytes})")
579
615
  in_progress_path.rename(job.download_path)
580
616
 
617
+ def _validate_url(self, url: str) -> None:
618
+ """Refuse to fetch URLs that point at addresses only the server can reach."""
619
+ validate_download_url(str(url), allow_private_urls=self._app_config.allow_private_download_urls)
620
+
621
+ def _reject_unsafe_redirect(self, response: requests.Response, *args: Any, **kwargs: Any) -> requests.Response:
622
+ """Response hook: vet each redirect target before `requests` follows it."""
623
+ if response.is_redirect or response.is_permanent_redirect:
624
+ location = response.headers.get("location")
625
+ if location:
626
+ try:
627
+ self._validate_url(urljoin(response.url, location))
628
+ except Exception:
629
+ response.close()
630
+ raise
631
+ return response
632
+
581
633
  def _validate_filename(self, directory: str, filename: str) -> bool:
582
634
  pc_name_max = get_pc_name_max(directory)
583
635
  pc_path_max = get_pc_path_max(directory)
584
- if "/" in filename:
636
+ # The name must be a single path component. A remote server picks this value, so
637
+ # separators of either flavour, drive letters and '..' all have to be rejected --
638
+ # on Windows `Path(dir) / "..\\evil"` escapes `dir` even though it has no '/'.
639
+ if "/" in filename or "\\" in filename:
640
+ return False
641
+ if filename in ("", ".", ".."):
585
642
  return False
586
643
  if filename.startswith(".."):
587
644
  return False
645
+ if PurePosixPath(filename).is_absolute() or PureWindowsPath(filename).is_absolute():
646
+ return False
647
+ # `WindowsPath("D:/dest") / "C:evil"` yields "C:evil" -- a drive-relative name
648
+ # replaces the destination entirely without ever looking absolute.
649
+ if PureWindowsPath(filename).drive:
650
+ return False
588
651
  if len(filename) > pc_name_max:
589
652
  return False
590
653
  if len(os.path.join(directory, filename)) > pc_path_max:
@@ -355,7 +355,8 @@ class ModelInstallService(ModelInstallServiceBase):
355
355
  self._logger.debug("calling stop_event.set()")
356
356
  self._stop_event.set()
357
357
  self._clear_pending_jobs()
358
- self._download_cache.clear()
358
+ with self._lock:
359
+ self._download_cache.clear()
359
360
  assert self._install_thread is not None
360
361
  self._install_thread.join()
361
362
  self._running = False
@@ -520,7 +521,14 @@ class ModelInstallService(ModelInstallServiceBase):
520
521
  self._wait_for_restore_complete()
521
522
 
522
523
  start = time.time()
523
- while len(self._download_cache) > 0:
524
+ while True:
525
+ # The completion callback removes a download from this cache while holding
526
+ # the same lock it uses to enqueue the install. Do not observe the cache
527
+ # between those two operations.
528
+ with self._lock:
529
+ downloads_pending = bool(self._download_cache)
530
+ if not downloads_pending:
531
+ break
524
532
  if self._downloads_changed_event.wait(timeout=0.25): # in case we miss an event
525
533
  self._downloads_changed_event.clear()
526
534
  if timeout > 0 and time.time() - start > timeout:
@@ -1257,7 +1265,8 @@ class ModelInstallService(ModelInstallServiceBase):
1257
1265
  part.final_url = meta.get("final_url") or part.final_url
1258
1266
  if meta.get("download_path"):
1259
1267
  part.download_path = Path(meta.get("download_path"))
1260
- self._download_cache[multifile_job.id] = job
1268
+ with self._lock:
1269
+ self._download_cache[multifile_job.id] = job
1261
1270
  job._multifile_job = multifile_job
1262
1271
 
1263
1272
  self._write_install_marker(job, status=InstallStatus.WAITING)