* 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
* 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>
* feat: add metadata logging for images
inspired by https://github.com/MoonRide303/Fooocus-MRE
* feat: add config and checkbox for save_metadata_to_images
* feat: add argument disable_metadata
* feat: add support for A1111 metadata schema
cf2772fab0/modules/processing.py (L672)
* feat: add model hash support for a1111
* feat: use resolved prompts with included expansion and styles for a1111 metadata
* fix: code cleanup and resolved prompt fixes
* feat: add config metadata_created_by
* fix: use stting isntead of quote wrap for A1111 created_by
* fix: correctlyy hide/show metadata schema on app start
* fix: do not generate hashes when arg --disable-metadata is used
* refactor: rename metadata_schema to metadata_scheme
* fix: use pnginfo "parameters" insteadf of "Comments"
see https://github.com/RupertAvery/DiffusionToolkit/issues/202 and cf2772fab0/modules/processing.py (L939)
* feat: add resolved prompts to metadata
* fix: use correct default value in metadata check for created_by
* wip: add metadata mapping, reading and writing
applying data after reading currently not functional for A1111
* feat: rename metadata tab and import button label
* feat: map basic information for scheme A1111
* wip: optimize handling for metadata in Gradio calls
* feat: add enums for Performance, Steps and StepsUOV
also move MetadataSchema enum to prevent circular dependency
* fix: correctly map resolution, use empty styles for A1111
* chore: code cleanup
* feat: add A1111 prompt style detection
only detects one style as Fooocus doesn't wrap {prompt} with the whole style, but has a separate prompt string for each style
* wip: add prompt style extraction for A1111 scheme
* feat: sort styles after metadata import
* refactor: use central flag for LoRA count
* refactor: use central flag for ControlNet image count
* fix: use correct LoRA mapping, add fallback for backwards compatibility
* feat: add created_by again
* feat: add prefix "Fooocus" to version
* wip: code cleanup, update todos
* fix: use correct order to read LoRA in meta parser
* wip: code cleanup, update todos
* feat: make sha256 with length 10 default
* feat: add lora handling to A1111 scheme
* feat: override existing LoRA values when importing, would cause images to differ
* fix: correctly extract prompt style when only prompt expansion is selected
* feat: allow model / LoRA loading from subfolders
* feat: code cleanup, do not queue metadata preview on image upload
* refactor: add flag for refiner_swap_method
* feat: add metadata handling for all non-img2img parameters
* refactor: code cleanup
* chore: use str as return type in calculate_sha256
* feat: add hash cache to metadata
* chore: code cleanup
* feat: add method get_scheme to Metadata
* fix: align handling for scheme Fooocus by removing lcm lora from json parsing
* refactor: add step before parsing to set data in parser
- add constructor for MetadataSchema class
- remove showable and copyable from log output
- add functional hash cache (model hashing takes about 5 seconds, only required once per model, using hash lazy loading)
* feat: sort metadata attributes before writing to image
* feat: add translations and hint for image prompt parameters
* chore: check and remove ToDo's
* refactor: merge metadata.py into meta_parser.py
* fix: add missing refiner in A1111 parse_json
* wip: add TODO for ultiline prompt style resolution
* fix: remove sorting for A1111, change performance key position
fixes https://github.com/lllyasviel/Fooocus/pull/1940#issuecomment-1924444633
* fix: add workaround for multiline prompts
* feat: add sampler mapping
* feat: prevent config reset by renaming metadata_scheme to match config options
* chore: remove remaining todos after analysis
refiner is added when set
restoring multiline prompts has been resolved by using separate parameters "raw_prompt" and "raw_negative_prompt"
* chore: specify too broad exception types
* feat: add mapping for _gpu samplers to cpu samplers
gpu samplers are less deterministic than cpu but in general similar, see https://www.reddit.com/r/comfyui/comments/15hayzo/comment/juqcpep/
* feat: add better handling for image import with empty metadata
* fix: parse adaptive_cfg as float instead of string
* chore: loosen strict type for parse_json, fix indent
* chore: make steps enums more strict
* feat: only override steps if metadata value is not in steps enum or in steps enum and performance is not the same
* fix: handle empty strings in metadata
e.g. raw negative prompt when none is set
* feat: use consistent file name in gradio
returns and uses filepaths instead of numpy image by saving to temp dir
uses double the temp dir file storage on disk as it saves to temp dir and gradio temp dir when displaying the image, but reuses logged output image
* feat: delete temp images after yielding to gradio
* feat: use args temp path if given
* chore: code cleanup, remove redundant if statement
new model list
i
new candidates
add model fallback
allow disable preset download
Update anime.json
Update anime.json
Update config.py
Update anime.json
Update readme.md
Update default.json