InvokeAI 5.4.1rc2__tar.gz → 5.4.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/InvokeAI.egg-info/PKG-INFO +1 -2
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/InvokeAI.egg-info/SOURCES.txt +11 -4
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/InvokeAI.egg-info/requires.txt +0 -1
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/PKG-INFO +1 -2
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/invocations/baseinvocation.py +2 -0
- invokeai-5.4.2/invokeai/app/invocations/blend_latents.py +120 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/invocations/compel.py +2 -0
- invokeai-5.4.2/invokeai/app/invocations/composition-nodes.py +1563 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/invocations/create_denoise_mask.py +1 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/invocations/create_gradient_mask.py +1 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/invocations/flux_text_encoder.py +2 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/invocations/flux_vae_decode.py +3 -1
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/invocations/flux_vae_encode.py +3 -3
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/invocations/image_to_latents.py +1 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/invocations/latents_to_image.py +1 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/invocations/metadata.py +4 -0
- invokeai-5.4.2/invokeai/app/invocations/param_easing.py +28 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/invocations/primitives.py +27 -1
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/invocations/sd3_denoise.py +102 -24
- invokeai-5.4.2/invokeai/app/invocations/sd3_image_to_latents.py +65 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/invocations/sd3_latents_to_image.py +1 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/invocations/sd3_text_encoder.py +2 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/session_queue/session_queue_common.py +2 -5
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/shared/invocation_context.py +28 -5
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/flux/ip_adapter/state_dict_utils.py +2 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/flux/ip_adapter/xlabs_ip_adapter_flux.py +4 -1
- invokeai-5.4.2/invokeai/backend/image_util/assets/CIELab_to_UPLab.icc +0 -0
- invokeai-5.4.2/invokeai/backend/image_util/composition.py +1020 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/lora/conversions/flux_diffusers_lora_conversion_utils.py +41 -18
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/model_manager/load/load_default.py +1 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/model_manager/load/model_loaders/flux.py +9 -1
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/model_manager/starter_models.py +2 -3
- invokeai-5.4.2/invokeai/backend/sd3/extensions/inpaint_extension.py +58 -0
- invokeai-5.4.2/invokeai/backend/tiles/__init__.py +0 -0
- invokeai-5.4.2/invokeai/frontend/cli/__init__.py +0 -0
- invokeai-5.4.2/invokeai/frontend/web/dist/assets/App-CObZXgPX.js +136 -0
- invokeai-5.4.1rc2/invokeai/frontend/web/dist/assets/ThemeLocaleProvider-CgCSlc3U.js → invokeai-5.4.2/invokeai/frontend/web/dist/assets/ThemeLocaleProvider-DOBIgoHN.js +1 -1
- invokeai-5.4.2/invokeai/frontend/web/dist/assets/index-DbW4l0Z-.js +497 -0
- invokeai-5.4.1rc2/invokeai/frontend/web/dist/assets/useTranslation-isMniQ21.js → invokeai-5.4.2/invokeai/frontend/web/dist/assets/useTranslation-DY3UydoH.js +1 -1
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/frontend/web/dist/index.html +1 -1
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/frontend/web/dist/locales/de.json +36 -5
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/frontend/web/dist/locales/en.json +97 -18
- invokeai-5.4.2/invokeai/frontend/web/dist/locales/es.json +912 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/frontend/web/dist/locales/fr.json +1 -4
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/frontend/web/dist/locales/it.json +44 -22
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/frontend/web/dist/locales/ja.json +274 -16
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/frontend/web/dist/locales/ru.json +0 -1
- invokeai-5.4.2/invokeai/frontend/web/dist/locales/vi.json +2137 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/frontend/web/dist/locales/zh_CN.json +254 -12
- invokeai-5.4.2/invokeai/version/invokeai_version.py +1 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/pyproject.toml +1 -2
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/tests/test_nodes.py +12 -0
- invokeai-5.4.1rc2/invokeai/app/invocations/blend_latents.py +0 -98
- invokeai-5.4.1rc2/invokeai/app/invocations/param_easing.py +0 -255
- invokeai-5.4.1rc2/invokeai/frontend/web/dist/assets/App-BDKmFSWG.js +0 -136
- invokeai-5.4.1rc2/invokeai/frontend/web/dist/assets/index-CIaYgE43.js +0 -497
- invokeai-5.4.1rc2/invokeai/frontend/web/dist/locales/es.json +0 -335
- invokeai-5.4.1rc2/invokeai/frontend/web/dist/locales/vi.json +0 -1
- invokeai-5.4.1rc2/invokeai/version/invokeai_version.py +0 -1
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/InvokeAI.egg-info/dependency_links.txt +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/InvokeAI.egg-info/entry_points.txt +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/InvokeAI.egg-info/top_level.txt +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/LICENSE +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/LICENSE-SD1+SD2.txt +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/LICENSE-SDXL.txt +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/README.md +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/__init__.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/api/dependencies.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/api/no_cache_staticfiles.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/api/routers/app_info.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/api/routers/board_images.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/api/routers/boards.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/api/routers/download_queue.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/api/routers/images.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/api/routers/model_manager.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/api/routers/session_queue.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/api/routers/style_presets.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/api/routers/utilities.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/api/routers/workflows.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/api/sockets.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/api_app.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/assets/images/caution.png +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/invocations/__init__.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/invocations/canny.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/invocations/collections.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/invocations/color_map.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/invocations/constants.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/invocations/content_shuffle.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/invocations/controlnet_image_processors.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/invocations/crop_latents.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/invocations/custom_nodes/README.md +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/invocations/custom_nodes/init.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/invocations/cv.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/invocations/denoise_latents.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/invocations/depth_anything.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/invocations/dw_openpose.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/invocations/facetools.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/invocations/fields.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/invocations/flux_controlnet.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/invocations/flux_denoise.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/invocations/flux_ip_adapter.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/invocations/flux_lora_loader.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/invocations/flux_model_loader.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/invocations/grounding_dino.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/invocations/hed.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/invocations/ideal_size.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/invocations/image.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/invocations/infill.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/invocations/ip_adapter.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/invocations/lineart.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/invocations/lineart_anime.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/invocations/mask.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/invocations/math.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/invocations/mediapipe_face.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/invocations/mlsd.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/invocations/model.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/invocations/noise.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/invocations/normal_bae.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/invocations/pidi.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/invocations/prompt.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/invocations/resize_latents.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/invocations/scheduler.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/invocations/sd3_model_loader.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/invocations/sdxl.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/invocations/segment_anything.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/invocations/spandrel_image_to_image.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/invocations/strings.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/invocations/t2i_adapter.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/invocations/tiled_multi_diffusion_denoise_latents.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/invocations/tiles.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/invocations/upscale.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/invocations/util.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/run_app.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/__init__.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/board_image_records/__init__.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/board_image_records/board_image_records_base.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/board_image_records/board_image_records_sqlite.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/board_images/__init__.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/board_images/board_images_base.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/board_images/board_images_common.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/board_images/board_images_default.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/board_records/board_records_base.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/board_records/board_records_common.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/board_records/board_records_sqlite.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/boards/__init__.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/boards/boards_base.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/boards/boards_common.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/boards/boards_default.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/bulk_download/__init__.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/bulk_download/bulk_download_base.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/bulk_download/bulk_download_common.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/bulk_download/bulk_download_default.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/config/__init__.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/config/config_common.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/config/config_default.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/download/__init__.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/download/download_base.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/download/download_default.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/events/__init__.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/events/events_base.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/events/events_common.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/events/events_fastapievents.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/image_files/__init__.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/image_files/image_files_base.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/image_files/image_files_common.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/image_files/image_files_disk.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/image_records/__init__.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/image_records/image_records_base.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/image_records/image_records_common.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/image_records/image_records_sqlite.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/images/__init__.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/images/images_base.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/images/images_common.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/images/images_default.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/invocation_cache/__init__.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/invocation_cache/invocation_cache_base.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/invocation_cache/invocation_cache_common.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/invocation_cache/invocation_cache_memory.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/invocation_services.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/invocation_stats/__init__.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/invocation_stats/invocation_stats_base.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/invocation_stats/invocation_stats_common.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/invocation_stats/invocation_stats_default.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/invoker.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/item_storage/__init__.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/item_storage/item_storage_base.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/item_storage/item_storage_common.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/item_storage/item_storage_memory.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/model_images/model_images_base.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/model_images/model_images_common.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/model_images/model_images_default.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/model_install/__init__.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/model_install/model_install_base.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/model_install/model_install_common.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/model_install/model_install_default.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/model_load/__init__.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/model_load/model_load_base.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/model_load/model_load_default.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/model_manager/__init__.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/model_manager/model_manager_base.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/model_manager/model_manager_common.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/model_manager/model_manager_default.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/model_records/__init__.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/model_records/model_records_base.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/model_records/model_records_sql.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/names/__init__.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/names/names_base.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/names/names_common.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/names/names_default.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/object_serializer/object_serializer_base.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/object_serializer/object_serializer_common.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/object_serializer/object_serializer_disk.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/object_serializer/object_serializer_forward_cache.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/session_processor/__init__.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/session_processor/session_processor_base.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/session_processor/session_processor_common.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/session_processor/session_processor_default.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/session_queue/__init__.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/session_queue/session_queue_base.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/session_queue/session_queue_sqlite.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/shared/__init__.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/shared/graph.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/shared/pagination.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/shared/sqlite/__init__.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/shared/sqlite/sqlite_common.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/shared/sqlite/sqlite_database.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/shared/sqlite/sqlite_util.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/shared/sqlite_migrator/__init__.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/shared/sqlite_migrator/migrations/__init__.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/shared/sqlite_migrator/migrations/migration_1.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/shared/sqlite_migrator/migrations/migration_10.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/shared/sqlite_migrator/migrations/migration_11.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/shared/sqlite_migrator/migrations/migration_12.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/shared/sqlite_migrator/migrations/migration_13.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/shared/sqlite_migrator/migrations/migration_14.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/shared/sqlite_migrator/migrations/migration_15.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/shared/sqlite_migrator/migrations/migration_2.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/shared/sqlite_migrator/migrations/migration_3.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/shared/sqlite_migrator/migrations/migration_4.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/shared/sqlite_migrator/migrations/migration_5.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/shared/sqlite_migrator/migrations/migration_6.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/shared/sqlite_migrator/migrations/migration_7.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/shared/sqlite_migrator/migrations/migration_8.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/shared/sqlite_migrator/migrations/migration_9.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/shared/sqlite_migrator/sqlite_migrator_common.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/shared/sqlite_migrator/sqlite_migrator_impl.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/style_preset_images/default_style_preset_images/Anime.png +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/style_preset_images/default_style_preset_images/Architectural Visualization.png +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/style_preset_images/default_style_preset_images/Concept Art (Character).png +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/style_preset_images/default_style_preset_images/Concept Art (Fantasy).png +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/style_preset_images/default_style_preset_images/Concept Art (Painterly).png +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/style_preset_images/default_style_preset_images/Concept Art (Sci-Fi).png +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/style_preset_images/default_style_preset_images/Environment Art.png +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/style_preset_images/default_style_preset_images/Illustration.png +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/style_preset_images/default_style_preset_images/Interior Design (Visualization).png +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/style_preset_images/default_style_preset_images/Line Art.png +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/style_preset_images/default_style_preset_images/Photography (Black and White).png +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/style_preset_images/default_style_preset_images/Photography (General).png +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/style_preset_images/default_style_preset_images/Photography (Landscape).png +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/style_preset_images/default_style_preset_images/Photography (Portrait).png +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/style_preset_images/default_style_preset_images/Photography (Studio Lighting).png +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/style_preset_images/default_style_preset_images/Product Rendering.png +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/style_preset_images/default_style_preset_images/Sketch.png +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/style_preset_images/default_style_preset_images/Vehicles.png +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/style_preset_images/default_style_preset_images/__init__.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/style_preset_images/style_preset_images_base.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/style_preset_images/style_preset_images_common.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/style_preset_images/style_preset_images_disk.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/style_preset_records/__init__.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/style_preset_records/default_style_presets.json +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/style_preset_records/style_preset_records_base.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/style_preset_records/style_preset_records_common.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/style_preset_records/style_preset_records_sqlite.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/urls/__init__.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/urls/urls_base.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/urls/urls_default.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/workflow_records/__init__.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/workflow_records/default_workflows/ESRGAN Upscaling with Canny ControlNet.json +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/workflow_records/default_workflows/FLUX Image to Image.json +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/workflow_records/default_workflows/Face Detailer with IP-Adapter & Canny (See Note in Details).json +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/workflow_records/default_workflows/Flux Text to Image.json +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/workflow_records/default_workflows/Multi ControlNet (Canny & Depth).json +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/workflow_records/default_workflows/MultiDiffusion SD1.5.json +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/workflow_records/default_workflows/MultiDiffusion SDXL.json +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/workflow_records/default_workflows/Prompt from File.json +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/workflow_records/default_workflows/SD3.5 Text to Image.json +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/workflow_records/default_workflows/Text to Image - SD1.5.json +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/workflow_records/default_workflows/Text to Image - SDXL.json +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/workflow_records/default_workflows/Text to Image with LoRA.json +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/workflow_records/default_workflows/Tiled Upscaling (Beta).json +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/workflow_records/workflow_records_base.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/workflow_records/workflow_records_common.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/services/workflow_records/workflow_records_sqlite.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/shared/__init__.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/shared/models.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/util/__init__.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/util/controlnet_utils.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/util/custom_openapi.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/util/metaenum.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/util/misc.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/util/model_exclude_null.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/util/profiler.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/util/step_callback.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/util/suppress_output.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/util/thumbnails.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/app/util/ti_utils.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/assets/fonts/inter/Inter-Regular.ttf +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/__init__.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/flux/controlnet/__init__.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/flux/controlnet/controlnet_flux_output.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/flux/controlnet/instantx_controlnet_flux.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/flux/controlnet/state_dict_utils.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/flux/controlnet/xlabs_controlnet_flux.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/flux/controlnet/zero_module.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/flux/custom_block_processor.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/flux/denoise.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/flux/extensions/__init__.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/flux/extensions/base_controlnet_extension.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/flux/extensions/inpaint_extension.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/flux/extensions/instantx_controlnet_extension.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/flux/extensions/xlabs_controlnet_extension.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/flux/extensions/xlabs_ip_adapter_extension.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/flux/ip_adapter/__init__.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/flux/ip_adapter/ip_double_stream_block_processor.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/flux/math.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/flux/model.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/flux/modules/autoencoder.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/flux/modules/conditioner.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/flux/modules/layers.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/flux/sampling_utils.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/flux/util.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/image_util/__init__.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/image_util/basicsr/__init__.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/image_util/basicsr/arch_util.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/image_util/basicsr/rrdbnet_arch.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/image_util/canny.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/image_util/content_shuffle.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/image_util/depth_anything/depth_anything_pipeline.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/image_util/dw_openpose/__init__.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/image_util/dw_openpose/onnxdet.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/image_util/dw_openpose/onnxpose.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/image_util/dw_openpose/utils.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/image_util/dw_openpose/wholebody.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/image_util/grounding_dino/__init__.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/image_util/grounding_dino/detection_result.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/image_util/grounding_dino/grounding_dino_pipeline.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/image_util/hed.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/image_util/infill_methods/cv2_inpaint.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/image_util/infill_methods/lama.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/image_util/infill_methods/mosaic.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/image_util/infill_methods/patchmatch.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/image_util/infill_methods/tile.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/image_util/invisible_watermark.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/image_util/lineart.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/image_util/lineart_anime.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/image_util/mediapipe_face/__init__.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/image_util/mediapipe_face/mediapipe_face_common.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/image_util/mlsd/__init__.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/image_util/mlsd/models/__init__.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/image_util/mlsd/models/mbv2_mlsd_large.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/image_util/mlsd/models/mbv2_mlsd_tiny.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/image_util/mlsd/utils.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/image_util/normal_bae/__init__.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/image_util/normal_bae/nets/NNET.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/image_util/normal_bae/nets/__init__.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/image_util/normal_bae/nets/baseline.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/image_util/normal_bae/nets/submodules/__init__.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/image_util/normal_bae/nets/submodules/decoder.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/image_util/normal_bae/nets/submodules/efficientnet_repo/__init__.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/image_util/normal_bae/nets/submodules/efficientnet_repo/caffe2_benchmark.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/image_util/normal_bae/nets/submodules/efficientnet_repo/caffe2_validate.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/image_util/normal_bae/nets/submodules/efficientnet_repo/geffnet/__init__.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/image_util/normal_bae/nets/submodules/efficientnet_repo/geffnet/activations/__init__.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/image_util/normal_bae/nets/submodules/efficientnet_repo/geffnet/activations/activations.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/image_util/normal_bae/nets/submodules/efficientnet_repo/geffnet/activations/activations_jit.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/image_util/normal_bae/nets/submodules/efficientnet_repo/geffnet/activations/activations_me.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/image_util/normal_bae/nets/submodules/efficientnet_repo/geffnet/config.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/image_util/normal_bae/nets/submodules/efficientnet_repo/geffnet/conv2d_layers.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/image_util/normal_bae/nets/submodules/efficientnet_repo/geffnet/efficientnet_builder.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/image_util/normal_bae/nets/submodules/efficientnet_repo/geffnet/gen_efficientnet.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/image_util/normal_bae/nets/submodules/efficientnet_repo/geffnet/helpers.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/image_util/normal_bae/nets/submodules/efficientnet_repo/geffnet/mobilenetv3.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/image_util/normal_bae/nets/submodules/efficientnet_repo/geffnet/model_factory.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/image_util/normal_bae/nets/submodules/efficientnet_repo/geffnet/version.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/image_util/normal_bae/nets/submodules/efficientnet_repo/hubconf.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/image_util/normal_bae/nets/submodules/efficientnet_repo/onnx_export.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/image_util/normal_bae/nets/submodules/efficientnet_repo/onnx_optimize.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/image_util/normal_bae/nets/submodules/efficientnet_repo/onnx_to_caffe.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/image_util/normal_bae/nets/submodules/efficientnet_repo/onnx_validate.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/image_util/normal_bae/nets/submodules/efficientnet_repo/setup.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/image_util/normal_bae/nets/submodules/efficientnet_repo/utils.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/image_util/normal_bae/nets/submodules/efficientnet_repo/validate.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/image_util/normal_bae/nets/submodules/encoder.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/image_util/normal_bae/nets/submodules/submodules.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/image_util/pidi/__init__.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/image_util/pidi/model.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/image_util/pngwriter.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/image_util/realesrgan/__init__.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/image_util/realesrgan/realesrgan.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/image_util/safety_checker.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/image_util/segment_anything/__init__.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/image_util/segment_anything/mask_refinement.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/image_util/segment_anything/segment_anything_pipeline.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/image_util/util.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/ip_adapter/__init__.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/ip_adapter/ip_adapter.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/ip_adapter/ip_attention_weights.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/ip_adapter/resampler.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/lora/__init__.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/lora/conversions/__init__.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/lora/conversions/flux_kohya_lora_conversion_utils.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/lora/conversions/flux_lora_constants.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/lora/conversions/sd_lora_conversion_utils.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/lora/conversions/sdxl_lora_conversion_utils.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/lora/layers/__init__.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/lora/layers/any_lora_layer.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/lora/layers/concatenated_lora_layer.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/lora/layers/full_layer.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/lora/layers/ia3_layer.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/lora/layers/loha_layer.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/lora/layers/lokr_layer.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/lora/layers/lora_layer.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/lora/layers/lora_layer_base.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/lora/layers/norm_layer.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/lora/layers/utils.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/lora/lora_model_raw.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/lora/lora_patcher.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/lora/sidecar_layers/__init__.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/lora/sidecar_layers/concatenated_lora/__init__.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/lora/sidecar_layers/concatenated_lora/concatenated_lora_linear_sidecar_layer.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/lora/sidecar_layers/lora/__init__.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/lora/sidecar_layers/lora/lora_linear_sidecar_layer.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/lora/sidecar_layers/lora_sidecar_layer.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/lora/sidecar_layers/lora_sidecar_module.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/model_hash/hash_validator.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/model_hash/model_hash.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/model_manager/__init__.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/model_manager/config.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/model_manager/load/__init__.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/model_manager/load/load_base.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/model_manager/load/memory_snapshot.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/model_manager/load/model_cache/__init__.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/model_manager/load/model_cache/model_cache_base.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/model_manager/load/model_cache/model_cache_default.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/model_manager/load/model_cache/model_locker.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/model_manager/load/model_loader_registry.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/model_manager/load/model_loaders/__init__.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/model_manager/load/model_loaders/clip_vision.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/model_manager/load/model_loaders/controlnet.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/model_manager/load/model_loaders/generic_diffusers.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/model_manager/load/model_loaders/ip_adapter.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/model_manager/load/model_loaders/lora.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/model_manager/load/model_loaders/onnx.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/model_manager/load/model_loaders/spandrel_image_to_image.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/model_manager/load/model_loaders/stable_diffusion.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/model_manager/load/model_loaders/textual_inversion.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/model_manager/load/model_loaders/vae.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/model_manager/load/model_util.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/model_manager/load/optimizations.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/model_manager/merge.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/model_manager/metadata/__init__.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/model_manager/metadata/fetch/__init__.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/model_manager/metadata/fetch/fetch_base.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/model_manager/metadata/fetch/huggingface.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/model_manager/metadata/metadata_base.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/model_manager/probe.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/model_manager/search.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/model_manager/util/libc_util.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/model_manager/util/model_util.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/model_manager/util/select_hf_files.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/model_patcher.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/onnx/onnx_runtime.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/quantization/__init__.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/quantization/bnb_llm_int8.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/quantization/bnb_nf4.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/quantization/gguf/ggml_tensor.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/quantization/gguf/loaders.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/quantization/gguf/utils.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/quantization/scripts/load_flux_model_bnb_llm_int8.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/quantization/scripts/load_flux_model_bnb_nf4.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/quantization/scripts/quantize_t5_xxl_bnb_llm_int8.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/raw_model.py +0 -0
- {invokeai-5.4.1rc2/invokeai/backend/tiles → invokeai-5.4.2/invokeai/backend/sd3}/__init__.py +0 -0
- {invokeai-5.4.1rc2/invokeai/frontend/cli → invokeai-5.4.2/invokeai/backend/sd3/extensions}/__init__.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/spandrel_image_to_image_model.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/stable_diffusion/__init__.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/stable_diffusion/denoise_context.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/stable_diffusion/diffusers_pipeline.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/stable_diffusion/diffusion/__init__.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/stable_diffusion/diffusion/conditioning_data.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/stable_diffusion/diffusion/custom_atttention.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/stable_diffusion/diffusion/regional_ip_data.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/stable_diffusion/diffusion/regional_prompt_data.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/stable_diffusion/diffusion/shared_invokeai_diffusion.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/stable_diffusion/diffusion/unet_attention_patcher.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/stable_diffusion/diffusion_backend.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/stable_diffusion/extension_callback_type.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/stable_diffusion/extensions/base.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/stable_diffusion/extensions/controlnet.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/stable_diffusion/extensions/freeu.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/stable_diffusion/extensions/inpaint.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/stable_diffusion/extensions/inpaint_model.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/stable_diffusion/extensions/lora.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/stable_diffusion/extensions/preview.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/stable_diffusion/extensions/rescale_cfg.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/stable_diffusion/extensions/seamless.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/stable_diffusion/extensions/t2i_adapter.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/stable_diffusion/extensions_manager.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/stable_diffusion/multi_diffusion_pipeline.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/stable_diffusion/schedulers/__init__.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/stable_diffusion/schedulers/schedulers.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/stable_diffusion/vae_tiling.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/textual_inversion.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/tiles/tiles.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/tiles/utils.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/util/__init__.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/util/attention.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/util/build_line.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/util/calc_tensor_size.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/util/catch_sigint.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/util/db_maintenance.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/util/devices.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/util/hotfixes.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/util/logging.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/util/mask.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/util/mps_fixes.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/util/original_weights_storage.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/util/silence_warnings.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/util/test_utils.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/backend/util/util.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/configs/controlnet/cldm_v15.yaml +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/configs/controlnet/cldm_v21.yaml +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/configs/stable-diffusion/sd_xl_base.yaml +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/configs/stable-diffusion/sd_xl_inpaint.yaml +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/configs/stable-diffusion/sd_xl_refiner.yaml +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/configs/stable-diffusion/v1-finetune.yaml +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/configs/stable-diffusion/v1-finetune_style.yaml +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/configs/stable-diffusion/v1-inference-v.yaml +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/configs/stable-diffusion/v1-inference.yaml +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/configs/stable-diffusion/v1-inpainting-inference.yaml +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/configs/stable-diffusion/v1-m1-finetune.yaml +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/configs/stable-diffusion/v2-inference-v.yaml +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/configs/stable-diffusion/v2-inference.yaml +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/configs/stable-diffusion/v2-inpainting-inference-v.yaml +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/configs/stable-diffusion/v2-inpainting-inference.yaml +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/configs/stable-diffusion/v2-midas-inference.yaml +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/frontend/__init__.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/frontend/cli/arg_parser.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/frontend/install/__init__.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/frontend/install/import_images.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/frontend/web/__init__.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/frontend/web/dist/assets/App-DEu4J2pT.css +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/frontend/web/dist/assets/ThemeLocaleProvider-B2NxUfIp.css +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/frontend/web/dist/assets/commercial-license-bg-C_dHp7on.png +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/frontend/web/dist/assets/denoising-strength-4mznP2tj.png +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/frontend/web/dist/assets/images/commercial-license-bg.png +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/frontend/web/dist/assets/images/denoising-strength.png +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/frontend/web/dist/assets/images/invoke-alert-favicon.svg +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/frontend/web/dist/assets/images/invoke-avatar-circle.svg +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/frontend/web/dist/assets/images/invoke-avatar-square.svg +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/frontend/web/dist/assets/images/invoke-favicon.png +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/frontend/web/dist/assets/images/invoke-favicon.svg +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/frontend/web/dist/assets/images/invoke-key-char-lrg.svg +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/frontend/web/dist/assets/images/invoke-key-char-sml.svg +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/frontend/web/dist/assets/images/invoke-key-wht-lrg.svg +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/frontend/web/dist/assets/images/invoke-key-wht-sml.svg +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/frontend/web/dist/assets/images/invoke-symbol-char-lrg.svg +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/frontend/web/dist/assets/images/invoke-symbol-char-sml.svg +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/frontend/web/dist/assets/images/invoke-symbol-wht-lrg.svg +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/frontend/web/dist/assets/images/invoke-symbol-wht-sml.svg +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/frontend/web/dist/assets/images/invoke-symbol-ylw-lrg.svg +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/frontend/web/dist/assets/images/invoke-tag-char-lrg.svg +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/frontend/web/dist/assets/images/invoke-tag-char-sml.svg +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/frontend/web/dist/assets/images/invoke-tag-lrg.svg +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/frontend/web/dist/assets/images/invoke-tag-sml.svg +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/frontend/web/dist/assets/images/invoke-wordmark-charcoal.svg +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/frontend/web/dist/assets/images/invoke-wordmark-white.svg +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/frontend/web/dist/assets/images/mask.svg +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/frontend/web/dist/assets/inter-cyrillic-ext-wght-normal-B2xhLi22.woff2 +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/frontend/web/dist/assets/inter-cyrillic-wght-normal-CMZtQduZ.woff2 +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/frontend/web/dist/assets/inter-greek-ext-wght-normal-CGAr0uHJ.woff2 +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/frontend/web/dist/assets/inter-greek-wght-normal-CaVNZxsx.woff2 +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/frontend/web/dist/assets/inter-latin-ext-wght-normal-CFHvXkgd.woff2 +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/frontend/web/dist/assets/inter-latin-wght-normal-C2S99t-D.woff2 +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/frontend/web/dist/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2 +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/frontend/web/dist/assets/worker-Dywf1EVc.js +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/frontend/web/dist/locales/ar.json +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/frontend/web/dist/locales/az.json +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/frontend/web/dist/locales/bg.json +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/frontend/web/dist/locales/fi.json +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/frontend/web/dist/locales/he.json +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/frontend/web/dist/locales/hu.json +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/frontend/web/dist/locales/ko.json +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/frontend/web/dist/locales/mn.json +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/frontend/web/dist/locales/nl.json +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/frontend/web/dist/locales/pl.json +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/frontend/web/dist/locales/pt.json +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/frontend/web/dist/locales/pt_BR.json +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/frontend/web/dist/locales/ro.json +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/frontend/web/dist/locales/sv.json +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/frontend/web/dist/locales/tr.json +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/frontend/web/dist/locales/uk.json +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/frontend/web/dist/locales/zh_Hant.json +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/frontend/web/scripts/clean_translations.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/frontend/web/static/docs/invoke-favicon-docs.svg +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/invocation_api/__init__.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/invokeai/version/__init__.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/setup.cfg +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/tests/test_config.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/tests/test_docs.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/tests/test_graph_execution_state.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/tests/test_invocation_cache_memory.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/tests/test_item_storage_memory.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/tests/test_model_hash.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/tests/test_model_probe.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/tests/test_model_search.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/tests/test_node_graph.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/tests/test_object_serializer_disk.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/tests/test_path.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/tests/test_profiler.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/tests/test_session_queue.py +0 -0
- {invokeai-5.4.1rc2 → invokeai-5.4.2}/tests/test_sqlite_migrator.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: InvokeAI
|
|
3
|
-
Version: 5.4.
|
|
3
|
+
Version: 5.4.2
|
|
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
|
|
@@ -246,7 +246,6 @@ Requires-Dist: datasets
|
|
|
246
246
|
Requires-Dist: Deprecated
|
|
247
247
|
Requires-Dist: dnspython
|
|
248
248
|
Requires-Dist: dynamicprompts
|
|
249
|
-
Requires-Dist: easing-functions
|
|
250
249
|
Requires-Dist: einops
|
|
251
250
|
Requires-Dist: facexlib
|
|
252
251
|
Requires-Dist: matplotlib!=3.9.1
|
|
@@ -33,6 +33,7 @@ invokeai/app/invocations/canny.py
|
|
|
33
33
|
invokeai/app/invocations/collections.py
|
|
34
34
|
invokeai/app/invocations/color_map.py
|
|
35
35
|
invokeai/app/invocations/compel.py
|
|
36
|
+
invokeai/app/invocations/composition-nodes.py
|
|
36
37
|
invokeai/app/invocations/constants.py
|
|
37
38
|
invokeai/app/invocations/content_shuffle.py
|
|
38
39
|
invokeai/app/invocations/controlnet_image_processors.py
|
|
@@ -78,6 +79,7 @@ invokeai/app/invocations/prompt.py
|
|
|
78
79
|
invokeai/app/invocations/resize_latents.py
|
|
79
80
|
invokeai/app/invocations/scheduler.py
|
|
80
81
|
invokeai/app/invocations/sd3_denoise.py
|
|
82
|
+
invokeai/app/invocations/sd3_image_to_latents.py
|
|
81
83
|
invokeai/app/invocations/sd3_latents_to_image.py
|
|
82
84
|
invokeai/app/invocations/sd3_model_loader.py
|
|
83
85
|
invokeai/app/invocations/sd3_text_encoder.py
|
|
@@ -300,6 +302,7 @@ invokeai/backend/flux/modules/conditioner.py
|
|
|
300
302
|
invokeai/backend/flux/modules/layers.py
|
|
301
303
|
invokeai/backend/image_util/__init__.py
|
|
302
304
|
invokeai/backend/image_util/canny.py
|
|
305
|
+
invokeai/backend/image_util/composition.py
|
|
303
306
|
invokeai/backend/image_util/content_shuffle.py
|
|
304
307
|
invokeai/backend/image_util/hed.py
|
|
305
308
|
invokeai/backend/image_util/invisible_watermark.py
|
|
@@ -308,6 +311,7 @@ invokeai/backend/image_util/lineart_anime.py
|
|
|
308
311
|
invokeai/backend/image_util/pngwriter.py
|
|
309
312
|
invokeai/backend/image_util/safety_checker.py
|
|
310
313
|
invokeai/backend/image_util/util.py
|
|
314
|
+
invokeai/backend/image_util/assets/CIELab_to_UPLab.icc
|
|
311
315
|
invokeai/backend/image_util/basicsr/__init__.py
|
|
312
316
|
invokeai/backend/image_util/basicsr/arch_util.py
|
|
313
317
|
invokeai/backend/image_util/basicsr/rrdbnet_arch.py
|
|
@@ -451,6 +455,9 @@ invokeai/backend/quantization/gguf/utils.py
|
|
|
451
455
|
invokeai/backend/quantization/scripts/load_flux_model_bnb_llm_int8.py
|
|
452
456
|
invokeai/backend/quantization/scripts/load_flux_model_bnb_nf4.py
|
|
453
457
|
invokeai/backend/quantization/scripts/quantize_t5_xxl_bnb_llm_int8.py
|
|
458
|
+
invokeai/backend/sd3/__init__.py
|
|
459
|
+
invokeai/backend/sd3/extensions/__init__.py
|
|
460
|
+
invokeai/backend/sd3/extensions/inpaint_extension.py
|
|
454
461
|
invokeai/backend/stable_diffusion/__init__.py
|
|
455
462
|
invokeai/backend/stable_diffusion/denoise_context.py
|
|
456
463
|
invokeai/backend/stable_diffusion/diffusers_pipeline.py
|
|
@@ -519,13 +526,13 @@ invokeai/frontend/install/__init__.py
|
|
|
519
526
|
invokeai/frontend/install/import_images.py
|
|
520
527
|
invokeai/frontend/web/__init__.py
|
|
521
528
|
invokeai/frontend/web/dist/index.html
|
|
522
|
-
invokeai/frontend/web/dist/assets/App-
|
|
529
|
+
invokeai/frontend/web/dist/assets/App-CObZXgPX.js
|
|
523
530
|
invokeai/frontend/web/dist/assets/App-DEu4J2pT.css
|
|
524
531
|
invokeai/frontend/web/dist/assets/ThemeLocaleProvider-B2NxUfIp.css
|
|
525
|
-
invokeai/frontend/web/dist/assets/ThemeLocaleProvider-
|
|
532
|
+
invokeai/frontend/web/dist/assets/ThemeLocaleProvider-DOBIgoHN.js
|
|
526
533
|
invokeai/frontend/web/dist/assets/commercial-license-bg-C_dHp7on.png
|
|
527
534
|
invokeai/frontend/web/dist/assets/denoising-strength-4mznP2tj.png
|
|
528
|
-
invokeai/frontend/web/dist/assets/index-
|
|
535
|
+
invokeai/frontend/web/dist/assets/index-DbW4l0Z-.js
|
|
529
536
|
invokeai/frontend/web/dist/assets/inter-cyrillic-ext-wght-normal-B2xhLi22.woff2
|
|
530
537
|
invokeai/frontend/web/dist/assets/inter-cyrillic-wght-normal-CMZtQduZ.woff2
|
|
531
538
|
invokeai/frontend/web/dist/assets/inter-greek-ext-wght-normal-CGAr0uHJ.woff2
|
|
@@ -533,7 +540,7 @@ invokeai/frontend/web/dist/assets/inter-greek-wght-normal-CaVNZxsx.woff2
|
|
|
533
540
|
invokeai/frontend/web/dist/assets/inter-latin-ext-wght-normal-CFHvXkgd.woff2
|
|
534
541
|
invokeai/frontend/web/dist/assets/inter-latin-wght-normal-C2S99t-D.woff2
|
|
535
542
|
invokeai/frontend/web/dist/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2
|
|
536
|
-
invokeai/frontend/web/dist/assets/useTranslation-
|
|
543
|
+
invokeai/frontend/web/dist/assets/useTranslation-DY3UydoH.js
|
|
537
544
|
invokeai/frontend/web/dist/assets/worker-Dywf1EVc.js
|
|
538
545
|
invokeai/frontend/web/dist/assets/images/commercial-license-bg.png
|
|
539
546
|
invokeai/frontend/web/dist/assets/images/denoising-strength.png
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: InvokeAI
|
|
3
|
-
Version: 5.4.
|
|
3
|
+
Version: 5.4.2
|
|
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
|
|
@@ -246,7 +246,6 @@ Requires-Dist: datasets
|
|
|
246
246
|
Requires-Dist: Deprecated
|
|
247
247
|
Requires-Dist: dnspython
|
|
248
248
|
Requires-Dist: dynamicprompts
|
|
249
|
-
Requires-Dist: easing-functions
|
|
250
249
|
Requires-Dist: einops
|
|
251
250
|
Requires-Dist: facexlib
|
|
252
251
|
Requires-Dist: matplotlib!=3.9.1
|
|
@@ -63,6 +63,7 @@ class Classification(str, Enum, metaclass=MetaEnum):
|
|
|
63
63
|
- `Prototype`: The invocation is not yet stable and may be removed from the application at any time. Workflows built around this invocation may break, and we are *not* committed to supporting this invocation.
|
|
64
64
|
- `Deprecated`: The invocation is deprecated and may be removed in a future version.
|
|
65
65
|
- `Internal`: The invocation is not intended for use by end-users. It may be changed or removed at any time, but is exposed for users to play with.
|
|
66
|
+
- `Special`: The invocation is a special case and does not fit into any of the other classifications.
|
|
66
67
|
"""
|
|
67
68
|
|
|
68
69
|
Stable = "stable"
|
|
@@ -70,6 +71,7 @@ class Classification(str, Enum, metaclass=MetaEnum):
|
|
|
70
71
|
Prototype = "prototype"
|
|
71
72
|
Deprecated = "deprecated"
|
|
72
73
|
Internal = "internal"
|
|
74
|
+
Special = "special"
|
|
73
75
|
|
|
74
76
|
|
|
75
77
|
class UIConfigBase(BaseModel):
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
from typing import Optional, Union
|
|
2
|
+
|
|
3
|
+
import numpy as np
|
|
4
|
+
import torch
|
|
5
|
+
import torchvision.transforms as T
|
|
6
|
+
from PIL import Image
|
|
7
|
+
from torchvision.transforms.functional import resize as tv_resize
|
|
8
|
+
|
|
9
|
+
from invokeai.app.invocations.baseinvocation import BaseInvocation, invocation
|
|
10
|
+
from invokeai.app.invocations.fields import FieldDescriptions, ImageField, Input, InputField, LatentsField
|
|
11
|
+
from invokeai.app.invocations.primitives import LatentsOutput
|
|
12
|
+
from invokeai.app.services.shared.invocation_context import InvocationContext
|
|
13
|
+
from invokeai.backend.stable_diffusion.diffusers_pipeline import image_resized_to_grid_as_tensor
|
|
14
|
+
from invokeai.backend.util.devices import TorchDevice
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
def slerp(
|
|
18
|
+
t: Union[float, np.ndarray],
|
|
19
|
+
v0: Union[torch.Tensor, np.ndarray],
|
|
20
|
+
v1: Union[torch.Tensor, np.ndarray],
|
|
21
|
+
device: torch.device,
|
|
22
|
+
DOT_THRESHOLD: float = 0.9995,
|
|
23
|
+
):
|
|
24
|
+
"""
|
|
25
|
+
Spherical linear interpolation
|
|
26
|
+
Args:
|
|
27
|
+
t (float/np.ndarray): Float value between 0.0 and 1.0
|
|
28
|
+
v0 (np.ndarray): Starting vector
|
|
29
|
+
v1 (np.ndarray): Final vector
|
|
30
|
+
DOT_THRESHOLD (float): Threshold for considering the two vectors as
|
|
31
|
+
colineal. Not recommended to alter this.
|
|
32
|
+
Returns:
|
|
33
|
+
v2 (np.ndarray): Interpolation vector between v0 and v1
|
|
34
|
+
"""
|
|
35
|
+
inputs_are_torch = False
|
|
36
|
+
if not isinstance(v0, np.ndarray):
|
|
37
|
+
inputs_are_torch = True
|
|
38
|
+
v0 = v0.detach().cpu().numpy()
|
|
39
|
+
if not isinstance(v1, np.ndarray):
|
|
40
|
+
inputs_are_torch = True
|
|
41
|
+
v1 = v1.detach().cpu().numpy()
|
|
42
|
+
|
|
43
|
+
dot = np.sum(v0 * v1 / (np.linalg.norm(v0) * np.linalg.norm(v1)))
|
|
44
|
+
if np.abs(dot) > DOT_THRESHOLD:
|
|
45
|
+
v2 = (1 - t) * v0 + t * v1
|
|
46
|
+
else:
|
|
47
|
+
theta_0 = np.arccos(dot)
|
|
48
|
+
sin_theta_0 = np.sin(theta_0)
|
|
49
|
+
theta_t = theta_0 * t
|
|
50
|
+
sin_theta_t = np.sin(theta_t)
|
|
51
|
+
s0 = np.sin(theta_0 - theta_t) / sin_theta_0
|
|
52
|
+
s1 = sin_theta_t / sin_theta_0
|
|
53
|
+
v2 = s0 * v0 + s1 * v1
|
|
54
|
+
|
|
55
|
+
if inputs_are_torch:
|
|
56
|
+
v2 = torch.from_numpy(v2).to(device)
|
|
57
|
+
|
|
58
|
+
return v2
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
@invocation(
|
|
62
|
+
"lblend",
|
|
63
|
+
title="Blend Latents",
|
|
64
|
+
tags=["latents", "blend", "mask"],
|
|
65
|
+
category="latents",
|
|
66
|
+
version="1.1.0",
|
|
67
|
+
)
|
|
68
|
+
class BlendLatentsInvocation(BaseInvocation):
|
|
69
|
+
"""Blend two latents using a given alpha. If a mask is provided, the second latents will be masked before blending.
|
|
70
|
+
Latents must have same size. Masking functionality added by @dwringer."""
|
|
71
|
+
|
|
72
|
+
latents_a: LatentsField = InputField(description=FieldDescriptions.latents, input=Input.Connection)
|
|
73
|
+
latents_b: LatentsField = InputField(description=FieldDescriptions.latents, input=Input.Connection)
|
|
74
|
+
mask: Optional[ImageField] = InputField(default=None, description="Mask for blending in latents B")
|
|
75
|
+
alpha: float = InputField(ge=0, default=0.5, description=FieldDescriptions.blend_alpha)
|
|
76
|
+
|
|
77
|
+
def prep_mask_tensor(self, mask_image: Image.Image) -> torch.Tensor:
|
|
78
|
+
if mask_image.mode != "L":
|
|
79
|
+
mask_image = mask_image.convert("L")
|
|
80
|
+
mask_tensor = image_resized_to_grid_as_tensor(mask_image, normalize=False)
|
|
81
|
+
if mask_tensor.dim() == 3:
|
|
82
|
+
mask_tensor = mask_tensor.unsqueeze(0)
|
|
83
|
+
return mask_tensor
|
|
84
|
+
|
|
85
|
+
def replace_tensor_from_masked_tensor(
|
|
86
|
+
self, tensor: torch.Tensor, other_tensor: torch.Tensor, mask_tensor: torch.Tensor
|
|
87
|
+
):
|
|
88
|
+
output = tensor.clone()
|
|
89
|
+
mask_tensor = mask_tensor.expand(output.shape)
|
|
90
|
+
if output.dtype != torch.float16:
|
|
91
|
+
output = torch.add(output, mask_tensor * torch.sub(other_tensor, tensor))
|
|
92
|
+
else:
|
|
93
|
+
output = torch.add(output, mask_tensor.half() * torch.sub(other_tensor, tensor))
|
|
94
|
+
return output
|
|
95
|
+
|
|
96
|
+
def invoke(self, context: InvocationContext) -> LatentsOutput:
|
|
97
|
+
latents_a = context.tensors.load(self.latents_a.latents_name)
|
|
98
|
+
latents_b = context.tensors.load(self.latents_b.latents_name)
|
|
99
|
+
if self.mask is None:
|
|
100
|
+
mask_tensor = torch.zeros(latents_a.shape[-2:])
|
|
101
|
+
else:
|
|
102
|
+
mask_tensor = self.prep_mask_tensor(context.images.get_pil(self.mask.image_name))
|
|
103
|
+
mask_tensor = tv_resize(mask_tensor, latents_a.shape[-2:], T.InterpolationMode.BILINEAR, antialias=False)
|
|
104
|
+
|
|
105
|
+
latents_b = self.replace_tensor_from_masked_tensor(latents_b, latents_a, mask_tensor)
|
|
106
|
+
|
|
107
|
+
if latents_a.shape != latents_b.shape:
|
|
108
|
+
raise ValueError("Latents to blend must be the same size.")
|
|
109
|
+
|
|
110
|
+
device = TorchDevice.choose_torch_device()
|
|
111
|
+
|
|
112
|
+
# blend
|
|
113
|
+
blended_latents = slerp(self.alpha, latents_a, latents_b, device)
|
|
114
|
+
|
|
115
|
+
# https://discuss.huggingface.co/t/memory-usage-by-later-pipeline-stages/23699
|
|
116
|
+
blended_latents = blended_latents.to("cpu")
|
|
117
|
+
torch.cuda.empty_cache()
|
|
118
|
+
|
|
119
|
+
name = context.tensors.save(tensor=blended_latents)
|
|
120
|
+
return LatentsOutput.build(latents_name=name, latents=blended_latents)
|
|
@@ -95,6 +95,7 @@ class CompelInvocation(BaseInvocation):
|
|
|
95
95
|
ti_manager,
|
|
96
96
|
),
|
|
97
97
|
):
|
|
98
|
+
context.util.signal_progress("Building conditioning")
|
|
98
99
|
assert isinstance(text_encoder, CLIPTextModel)
|
|
99
100
|
assert isinstance(tokenizer, CLIPTokenizer)
|
|
100
101
|
compel = Compel(
|
|
@@ -191,6 +192,7 @@ class SDXLPromptInvocationBase:
|
|
|
191
192
|
ti_manager,
|
|
192
193
|
),
|
|
193
194
|
):
|
|
195
|
+
context.util.signal_progress("Building conditioning")
|
|
194
196
|
assert isinstance(text_encoder, (CLIPTextModel, CLIPTextModelWithProjection))
|
|
195
197
|
assert isinstance(tokenizer, CLIPTokenizer)
|
|
196
198
|
|