This SDK provides ComfyUI as a persistent browser-accessible service for
node-based diffusion workflows in Workshop. ComfyUI runs with GPU acceleration
on NVIDIA, AMD, and Intel GPUs with a CPU fallback when no supported GPU is
available. The Python virtual environment, downloaded models, and generated
outputs are persisted on the host across workshop updates. Optionally, connect
the venv plug to the uv SDK for a uv-managed environment.
A minimal workshop:
# workshop.yaml
name: comfy-app
base: [email protected]
sdks:
- name: system
plugs:
comfy-ui:
interface: tunnel
endpoint: 127.0.0.1:8188
- name: comfy
channel: latest/stable
actions:
verify: |
curl -fsS http://127.0.0.1:8188/system_statsThis exposes ComfyUI through the browser tunnel, so the UI is accessible at
http://localhost:8188 on the host.
- No prerequisite SDKs are required for the default setup. The
uvSDK is optional; see Using a uv-managed venv below. - No specific project layout is needed. ComfyUI reads and writes its own
directories under
/home/workshop/comfy/inside the workshop. - The first launch installs PyTorch and ComfyUI dependencies into the virtual
environment via the
setup-projecthook, so it takes longer than subsequent launches. The installed packages are persisted via thevenvmount plug and reused across workshop updates.
After workshop launch, open http://localhost:8188 in a browser.
- The default ComfyUI workflow is available in the UI. Custom workflows can be loaded by drag-and-drop; see the ComfyUI repository for workflow examples and upstream documentation.
- Generated images are written to
/home/workshop/comfy/output/, which persists across workshop updates via theoutputmount plug.
To confirm the ComfyUI service is running, check the user service from a workshop shell:
workshop shell
systemctl --user status comfy
journalctl --user -u comfyBy default, ComfyUI runs inside a Python virtual environment managed by the
SDK itself. If you prefer to manage packages with uv, you can connect the
comfy:venv plug to the uv SDK's venv slot.
When connected, the uv SDK's virtual environment is mounted at the comfy SDK's
venv path. PyTorch and ComfyUI dependencies are still installed into the venv
on first launch. This lets you manage packages with uv pip instead of plain
pip.
# workshop.yaml
name: comfy-app
base: [email protected]
sdks:
- name: system
plugs:
comfy-ui:
interface: tunnel
endpoint: 127.0.0.1:8188
- name: uv
channel: latest/stable
- name: comfy
channel: latest/stable
connections:
- plug: comfy:venv
slot: uv:venv- Interface:
gpu - Purpose: Grants access to host GPU hardware for accelerated inference.
- Interface:
mount - Workshop target:
$SDK/venv - Purpose: Persists the Python virtual environment (PyTorch and ComfyUI dependencies) across workshop updates.
- Interface:
mount - Workshop target:
/home/workshop/comfy/models - Purpose: Persists downloaded model checkpoints, VAEs, LoRAs, and other model files across workshop updates.
- Interface:
mount - Workshop target:
/home/workshop/comfy/output - Purpose: Persists generated images and other output files across workshop updates.
- Interface:
tunnel - Endpoint:
127.0.0.1:8188 - Purpose: Exposes the ComfyUI HTTP server to the host for browser access.
Connect a matching plug on the
systemSDK to make ComfyUI accessible at the plug address on the host.
- ComfyUI community: ComfyUI GitHub
- Workshop forum: Discourse
- Please review our Code of Conduct before participating.
All contributions, including code, documentation updates, and issue reports, are welcome!
- See
CONTRIBUTING.mdfor guidelines. - Open issues or pull requests on the official repository.
Copyright 2025-2026 Canonical Ltd.
ComfyUI is licensed under the GNU General Public License v3.0.