InvokeAI 4.2.9.dev20240824__tar.gz → 4.2.9rc2__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 (482) hide show
  1. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/InvokeAI.egg-info/PKG-INFO +1 -1
  2. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/InvokeAI.egg-info/SOURCES.txt +25 -5
  3. InvokeAI-4.2.9rc2/InvokeAI.egg-info/entry_points.txt +2 -0
  4. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/InvokeAI.egg-info/requires.txt +4 -0
  5. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/PKG-INFO +1 -1
  6. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/api/routers/model_manager.py +91 -0
  7. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/api/routers/session_queue.py +0 -14
  8. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/invocations/denoise_latents.py +1 -1
  9. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/invocations/fields.py +15 -1
  10. InvokeAI-4.2.9rc2/invokeai/app/invocations/flux_denoise.py +249 -0
  11. InvokeAI-4.2.9rc2/invokeai/app/invocations/flux_text_encoder.py +92 -0
  12. InvokeAI-4.2.9rc2/invokeai/app/invocations/flux_vae_decode.py +60 -0
  13. InvokeAI-4.2.9rc2/invokeai/app/invocations/flux_vae_encode.py +67 -0
  14. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/invocations/image.py +1 -66
  15. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/invocations/mask.py +6 -1
  16. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/invocations/model.py +90 -2
  17. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/invocations/primitives.py +12 -0
  18. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/events/events_common.py +2 -8
  19. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/model_install/model_install_common.py +1 -1
  20. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/model_install/model_install_default.py +3 -2
  21. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/model_records/model_records_base.py +1 -0
  22. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/session_queue/session_queue_base.py +0 -6
  23. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/session_queue/session_queue_common.py +0 -11
  24. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/session_queue/session_queue_sqlite.py +9 -49
  25. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/shared/invocation_context.py +19 -1
  26. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/shared/sqlite/sqlite_util.py +0 -2
  27. InvokeAI-4.2.9rc2/invokeai/app/services/workflow_records/default_workflows/FLUX Image to Image.json +407 -0
  28. InvokeAI-4.2.9rc2/invokeai/app/services/workflow_records/default_workflows/Flux Text to Image.json +326 -0
  29. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/util/step_callback.py +48 -0
  30. InvokeAI-4.2.9rc2/invokeai/backend/flux/denoise.py +56 -0
  31. InvokeAI-4.2.9rc2/invokeai/backend/flux/inpaint_extension.py +35 -0
  32. InvokeAI-4.2.9rc2/invokeai/backend/flux/math.py +32 -0
  33. InvokeAI-4.2.9rc2/invokeai/backend/flux/model.py +117 -0
  34. InvokeAI-4.2.9rc2/invokeai/backend/flux/modules/autoencoder.py +324 -0
  35. InvokeAI-4.2.9rc2/invokeai/backend/flux/modules/conditioner.py +33 -0
  36. InvokeAI-4.2.9rc2/invokeai/backend/flux/modules/layers.py +253 -0
  37. InvokeAI-4.2.9rc2/invokeai/backend/flux/sampling_utils.py +135 -0
  38. InvokeAI-4.2.9rc2/invokeai/backend/flux/util.py +71 -0
  39. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/backend/model_manager/config.py +60 -3
  40. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/backend/model_manager/load/load_default.py +4 -2
  41. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/backend/model_manager/load/model_cache/model_cache_base.py +18 -10
  42. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/backend/model_manager/load/model_cache/model_cache_default.py +71 -59
  43. InvokeAI-4.2.9rc2/invokeai/backend/model_manager/load/model_loaders/flux.py +239 -0
  44. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/backend/model_manager/load/model_loaders/generic_diffusers.py +6 -1
  45. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/backend/model_manager/load/model_loaders/stable_diffusion.py +12 -2
  46. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/backend/model_manager/load/model_util.py +12 -1
  47. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/backend/model_manager/probe.py +108 -15
  48. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/backend/model_manager/starter_models.py +74 -1
  49. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/backend/model_manager/util/model_util.py +26 -0
  50. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/backend/model_manager/util/select_hf_files.py +23 -3
  51. InvokeAI-4.2.9rc2/invokeai/backend/quantization/bnb_llm_int8.py +135 -0
  52. InvokeAI-4.2.9rc2/invokeai/backend/quantization/bnb_nf4.py +156 -0
  53. InvokeAI-4.2.9rc2/invokeai/backend/quantization/scripts/load_flux_model_bnb_llm_int8.py +79 -0
  54. InvokeAI-4.2.9rc2/invokeai/backend/quantization/scripts/load_flux_model_bnb_nf4.py +96 -0
  55. InvokeAI-4.2.9rc2/invokeai/backend/quantization/scripts/quantize_t5_xxl_bnb_llm_int8.py +92 -0
  56. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/backend/stable_diffusion/diffusion/conditioning_data.py +16 -5
  57. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/backend/util/__init__.py +1 -2
  58. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/backend/util/util.py +0 -3
  59. InvokeAI-4.2.9rc2/invokeai/frontend/cli/__init__.py +0 -0
  60. InvokeAI-4.2.9rc2/invokeai/frontend/web/dist/assets/App-D1NtDI7i.js +137 -0
  61. InvokeAI-4.2.9.dev20240824/invokeai/frontend/web/dist/assets/ThemeLocaleProvider-CbAimOPZ.js → InvokeAI-4.2.9rc2/invokeai/frontend/web/dist/assets/ThemeLocaleProvider-CFdiQhFL.js +1 -1
  62. InvokeAI-4.2.9rc2/invokeai/frontend/web/dist/assets/index-CsEnX8zB.js +510 -0
  63. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/frontend/web/dist/index.html +1 -1
  64. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/frontend/web/dist/locales/en.json +9 -112
  65. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/invocation_api/__init__.py +4 -0
  66. InvokeAI-4.2.9rc2/invokeai/version/invokeai_version.py +1 -0
  67. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/pyproject.toml +3 -2
  68. InvokeAI-4.2.9.dev20240824/InvokeAI.egg-info/entry_points.txt +0 -4
  69. InvokeAI-4.2.9.dev20240824/invokeai/app/services/shared/sqlite_migrator/migrations/migration_15.py +0 -31
  70. InvokeAI-4.2.9.dev20240824/invokeai/frontend/web/dist/assets/App-BoqVb0rn.js +0 -26
  71. InvokeAI-4.2.9.dev20240824/invokeai/frontend/web/dist/assets/index-BNntoaVx.js +0 -563
  72. InvokeAI-4.2.9.dev20240824/invokeai/frontend/web/dist/assets/worker-Dywf1EVc.js +0 -1
  73. InvokeAI-4.2.9.dev20240824/invokeai/version/invokeai_version.py +0 -1
  74. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/InvokeAI.egg-info/dependency_links.txt +0 -0
  75. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/InvokeAI.egg-info/top_level.txt +0 -0
  76. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/LICENSE +0 -0
  77. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/LICENSE-SD1+SD2.txt +0 -0
  78. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/LICENSE-SDXL.txt +0 -0
  79. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/README.md +0 -0
  80. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/__init__.py +0 -0
  81. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/api/dependencies.py +0 -0
  82. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/api/no_cache_staticfiles.py +0 -0
  83. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/api/routers/app_info.py +0 -0
  84. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/api/routers/board_images.py +0 -0
  85. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/api/routers/boards.py +0 -0
  86. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/api/routers/download_queue.py +0 -0
  87. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/api/routers/images.py +0 -0
  88. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/api/routers/style_presets.py +0 -0
  89. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/api/routers/utilities.py +0 -0
  90. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/api/routers/workflows.py +0 -0
  91. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/api/sockets.py +0 -0
  92. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/api_app.py +0 -0
  93. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/assets/images/caution.png +0 -0
  94. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/invocations/__init__.py +0 -0
  95. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/invocations/baseinvocation.py +0 -0
  96. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/invocations/blend_latents.py +0 -0
  97. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/invocations/collections.py +0 -0
  98. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/invocations/compel.py +0 -0
  99. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/invocations/constants.py +0 -0
  100. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/invocations/controlnet_image_processors.py +0 -0
  101. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/invocations/create_denoise_mask.py +0 -0
  102. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/invocations/create_gradient_mask.py +0 -0
  103. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/invocations/crop_latents.py +0 -0
  104. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/invocations/custom_nodes/README.md +0 -0
  105. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/invocations/custom_nodes/init.py +0 -0
  106. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/invocations/cv.py +0 -0
  107. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/invocations/facetools.py +0 -0
  108. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/invocations/grounding_dino.py +0 -0
  109. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/invocations/ideal_size.py +0 -0
  110. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/invocations/image_to_latents.py +0 -0
  111. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/invocations/infill.py +0 -0
  112. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/invocations/ip_adapter.py +0 -0
  113. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/invocations/latents_to_image.py +0 -0
  114. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/invocations/math.py +0 -0
  115. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/invocations/metadata.py +0 -0
  116. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/invocations/noise.py +0 -0
  117. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/invocations/param_easing.py +0 -0
  118. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/invocations/prompt.py +0 -0
  119. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/invocations/resize_latents.py +0 -0
  120. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/invocations/scheduler.py +0 -0
  121. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/invocations/sdxl.py +0 -0
  122. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/invocations/segment_anything.py +0 -0
  123. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/invocations/spandrel_image_to_image.py +0 -0
  124. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/invocations/strings.py +0 -0
  125. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/invocations/t2i_adapter.py +0 -0
  126. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/invocations/tiled_multi_diffusion_denoise_latents.py +0 -0
  127. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/invocations/tiles.py +0 -0
  128. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/invocations/upscale.py +0 -0
  129. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/invocations/util.py +0 -0
  130. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/run_app.py +0 -0
  131. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/__init__.py +0 -0
  132. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/board_image_records/__init__.py +0 -0
  133. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/board_image_records/board_image_records_base.py +0 -0
  134. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/board_image_records/board_image_records_sqlite.py +0 -0
  135. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/board_images/__init__.py +0 -0
  136. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/board_images/board_images_base.py +0 -0
  137. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/board_images/board_images_common.py +0 -0
  138. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/board_images/board_images_default.py +0 -0
  139. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/board_records/board_records_base.py +0 -0
  140. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/board_records/board_records_common.py +0 -0
  141. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/board_records/board_records_sqlite.py +0 -0
  142. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/boards/__init__.py +0 -0
  143. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/boards/boards_base.py +0 -0
  144. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/boards/boards_common.py +0 -0
  145. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/boards/boards_default.py +0 -0
  146. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/bulk_download/__init__.py +0 -0
  147. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/bulk_download/bulk_download_base.py +0 -0
  148. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/bulk_download/bulk_download_common.py +0 -0
  149. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/bulk_download/bulk_download_default.py +0 -0
  150. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/config/__init__.py +0 -0
  151. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/config/config_common.py +0 -0
  152. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/config/config_default.py +0 -0
  153. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/download/__init__.py +0 -0
  154. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/download/download_base.py +0 -0
  155. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/download/download_default.py +0 -0
  156. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/events/__init__.py +0 -0
  157. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/events/events_base.py +0 -0
  158. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/events/events_fastapievents.py +0 -0
  159. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/image_files/__init__.py +0 -0
  160. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/image_files/image_files_base.py +0 -0
  161. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/image_files/image_files_common.py +0 -0
  162. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/image_files/image_files_disk.py +0 -0
  163. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/image_records/__init__.py +0 -0
  164. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/image_records/image_records_base.py +0 -0
  165. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/image_records/image_records_common.py +0 -0
  166. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/image_records/image_records_sqlite.py +0 -0
  167. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/images/__init__.py +0 -0
  168. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/images/images_base.py +0 -0
  169. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/images/images_common.py +0 -0
  170. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/images/images_default.py +0 -0
  171. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/invocation_cache/__init__.py +0 -0
  172. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/invocation_cache/invocation_cache_base.py +0 -0
  173. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/invocation_cache/invocation_cache_common.py +0 -0
  174. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/invocation_cache/invocation_cache_memory.py +0 -0
  175. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/invocation_services.py +0 -0
  176. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/invocation_stats/__init__.py +0 -0
  177. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/invocation_stats/invocation_stats_base.py +0 -0
  178. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/invocation_stats/invocation_stats_common.py +0 -0
  179. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/invocation_stats/invocation_stats_default.py +0 -0
  180. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/invoker.py +0 -0
  181. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/item_storage/__init__.py +0 -0
  182. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/item_storage/item_storage_base.py +0 -0
  183. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/item_storage/item_storage_common.py +0 -0
  184. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/item_storage/item_storage_memory.py +0 -0
  185. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/model_images/model_images_base.py +0 -0
  186. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/model_images/model_images_common.py +0 -0
  187. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/model_images/model_images_default.py +0 -0
  188. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/model_install/__init__.py +0 -0
  189. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/model_install/model_install_base.py +0 -0
  190. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/model_load/__init__.py +0 -0
  191. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/model_load/model_load_base.py +0 -0
  192. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/model_load/model_load_default.py +0 -0
  193. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/model_manager/__init__.py +0 -0
  194. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/model_manager/model_manager_base.py +0 -0
  195. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/model_manager/model_manager_common.py +0 -0
  196. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/model_manager/model_manager_default.py +0 -0
  197. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/model_records/__init__.py +0 -0
  198. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/model_records/model_records_sql.py +0 -0
  199. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/names/__init__.py +0 -0
  200. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/names/names_base.py +0 -0
  201. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/names/names_common.py +0 -0
  202. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/names/names_default.py +0 -0
  203. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/object_serializer/object_serializer_base.py +0 -0
  204. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/object_serializer/object_serializer_common.py +0 -0
  205. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/object_serializer/object_serializer_disk.py +0 -0
  206. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/object_serializer/object_serializer_forward_cache.py +0 -0
  207. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/session_processor/__init__.py +0 -0
  208. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/session_processor/session_processor_base.py +0 -0
  209. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/session_processor/session_processor_common.py +0 -0
  210. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/session_processor/session_processor_default.py +0 -0
  211. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/session_queue/__init__.py +0 -0
  212. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/shared/__init__.py +0 -0
  213. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/shared/graph.py +0 -0
  214. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/shared/pagination.py +0 -0
  215. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/shared/sqlite/__init__.py +0 -0
  216. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/shared/sqlite/sqlite_common.py +0 -0
  217. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/shared/sqlite/sqlite_database.py +0 -0
  218. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/shared/sqlite_migrator/__init__.py +0 -0
  219. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/shared/sqlite_migrator/migrations/__init__.py +0 -0
  220. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/shared/sqlite_migrator/migrations/migration_1.py +0 -0
  221. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/shared/sqlite_migrator/migrations/migration_10.py +0 -0
  222. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/shared/sqlite_migrator/migrations/migration_11.py +0 -0
  223. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/shared/sqlite_migrator/migrations/migration_12.py +0 -0
  224. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/shared/sqlite_migrator/migrations/migration_13.py +0 -0
  225. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/shared/sqlite_migrator/migrations/migration_14.py +0 -0
  226. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/shared/sqlite_migrator/migrations/migration_2.py +0 -0
  227. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/shared/sqlite_migrator/migrations/migration_3.py +0 -0
  228. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/shared/sqlite_migrator/migrations/migration_4.py +0 -0
  229. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/shared/sqlite_migrator/migrations/migration_5.py +0 -0
  230. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/shared/sqlite_migrator/migrations/migration_6.py +0 -0
  231. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/shared/sqlite_migrator/migrations/migration_7.py +0 -0
  232. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/shared/sqlite_migrator/migrations/migration_8.py +0 -0
  233. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/shared/sqlite_migrator/migrations/migration_9.py +0 -0
  234. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/shared/sqlite_migrator/sqlite_migrator_common.py +0 -0
  235. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/shared/sqlite_migrator/sqlite_migrator_impl.py +0 -0
  236. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/style_preset_images/default_style_preset_images/Anime.png +0 -0
  237. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/style_preset_images/default_style_preset_images/Architectural Visualization.png +0 -0
  238. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/style_preset_images/default_style_preset_images/Concept Art (Character).png +0 -0
  239. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/style_preset_images/default_style_preset_images/Concept Art (Fantasy).png +0 -0
  240. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/style_preset_images/default_style_preset_images/Concept Art (Painterly).png +0 -0
  241. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/style_preset_images/default_style_preset_images/Concept Art (Sci-Fi).png +0 -0
  242. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/style_preset_images/default_style_preset_images/Environment Art.png +0 -0
  243. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/style_preset_images/default_style_preset_images/Illustration.png +0 -0
  244. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/style_preset_images/default_style_preset_images/Interior Design (Visualization).png +0 -0
  245. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/style_preset_images/default_style_preset_images/Line Art.png +0 -0
  246. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/style_preset_images/default_style_preset_images/Photography (Black and White).png +0 -0
  247. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/style_preset_images/default_style_preset_images/Photography (General).png +0 -0
  248. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/style_preset_images/default_style_preset_images/Photography (Landscape).png +0 -0
  249. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/style_preset_images/default_style_preset_images/Photography (Portrait).png +0 -0
  250. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/style_preset_images/default_style_preset_images/Photography (Studio Lighting).png +0 -0
  251. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/style_preset_images/default_style_preset_images/Product Rendering.png +0 -0
  252. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/style_preset_images/default_style_preset_images/Sketch.png +0 -0
  253. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/style_preset_images/default_style_preset_images/Vehicles.png +0 -0
  254. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/style_preset_images/default_style_preset_images/__init__.py +0 -0
  255. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/style_preset_images/style_preset_images_base.py +0 -0
  256. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/style_preset_images/style_preset_images_common.py +0 -0
  257. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/style_preset_images/style_preset_images_disk.py +0 -0
  258. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/style_preset_records/__init__.py +0 -0
  259. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/style_preset_records/default_style_presets.json +0 -0
  260. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/style_preset_records/style_preset_records_base.py +0 -0
  261. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/style_preset_records/style_preset_records_common.py +0 -0
  262. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/style_preset_records/style_preset_records_sqlite.py +0 -0
  263. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/urls/__init__.py +0 -0
  264. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/urls/urls_base.py +0 -0
  265. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/urls/urls_default.py +0 -0
  266. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/workflow_records/__init__.py +0 -0
  267. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/workflow_records/default_workflows/ESRGAN Upscaling with Canny ControlNet.json +0 -0
  268. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/workflow_records/default_workflows/Face Detailer with IP-Adapter & Canny (See Note in Details).json +0 -0
  269. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/workflow_records/default_workflows/Multi ControlNet (Canny & Depth).json +0 -0
  270. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/workflow_records/default_workflows/MultiDiffusion SD1.5.json +0 -0
  271. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/workflow_records/default_workflows/MultiDiffusion SDXL.json +0 -0
  272. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/workflow_records/default_workflows/Prompt from File.json +0 -0
  273. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/workflow_records/default_workflows/Text to Image - SD1.5.json +0 -0
  274. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/workflow_records/default_workflows/Text to Image - SDXL.json +0 -0
  275. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/workflow_records/default_workflows/Text to Image with LoRA.json +0 -0
  276. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/workflow_records/default_workflows/Tiled Upscaling (Beta).json +0 -0
  277. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/workflow_records/workflow_records_base.py +0 -0
  278. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/workflow_records/workflow_records_common.py +0 -0
  279. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/services/workflow_records/workflow_records_sqlite.py +0 -0
  280. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/shared/__init__.py +0 -0
  281. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/shared/models.py +0 -0
  282. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/util/__init__.py +0 -0
  283. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/util/controlnet_utils.py +0 -0
  284. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/util/custom_openapi.py +0 -0
  285. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/util/metaenum.py +0 -0
  286. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/util/misc.py +0 -0
  287. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/util/model_exclude_null.py +0 -0
  288. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/util/profiler.py +0 -0
  289. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/util/suppress_output.py +0 -0
  290. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/util/thumbnails.py +0 -0
  291. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/app/util/ti_utils.py +0 -0
  292. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/assets/fonts/inter/Inter-Regular.ttf +0 -0
  293. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/backend/__init__.py +0 -0
  294. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/backend/image_util/__init__.py +0 -0
  295. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/backend/image_util/basicsr/__init__.py +0 -0
  296. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/backend/image_util/basicsr/arch_util.py +0 -0
  297. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/backend/image_util/basicsr/rrdbnet_arch.py +0 -0
  298. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/backend/image_util/canny.py +0 -0
  299. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/backend/image_util/depth_anything/depth_anything_pipeline.py +0 -0
  300. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/backend/image_util/dw_openpose/__init__.py +0 -0
  301. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/backend/image_util/dw_openpose/onnxdet.py +0 -0
  302. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/backend/image_util/dw_openpose/onnxpose.py +0 -0
  303. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/backend/image_util/dw_openpose/utils.py +0 -0
  304. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/backend/image_util/dw_openpose/wholebody.py +0 -0
  305. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/backend/image_util/grounding_dino/__init__.py +0 -0
  306. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/backend/image_util/grounding_dino/detection_result.py +0 -0
  307. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/backend/image_util/grounding_dino/grounding_dino_pipeline.py +0 -0
  308. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/backend/image_util/hed.py +0 -0
  309. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/backend/image_util/infill_methods/cv2_inpaint.py +0 -0
  310. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/backend/image_util/infill_methods/lama.py +0 -0
  311. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/backend/image_util/infill_methods/mosaic.py +0 -0
  312. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/backend/image_util/infill_methods/patchmatch.py +0 -0
  313. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/backend/image_util/infill_methods/tile.py +0 -0
  314. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/backend/image_util/invisible_watermark.py +0 -0
  315. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/backend/image_util/lineart.py +0 -0
  316. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/backend/image_util/lineart_anime.py +0 -0
  317. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/backend/image_util/pngwriter.py +0 -0
  318. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/backend/image_util/realesrgan/__init__.py +0 -0
  319. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/backend/image_util/realesrgan/realesrgan.py +0 -0
  320. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/backend/image_util/safety_checker.py +0 -0
  321. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/backend/image_util/segment_anything/__init__.py +0 -0
  322. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/backend/image_util/segment_anything/mask_refinement.py +0 -0
  323. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/backend/image_util/segment_anything/segment_anything_pipeline.py +0 -0
  324. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/backend/image_util/util.py +0 -0
  325. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/backend/ip_adapter/__init__.py +0 -0
  326. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/backend/ip_adapter/ip_adapter.py +0 -0
  327. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/backend/ip_adapter/ip_attention_weights.py +0 -0
  328. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/backend/ip_adapter/resampler.py +0 -0
  329. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/backend/lora.py +0 -0
  330. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/backend/model_hash/hash_validator.py +0 -0
  331. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/backend/model_hash/model_hash.py +0 -0
  332. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/backend/model_manager/__init__.py +0 -0
  333. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/backend/model_manager/load/__init__.py +0 -0
  334. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/backend/model_manager/load/load_base.py +0 -0
  335. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/backend/model_manager/load/memory_snapshot.py +0 -0
  336. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/backend/model_manager/load/model_cache/__init__.py +0 -0
  337. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/backend/model_manager/load/model_cache/model_locker.py +0 -0
  338. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/backend/model_manager/load/model_loader_registry.py +0 -0
  339. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/backend/model_manager/load/model_loaders/__init__.py +0 -0
  340. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/backend/model_manager/load/model_loaders/controlnet.py +0 -0
  341. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/backend/model_manager/load/model_loaders/ip_adapter.py +0 -0
  342. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/backend/model_manager/load/model_loaders/lora.py +0 -0
  343. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/backend/model_manager/load/model_loaders/onnx.py +0 -0
  344. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/backend/model_manager/load/model_loaders/spandrel_image_to_image.py +0 -0
  345. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/backend/model_manager/load/model_loaders/textual_inversion.py +0 -0
  346. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/backend/model_manager/load/model_loaders/vae.py +0 -0
  347. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/backend/model_manager/load/optimizations.py +0 -0
  348. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/backend/model_manager/merge.py +0 -0
  349. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/backend/model_manager/metadata/__init__.py +0 -0
  350. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/backend/model_manager/metadata/fetch/__init__.py +0 -0
  351. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/backend/model_manager/metadata/fetch/fetch_base.py +0 -0
  352. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/backend/model_manager/metadata/fetch/huggingface.py +0 -0
  353. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/backend/model_manager/metadata/metadata_base.py +0 -0
  354. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/backend/model_manager/search.py +0 -0
  355. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/backend/model_manager/util/libc_util.py +0 -0
  356. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/backend/model_patcher.py +0 -0
  357. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/backend/onnx/onnx_runtime.py +0 -0
  358. {InvokeAI-4.2.9.dev20240824/invokeai/backend/tiles → InvokeAI-4.2.9rc2/invokeai/backend/quantization}/__init__.py +0 -0
  359. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/backend/raw_model.py +0 -0
  360. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/backend/spandrel_image_to_image_model.py +0 -0
  361. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/backend/stable_diffusion/__init__.py +0 -0
  362. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/backend/stable_diffusion/denoise_context.py +0 -0
  363. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/backend/stable_diffusion/diffusers_pipeline.py +0 -0
  364. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/backend/stable_diffusion/diffusion/__init__.py +0 -0
  365. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/backend/stable_diffusion/diffusion/custom_atttention.py +0 -0
  366. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/backend/stable_diffusion/diffusion/regional_ip_data.py +0 -0
  367. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/backend/stable_diffusion/diffusion/regional_prompt_data.py +0 -0
  368. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/backend/stable_diffusion/diffusion/shared_invokeai_diffusion.py +0 -0
  369. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/backend/stable_diffusion/diffusion/unet_attention_patcher.py +0 -0
  370. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/backend/stable_diffusion/diffusion_backend.py +0 -0
  371. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/backend/stable_diffusion/extension_callback_type.py +0 -0
  372. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/backend/stable_diffusion/extensions/base.py +0 -0
  373. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/backend/stable_diffusion/extensions/controlnet.py +0 -0
  374. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/backend/stable_diffusion/extensions/freeu.py +0 -0
  375. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/backend/stable_diffusion/extensions/inpaint.py +0 -0
  376. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/backend/stable_diffusion/extensions/inpaint_model.py +0 -0
  377. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/backend/stable_diffusion/extensions/lora.py +0 -0
  378. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/backend/stable_diffusion/extensions/preview.py +0 -0
  379. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/backend/stable_diffusion/extensions/rescale_cfg.py +0 -0
  380. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/backend/stable_diffusion/extensions/seamless.py +0 -0
  381. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/backend/stable_diffusion/extensions/t2i_adapter.py +0 -0
  382. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/backend/stable_diffusion/extensions_manager.py +0 -0
  383. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/backend/stable_diffusion/multi_diffusion_pipeline.py +0 -0
  384. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/backend/stable_diffusion/schedulers/__init__.py +0 -0
  385. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/backend/stable_diffusion/schedulers/schedulers.py +0 -0
  386. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/backend/stable_diffusion/vae_tiling.py +0 -0
  387. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/backend/textual_inversion.py +0 -0
  388. {InvokeAI-4.2.9.dev20240824/invokeai/frontend/cli → InvokeAI-4.2.9rc2/invokeai/backend/tiles}/__init__.py +0 -0
  389. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/backend/tiles/tiles.py +0 -0
  390. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/backend/tiles/utils.py +0 -0
  391. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/backend/util/attention.py +0 -0
  392. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/backend/util/catch_sigint.py +0 -0
  393. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/backend/util/db_maintenance.py +0 -0
  394. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/backend/util/devices.py +0 -0
  395. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/backend/util/hotfixes.py +0 -0
  396. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/backend/util/logging.py +0 -0
  397. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/backend/util/mask.py +0 -0
  398. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/backend/util/mps_fixes.py +0 -0
  399. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/backend/util/original_weights_storage.py +0 -0
  400. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/backend/util/silence_warnings.py +0 -0
  401. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/backend/util/test_utils.py +0 -0
  402. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/configs/controlnet/cldm_v15.yaml +0 -0
  403. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/configs/controlnet/cldm_v21.yaml +0 -0
  404. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/configs/stable-diffusion/sd_xl_base.yaml +0 -0
  405. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/configs/stable-diffusion/sd_xl_inpaint.yaml +0 -0
  406. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/configs/stable-diffusion/sd_xl_refiner.yaml +0 -0
  407. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/configs/stable-diffusion/v1-finetune.yaml +0 -0
  408. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/configs/stable-diffusion/v1-finetune_style.yaml +0 -0
  409. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/configs/stable-diffusion/v1-inference-v.yaml +0 -0
  410. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/configs/stable-diffusion/v1-inference.yaml +0 -0
  411. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/configs/stable-diffusion/v1-inpainting-inference.yaml +0 -0
  412. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/configs/stable-diffusion/v1-m1-finetune.yaml +0 -0
  413. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/configs/stable-diffusion/v2-inference-v.yaml +0 -0
  414. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/configs/stable-diffusion/v2-inference.yaml +0 -0
  415. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/configs/stable-diffusion/v2-inpainting-inference-v.yaml +0 -0
  416. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/configs/stable-diffusion/v2-inpainting-inference.yaml +0 -0
  417. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/configs/stable-diffusion/v2-midas-inference.yaml +0 -0
  418. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/frontend/__init__.py +0 -0
  419. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/frontend/cli/arg_parser.py +0 -0
  420. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/frontend/install/__init__.py +0 -0
  421. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/frontend/install/import_images.py +0 -0
  422. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/frontend/web/__init__.py +0 -0
  423. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/frontend/web/dist/assets/App-DEu4J2pT.css +0 -0
  424. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/frontend/web/dist/assets/ThemeLocaleProvider-B2NxUfIp.css +0 -0
  425. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/frontend/web/dist/assets/images/invoke-alert-favicon.svg +0 -0
  426. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/frontend/web/dist/assets/images/invoke-avatar-circle.svg +0 -0
  427. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/frontend/web/dist/assets/images/invoke-avatar-square.svg +0 -0
  428. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/frontend/web/dist/assets/images/invoke-favicon.png +0 -0
  429. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/frontend/web/dist/assets/images/invoke-favicon.svg +0 -0
  430. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/frontend/web/dist/assets/images/invoke-key-char-lrg.svg +0 -0
  431. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/frontend/web/dist/assets/images/invoke-key-char-sml.svg +0 -0
  432. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/frontend/web/dist/assets/images/invoke-key-wht-lrg.svg +0 -0
  433. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/frontend/web/dist/assets/images/invoke-key-wht-sml.svg +0 -0
  434. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/frontend/web/dist/assets/images/invoke-symbol-char-lrg.svg +0 -0
  435. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/frontend/web/dist/assets/images/invoke-symbol-char-sml.svg +0 -0
  436. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/frontend/web/dist/assets/images/invoke-symbol-wht-lrg.svg +0 -0
  437. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/frontend/web/dist/assets/images/invoke-symbol-wht-sml.svg +0 -0
  438. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/frontend/web/dist/assets/images/invoke-symbol-ylw-lrg.svg +0 -0
  439. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/frontend/web/dist/assets/images/invoke-tag-char-lrg.svg +0 -0
  440. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/frontend/web/dist/assets/images/invoke-tag-char-sml.svg +0 -0
  441. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/frontend/web/dist/assets/images/invoke-tag-lrg.svg +0 -0
  442. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/frontend/web/dist/assets/images/invoke-tag-sml.svg +0 -0
  443. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/frontend/web/dist/assets/images/invoke-wordmark-charcoal.svg +0 -0
  444. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/frontend/web/dist/assets/images/invoke-wordmark-white.svg +0 -0
  445. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/frontend/web/dist/assets/images/mask.svg +0 -0
  446. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/frontend/web/dist/assets/images/transparent_bg.png +0 -0
  447. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/frontend/web/dist/assets/inter-cyrillic-ext-wght-normal-B2xhLi22.woff2 +0 -0
  448. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/frontend/web/dist/assets/inter-cyrillic-wght-normal-CMZtQduZ.woff2 +0 -0
  449. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/frontend/web/dist/assets/inter-greek-ext-wght-normal-CGAr0uHJ.woff2 +0 -0
  450. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/frontend/web/dist/assets/inter-greek-wght-normal-CaVNZxsx.woff2 +0 -0
  451. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/frontend/web/dist/assets/inter-latin-ext-wght-normal-CFHvXkgd.woff2 +0 -0
  452. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/frontend/web/dist/assets/inter-latin-wght-normal-C2S99t-D.woff2 +0 -0
  453. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/frontend/web/dist/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2 +0 -0
  454. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/frontend/web/dist/locales/ar.json +0 -0
  455. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/frontend/web/dist/locales/az.json +0 -0
  456. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/frontend/web/dist/locales/bg.json +0 -0
  457. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/frontend/web/dist/locales/de.json +0 -0
  458. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/frontend/web/dist/locales/es.json +0 -0
  459. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/frontend/web/dist/locales/fi.json +0 -0
  460. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/frontend/web/dist/locales/fr.json +0 -0
  461. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/frontend/web/dist/locales/he.json +0 -0
  462. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/frontend/web/dist/locales/hu.json +0 -0
  463. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/frontend/web/dist/locales/it.json +0 -0
  464. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/frontend/web/dist/locales/ja.json +0 -0
  465. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/frontend/web/dist/locales/ko.json +0 -0
  466. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/frontend/web/dist/locales/mn.json +0 -0
  467. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/frontend/web/dist/locales/nl.json +0 -0
  468. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/frontend/web/dist/locales/pl.json +0 -0
  469. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/frontend/web/dist/locales/pt.json +0 -0
  470. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/frontend/web/dist/locales/pt_BR.json +0 -0
  471. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/frontend/web/dist/locales/ro.json +0 -0
  472. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/frontend/web/dist/locales/ru.json +0 -0
  473. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/frontend/web/dist/locales/sv.json +0 -0
  474. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/frontend/web/dist/locales/tr.json +0 -0
  475. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/frontend/web/dist/locales/uk.json +0 -0
  476. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/frontend/web/dist/locales/vi.json +0 -0
  477. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/frontend/web/dist/locales/zh_CN.json +0 -0
  478. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/frontend/web/dist/locales/zh_Hant.json +0 -0
  479. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/frontend/web/scripts/clean_translations.py +0 -0
  480. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/frontend/web/static/docs/invoke-favicon-docs.svg +0 -0
  481. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/invokeai/version/__init__.py +0 -0
  482. {InvokeAI-4.2.9.dev20240824 → InvokeAI-4.2.9rc2}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: InvokeAI
3
- Version: 4.2.9.dev20240824
3
+ Version: 4.2.9rc2
4
4
  Summary: An implementation of Stable Diffusion which provides various new features and options to aid the image generation process
5
5
  Author-email: The InvokeAI Project <lincoln.stein@gmail.com>
6
6
  License: Apache License
@@ -40,6 +40,10 @@ invokeai/app/invocations/cv.py
40
40
  invokeai/app/invocations/denoise_latents.py
41
41
  invokeai/app/invocations/facetools.py
42
42
  invokeai/app/invocations/fields.py
43
+ invokeai/app/invocations/flux_denoise.py
44
+ invokeai/app/invocations/flux_text_encoder.py
45
+ invokeai/app/invocations/flux_vae_decode.py
46
+ invokeai/app/invocations/flux_vae_encode.py
43
47
  invokeai/app/invocations/grounding_dino.py
44
48
  invokeai/app/invocations/ideal_size.py
45
49
  invokeai/app/invocations/image.py
@@ -174,7 +178,6 @@ invokeai/app/services/shared/sqlite_migrator/migrations/migration_11.py
174
178
  invokeai/app/services/shared/sqlite_migrator/migrations/migration_12.py
175
179
  invokeai/app/services/shared/sqlite_migrator/migrations/migration_13.py
176
180
  invokeai/app/services/shared/sqlite_migrator/migrations/migration_14.py
177
- invokeai/app/services/shared/sqlite_migrator/migrations/migration_15.py
178
181
  invokeai/app/services/shared/sqlite_migrator/migrations/migration_2.py
179
182
  invokeai/app/services/shared/sqlite_migrator/migrations/migration_3.py
180
183
  invokeai/app/services/shared/sqlite_migrator/migrations/migration_4.py
@@ -218,7 +221,9 @@ invokeai/app/services/workflow_records/workflow_records_base.py
218
221
  invokeai/app/services/workflow_records/workflow_records_common.py
219
222
  invokeai/app/services/workflow_records/workflow_records_sqlite.py
220
223
  invokeai/app/services/workflow_records/default_workflows/ESRGAN Upscaling with Canny ControlNet.json
224
+ invokeai/app/services/workflow_records/default_workflows/FLUX Image to Image.json
221
225
  invokeai/app/services/workflow_records/default_workflows/Face Detailer with IP-Adapter & Canny (See Note in Details).json
226
+ invokeai/app/services/workflow_records/default_workflows/Flux Text to Image.json
222
227
  invokeai/app/services/workflow_records/default_workflows/Multi ControlNet (Canny & Depth).json
223
228
  invokeai/app/services/workflow_records/default_workflows/MultiDiffusion SD1.5.json
224
229
  invokeai/app/services/workflow_records/default_workflows/MultiDiffusion SDXL.json
@@ -247,6 +252,15 @@ invokeai/backend/model_patcher.py
247
252
  invokeai/backend/raw_model.py
248
253
  invokeai/backend/spandrel_image_to_image_model.py
249
254
  invokeai/backend/textual_inversion.py
255
+ invokeai/backend/flux/denoise.py
256
+ invokeai/backend/flux/inpaint_extension.py
257
+ invokeai/backend/flux/math.py
258
+ invokeai/backend/flux/model.py
259
+ invokeai/backend/flux/sampling_utils.py
260
+ invokeai/backend/flux/util.py
261
+ invokeai/backend/flux/modules/autoencoder.py
262
+ invokeai/backend/flux/modules/conditioner.py
263
+ invokeai/backend/flux/modules/layers.py
250
264
  invokeai/backend/image_util/__init__.py
251
265
  invokeai/backend/image_util/canny.py
252
266
  invokeai/backend/image_util/hed.py
@@ -303,6 +317,7 @@ invokeai/backend/model_manager/load/model_cache/model_cache_default.py
303
317
  invokeai/backend/model_manager/load/model_cache/model_locker.py
304
318
  invokeai/backend/model_manager/load/model_loaders/__init__.py
305
319
  invokeai/backend/model_manager/load/model_loaders/controlnet.py
320
+ invokeai/backend/model_manager/load/model_loaders/flux.py
306
321
  invokeai/backend/model_manager/load/model_loaders/generic_diffusers.py
307
322
  invokeai/backend/model_manager/load/model_loaders/ip_adapter.py
308
323
  invokeai/backend/model_manager/load/model_loaders/lora.py
@@ -320,6 +335,12 @@ invokeai/backend/model_manager/util/libc_util.py
320
335
  invokeai/backend/model_manager/util/model_util.py
321
336
  invokeai/backend/model_manager/util/select_hf_files.py
322
337
  invokeai/backend/onnx/onnx_runtime.py
338
+ invokeai/backend/quantization/__init__.py
339
+ invokeai/backend/quantization/bnb_llm_int8.py
340
+ invokeai/backend/quantization/bnb_nf4.py
341
+ invokeai/backend/quantization/scripts/load_flux_model_bnb_llm_int8.py
342
+ invokeai/backend/quantization/scripts/load_flux_model_bnb_nf4.py
343
+ invokeai/backend/quantization/scripts/quantize_t5_xxl_bnb_llm_int8.py
323
344
  invokeai/backend/stable_diffusion/__init__.py
324
345
  invokeai/backend/stable_diffusion/denoise_context.py
325
346
  invokeai/backend/stable_diffusion/diffusers_pipeline.py
@@ -386,11 +407,11 @@ invokeai/frontend/install/__init__.py
386
407
  invokeai/frontend/install/import_images.py
387
408
  invokeai/frontend/web/__init__.py
388
409
  invokeai/frontend/web/dist/index.html
389
- invokeai/frontend/web/dist/assets/App-BoqVb0rn.js
410
+ invokeai/frontend/web/dist/assets/App-D1NtDI7i.js
390
411
  invokeai/frontend/web/dist/assets/App-DEu4J2pT.css
391
412
  invokeai/frontend/web/dist/assets/ThemeLocaleProvider-B2NxUfIp.css
392
- invokeai/frontend/web/dist/assets/ThemeLocaleProvider-CbAimOPZ.js
393
- invokeai/frontend/web/dist/assets/index-BNntoaVx.js
413
+ invokeai/frontend/web/dist/assets/ThemeLocaleProvider-CFdiQhFL.js
414
+ invokeai/frontend/web/dist/assets/index-CsEnX8zB.js
394
415
  invokeai/frontend/web/dist/assets/inter-cyrillic-ext-wght-normal-B2xhLi22.woff2
395
416
  invokeai/frontend/web/dist/assets/inter-cyrillic-wght-normal-CMZtQduZ.woff2
396
417
  invokeai/frontend/web/dist/assets/inter-greek-ext-wght-normal-CGAr0uHJ.woff2
@@ -398,7 +419,6 @@ invokeai/frontend/web/dist/assets/inter-greek-wght-normal-CaVNZxsx.woff2
398
419
  invokeai/frontend/web/dist/assets/inter-latin-ext-wght-normal-CFHvXkgd.woff2
399
420
  invokeai/frontend/web/dist/assets/inter-latin-wght-normal-C2S99t-D.woff2
400
421
  invokeai/frontend/web/dist/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2
401
- invokeai/frontend/web/dist/assets/worker-Dywf1EVc.js
402
422
  invokeai/frontend/web/dist/assets/images/invoke-alert-favicon.svg
403
423
  invokeai/frontend/web/dist/assets/images/invoke-avatar-circle.svg
404
424
  invokeai/frontend/web/dist/assets/images/invoke-avatar-square.svg
@@ -0,0 +1,2 @@
1
+ [console_scripts]
2
+ invokeai-web = invokeai.app.run_app:run_app
@@ -11,6 +11,7 @@ onnxruntime==1.16.3
11
11
  opencv-python==4.9.0.80
12
12
  pytorch-lightning==2.1.3
13
13
  safetensors==0.4.3
14
+ sentencepiece==0.2.0
14
15
  spandrel==0.3.4
15
16
  timm==0.6.13
16
17
  torch==2.2.2
@@ -52,6 +53,9 @@ scikit-image~=0.21.0
52
53
  semver~=3.0.1
53
54
  test-tube~=0.7.5
54
55
 
56
+ [:sys_platform != "darwin"]
57
+ bitsandbytes==0.43.3
58
+
55
59
  [:sys_platform == "win32"]
56
60
  windows-curses
57
61
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: InvokeAI
3
- Version: 4.2.9.dev20240824
3
+ Version: 4.2.9rc2
4
4
  Summary: An implementation of Stable Diffusion which provides various new features and options to aid the image generation process
5
5
  Author-email: The InvokeAI Project <lincoln.stein@gmail.com>
6
6
  License: Apache License
@@ -3,8 +3,10 @@
3
3
 
4
4
  import io
5
5
  import pathlib
6
+ import shutil
6
7
  import traceback
7
8
  from copy import deepcopy
9
+ from enum import Enum
8
10
  from tempfile import TemporaryDirectory
9
11
  from typing import List, Optional, Type
10
12
 
@@ -17,6 +19,7 @@ from starlette.exceptions import HTTPException
17
19
  from typing_extensions import Annotated
18
20
 
19
21
  from invokeai.app.api.dependencies import ApiDependencies
22
+ from invokeai.app.services.config import get_config
20
23
  from invokeai.app.services.model_images.model_images_common import ModelImageFileNotFoundException
21
24
  from invokeai.app.services.model_install.model_install_common import ModelInstallJob
22
25
  from invokeai.app.services.model_records import (
@@ -31,6 +34,7 @@ from invokeai.backend.model_manager.config import (
31
34
  ModelFormat,
32
35
  ModelType,
33
36
  )
37
+ from invokeai.backend.model_manager.load.model_cache.model_cache_base import CacheStats
34
38
  from invokeai.backend.model_manager.metadata.fetch.huggingface import HuggingFaceMetadataFetch
35
39
  from invokeai.backend.model_manager.metadata.metadata_base import ModelMetadataWithFiles, UnknownMetadataException
36
40
  from invokeai.backend.model_manager.search import ModelSearch
@@ -50,6 +54,13 @@ class ModelsList(BaseModel):
50
54
  model_config = ConfigDict(use_enum_values=True)
51
55
 
52
56
 
57
+ class CacheType(str, Enum):
58
+ """Cache type - one of vram or ram."""
59
+
60
+ RAM = "RAM"
61
+ VRAM = "VRAM"
62
+
63
+
53
64
  def add_cover_image_to_model_config(config: AnyModelConfig, dependencies: Type[ApiDependencies]) -> AnyModelConfig:
54
65
  """Add a cover image URL to a model configuration."""
55
66
  cover_image = dependencies.invoker.services.model_images.get_url(config.key)
@@ -797,3 +808,83 @@ async def get_starter_models() -> list[StarterModel]:
797
808
  model.dependencies = missing_deps
798
809
 
799
810
  return starter_models
811
+
812
+
813
+ @model_manager_router.get(
814
+ "/model_cache",
815
+ operation_id="get_cache_size",
816
+ response_model=float,
817
+ summary="Get maximum size of model manager RAM or VRAM cache.",
818
+ )
819
+ async def get_cache_size(cache_type: CacheType = Query(description="The cache type", default=CacheType.RAM)) -> float:
820
+ """Return the current RAM or VRAM cache size setting (in GB)."""
821
+ cache = ApiDependencies.invoker.services.model_manager.load.ram_cache
822
+ value = 0.0
823
+ if cache_type == CacheType.RAM:
824
+ value = cache.max_cache_size
825
+ elif cache_type == CacheType.VRAM:
826
+ value = cache.max_vram_cache_size
827
+ return value
828
+
829
+
830
+ @model_manager_router.put(
831
+ "/model_cache",
832
+ operation_id="set_cache_size",
833
+ response_model=float,
834
+ summary="Set maximum size of model manager RAM or VRAM cache, optionally writing new value out to invokeai.yaml config file.",
835
+ )
836
+ async def set_cache_size(
837
+ value: float = Query(description="The new value for the maximum cache size"),
838
+ cache_type: CacheType = Query(description="The cache type", default=CacheType.RAM),
839
+ persist: bool = Query(description="Write new value out to invokeai.yaml", default=False),
840
+ ) -> float:
841
+ """Set the current RAM or VRAM cache size setting (in GB). ."""
842
+ cache = ApiDependencies.invoker.services.model_manager.load.ram_cache
843
+ app_config = get_config()
844
+ # Record initial state.
845
+ vram_old = app_config.vram
846
+ ram_old = app_config.ram
847
+
848
+ # Prepare target state.
849
+ vram_new = vram_old
850
+ ram_new = ram_old
851
+ if cache_type == CacheType.RAM:
852
+ ram_new = value
853
+ elif cache_type == CacheType.VRAM:
854
+ vram_new = value
855
+ else:
856
+ raise ValueError(f"Unexpected {cache_type=}.")
857
+
858
+ config_path = app_config.config_file_path
859
+ new_config_path = config_path.with_suffix(".yaml.new")
860
+
861
+ try:
862
+ # Try to apply the target state.
863
+ cache.max_vram_cache_size = vram_new
864
+ cache.max_cache_size = ram_new
865
+ app_config.ram = ram_new
866
+ app_config.vram = vram_new
867
+ if persist:
868
+ app_config.write_file(new_config_path)
869
+ shutil.move(new_config_path, config_path)
870
+ except Exception as e:
871
+ # If there was a failure, restore the initial state.
872
+ cache.max_cache_size = ram_old
873
+ cache.max_vram_cache_size = vram_old
874
+ app_config.ram = ram_old
875
+ app_config.vram = vram_old
876
+
877
+ raise RuntimeError("Failed to update cache size") from e
878
+ return value
879
+
880
+
881
+ @model_manager_router.get(
882
+ "/stats",
883
+ operation_id="get_stats",
884
+ response_model=Optional[CacheStats],
885
+ summary="Get model manager RAM cache performance statistics.",
886
+ )
887
+ async def get_stats() -> Optional[CacheStats]:
888
+ """Return performance statistics on the model manager's RAM cache. Will return null if no models have been loaded."""
889
+
890
+ return ApiDependencies.invoker.services.model_manager.load.ram_cache.stats
@@ -11,7 +11,6 @@ from invokeai.app.services.session_queue.session_queue_common import (
11
11
  Batch,
12
12
  BatchStatus,
13
13
  CancelByBatchIDsResult,
14
- CancelByOriginResult,
15
14
  ClearResult,
16
15
  EnqueueBatchResult,
17
16
  PruneResult,
@@ -106,19 +105,6 @@ async def cancel_by_batch_ids(
106
105
  return ApiDependencies.invoker.services.session_queue.cancel_by_batch_ids(queue_id=queue_id, batch_ids=batch_ids)
107
106
 
108
107
 
109
- @session_queue_router.put(
110
- "/{queue_id}/cancel_by_origin",
111
- operation_id="cancel_by_origin",
112
- responses={200: {"model": CancelByBatchIDsResult}},
113
- )
114
- async def cancel_by_origin(
115
- queue_id: str = Path(description="The queue id to perform this operation on"),
116
- origin: str = Query(description="The origin to cancel all queue items for"),
117
- ) -> CancelByOriginResult:
118
- """Immediately cancels all queue items with the given origin"""
119
- return ApiDependencies.invoker.services.session_queue.cancel_by_origin(queue_id=queue_id, origin=origin)
120
-
121
-
122
108
  @session_queue_router.put(
123
109
  "/{queue_id}/clear",
124
110
  operation_id="clear",
@@ -185,7 +185,7 @@ class DenoiseLatentsInvocation(BaseInvocation):
185
185
  )
186
186
  denoise_mask: Optional[DenoiseMaskField] = InputField(
187
187
  default=None,
188
- description=FieldDescriptions.mask,
188
+ description=FieldDescriptions.denoise_mask,
189
189
  input=Input.Connection,
190
190
  ui_order=8,
191
191
  )
@@ -40,14 +40,18 @@ class UIType(str, Enum, metaclass=MetaEnum):
40
40
 
41
41
  # region Model Field Types
42
42
  MainModel = "MainModelField"
43
+ FluxMainModel = "FluxMainModelField"
43
44
  SDXLMainModel = "SDXLMainModelField"
44
45
  SDXLRefinerModel = "SDXLRefinerModelField"
45
46
  ONNXModel = "ONNXModelField"
46
47
  VAEModel = "VAEModelField"
48
+ FluxVAEModel = "FluxVAEModelField"
47
49
  LoRAModel = "LoRAModelField"
48
50
  ControlNetModel = "ControlNetModelField"
49
51
  IPAdapterModel = "IPAdapterModelField"
50
52
  T2IAdapterModel = "T2IAdapterModelField"
53
+ T5EncoderModel = "T5EncoderModelField"
54
+ CLIPEmbedModel = "CLIPEmbedModelField"
51
55
  SpandrelImageToImageModel = "SpandrelImageToImageModelField"
52
56
  # endregion
53
57
 
@@ -125,13 +129,17 @@ class FieldDescriptions:
125
129
  negative_cond = "Negative conditioning tensor"
126
130
  noise = "Noise tensor"
127
131
  clip = "CLIP (tokenizer, text encoder, LoRAs) and skipped layer count"
132
+ t5_encoder = "T5 tokenizer and text encoder"
133
+ clip_embed_model = "CLIP Embed loader"
128
134
  unet = "UNet (scheduler, LoRAs)"
135
+ transformer = "Transformer"
129
136
  vae = "VAE"
130
137
  cond = "Conditioning tensor"
131
138
  controlnet_model = "ControlNet model to load"
132
139
  vae_model = "VAE model to load"
133
140
  lora_model = "LoRA model to load"
134
141
  main_model = "Main model (UNet, VAE, CLIP) to load"
142
+ flux_model = "Flux model (Transformer) to load"
135
143
  sdxl_main_model = "SDXL Main model (UNet, VAE, CLIP1, CLIP2) to load"
136
144
  sdxl_refiner_model = "SDXL Refiner Main Modde (UNet, VAE, CLIP2) to load"
137
145
  onnx_main_model = "ONNX Main model (UNet, VAE, CLIP) to load"
@@ -173,7 +181,7 @@ class FieldDescriptions:
173
181
  )
174
182
  num_1 = "The first number"
175
183
  num_2 = "The second number"
176
- mask = "The mask to use for the operation"
184
+ denoise_mask = "A mask of the region to apply the denoising process to."
177
185
  board = "The board to save the image to"
178
186
  image = "The image to process"
179
187
  tile_size = "Tile size"
@@ -231,6 +239,12 @@ class ColorField(BaseModel):
231
239
  return (self.r, self.g, self.b, self.a)
232
240
 
233
241
 
242
+ class FluxConditioningField(BaseModel):
243
+ """A conditioning tensor primitive value"""
244
+
245
+ conditioning_name: str = Field(description="The name of conditioning tensor")
246
+
247
+
234
248
  class ConditioningField(BaseModel):
235
249
  """A conditioning tensor primitive value"""
236
250
 
@@ -0,0 +1,249 @@
1
+ from typing import Callable, Optional
2
+
3
+ import torch
4
+ import torchvision.transforms as tv_transforms
5
+ from torchvision.transforms.functional import resize as tv_resize
6
+
7
+ from invokeai.app.invocations.baseinvocation import BaseInvocation, Classification, invocation
8
+ from invokeai.app.invocations.fields import (
9
+ DenoiseMaskField,
10
+ FieldDescriptions,
11
+ FluxConditioningField,
12
+ Input,
13
+ InputField,
14
+ LatentsField,
15
+ WithBoard,
16
+ WithMetadata,
17
+ )
18
+ from invokeai.app.invocations.model import TransformerField
19
+ from invokeai.app.invocations.primitives import LatentsOutput
20
+ from invokeai.app.services.shared.invocation_context import InvocationContext
21
+ from invokeai.backend.flux.denoise import denoise
22
+ from invokeai.backend.flux.inpaint_extension import InpaintExtension
23
+ from invokeai.backend.flux.model import Flux
24
+ from invokeai.backend.flux.sampling_utils import (
25
+ clip_timestep_schedule,
26
+ generate_img_ids,
27
+ get_noise,
28
+ get_schedule,
29
+ pack,
30
+ unpack,
31
+ )
32
+ from invokeai.backend.stable_diffusion.diffusers_pipeline import PipelineIntermediateState
33
+ from invokeai.backend.stable_diffusion.diffusion.conditioning_data import FLUXConditioningInfo
34
+ from invokeai.backend.util.devices import TorchDevice
35
+
36
+
37
+ @invocation(
38
+ "flux_denoise",
39
+ title="FLUX Denoise",
40
+ tags=["image", "flux"],
41
+ category="image",
42
+ version="1.0.0",
43
+ classification=Classification.Prototype,
44
+ )
45
+ class FluxDenoiseInvocation(BaseInvocation, WithMetadata, WithBoard):
46
+ """Run denoising process with a FLUX transformer model."""
47
+
48
+ # If latents is provided, this means we are doing image-to-image.
49
+ latents: Optional[LatentsField] = InputField(
50
+ default=None,
51
+ description=FieldDescriptions.latents,
52
+ input=Input.Connection,
53
+ )
54
+ # denoise_mask is used for image-to-image inpainting. Only the masked region is modified.
55
+ denoise_mask: Optional[DenoiseMaskField] = InputField(
56
+ default=None,
57
+ description=FieldDescriptions.denoise_mask,
58
+ input=Input.Connection,
59
+ )
60
+ denoising_start: float = InputField(
61
+ default=0.0,
62
+ ge=0,
63
+ le=1,
64
+ description=FieldDescriptions.denoising_start,
65
+ )
66
+ denoising_end: float = InputField(default=1.0, ge=0, le=1, description=FieldDescriptions.denoising_end)
67
+ transformer: TransformerField = InputField(
68
+ description=FieldDescriptions.flux_model,
69
+ input=Input.Connection,
70
+ title="Transformer",
71
+ )
72
+ positive_text_conditioning: FluxConditioningField = InputField(
73
+ description=FieldDescriptions.positive_cond, input=Input.Connection
74
+ )
75
+ width: int = InputField(default=1024, multiple_of=16, description="Width of the generated image.")
76
+ height: int = InputField(default=1024, multiple_of=16, description="Height of the generated image.")
77
+ num_steps: int = InputField(
78
+ default=4, description="Number of diffusion steps. Recommended values are schnell: 4, dev: 50."
79
+ )
80
+ guidance: float = InputField(
81
+ default=4.0,
82
+ description="The guidance strength. Higher values adhere more strictly to the prompt, and will produce less diverse images. FLUX dev only, ignored for schnell.",
83
+ )
84
+ seed: int = InputField(default=0, description="Randomness seed for reproducibility.")
85
+
86
+ @torch.no_grad()
87
+ def invoke(self, context: InvocationContext) -> LatentsOutput:
88
+ latents = self._run_diffusion(context)
89
+ latents = latents.detach().to("cpu")
90
+
91
+ name = context.tensors.save(tensor=latents)
92
+ return LatentsOutput.build(latents_name=name, latents=latents, seed=None)
93
+
94
+ def _run_diffusion(
95
+ self,
96
+ context: InvocationContext,
97
+ ):
98
+ inference_dtype = torch.bfloat16
99
+
100
+ # Load the conditioning data.
101
+ cond_data = context.conditioning.load(self.positive_text_conditioning.conditioning_name)
102
+ assert len(cond_data.conditionings) == 1
103
+ flux_conditioning = cond_data.conditionings[0]
104
+ assert isinstance(flux_conditioning, FLUXConditioningInfo)
105
+ flux_conditioning = flux_conditioning.to(dtype=inference_dtype)
106
+ t5_embeddings = flux_conditioning.t5_embeds
107
+ clip_embeddings = flux_conditioning.clip_embeds
108
+
109
+ # Load the input latents, if provided.
110
+ init_latents = context.tensors.load(self.latents.latents_name) if self.latents else None
111
+ if init_latents is not None:
112
+ init_latents = init_latents.to(device=TorchDevice.choose_torch_device(), dtype=inference_dtype)
113
+
114
+ # Prepare input noise.
115
+ noise = get_noise(
116
+ num_samples=1,
117
+ height=self.height,
118
+ width=self.width,
119
+ device=TorchDevice.choose_torch_device(),
120
+ dtype=inference_dtype,
121
+ seed=self.seed,
122
+ )
123
+
124
+ transformer_info = context.models.load(self.transformer.transformer)
125
+ is_schnell = "schnell" in transformer_info.config.config_path
126
+
127
+ # Calculate the timestep schedule.
128
+ image_seq_len = noise.shape[-1] * noise.shape[-2] // 4
129
+ timesteps = get_schedule(
130
+ num_steps=self.num_steps,
131
+ image_seq_len=image_seq_len,
132
+ shift=not is_schnell,
133
+ )
134
+
135
+ # Clip the timesteps schedule based on denoising_start and denoising_end.
136
+ timesteps = clip_timestep_schedule(timesteps, self.denoising_start, self.denoising_end)
137
+
138
+ # Prepare input latent image.
139
+ if init_latents is not None:
140
+ # If init_latents is provided, we are doing image-to-image.
141
+
142
+ if is_schnell:
143
+ context.logger.warning(
144
+ "Running image-to-image with a FLUX schnell model. This is not recommended. The results are likely "
145
+ "to be poor. Consider using a FLUX dev model instead."
146
+ )
147
+
148
+ # Noise the orig_latents by the appropriate amount for the first timestep.
149
+ t_0 = timesteps[0]
150
+ x = t_0 * noise + (1.0 - t_0) * init_latents
151
+ else:
152
+ # init_latents are not provided, so we are not doing image-to-image (i.e. we are starting from pure noise).
153
+ if self.denoising_start > 1e-5:
154
+ raise ValueError("denoising_start should be 0 when initial latents are not provided.")
155
+
156
+ x = noise
157
+
158
+ # If len(timesteps) == 1, then short-circuit. We are just noising the input latents, but not taking any
159
+ # denoising steps.
160
+ if len(timesteps) <= 1:
161
+ return x
162
+
163
+ inpaint_mask = self._prep_inpaint_mask(context, x)
164
+
165
+ b, _c, h, w = x.shape
166
+ img_ids = generate_img_ids(h=h, w=w, batch_size=b, device=x.device, dtype=x.dtype)
167
+
168
+ bs, t5_seq_len, _ = t5_embeddings.shape
169
+ txt_ids = torch.zeros(bs, t5_seq_len, 3, dtype=inference_dtype, device=TorchDevice.choose_torch_device())
170
+
171
+ # Pack all latent tensors.
172
+ init_latents = pack(init_latents) if init_latents is not None else None
173
+ inpaint_mask = pack(inpaint_mask) if inpaint_mask is not None else None
174
+ noise = pack(noise)
175
+ x = pack(x)
176
+
177
+ # Now that we have 'packed' the latent tensors, verify that we calculated the image_seq_len correctly.
178
+ assert image_seq_len == x.shape[1]
179
+
180
+ # Prepare inpaint extension.
181
+ inpaint_extension: InpaintExtension | None = None
182
+ if inpaint_mask is not None:
183
+ assert init_latents is not None
184
+ inpaint_extension = InpaintExtension(
185
+ init_latents=init_latents,
186
+ inpaint_mask=inpaint_mask,
187
+ noise=noise,
188
+ )
189
+
190
+ with transformer_info as transformer:
191
+ assert isinstance(transformer, Flux)
192
+
193
+ x = denoise(
194
+ model=transformer,
195
+ img=x,
196
+ img_ids=img_ids,
197
+ txt=t5_embeddings,
198
+ txt_ids=txt_ids,
199
+ vec=clip_embeddings,
200
+ timesteps=timesteps,
201
+ step_callback=self._build_step_callback(context),
202
+ guidance=self.guidance,
203
+ inpaint_extension=inpaint_extension,
204
+ )
205
+
206
+ x = unpack(x.float(), self.height, self.width)
207
+ return x
208
+
209
+ def _prep_inpaint_mask(self, context: InvocationContext, latents: torch.Tensor) -> torch.Tensor | None:
210
+ """Prepare the inpaint mask.
211
+
212
+ - Loads the mask
213
+ - Resizes if necessary
214
+ - Casts to same device/dtype as latents
215
+ - Expands mask to the same shape as latents so that they line up after 'packing'
216
+
217
+ Args:
218
+ context (InvocationContext): The invocation context, for loading the inpaint mask.
219
+ latents (torch.Tensor): A latent image tensor. In 'unpacked' format. Used to determine the target shape,
220
+ device, and dtype for the inpaint mask.
221
+
222
+ Returns:
223
+ torch.Tensor | None: Inpaint mask.
224
+ """
225
+ if self.denoise_mask is None:
226
+ return None
227
+
228
+ mask = context.tensors.load(self.denoise_mask.mask_name)
229
+
230
+ _, _, latent_height, latent_width = latents.shape
231
+ mask = tv_resize(
232
+ img=mask,
233
+ size=[latent_height, latent_width],
234
+ interpolation=tv_transforms.InterpolationMode.BILINEAR,
235
+ antialias=False,
236
+ )
237
+
238
+ mask = mask.to(device=latents.device, dtype=latents.dtype)
239
+
240
+ # Expand the inpaint mask to the same shape as `latents` so that when we 'pack' `mask` it lines up with
241
+ # `latents`.
242
+ return mask.expand_as(latents)
243
+
244
+ def _build_step_callback(self, context: InvocationContext) -> Callable[[PipelineIntermediateState], None]:
245
+ def step_callback(state: PipelineIntermediateState) -> None:
246
+ state.latents = unpack(state.latents.float(), self.height, self.width).squeeze()
247
+ context.util.flux_step_callback(state)
248
+
249
+ return step_callback