Files
2026-10-04 11:00:22 +08:00

87 lines
4.7 KiB
Markdown

# Preparing an installation test
The four nodes remain independent. Use the Python interpreter from the target ComfyUI.
## Read the installed node interfaces
```sh
python tools/prepare_workflow.py --base-url http://127.0.0.1:8188 --out-dir .local/preparation
```
Alternatively, export the target instance's `/object_info` response through its authenticated
session and inspect the saved JSON offline:
```sh
python tools/prepare_workflow.py --object-info /path/to/object_info.json --out-dir .local/preparation
```
Choose a new output directory on each run. Reports include node presence and output slots,
but omit schema defaults, endpoints and credentials. The tool only reads schema data;
it does not queue workflows, install nodes or send notifications. Exit code 0 means the
carrier and standalone notification templates are ready; 2 means at least one has missing
or incompatible prerequisites. The text example has its own readiness flag because its
sample source, PrimitiveStringMultiline, is not required for the notification node itself.
None of these flags establishes that the instance executed a workflow successfully.
## Generated workflows
Each available workflow is written in both API and canvas JSON formats:
- `carrier-smoke`: `EmptyImage(16x16) -> ChickHideNode -> ChickSaveImage`.
- `notify-text-smoke`: `PrimitiveStringMultiline -> NotifyMeNode.msg` and the same STRING value
through `NotifyMeNode.passthrough`.
- `notify-empty-smoke`: NotifyMeNode alone, with its optional msg socket unconnected.
The carrier template follows the Duck media wiring: IMAGE frames enter `images`, optional
AUDIO enters `audio`, and `chick_image` connects to ChickSaveImage. Text payload encoding
is omitted. Download the saved PNG and decode it with `chick.codec.decode_bytes`; it should
contain a 16x16 blue image. When a password is set, check that the payload requires that
password and that PNG metadata contains no execution prompt, workflow or password.
ChickSaveImage inherits the target installation's SaveImage implementation, omits its
hidden `prompt` input and filters `extra_pnginfo` to preserve only `AIGC` provenance.
Prompt and workflow snapshots are never forwarded to the PNG writer.
The notification templates are independent of the carrier template and SaveImage outputs.
Fill `callback_url` with an actual receiver on the allowlisted host `notify.bro3.net`,
and `id` with your task identifier before executing. The plugin does not provision a receiver.
The text example sends exactly `{"id":"demo-task-001","msg":"Sample message"}`;
the unconnected example sends `{"id":"demo-task-001","msg":""}`. Older workflows that omit
`id` send an empty string for that field. The receiver must
return HTTP 200. Queue the same notification again to verify another POST is sent even
when the text source is cached. Unicode, newlines and whitespace must be preserved.
Local automated tests use an isolated DNS/socket fixture and the [bundled receiver](LOCAL_CALLBACK.md).
The installed node has no loopback option; workflow inputs cannot extend the host allowlist.
For real workflows, connect the STRING output whose completion should precede the
notification. The node sends that string as msg without interpreting URLs or JSON inside
it. The separate optional wildcard `passthrough` socket accepts any ComfyUI value; after the
callback succeeds, that exact object is returned through the wildcard output. An unconnected
passthrough output is `None`, and an unconnected msg socket does not establish ordering with
other workflow branches.
## Upgrade from 0.5.x
Restart ComfyUI and recreate NotifyMe or import updated examples. The removed
`allow_localhost` widget changes saved widget ordering; re-enter the task ID and callback URL.
All callbacks must use the exact allowlisted host, including workflows created before this update.
## Upgrade from 0.3.x
Restart ComfyUI, recreate old NotifyMe nodes and reconnect upstream text to msg. The old
image and preview_url inputs and typed IMAGE output have been removed; the current node has
a wildcard passthrough input/output. Connect carrier images directly to ChickSaveImage, and
remove any old ChickHide text_input connections.
## Installation handoff
Provide the repository or a source ZIP with its exact commit and SHA-256, the dependency
list, the four registered node names, and the minimal workflows. A private repository
requires access to be arranged before installation. Registry publication additionally
requires a real PublisherId; an empty placeholder is not a completed registration.
Keep credentials, private endpoint values and environment-specific reports outside tracked
files. Examples contain synthetic data; generated templates leave callback_url empty.
All notification examples leave callback_url empty, including examples with legacy local filenames.