Skip to content

[enhancement]: [UI/UX] Text prompt history #2379

Open
@Lex-DRL

Description

Is there an existing issue for this?

  • I have searched the existing issues

Contact Details

No response

What should this feature add?

TL;DR:

It would be nice to have a small modal window with history of all the text prompts that were used for ALL the generations ever made. No matter which mode of InvokeAI they were called from.
It's mostly useful for canvas mode.

Minimal implementation

  • Just have a flat list of all the prompts, in the order of their evaluation.
  • It should open near prompt textarea with a small button/icon click (probably, just below pin button?).
  • Text weighs almost nothing, so it can keep a whole history (thousands of entries), unless a user manually clears it (a button for it, with "are you sure" dialog window).
    • If browser performance is an issue, the list can be paged, but still kept in it's entirety.
  • Even when generated images are deleted from gallery, the history should store the text entry.

Harder to implement, but far more convenient-to-use implementation

  • Keep track of WHERE the prompt was used.
    • For text-to-image mode - highlight an image in the gallery if it's there.
    • For canvas mode - it would be perfect to highlight area of where the prompt was used.
  • Store additional metadata (all the generation settings), like they're now stored in the info panel for gallery.
  • A setting to specify how many entries to store. The limit should be both count-based (max of N entries) and date based (store for not longer than X timedelta).

Top-tier "the best I can dream of" implementation

  • As with browser bookmarks, an option to export/imrort the whole history as a json/csv.
  • Keep a tiny preview icon in front of the text (64x64 or even 32x32 jpeg, even aggressively compressed), which stays as long as the entry is in history.
    • Later, a "clear cache" button could be added to remove old entries.
  • Highlight the same blocks of text with color coding ➡ [enhancement]: [UI/UX] Diff / reused text blocks highlight for prompt / info #2380
  • Remove duplicate entries (yes, some users like me might re-generate the same thing "just to be sure it was THAT prompt")
    • ... and therefore, highlight multiple images in gallery if they all have the same settings,
    • ... or don't remove duplicates but grey old ones out and highlight the duplicates on hover.
  • Filter/search feature.
  • "Infinite history" mode, which never actually removes any history, unless a user manually does that. Old entries are internally marked as "pending to be archived", and are actually archived to zip/7z later, in bulks defined by "history length" setting.
    • Existing archives could display as just that, an archive icon on a separate tab / sub-window, and give a user option to temporarily unpack it for viewing or deleting manually.

Alternatives

Browser has it's own built-in form history (available at Ctrl+Z), but:

  • It's cleared on restart;
  • It's sometimes (what seems) unpredictably cleared during a single session;
  • It has no idea of which text variant was actually used for generation.
  • No list of previous prompts displayed anywhere.

Browser extensions keeping track of form history (like Form History Control for firefox):

  • At least, shows a history as a list, but...
  • ... same restrictions as above.

An external text file you manually copy prompts to:

  • Being a plain text, it doesn't keep track of seeds / other metadata and in general is more susceptible to user error.
  • The "damn, I got into flow and forgot to copy THAT good prompt" factor.

InvokeAI's console:

  • It's a good backup plan as the very last resort, but it's far from being actually convenient to use.

Aditional Content

No response

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions