shared_items.py 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137
  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(use_short=False):
  25. import modules.sd_models
  26. return modules.sd_models.checkpoint_tiles(use_short)
  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. def get_infotext_names():
  38. from modules import generation_parameters_copypaste, shared
  39. res = {}
  40. for info in shared.opts.data_labels.values():
  41. if info.infotext:
  42. res[info.infotext] = 1
  43. for tab_data in generation_parameters_copypaste.paste_fields.values():
  44. for _, name in tab_data.get("fields") or []:
  45. if isinstance(name, str):
  46. res[name] = 1
  47. return list(res)
  48. ui_reorder_categories_builtin_items = [
  49. "prompt",
  50. "image",
  51. "inpaint",
  52. "sampler",
  53. "accordions",
  54. "checkboxes",
  55. "dimensions",
  56. "cfg",
  57. "denoising",
  58. "seed",
  59. "batch",
  60. "override_settings",
  61. ]
  62. def ui_reorder_categories():
  63. from modules import scripts
  64. yield from ui_reorder_categories_builtin_items
  65. sections = {}
  66. for script in scripts.scripts_txt2img.scripts + scripts.scripts_img2img.scripts:
  67. if isinstance(script.section, str) and script.section not in ui_reorder_categories_builtin_items:
  68. sections[script.section] = 1
  69. yield from sections
  70. yield "scripts"
  71. class Shared(sys.modules[__name__].__class__):
  72. """
  73. this class is here to provide sd_model field as a property, so that it can be created and loaded on demand rather than
  74. at program startup.
  75. """
  76. sd_model_val = None
  77. @property
  78. def sd_model(self):
  79. import modules.sd_models
  80. return modules.sd_models.model_data.get_sd_model()
  81. @sd_model.setter
  82. def sd_model(self, value):
  83. import modules.sd_models
  84. modules.sd_models.model_data.set_sd_model(value)
  85. sys.modules['modules.shared'].__class__ = Shared