InvokeAI 6.14.1__tar.gz → 6.14.2__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 (1081) hide show
  1. {invokeai-6.14.1 → invokeai-6.14.2}/InvokeAI.egg-info/PKG-INFO +2 -1
  2. {invokeai-6.14.1 → invokeai-6.14.2}/InvokeAI.egg-info/SOURCES.txt +9 -2
  3. {invokeai-6.14.1 → invokeai-6.14.2}/InvokeAI.egg-info/requires.txt +1 -0
  4. {invokeai-6.14.1 → invokeai-6.14.2}/PKG-INFO +2 -1
  5. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/api/routers/model_manager.py +66 -10
  6. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/api/routers/utilities.py +285 -1
  7. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/api/routers/videos.py +11 -10
  8. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/fields.py +37 -1
  9. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/flux2_denoise.py +93 -42
  10. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/krea2_denoise.py +225 -43
  11. invokeai-6.14.2/invokeai/app/invocations/krea2_style_reference.py +235 -0
  12. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/krea2_text_encoder.py +2 -68
  13. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/primitives.py +15 -0
  14. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/qwen_image_image_to_latents.py +6 -9
  15. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/qwen_image_latents_to_image.py +9 -9
  16. invokeai-6.14.2/invokeai/app/invocations/qwen_image_text_encoder.py +493 -0
  17. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/config/config_default.py +27 -0
  18. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/model_images/model_images_default.py +28 -4
  19. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/model_install/model_install_default.py +21 -1
  20. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/model_records/model_records_base.py +7 -0
  21. invokeai-6.14.2/invokeai/app/services/object_serializer/object_serializer_common.py +12 -0
  22. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/object_serializer/object_serializer_disk.py +21 -2
  23. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/shared/invocation_context.py +20 -0
  24. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/shared/sqlite_migrator/migrations/migration_24.py +9 -1
  25. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/urls/urls_default.py +4 -1
  26. invokeai-6.14.2/invokeai/app/util/path_safety.py +89 -0
  27. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/util/ssrf.py +9 -6
  28. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/flux2/sampling_utils.py +113 -0
  29. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/ideogram4/quantized_loading.py +5 -5
  30. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/krea2/attention.py +83 -13
  31. invokeai-6.14.2/invokeai/backend/krea2/style_reference.py +462 -0
  32. invokeai-6.14.2/invokeai/backend/krea2/style_reference_extension.py +186 -0
  33. invokeai-6.14.2/invokeai/backend/krea2/style_reference_rf.py +56 -0
  34. invokeai-6.14.2/invokeai/backend/krea2/text_encoding.py +126 -0
  35. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/model_manager/configs/mistral_encoder.py +5 -1
  36. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/model_manager/configs/pid_decoder.py +13 -8
  37. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/model_manager/configs/qwen3_encoder.py +117 -57
  38. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/model_manager/load/model_cache/model_cache.py +75 -2
  39. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/model_manager/load/model_loaders/anima.py +8 -11
  40. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/model_manager/load/model_loaders/flux.py +25 -22
  41. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/model_manager/load/model_loaders/gemma2_encoder.py +2 -2
  42. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/model_manager/load/model_loaders/ideogram4.py +9 -8
  43. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/model_manager/load/model_loaders/krea2.py +10 -19
  44. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/model_manager/load/model_loaders/mistral_encoder.py +17 -7
  45. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/model_manager/load/model_loaders/qwen_image.py +8 -7
  46. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/model_manager/load/model_loaders/vae.py +3 -2
  47. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/model_manager/load/model_loaders/z_image.py +25 -14
  48. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/model_manager/starter_models.py +0 -9
  49. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/model_manager/util/lora_metadata_extractor.py +8 -0
  50. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/pid/decode.py +7 -9
  51. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/quantization/gguf/ggml_tensor.py +7 -1
  52. invokeai-6.14.2/invokeai/backend/quantization/gguf/loaders.py +121 -0
  53. invokeai-6.14.2/invokeai/backend/quantization/sdnq/detection.py +93 -0
  54. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/quantization/sdnq/loaders.py +10 -8
  55. invokeai-6.14.2/invokeai/backend/util/state_dict_loading.py +145 -0
  56. invokeai-6.14.2/invokeai/frontend/web/dist/assets/App-DvlZKGz7.js +157 -0
  57. invokeai-6.14.2/invokeai/frontend/web/dist/assets/index-BuK6cFYB.js +444 -0
  58. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/frontend/web/dist/index.html +1 -1
  59. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/frontend/web/dist/locales/en.json +17 -5
  60. invokeai-6.14.2/invokeai/version/invokeai_version.py +1 -0
  61. {invokeai-6.14.1 → invokeai-6.14.2}/pyproject.toml +1 -0
  62. {invokeai-6.14.1 → invokeai-6.14.2}/tests/test_config.py +22 -0
  63. {invokeai-6.14.1 → invokeai-6.14.2}/tests/test_object_serializer_disk.py +81 -1
  64. invokeai-6.14.1/invokeai/app/invocations/qwen_image_text_encoder.py +0 -325
  65. invokeai-6.14.1/invokeai/app/services/object_serializer/object_serializer_common.py +0 -5
  66. invokeai-6.14.1/invokeai/backend/quantization/gguf/loaders.py +0 -57
  67. invokeai-6.14.1/invokeai/backend/quantization/sdnq/detection.py +0 -62
  68. invokeai-6.14.1/invokeai/frontend/web/dist/assets/App-CKkzUo1u.js +0 -157
  69. invokeai-6.14.1/invokeai/frontend/web/dist/assets/index-BRHi9LIu.js +0 -444
  70. invokeai-6.14.1/invokeai/version/invokeai_version.py +0 -1
  71. {invokeai-6.14.1 → invokeai-6.14.2}/InvokeAI.egg-info/dependency_links.txt +0 -0
  72. {invokeai-6.14.1 → invokeai-6.14.2}/InvokeAI.egg-info/entry_points.txt +0 -0
  73. {invokeai-6.14.1 → invokeai-6.14.2}/InvokeAI.egg-info/top_level.txt +0 -0
  74. {invokeai-6.14.1 → invokeai-6.14.2}/LICENSE +0 -0
  75. {invokeai-6.14.1 → invokeai-6.14.2}/LICENSE-HiDiffusion.txt +0 -0
  76. {invokeai-6.14.1 → invokeai-6.14.2}/LICENSE-PiD.txt +0 -0
  77. {invokeai-6.14.1 → invokeai-6.14.2}/LICENSE-SD1+SD2.txt +0 -0
  78. {invokeai-6.14.1 → invokeai-6.14.2}/LICENSE-SDXL.txt +0 -0
  79. {invokeai-6.14.1 → invokeai-6.14.2}/README.md +0 -0
  80. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/__init__.py +0 -0
  81. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/api/auth_dependencies.py +0 -0
  82. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/api/dependencies.py +0 -0
  83. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/api/extract_metadata_from_image.py +0 -0
  84. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/api/no_cache_staticfiles.py +0 -0
  85. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/api/routers/_access.py +0 -0
  86. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/api/routers/app_info.py +0 -0
  87. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/api/routers/auth.py +0 -0
  88. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/api/routers/board_images.py +0 -0
  89. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/api/routers/boards.py +0 -0
  90. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/api/routers/client_state.py +0 -0
  91. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/api/routers/custom_nodes.py +0 -0
  92. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/api/routers/gallery.py +0 -0
  93. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/api/routers/image_move_maintenance.py +0 -0
  94. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/api/routers/image_moves.py +0 -0
  95. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/api/routers/images.py +0 -0
  96. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/api/routers/model_relationships.py +0 -0
  97. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/api/routers/recall_parameters.py +0 -0
  98. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/api/routers/session_queue.py +0 -0
  99. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/api/routers/style_presets.py +0 -0
  100. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/api/routers/system_prompts.py +0 -0
  101. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/api/routers/virtual_boards.py +0 -0
  102. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/api/routers/workflows.py +0 -0
  103. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/api/sockets.py +0 -0
  104. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/api_app.py +0 -0
  105. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/assets/images/caution.png +0 -0
  106. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/__init__.py +0 -0
  107. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/anima_denoise.py +0 -0
  108. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/anima_image_to_latents.py +0 -0
  109. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/anima_latents_to_image.py +0 -0
  110. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/anima_lllite.py +0 -0
  111. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/anima_lora_loader.py +0 -0
  112. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/anima_model_loader.py +0 -0
  113. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/anima_text_encoder.py +0 -0
  114. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/baseinvocation.py +0 -0
  115. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/batch.py +0 -0
  116. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/blend_latents.py +0 -0
  117. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/call_saved_workflow.py +0 -0
  118. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/canny.py +0 -0
  119. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/canvas.py +0 -0
  120. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/cogview4_denoise.py +0 -0
  121. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/cogview4_image_to_latents.py +0 -0
  122. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/cogview4_latents_to_image.py +0 -0
  123. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/cogview4_model_loader.py +0 -0
  124. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/cogview4_text_encoder.py +0 -0
  125. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/collections.py +0 -0
  126. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/color_map.py +0 -0
  127. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/compel.py +0 -0
  128. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/composition-nodes.py +0 -0
  129. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/constants.py +0 -0
  130. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/content_shuffle.py +0 -0
  131. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/controlnet.py +0 -0
  132. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/create_denoise_mask.py +0 -0
  133. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/create_gradient_mask.py +0 -0
  134. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/crop_latents.py +0 -0
  135. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/custom_nodes/README.md +0 -0
  136. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/cv.py +0 -0
  137. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/denoise_latents.py +0 -0
  138. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/depth_anything.py +0 -0
  139. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/dw_openpose.py +0 -0
  140. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/ernie_image_denoise.py +0 -0
  141. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/ernie_image_model_loader.py +0 -0
  142. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/ernie_image_prompt_enhancer.py +0 -0
  143. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/ernie_image_text_encoder.py +0 -0
  144. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/ernie_image_vae_decode.py +0 -0
  145. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/external_image_generation.py +0 -0
  146. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/facetools.py +0 -0
  147. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/flux2_dev_lora_loader.py +0 -0
  148. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/flux2_dev_model_loader.py +0 -0
  149. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/flux2_dev_text_encoder.py +0 -0
  150. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/flux2_klein_lora_loader.py +0 -0
  151. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/flux2_klein_model_loader.py +0 -0
  152. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/flux2_klein_text_encoder.py +0 -0
  153. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/flux2_pid_decode.py +0 -0
  154. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/flux2_vae_decode.py +0 -0
  155. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/flux2_vae_encode.py +0 -0
  156. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/flux_control_lora_loader.py +0 -0
  157. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/flux_controlnet.py +0 -0
  158. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/flux_denoise.py +0 -0
  159. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/flux_fill.py +0 -0
  160. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/flux_ip_adapter.py +0 -0
  161. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/flux_kontext.py +0 -0
  162. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/flux_lora_loader.py +0 -0
  163. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/flux_model_loader.py +0 -0
  164. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/flux_pid_decode.py +0 -0
  165. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/flux_redux.py +0 -0
  166. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/flux_text_encoder.py +0 -0
  167. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/flux_vae_decode.py +0 -0
  168. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/flux_vae_encode.py +0 -0
  169. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/gemma2_encoder_loader.py +0 -0
  170. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/grounding_dino.py +0 -0
  171. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/hed.py +0 -0
  172. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/ideal_size.py +0 -0
  173. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/ideogram4_caption.py +0 -0
  174. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/ideogram4_denoise.py +0 -0
  175. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/ideogram4_latents_to_image.py +0 -0
  176. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/ideogram4_model_loader.py +0 -0
  177. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/ideogram4_text_encoder.py +0 -0
  178. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/image.py +0 -0
  179. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/image_panels.py +0 -0
  180. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/image_to_latents.py +0 -0
  181. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/infill.py +0 -0
  182. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/ip_adapter.py +0 -0
  183. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/krea2_conditioning_rebalance.py +0 -0
  184. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/krea2_lora_loader.py +0 -0
  185. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/krea2_model_loader.py +0 -0
  186. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/krea2_seed_variance.py +0 -0
  187. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/latent_noise.py +0 -0
  188. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/latents_to_image.py +0 -0
  189. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/lineart.py +0 -0
  190. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/lineart_anime.py +0 -0
  191. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/llava_onevision_vllm.py +0 -0
  192. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/load_custom_nodes.py +0 -0
  193. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/logic.py +0 -0
  194. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/mask.py +0 -0
  195. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/math.py +0 -0
  196. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/mediapipe_face.py +0 -0
  197. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/metadata.py +0 -0
  198. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/metadata_linked.py +0 -0
  199. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/mlsd.py +0 -0
  200. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/model.py +0 -0
  201. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/noise.py +0 -0
  202. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/normal_bae.py +0 -0
  203. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/param_easing.py +0 -0
  204. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/pbr_maps.py +0 -0
  205. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/pid_decoder_loader.py +0 -0
  206. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/pid_upscale.py +0 -0
  207. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/pidi.py +0 -0
  208. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/prompt.py +0 -0
  209. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/prompt_template.py +0 -0
  210. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/qwen_image_denoise.py +0 -0
  211. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/qwen_image_lora_loader.py +0 -0
  212. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/qwen_image_model_loader.py +0 -0
  213. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/qwen_image_pid_decode.py +0 -0
  214. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/resize_latents.py +0 -0
  215. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/scheduler.py +0 -0
  216. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/sd3_denoise.py +0 -0
  217. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/sd3_image_to_latents.py +0 -0
  218. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/sd3_latents_to_image.py +0 -0
  219. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/sd3_model_loader.py +0 -0
  220. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/sd3_pid_decode.py +0 -0
  221. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/sd3_text_encoder.py +0 -0
  222. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/sdxl.py +0 -0
  223. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/sdxl_pid_decode.py +0 -0
  224. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/segment_anything.py +0 -0
  225. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/spandrel_image_to_image.py +0 -0
  226. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/strings.py +0 -0
  227. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/t2i_adapter.py +0 -0
  228. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/text_llm.py +0 -0
  229. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/tiled_multi_diffusion_denoise_latents.py +0 -0
  230. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/tiles.py +0 -0
  231. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/upscale.py +0 -0
  232. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/util.py +0 -0
  233. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/video_concat.py +0 -0
  234. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/video_frame_extract.py +0 -0
  235. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/video_frame_extract_range.py +0 -0
  236. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/wan_denoise.py +0 -0
  237. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/wan_ideal_dimensions.py +0 -0
  238. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/wan_image_to_latents.py +0 -0
  239. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/wan_latents_to_image.py +0 -0
  240. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/wan_latents_to_video.py +0 -0
  241. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/wan_lora_loader.py +0 -0
  242. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/wan_model_loader.py +0 -0
  243. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/wan_ref_image_encoder.py +0 -0
  244. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/wan_text_encoder.py +0 -0
  245. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/wan_video_denoise.py +0 -0
  246. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/workflow_return.py +0 -0
  247. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/z_image_control.py +0 -0
  248. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/z_image_denoise.py +0 -0
  249. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/z_image_image_to_latents.py +0 -0
  250. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/z_image_latents_to_image.py +0 -0
  251. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/z_image_lora_loader.py +0 -0
  252. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/z_image_model_loader.py +0 -0
  253. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/z_image_pid_decode.py +0 -0
  254. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/z_image_seed_variance_enhancer.py +0 -0
  255. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/invocations/z_image_text_encoder.py +0 -0
  256. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/run_app.py +0 -0
  257. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/__init__.py +0 -0
  258. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/app_settings/__init__.py +0 -0
  259. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/app_settings/app_settings_service.py +0 -0
  260. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/auth/__init__.py +0 -0
  261. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/auth/password_utils.py +0 -0
  262. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/auth/token_service.py +0 -0
  263. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/board_image_records/__init__.py +0 -0
  264. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/board_image_records/board_image_records_base.py +0 -0
  265. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/board_image_records/board_image_records_sqlite.py +0 -0
  266. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/board_images/__init__.py +0 -0
  267. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/board_images/board_images_base.py +0 -0
  268. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/board_images/board_images_common.py +0 -0
  269. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/board_images/board_images_default.py +0 -0
  270. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/board_records/board_records_base.py +0 -0
  271. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/board_records/board_records_common.py +0 -0
  272. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/board_records/board_records_sqlite.py +0 -0
  273. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/board_video_records/__init__.py +0 -0
  274. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/board_video_records/board_video_records_base.py +0 -0
  275. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/board_video_records/board_video_records_sqlite.py +0 -0
  276. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/boards/__init__.py +0 -0
  277. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/boards/boards_base.py +0 -0
  278. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/boards/boards_common.py +0 -0
  279. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/boards/boards_default.py +0 -0
  280. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/bulk_download/__init__.py +0 -0
  281. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/bulk_download/bulk_download_base.py +0 -0
  282. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/bulk_download/bulk_download_common.py +0 -0
  283. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/bulk_download/bulk_download_default.py +0 -0
  284. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/client_state_persistence/client_state_persistence_base.py +0 -0
  285. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/client_state_persistence/client_state_persistence_sqlite.py +0 -0
  286. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/config/__init__.py +0 -0
  287. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/config/config_common.py +0 -0
  288. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/download/__init__.py +0 -0
  289. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/download/download_base.py +0 -0
  290. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/download/download_default.py +0 -0
  291. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/events/__init__.py +0 -0
  292. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/events/events_base.py +0 -0
  293. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/events/events_common.py +0 -0
  294. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/events/events_fastapievents.py +0 -0
  295. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/external_generation/__init__.py +0 -0
  296. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/external_generation/errors.py +0 -0
  297. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/external_generation/external_generation_base.py +0 -0
  298. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/external_generation/external_generation_common.py +0 -0
  299. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/external_generation/external_generation_default.py +0 -0
  300. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/external_generation/image_utils.py +0 -0
  301. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/external_generation/providers/__init__.py +0 -0
  302. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/external_generation/providers/alibabacloud.py +0 -0
  303. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/external_generation/providers/gemini.py +0 -0
  304. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/external_generation/providers/openai.py +0 -0
  305. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/external_generation/providers/seedream.py +0 -0
  306. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/external_generation/startup.py +0 -0
  307. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/gallery/__init__.py +0 -0
  308. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/gallery/gallery_base.py +0 -0
  309. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/gallery/gallery_common.py +0 -0
  310. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/gallery/gallery_default.py +0 -0
  311. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/image_files/__init__.py +0 -0
  312. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/image_files/image_files_base.py +0 -0
  313. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/image_files/image_files_common.py +0 -0
  314. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/image_files/image_files_disk.py +0 -0
  315. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/image_files/image_subfolder_strategy.py +0 -0
  316. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/image_moves/__init__.py +0 -0
  317. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/image_moves/image_moves_default.py +0 -0
  318. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/image_records/__init__.py +0 -0
  319. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/image_records/image_records_base.py +0 -0
  320. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/image_records/image_records_common.py +0 -0
  321. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/image_records/image_records_sqlite.py +0 -0
  322. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/images/__init__.py +0 -0
  323. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/images/images_base.py +0 -0
  324. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/images/images_common.py +0 -0
  325. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/images/images_default.py +0 -0
  326. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/invocation_cache/__init__.py +0 -0
  327. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/invocation_cache/invocation_cache_base.py +0 -0
  328. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/invocation_cache/invocation_cache_common.py +0 -0
  329. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/invocation_cache/invocation_cache_memory.py +0 -0
  330. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/invocation_services.py +0 -0
  331. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/invocation_stats/__init__.py +0 -0
  332. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/invocation_stats/invocation_stats_base.py +0 -0
  333. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/invocation_stats/invocation_stats_common.py +0 -0
  334. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/invocation_stats/invocation_stats_default.py +0 -0
  335. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/invoker.py +0 -0
  336. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/item_storage/__init__.py +0 -0
  337. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/item_storage/item_storage_base.py +0 -0
  338. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/item_storage/item_storage_common.py +0 -0
  339. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/item_storage/item_storage_memory.py +0 -0
  340. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/model_images/model_images_base.py +0 -0
  341. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/model_images/model_images_common.py +0 -0
  342. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/model_install/__init__.py +0 -0
  343. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/model_install/model_install_base.py +0 -0
  344. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/model_install/model_install_common.py +0 -0
  345. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/model_load/__init__.py +0 -0
  346. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/model_load/model_load_base.py +0 -0
  347. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/model_load/model_load_default.py +0 -0
  348. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/model_manager/__init__.py +0 -0
  349. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/model_manager/model_manager_base.py +0 -0
  350. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/model_manager/model_manager_common.py +0 -0
  351. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/model_manager/model_manager_default.py +0 -0
  352. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/model_records/__init__.py +0 -0
  353. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/model_records/model_records_sql.py +0 -0
  354. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/model_relationship_records/model_relationship_records_base.py +0 -0
  355. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/model_relationship_records/model_relationship_records_sqlite.py +0 -0
  356. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/model_relationships/model_relationships_base.py +0 -0
  357. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/model_relationships/model_relationships_common.py +0 -0
  358. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/model_relationships/model_relationships_default.py +0 -0
  359. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/names/__init__.py +0 -0
  360. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/names/names_base.py +0 -0
  361. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/names/names_common.py +0 -0
  362. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/names/names_default.py +0 -0
  363. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/object_serializer/object_serializer_base.py +0 -0
  364. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/object_serializer/object_serializer_forward_cache.py +0 -0
  365. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/orphaned_models/__init__.py +0 -0
  366. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/orphaned_models/orphaned_models_service.py +0 -0
  367. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/session_processor/__init__.py +0 -0
  368. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/session_processor/session_processor_base.py +0 -0
  369. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/session_processor/session_processor_common.py +0 -0
  370. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/session_processor/session_processor_default.py +0 -0
  371. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/session_processor/workflow_call_batch.py +0 -0
  372. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/session_processor/workflow_call_runtime.py +0 -0
  373. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/session_queue/__init__.py +0 -0
  374. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/session_queue/session_queue_base.py +0 -0
  375. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/session_queue/session_queue_common.py +0 -0
  376. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/session_queue/session_queue_sqlite.py +0 -0
  377. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/shared/__init__.py +0 -0
  378. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/shared/graph.py +0 -0
  379. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/shared/pagination.py +0 -0
  380. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/shared/sqlite/__init__.py +0 -0
  381. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/shared/sqlite/sqlite_common.py +0 -0
  382. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/shared/sqlite/sqlite_database.py +0 -0
  383. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/shared/sqlite/sqlite_util.py +0 -0
  384. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/shared/sqlite_migrator/__init__.py +0 -0
  385. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/shared/sqlite_migrator/migration_loader.py +0 -0
  386. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/shared/sqlite_migrator/migrations/__init__.py +0 -0
  387. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/shared/sqlite_migrator/migrations/migration_1.py +0 -0
  388. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/shared/sqlite_migrator/migrations/migration_10.py +0 -0
  389. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/shared/sqlite_migrator/migrations/migration_11.py +0 -0
  390. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/shared/sqlite_migrator/migrations/migration_12.py +0 -0
  391. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/shared/sqlite_migrator/migrations/migration_13.py +0 -0
  392. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/shared/sqlite_migrator/migrations/migration_14.py +0 -0
  393. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/shared/sqlite_migrator/migrations/migration_15.py +0 -0
  394. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/shared/sqlite_migrator/migrations/migration_16.py +0 -0
  395. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/shared/sqlite_migrator/migrations/migration_17.py +0 -0
  396. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/shared/sqlite_migrator/migrations/migration_18.py +0 -0
  397. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/shared/sqlite_migrator/migrations/migration_19.py +0 -0
  398. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/shared/sqlite_migrator/migrations/migration_2.py +0 -0
  399. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/shared/sqlite_migrator/migrations/migration_20.py +0 -0
  400. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/shared/sqlite_migrator/migrations/migration_2026_07_01_add_session_queue_device.py +0 -0
  401. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/shared/sqlite_migrator/migrations/migration_2026_07_01_add_videos_tables.py +0 -0
  402. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/shared/sqlite_migrator/migrations/migration_2026_07_01_add_workflow_call_queue_metadata.py +0 -0
  403. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/shared/sqlite_migrator/migrations/migration_2026_07_03_round_robin_indexes.py +0 -0
  404. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/shared/sqlite_migrator/migrations/migration_2026_07_10_create_system_prompts.py +0 -0
  405. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/shared/sqlite_migrator/migrations/migration_2026_07_31_add_user_token_epoch.py +0 -0
  406. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/shared/sqlite_migrator/migrations/migration_2026_08_08_demote_system_user.py +0 -0
  407. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/shared/sqlite_migrator/migrations/migration_21.py +0 -0
  408. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/shared/sqlite_migrator/migrations/migration_22.py +0 -0
  409. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/shared/sqlite_migrator/migrations/migration_23.py +0 -0
  410. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/shared/sqlite_migrator/migrations/migration_25.py +0 -0
  411. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/shared/sqlite_migrator/migrations/migration_26.py +0 -0
  412. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/shared/sqlite_migrator/migrations/migration_27.py +0 -0
  413. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/shared/sqlite_migrator/migrations/migration_28.py +0 -0
  414. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/shared/sqlite_migrator/migrations/migration_29.py +0 -0
  415. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/shared/sqlite_migrator/migrations/migration_3.py +0 -0
  416. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/shared/sqlite_migrator/migrations/migration_30.py +0 -0
  417. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/shared/sqlite_migrator/migrations/migration_31.py +0 -0
  418. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/shared/sqlite_migrator/migrations/migration_32.py +0 -0
  419. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/shared/sqlite_migrator/migrations/migration_33.py +0 -0
  420. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/shared/sqlite_migrator/migrations/migration_4.py +0 -0
  421. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/shared/sqlite_migrator/migrations/migration_5.py +0 -0
  422. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/shared/sqlite_migrator/migrations/migration_6.py +0 -0
  423. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/shared/sqlite_migrator/migrations/migration_7.py +0 -0
  424. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/shared/sqlite_migrator/migrations/migration_8.py +0 -0
  425. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/shared/sqlite_migrator/migrations/migration_9.py +0 -0
  426. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/shared/sqlite_migrator/sqlite_migrator_common.py +0 -0
  427. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/shared/sqlite_migrator/sqlite_migrator_impl.py +0 -0
  428. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/shared/workflow_call_compatibility.py +0 -0
  429. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/shared/workflow_call_compatibility_common.py +0 -0
  430. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/shared/workflow_graph_builder.py +0 -0
  431. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/style_preset_images/default_style_preset_images/Anime.png +0 -0
  432. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/style_preset_images/default_style_preset_images/Architectural Visualization.png +0 -0
  433. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/style_preset_images/default_style_preset_images/Concept Art (Character).png +0 -0
  434. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/style_preset_images/default_style_preset_images/Concept Art (Fantasy).png +0 -0
  435. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/style_preset_images/default_style_preset_images/Concept Art (Painterly).png +0 -0
  436. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/style_preset_images/default_style_preset_images/Concept Art (Sci-Fi).png +0 -0
  437. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/style_preset_images/default_style_preset_images/Environment Art.png +0 -0
  438. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/style_preset_images/default_style_preset_images/Illustration.png +0 -0
  439. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/style_preset_images/default_style_preset_images/Interior Design (Visualization).png +0 -0
  440. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/style_preset_images/default_style_preset_images/Line Art.png +0 -0
  441. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/style_preset_images/default_style_preset_images/Photography (Black and White).png +0 -0
  442. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/style_preset_images/default_style_preset_images/Photography (General).png +0 -0
  443. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/style_preset_images/default_style_preset_images/Photography (Landscape).png +0 -0
  444. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/style_preset_images/default_style_preset_images/Photography (Portrait).png +0 -0
  445. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/style_preset_images/default_style_preset_images/Photography (Studio Lighting).png +0 -0
  446. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/style_preset_images/default_style_preset_images/Product Rendering.png +0 -0
  447. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/style_preset_images/default_style_preset_images/Sketch.png +0 -0
  448. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/style_preset_images/default_style_preset_images/Vehicles.png +0 -0
  449. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/style_preset_images/default_style_preset_images/__init__.py +0 -0
  450. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/style_preset_images/style_preset_images_base.py +0 -0
  451. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/style_preset_images/style_preset_images_common.py +0 -0
  452. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/style_preset_images/style_preset_images_disk.py +0 -0
  453. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/style_preset_records/__init__.py +0 -0
  454. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/style_preset_records/default_style_presets.json +0 -0
  455. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/style_preset_records/style_preset_records_base.py +0 -0
  456. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/style_preset_records/style_preset_records_common.py +0 -0
  457. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/style_preset_records/style_preset_records_sqlite.py +0 -0
  458. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/system_prompt_records/__init__.py +0 -0
  459. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/system_prompt_records/system_prompt_records_base.py +0 -0
  460. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/system_prompt_records/system_prompt_records_common.py +0 -0
  461. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/system_prompt_records/system_prompt_records_sqlite.py +0 -0
  462. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/urls/__init__.py +0 -0
  463. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/urls/urls_base.py +0 -0
  464. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/users/__init__.py +0 -0
  465. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/users/users_base.py +0 -0
  466. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/users/users_common.py +0 -0
  467. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/users/users_default.py +0 -0
  468. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/video_files/__init__.py +0 -0
  469. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/video_files/video_files_base.py +0 -0
  470. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/video_files/video_files_common.py +0 -0
  471. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/video_files/video_files_disk.py +0 -0
  472. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/video_records/__init__.py +0 -0
  473. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/video_records/video_records_base.py +0 -0
  474. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/video_records/video_records_common.py +0 -0
  475. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/video_records/video_records_sqlite.py +0 -0
  476. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/videos/__init__.py +0 -0
  477. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/videos/videos_base.py +0 -0
  478. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/videos/videos_common.py +0 -0
  479. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/videos/videos_default.py +0 -0
  480. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/virtual_boards/__init__.py +0 -0
  481. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/virtual_boards/virtual_boards_common.py +0 -0
  482. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/workflow_records/__init__.py +0 -0
  483. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/workflow_records/default_workflows/CogView4_TextToImage.json +0 -0
  484. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/workflow_records/default_workflows/ESRGAN Upscaling with Canny ControlNet.json +0 -0
  485. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/workflow_records/default_workflows/Extend Video - Wan 2.2 Lightning w_ Concept LoRAs.json +0 -0
  486. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/workflow_records/default_workflows/Extend Video - Wan 2.2 Lightning.json +0 -0
  487. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/workflow_records/default_workflows/Extend Video to Image - Wan 2.2 Lightning.json +0 -0
  488. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/workflow_records/default_workflows/FLUX Image to Image.json +0 -0
  489. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/workflow_records/default_workflows/Face Detailer with IP-Adapter & Canny (See Note in Details).json +0 -0
  490. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/workflow_records/default_workflows/Flux Text to Image.json +0 -0
  491. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/workflow_records/default_workflows/Image to Video - Wan 2.2 Lightning w_ Concept LoRAs.json +0 -0
  492. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/workflow_records/default_workflows/Image to Video - Wan 2.2 Lightning.json +0 -0
  493. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/workflow_records/default_workflows/Image to Video - Wan 2.2 TI2V-5B (Low Quality).json +0 -0
  494. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/workflow_records/default_workflows/Interpolate 2 Images to Video - Wan 2.2 Lightning.json +0 -0
  495. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/workflow_records/default_workflows/Multi ControlNet (Canny & Depth).json +0 -0
  496. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/workflow_records/default_workflows/MultiDiffusion SD1.5.json +0 -0
  497. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/workflow_records/default_workflows/MultiDiffusion SDXL.json +0 -0
  498. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/workflow_records/default_workflows/Prompt from File.json +0 -0
  499. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/workflow_records/default_workflows/SD3.5 Text to Image.json +0 -0
  500. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/workflow_records/default_workflows/Text to Image - SD1.5.json +0 -0
  501. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/workflow_records/default_workflows/Text to Image - SDXL.json +0 -0
  502. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/workflow_records/default_workflows/Text to Image with LoRA.json +0 -0
  503. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/workflow_records/default_workflows/Text to Video - Wan 2.2 Lightning w_ Concept LoRAs.json +0 -0
  504. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/workflow_records/default_workflows/Text to Video - Wan 2.2 Lightning.json +0 -0
  505. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/workflow_records/default_workflows/Text to Video - Wan 2.2 TI2V-5B (Low Quality).json +0 -0
  506. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/workflow_records/default_workflows/Tiled Upscaling (Beta).json +0 -0
  507. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/workflow_records/default_workflows/Wan 2.2 Image to Image.json +0 -0
  508. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/workflow_records/default_workflows/Wan 2.2 Text to Image.json +0 -0
  509. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/workflow_records/workflow_records_base.py +0 -0
  510. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/workflow_records/workflow_records_common.py +0 -0
  511. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/workflow_records/workflow_records_sqlite.py +0 -0
  512. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/workflow_thumbnails/workflow_thumbnails_base.py +0 -0
  513. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/workflow_thumbnails/workflow_thumbnails_common.py +0 -0
  514. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/services/workflow_thumbnails/workflow_thumbnails_disk.py +0 -0
  515. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/shared/__init__.py +0 -0
  516. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/shared/models.py +0 -0
  517. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/util/__init__.py +0 -0
  518. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/util/controlnet_utils.py +0 -0
  519. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/util/custom_openapi.py +0 -0
  520. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/util/dynamicprompts.py +0 -0
  521. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/util/metaenum.py +0 -0
  522. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/util/misc.py +0 -0
  523. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/util/model_exclude_null.py +0 -0
  524. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/util/profiler.py +0 -0
  525. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/util/startup_utils.py +0 -0
  526. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/util/step_callback.py +0 -0
  527. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/util/suppress_output.py +0 -0
  528. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/util/t5_model_identifier.py +0 -0
  529. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/util/thumbnails.py +0 -0
  530. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/util/ti_utils.py +0 -0
  531. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/util/torch_cuda_allocator.py +0 -0
  532. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/util/user_management.py +0 -0
  533. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/util/video_decode_worker.py +0 -0
  534. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/util/video_encoding.py +0 -0
  535. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/app/util/video_thumbnails.py +0 -0
  536. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/assets/fonts/inter/Inter-Regular.ttf +0 -0
  537. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/__init__.py +0 -0
  538. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/anima/__init__.py +0 -0
  539. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/anima/anima_transformer.py +0 -0
  540. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/anima/anima_transformer_patch.py +0 -0
  541. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/anima/conditioning_data.py +0 -0
  542. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/anima/control_net_lllite.py +0 -0
  543. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/anima/regional_prompting.py +0 -0
  544. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/anima/scheduler_driver.py +0 -0
  545. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/ernie_image/__init__.py +0 -0
  546. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/ernie_image/denoise.py +0 -0
  547. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/ernie_image/sampling_utils.py +0 -0
  548. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/flux/controlnet/__init__.py +0 -0
  549. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/flux/controlnet/controlnet_flux_output.py +0 -0
  550. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/flux/controlnet/instantx_controlnet_flux.py +0 -0
  551. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/flux/controlnet/state_dict_utils.py +0 -0
  552. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/flux/controlnet/xlabs_controlnet_flux.py +0 -0
  553. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/flux/controlnet/zero_module.py +0 -0
  554. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/flux/custom_block_processor.py +0 -0
  555. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/flux/denoise.py +0 -0
  556. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/flux/dype/__init__.py +0 -0
  557. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/flux/dype/base.py +0 -0
  558. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/flux/dype/embed.py +0 -0
  559. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/flux/dype/presets.py +0 -0
  560. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/flux/dype/rope.py +0 -0
  561. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/flux/extensions/__init__.py +0 -0
  562. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/flux/extensions/base_controlnet_extension.py +0 -0
  563. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/flux/extensions/dype_extension.py +0 -0
  564. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/flux/extensions/instantx_controlnet_extension.py +0 -0
  565. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/flux/extensions/kontext_extension.py +0 -0
  566. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/flux/extensions/regional_prompting_extension.py +0 -0
  567. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/flux/extensions/xlabs_controlnet_extension.py +0 -0
  568. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/flux/extensions/xlabs_ip_adapter_extension.py +0 -0
  569. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/flux/flux_state_dict_utils.py +0 -0
  570. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/flux/ip_adapter/__init__.py +0 -0
  571. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/flux/ip_adapter/ip_double_stream_block_processor.py +0 -0
  572. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/flux/ip_adapter/state_dict_utils.py +0 -0
  573. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/flux/ip_adapter/xlabs_ip_adapter_flux.py +0 -0
  574. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/flux/math.py +0 -0
  575. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/flux/model.py +0 -0
  576. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/flux/modules/autoencoder.py +0 -0
  577. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/flux/modules/conditioner.py +0 -0
  578. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/flux/modules/layers.py +0 -0
  579. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/flux/redux/flux_redux_model.py +0 -0
  580. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/flux/redux/flux_redux_state_dict_utils.py +0 -0
  581. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/flux/sampling_utils.py +0 -0
  582. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/flux/schedulers.py +0 -0
  583. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/flux/text_conditioning.py +0 -0
  584. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/flux/util.py +0 -0
  585. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/flux2/__init__.py +0 -0
  586. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/flux2/denoise.py +0 -0
  587. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/flux2/extensions/__init__.py +0 -0
  588. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/flux2/extensions/regional_prompting_extension.py +0 -0
  589. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/flux2/ref_image_extension.py +0 -0
  590. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/flux2/text_conditioning.py +0 -0
  591. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/hidiffusion/__init__.py +0 -0
  592. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/hidiffusion/hidiffusion.py +0 -0
  593. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/hidiffusion/sd_module_key/sd15_module_key.txt +0 -0
  594. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/hidiffusion/sd_module_key/sdxl_module_key.txt +0 -0
  595. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/hidiffusion/utils.py +0 -0
  596. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/ideogram4/__init__.py +0 -0
  597. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/ideogram4/autoencoder.py +0 -0
  598. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/ideogram4/caption.py +0 -0
  599. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/ideogram4/constants.py +0 -0
  600. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/ideogram4/denoise.py +0 -0
  601. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/ideogram4/latent_norm.py +0 -0
  602. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/ideogram4/modeling_ideogram4.py +0 -0
  603. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/ideogram4/sampler_configs.py +0 -0
  604. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/ideogram4/sampling_utils.py +0 -0
  605. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/ideogram4/scheduler.py +0 -0
  606. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/ideogram4/text_encoding.py +0 -0
  607. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/ideogram4/transformer_pair.py +0 -0
  608. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/image_util/__init__.py +0 -0
  609. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/image_util/assets/CIELab_to_UPLab.icc +0 -0
  610. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/image_util/basicsr/__init__.py +0 -0
  611. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/image_util/basicsr/arch_util.py +0 -0
  612. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/image_util/basicsr/rrdbnet_arch.py +0 -0
  613. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/image_util/canny.py +0 -0
  614. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/image_util/color_conversion.py +0 -0
  615. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/image_util/composition.py +0 -0
  616. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/image_util/content_shuffle.py +0 -0
  617. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/image_util/controlnet_processor.py +0 -0
  618. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/image_util/depth_anything/depth_anything_pipeline.py +0 -0
  619. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/image_util/dw_openpose/__init__.py +0 -0
  620. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/image_util/dw_openpose/onnxdet.py +0 -0
  621. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/image_util/dw_openpose/onnxpose.py +0 -0
  622. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/image_util/dw_openpose/utils.py +0 -0
  623. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/image_util/grounding_dino/__init__.py +0 -0
  624. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/image_util/grounding_dino/detection_result.py +0 -0
  625. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/image_util/grounding_dino/grounding_dino_pipeline.py +0 -0
  626. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/image_util/hed.py +0 -0
  627. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/image_util/imwatermark/vendor.py +0 -0
  628. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/image_util/infill_methods/cv2_inpaint.py +0 -0
  629. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/image_util/infill_methods/lama.py +0 -0
  630. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/image_util/infill_methods/mosaic.py +0 -0
  631. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/image_util/infill_methods/patchmatch.py +0 -0
  632. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/image_util/infill_methods/tile.py +0 -0
  633. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/image_util/invisible_watermark.py +0 -0
  634. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/image_util/lineart.py +0 -0
  635. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/image_util/lineart_anime.py +0 -0
  636. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/image_util/mediapipe_face/__init__.py +0 -0
  637. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/image_util/mediapipe_face/mediapipe_face_common.py +0 -0
  638. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/image_util/mlsd/__init__.py +0 -0
  639. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/image_util/mlsd/models/__init__.py +0 -0
  640. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/image_util/mlsd/models/mbv2_mlsd_large.py +0 -0
  641. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/image_util/mlsd/models/mbv2_mlsd_tiny.py +0 -0
  642. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/image_util/mlsd/utils.py +0 -0
  643. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/image_util/normal_bae/__init__.py +0 -0
  644. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/image_util/normal_bae/nets/NNET.py +0 -0
  645. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/image_util/normal_bae/nets/__init__.py +0 -0
  646. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/image_util/normal_bae/nets/baseline.py +0 -0
  647. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/image_util/normal_bae/nets/submodules/__init__.py +0 -0
  648. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/image_util/normal_bae/nets/submodules/decoder.py +0 -0
  649. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/image_util/normal_bae/nets/submodules/efficientnet_repo/__init__.py +0 -0
  650. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/image_util/normal_bae/nets/submodules/efficientnet_repo/caffe2_benchmark.py +0 -0
  651. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/image_util/normal_bae/nets/submodules/efficientnet_repo/caffe2_validate.py +0 -0
  652. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/image_util/normal_bae/nets/submodules/efficientnet_repo/geffnet/__init__.py +0 -0
  653. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/image_util/normal_bae/nets/submodules/efficientnet_repo/geffnet/activations/__init__.py +0 -0
  654. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/image_util/normal_bae/nets/submodules/efficientnet_repo/geffnet/activations/activations.py +0 -0
  655. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/image_util/normal_bae/nets/submodules/efficientnet_repo/geffnet/activations/activations_jit.py +0 -0
  656. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/image_util/normal_bae/nets/submodules/efficientnet_repo/geffnet/activations/activations_me.py +0 -0
  657. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/image_util/normal_bae/nets/submodules/efficientnet_repo/geffnet/config.py +0 -0
  658. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/image_util/normal_bae/nets/submodules/efficientnet_repo/geffnet/conv2d_layers.py +0 -0
  659. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/image_util/normal_bae/nets/submodules/efficientnet_repo/geffnet/efficientnet_builder.py +0 -0
  660. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/image_util/normal_bae/nets/submodules/efficientnet_repo/geffnet/gen_efficientnet.py +0 -0
  661. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/image_util/normal_bae/nets/submodules/efficientnet_repo/geffnet/helpers.py +0 -0
  662. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/image_util/normal_bae/nets/submodules/efficientnet_repo/geffnet/mobilenetv3.py +0 -0
  663. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/image_util/normal_bae/nets/submodules/efficientnet_repo/geffnet/model_factory.py +0 -0
  664. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/image_util/normal_bae/nets/submodules/efficientnet_repo/geffnet/version.py +0 -0
  665. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/image_util/normal_bae/nets/submodules/efficientnet_repo/hubconf.py +0 -0
  666. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/image_util/normal_bae/nets/submodules/efficientnet_repo/onnx_export.py +0 -0
  667. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/image_util/normal_bae/nets/submodules/efficientnet_repo/onnx_optimize.py +0 -0
  668. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/image_util/normal_bae/nets/submodules/efficientnet_repo/onnx_to_caffe.py +0 -0
  669. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/image_util/normal_bae/nets/submodules/efficientnet_repo/onnx_validate.py +0 -0
  670. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/image_util/normal_bae/nets/submodules/efficientnet_repo/setup.py +0 -0
  671. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/image_util/normal_bae/nets/submodules/efficientnet_repo/utils.py +0 -0
  672. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/image_util/normal_bae/nets/submodules/efficientnet_repo/validate.py +0 -0
  673. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/image_util/normal_bae/nets/submodules/encoder.py +0 -0
  674. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/image_util/normal_bae/nets/submodules/submodules.py +0 -0
  675. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/image_util/pbr_maps/architecture/block.py +0 -0
  676. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/image_util/pbr_maps/architecture/pbr_rrdb_net.py +0 -0
  677. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/image_util/pbr_maps/pbr_maps.py +0 -0
  678. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/image_util/pbr_maps/utils/image_ops.py +0 -0
  679. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/image_util/pidi/__init__.py +0 -0
  680. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/image_util/pidi/model.py +0 -0
  681. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/image_util/pngwriter.py +0 -0
  682. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/image_util/realesrgan/__init__.py +0 -0
  683. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/image_util/realesrgan/realesrgan.py +0 -0
  684. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/image_util/safety_checker.py +0 -0
  685. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/image_util/segment_anything/__init__.py +0 -0
  686. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/image_util/segment_anything/mask_refinement.py +0 -0
  687. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/image_util/segment_anything/segment_anything_2_pipeline.py +0 -0
  688. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/image_util/segment_anything/segment_anything_pipeline.py +0 -0
  689. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/image_util/segment_anything/shared.py +0 -0
  690. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/image_util/util.py +0 -0
  691. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/ip_adapter/__init__.py +0 -0
  692. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/ip_adapter/ip_adapter.py +0 -0
  693. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/ip_adapter/ip_attention_weights.py +0 -0
  694. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/ip_adapter/resampler.py +0 -0
  695. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/krea2/__init__.py +0 -0
  696. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/krea2/regional_prompting.py +0 -0
  697. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/krea2/sampling_utils.py +0 -0
  698. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/krea2/vae_compat.py +0 -0
  699. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/llava_onevision_pipeline.py +0 -0
  700. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/model_hash/hash_validator.py +0 -0
  701. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/model_hash/model_hash.py +0 -0
  702. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/model_manager/__init__.py +0 -0
  703. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/model_manager/configs/__init__.py +0 -0
  704. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/model_manager/configs/base.py +0 -0
  705. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/model_manager/configs/clip_embed.py +0 -0
  706. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/model_manager/configs/clip_vision.py +0 -0
  707. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/model_manager/configs/controlnet.py +0 -0
  708. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/model_manager/configs/external_api.py +0 -0
  709. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/model_manager/configs/factory.py +0 -0
  710. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/model_manager/configs/flux2_variant.py +0 -0
  711. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/model_manager/configs/flux_redux.py +0 -0
  712. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/model_manager/configs/gemma2_encoder.py +0 -0
  713. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/model_manager/configs/identification_utils.py +0 -0
  714. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/model_manager/configs/ip_adapter.py +0 -0
  715. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/model_manager/configs/llava_onevision.py +0 -0
  716. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/model_manager/configs/lora.py +0 -0
  717. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/model_manager/configs/main.py +0 -0
  718. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/model_manager/configs/qwen3_vl_encoder.py +0 -0
  719. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/model_manager/configs/qwen_vl_encoder.py +0 -0
  720. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/model_manager/configs/siglip.py +0 -0
  721. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/model_manager/configs/spandrel.py +0 -0
  722. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/model_manager/configs/t2i_adapter.py +0 -0
  723. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/model_manager/configs/t5_encoder.py +0 -0
  724. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/model_manager/configs/text_llm.py +0 -0
  725. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/model_manager/configs/textual_inversion.py +0 -0
  726. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/model_manager/configs/unknown.py +0 -0
  727. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/model_manager/configs/vae.py +0 -0
  728. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/model_manager/configs/wan_t5_encoder.py +0 -0
  729. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/model_manager/load/__init__.py +0 -0
  730. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/model_manager/load/load_base.py +0 -0
  731. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/model_manager/load/load_default.py +0 -0
  732. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/model_manager/load/memory_snapshot.py +0 -0
  733. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/model_manager/load/model_cache/__init__.py +0 -0
  734. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/model_manager/load/model_cache/cache_record.py +0 -0
  735. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/model_manager/load/model_cache/cache_stats.py +0 -0
  736. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/model_manager/load/model_cache/cached_model/cached_model_only_full_load.py +0 -0
  737. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/model_manager/load/model_cache/cached_model/cached_model_with_partial_load.py +0 -0
  738. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/model_manager/load/model_cache/dev_utils.py +0 -0
  739. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/model_manager/load/model_cache/ram_budget.py +0 -0
  740. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/model_manager/load/model_cache/shared_cpu_weights.py +0 -0
  741. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/model_manager/load/model_cache/torch_module_autocast/__init__.py +0 -0
  742. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/model_manager/load/model_cache/torch_module_autocast/cast_to_device.py +0 -0
  743. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/model_manager/load/model_cache/torch_module_autocast/custom_modules/__init__.py +0 -0
  744. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/model_manager/load/model_cache/torch_module_autocast/custom_modules/custom_conv1d.py +0 -0
  745. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/model_manager/load/model_cache/torch_module_autocast/custom_modules/custom_conv2d.py +0 -0
  746. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/model_manager/load/model_cache/torch_module_autocast/custom_modules/custom_diffusers_rms_norm.py +0 -0
  747. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/model_manager/load/model_cache/torch_module_autocast/custom_modules/custom_embedding.py +0 -0
  748. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/model_manager/load/model_cache/torch_module_autocast/custom_modules/custom_flux_rms_norm.py +0 -0
  749. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/model_manager/load/model_cache/torch_module_autocast/custom_modules/custom_group_norm.py +0 -0
  750. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/model_manager/load/model_cache/torch_module_autocast/custom_modules/custom_invoke_linear_8_bit_lt.py +0 -0
  751. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/model_manager/load/model_cache/torch_module_autocast/custom_modules/custom_invoke_linear_nf4.py +0 -0
  752. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/model_manager/load/model_cache/torch_module_autocast/custom_modules/custom_layer_norm.py +0 -0
  753. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/model_manager/load/model_cache/torch_module_autocast/custom_modules/custom_linear.py +0 -0
  754. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/model_manager/load/model_cache/torch_module_autocast/custom_modules/custom_module_mixin.py +0 -0
  755. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/model_manager/load/model_cache/torch_module_autocast/custom_modules/utils.py +0 -0
  756. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/model_manager/load/model_cache/torch_module_autocast/torch_module_autocast.py +0 -0
  757. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/model_manager/load/model_cache/utils.py +0 -0
  758. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/model_manager/load/model_loader_registry.py +0 -0
  759. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/model_manager/load/model_loaders/__init__.py +0 -0
  760. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/model_manager/load/model_loaders/clip_vision.py +0 -0
  761. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/model_manager/load/model_loaders/cogview4.py +0 -0
  762. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/model_manager/load/model_loaders/comfyui_state_dict_utils.py +0 -0
  763. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/model_manager/load/model_loaders/controlnet.py +0 -0
  764. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/model_manager/load/model_loaders/ernie_image.py +0 -0
  765. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/model_manager/load/model_loaders/flux2_state_dict_utils.py +0 -0
  766. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/model_manager/load/model_loaders/generic_diffusers.py +0 -0
  767. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/model_manager/load/model_loaders/ip_adapter.py +0 -0
  768. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/model_manager/load/model_loaders/llava_onevision.py +0 -0
  769. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/model_manager/load/model_loaders/lora.py +0 -0
  770. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/model_manager/load/model_loaders/onnx.py +0 -0
  771. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/model_manager/load/model_loaders/pid_decoder.py +0 -0
  772. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/model_manager/load/model_loaders/sig_lip.py +0 -0
  773. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/model_manager/load/model_loaders/spandrel_image_to_image.py +0 -0
  774. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/model_manager/load/model_loaders/stable_diffusion.py +0 -0
  775. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/model_manager/load/model_loaders/text_llm.py +0 -0
  776. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/model_manager/load/model_loaders/textual_inversion.py +0 -0
  777. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/model_manager/load/model_loaders/wan.py +0 -0
  778. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/model_manager/load/model_util.py +0 -0
  779. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/model_manager/load/optimizations.py +0 -0
  780. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/model_manager/metadata/__init__.py +0 -0
  781. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/model_manager/metadata/fetch/__init__.py +0 -0
  782. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/model_manager/metadata/fetch/fetch_base.py +0 -0
  783. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/model_manager/metadata/fetch/huggingface.py +0 -0
  784. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/model_manager/metadata/metadata_base.py +0 -0
  785. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/model_manager/model_on_disk.py +0 -0
  786. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/model_manager/omi/__init__.py +0 -0
  787. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/model_manager/omi/omi.py +0 -0
  788. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/model_manager/omi/vendor/__init__.py +0 -0
  789. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/model_manager/omi/vendor/convert/__init__.py +0 -0
  790. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/model_manager/omi/vendor/convert/lora/__init__.py +0 -0
  791. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/model_manager/omi/vendor/convert/lora/convert_clip.py +0 -0
  792. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/model_manager/omi/vendor/convert/lora/convert_flux_lora.py +0 -0
  793. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/model_manager/omi/vendor/convert/lora/convert_lora_util.py +0 -0
  794. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/model_manager/omi/vendor/convert/lora/convert_sdxl_lora.py +0 -0
  795. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/model_manager/omi/vendor/convert/lora/convert_t5.py +0 -0
  796. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/model_manager/omi/vendor/model_spec/__init__.py +0 -0
  797. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/model_manager/omi/vendor/model_spec/architecture.py +0 -0
  798. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/model_manager/search.py +0 -0
  799. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/model_manager/single_file_config_files.py +0 -0
  800. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/model_manager/taxonomy.py +0 -0
  801. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/model_manager/util/libc_util.py +0 -0
  802. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/model_manager/util/model_util.py +0 -0
  803. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/model_manager/util/select_hf_files.py +0 -0
  804. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/model_patcher.py +0 -0
  805. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/onnx/onnx_runtime.py +0 -0
  806. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/patches/__init__.py +0 -0
  807. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/patches/layer_patcher.py +0 -0
  808. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/patches/layers/__init__.py +0 -0
  809. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/patches/layers/base_layer_patch.py +0 -0
  810. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/patches/layers/dora_layer.py +0 -0
  811. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/patches/layers/flux_control_lora_layer.py +0 -0
  812. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/patches/layers/full_layer.py +0 -0
  813. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/patches/layers/ia3_layer.py +0 -0
  814. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/patches/layers/loha_layer.py +0 -0
  815. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/patches/layers/lokr_layer.py +0 -0
  816. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/patches/layers/lora_layer.py +0 -0
  817. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/patches/layers/lora_layer_base.py +0 -0
  818. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/patches/layers/merged_layer_patch.py +0 -0
  819. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/patches/layers/norm_layer.py +0 -0
  820. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/patches/layers/param_shape_utils.py +0 -0
  821. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/patches/layers/set_parameter_layer.py +0 -0
  822. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/patches/layers/utils.py +0 -0
  823. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/patches/lora_conversions/__init__.py +0 -0
  824. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/patches/lora_conversions/anima_lora_constants.py +0 -0
  825. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/patches/lora_conversions/anima_lora_conversion_utils.py +0 -0
  826. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/patches/lora_conversions/flux_aitoolkit_lora_conversion_utils.py +0 -0
  827. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/patches/lora_conversions/flux_bfl_peft_lora_conversion_utils.py +0 -0
  828. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/patches/lora_conversions/flux_control_lora_utils.py +0 -0
  829. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/patches/lora_conversions/flux_diffusers_lora_conversion_utils.py +0 -0
  830. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/patches/lora_conversions/flux_kohya_lora_conversion_utils.py +0 -0
  831. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/patches/lora_conversions/flux_lora_constants.py +0 -0
  832. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/patches/lora_conversions/flux_onetrainer_bfl_lora_conversion_utils.py +0 -0
  833. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/patches/lora_conversions/flux_onetrainer_lora_conversion_utils.py +0 -0
  834. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/patches/lora_conversions/flux_xlabs_lora_conversion_utils.py +0 -0
  835. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/patches/lora_conversions/formats.py +0 -0
  836. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/patches/lora_conversions/kohya_key_utils.py +0 -0
  837. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/patches/lora_conversions/krea2_lora_constants.py +0 -0
  838. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/patches/lora_conversions/krea2_lora_conversion_utils.py +0 -0
  839. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/patches/lora_conversions/peft_adapter_utils.py +0 -0
  840. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/patches/lora_conversions/qwen_image_lora_constants.py +0 -0
  841. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/patches/lora_conversions/qwen_image_lora_conversion_utils.py +0 -0
  842. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/patches/lora_conversions/sd_lora_conversion_utils.py +0 -0
  843. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/patches/lora_conversions/sdxl_lora_conversion_utils.py +0 -0
  844. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/patches/lora_conversions/wan_lora_constants.py +0 -0
  845. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/patches/lora_conversions/wan_lora_conversion_utils.py +0 -0
  846. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/patches/lora_conversions/z_image_lora_constants.py +0 -0
  847. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/patches/lora_conversions/z_image_lora_conversion_utils.py +0 -0
  848. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/patches/model_patch_raw.py +0 -0
  849. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/patches/pad_with_zeros.py +0 -0
  850. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/pid/__init__.py +0 -0
  851. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/pid/_ext/__init__.py +0 -0
  852. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/pid/_ext/imaginaire/__init__.py +0 -0
  853. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/pid/_ext/imaginaire/lazy_config/__init__.py +0 -0
  854. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/pid/_ext/imaginaire/lazy_config/file_io.py +0 -0
  855. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/pid/_ext/imaginaire/lazy_config/instantiate.py +0 -0
  856. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/pid/_ext/imaginaire/lazy_config/lazy.py +0 -0
  857. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/pid/_ext/imaginaire/lazy_config/registry.py +0 -0
  858. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/pid/_ext/imaginaire/model.py +0 -0
  859. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/pid/_ext/imaginaire/utils/__init__.py +0 -0
  860. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/pid/_ext/imaginaire/utils/count_params.py +0 -0
  861. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/pid/_ext/imaginaire/utils/device.py +0 -0
  862. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/pid/_ext/imaginaire/utils/distributed.py +0 -0
  863. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/pid/_ext/imaginaire/utils/log.py +0 -0
  864. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/pid/_ext/imaginaire/utils/misc.py +0 -0
  865. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/pid/_src/__init__.py +0 -0
  866. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/pid/_src/inference/__init__.py +0 -0
  867. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/pid/_src/inference/checkpoint_registry.py +0 -0
  868. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/pid/_src/inference/pipeline_registry.py +0 -0
  869. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/pid/_src/models/__init__.py +0 -0
  870. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/pid/_src/models/pid_distill_model.py +0 -0
  871. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/pid/_src/models/pid_model.py +0 -0
  872. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/pid/_src/models/pixeldit_model.py +0 -0
  873. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/pid/_src/modules/__init__.py +0 -0
  874. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/pid/_src/modules/conditioner.py +0 -0
  875. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/pid/_src/networks/__init__.py +0 -0
  876. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/pid/_src/networks/lq_projection_2d.py +0 -0
  877. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/pid/_src/networks/pid_net.py +0 -0
  878. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/pid/_src/networks/pixeldit_official.py +0 -0
  879. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/pid/_src/utils/__init__.py +0 -0
  880. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/pid/_src/utils/context_parallel.py +0 -0
  881. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/pid/state_dict_utils.py +0 -0
  882. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/quantization/__init__.py +0 -0
  883. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/quantization/bnb_llm_int8.py +0 -0
  884. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/quantization/bnb_nf4.py +0 -0
  885. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/quantization/gguf/utils.py +0 -0
  886. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/quantization/scripts/load_flux_model_bnb_llm_int8.py +0 -0
  887. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/quantization/scripts/load_flux_model_bnb_nf4.py +0 -0
  888. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/quantization/scripts/quantize_t5_xxl_bnb_llm_int8.py +0 -0
  889. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/quantization/sdnq/__init__.py +0 -0
  890. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/quantization/sdnq/sdnq_tensor.py +0 -0
  891. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/quantization/sdnq/utils.py +0 -0
  892. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/qwen3/__init__.py +0 -0
  893. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/qwen3/qwen3_tokenizer.py +0 -0
  894. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/qwen3/tokenizer/special_tokens_map.json +0 -0
  895. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/qwen3/tokenizer/tokenizer.json.gz +0 -0
  896. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/qwen3/tokenizer/tokenizer_config.json +0 -0
  897. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/raw_model.py +0 -0
  898. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/rectified_flow/__init__.py +0 -0
  899. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/rectified_flow/er_sde_scheduler.py +0 -0
  900. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/rectified_flow/rectified_flow_inpaint_extension.py +0 -0
  901. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/sig_lip/sig_lip_pipeline.py +0 -0
  902. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/spandrel_image_to_image_model.py +0 -0
  903. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/stable_diffusion/__init__.py +0 -0
  904. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/stable_diffusion/denoise_context.py +0 -0
  905. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/stable_diffusion/diffusers_pipeline.py +0 -0
  906. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/stable_diffusion/diffusion/__init__.py +0 -0
  907. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/stable_diffusion/diffusion/conditioning_data.py +0 -0
  908. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/stable_diffusion/diffusion/custom_atttention.py +0 -0
  909. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/stable_diffusion/diffusion/regional_ip_data.py +0 -0
  910. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/stable_diffusion/diffusion/regional_prompt_data.py +0 -0
  911. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/stable_diffusion/diffusion/shared_invokeai_diffusion.py +0 -0
  912. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/stable_diffusion/diffusion/unet_attention_patcher.py +0 -0
  913. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/stable_diffusion/diffusion_backend.py +0 -0
  914. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/stable_diffusion/extension_callback_type.py +0 -0
  915. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/stable_diffusion/extensions/base.py +0 -0
  916. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/stable_diffusion/extensions/controlnet.py +0 -0
  917. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/stable_diffusion/extensions/freeu.py +0 -0
  918. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/stable_diffusion/extensions/hidiffusion.py +0 -0
  919. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/stable_diffusion/extensions/inpaint.py +0 -0
  920. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/stable_diffusion/extensions/inpaint_model.py +0 -0
  921. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/stable_diffusion/extensions/lora.py +0 -0
  922. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/stable_diffusion/extensions/preview.py +0 -0
  923. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/stable_diffusion/extensions/rescale_cfg.py +0 -0
  924. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/stable_diffusion/extensions/seamless.py +0 -0
  925. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/stable_diffusion/extensions/t2i_adapter.py +0 -0
  926. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/stable_diffusion/extensions_manager.py +0 -0
  927. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/stable_diffusion/hidiffusion_utils.py +0 -0
  928. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/stable_diffusion/multi_diffusion_pipeline.py +0 -0
  929. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/stable_diffusion/schedulers/__init__.py +0 -0
  930. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/stable_diffusion/schedulers/schedulers.py +0 -0
  931. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/stable_diffusion/vae_tiling.py +0 -0
  932. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/t5/__init__.py +0 -0
  933. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/t5/t5_tokenizer.py +0 -0
  934. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/t5/tokenizer/special_tokens_map.json +0 -0
  935. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/t5/tokenizer/tokenizer.json +0 -0
  936. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/t5/tokenizer/tokenizer_config.json +0 -0
  937. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/text_llm_pipeline.py +0 -0
  938. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/textual_inversion.py +0 -0
  939. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/tiles/__init__.py +0 -0
  940. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/tiles/tiles.py +0 -0
  941. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/tiles/utils.py +0 -0
  942. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/util/__init__.py +0 -0
  943. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/util/attention.py +0 -0
  944. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/util/build_line.py +0 -0
  945. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/util/calc_tensor_size.py +0 -0
  946. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/util/catch_sigint.py +0 -0
  947. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/util/device_pool.py +0 -0
  948. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/util/devices.py +0 -0
  949. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/util/fp8.py +0 -0
  950. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/util/gallery_maintenance.py +0 -0
  951. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/util/hotfixes.py +0 -0
  952. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/util/level_zero.py +0 -0
  953. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/util/logging.py +0 -0
  954. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/util/mask.py +0 -0
  955. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/util/original_weights_storage.py +0 -0
  956. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/util/prefix_logger_adapter.py +0 -0
  957. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/util/silence_warnings.py +0 -0
  958. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/util/test_utils.py +0 -0
  959. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/util/util.py +0 -0
  960. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/util/vae_working_memory.py +0 -0
  961. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/wan/__init__.py +0 -0
  962. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/wan/extensions/__init__.py +0 -0
  963. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/wan/extensions/wan_ref_image_extension.py +0 -0
  964. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/wan/memory_optimization.py +0 -0
  965. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/wan/rocm_causal_conv3d.py +0 -0
  966. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/wan/sampling_utils.py +0 -0
  967. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/wan/vae_decode.py +0 -0
  968. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/z_image/__init__.py +0 -0
  969. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/z_image/extensions/__init__.py +0 -0
  970. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/z_image/extensions/regional_prompting_extension.py +0 -0
  971. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/z_image/text_conditioning.py +0 -0
  972. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/z_image/z_image_control_adapter.py +0 -0
  973. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/z_image/z_image_control_transformer.py +0 -0
  974. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/z_image/z_image_controlnet_extension.py +0 -0
  975. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/z_image/z_image_patchify_utils.py +0 -0
  976. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/backend/z_image/z_image_transformer_patch.py +0 -0
  977. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/configs/controlnet/cldm_v15.yaml +0 -0
  978. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/configs/controlnet/cldm_v21.yaml +0 -0
  979. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/configs/stable-diffusion/sd_xl_base.yaml +0 -0
  980. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/configs/stable-diffusion/sd_xl_inpaint.yaml +0 -0
  981. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/configs/stable-diffusion/sd_xl_refiner.yaml +0 -0
  982. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/configs/stable-diffusion/v1-finetune.yaml +0 -0
  983. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/configs/stable-diffusion/v1-finetune_style.yaml +0 -0
  984. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/configs/stable-diffusion/v1-inference-v.yaml +0 -0
  985. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/configs/stable-diffusion/v1-inference.yaml +0 -0
  986. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/configs/stable-diffusion/v1-inpainting-inference.yaml +0 -0
  987. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/configs/stable-diffusion/v1-m1-finetune.yaml +0 -0
  988. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/configs/stable-diffusion/v2-inference-v.yaml +0 -0
  989. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/configs/stable-diffusion/v2-inference.yaml +0 -0
  990. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/configs/stable-diffusion/v2-inpainting-inference-v.yaml +0 -0
  991. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/configs/stable-diffusion/v2-inpainting-inference.yaml +0 -0
  992. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/configs/stable-diffusion/v2-midas-inference.yaml +0 -0
  993. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/frontend/__init__.py +0 -0
  994. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/frontend/cli/__init__.py +0 -0
  995. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/frontend/cli/arg_parser.py +0 -0
  996. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/frontend/install/__init__.py +0 -0
  997. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/frontend/install/import_images.py +0 -0
  998. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/frontend/web/__init__.py +0 -0
  999. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/frontend/web/dist/assets/App-tn1JZtBo.css +0 -0
  1000. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/frontend/web/dist/assets/browser-ponyfill-BpMPqZAt.js +0 -0
  1001. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/frontend/web/dist/assets/chunk-jRWAZmH_.js +0 -0
  1002. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/frontend/web/dist/assets/denoising-strength-4mznP2tj.png +0 -0
  1003. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/frontend/web/dist/assets/images/commercial-license-bg.png +0 -0
  1004. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/frontend/web/dist/assets/images/denoising-strength.png +0 -0
  1005. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/frontend/web/dist/assets/images/invoke-alert-favicon.svg +0 -0
  1006. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/frontend/web/dist/assets/images/invoke-avatar-circle.svg +0 -0
  1007. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/frontend/web/dist/assets/images/invoke-avatar-square.svg +0 -0
  1008. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/frontend/web/dist/assets/images/invoke-favicon.png +0 -0
  1009. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/frontend/web/dist/assets/images/invoke-favicon.svg +0 -0
  1010. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/frontend/web/dist/assets/images/invoke-key-char-lrg.svg +0 -0
  1011. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/frontend/web/dist/assets/images/invoke-key-char-sml.svg +0 -0
  1012. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/frontend/web/dist/assets/images/invoke-key-wht-lrg.svg +0 -0
  1013. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/frontend/web/dist/assets/images/invoke-key-wht-sml.svg +0 -0
  1014. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/frontend/web/dist/assets/images/invoke-symbol-char-lrg.svg +0 -0
  1015. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/frontend/web/dist/assets/images/invoke-symbol-char-sml.svg +0 -0
  1016. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/frontend/web/dist/assets/images/invoke-symbol-wht-lrg.svg +0 -0
  1017. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/frontend/web/dist/assets/images/invoke-symbol-wht-sml.svg +0 -0
  1018. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/frontend/web/dist/assets/images/invoke-symbol-ylw-lrg.svg +0 -0
  1019. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/frontend/web/dist/assets/images/invoke-tag-char-lrg.svg +0 -0
  1020. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/frontend/web/dist/assets/images/invoke-tag-char-sml.svg +0 -0
  1021. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/frontend/web/dist/assets/images/invoke-tag-lrg.svg +0 -0
  1022. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/frontend/web/dist/assets/images/invoke-tag-sml.svg +0 -0
  1023. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/frontend/web/dist/assets/images/invoke-wordmark-charcoal.svg +0 -0
  1024. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/frontend/web/dist/assets/images/invoke-wordmark-white.svg +0 -0
  1025. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/frontend/web/dist/assets/images/mask.svg +0 -0
  1026. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/frontend/web/dist/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2 +0 -0
  1027. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/frontend/web/dist/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2 +0 -0
  1028. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/frontend/web/dist/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2 +0 -0
  1029. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/frontend/web/dist/assets/inter-greek-wght-normal-CkhJZR-_.woff2 +0 -0
  1030. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/frontend/web/dist/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2 +0 -0
  1031. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/frontend/web/dist/assets/inter-latin-wght-normal-Dx4kXJAl.woff2 +0 -0
  1032. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/frontend/web/dist/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2 +0 -0
  1033. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/frontend/web/dist/assets/worker-DrJIfe_t.js +0 -0
  1034. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/frontend/web/dist/locales/ar.json +0 -0
  1035. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/frontend/web/dist/locales/az.json +0 -0
  1036. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/frontend/web/dist/locales/bg.json +0 -0
  1037. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/frontend/web/dist/locales/de.json +0 -0
  1038. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/frontend/web/dist/locales/en-GB.json +0 -0
  1039. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/frontend/web/dist/locales/es.json +0 -0
  1040. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/frontend/web/dist/locales/fi.json +0 -0
  1041. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/frontend/web/dist/locales/fr.json +0 -0
  1042. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/frontend/web/dist/locales/he.json +0 -0
  1043. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/frontend/web/dist/locales/hu.json +0 -0
  1044. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/frontend/web/dist/locales/it.json +0 -0
  1045. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/frontend/web/dist/locales/ja.json +0 -0
  1046. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/frontend/web/dist/locales/ko.json +0 -0
  1047. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/frontend/web/dist/locales/mn.json +0 -0
  1048. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/frontend/web/dist/locales/nl.json +0 -0
  1049. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/frontend/web/dist/locales/pl.json +0 -0
  1050. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/frontend/web/dist/locales/pt-BR.json +0 -0
  1051. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/frontend/web/dist/locales/pt.json +0 -0
  1052. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/frontend/web/dist/locales/ro.json +0 -0
  1053. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/frontend/web/dist/locales/ru.json +0 -0
  1054. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/frontend/web/dist/locales/sv.json +0 -0
  1055. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/frontend/web/dist/locales/tr.json +0 -0
  1056. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/frontend/web/dist/locales/uk.json +0 -0
  1057. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/frontend/web/dist/locales/vi.json +0 -0
  1058. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/frontend/web/dist/locales/zh-CN.json +0 -0
  1059. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/frontend/web/dist/locales/zh-Hant.json +0 -0
  1060. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/frontend/web/scripts/clean_translations.py +0 -0
  1061. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/frontend/web/static/docs/invoke-favicon-docs.svg +0 -0
  1062. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/invocation_api/__init__.py +0 -0
  1063. {invokeai-6.14.1 → invokeai-6.14.2}/invokeai/version/__init__.py +0 -0
  1064. {invokeai-6.14.1 → invokeai-6.14.2}/setup.cfg +0 -0
  1065. {invokeai-6.14.1 → invokeai-6.14.2}/tests/test_asyncio_shutdown.py +0 -0
  1066. {invokeai-6.14.1 → invokeai-6.14.2}/tests/test_calibrate_wan_vae_working_memory.py +0 -0
  1067. {invokeai-6.14.1 → invokeai-6.14.2}/tests/test_check_pins.py +0 -0
  1068. {invokeai-6.14.1 → invokeai-6.14.2}/tests/test_dangerously_run_function_in_subprocess.py +0 -0
  1069. {invokeai-6.14.1 → invokeai-6.14.2}/tests/test_docs_json_export.py +0 -0
  1070. {invokeai-6.14.1 → invokeai-6.14.2}/tests/test_graph_execution_state.py +0 -0
  1071. {invokeai-6.14.1 → invokeai-6.14.2}/tests/test_imports.py +0 -0
  1072. {invokeai-6.14.1 → invokeai-6.14.2}/tests/test_invocation_cache_memory.py +0 -0
  1073. {invokeai-6.14.1 → invokeai-6.14.2}/tests/test_item_storage_memory.py +0 -0
  1074. {invokeai-6.14.1 → invokeai-6.14.2}/tests/test_model_hash.py +0 -0
  1075. {invokeai-6.14.1 → invokeai-6.14.2}/tests/test_model_search.py +0 -0
  1076. {invokeai-6.14.1 → invokeai-6.14.2}/tests/test_node_graph.py +0 -0
  1077. {invokeai-6.14.1 → invokeai-6.14.2}/tests/test_nodes.py +0 -0
  1078. {invokeai-6.14.1 → invokeai-6.14.2}/tests/test_path.py +0 -0
  1079. {invokeai-6.14.1 → invokeai-6.14.2}/tests/test_profiler.py +0 -0
  1080. {invokeai-6.14.1 → invokeai-6.14.2}/tests/test_session_queue.py +0 -0
  1081. {invokeai-6.14.1 → invokeai-6.14.2}/tests/test_sqlite_migrator.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: InvokeAI
3
- Version: 6.14.1
3
+ Version: 6.14.2
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
@@ -247,6 +247,7 @@ Requires-Dist: dnspython
247
247
  Requires-Dist: dynamicprompts
248
248
  Requires-Dist: einops
249
249
  Requires-Dist: email-validator>=2.0.0
250
+ Requires-Dist: fonttools[woff]
250
251
  Requires-Dist: passlib[bcrypt]>=1.7.4
251
252
  Requires-Dist: picklescan
252
253
  Requires-Dist: pillow
@@ -124,6 +124,7 @@ invokeai/app/invocations/krea2_denoise.py
124
124
  invokeai/app/invocations/krea2_lora_loader.py
125
125
  invokeai/app/invocations/krea2_model_loader.py
126
126
  invokeai/app/invocations/krea2_seed_variance.py
127
+ invokeai/app/invocations/krea2_style_reference.py
127
128
  invokeai/app/invocations/krea2_text_encoder.py
128
129
  invokeai/app/invocations/latent_noise.py
129
130
  invokeai/app/invocations/latents_to_image.py
@@ -475,6 +476,7 @@ invokeai/app/util/dynamicprompts.py
475
476
  invokeai/app/util/metaenum.py
476
477
  invokeai/app/util/misc.py
477
478
  invokeai/app/util/model_exclude_null.py
479
+ invokeai/app/util/path_safety.py
478
480
  invokeai/app/util/profiler.py
479
481
  invokeai/app/util/ssrf.py
480
482
  invokeai/app/util/startup_utils.py
@@ -659,6 +661,10 @@ invokeai/backend/krea2/__init__.py
659
661
  invokeai/backend/krea2/attention.py
660
662
  invokeai/backend/krea2/regional_prompting.py
661
663
  invokeai/backend/krea2/sampling_utils.py
664
+ invokeai/backend/krea2/style_reference.py
665
+ invokeai/backend/krea2/style_reference_extension.py
666
+ invokeai/backend/krea2/style_reference_rf.py
667
+ invokeai/backend/krea2/text_encoding.py
662
668
  invokeai/backend/krea2/vae_compat.py
663
669
  invokeai/backend/model_hash/hash_validator.py
664
670
  invokeai/backend/model_hash/model_hash.py
@@ -933,6 +939,7 @@ invokeai/backend/util/mask.py
933
939
  invokeai/backend/util/original_weights_storage.py
934
940
  invokeai/backend/util/prefix_logger_adapter.py
935
941
  invokeai/backend/util/silence_warnings.py
942
+ invokeai/backend/util/state_dict_loading.py
936
943
  invokeai/backend/util/test_utils.py
937
944
  invokeai/backend/util/util.py
938
945
  invokeai/backend/util/vae_working_memory.py
@@ -975,12 +982,12 @@ invokeai/frontend/install/__init__.py
975
982
  invokeai/frontend/install/import_images.py
976
983
  invokeai/frontend/web/__init__.py
977
984
  invokeai/frontend/web/dist/index.html
978
- invokeai/frontend/web/dist/assets/App-CKkzUo1u.js
985
+ invokeai/frontend/web/dist/assets/App-DvlZKGz7.js
979
986
  invokeai/frontend/web/dist/assets/App-tn1JZtBo.css
980
987
  invokeai/frontend/web/dist/assets/browser-ponyfill-BpMPqZAt.js
981
988
  invokeai/frontend/web/dist/assets/chunk-jRWAZmH_.js
982
989
  invokeai/frontend/web/dist/assets/denoising-strength-4mznP2tj.png
983
- invokeai/frontend/web/dist/assets/index-BRHi9LIu.js
990
+ invokeai/frontend/web/dist/assets/index-BuK6cFYB.js
984
991
  invokeai/frontend/web/dist/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2
985
992
  invokeai/frontend/web/dist/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2
986
993
  invokeai/frontend/web/dist/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2
@@ -31,6 +31,7 @@ dnspython
31
31
  dynamicprompts
32
32
  einops
33
33
  email-validator>=2.0.0
34
+ fonttools[woff]
34
35
  passlib[bcrypt]>=1.7.4
35
36
  picklescan
36
37
  pillow
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: InvokeAI
3
- Version: 6.14.1
3
+ Version: 6.14.2
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
@@ -247,6 +247,7 @@ Requires-Dist: dnspython
247
247
  Requires-Dist: dynamicprompts
248
248
  Requires-Dist: einops
249
249
  Requires-Dist: email-validator>=2.0.0
250
+ Requires-Dist: fonttools[woff]
250
251
  Requires-Dist: passlib[bcrypt]>=1.7.4
251
252
  Requires-Dist: picklescan
252
253
  Requires-Dist: pillow
@@ -7,6 +7,7 @@ import io
7
7
  import pathlib
8
8
  import threading
9
9
  import traceback
10
+ import unicodedata
10
11
  from collections.abc import Generator
11
12
  from copy import deepcopy
12
13
  from enum import Enum
@@ -24,7 +25,10 @@ from typing_extensions import Annotated
24
25
 
25
26
  from invokeai.app.api.auth_dependencies import AdminUserOrDefault, CurrentUserOrDefault
26
27
  from invokeai.app.api.dependencies import ApiDependencies
27
- from invokeai.app.services.model_images.model_images_common import ModelImageFileNotFoundException
28
+ from invokeai.app.services.model_images.model_images_common import (
29
+ ModelImageFileDeleteException,
30
+ ModelImageFileNotFoundException,
31
+ )
28
32
  from invokeai.app.services.model_install.model_install_common import ModelInstallJob
29
33
  from invokeai.app.services.model_records import (
30
34
  InvalidModelException,
@@ -34,6 +38,7 @@ from invokeai.app.services.model_records import (
34
38
  )
35
39
  from invokeai.app.services.orphaned_models import CONVERSION_SCRATCH_DIRNAME, OrphanedModelInfo
36
40
  from invokeai.app.services.shared.sqlite.sqlite_common import SQLiteDirection
41
+ from invokeai.app.util.path_safety import is_plain_filename
37
42
  from invokeai.app.util.suppress_output import SuppressOutput
38
43
  from invokeai.backend.model_manager.configs.external_api import ExternalApiModelConfig
39
44
  from invokeai.backend.model_manager.configs.factory import AnyModelConfig, ModelConfigFactory
@@ -77,6 +82,18 @@ _MODEL_KEY_CLAIM_LOCK = threading.Lock()
77
82
  _CLAIMED_MODEL_KEYS: set[str] = set()
78
83
 
79
84
 
85
+ def _claim_token(key: str) -> str:
86
+ """The form of a key recorded in `_CLAIMED_MODEL_KEYS`.
87
+
88
+ A model's cover image is stored as `<key>.webp`, and some filesystems map different strings to one file: the
89
+ macOS and Windows defaults are case-insensitive, and APFS also ignores Unicode normalization, so `\u00e9` and
90
+ `e\u0301` name the same entry. Claims use Unicode canonical caseless matching (NFD, casefold, NFD) so that such a
91
+ variant of a key cannot slip past a claim held on the key itself and touch that file. Two keys that are
92
+ distinct on disk but equal under this form would at worst serialize against each other.
93
+ """
94
+ return unicodedata.normalize("NFD", unicodedata.normalize("NFD", key).casefold())
95
+
96
+
80
97
  @contextlib.contextmanager
81
98
  def _claim_model_key(key: str) -> Generator[None, None, None]:
82
99
  """Hold the exclusive claim on one model key, or raise 409 if another request holds it."""
@@ -87,20 +104,21 @@ def _claim_model_key(key: str) -> Generator[None, None, None]:
87
104
  status_code=409,
88
105
  detail="Another model operation is already in progress. Wait for it to finish and try again.",
89
106
  )
107
+ token = _claim_token(key)
90
108
  try:
91
- if key in _CLAIMED_MODEL_KEYS:
109
+ if token in _CLAIMED_MODEL_KEYS:
92
110
  raise HTTPException(
93
111
  status_code=409,
94
112
  detail=f"Another operation on model {key} is already in progress. Wait for it to finish and try again.",
95
113
  )
96
- _CLAIMED_MODEL_KEYS.add(key)
114
+ _CLAIMED_MODEL_KEYS.add(token)
97
115
  finally:
98
116
  _MODEL_KEY_CLAIM_LOCK.release()
99
117
  try:
100
118
  yield
101
119
  finally:
102
120
  with _MODEL_KEY_CLAIM_LOCK:
103
- _CLAIMED_MODEL_KEYS.discard(key)
121
+ _CLAIMED_MODEL_KEYS.discard(token)
104
122
 
105
123
 
106
124
  @contextlib.contextmanager
@@ -112,17 +130,18 @@ def _install_and_claim_model(
112
130
  # request claims so a delete cannot observe the new record before its key is claimed.
113
131
  with _MODEL_KEY_CLAIM_LOCK:
114
132
  new_key = installer.install_path(model_path, config=config)
115
- if new_key in _CLAIMED_MODEL_KEYS:
133
+ token = _claim_token(new_key)
134
+ if token in _CLAIMED_MODEL_KEYS:
116
135
  raise HTTPException(
117
136
  status_code=409,
118
137
  detail=f"Another operation on model {new_key} is already in progress. Wait for it to finish and try again.",
119
138
  )
120
- _CLAIMED_MODEL_KEYS.add(new_key)
139
+ _CLAIMED_MODEL_KEYS.add(token)
121
140
  try:
122
141
  yield new_key
123
142
  finally:
124
143
  with _MODEL_KEY_CLAIM_LOCK:
125
- _CLAIMED_MODEL_KEYS.discard(new_key)
144
+ _CLAIMED_MODEL_KEYS.discard(token)
126
145
 
127
146
 
128
147
  # The HF token is process-global state backed by a file in the HF cache. Concurrent writers would
@@ -580,6 +599,13 @@ async def update_model_record(
580
599
  current_admin: AdminUserOrDefault,
581
600
  ) -> AnyModelConfig:
582
601
  """Update a model's config."""
602
+ # The key identifies the row; it is not an editable field, and there is no UI to change one. The edit form
603
+ # does post the record back whole, so an unchanged echo is expected and accepted - but a *different* key is
604
+ # written into the stored config while the row id keeps the old one, which leaves a record that answers to a
605
+ # key nothing can look it up by: `replace_model` (and so reidentify) raises `UnknownModelException` forever
606
+ # after, and the UI caches the model under the new key so every later request for it 404s.
607
+ if "key" in changes.model_fields_set and changes.key != key:
608
+ raise HTTPException(status_code=422, detail="A model's key cannot be changed")
583
609
  return await asyncio.to_thread(_update_model_record, key, changes)
584
610
 
585
611
 
@@ -643,6 +669,7 @@ def get_model_image(
643
669
  "description": "The model image was updated successfully",
644
670
  },
645
671
  400: {"description": "Bad request"},
672
+ 404: {"description": "The model could not be found"},
646
673
  409: {"description": "Another operation on this model is already in progress"},
647
674
  },
648
675
  status_code=200,
@@ -660,6 +687,25 @@ async def update_model_image(
660
687
  # A conversion moves this model's image to the replacement's key when it finishes, so claim
661
688
  # the key before reading the upload and hold it until the image is saved.
662
689
  with _claim_model_key(key):
690
+ # The image is stored in a file named after the key, so a key that names no model would have us write a
691
+ # stray file - and a key that is not a plain filename would have us write it outside the images folder.
692
+ # Resolving the record turns both into a 404 instead. It has to happen under the claim: the delete and
693
+ # convert routes claim the key too, so they cannot remove the record between this check and the save.
694
+ # (Removing an external provider's models in `app_info.py` does not take the claim, so that path can
695
+ # still leave an orphan image - which the image-delete route below can clean up.)
696
+ try:
697
+ ApiDependencies.invoker.services.model_manager.store.get_model(key)
698
+ except UnknownModelException as e:
699
+ raise HTTPException(status_code=404, detail=str(e))
700
+
701
+ # A record written before install requests had their keys validated can still carry a key that is not a
702
+ # plain filename. The storage service refuses to build a path from it; ask it now, so that is a 404
703
+ # rather than a save failure surfacing as a 500 after the upload has been read.
704
+ try:
705
+ model_images.get_path(key)
706
+ except ModelImageFileNotFoundException as e:
707
+ raise HTTPException(status_code=404, detail=str(e))
708
+
663
709
  contents = await image.read()
664
710
  try:
665
711
  pil_image = await asyncio.to_thread(Image.open, io.BytesIO(contents))
@@ -847,13 +893,17 @@ def delete_model_image(
847
893
  # Claimed for the same reason as the upload: a conversion carries this model's image over to
848
894
  # the replacement's key, so a delete accepted meanwhile is undone by that copy.
849
895
  with _claim_model_key(key):
896
+ # Unlike the upload, this does not require the model's record: deleting a model leaves its image
897
+ # behind, and this route is how that orphan gets cleaned up. The storage service rejects a key that
898
+ # is not a plain filename, and that - like a missing file - is a 404.
850
899
  try:
851
900
  model_images.delete(key)
852
901
  logger.info(f"Deleted model image: {key}")
853
902
  return
854
- except UnknownModelException as e:
855
- logger.error(str(e))
856
- raise HTTPException(status_code=404, detail=str(e))
903
+ except ModelImageFileDeleteException as e:
904
+ if isinstance(e.__cause__, ModelImageFileNotFoundException):
905
+ raise HTTPException(status_code=404, detail=str(e.__cause__))
906
+ raise
857
907
 
858
908
 
859
909
  @model_manager_router.post(
@@ -906,6 +956,12 @@ def install_model(
906
956
  """
907
957
  logger = ApiDependencies.invoker.services.logger
908
958
 
959
+ # A caller may name the key it wants, and the key names the directory the model is moved into and the file its
960
+ # cover image is written to. Reject an unusable one here, where it is being chosen, rather than letting the
961
+ # install fail later at one of those joins. Existing records are not held to this - see `ModelRecordChanges.key`.
962
+ if config.key is not None and not is_plain_filename(config.key):
963
+ raise HTTPException(status_code=422, detail=f"Invalid model key {config.key!r}: it must be a plain filename")
964
+
909
965
  try:
910
966
  installer = ApiDependencies.invoker.services.model_manager.install
911
967
  result: ModelInstallJob = installer.heuristic_import(
@@ -1,13 +1,18 @@
1
1
  import asyncio
2
2
  import logging
3
+ import re
3
4
  import threading
4
5
  from pathlib import Path
5
6
  from typing import Optional, Union
7
+ from urllib.parse import quote
6
8
 
7
9
  import torch
8
10
  from dynamicprompts.generators import CombinatorialPromptGenerator, RandomPromptGenerator
9
11
  from fastapi import Body, HTTPException
12
+ from fastapi.responses import FileResponse
10
13
  from fastapi.routing import APIRouter
14
+ from fontTools.ttLib import TTFont
15
+ from PIL import ImageFont
11
16
  from pydantic import BaseModel, Field
12
17
  from pyparsing import ParseException
13
18
  from transformers import AutoProcessor, AutoTokenizer, LlavaOnevisionForConditionalGeneration, LlavaOnevisionProcessor
@@ -29,6 +34,14 @@ from invokeai.backend.util.devices import TorchDevice
29
34
  logger = logging.getLogger(__name__)
30
35
 
31
36
  utilities_router = APIRouter(prefix="/v1/utilities", tags=["utilities"])
37
+ SUPPORTED_FONT_EXTENSIONS = {".ttf", ".otf", ".woff", ".woff2"}
38
+ FONT_MEDIA_TYPES = {
39
+ ".ttf": "font/ttf",
40
+ ".otf": "font/otf",
41
+ ".woff": "font/woff",
42
+ ".woff2": "font/woff2",
43
+ }
44
+ FONT_CACHE_CONTROL = "private, max-age=31536000, immutable"
32
45
 
33
46
  # The underlying model loader is not thread-safe, so we serialize load_model calls.
34
47
  _model_load_lock = threading.Lock()
@@ -39,6 +52,26 @@ class DynamicPromptsResponse(BaseModel):
39
52
  error: Optional[str] = None
40
53
 
41
54
 
55
+ class UserFontFace(BaseModel):
56
+ path: str
57
+ url: str
58
+ weight: int
59
+ style: str
60
+
61
+
62
+ class UserFont(BaseModel):
63
+ id: str
64
+ family: str
65
+ label: str
66
+ path: str
67
+ url: str
68
+ faces: list[UserFontFace]
69
+
70
+
71
+ class UserFontsResponse(BaseModel):
72
+ fonts: list[UserFont]
73
+
74
+
42
75
  @utilities_router.post(
43
76
  "/dynamicprompts",
44
77
  operation_id="parse_dynamicprompts",
@@ -81,6 +114,257 @@ def parse_dynamicprompts(
81
114
  return DynamicPromptsResponse(prompts=prompts if prompts else [""], error=error)
82
115
 
83
116
 
117
+ def _get_fonts_dir() -> Path:
118
+ return ApiDependencies.invoker.services.configuration.fonts_path
119
+
120
+
121
+ def _path_has_symlink_component(path: Path, boundary: Path) -> bool:
122
+ current = path
123
+ boundary = boundary.absolute()
124
+ try:
125
+ current.absolute().relative_to(boundary)
126
+ except ValueError:
127
+ return True
128
+
129
+ while True:
130
+ if current.is_symlink():
131
+ return True
132
+ if current == boundary:
133
+ return False
134
+ current = current.parent
135
+
136
+
137
+ def _get_name_table_value(font: TTFont, name_ids: tuple[int, ...]) -> str | None:
138
+ if "name" not in font:
139
+ return None
140
+
141
+ def _sort_key(record: object) -> tuple[int, int]:
142
+ platform_id = getattr(record, "platformID", -1)
143
+ lang_id = getattr(record, "langID", -1)
144
+ if platform_id == 3 and lang_id in (0x0409, 0):
145
+ return (0, 0)
146
+ if platform_id == 3:
147
+ return (1, 0)
148
+ if platform_id == 0:
149
+ return (2, 0)
150
+ return (3, lang_id)
151
+
152
+ records = font["name"].names
153
+ for name_id in name_ids:
154
+ for record in sorted((record for record in records if record.nameID == name_id), key=_sort_key):
155
+ try:
156
+ value = record.toUnicode().strip()
157
+ except Exception:
158
+ continue
159
+ if value:
160
+ return value
161
+ return None
162
+
163
+
164
+ def _normalize_variant_text(value: str) -> str:
165
+ value = re.sub(r"(?<=[a-z])(?=[A-Z])", " ", value)
166
+ value = value.replace("_", " ").replace("-", " ")
167
+ value = re.sub(r"\s+", " ", value)
168
+ return value.strip().lower()
169
+
170
+
171
+ def _infer_font_weight(style_name: str, file_stem: str, weight_class: int | None) -> int:
172
+ if isinstance(weight_class, int) and 1 <= weight_class <= 1000:
173
+ return weight_class
174
+
175
+ combined = _normalize_variant_text(f"{style_name} {file_stem}")
176
+ # Ordering matters: more specific keywords must be matched before "bold".
177
+ weight_keywords = [
178
+ (("thin", "hairline"), 100),
179
+ (("extra light", "ultra light", "extralight", "ultralight"), 200),
180
+ (("light",), 300),
181
+ (("normal", "regular", "roman", "book"), 400),
182
+ (("medium",), 500),
183
+ (("semi bold", "semibold", "demi bold", "demibold"), 600),
184
+ (("extra bold", "ultra bold", "extrabold", "ultrabold"), 800),
185
+ (("black", "heavy"), 900),
186
+ (("bold",), 700),
187
+ ]
188
+ for keywords, weight in weight_keywords:
189
+ if any(keyword in combined for keyword in keywords):
190
+ return weight
191
+
192
+ return 400
193
+
194
+
195
+ def _infer_font_style(style_name: str, file_stem: str, italic_flag: bool) -> str:
196
+ if italic_flag:
197
+ return "italic"
198
+
199
+ combined = _normalize_variant_text(f"{style_name} {file_stem}")
200
+ if "italic" in combined or "oblique" in combined:
201
+ return "italic"
202
+
203
+ return "normal"
204
+
205
+
206
+ def _get_font_metadata(font_file: Path) -> tuple[str, str, int, str] | None:
207
+ ttfont_error: Exception | None = None
208
+ try:
209
+ with TTFont(font_file.as_posix(), lazy=True) as font:
210
+ family_name = (_get_name_table_value(font, (16, 1)) or "").strip()
211
+ style_name = (_get_name_table_value(font, (17, 2)) or "").strip()
212
+ os2_table = font["OS/2"] if "OS/2" in font else None
213
+ head_table = font["head"] if "head" in font else None
214
+ post_table = font["post"] if "post" in font else None
215
+ weight_class = getattr(os2_table, "usWeightClass", None)
216
+ italic_flag = bool(getattr(os2_table, "fsSelection", 0) & 0x01) or bool(
217
+ getattr(head_table, "macStyle", 0) & 0x02
218
+ )
219
+ if post_table is not None:
220
+ italic_flag = italic_flag or bool(getattr(post_table, "italicAngle", 0))
221
+ if family_name:
222
+ return (
223
+ family_name,
224
+ family_name,
225
+ _infer_font_weight(style_name, font_file.stem, weight_class),
226
+ _infer_font_style(style_name, font_file.stem, italic_flag),
227
+ )
228
+ except Exception as e:
229
+ ttfont_error = e
230
+
231
+ try:
232
+ font = ImageFont.truetype(font_file.as_posix(), size=16)
233
+ family_name, style_name = font.getname()
234
+ family_name = family_name.strip()
235
+ style_name = style_name.strip()
236
+ if family_name:
237
+ return (
238
+ family_name,
239
+ family_name,
240
+ _infer_font_weight(style_name, font_file.stem, None),
241
+ _infer_font_style(style_name, font_file.stem, False),
242
+ )
243
+ except Exception as e:
244
+ logger.warning(
245
+ "Skipping font file %s: unable to read font metadata with fontTools or Pillow (%s, %s)",
246
+ font_file,
247
+ type(ttfont_error).__name__ if ttfont_error else "no-fontTools-error",
248
+ type(e).__name__,
249
+ exc_info=e,
250
+ )
251
+ return None
252
+
253
+ logger.warning("Skipping font file %s: missing font family metadata", font_file)
254
+ return None
255
+
256
+
257
+ def _resolve_font_request_path(font_path: str) -> Path:
258
+ fonts_dir = _get_fonts_dir()
259
+ if not fonts_dir.exists() or not fonts_dir.is_dir():
260
+ raise HTTPException(status_code=404, detail="Font file not found")
261
+
262
+ requested = (fonts_dir / font_path).absolute()
263
+ if _path_has_symlink_component(requested, fonts_dir):
264
+ raise HTTPException(status_code=400, detail="Invalid font path")
265
+
266
+ resolved_fonts_dir = fonts_dir.resolve()
267
+ resolved_requested = requested.resolve()
268
+
269
+ try:
270
+ resolved_requested.relative_to(resolved_fonts_dir)
271
+ except ValueError as e:
272
+ raise HTTPException(status_code=400, detail="Invalid font path") from e
273
+
274
+ return resolved_requested
275
+
276
+
277
+ @utilities_router.get(
278
+ "/fonts",
279
+ operation_id="list_user_fonts",
280
+ responses={200: {"model": UserFontsResponse}},
281
+ )
282
+ def list_user_fonts(_current_user: CurrentUserOrDefault) -> UserFontsResponse:
283
+ fonts_dir = _get_fonts_dir()
284
+ if not fonts_dir.exists() or not fonts_dir.is_dir() or fonts_dir.is_symlink():
285
+ if fonts_dir.is_symlink():
286
+ logger.warning("Skipping custom fonts directory %s: symlinks are not supported", fonts_dir)
287
+ return UserFontsResponse(fonts=[])
288
+
289
+ family_candidates: dict[str, list[tuple[Path, str, str, int, str]]] = {}
290
+ # key -> [(font_file, relative, family, weight, style)]
291
+ for font_file in sorted(fonts_dir.rglob("*")):
292
+ if _path_has_symlink_component(font_file.absolute(), fonts_dir):
293
+ logger.warning("Skipping font path %s: symlinks are not supported", font_file)
294
+ continue
295
+ if not font_file.is_file() or font_file.suffix.lower() not in SUPPORTED_FONT_EXTENSIONS:
296
+ continue
297
+ relative = font_file.relative_to(fonts_dir).as_posix()
298
+ metadata = _get_font_metadata(font_file)
299
+ if metadata is None:
300
+ continue
301
+ family, _label, weight, style = metadata
302
+ family_key = family.strip().lower()
303
+ family_candidates.setdefault(family_key, []).append((font_file, relative, family, weight, style))
304
+
305
+ def _candidate_score(weight: int, style: str, path: Path) -> tuple[int, int, int]:
306
+ """Lower score is better. Prefer regular/normal faces, then shorter names."""
307
+ return (0 if style == "normal" else 1, abs(weight - 400), len(path.stem))
308
+
309
+ fonts: list[UserFont] = []
310
+ for family_key, candidates in sorted(family_candidates.items(), key=lambda kv: kv[0]):
311
+ _, selected_relative, selected_family, _, _ = min(candidates, key=lambda c: _candidate_score(c[3], c[4], c[0]))
312
+ faces_by_variant: dict[tuple[int, str], tuple[Path, str, str, int, str]] = {}
313
+ for candidate in candidates:
314
+ variant_key = (candidate[3], candidate[4])
315
+ current = faces_by_variant.get(variant_key)
316
+ if current is None or _candidate_score(candidate[3], candidate[4], candidate[0]) < _candidate_score(
317
+ current[3], current[4], current[0]
318
+ ):
319
+ faces_by_variant[variant_key] = candidate
320
+
321
+ faces = [
322
+ UserFontFace(
323
+ path=relative,
324
+ url=f"api/v1/utilities/fonts/{quote(relative)}",
325
+ weight=weight,
326
+ style=style,
327
+ )
328
+ for (weight, style), (_, relative, _, _, _) in sorted(
329
+ faces_by_variant.items(), key=lambda item: (item[0][1] != "normal", abs(item[0][0] - 400), item[0][0])
330
+ )
331
+ ]
332
+
333
+ fonts.append(
334
+ UserFont(
335
+ id=f"user:{family_key}",
336
+ family=selected_family,
337
+ label=selected_family,
338
+ path=selected_relative,
339
+ url=f"api/v1/utilities/fonts/{quote(selected_relative)}",
340
+ faces=faces,
341
+ )
342
+ )
343
+
344
+ return UserFontsResponse(fonts=fonts)
345
+
346
+
347
+ @utilities_router.get(
348
+ "/fonts/{font_path:path}",
349
+ operation_id="get_user_font_file",
350
+ )
351
+ def get_user_font_file(font_path: str, _current_user: CurrentUserOrDefault) -> FileResponse:
352
+ requested = _resolve_font_request_path(font_path)
353
+ if not requested.exists() or not requested.is_file():
354
+ raise HTTPException(status_code=404, detail="Font file not found")
355
+
356
+ if requested.suffix.lower() not in SUPPORTED_FONT_EXTENSIONS:
357
+ raise HTTPException(status_code=400, detail="Unsupported font format")
358
+
359
+ return FileResponse(
360
+ path=requested,
361
+ media_type=FONT_MEDIA_TYPES[requested.suffix.lower()],
362
+ filename=requested.name,
363
+ content_disposition_type="inline",
364
+ headers={"Cache-Control": FONT_CACHE_CONTROL},
365
+ )
366
+
367
+
84
368
  # --- Expand Prompt ---
85
369
 
86
370
 
@@ -257,7 +541,7 @@ def _run_image_to_prompt(
257
541
  with _model_load_lock:
258
542
  loaded_model = model_manager.load.load_model(model_config, user_id=user_id)
259
543
 
260
- # Load the image from InvokeAI's image store
544
+ # Load the image from InvokeAI's image store.
261
545
  image = ApiDependencies.invoker.services.images.get_pil_image(image_name)
262
546
  image = image.convert("RGB")
263
547
 
@@ -215,8 +215,12 @@ class _VideoUploadStreamParser:
215
215
  self._header_value = bytearray()
216
216
  self._headers: dict[bytes, bytes] = {}
217
217
  self._part_name: Optional[bytes] = None
218
- self._metadata_chunks: list[bytes] = []
219
- self._metadata_size = 0
218
+ # A bytearray, not a list of per-callback chunks: the parser hands the metadata
219
+ # field over in whatever pieces the client sent it, and one `bytes` object per
220
+ # piece would let a client that dribbles the field in 2-byte pieces hold ~22x the
221
+ # size cap in memory. `len(self._metadata)` is the retained size, so the cap
222
+ # below bounds memory, not just payload.
223
+ self._metadata = bytearray()
220
224
  self.filename: Optional[str] = None
221
225
  self.content_type: Optional[str] = None
222
226
  self.metadata: Optional[str] = None
@@ -247,8 +251,7 @@ class _VideoUploadStreamParser:
247
251
  self._header_field = bytearray()
248
252
  self._header_value = bytearray()
249
253
  self._part_name = None
250
- self._metadata_chunks = []
251
- self._metadata_size = 0
254
+ self._metadata = bytearray()
252
255
 
253
256
  def _on_header_field(self, data: bytes, start: int, end: int) -> None:
254
257
  self._header_field.extend(data[start:end])
@@ -288,25 +291,23 @@ class _VideoUploadStreamParser:
288
291
  )
289
292
  self._destination.write(chunk)
290
293
  elif self._part_name == b"metadata":
291
- self._metadata_size += len(chunk)
292
- if self._metadata_size > MAX_UPLOAD_METADATA_SIZE:
294
+ if len(self._metadata) + len(chunk) > MAX_UPLOAD_METADATA_SIZE:
293
295
  raise HTTPException(
294
296
  status_code=413,
295
297
  detail=f"Video metadata exceeds maximum size ({MAX_UPLOAD_METADATA_SIZE} bytes)",
296
298
  )
297
- self._metadata_chunks.append(chunk)
299
+ self._metadata.extend(chunk)
298
300
  # Any other field is dropped rather than buffered: an unknown part must not be a
299
301
  # way to make the server hold arbitrary bytes in memory.
300
302
 
301
303
  def _on_part_end(self) -> None:
302
304
  if self._part_name == b"metadata":
303
305
  try:
304
- self.metadata = b"".join(self._metadata_chunks).decode("utf-8")
306
+ self.metadata = self._metadata.decode("utf-8")
305
307
  except UnicodeDecodeError as error:
306
308
  raise HTTPException(status_code=422, detail="Metadata must be UTF-8 encoded") from error
307
309
  self._part_name = None
308
- self._metadata_chunks = []
309
- self._metadata_size = 0
310
+ self._metadata = bytearray()
310
311
 
311
312
  def _on_end(self) -> None:
312
313
  self.saw_end = True