lllyasviel / Fooocus

Focus on prompting and generating
GNU General Public License v3.0
41.57k stars 5.92k forks source link

[Feature Request] Actual Wildcard results to show up in log rather than wildcards themselves #787

Closed esjoncole closed 10 months ago

esjoncole commented 1 year ago

Right now, when using wildcards, the wildcard phrase shows up in the prompt log:

Prompt: __colors__ star

So, if you run 3 generations, the log shows:

Prompt: __colors__ star
Prompt: __colors__ star
Prompt: __colors__ star

I would love for it show what actual wildcards it used in case I like a style that was created and wanted to refine it. So, if I run __colors__ star for 3 generations, I would get something like this in the log:

Prompt: blue star
Prompt: green star
Prompt: purple star
esjoncole commented 1 year ago

Just to further explain the benefit: If I generate a set of images using wildcards and find some results I like (especially with using multiple wildcard sets), I would like to be able to go back use a specific prompt to further develop the generated image. Right now, I can't tell which values were used to generate the image. :-)

mashb1t commented 10 months ago

You can use the recently implemented meta data and import prompt feature found in the history log. Hope this fulfills your needs.

esjoncole commented 10 months ago

@mashb1t Unfortunately, no. The output still shows the actual prompt I used and not the substitution from the wildcard file.

(comicbook [ illustration | drawing ] :1.1) (illustration, vector art) of (__ZC_ARTISTIC/Theme_Tone__:0.5) ((full body hero portrait:1.1) (wearing __ZC_ARTISTIC/Colors__ __Zs_SUBJECTS/Superhero_Costumes__) (__Zs_SUBJECTS/Superhero_Actions__) (background is __Zs_PLACES/Superhero_Backgrounds___) (Lighting __ZC_ARTISTIC/Lighting__) (__ZC_ARTISTIC/Perspective_Scene_Type__):0.8), elegant, highly detailed, cinematic, dynamic light, refined, romantic, epic composition, magical atmosphere, full color, intricate, very beautiful, ambient, rich deep colors, dramatic, inspiring, thought driven, sublime, cool, amazing, creative, awesome

mashb1t commented 10 months ago

Will check this again.

mashb1t commented 10 months ago

@esjoncole Fooocus displays the prompt without wildcards in the log.html as well as the prompt after import.

image log test

Example 1: ![image](https://github.com/lllyasviel/Fooocus/assets/9307310/593178c1-8e0d-4ae8-97b8-5632d08f4618) Example 2: ![image](https://github.com/lllyasviel/Fooocus/assets/9307310/3e8dc47f-a906-4212-b7a6-7f6baeddfdd2) Prompt to copy for example 2: ``` { "Prompt": "Sparrow with maroon fur", "Negative Prompt": "", "Fooocus V2 Expansion": "", "Styles": "[]", "Performance": "Speed", "Resolution": "(1024, 1024)", "Sharpness": 2, "Guidance Scale": 4, "ADM Guidance": "(1.5, 0.8, 0.3)", "Base Model": "juggernautXL_v8Rundiffusion.safetensors", "Refiner Model": "None", "Refiner Switch": 0.5, "Sampler": "dpmpp_2m_sde_gpu", "Scheduler": "karras", "Sampling Steps Override": -1, "Seed": 8432945019996177221, "LoRA 1": "sd_xl_offset_example-lora_1.0.safetensors : 0.1", "Version": "v2.1.862" } ``` Example 2 after reimport and regenerating: ![image](https://github.com/lllyasviel/Fooocus/assets/9307310/539de738-553a-49ef-8708-eef4cc031072)

Wildcards are only substitited when the wildcard file is actually found. Currently wildcard paths with subfolders are not supported, so please put all wildcards in the root wildcards folder. You may find it useful to use a prefix though.

subfolder test

![image](https://github.com/lllyasviel/Fooocus/assets/9307310/40cf990f-0b65-42e5-b38c-6497950d01f6) ![image](https://github.com/lllyasviel/Fooocus/assets/9307310/e8e2853d-b913-4fc9-ba8b-85c2a2249899)

Code reference: https://github.com/lllyasviel/Fooocus/blob/dc5b5238c83c63b4d7814ba210da074ddc341213/modules/sdxl_styles.py#L10 https://github.com/lllyasviel/Fooocus/blob/dc5b5238c83c63b4d7814ba210da074ddc341213/modules/sdxl_styles.py#L62

esjoncole commented 10 months ago

@mashb1t Ahh the folders were where I was going wrong. Many thanks, this is exactly what I was requesting!