Drop the dedicated "stable-diffusion.cpp" generation node. The generic
Image Generation (Custom Model) node already covers it: provider-specific
settings come from the stable-diffusion.cpp Extra node through
extra_params, which is what that input exists for.
- Providers can declare model_optional; the sdcpp provider does, so
model_id may stay empty because sd-server uses its loaded model.
- The sdcpp protocol takes the size from the generic size input
(WxH or auto) and still follows the init image size when unset.
- Example workflow, tests and docs use the Custom Model node.
Add support for the native /sdcpp/v1 API of stable-diffusion.cpp's
sd-server (issue #4):
- Provider: stable-diffusion.cpp (default http://127.0.0.1:1234, API key
optional for reverse proxies) and a "stable-diffusion.cpp" generation
node using whatever model the server has loaded.
- Async jobs: submit to /sdcpp/v1/img_gen, poll jobs/{id}, and cancel the
server-side job when ComfyUI interrupts or task_timeout is reached.
- "stable-diffusion.cpp Extra" node wired through a new extra_params input:
negative prompt, steps (capped at 100 like sd-server), cfg, sampler,
scheduler, distilled guidance, LoRA, init image + mask + strength,
ControlNet, IP-Adapter, clip skip, eta, flow shift, hires fix, VAE tiling
and cache mode. Port values merge under the node's extra JSON, and
connecting it to another provider fails with a clear error.
- Framework: ExtraNode base, FamilySpec.extra_input, mask params,
key_optional connections; parse_extra moves into the framework.
- Example workflow, Colab notebook for running sd-server remotely, tests.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>