Commit graph

14 commits

Author SHA1 Message Date
Self Denial 1ba0fa8546 feat: Enhance ComfyUI Dockerfile with additional features and configurations
This commit significantly enhances the `Dockerfile` for the ComfyUI service by introducing several new features and configurations. Here's a detailed breakdown of the changes:

1. **Base Image Update**:
   - Updated the base image from `pytorch/pytorch:2.3.0-cuda12.1-cudnn8-runtime` to `pytorch/pytorch:2.5.1-cuda12.4-cudnn9-runtime`. This ensures compatibility with newer versions of PyTorch and CUDA, providing better performance and support for recent hardware.

2. **Environment Variables**:
   - Introduced several new environment variables (`USE_UID`, `USE_GID`, `USE_USER`, `USE_GROUP`) to allow customization of the user and group IDs within the container.
   - Added flags (`USE_EDGE`, `USE_GGUF`, `USE_XFLUX`, `USE_CNAUX`, `USE_KRITA`, `USE_IPAPLUS`, `USE_INPAINT`, `USE_TOOLING`) to enable or disable optional features and integrations.

3. **User/Group Management**:
   - Added logic to create a user and group with specified IDs (`USE_UID` and `USE_GID`). This is useful for running the container in environments where specific user permissions are required.
   - Set default values for these variables, ensuring that the Dockerfile remains functional without explicit configuration.

4. **Optional Feature Integration**:
   - Included conditional logic to clone and install additional repositories based on the flags set (`USE_GGUF`, `USE_XFLUX`, `USE_CNAUX`, `USE_KRITA`, `USE_IPAPLUS`, `USE_INPAINT`, `USE_TOOLING`). This allows users to customize their ComfyUI installation by enabling only the features they need.
   - Ensured that dependencies for these optional features are installed correctly, including handling specific cases like separating ONNX Runtime installations to restore CUDA support.

5. **Python Version Update**:
   - Changed the Python command from `python` to `python3` in the CMD instruction to explicitly specify the use of Python 3, which is a best practice for clarity and compatibility.

6. **File Permissions and Ownership**:
   - Used `--chown=${USE_UID}:${USE_GID}` when copying files into the container to ensure that the correct user owns these files, preventing permission issues during execution.

7. **General Improvements**:
   - Improved readability and maintainability of the Dockerfile by organizing the steps logically and adding comments where necessary.
   - Ensured that all commands are idempotent, meaning they can be run multiple times without causing unintended side effects.

- `USE_UID`: Specifies the user ID for the non-root user within the container. Default is set to value 0.
- `USE_GID`: Specifies the group ID for the non-root user within the container. Default is set to value like 0.
- `USE_USER`: Specifies the username for the non-root user within the container. Default is set to `root`.
- `USE_GROUP`: Specifies the group name for the non-root user within the container. Default is set to `root`.
- `USE_EDGE`: If set to `true`, clones and installs the latest development version of ComfyUI from the main branch.
- `USE_GGUF`: If set to `true`, clones and installs the ComfyUI-GGUF extension for GPU acceleration.
- `USE_XFLUX`: If set to `true`, clones and installs the x-flux-comfyui extension for additional functionalities.
- `USE_CNAUX`: If set to `true`, clones and installs the comfyui_controlnet_aux extension for control net auxiliary features.
- `USE_KRITA`: If set to `true`, clones and installs multiple extensions (comfyui_controlnet_aux, ComfyUI_IPAdapter_plus, comfyui-inpaint-nodes, comfyui-tooling-nodes) that are useful when integrating with Krita.
- `USE_IPAPLUS`: If set to `true`, clones and installs the ComfyUI_IPAdapter_plus extension for IP Adapter functionalities.
- `USE_INPAINT`: If set to `true`, clones and installs the comfyui-inpaint-nodes extension for inpainting capabilities.
- `USE_TOOLING`: If set to `true`, clones and installs the comfyui-tooling-nodes extension for additional tooling features.

These ARGs provide flexibility in configuring the Docker container, allowing users to tailor the ComfyUI installation to their specific needs.
2024-11-24 18:29:16 -07:00
Self Denial eceac3ce5f feat: Add custom node management and additional configuration options in entrypoint.sh
This commit introduces several enhancements to the `entrypoint.sh` script for the Comfy service:

1. **Custom Node Management**: Added logic to update custom nodes located in `/data/config/comfy/custom_nodes/`. If the `UPDATE_CUSTOM_NODES` environment variable is set to `true`, it will pull the latest changes from each node's Git repository and update submodules recursively for specific nodes like `krita-ai-diffusion`.

2. **Environment Variable Usage**: Introduced a new environment variable `CACHE` which should be used instead of hardcoding `/root/.cache`. This makes the script more flexible and configurable.

3. **Krita Integration**: Added support for Krita integration with ComfyUI, including downloading models if `KRITA_DOWNLOAD_MODELS` is set to `true`, managing upscale models, and setting up symbolic links for model directories.

4. **GGUF, XFLUX, CNAUX, IPAPLUS, INPAINT, TOOLING Support**: Included logic to handle additional custom nodes (`ComfyUI-GGUF`, `x-flux-comfyui`, `comfyui_controlnet_aux`, `ComfyUI_IPAdapter_plus`, `comfyui-inpaint-nodes`, `comfyui-tooling-nodes`) based on their respective environment variables (`USE_GGUF`, `USE_XFLUX`, `USE_CNAUX`, `USE_IPAPLUS`, `USE_INPAINT`, `USE_TOOLING`). These nodes are moved to the custom nodes directory if they don't already exist.

5. **Model Management**: Added functionality to download and manage specific models required by certain integrations, such as CLIP Vision and IP Adapters for XFLUX.

These changes enhance the script's flexibility, making it easier to integrate additional features and manage dependencies dynamically based on environment configurations.
2024-11-24 16:34:53 -07:00
Self Denial 2de99033e8 feat: Add new model paths to extra_model_paths.yaml
This commit introduces several new model paths to the `extra_model_paths.yaml` file under the `a111` section. The added paths include `unet`, `clip_vision`, `xlabs`, `inpaint`, and `ipadapter`. These additions enhance the configuration by providing more options for different models, which can be utilized in various functionalities within the service.
2024-11-24 16:32:41 -07:00
AbdBarho 35a18b3d46
Update Comfy (#693)
276f8fce9f

Closes #676 
Closes #674

Refs #686
2024-05-20 14:44:41 +02:00
sejoung kim 90affeb72a
Bump Comfy (#603)
d1f3637a5a

---------

Co-authored-by: AbdBarho <ka70911@gmail.com>
2024-01-01 11:04:02 +01:00
AbdBarho 59b9762ac7
Update Comfy (#580)
7e941f9f24
2023-08-30 20:00:48 +02:00
AbdBarho 09a0f11946
Add startup script for comfy (#552)
Closes #451

---------

Co-authored-by: PassiveLemon <lemonl3mn@protonmail.com>
2023-07-22 08:31:17 +02:00
AbdBarho cdde93b8bb
v8 (#516)
8607c2d42d
2023-06-24 10:06:30 +02:00
AbdBarho 660c098da0
Change capabilities in docker-compose (#497)
#479
2023-06-02 21:29:00 +02:00
AbdBarho 71f4abb2db
Create custom_nodes dir (#461)
Closes #460
2023-05-10 07:32:58 +02:00
AbdBarho c836f41921
Add ClipEncoder (#458)
https://github.com/AbdBarho/stable-diffusion-webui-docker/pull/432#issuecomment-1537380951
2023-05-08 19:29:38 +02:00
LEv145 d47e77f19c
Update/fix mounts for comfyUI (#432)
I updated the paths to make all paths work

Now paths in ComfyUI are working
Added: 
- `input`
- `models/configs`
- `models/gligen`
- `models/diffusers`
- `models/hypernetworks`

Was broken:
- `custom_nodes`
- `models/clip_vision` 
- `models/clip`

---------

Co-authored-by: LEv145 <you@example.com>
Co-authored-by: AbdBarho <ka70911@gmail.com>
2023-05-07 11:11:30 +02:00
LEv145 076b5747d3
Fix file permissions (#425)
https://github.com/AbdBarho/stable-diffusion-webui-docker/issues/424

Co-authored-by: LEv145 <you@example.com>
2023-04-28 15:42:12 +02:00
PassiveLemon 2a0de025e2
Support for ComfyUI (#384)
As discussed in Discussion
[#367](https://github.com/AbdBarho/stable-diffusion-webui-docker/discussions/367),
this adds support for the newer ComfyUI. I forked the fork that would
already add this but the maintainer of that fork hasn't implemented the
changes needed to properly get the output function working, which I did.
I believe everything is functional though I have not tested every single
node.

I changed the table format for the README and a few other minor things
for aesthetic reasons but if you want me to revert those, I will.

---------

Co-authored-by: Jonathan Kovacs <jkovacs-dev@users.noreply.github.com>
Co-authored-by: AbdBarho <ka70911@gmail.com>
2023-04-21 21:34:17 +02:00