Saya Couple Prompt Bundle PACK
Your four prompts, stuffed into one string that survives anything
- couple_config
- prompt_bundle_json
Here's the problem this node exists for: in a normal ComfyUI workflow, a text prompt is just a value sitting on a node. The moment you split one big workflow into separate saved graphs - which is exactly what this pack's multi-phase pipeline does - those prompt values can't travel with the image. Something has to carry "what was the base prompt, what was person 1, what was the negative" across the boundary. SayaCouplePromptBundlePack is that courier: it takes your four couple prompts and serializes them into a single JSON string you can store, save, or pass through anything that handles text.
It's a packing node, not a processing node - no text encoding happens here, nothing is sent to a sampler, and there are no models or VRAM involved. Think of it as a compact envelope for the couple prompt block.
Inputs and output
The required inputs are exactly the four prompts the whole Saya couple architecture is built around:
base_prompt- the shared scene (what's happening, where, framing, lighting)person_1_prompt- character 1's identityperson_2_prompt- character 2's identitynegative_prompt- the shared negative
There's also an optional couple_config (SAYA_COUPLE_CONFIG) input. Wire the master couple node's couple_config output here and it gets folded into the bundle too - which matters, because the config is what lets a later phase rebuild the exact same mask split and binding without anyone re-entering center and transition by hand.
The single output, prompt_bundle_json, is a compact JSON document with a schema version tag baked in (ensure_ascii=False, so non-ASCII tags survive intact). Version 2 at the time of writing, in case you ever have to read one in a text editor and wonder what the fields mean.
When you'd actually use it
The natural pairing is with SayaCouplePromptBundleUnpack on the other side of a phase boundary. But you can also just treat the JSON as a portable prompt file: drop it into a PrimitiveString, save it with a workflow, or paste it into the unpack node later to restore the whole block. Since it's plain text, it also survives ComfyUI's metadata round-trip - that's one of the reasons the pack authors built it, per the source comments, so isolated hires phases can rebuild a couple from a stored string.
Two honest notes. First, this node assumes you're working inside the Saya architecture - if you don't have the couple structure (base / P1 / P2 / negative) to begin with, it's just JSON-ifying four unrelated strings. Second, the bundle is metadata, not a guarantee: person 2 being blank here doesn't stop a phase from doing its thing - that enforcement lives in the unpack node and the config.
Install via ComfyUI Manager (search saya-comfy-couple-plus) or git clone https://github.com/alphaziod/saya-comfy-couple-plus into custom_nodes, then restart. No extra dependencies beyond numpy/Pillow, no downloads. Remember the pack is WIP - schema versions in the bundle exist precisely so the format can evolve without silently breaking your saved workflows.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| base_prompt | STRING | — | |
| person_1_prompt | STRING | — | |
| person_2_prompt | STRING | — | |
| negative_prompt | STRING | — | |
| couple_configopt | SAYA_COUPLE_CONFIG | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| prompt_bundle_json | STRING | — |