ui_extra_networks_textual_inversion.py 1.2 KB

1234567891011121314151617181920212223242526272829303132
  1. import os
  2. from modules import ui_extra_networks, sd_hijack
  3. class ExtraNetworksPageTextualInversion(ui_extra_networks.ExtraNetworksPage):
  4. def __init__(self):
  5. super().__init__('Textual Inversion')
  6. self.allow_negative_prompt = True
  7. def refresh(self):
  8. sd_hijack.model_hijack.embedding_db.load_textual_inversion_embeddings(force_reload=True)
  9. def list_items(self):
  10. for embedding in sd_hijack.model_hijack.embedding_db.word_embeddings.values():
  11. path, ext = os.path.splitext(embedding.filename)
  12. preview_file = path + ".preview.png"
  13. preview = None
  14. if os.path.isfile(preview_file):
  15. preview = "./file=" + preview_file.replace('\\', '/') + "?mtime=" + str(os.path.getmtime(preview_file))
  16. yield {
  17. "name": embedding.name,
  18. "filename": embedding.filename,
  19. "preview": preview,
  20. "prompt": embedding.name,
  21. "local_preview": path + ".preview.png",
  22. }
  23. def allowed_directories_for_previews(self):
  24. return list(sd_hijack.model_hijack.embedding_db.embedding_dirs)