Metadata-Version: 2.1
Name: yors_comfyui_node_setup
Version: 0.6.0
Summary: A python library for setup comfyui custom nodes for developers in development
Home-page: https://github.com/ymc-github/panz/blob/main/packages/yors_comfyui_node_setup/README.md
License: LICENSE
Keywords: artist,panz,mono,yors_comfyui_node_setup
Author: yemiancheng
Author-email: ymc.github@gmail.com
Requires-Python: >=3.10,<4.0
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: License :: Other/Proprietary License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Software Development :: Build Tools
Project-URL: Documentation, https://github.com/ymc-github/panz/blob/main/packages/yors_comfyui_node_setup/README.md
Project-URL: Repository, https://github.com/ymc-github/panz.git
Project-URL: changelog, https://github.com/ymc-github/panz/blob/main/packages/yors_comfyui_node_setup/CHANGELOG.md
Description-Content-Type: text/markdown

<div align="center">
  <h1>yors_comfyui_node_setup</h1>
  <p>
    <strong>🤖 A python library for setup comfyui custom nodes for developers in development.</strong>
  </p>
  
  ![PyPI - Version](https://img.shields.io/pypi/v/yors_comfyui_node_setup)
  ![PyPI - License](https://img.shields.io/pypi/l/yors_comfyui_node_setup)

</div>

to setup comfyui custom nodes for developers in development:

- install requriements automatically for nodes
- entry - export comfyui node vars automatically

## 1 - install python package

```bash
pip install yors_comfyui_node_setup
# yors_comfyui_node_util
```

## 2 - use it in your python code

- in some comfyui custom nodes project or module

- code in `__init__.py`

```py
#
# from ...utils import entry,node_install_requirements # local
from yors_comfyui_node_setup import entry,node_install_requirements # global

# install requirements
node_install_requirements(__file__)

# export comfyui node vars
__all__,NODE_CLASS_MAPPINGS,NODE_DISPLAY_NAME_MAPPINGS,NODE_MENU_NAMES = entry(__name__,__file__)

# register_node_list(this_module_all_classes,False,"ymc/as_x_type")
```

- or :

```py
from yors_comfyui_node_setup import entry_pre_import,entry_import,get_all_classs_in_sys,node_install_requirements

# install requirements
node_install_requirements(__file__)

# gen __all__
__all__ = entry_pre_import(__name__,__file__)

# import moudle with __all__
entry_import(__name__)

# get class after importing moudle with __all__
this_module_all_classes = get_all_classs_in_sys(__name__)

# register node with default category
NODE_CLASS_MAPPINGS,NODE_DISPLAY_NAME_MAPPINGS,NODE_MENU_NAMES  = register_node_list(this_module_all_classes,False)

# addtional register node with custom category
NODE_CLASS_MAPPINGS,NODE_DISPLAY_NAME_MAPPINGS,NODE_MENU_NAMES  = register_node_list(this_module_all_classes,False,"ymc/as_x_type")

```

## 3 - code yours nodes

- dirs map of your node may be:

```
.
└─__init__.py
└─nodes.py
```

- in any py file (no test in `__init__.py`)
- code nodes.py

```py
class AnyType(str):
  """A special class that is always equal in not equal comparisons. Credit to pythongosssss"""

  def __ne__(self, __value: object) -> bool:
    return False

any_type = AnyType("*")


CURRENT_CATEGORY="YMC/LINK" # set the right mouse button menu (custom for your comfyui nodes)
CURRENT_FUNCTION="exec"

class NodeSetItAsImage:
    @classmethod
    def INPUT_TYPES(s):
        return {
            "required": {

            },
            "optional":{
                "a": (any_type),
            },
            # "hidden": {
            #     "unique_id": "UNIQUE_ID",
            #     "extra_pnginfo": "EXTRA_PNGINFO",
            # },
        }

    # INPUT_IS_LIST = True
    RETURN_TYPES = ("IMAGE",)
    RETURN_NAMES = ("image",)

    FUNCTION = CURRENT_FUNCTION
    CATEGORY = CURRENT_CATEGORY
    # set NODE_NAME and NODE_DESC for yors_comfyui_node_setup
    NODE_NAME = "as image"
    NODE_DESC = "set it as image type"
    # OUTPUT_NODE = True
    # OUTPUT_IS_LIST = (True,)
    def exec(self, a=None):
        return (a,)
```

## Author

ymc-github <ymc.github@gmail.com>

## License

MIT

