shared_items.py 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. import sys
  2. from modules.shared_cmd_options import cmd_opts
  3. def realesrgan_models_names():
  4. import modules.realesrgan_model
  5. return [x.name for x in modules.realesrgan_model.get_realesrgan_models(None)]
  6. def postprocessing_scripts():
  7. import modules.scripts
  8. return modules.scripts.scripts_postproc.scripts
  9. def sd_vae_items():
  10. import modules.sd_vae
  11. return ["Automatic", "None"] + list(modules.sd_vae.vae_dict)
  12. def refresh_vae_list():
  13. import modules.sd_vae
  14. modules.sd_vae.refresh_vae_list()
  15. def cross_attention_optimizations():
  16. import modules.sd_hijack
  17. return ["Automatic"] + [x.title() for x in modules.sd_hijack.optimizers] + ["None"]
  18. def sd_unet_items():
  19. import modules.sd_unet
  20. return ["Automatic"] + [x.label for x in modules.sd_unet.unet_options] + ["None"]
  21. def refresh_unet_list():
  22. import modules.sd_unet
  23. modules.sd_unet.list_unets()
  24. def list_checkpoint_tiles():
  25. import modules.sd_models
  26. return modules.sd_models.checkpoint_tiles()
  27. def refresh_checkpoints():
  28. import modules.sd_models
  29. return modules.sd_models.list_models()
  30. def list_samplers():
  31. import modules.sd_samplers
  32. return modules.sd_samplers.all_samplers
  33. def reload_hypernetworks():
  34. from modules.hypernetworks import hypernetwork
  35. from modules import shared
  36. shared.hypernetworks = hypernetwork.list_hypernetworks(cmd_opts.hypernetwork_dir)
  37. ui_reorder_categories_builtin_items = [
  38. "inpaint",
  39. "sampler",
  40. "accordions",
  41. "checkboxes",
  42. "dimensions",
  43. "cfg",
  44. "denoising",
  45. "seed",
  46. "batch",
  47. "override_settings",
  48. ]
  49. def ui_reorder_categories():
  50. from modules import scripts
  51. yield from ui_reorder_categories_builtin_items
  52. sections = {}
  53. for script in scripts.scripts_txt2img.scripts + scripts.scripts_img2img.scripts:
  54. if isinstance(script.section, str) and script.section not in ui_reorder_categories_builtin_items:
  55. sections[script.section] = 1
  56. yield from sections
  57. yield "scripts"
  58. class Shared(sys.modules[__name__].__class__):
  59. """
  60. this class is here to provide sd_model field as a property, so that it can be created and loaded on demand rather than
  61. at program startup.
  62. """
  63. sd_model_val = None
  64. @property
  65. def sd_model(self):
  66. import modules.sd_models
  67. return modules.sd_models.model_data.get_sd_model()
  68. @sd_model.setter
  69. def sd_model(self, value):
  70. import modules.sd_models
  71. modules.sd_models.model_data.set_sd_model(value)
  72. sys.modules['modules.shared'].__class__ = Shared