Add stable-diffusion.cpp hosting integration - #1494
Merged
Merged
Conversation
- Implement `CommunityToolkit.Aspire.Hosting.StableDiffusionCpp` for integrating the `stable-diffusion.cpp` container. - Introduce support for official image variants (`Cuda`, `CudaSpark`, `Vulkan`, `Sycl`, `Musa`) with GPU configurations. - Add example projects demonstrating the usage of Stable Diffusion resources. - Implement Hugging Face model resource integration with token-based authentication and download support. - Include tests to validate container configurations, runtime arguments, endpoints, and Hugging Face model interactions. - Add extensive XML documentation and a `README.md` for library usage and guidance. - Register the package in solution and centralize dependency management.
Contributor
|
🚀 Dogfood this PR with:
curl -fsSL https://raw.githubusercontent.com/CommunityToolkit/Aspire/main/eng/scripts/dogfood-pr.sh | bash -s -- 1494Or
iex "& { $(irm https://raw.githubusercontent.com/CommunityToolkit/Aspire/main/eng/scripts/dogfood-pr.ps1) } 1494" |
axies20
marked this pull request as ready for review
July 30, 2026 17:52
aaronpowell
requested changes
Aug 6, 2026
aaronpowell
left a comment
Member
There was a problem hiding this comment.
Couple of comments/questions, and also the README will need updating, which can be done by dotnet run .\eng\scripts\generate-readme-integrations.cs
Contributor
There was a problem hiding this comment.
Pull request overview
Adds a new Aspire hosting integration package, CommunityToolkit.Aspire.Hosting.StableDiffusionCpp, to simplify running the official stable-diffusion.cpp container images as an Aspire resource (including GPU runtime args and Hugging Face model pre-download), with accompanying tests and a runnable AppHost example.
Changes:
- Introduces
StableDiffusionCppResource+ builder extensions (image variants, GPU support, VAE tiling, Hugging Face model download + child resource). - Adds a Hugging Face model downloader that supports resumable downloads and gated/private repo tokens.
- Adds a new example AppHost and new test project; wires projects into
CommunityToolkit.Aspire.slnx.
Show a summary per file
| File | Description |
|---|---|
| tests/CommunityToolkit.Aspire.Hosting.StableDiffusionCpp.Tests/CommunityToolkit.Aspire.Hosting.StableDiffusionCpp.Tests.csproj | Adds test project for the new integration. |
| tests/CommunityToolkit.Aspire.Hosting.StableDiffusionCpp.Tests/AddStableDiffusionCppTests.cs | Validates image selection, endpoint/health checks, GPU args, child model resource wiring, and downloader helpers. |
| src/CommunityToolkit.Aspire.Hosting.StableDiffusionCpp/StableDiffusionCppResourceBuilderExtensions.cs | Main public extension methods for adding/configuring the stable-diffusion.cpp resource and models. |
| src/CommunityToolkit.Aspire.Hosting.StableDiffusionCpp/StableDiffusionCppResource.cs | Defines the stable-diffusion.cpp container resource and connection-string/endpoint expressions. |
| src/CommunityToolkit.Aspire.Hosting.StableDiffusionCpp/StableDiffusionCppModelResource.cs | Defines the child “model” resource exported to the dashboard/model. |
| src/CommunityToolkit.Aspire.Hosting.StableDiffusionCpp/StableDiffusionCppImageVariant.cs | Defines the supported official image variants. |
| src/CommunityToolkit.Aspire.Hosting.StableDiffusionCpp/StableDiffusionCppContainerImageTags.cs | Centralizes official image registry/name/tag constants. |
| src/CommunityToolkit.Aspire.Hosting.StableDiffusionCpp/README.md | Documents how to use the new integration. |
| src/CommunityToolkit.Aspire.Hosting.StableDiffusionCpp/HuggingFaceModelDownloader.cs | Implements model download (token + resume + progress) and path safety checks. |
| src/CommunityToolkit.Aspire.Hosting.StableDiffusionCpp/CommunityToolkit.Aspire.Hosting.StableDiffusionCpp.csproj | Adds the new hosting integration package project. |
| README.md | Adds NuGet preview link references for the new integration. |
| examples/stable-diffusion-cpp/CommunityToolkit.Aspire.Hosting.StableDiffusionCpp.AppHost/Properties/launchSettings.json | Launch settings for the new example AppHost. |
| examples/stable-diffusion-cpp/CommunityToolkit.Aspire.Hosting.StableDiffusionCpp.AppHost/Program.cs | Minimal runnable example wiring the new resource + model. |
| examples/stable-diffusion-cpp/CommunityToolkit.Aspire.Hosting.StableDiffusionCpp.AppHost/CommunityToolkit.Aspire.Hosting.StableDiffusionCpp.AppHost.csproj | Adds the example AppHost project. |
| examples/stable-diffusion-cpp/CommunityToolkit.Aspire.Hosting.StableDiffusionCpp.AppHost/.gitignore | Ignores local model/output cache under the example. |
| CommunityToolkit.Aspire.slnx | Adds the new src/tests/example projects to the solution. |
Review details
- Files reviewed: 16/16 changed files
- Comments generated: 4
- Review effort level: Lite
aaronpowell
approved these changes
Aug 7, 2026
aaronpowell
enabled auto-merge (squash)
August 7, 2026 02:11
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #1495
Adds a new
CommunityToolkit.Aspire.Hosting.StableDiffusionCppintegration backed by the officialstable-diffusion.cppGHCR images.The integration includes configurable compute image variants, Hugging Face model downloads with token and resume support, model child resources, GPU and server arguments, persistent model/LoRA/upscaler directories, tests, documentation, and a runnable example.
PR Checklist
Other information
Validation completed locally:
dotnet format --verify-no-changespassesgit diff --checkpasses