* feat: add remove_performance_lora method
* feat: use class PerformanceLoRA instead of strings in config
* refactor: cleanup flags, use __member__ to check if enums contains key
* feat: only filter lora of selected performance instead of all performance LoRAs
* fix: disable intermediate results for all restricted performances
too fast for Gradio, which becomes a bottleneck
* refactor: rename parse_json to to_json, rename parse_string to to_string
* feat: use speed steps as default instead of hardcoded 30
* feat: add method to_steps to Performance
* refactor: remove method ordinal_suffix, not needed anymore
* feat: only filter lora of selected performance instead of all performance LoRAs
both metadata and history log
* feat: do not filter LoRAs in metadata parser but rather in metadata load action
* feat: add performance loras to the end of the loras array
* fix: resolve circular dependency for unit tests
* feat: allow multiple matches for each token, optimize and extract method cleanup_prompt
* fix: update unit tests
* feat: ignore custom wildcards
* add nsfw image censoring
activatable via config, uses CompVis/stable-diffusion-safety-checker
* fix progressbar call for nsfw output
* use config to set cache dir for safety checker
* add checkbox black_out_nsfw
makes both enabling via config and checkbox possible, where config overrides the checkbox value
* fix: add missing diffusers package
* feat: extract safety checker, remove dependency to diffusers
* feat: make code compatible again after merge with main
* feat: move censor to extras, optimize safety checker file handling
* refactor: rename folder safety_checker_models to safety_checker
* fixed typo in HTML (extra </meta> tag)
* refactor: remove closing slash for meta tag
as of specification in https://html.com/tags/meta/, meta tagas are null elements:
This element must not contain any content, and does not need a closing tag.
---------
Co-authored-by: Manuel Schmid <9307310+mashb1t@users.noreply.github.com>
* Update async_worker.py
* Update private_logger.py
* refactor: only show full prompt details in logs, exclude from image metadata
---------
Co-authored-by: Manuel Schmid <9307310+mashb1t@users.noreply.github.com>
Co-authored-by: Manuel Schmid <dev@mash1t.de>
* Revert "fix: use LF as line breaks for Docker entrypoint.sh (#2843)" (#2865)
False alarm, worked as intended before. Sorry for the fuzz.
This reverts commit d16a54edd6.
* feat: add VAE select
* feat: use different default label, add translation
* fix: do not reload model when VAE stays the same
* refactor: code cleanup
* feat: add metadata handling
* fix: load image number from preset (#2611)
* fix: add default_image_number to preset handling
* fix: use minimum image number of preset and config to prevent UI overflow
* fix: use correct base dimensions for outpaint mask padding (#2612)
* fix: add Civitai compatibility for LoRAs in a1111 metadata scheme by switching schema (#2615)
* feat: update sha256 generation functions
29be1da7cf/modules/hashes.py
* feat: add compatibility for LoRAs in a1111 metadata scheme
* feat: add backwards compatibility
* refactor: extract remove_special_loras
* fix: correctly apply LoRA weight for legacy schema
* docs: bump version number to 2.3.1, add changelog (#2616)
* feat:support download huggingface files from a mirror site
---------
Co-authored-by: Manuel Schmid <9307310+mashb1t@users.noreply.github.com>
* Raise Error on bad decode
* Move task arg pop to try block
* fix: prevent empty task from getting queued
---------
Co-authored-by: Manuel Schmid <dev@mash1t.de>
* add preset selection
uses meta parsing to set presets in user session (UI elements only)
* add LoRA handling
* use default config as fallback value
* add preset refresh on "Refresh All Files" click
* add special handling for default_styles and default_aspect_ratio
* sort styles after preset change
* code cleanup
* download missing models from preset
* set default refiner to "None" in preset realistic
* use state_is_generating for preset selection change
* DRY output parameter handling
* feat: add argument --disable-preset-selection
useful for cloud provisioning to prevent model switches and keep models loaded
* feat: keep prompt when not set in preset, use more robust syntax
* fix: add default return values when preset download is disabled
https://github.com/mashb1t/Fooocus/issues/20
* feat: add translation for preset label
* refactor: unify preset loading methods in config
* refactor: code cleanup
* Fix typo
* Scan wildcards recursively
Adds a method for getting the top-most occurrence of a given file in a directory tree
* Use already existing method for locating files
* Fix issue with incorrect files being loaded
When using the `name-filter` parameter in `get_model_filenames`, it doesn't guarantee the best match to be in the first index. This change adds a step to ensure the correct wildcard is being loaded.
* feat: make path for wildcards configurable, cache filenames on refresh files, rename button variable
* Fix formatting
---------
Co-authored-by: Manuel Schmid <manuel.schmid@odt.net>
* Added options to set the Gradio cache path and clear cache on launch.
* Renamed cache to temp
* clear temp
* feat: do not delete temp folder but only clean content
also use fallback to system temp dir
see 6683ab2589/gradio/utils.py (L1151)
* refactor: code cleanup
* feat: unify arg --temp-path and new temp_path config value
* feat: change default temp dir from gradio to fooocus
* refactor: move temp path method definition and configs
* feat: rename get_temp_path to init_temp_path
---------
Co-authored-by: Magee <koshms3@gmail.com>
Co-authored-by: steveyourcreativepeople <steve@yourcreativepeople.com>
Co-authored-by: Manuel Schmid <manuel.schmid@odt.net>
* Added options to set the Gradio cache path and clear cache on launch.
* Renamed cache to temp
* clear temp
* feat: do not delete temp folder but only clean content
also use fallback to system temp dir
see 6683ab2589/gradio/utils.py (L1151)
* refactor: code cleanup
* feat: unify arg --temp-path and new temp_path config value
* feat: change default temp dir from gradio to fooocus
* refactor: move temp path method definition and configs
* feat: rename get_temp_path to init_temp_path
---------
Co-authored-by: steveyourcreativepeople <steve@yourcreativepeople.com>
Co-authored-by: Manuel Schmid <manuel.schmid@odt.net>
* fix problem
1. In partial redrawing, when refiner is empty, enable use_synthetic_refiner. The default switching timing of 0.5 is too early, which is now modified to SDXL default of 0.8.
2. When using custom steps, the calculation of switching timing is wrong. Now it is modified to calculate "steps x timing" after custom steps are used.
* fix: parse width and height as int when applying metadata (#2452)
fixes an issue with A1111 metadata scheme where width and height are strings after splitting resolution
* fix: do not attempt to remove non-existing image grid file (#2456)
image grid is actually not an image here but a numpy array, as the grid isn't saved by default
* feat: add troubleshooting guide to bug report template again (#2489)
---------
Co-authored-by: Manuel Schmid <9307310+mashb1t@users.noreply.github.com>
Co-authored-by: Manuel Schmid <manuel.schmid@odt.net>
* fix: parse width and height as int when applying metadata (#2452)
fixes an issue with A1111 metadata scheme where width and height are strings after splitting resolution
* feat: use jpeg instead of jpg, use enums instead of strings
* feat: add metadata hint to history log
* feat: add actual metadata_scheme to log instead of only boolean
* feat: add steps to log if they were overridden
* fix: pass copy of metadata
prevents LoRA file extension removal in history log caused by passing reference to meta_parser fooocus scheme