InvokeAI 4.2.9.dev7__tar.gz → 4.2.9.dev9__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 (477) hide show
  1. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/InvokeAI.egg-info/PKG-INFO +1 -1
  2. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/InvokeAI.egg-info/SOURCES.txt +3 -3
  3. InvokeAI-4.2.9.dev9/InvokeAI.egg-info/entry_points.txt +2 -0
  4. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/PKG-INFO +1 -1
  5. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/invocations/fields.py +3 -0
  6. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/invocations/flux_text_encoder.py +15 -9
  7. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/invocations/flux_text_to_image.py +15 -18
  8. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/invocations/model.py +26 -60
  9. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/events/events_common.py +7 -1
  10. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/session_queue/session_queue_common.py +19 -2
  11. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/session_queue/session_queue_sqlite.py +7 -4
  12. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/shared/sqlite_migrator/migrations/migration_15.py +3 -0
  13. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/workflow_records/default_workflows/Flux Text to Image.json +37 -43
  14. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/backend/flux/sampling.py +4 -13
  15. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/backend/model_manager/load/load_default.py +1 -0
  16. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/backend/model_manager/load/model_cache/model_cache_base.py +0 -9
  17. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/backend/model_manager/load/model_cache/model_cache_default.py +61 -62
  18. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/backend/quantization/bnb_llm_int8.py +12 -2
  19. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/backend/stable_diffusion/diffusion/conditioning_data.py +5 -0
  20. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/backend/util/__init__.py +1 -2
  21. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/backend/util/util.py +0 -3
  22. InvokeAI-4.2.9.dev9/invokeai/frontend/web/dist/assets/App-DQ9eSnfG.js +66 -0
  23. InvokeAI-4.2.9.dev7/invokeai/frontend/web/dist/assets/ThemeLocaleProvider-C3tgmXVD.js → InvokeAI-4.2.9.dev9/invokeai/frontend/web/dist/assets/ThemeLocaleProvider-D2UT1a6F.js +1 -1
  24. InvokeAI-4.2.9.dev9/invokeai/frontend/web/dist/assets/index-CiDHB6Bv.js +563 -0
  25. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/frontend/web/dist/index.html +1 -1
  26. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/frontend/web/dist/locales/en.json +47 -19
  27. InvokeAI-4.2.9.dev9/invokeai/version/invokeai_version.py +1 -0
  28. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/pyproject.toml +0 -2
  29. InvokeAI-4.2.9.dev7/InvokeAI.egg-info/entry_points.txt +0 -4
  30. InvokeAI-4.2.9.dev7/invokeai/frontend/web/dist/assets/App-Ml2MahEe.js +0 -66
  31. InvokeAI-4.2.9.dev7/invokeai/frontend/web/dist/assets/index-LCw842i7.js +0 -563
  32. InvokeAI-4.2.9.dev7/invokeai/version/invokeai_version.py +0 -1
  33. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/InvokeAI.egg-info/dependency_links.txt +0 -0
  34. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/InvokeAI.egg-info/requires.txt +0 -0
  35. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/InvokeAI.egg-info/top_level.txt +0 -0
  36. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/LICENSE +0 -0
  37. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/LICENSE-SD1+SD2.txt +0 -0
  38. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/LICENSE-SDXL.txt +0 -0
  39. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/README.md +0 -0
  40. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/__init__.py +0 -0
  41. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/api/dependencies.py +0 -0
  42. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/api/no_cache_staticfiles.py +0 -0
  43. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/api/routers/app_info.py +0 -0
  44. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/api/routers/board_images.py +0 -0
  45. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/api/routers/boards.py +0 -0
  46. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/api/routers/download_queue.py +0 -0
  47. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/api/routers/images.py +0 -0
  48. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/api/routers/model_manager.py +0 -0
  49. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/api/routers/session_queue.py +0 -0
  50. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/api/routers/style_presets.py +0 -0
  51. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/api/routers/utilities.py +0 -0
  52. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/api/routers/workflows.py +0 -0
  53. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/api/sockets.py +0 -0
  54. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/api_app.py +0 -0
  55. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/assets/images/caution.png +0 -0
  56. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/invocations/__init__.py +0 -0
  57. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/invocations/baseinvocation.py +0 -0
  58. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/invocations/blend_latents.py +0 -0
  59. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/invocations/collections.py +0 -0
  60. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/invocations/compel.py +0 -0
  61. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/invocations/constants.py +0 -0
  62. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/invocations/controlnet_image_processors.py +0 -0
  63. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/invocations/create_denoise_mask.py +0 -0
  64. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/invocations/create_gradient_mask.py +0 -0
  65. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/invocations/crop_latents.py +0 -0
  66. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/invocations/custom_nodes/README.md +0 -0
  67. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/invocations/custom_nodes/init.py +0 -0
  68. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/invocations/cv.py +0 -0
  69. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/invocations/denoise_latents.py +0 -0
  70. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/invocations/facetools.py +0 -0
  71. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/invocations/grounding_dino.py +0 -0
  72. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/invocations/ideal_size.py +0 -0
  73. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/invocations/image.py +0 -0
  74. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/invocations/image_to_latents.py +0 -0
  75. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/invocations/infill.py +0 -0
  76. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/invocations/ip_adapter.py +0 -0
  77. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/invocations/latents_to_image.py +0 -0
  78. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/invocations/mask.py +0 -0
  79. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/invocations/math.py +0 -0
  80. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/invocations/metadata.py +0 -0
  81. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/invocations/noise.py +0 -0
  82. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/invocations/param_easing.py +0 -0
  83. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/invocations/primitives.py +0 -0
  84. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/invocations/prompt.py +0 -0
  85. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/invocations/resize_latents.py +0 -0
  86. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/invocations/scheduler.py +0 -0
  87. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/invocations/sdxl.py +0 -0
  88. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/invocations/segment_anything.py +0 -0
  89. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/invocations/spandrel_image_to_image.py +0 -0
  90. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/invocations/strings.py +0 -0
  91. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/invocations/t2i_adapter.py +0 -0
  92. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/invocations/tiled_multi_diffusion_denoise_latents.py +0 -0
  93. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/invocations/tiles.py +0 -0
  94. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/invocations/upscale.py +0 -0
  95. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/invocations/util.py +0 -0
  96. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/run_app.py +0 -0
  97. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/__init__.py +0 -0
  98. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/board_image_records/__init__.py +0 -0
  99. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/board_image_records/board_image_records_base.py +0 -0
  100. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/board_image_records/board_image_records_sqlite.py +0 -0
  101. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/board_images/__init__.py +0 -0
  102. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/board_images/board_images_base.py +0 -0
  103. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/board_images/board_images_common.py +0 -0
  104. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/board_images/board_images_default.py +0 -0
  105. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/board_records/board_records_base.py +0 -0
  106. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/board_records/board_records_common.py +0 -0
  107. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/board_records/board_records_sqlite.py +0 -0
  108. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/boards/__init__.py +0 -0
  109. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/boards/boards_base.py +0 -0
  110. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/boards/boards_common.py +0 -0
  111. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/boards/boards_default.py +0 -0
  112. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/bulk_download/__init__.py +0 -0
  113. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/bulk_download/bulk_download_base.py +0 -0
  114. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/bulk_download/bulk_download_common.py +0 -0
  115. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/bulk_download/bulk_download_default.py +0 -0
  116. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/config/__init__.py +0 -0
  117. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/config/config_common.py +0 -0
  118. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/config/config_default.py +0 -0
  119. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/download/__init__.py +0 -0
  120. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/download/download_base.py +0 -0
  121. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/download/download_default.py +0 -0
  122. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/events/__init__.py +0 -0
  123. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/events/events_base.py +0 -0
  124. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/events/events_fastapievents.py +0 -0
  125. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/image_files/__init__.py +0 -0
  126. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/image_files/image_files_base.py +0 -0
  127. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/image_files/image_files_common.py +0 -0
  128. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/image_files/image_files_disk.py +0 -0
  129. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/image_records/__init__.py +0 -0
  130. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/image_records/image_records_base.py +0 -0
  131. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/image_records/image_records_common.py +0 -0
  132. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/image_records/image_records_sqlite.py +0 -0
  133. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/images/__init__.py +0 -0
  134. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/images/images_base.py +0 -0
  135. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/images/images_common.py +0 -0
  136. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/images/images_default.py +0 -0
  137. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/invocation_cache/__init__.py +0 -0
  138. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/invocation_cache/invocation_cache_base.py +0 -0
  139. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/invocation_cache/invocation_cache_common.py +0 -0
  140. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/invocation_cache/invocation_cache_memory.py +0 -0
  141. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/invocation_services.py +0 -0
  142. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/invocation_stats/__init__.py +0 -0
  143. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/invocation_stats/invocation_stats_base.py +0 -0
  144. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/invocation_stats/invocation_stats_common.py +0 -0
  145. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/invocation_stats/invocation_stats_default.py +0 -0
  146. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/invoker.py +0 -0
  147. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/item_storage/__init__.py +0 -0
  148. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/item_storage/item_storage_base.py +0 -0
  149. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/item_storage/item_storage_common.py +0 -0
  150. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/item_storage/item_storage_memory.py +0 -0
  151. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/model_images/model_images_base.py +0 -0
  152. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/model_images/model_images_common.py +0 -0
  153. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/model_images/model_images_default.py +0 -0
  154. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/model_install/__init__.py +0 -0
  155. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/model_install/model_install_base.py +0 -0
  156. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/model_install/model_install_common.py +0 -0
  157. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/model_install/model_install_default.py +0 -0
  158. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/model_load/__init__.py +0 -0
  159. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/model_load/model_load_base.py +0 -0
  160. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/model_load/model_load_default.py +0 -0
  161. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/model_manager/__init__.py +0 -0
  162. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/model_manager/model_manager_base.py +0 -0
  163. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/model_manager/model_manager_common.py +0 -0
  164. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/model_manager/model_manager_default.py +0 -0
  165. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/model_records/__init__.py +0 -0
  166. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/model_records/model_records_base.py +0 -0
  167. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/model_records/model_records_sql.py +0 -0
  168. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/names/__init__.py +0 -0
  169. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/names/names_base.py +0 -0
  170. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/names/names_common.py +0 -0
  171. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/names/names_default.py +0 -0
  172. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/object_serializer/object_serializer_base.py +0 -0
  173. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/object_serializer/object_serializer_common.py +0 -0
  174. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/object_serializer/object_serializer_disk.py +0 -0
  175. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/object_serializer/object_serializer_forward_cache.py +0 -0
  176. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/session_processor/__init__.py +0 -0
  177. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/session_processor/session_processor_base.py +0 -0
  178. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/session_processor/session_processor_common.py +0 -0
  179. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/session_processor/session_processor_default.py +0 -0
  180. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/session_queue/__init__.py +0 -0
  181. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/session_queue/session_queue_base.py +0 -0
  182. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/shared/__init__.py +0 -0
  183. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/shared/graph.py +0 -0
  184. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/shared/invocation_context.py +0 -0
  185. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/shared/pagination.py +0 -0
  186. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/shared/sqlite/__init__.py +0 -0
  187. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/shared/sqlite/sqlite_common.py +0 -0
  188. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/shared/sqlite/sqlite_database.py +0 -0
  189. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/shared/sqlite/sqlite_util.py +0 -0
  190. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/shared/sqlite_migrator/__init__.py +0 -0
  191. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/shared/sqlite_migrator/migrations/__init__.py +0 -0
  192. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/shared/sqlite_migrator/migrations/migration_1.py +0 -0
  193. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/shared/sqlite_migrator/migrations/migration_10.py +0 -0
  194. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/shared/sqlite_migrator/migrations/migration_11.py +0 -0
  195. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/shared/sqlite_migrator/migrations/migration_12.py +0 -0
  196. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/shared/sqlite_migrator/migrations/migration_13.py +0 -0
  197. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/shared/sqlite_migrator/migrations/migration_14.py +0 -0
  198. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/shared/sqlite_migrator/migrations/migration_2.py +0 -0
  199. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/shared/sqlite_migrator/migrations/migration_3.py +0 -0
  200. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/shared/sqlite_migrator/migrations/migration_4.py +0 -0
  201. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/shared/sqlite_migrator/migrations/migration_5.py +0 -0
  202. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/shared/sqlite_migrator/migrations/migration_6.py +0 -0
  203. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/shared/sqlite_migrator/migrations/migration_7.py +0 -0
  204. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/shared/sqlite_migrator/migrations/migration_8.py +0 -0
  205. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/shared/sqlite_migrator/migrations/migration_9.py +0 -0
  206. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/shared/sqlite_migrator/sqlite_migrator_common.py +0 -0
  207. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/shared/sqlite_migrator/sqlite_migrator_impl.py +0 -0
  208. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/style_preset_images/default_style_preset_images/Anime.png +0 -0
  209. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/style_preset_images/default_style_preset_images/Architectural Visualization.png +0 -0
  210. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/style_preset_images/default_style_preset_images/Concept Art (Character).png +0 -0
  211. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/style_preset_images/default_style_preset_images/Concept Art (Fantasy).png +0 -0
  212. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/style_preset_images/default_style_preset_images/Concept Art (Painterly).png +0 -0
  213. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/style_preset_images/default_style_preset_images/Concept Art (Sci-Fi).png +0 -0
  214. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/style_preset_images/default_style_preset_images/Environment Art.png +0 -0
  215. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/style_preset_images/default_style_preset_images/Illustration.png +0 -0
  216. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/style_preset_images/default_style_preset_images/Interior Design (Visualization).png +0 -0
  217. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/style_preset_images/default_style_preset_images/Line Art.png +0 -0
  218. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/style_preset_images/default_style_preset_images/Photography (Black and White).png +0 -0
  219. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/style_preset_images/default_style_preset_images/Photography (General).png +0 -0
  220. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/style_preset_images/default_style_preset_images/Photography (Landscape).png +0 -0
  221. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/style_preset_images/default_style_preset_images/Photography (Portrait).png +0 -0
  222. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/style_preset_images/default_style_preset_images/Photography (Studio Lighting).png +0 -0
  223. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/style_preset_images/default_style_preset_images/Product Rendering.png +0 -0
  224. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/style_preset_images/default_style_preset_images/Sketch.png +0 -0
  225. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/style_preset_images/default_style_preset_images/Vehicles.png +0 -0
  226. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/style_preset_images/default_style_preset_images/__init__.py +0 -0
  227. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/style_preset_images/style_preset_images_base.py +0 -0
  228. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/style_preset_images/style_preset_images_common.py +0 -0
  229. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/style_preset_images/style_preset_images_disk.py +0 -0
  230. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/style_preset_records/__init__.py +0 -0
  231. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/style_preset_records/default_style_presets.json +0 -0
  232. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/style_preset_records/style_preset_records_base.py +0 -0
  233. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/style_preset_records/style_preset_records_common.py +0 -0
  234. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/style_preset_records/style_preset_records_sqlite.py +0 -0
  235. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/urls/__init__.py +0 -0
  236. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/urls/urls_base.py +0 -0
  237. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/urls/urls_default.py +0 -0
  238. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/workflow_records/__init__.py +0 -0
  239. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/workflow_records/default_workflows/ESRGAN Upscaling with Canny ControlNet.json +0 -0
  240. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/workflow_records/default_workflows/Face Detailer with IP-Adapter & Canny (See Note in Details).json +0 -0
  241. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/workflow_records/default_workflows/Multi ControlNet (Canny & Depth).json +0 -0
  242. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/workflow_records/default_workflows/MultiDiffusion SD1.5.json +0 -0
  243. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/workflow_records/default_workflows/MultiDiffusion SDXL.json +0 -0
  244. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/workflow_records/default_workflows/Prompt from File.json +0 -0
  245. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/workflow_records/default_workflows/Text to Image - SD1.5.json +0 -0
  246. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/workflow_records/default_workflows/Text to Image - SDXL.json +0 -0
  247. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/workflow_records/default_workflows/Text to Image with LoRA.json +0 -0
  248. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/workflow_records/default_workflows/Tiled Upscaling (Beta).json +0 -0
  249. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/workflow_records/workflow_records_base.py +0 -0
  250. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/workflow_records/workflow_records_common.py +0 -0
  251. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/services/workflow_records/workflow_records_sqlite.py +0 -0
  252. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/shared/__init__.py +0 -0
  253. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/shared/models.py +0 -0
  254. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/util/__init__.py +0 -0
  255. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/util/controlnet_utils.py +0 -0
  256. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/util/custom_openapi.py +0 -0
  257. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/util/metaenum.py +0 -0
  258. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/util/misc.py +0 -0
  259. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/util/model_exclude_null.py +0 -0
  260. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/util/profiler.py +0 -0
  261. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/util/step_callback.py +0 -0
  262. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/util/suppress_output.py +0 -0
  263. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/util/thumbnails.py +0 -0
  264. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/app/util/ti_utils.py +0 -0
  265. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/assets/fonts/inter/Inter-Regular.ttf +0 -0
  266. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/backend/__init__.py +0 -0
  267. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/backend/flux/math.py +0 -0
  268. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/backend/flux/model.py +0 -0
  269. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/backend/flux/modules/autoencoder.py +0 -0
  270. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/backend/flux/modules/conditioner.py +0 -0
  271. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/backend/flux/modules/layers.py +0 -0
  272. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/backend/flux/util.py +0 -0
  273. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/backend/image_util/__init__.py +0 -0
  274. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/backend/image_util/basicsr/__init__.py +0 -0
  275. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/backend/image_util/basicsr/arch_util.py +0 -0
  276. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/backend/image_util/basicsr/rrdbnet_arch.py +0 -0
  277. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/backend/image_util/canny.py +0 -0
  278. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/backend/image_util/depth_anything/depth_anything_pipeline.py +0 -0
  279. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/backend/image_util/dw_openpose/__init__.py +0 -0
  280. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/backend/image_util/dw_openpose/onnxdet.py +0 -0
  281. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/backend/image_util/dw_openpose/onnxpose.py +0 -0
  282. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/backend/image_util/dw_openpose/utils.py +0 -0
  283. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/backend/image_util/dw_openpose/wholebody.py +0 -0
  284. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/backend/image_util/grounding_dino/__init__.py +0 -0
  285. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/backend/image_util/grounding_dino/detection_result.py +0 -0
  286. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/backend/image_util/grounding_dino/grounding_dino_pipeline.py +0 -0
  287. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/backend/image_util/hed.py +0 -0
  288. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/backend/image_util/infill_methods/cv2_inpaint.py +0 -0
  289. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/backend/image_util/infill_methods/lama.py +0 -0
  290. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/backend/image_util/infill_methods/mosaic.py +0 -0
  291. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/backend/image_util/infill_methods/patchmatch.py +0 -0
  292. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/backend/image_util/infill_methods/tile.py +0 -0
  293. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/backend/image_util/invisible_watermark.py +0 -0
  294. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/backend/image_util/lineart.py +0 -0
  295. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/backend/image_util/lineart_anime.py +0 -0
  296. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/backend/image_util/pngwriter.py +0 -0
  297. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/backend/image_util/realesrgan/__init__.py +0 -0
  298. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/backend/image_util/realesrgan/realesrgan.py +0 -0
  299. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/backend/image_util/safety_checker.py +0 -0
  300. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/backend/image_util/segment_anything/__init__.py +0 -0
  301. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/backend/image_util/segment_anything/mask_refinement.py +0 -0
  302. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/backend/image_util/segment_anything/segment_anything_pipeline.py +0 -0
  303. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/backend/image_util/util.py +0 -0
  304. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/backend/ip_adapter/__init__.py +0 -0
  305. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/backend/ip_adapter/ip_adapter.py +0 -0
  306. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/backend/ip_adapter/ip_attention_weights.py +0 -0
  307. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/backend/ip_adapter/resampler.py +0 -0
  308. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/backend/lora.py +0 -0
  309. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/backend/model_hash/hash_validator.py +0 -0
  310. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/backend/model_hash/model_hash.py +0 -0
  311. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/backend/model_manager/__init__.py +0 -0
  312. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/backend/model_manager/config.py +0 -0
  313. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/backend/model_manager/load/__init__.py +0 -0
  314. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/backend/model_manager/load/load_base.py +0 -0
  315. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/backend/model_manager/load/memory_snapshot.py +0 -0
  316. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/backend/model_manager/load/model_cache/__init__.py +0 -0
  317. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/backend/model_manager/load/model_cache/model_locker.py +0 -0
  318. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/backend/model_manager/load/model_loader_registry.py +0 -0
  319. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/backend/model_manager/load/model_loaders/__init__.py +0 -0
  320. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/backend/model_manager/load/model_loaders/controlnet.py +0 -0
  321. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/backend/model_manager/load/model_loaders/flux.py +0 -0
  322. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/backend/model_manager/load/model_loaders/generic_diffusers.py +0 -0
  323. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/backend/model_manager/load/model_loaders/ip_adapter.py +0 -0
  324. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/backend/model_manager/load/model_loaders/lora.py +0 -0
  325. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/backend/model_manager/load/model_loaders/onnx.py +0 -0
  326. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/backend/model_manager/load/model_loaders/spandrel_image_to_image.py +0 -0
  327. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/backend/model_manager/load/model_loaders/stable_diffusion.py +0 -0
  328. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/backend/model_manager/load/model_loaders/textual_inversion.py +0 -0
  329. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/backend/model_manager/load/model_loaders/vae.py +0 -0
  330. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/backend/model_manager/load/model_util.py +0 -0
  331. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/backend/model_manager/load/optimizations.py +0 -0
  332. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/backend/model_manager/merge.py +0 -0
  333. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/backend/model_manager/metadata/__init__.py +0 -0
  334. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/backend/model_manager/metadata/fetch/__init__.py +0 -0
  335. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/backend/model_manager/metadata/fetch/fetch_base.py +0 -0
  336. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/backend/model_manager/metadata/fetch/huggingface.py +0 -0
  337. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/backend/model_manager/metadata/metadata_base.py +0 -0
  338. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/backend/model_manager/probe.py +0 -0
  339. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/backend/model_manager/search.py +0 -0
  340. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/backend/model_manager/starter_models.py +0 -0
  341. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/backend/model_manager/util/libc_util.py +0 -0
  342. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/backend/model_manager/util/model_util.py +0 -0
  343. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/backend/model_manager/util/select_hf_files.py +0 -0
  344. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/backend/model_patcher.py +0 -0
  345. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/backend/onnx/onnx_runtime.py +0 -0
  346. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/backend/quantization/__init__.py +0 -0
  347. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/backend/quantization/bnb_nf4.py +0 -0
  348. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/backend/quantization/scripts/load_flux_model_bnb_llm_int8.py +0 -0
  349. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/backend/quantization/scripts/load_flux_model_bnb_nf4.py +0 -0
  350. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/backend/quantization/scripts/quantize_t5_xxl_bnb_llm_int8.py +0 -0
  351. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/backend/raw_model.py +0 -0
  352. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/backend/spandrel_image_to_image_model.py +0 -0
  353. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/backend/stable_diffusion/__init__.py +0 -0
  354. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/backend/stable_diffusion/denoise_context.py +0 -0
  355. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/backend/stable_diffusion/diffusers_pipeline.py +0 -0
  356. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/backend/stable_diffusion/diffusion/__init__.py +0 -0
  357. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/backend/stable_diffusion/diffusion/custom_atttention.py +0 -0
  358. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/backend/stable_diffusion/diffusion/regional_ip_data.py +0 -0
  359. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/backend/stable_diffusion/diffusion/regional_prompt_data.py +0 -0
  360. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/backend/stable_diffusion/diffusion/shared_invokeai_diffusion.py +0 -0
  361. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/backend/stable_diffusion/diffusion/unet_attention_patcher.py +0 -0
  362. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/backend/stable_diffusion/diffusion_backend.py +0 -0
  363. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/backend/stable_diffusion/extension_callback_type.py +0 -0
  364. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/backend/stable_diffusion/extensions/base.py +0 -0
  365. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/backend/stable_diffusion/extensions/controlnet.py +0 -0
  366. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/backend/stable_diffusion/extensions/freeu.py +0 -0
  367. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/backend/stable_diffusion/extensions/inpaint.py +0 -0
  368. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/backend/stable_diffusion/extensions/inpaint_model.py +0 -0
  369. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/backend/stable_diffusion/extensions/lora.py +0 -0
  370. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/backend/stable_diffusion/extensions/preview.py +0 -0
  371. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/backend/stable_diffusion/extensions/rescale_cfg.py +0 -0
  372. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/backend/stable_diffusion/extensions/seamless.py +0 -0
  373. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/backend/stable_diffusion/extensions/t2i_adapter.py +0 -0
  374. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/backend/stable_diffusion/extensions_manager.py +0 -0
  375. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/backend/stable_diffusion/multi_diffusion_pipeline.py +0 -0
  376. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/backend/stable_diffusion/schedulers/__init__.py +0 -0
  377. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/backend/stable_diffusion/schedulers/schedulers.py +0 -0
  378. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/backend/stable_diffusion/vae_tiling.py +0 -0
  379. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/backend/textual_inversion.py +0 -0
  380. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/backend/tiles/__init__.py +0 -0
  381. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/backend/tiles/tiles.py +0 -0
  382. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/backend/tiles/utils.py +0 -0
  383. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/backend/util/attention.py +0 -0
  384. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/backend/util/catch_sigint.py +0 -0
  385. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/backend/util/db_maintenance.py +0 -0
  386. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/backend/util/devices.py +0 -0
  387. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/backend/util/hotfixes.py +0 -0
  388. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/backend/util/logging.py +0 -0
  389. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/backend/util/mask.py +0 -0
  390. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/backend/util/mps_fixes.py +0 -0
  391. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/backend/util/original_weights_storage.py +0 -0
  392. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/backend/util/silence_warnings.py +0 -0
  393. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/backend/util/test_utils.py +0 -0
  394. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/configs/controlnet/cldm_v15.yaml +0 -0
  395. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/configs/controlnet/cldm_v21.yaml +0 -0
  396. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/configs/stable-diffusion/sd_xl_base.yaml +0 -0
  397. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/configs/stable-diffusion/sd_xl_inpaint.yaml +0 -0
  398. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/configs/stable-diffusion/sd_xl_refiner.yaml +0 -0
  399. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/configs/stable-diffusion/v1-finetune.yaml +0 -0
  400. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/configs/stable-diffusion/v1-finetune_style.yaml +0 -0
  401. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/configs/stable-diffusion/v1-inference-v.yaml +0 -0
  402. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/configs/stable-diffusion/v1-inference.yaml +0 -0
  403. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/configs/stable-diffusion/v1-inpainting-inference.yaml +0 -0
  404. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/configs/stable-diffusion/v1-m1-finetune.yaml +0 -0
  405. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/configs/stable-diffusion/v2-inference-v.yaml +0 -0
  406. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/configs/stable-diffusion/v2-inference.yaml +0 -0
  407. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/configs/stable-diffusion/v2-inpainting-inference-v.yaml +0 -0
  408. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/configs/stable-diffusion/v2-inpainting-inference.yaml +0 -0
  409. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/configs/stable-diffusion/v2-midas-inference.yaml +0 -0
  410. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/frontend/__init__.py +0 -0
  411. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/frontend/cli/__init__.py +0 -0
  412. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/frontend/cli/arg_parser.py +0 -0
  413. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/frontend/install/__init__.py +0 -0
  414. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/frontend/install/import_images.py +0 -0
  415. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/frontend/web/__init__.py +0 -0
  416. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/frontend/web/dist/assets/App-DEu4J2pT.css +0 -0
  417. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/frontend/web/dist/assets/ThemeLocaleProvider-B2NxUfIp.css +0 -0
  418. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/frontend/web/dist/assets/images/invoke-alert-favicon.svg +0 -0
  419. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/frontend/web/dist/assets/images/invoke-avatar-circle.svg +0 -0
  420. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/frontend/web/dist/assets/images/invoke-avatar-square.svg +0 -0
  421. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/frontend/web/dist/assets/images/invoke-favicon.png +0 -0
  422. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/frontend/web/dist/assets/images/invoke-favicon.svg +0 -0
  423. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/frontend/web/dist/assets/images/invoke-key-char-lrg.svg +0 -0
  424. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/frontend/web/dist/assets/images/invoke-key-char-sml.svg +0 -0
  425. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/frontend/web/dist/assets/images/invoke-key-wht-lrg.svg +0 -0
  426. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/frontend/web/dist/assets/images/invoke-key-wht-sml.svg +0 -0
  427. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/frontend/web/dist/assets/images/invoke-symbol-char-lrg.svg +0 -0
  428. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/frontend/web/dist/assets/images/invoke-symbol-char-sml.svg +0 -0
  429. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/frontend/web/dist/assets/images/invoke-symbol-wht-lrg.svg +0 -0
  430. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/frontend/web/dist/assets/images/invoke-symbol-wht-sml.svg +0 -0
  431. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/frontend/web/dist/assets/images/invoke-symbol-ylw-lrg.svg +0 -0
  432. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/frontend/web/dist/assets/images/invoke-tag-char-lrg.svg +0 -0
  433. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/frontend/web/dist/assets/images/invoke-tag-char-sml.svg +0 -0
  434. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/frontend/web/dist/assets/images/invoke-tag-lrg.svg +0 -0
  435. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/frontend/web/dist/assets/images/invoke-tag-sml.svg +0 -0
  436. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/frontend/web/dist/assets/images/invoke-wordmark-charcoal.svg +0 -0
  437. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/frontend/web/dist/assets/images/invoke-wordmark-white.svg +0 -0
  438. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/frontend/web/dist/assets/images/mask.svg +0 -0
  439. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/frontend/web/dist/assets/images/transparent_bg.png +0 -0
  440. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/frontend/web/dist/assets/inter-cyrillic-ext-wght-normal-B2xhLi22.woff2 +0 -0
  441. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/frontend/web/dist/assets/inter-cyrillic-wght-normal-CMZtQduZ.woff2 +0 -0
  442. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/frontend/web/dist/assets/inter-greek-ext-wght-normal-CGAr0uHJ.woff2 +0 -0
  443. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/frontend/web/dist/assets/inter-greek-wght-normal-CaVNZxsx.woff2 +0 -0
  444. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/frontend/web/dist/assets/inter-latin-ext-wght-normal-CFHvXkgd.woff2 +0 -0
  445. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/frontend/web/dist/assets/inter-latin-wght-normal-C2S99t-D.woff2 +0 -0
  446. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/frontend/web/dist/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2 +0 -0
  447. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/frontend/web/dist/assets/worker-Dywf1EVc.js +0 -0
  448. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/frontend/web/dist/locales/ar.json +0 -0
  449. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/frontend/web/dist/locales/az.json +0 -0
  450. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/frontend/web/dist/locales/bg.json +0 -0
  451. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/frontend/web/dist/locales/de.json +0 -0
  452. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/frontend/web/dist/locales/es.json +0 -0
  453. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/frontend/web/dist/locales/fi.json +0 -0
  454. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/frontend/web/dist/locales/fr.json +0 -0
  455. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/frontend/web/dist/locales/he.json +0 -0
  456. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/frontend/web/dist/locales/hu.json +0 -0
  457. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/frontend/web/dist/locales/it.json +0 -0
  458. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/frontend/web/dist/locales/ja.json +0 -0
  459. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/frontend/web/dist/locales/ko.json +0 -0
  460. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/frontend/web/dist/locales/mn.json +0 -0
  461. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/frontend/web/dist/locales/nl.json +0 -0
  462. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/frontend/web/dist/locales/pl.json +0 -0
  463. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/frontend/web/dist/locales/pt.json +0 -0
  464. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/frontend/web/dist/locales/pt_BR.json +0 -0
  465. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/frontend/web/dist/locales/ro.json +0 -0
  466. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/frontend/web/dist/locales/ru.json +0 -0
  467. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/frontend/web/dist/locales/sv.json +0 -0
  468. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/frontend/web/dist/locales/tr.json +0 -0
  469. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/frontend/web/dist/locales/uk.json +0 -0
  470. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/frontend/web/dist/locales/vi.json +0 -0
  471. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/frontend/web/dist/locales/zh_CN.json +0 -0
  472. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/frontend/web/dist/locales/zh_Hant.json +0 -0
  473. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/frontend/web/scripts/clean_translations.py +0 -0
  474. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/frontend/web/static/docs/invoke-favicon-docs.svg +0 -0
  475. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/invocation_api/__init__.py +0 -0
  476. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/invokeai/version/__init__.py +0 -0
  477. {InvokeAI-4.2.9.dev7 → InvokeAI-4.2.9.dev9}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: InvokeAI
3
- Version: 4.2.9.dev7
3
+ Version: 4.2.9.dev9
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
@@ -404,10 +404,10 @@ invokeai/frontend/install/import_images.py
404
404
  invokeai/frontend/web/__init__.py
405
405
  invokeai/frontend/web/dist/index.html
406
406
  invokeai/frontend/web/dist/assets/App-DEu4J2pT.css
407
- invokeai/frontend/web/dist/assets/App-Ml2MahEe.js
407
+ invokeai/frontend/web/dist/assets/App-DQ9eSnfG.js
408
408
  invokeai/frontend/web/dist/assets/ThemeLocaleProvider-B2NxUfIp.css
409
- invokeai/frontend/web/dist/assets/ThemeLocaleProvider-C3tgmXVD.js
410
- invokeai/frontend/web/dist/assets/index-LCw842i7.js
409
+ invokeai/frontend/web/dist/assets/ThemeLocaleProvider-D2UT1a6F.js
410
+ invokeai/frontend/web/dist/assets/index-CiDHB6Bv.js
411
411
  invokeai/frontend/web/dist/assets/inter-cyrillic-ext-wght-normal-B2xhLi22.woff2
412
412
  invokeai/frontend/web/dist/assets/inter-cyrillic-wght-normal-CMZtQduZ.woff2
413
413
  invokeai/frontend/web/dist/assets/inter-greek-ext-wght-normal-CGAr0uHJ.woff2
@@ -0,0 +1,2 @@
1
+ [console_scripts]
2
+ invokeai-web = invokeai.app.run_app:run_app
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: InvokeAI
3
- Version: 4.2.9.dev7
3
+ Version: 4.2.9.dev9
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
@@ -45,11 +45,13 @@ class UIType(str, Enum, metaclass=MetaEnum):
45
45
  SDXLRefinerModel = "SDXLRefinerModelField"
46
46
  ONNXModel = "ONNXModelField"
47
47
  VAEModel = "VAEModelField"
48
+ FluxVAEModel = "FluxVAEModelField"
48
49
  LoRAModel = "LoRAModelField"
49
50
  ControlNetModel = "ControlNetModelField"
50
51
  IPAdapterModel = "IPAdapterModelField"
51
52
  T2IAdapterModel = "T2IAdapterModelField"
52
53
  T5EncoderModel = "T5EncoderModelField"
54
+ CLIPEmbedModel = "CLIPEmbedModelField"
53
55
  SpandrelImageToImageModel = "SpandrelImageToImageModelField"
54
56
  # endregion
55
57
 
@@ -128,6 +130,7 @@ class FieldDescriptions:
128
130
  noise = "Noise tensor"
129
131
  clip = "CLIP (tokenizer, text encoder, LoRAs) and skipped layer count"
130
132
  t5_encoder = "T5 tokenizer and text encoder"
133
+ clip_embed_model = "CLIP Embed loader"
131
134
  unet = "UNet (scheduler, LoRAs)"
132
135
  transformer = "Transformer"
133
136
  vae = "VAE"
@@ -40,7 +40,10 @@ class FluxTextEncoderInvocation(BaseInvocation):
40
40
 
41
41
  @torch.no_grad()
42
42
  def invoke(self, context: InvocationContext) -> FluxConditioningOutput:
43
- t5_embeddings, clip_embeddings = self._encode_prompt(context)
43
+ # Note: The T5 and CLIP encoding are done in separate functions to ensure that all model references are locally
44
+ # scoped. This ensures that the T5 model can be freed and gc'd before loading the CLIP model (if necessary).
45
+ t5_embeddings = self._t5_encode(context)
46
+ clip_embeddings = self._clip_encode(context)
44
47
  conditioning_data = ConditioningFieldData(
45
48
  conditionings=[FLUXConditioningInfo(clip_embeds=clip_embeddings, t5_embeds=t5_embeddings)]
46
49
  )
@@ -48,12 +51,7 @@ class FluxTextEncoderInvocation(BaseInvocation):
48
51
  conditioning_name = context.conditioning.save(conditioning_data)
49
52
  return FluxConditioningOutput.build(conditioning_name)
50
53
 
51
- def _encode_prompt(self, context: InvocationContext) -> tuple[torch.Tensor, torch.Tensor]:
52
- # Load CLIP.
53
- clip_tokenizer_info = context.models.load(self.clip.tokenizer)
54
- clip_text_encoder_info = context.models.load(self.clip.text_encoder)
55
-
56
- # Load T5.
54
+ def _t5_encode(self, context: InvocationContext) -> torch.Tensor:
57
55
  t5_tokenizer_info = context.models.load(self.t5_encoder.tokenizer)
58
56
  t5_text_encoder_info = context.models.load(self.t5_encoder.text_encoder)
59
57
 
@@ -70,6 +68,15 @@ class FluxTextEncoderInvocation(BaseInvocation):
70
68
 
71
69
  prompt_embeds = t5_encoder(prompt)
72
70
 
71
+ assert isinstance(prompt_embeds, torch.Tensor)
72
+ return prompt_embeds
73
+
74
+ def _clip_encode(self, context: InvocationContext) -> torch.Tensor:
75
+ clip_tokenizer_info = context.models.load(self.clip.tokenizer)
76
+ clip_text_encoder_info = context.models.load(self.clip.text_encoder)
77
+
78
+ prompt = [self.prompt]
79
+
73
80
  with (
74
81
  clip_text_encoder_info as clip_text_encoder,
75
82
  clip_tokenizer_info as clip_tokenizer,
@@ -81,6 +88,5 @@ class FluxTextEncoderInvocation(BaseInvocation):
81
88
 
82
89
  pooled_prompt_embeds = clip_encoder(prompt)
83
90
 
84
- assert isinstance(prompt_embeds, torch.Tensor)
85
91
  assert isinstance(pooled_prompt_embeds, torch.Tensor)
86
- return prompt_embeds, pooled_prompt_embeds
92
+ return pooled_prompt_embeds
@@ -58,13 +58,7 @@ class FluxTextToImageInvocation(BaseInvocation, WithMetadata, WithBoard):
58
58
 
59
59
  @torch.no_grad()
60
60
  def invoke(self, context: InvocationContext) -> ImageOutput:
61
- # Load the conditioning data.
62
- cond_data = context.conditioning.load(self.positive_text_conditioning.conditioning_name)
63
- assert len(cond_data.conditionings) == 1
64
- flux_conditioning = cond_data.conditionings[0]
65
- assert isinstance(flux_conditioning, FLUXConditioningInfo)
66
-
67
- latents = self._run_diffusion(context, flux_conditioning.clip_embeds, flux_conditioning.t5_embeds)
61
+ latents = self._run_diffusion(context)
68
62
  image = self._run_vae_decoding(context, latents)
69
63
  image_dto = context.images.save(image=image)
70
64
  return ImageOutput.build(image_dto)
@@ -72,12 +66,20 @@ class FluxTextToImageInvocation(BaseInvocation, WithMetadata, WithBoard):
72
66
  def _run_diffusion(
73
67
  self,
74
68
  context: InvocationContext,
75
- clip_embeddings: torch.Tensor,
76
- t5_embeddings: torch.Tensor,
77
69
  ):
78
- transformer_info = context.models.load(self.transformer.transformer)
79
70
  inference_dtype = torch.bfloat16
80
71
 
72
+ # Load the conditioning data.
73
+ cond_data = context.conditioning.load(self.positive_text_conditioning.conditioning_name)
74
+ assert len(cond_data.conditionings) == 1
75
+ flux_conditioning = cond_data.conditionings[0]
76
+ assert isinstance(flux_conditioning, FLUXConditioningInfo)
77
+ flux_conditioning = flux_conditioning.to(dtype=inference_dtype)
78
+ t5_embeddings = flux_conditioning.t5_embeds
79
+ clip_embeddings = flux_conditioning.clip_embeds
80
+
81
+ transformer_info = context.models.load(self.transformer.transformer)
82
+
81
83
  # Prepare input noise.
82
84
  x = get_noise(
83
85
  num_samples=1,
@@ -88,24 +90,19 @@ class FluxTextToImageInvocation(BaseInvocation, WithMetadata, WithBoard):
88
90
  seed=self.seed,
89
91
  )
90
92
 
91
- img, img_ids = prepare_latent_img_patches(x)
93
+ x, img_ids = prepare_latent_img_patches(x)
92
94
 
93
95
  is_schnell = "schnell" in transformer_info.config.config_path
94
96
 
95
97
  timesteps = get_schedule(
96
98
  num_steps=self.num_steps,
97
- image_seq_len=img.shape[1],
99
+ image_seq_len=x.shape[1],
98
100
  shift=not is_schnell,
99
101
  )
100
102
 
101
103
  bs, t5_seq_len, _ = t5_embeddings.shape
102
104
  txt_ids = torch.zeros(bs, t5_seq_len, 3, dtype=inference_dtype, device=TorchDevice.choose_torch_device())
103
105
 
104
- # HACK(ryand): Manually empty the cache. Currently we don't check the size of the model before loading it from
105
- # disk. Since the transformer model is large (24GB), there's a good chance that it will OOM on 32GB RAM systems
106
- # if the cache is not empty.
107
- context.models._services.model_manager.load.ram_cache.make_room(24 * 2**30)
108
-
109
106
  with transformer_info as transformer:
110
107
  assert isinstance(transformer, Flux)
111
108
 
@@ -140,7 +137,7 @@ class FluxTextToImageInvocation(BaseInvocation, WithMetadata, WithBoard):
140
137
 
141
138
  x = denoise(
142
139
  model=transformer,
143
- img=img,
140
+ img=x,
144
141
  img_ids=img_ids,
145
142
  txt=t5_embeddings,
146
143
  txt_ids=txt_ids,
@@ -157,7 +157,7 @@ class FluxModelLoaderOutput(BaseInvocationOutput):
157
157
  title="Flux Main Model",
158
158
  tags=["model", "flux"],
159
159
  category="model",
160
- version="1.0.3",
160
+ version="1.0.4",
161
161
  classification=Classification.Prototype,
162
162
  )
163
163
  class FluxModelLoaderInvocation(BaseInvocation):
@@ -169,23 +169,35 @@ class FluxModelLoaderInvocation(BaseInvocation):
169
169
  input=Input.Direct,
170
170
  )
171
171
 
172
- t5_encoder: ModelIdentifierField = InputField(
173
- description=FieldDescriptions.t5_encoder,
174
- ui_type=UIType.T5EncoderModel,
172
+ t5_encoder_model: ModelIdentifierField = InputField(
173
+ description=FieldDescriptions.t5_encoder, ui_type=UIType.T5EncoderModel, input=Input.Direct, title="T5 Encoder"
174
+ )
175
+
176
+ clip_embed_model: ModelIdentifierField = InputField(
177
+ description=FieldDescriptions.clip_embed_model,
178
+ ui_type=UIType.CLIPEmbedModel,
175
179
  input=Input.Direct,
180
+ title="CLIP Embed",
181
+ )
182
+
183
+ vae_model: ModelIdentifierField = InputField(
184
+ description=FieldDescriptions.vae_model, ui_type=UIType.FluxVAEModel, title="VAE"
176
185
  )
177
186
 
178
187
  def invoke(self, context: InvocationContext) -> FluxModelLoaderOutput:
179
- model_key = self.model.key
180
-
181
- if not context.models.exists(model_key):
182
- raise ValueError(f"Unknown model: {model_key}")
183
- transformer = self._get_model(context, SubModelType.Transformer)
184
- tokenizer = self._get_model(context, SubModelType.Tokenizer)
185
- tokenizer2 = self._get_model(context, SubModelType.Tokenizer2)
186
- clip_encoder = self._get_model(context, SubModelType.TextEncoder)
187
- t5_encoder = self._get_model(context, SubModelType.TextEncoder2)
188
- vae = self._get_model(context, SubModelType.VAE)
188
+ for key in [self.model.key, self.t5_encoder_model.key, self.clip_embed_model.key, self.vae_model.key]:
189
+ if not context.models.exists(key):
190
+ raise ValueError(f"Unknown model: {key}")
191
+
192
+ transformer = self.model.model_copy(update={"submodel_type": SubModelType.Transformer})
193
+ vae = self.vae_model.model_copy(update={"submodel_type": SubModelType.VAE})
194
+
195
+ tokenizer = self.clip_embed_model.model_copy(update={"submodel_type": SubModelType.Tokenizer})
196
+ clip_encoder = self.clip_embed_model.model_copy(update={"submodel_type": SubModelType.TextEncoder})
197
+
198
+ tokenizer2 = self.t5_encoder_model.model_copy(update={"submodel_type": SubModelType.Tokenizer2})
199
+ t5_encoder = self.t5_encoder_model.model_copy(update={"submodel_type": SubModelType.TextEncoder2})
200
+
189
201
  transformer_config = context.models.get_config(transformer)
190
202
  assert isinstance(transformer_config, CheckpointConfigBase)
191
203
 
@@ -197,52 +209,6 @@ class FluxModelLoaderInvocation(BaseInvocation):
197
209
  max_seq_len=max_seq_lengths[transformer_config.config_path],
198
210
  )
199
211
 
200
- def _get_model(self, context: InvocationContext, submodel: SubModelType) -> ModelIdentifierField:
201
- match submodel:
202
- case SubModelType.Transformer:
203
- return self.model.model_copy(update={"submodel_type": SubModelType.Transformer})
204
- case SubModelType.VAE:
205
- return self._pull_model_from_mm(
206
- context,
207
- SubModelType.VAE,
208
- "FLUX.1-schnell_ae",
209
- ModelType.VAE,
210
- BaseModelType.Flux,
211
- )
212
- case submodel if submodel in [SubModelType.Tokenizer, SubModelType.TextEncoder]:
213
- return self._pull_model_from_mm(
214
- context,
215
- submodel,
216
- "clip-vit-large-patch14",
217
- ModelType.CLIPEmbed,
218
- BaseModelType.Any,
219
- )
220
- case submodel if submodel in [SubModelType.Tokenizer2, SubModelType.TextEncoder2]:
221
- return self._pull_model_from_mm(
222
- context,
223
- submodel,
224
- self.t5_encoder.name,
225
- ModelType.T5Encoder,
226
- BaseModelType.Any,
227
- )
228
- case _:
229
- raise Exception(f"{submodel.value} is not a supported submodule for a flux model")
230
-
231
- def _pull_model_from_mm(
232
- self,
233
- context: InvocationContext,
234
- submodel: SubModelType,
235
- name: str,
236
- type: ModelType,
237
- base: BaseModelType,
238
- ):
239
- if models := context.models.search_by_attrs(name=name, base=base, type=type):
240
- if len(models) != 1:
241
- raise Exception(f"Multiple models detected for selected model with name {name}")
242
- return ModelIdentifierField.from_config(models[0]).model_copy(update={"submodel_type": submodel})
243
- else:
244
- raise ValueError(f"Please install the {base}:{type} model named {name} via starter models")
245
-
246
212
 
247
213
  @invocation(
248
214
  "main_model_loader",
@@ -88,7 +88,8 @@ class QueueItemEventBase(QueueEventBase):
88
88
 
89
89
  item_id: int = Field(description="The ID of the queue item")
90
90
  batch_id: str = Field(description="The ID of the queue batch")
91
- origin: str | None = Field(default=None, description="The origin of the batch")
91
+ origin: str | None = Field(default=None, description="The origin of the queue item")
92
+ destination: str | None = Field(default=None, description="The destination of the queue item")
92
93
 
93
94
 
94
95
  class InvocationEventBase(QueueItemEventBase):
@@ -114,6 +115,7 @@ class InvocationStartedEvent(InvocationEventBase):
114
115
  item_id=queue_item.item_id,
115
116
  batch_id=queue_item.batch_id,
116
117
  origin=queue_item.origin,
118
+ destination=queue_item.destination,
117
119
  session_id=queue_item.session_id,
118
120
  invocation=invocation,
119
121
  invocation_source_id=queue_item.session.prepared_source_mapping[invocation.id],
@@ -148,6 +150,7 @@ class InvocationDenoiseProgressEvent(InvocationEventBase):
148
150
  item_id=queue_item.item_id,
149
151
  batch_id=queue_item.batch_id,
150
152
  origin=queue_item.origin,
153
+ destination=queue_item.destination,
151
154
  session_id=queue_item.session_id,
152
155
  invocation=invocation,
153
156
  invocation_source_id=queue_item.session.prepared_source_mapping[invocation.id],
@@ -186,6 +189,7 @@ class InvocationCompleteEvent(InvocationEventBase):
186
189
  item_id=queue_item.item_id,
187
190
  batch_id=queue_item.batch_id,
188
191
  origin=queue_item.origin,
192
+ destination=queue_item.destination,
189
193
  session_id=queue_item.session_id,
190
194
  invocation=invocation,
191
195
  invocation_source_id=queue_item.session.prepared_source_mapping[invocation.id],
@@ -219,6 +223,7 @@ class InvocationErrorEvent(InvocationEventBase):
219
223
  item_id=queue_item.item_id,
220
224
  batch_id=queue_item.batch_id,
221
225
  origin=queue_item.origin,
226
+ destination=queue_item.destination,
222
227
  session_id=queue_item.session_id,
223
228
  invocation=invocation,
224
229
  invocation_source_id=queue_item.session.prepared_source_mapping[invocation.id],
@@ -257,6 +262,7 @@ class QueueItemStatusChangedEvent(QueueItemEventBase):
257
262
  item_id=queue_item.item_id,
258
263
  batch_id=queue_item.batch_id,
259
264
  origin=queue_item.origin,
265
+ destination=queue_item.destination,
260
266
  session_id=queue_item.session_id,
261
267
  status=queue_item.status,
262
268
  error_type=queue_item.error_type,
@@ -77,7 +77,14 @@ BatchDataCollection: TypeAlias = list[list[BatchDatum]]
77
77
 
78
78
  class Batch(BaseModel):
79
79
  batch_id: str = Field(default_factory=uuid_string, description="The ID of the batch")
80
- origin: str | None = Field(default=None, description="The origin of this batch.")
80
+ origin: str | None = Field(
81
+ default=None,
82
+ description="The origin of this queue item. This data is used by the frontend to determine how to handle results.",
83
+ )
84
+ destination: str | None = Field(
85
+ default=None,
86
+ description="The origin of this queue item. This data is used by the frontend to determine how to handle results",
87
+ )
81
88
  data: Optional[BatchDataCollection] = Field(default=None, description="The batch data collection.")
82
89
  graph: Graph = Field(description="The graph to initialize the session with")
83
90
  workflow: Optional[WorkflowWithoutID] = Field(
@@ -196,7 +203,14 @@ class SessionQueueItemWithoutGraph(BaseModel):
196
203
  status: QUEUE_ITEM_STATUS = Field(default="pending", description="The status of this queue item")
197
204
  priority: int = Field(default=0, description="The priority of this queue item")
198
205
  batch_id: str = Field(description="The ID of the batch associated with this queue item")
199
- origin: str | None = Field(default=None, description="The origin of this queue item. ")
206
+ origin: str | None = Field(
207
+ default=None,
208
+ description="The origin of this queue item. This data is used by the frontend to determine how to handle results.",
209
+ )
210
+ destination: str | None = Field(
211
+ default=None,
212
+ description="The origin of this queue item. This data is used by the frontend to determine how to handle results",
213
+ )
200
214
  session_id: str = Field(
201
215
  description="The ID of the session associated with this queue item. The session doesn't exist in graph_executions until the queue item is executed."
202
216
  )
@@ -297,6 +311,7 @@ class BatchStatus(BaseModel):
297
311
  queue_id: str = Field(..., description="The ID of the queue")
298
312
  batch_id: str = Field(..., description="The ID of the batch")
299
313
  origin: str | None = Field(..., description="The origin of the batch")
314
+ destination: str | None = Field(..., description="The destination of the batch")
300
315
  pending: int = Field(..., description="Number of queue items with status 'pending'")
301
316
  in_progress: int = Field(..., description="Number of queue items with status 'in_progress'")
302
317
  completed: int = Field(..., description="Number of queue items with status 'complete'")
@@ -443,6 +458,7 @@ class SessionQueueValueToInsert(NamedTuple):
443
458
  priority: int # priority
444
459
  workflow: Optional[str] # workflow json
445
460
  origin: str | None
461
+ destination: str | None
446
462
 
447
463
 
448
464
  ValuesToInsert: TypeAlias = list[SessionQueueValueToInsert]
@@ -464,6 +480,7 @@ def prepare_values_to_insert(queue_id: str, batch: Batch, priority: int, max_new
464
480
  priority, # priority
465
481
  json.dumps(workflow, default=to_jsonable_python) if workflow else None, # workflow (json)
466
482
  batch.origin, # origin
483
+ batch.destination, # destination
467
484
  )
468
485
  )
469
486
  return values_to_insert
@@ -128,8 +128,8 @@ class SqliteSessionQueue(SessionQueueBase):
128
128
 
129
129
  self.__cursor.executemany(
130
130
  """--sql
131
- INSERT INTO session_queue (queue_id, session, session_id, batch_id, field_values, priority, workflow, origin)
132
- VALUES (?, ?, ?, ?, ?, ?, ?, ?)
131
+ INSERT INTO session_queue (queue_id, session, session_id, batch_id, field_values, priority, workflow, origin, destination)
132
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
133
133
  """,
134
134
  values_to_insert,
135
135
  )
@@ -579,7 +579,8 @@ class SqliteSessionQueue(SessionQueueBase):
579
579
  session_id,
580
580
  batch_id,
581
581
  queue_id,
582
- origin
582
+ origin,
583
+ destination
583
584
  FROM session_queue
584
585
  WHERE queue_id = ?
585
586
  """
@@ -659,7 +660,7 @@ class SqliteSessionQueue(SessionQueueBase):
659
660
  self.__lock.acquire()
660
661
  self.__cursor.execute(
661
662
  """--sql
662
- SELECT status, count(*), origin
663
+ SELECT status, count(*), origin, destination
663
664
  FROM session_queue
664
665
  WHERE
665
666
  queue_id = ?
@@ -672,6 +673,7 @@ class SqliteSessionQueue(SessionQueueBase):
672
673
  total = sum(row[1] for row in result)
673
674
  counts: dict[str, int] = {row[0]: row[1] for row in result}
674
675
  origin = result[0]["origin"] if result else None
676
+ destination = result[0]["destination"] if result else None
675
677
  except Exception:
676
678
  self.__conn.rollback()
677
679
  raise
@@ -681,6 +683,7 @@ class SqliteSessionQueue(SessionQueueBase):
681
683
  return BatchStatus(
682
684
  batch_id=batch_id,
683
685
  origin=origin,
686
+ destination=destination,
684
687
  queue_id=queue_id,
685
688
  pending=counts.get("pending", 0),
686
689
  in_progress=counts.get("in_progress", 0),
@@ -10,9 +10,11 @@ class Migration15Callback:
10
10
  def _add_origin_col(self, cursor: sqlite3.Cursor) -> None:
11
11
  """
12
12
  - Adds `origin` column to the session queue table.
13
+ - Adds `destination` column to the session queue table.
13
14
  """
14
15
 
15
16
  cursor.execute("ALTER TABLE session_queue ADD COLUMN origin TEXT;")
17
+ cursor.execute("ALTER TABLE session_queue ADD COLUMN destination TEXT;")
16
18
 
17
19
 
18
20
  def build_migration_15() -> Migration:
@@ -21,6 +23,7 @@ def build_migration_15() -> Migration:
21
23
 
22
24
  This migration does the following:
23
25
  - Adds `origin` column to the session queue table.
26
+ - Adds `destination` column to the session queue table.
24
27
  """
25
28
  migration_15 = Migration(
26
29
  from_version=14,
@@ -2,13 +2,13 @@
2
2
  "name": "FLUX Text to Image",
3
3
  "author": "InvokeAI",
4
4
  "description": "A simple text-to-image workflow using FLUX dev or schnell models. Prerequisite model downloads: T5 Encoder, CLIP-L Encoder, and FLUX VAE. Quantized and un-quantized versions can be found in the starter models tab within your Model Manager. We recommend 4 steps for FLUX schnell models and 30 steps for FLUX dev models.",
5
- "version": "1.0.0",
5
+ "version": "1.0.4",
6
6
  "contact": "",
7
7
  "tags": "text2image, flux",
8
8
  "notes": "Prerequisite model downloads: T5 Encoder, CLIP-L Encoder, and FLUX VAE. Quantized and un-quantized versions can be found in the starter models tab within your Model Manager. We recommend 4 steps for FLUX schnell models and 30 steps for FLUX dev models.",
9
9
  "exposedFields": [
10
10
  {
11
- "nodeId": "4f0207c2-ff40-41fd-b047-ad33fbb1c33a",
11
+ "nodeId": "f8d9d7c8-9ed7-4bd7-9e42-ab0e89bfac90",
12
12
  "fieldName": "model"
13
13
  },
14
14
  {
@@ -20,8 +20,8 @@
20
20
  "fieldName": "num_steps"
21
21
  },
22
22
  {
23
- "nodeId": "4f0207c2-ff40-41fd-b047-ad33fbb1c33a",
24
- "fieldName": "t5_encoder"
23
+ "nodeId": "f8d9d7c8-9ed7-4bd7-9e42-ab0e89bfac90",
24
+ "fieldName": "t5_encoder_model"
25
25
  }
26
26
  ],
27
27
  "meta": {
@@ -30,12 +30,12 @@
30
30
  },
31
31
  "nodes": [
32
32
  {
33
- "id": "4f0207c2-ff40-41fd-b047-ad33fbb1c33a",
33
+ "id": "f8d9d7c8-9ed7-4bd7-9e42-ab0e89bfac90",
34
34
  "type": "invocation",
35
35
  "data": {
36
- "id": "4f0207c2-ff40-41fd-b047-ad33fbb1c33a",
36
+ "id": "f8d9d7c8-9ed7-4bd7-9e42-ab0e89bfac90",
37
37
  "type": "flux_model_loader",
38
- "version": "1.0.3",
38
+ "version": "1.0.4",
39
39
  "label": "",
40
40
  "notes": "",
41
41
  "isOpen": true,
@@ -44,31 +44,25 @@
44
44
  "inputs": {
45
45
  "model": {
46
46
  "name": "model",
47
- "label": "Model (Starter Models can be found in Model Manager)",
48
- "value": {
49
- "key": "f04a7a2f-c74d-4538-8d5e-879a53501662",
50
- "hash": "random:4875da7a9508444ffa706f61961c260d0c6729f6181a86b31fad06df1277b850",
51
- "name": "FLUX Dev (Quantized)",
52
- "base": "flux",
53
- "type": "main"
54
- }
47
+ "label": ""
55
48
  },
56
- "t5_encoder": {
57
- "name": "t5_encoder",
58
- "label": "T 5 Encoder (Starter Models can be found in Model Manager)",
59
- "value": {
60
- "key": "20dcd9ec-5fbb-4012-8401-049e707da5e5",
61
- "hash": "random:f986be43ff3502169e4adbdcee158afb0e0a65a1edc4cab16ae59963630cfd8f",
62
- "name": "t5_bnb_int8_quantized_encoder",
63
- "base": "any",
64
- "type": "t5_encoder"
65
- }
49
+ "t5_encoder_model": {
50
+ "name": "t5_encoder_model",
51
+ "label": ""
52
+ },
53
+ "clip_embed_model": {
54
+ "name": "clip_embed_model",
55
+ "label": ""
56
+ },
57
+ "vae_model": {
58
+ "name": "vae_model",
59
+ "label": ""
66
60
  }
67
61
  }
68
62
  },
69
63
  "position": {
70
- "x": 337.09365228062825,
71
- "y": 40.63469521079861
64
+ "x": 381.1882713063478,
65
+ "y": -95.89663532854017
72
66
  }
73
67
  },
74
68
  {
@@ -207,45 +201,45 @@
207
201
  ],
208
202
  "edges": [
209
203
  {
210
- "id": "reactflow__edge-4f0207c2-ff40-41fd-b047-ad33fbb1c33amax_seq_len-01f674f8-b3d1-4df1-acac-6cb8e0bfb63ct5_max_seq_len",
204
+ "id": "reactflow__edge-f8d9d7c8-9ed7-4bd7-9e42-ab0e89bfac90max_seq_len-01f674f8-b3d1-4df1-acac-6cb8e0bfb63ct5_max_seq_len",
211
205
  "type": "default",
212
- "source": "4f0207c2-ff40-41fd-b047-ad33fbb1c33a",
206
+ "source": "f8d9d7c8-9ed7-4bd7-9e42-ab0e89bfac90",
213
207
  "target": "01f674f8-b3d1-4df1-acac-6cb8e0bfb63c",
214
208
  "sourceHandle": "max_seq_len",
215
209
  "targetHandle": "t5_max_seq_len"
216
210
  },
217
211
  {
218
- "id": "reactflow__edge-4f0207c2-ff40-41fd-b047-ad33fbb1c33avae-159bdf1b-79e7-4174-b86e-d40e646964c8vae",
212
+ "id": "reactflow__edge-f8d9d7c8-9ed7-4bd7-9e42-ab0e89bfac90vae-159bdf1b-79e7-4174-b86e-d40e646964c8vae",
219
213
  "type": "default",
220
- "source": "4f0207c2-ff40-41fd-b047-ad33fbb1c33a",
214
+ "source": "f8d9d7c8-9ed7-4bd7-9e42-ab0e89bfac90",
221
215
  "target": "159bdf1b-79e7-4174-b86e-d40e646964c8",
222
216
  "sourceHandle": "vae",
223
217
  "targetHandle": "vae"
224
218
  },
225
219
  {
226
- "id": "reactflow__edge-4f0207c2-ff40-41fd-b047-ad33fbb1c33atransformer-159bdf1b-79e7-4174-b86e-d40e646964c8transformer",
227
- "type": "default",
228
- "source": "4f0207c2-ff40-41fd-b047-ad33fbb1c33a",
229
- "target": "159bdf1b-79e7-4174-b86e-d40e646964c8",
230
- "sourceHandle": "transformer",
231
- "targetHandle": "transformer"
232
- },
233
- {
234
- "id": "reactflow__edge-4f0207c2-ff40-41fd-b047-ad33fbb1c33at5_encoder-01f674f8-b3d1-4df1-acac-6cb8e0bfb63ct5_encoder",
220
+ "id": "reactflow__edge-f8d9d7c8-9ed7-4bd7-9e42-ab0e89bfac90t5_encoder-01f674f8-b3d1-4df1-acac-6cb8e0bfb63ct5_encoder",
235
221
  "type": "default",
236
- "source": "4f0207c2-ff40-41fd-b047-ad33fbb1c33a",
222
+ "source": "f8d9d7c8-9ed7-4bd7-9e42-ab0e89bfac90",
237
223
  "target": "01f674f8-b3d1-4df1-acac-6cb8e0bfb63c",
238
224
  "sourceHandle": "t5_encoder",
239
225
  "targetHandle": "t5_encoder"
240
226
  },
241
227
  {
242
- "id": "reactflow__edge-4f0207c2-ff40-41fd-b047-ad33fbb1c33aclip-01f674f8-b3d1-4df1-acac-6cb8e0bfb63cclip",
228
+ "id": "reactflow__edge-f8d9d7c8-9ed7-4bd7-9e42-ab0e89bfac90clip-01f674f8-b3d1-4df1-acac-6cb8e0bfb63cclip",
243
229
  "type": "default",
244
- "source": "4f0207c2-ff40-41fd-b047-ad33fbb1c33a",
230
+ "source": "f8d9d7c8-9ed7-4bd7-9e42-ab0e89bfac90",
245
231
  "target": "01f674f8-b3d1-4df1-acac-6cb8e0bfb63c",
246
232
  "sourceHandle": "clip",
247
233
  "targetHandle": "clip"
248
234
  },
235
+ {
236
+ "id": "reactflow__edge-f8d9d7c8-9ed7-4bd7-9e42-ab0e89bfac90transformer-159bdf1b-79e7-4174-b86e-d40e646964c8transformer",
237
+ "type": "default",
238
+ "source": "f8d9d7c8-9ed7-4bd7-9e42-ab0e89bfac90",
239
+ "target": "159bdf1b-79e7-4174-b86e-d40e646964c8",
240
+ "sourceHandle": "transformer",
241
+ "targetHandle": "transformer"
242
+ },
249
243
  {
250
244
  "id": "reactflow__edge-01f674f8-b3d1-4df1-acac-6cb8e0bfb63cconditioning-159bdf1b-79e7-4174-b86e-d40e646964c8positive_text_conditioning",
251
245
  "type": "default",
@@ -111,16 +111,7 @@ def denoise(
111
111
  step_callback: Callable[[], None],
112
112
  guidance: float = 4.0,
113
113
  ):
114
- dtype = model.txt_in.bias.dtype
115
-
116
- # TODO(ryand): This shouldn't be necessary if we manage the dtypes properly in the caller.
117
- img = img.to(dtype=dtype)
118
- img_ids = img_ids.to(dtype=dtype)
119
- txt = txt.to(dtype=dtype)
120
- txt_ids = txt_ids.to(dtype=dtype)
121
- vec = vec.to(dtype=dtype)
122
-
123
- # this is ignored for schnell
114
+ # guidance_vec is ignored for schnell.
124
115
  guidance_vec = torch.full((img.shape[0],), guidance, device=img.device, dtype=img.dtype)
125
116
  for t_curr, t_prev in tqdm(list(zip(timesteps[:-1], timesteps[1:], strict=True))):
126
117
  t_vec = torch.full((img.shape[0],), t_curr, dtype=img.dtype, device=img.device)
@@ -168,9 +159,9 @@ def prepare_latent_img_patches(latent_img: torch.Tensor) -> tuple[torch.Tensor,
168
159
  img = repeat(img, "1 ... -> bs ...", bs=bs)
169
160
 
170
161
  # Generate patch position ids.
171
- img_ids = torch.zeros(h // 2, w // 2, 3, device=img.device)
172
- img_ids[..., 1] = img_ids[..., 1] + torch.arange(h // 2, device=img.device)[:, None]
173
- img_ids[..., 2] = img_ids[..., 2] + torch.arange(w // 2, device=img.device)[None, :]
162
+ img_ids = torch.zeros(h // 2, w // 2, 3, device=img.device, dtype=img.dtype)
163
+ img_ids[..., 1] = img_ids[..., 1] + torch.arange(h // 2, device=img.device, dtype=img.dtype)[:, None]
164
+ img_ids[..., 2] = img_ids[..., 2] + torch.arange(w // 2, device=img.device, dtype=img.dtype)[None, :]
174
165
  img_ids = repeat(img_ids, "h w c -> b (h w) c", b=bs)
175
166
 
176
167
  return img, img_ids