Based on a ![terribly complicated multi latent fixing and fiddling](../random-prompt-hrf-20img-output/) workflow.
WAS was kind enough to write a nifty node that allows _tokens_ to be set via ascii/text nodes. This hugely simplified the random prompt generation in the previous workflow.
So, of course, I **had** to make it more complicated.
This workflow
* generate a series of images which SD repeatedly samples.
* they tend to improve slowly, but sometimes have wild changes
* the images are then hi-rez fixed and upscaled
* Uses a prompt with a high degree of randomness
* figure, hair, ears, & clothing. More elements can be randomized with these as examples.
* values are picked from a list, then assigned to a token. The tokens can then be evaluated in other areas.
* Like before, I wanted all the prompt data to be shared with the image.
* In comfyui, words in {curly braces | separated by | pipes are | used to | generate} random results. Due to the way comfyui functions, an image's workflow will contain only the items in the prompt which were evaluated for the image. Other random elements will be dropped.
## The workflow
* Generates a text prompt from several randomized lists
* the sections are assigned to tokens.
* the prompt is sampled and tokens evaluated
* sampled again
* and again -- 10 times in all.
* The resulting samples are then hi-rez fixed and upscaled.
The entire process takes around 30 mins on my 1060gtx
Includes some lora. There's also a places where moving noodles changes the generation.
Because of how the backend evaluates the text boxes, it doesn't know the contents of the tokens have changed when parsing the prompts. There's two ways to fix this:
* put `{ | | }` in the prompt. It will evaluate the space each time and run the prompt, thus also evaluating tokens.
* make a new multiline node→random line node→text concatenate (the random result and the prompt) → text parse tokens → text to conditioning
* this is more complex, but preserves the text prompt in the image workflow.