ComfyUI Extension: ComfyUI-DrawThings-gRPC

Authored by Jokimbe

Created

Updated

4 stars

Connect to any Draw Things gRPC server

Custom Nodes (0)

    README

    ComfyUI-DrawThings-gRPC

    Connect to any Draw Things gRPCServerCLI and let ComfyUI generate and provide DT with images for ControlNet without needing to set them in DT itself.

    [!NOTE] Previews might look wrong for some models, however this does not have any influence over the final image.

    Draw Things gRPC server

    Run your server with the following options: --no-tls --no-response-compression --model-browser

    TODO

    • Add needed code for masks
    • Add all possible options
    • Create example workflows
    • Automatically check for incompatible settings/models
    • Submit to ComfyUI registry

    Discussion

    Discuss this project on Discord

    Quickstart

    1. Install ComfyUI.
    2. Install ComfyUI-Manager
    3. Look up this extension in ComfyUI-Manager. If you are installing manually, clone this repository under ComfyUI/custom_nodes.
    4. Restart ComfyUI.

    Features

    • Connect to any Draw Things gRPCServerCLI.
    • Let ComfyUI generate and provide DT with images for ControlNet without needing to set them in DT itself.

    Develop

    To install the dev dependencies and pre-commit (will run the ruff hook), do:

    cd ComfyUI-DrawThings-gRPC
    pip install -e .[dev]
    pre-commit install
    

    The -e flag above will result in a "live" install, in the sense that any changes you make to your node extension will automatically be picked up the next time you run ComfyUI.

    Publish to Github

    Install Github Desktop or follow these instructions for ssh.

    1. Create a Github repository that matches the directory name.
    2. Push the files to Git
    git add .
    git commit -m "project scaffolding"
    git push
    

    Writing custom nodes

    An example custom node is located in node.py. To learn more, read the docs.

    Tests

    This repo contains unit tests written in Pytest in the tests/ directory. It is recommended to unit test your custom node.

    Publishing to Registry

    If you wish to share this custom node with others in the community, you can publish it to the registry. We've already auto-populated some fields in pyproject.toml under tool.comfy, but please double-check that they are correct.

    You need to make an account on https://registry.comfy.org and create an API key token.

    • [ ] Go to the registry. Login and create a publisher id (everything after the @ sign on your registry profile).
    • [ ] Add the publisher id into the pyproject.toml file.
    • [ ] Create an api key on the Registry for publishing from Github. Instructions.
    • [ ] Add it to your Github Repository Secrets as REGISTRY_ACCESS_TOKEN.

    A Github action will run on every git push. You can also run the Github action manually. Full instructions here. Join our discord if you have any questions!

    [!NOTE] This projected was created with a cookiecutter template. It helps you start writing custom nodes without worrying about the Python setup.

    Thanks to

    • https://github.com/JosephThomasParker/ComfyUI-DrawThingsWrapper for starting me off looking into what's possible connecting ComfyUI to Draw Things.
    • https://github.com/kcjerrell/dt-grpc-ts
    • https://github.com/drawthingsai/draw-things-community
    • https://github.com/TinyTerra/ComfyUI_tinyterraNodes for collapsing widgets.