This repository contains all ComfySharp-related projects managed as Git submodules. Each project maintains its own independent version control while being part of this unified development environment.
- ComfySharp - Core ComfySharp library for ComfyUI workflow management
- ComfySharp.Extensions - Basic extensions and node implementations
- ComfySharp.Extensions.EasyUse - Easy-to-use high-level extensions
- ComfySharp.Extensions.Nunchaku - Nunchaku-specific extensions and nodes
- ComfySharp.Extensions.ReActor - ReActor-specific extensions and nodes
# Clone the repository with all submodules
git clone --recursive <repository-url>
# Or if you already have the repository
git submodule update --init --recursive# Update all submodules to latest
git submodule update --remote
# Update a specific submodule
git submodule update --remote ComfySharp
# Work in a submodule
cd ComfySharp
# Make changes, commit, push
git add .
git commit -m "Your changes"
git push
cd ..
git add ComfySharp
git commit -m "Update ComfySharp to latest"Use the provided build scripts to build all packages:
build-packages.bat.\build-packages.ps1./build-packages.shThe build process creates NuGet packages in the packages/ directory:
ComfySharp.1.0.0.nupkgComfySharp.Extensions.1.0.0.nupkgComfySharp.Extensions.EasyUse.1.0.0.nupkgComfySharp.Extensions.Nunchaku.1.0.0.nupkgComfySharp.Extensions.ReActor.1.0.0.nupkg
Each project is a Git submodule, which means:
- Independent Development: Each project can be developed independently
- Version Control: Each project has its own version history
- Selective Updates: You can update individual projects without affecting others
- Clean Separation: Clear boundaries between different components
# Check submodule status
git submodule status
# Update all submodules to their latest commits
git submodule update --remote
# Update a specific submodule
git submodule update --remote ComfySharp
# Work in a submodule (make changes, commit, push)
cd ComfySharp
git checkout -b feature/new-feature
# ... make changes ...
git add .
git commit -m "Add new feature"
git push origin feature/new-feature
cd ..
# Update the main repository to point to the new submodule commit
git add ComfySharp
git commit -m "Update ComfySharp to latest"# Add a new project as a submodule
git submodule add <repository-url> <local-path>
# Example:
git submodule add https://github.com/your-org/ComfySharp.NewExtension.git ComfySharp.Extensions.NewExtensionEach project contains its own test suite and example projects. Run tests for a specific project:
# Run unit tests
cd ComfySharp.Extensions.Tests
dotnet test
# Run examples
cd ComfySharp.Extensions.Examples
dotnet runEach project includes comprehensive example projects demonstrating usage:
- ComfySharp.Example - Core library examples
- ComfySharp.ClientApi.Example - API client examples
- ComfySharp.Extensions.Examples - Extension node examples
- ComfySharp.Extensions.EasyUse.Examples - EasyUse node examples
- ComfySharp.Extensions.Nunchaku.Examples - Nunchaku node examples
- ComfySharp.Extensions.ReActor.Examples - ReActor node examples
- .NET 6.0 or later
- Git with submodule support
- Visual Studio 2022 or VS Code (recommended)
- Fork the repository
- Create a feature branch
- Make your changes
- Test your changes
- Submit a pull request
- Each project should be self-contained
- Use semantic versioning for releases
- Keep documentation up to date
- Write tests for new features
This project is licensed under the MIT License - see the LICENSE file for details.
- ComfyUI - The original ComfyUI project
- ComfyUI Manager - Extension manager for ComfyUI
For questions and support, please open an issue in the appropriate project repository or the main repository.