Commit Graph

105 Commits

Author SHA1 Message Date
Manuel Schmid ba9eadbcda
feat: add metadata to images (#1940)
* 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
2024-02-26 14:27:57 +01:00
Manuel Schmid 26601a99d1
Merge branch 'feature/add-metadata-to-files' 2024-02-18 16:27:29 +01:00
Manuel Schmid 692a2e4369
Merge branch 'feature/add-metadata-to-files' of github.com:mashb1t/Fooocus into feature/add-metadata-to-files 2024-02-18 16:15:56 +01:00
Manuel Schmid 36f6715512
chore: make steps enums more strict 2024-02-18 16:14:24 +01:00
Manuel Schmid ceefba9b69
Merge branch 'feature/add-metadata-to-files'
# Conflicts:
#	language/en.json
#	modules/async_worker.py
#	modules/config.py
#	modules/flags.py
#	modules/meta_parser.py
#	modules/private_logger.py
#	modules/util.py
#	webui.py
2024-02-04 21:09:24 +01:00
Manuel Schmid fe33cc7114
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/
2024-02-04 13:54:38 +01:00
Manuel Schmid 1419231e74
feat: prevent config reset by renaming metadata_scheme to match config options 2024-02-03 22:41:26 +01:00
Manuel Schmid 63403d614e
feat: add sampler mapping 2024-02-02 23:44:47 +01:00
Manuel Schmid b438f7b43f
chore: check and remove ToDo's 2024-02-02 01:45:08 +01:00
Manuel Schmid 7772eb7965
refactor: add flag for refiner_swap_method 2024-01-31 01:17:10 +01:00
Manuel Schmid e388f6fff6
wip: code cleanup, update todos 2024-01-29 16:38:39 +01:00
Manuel Schmid 20e53028a4
refactor: use central flag for ControlNet image count 2024-01-29 14:27:51 +01:00
Manuel Schmid c3ab9f1f30
refactor: use central flag for LoRA count 2024-01-29 14:26:56 +01:00
Manuel Schmid 236278948b
chore: code cleanup 2024-01-28 23:50:56 +01:00
Manuel Schmid cbc63ebba3
feat: add enums for Performance, Steps and StepsUOV
also move MetadataSchema enum to prevent circular dependency
2024-01-28 20:01:33 +01:00
Manuel Schmid f3010313fc
wip: add metadata mapping, reading and writing
applying data after reading currently not functional for A1111
2024-01-28 05:35:44 +01:00
Manuel Schmid 1ae495f6b8
Merge branch 'feature/add-inpaint-mask-generation'
# Conflicts:
#	requirements_versions.txt
#	webui.py
2024-01-26 11:32:53 +01:00
rayronvictor 228a0aaeea Add SAM support 2024-01-25 16:45:02 -03:00
Manuel Schmid 366984ca64
Merge branch 'feature/add-inpaint-mask-generation'
# Conflicts:
#	webui.py
2024-01-25 10:48:40 +01:00
rayronvictor f0fb9783e1 Add options to u2net_cloth_seg 2024-01-24 21:26:23 -03:00
Manuel Schmid 23bb69bb13
Merge branch 'feature/add-inpaint-mask-generation' 2024-01-24 19:45:58 +01:00
Manuel Schmid d7d34647d0
fix: remove segmentation models from rembg model selection 2024-01-24 19:38:12 +01:00
Manuel Schmid e196a35ce2
Merge branch 'feature/add-inpaint-mask-generation'
# Conflicts:
#	modules/config.py
#	requirements_versions.txt
2024-01-24 02:46:09 +01:00
Manuel Schmid db5512fb93
feat: add inpaint mask generation functionality
uses rembg, see https://github.com/danielgatis/rembg
2024-01-24 02:22:50 +01:00
Manuel Schmid 72d1e48def
Merge branch 'jpg_config_image_extension'
# Conflicts:
#	modules/async_worker.py
#	modules/flags.py
#	modules/private_logger.py
#	webui.py
2024-01-19 00:14:44 +01:00
Manuel Schmid 7e52a1de8f
refactor: rename image_file_extension to output_format 2024-01-19 00:06:07 +01:00
Manuel Schmid addd5ef3bd
Merge branch 'feature/add-metadata-to-files'
# Conflicts:
#	args_manager.py
#	modules/async_worker.py
#	modules/config.py
#	modules/private_logger.py
#	modules/util.py
2024-01-16 00:50:46 +01:00
Manuel Schmid ba5d0b6eaf
refactor: rename metadata_schema to metadata_scheme 2024-01-15 23:59:57 +01:00
Manuel Schmid 191f8148e4
feat: add support for A1111 metadata schema
cf2772fab0/modules/processing.py (L672)
2024-01-15 21:16:52 +01:00
Manuel Schmid f25bf49894
Merge branch 'jpg_config_image_extension'
# Conflicts:
#	modules/config.py
#	modules/flags.py
#	webui.py
2024-01-14 23:40:24 +01:00
Manuel Schmid 5b633f6cf8
refactor: rename image_extension to image_file_extension 2024-01-14 23:38:36 +01:00
Manuel Schmid b18ae4343d
Merge branch 'jpg_config_image_extension'
# Conflicts:
#	modules/async_worker.py
#	modules/config.py
#	modules/flags.py
#	webui.py
2024-01-14 23:22:03 +01:00
Manuel Schmid 26f31ff2bd
feat: add webp to image_extensions
supported image extemsions: see https://pillow.readthedocs.io/en/stable/handbook/image-file-formats.html
2024-01-14 14:25:52 +01:00
eddyizm e1697272ec
feature: added flag, config and ui update for image extension change #1789 2024-01-10 09:36:27 -08:00
Manuel Schmid 07fba58c99
Merge remote-tracking branch 'upstream/main'
# Conflicts:
#	modules/async_worker.py
#	requirements_versions.txt
#	webui.py
2023-12-14 22:49:29 +01:00
lllyasviel f8e651a483 [2.1.831] Fooocus Describe 2023-12-12 19:34:18 -08:00
lllyasviel e8d88d3e25 2.1.826 2023-12-12 11:38:05 -08:00
Manuel Schmid 44c6ddb731 disable intermediate results on LCM sampler
prevents image result clogging due to LCM being so fast
2023-11-23 00:34:08 +01:00
Manuel Schmid 87fc830981 add steps info to performance selection radio buttons 2023-11-22 22:17:24 +01:00
lllyasviel dececbd060
[2.1.822] New Inpaint System
See related documents for more details.
2023-11-19 17:37:22 -08:00
lllyasviel 8f23e2e969 Allow preset to set default inpaint engine. 2023-11-15 01:55:02 -08:00
lllyasviel cbe66fd5e0 2.1.812 2023-11-15 01:49:01 -08:00
lllyasviel a9bd188555 github bot update + heunpp2 2023-11-15 01:36:14 -08:00
lllyasviel d3d63d5bf6 2.1.802
Default inpaint engine changed to v2.6. You can still use inpaint engine v1 in dev tools.
Fix some VRAM problems.
2023-11-13 04:37:25 -08:00
lllyasviel 54f4b265e0 lcm scheduler 2023-11-12 06:44:44 -08:00
lllyasviel 2bef62c545
2.1.790
2.1.790
2023-11-11 22:13:13 -08:00
lllyasviel 4fe08161a5 2.1.782
2.1.782
2023-11-11 01:43:01 -08:00
lllyasviel f92b8038b4
add config (#619)
* add config

* add config

* add config

* add config

* add config

* add config

* add config

* add config
2023-10-10 00:23:39 -07:00
lllyasviel 53967f23d0
change default to 0.5 (#605) 2023-10-09 13:20:57 -07:00
lllyasviel 1f8944b974
faster speed (#604) 2023-10-09 12:18:25 -07:00
lllyasviel 6faaac333b
i (#559) 2023-10-07 22:54:04 -07:00
lllyasviel 6c56b580d7
dev tool (#526) 2023-10-03 16:08:06 -07:00
lllyasviel bbae307ef2
2.0.80 (#520)
* Rework many patches and some UI details.
* Speed up processing.
* Move Colab to independent branch.
* Implemented CFG Scale and TSNR correction when CFG is bigger than 10.
* Implemented Developer Mode with more options to debug.
2023-10-03 10:36:42 -07:00
lllyasviel b61642ecba
[Fooocus 2.0.60] Fooocus Inpaint or Outpaint (Midjourney Left/Right/Top/Bottom) (#402)
[Fooocus 2.0.60] Fooocus Inpaint or Outpaint (Midjourney Left/Right/Top/Bottom) (#402)
2023-09-18 01:16:07 -07:00
lllyasviel 8ef31d33af
[Fooocus 2.0.50] Variation/Upscale (Midjourney Toolbar) (#389) 2023-09-16 03:29:41 -07:00