Nodes/saya-comfy-couple-plus/Saya Comfy Couple · COPY · No Settings
ComfyUI Node

Saya Comfy Couple · COPY · No Settings

The no-knobs twin that keeps your second pass identical

By alphaziod·Created 3 months ago·Updated about 15 hours ago· 3
Saya Comfy Couple · COPY · No Settings
  • model_main
  • main_positive
  • person_1_positive
  • person_2_positive
  • negative
  • latent
  • couple_config
  • dual_sampling_model
  • support_model_1
  • support_model_2
  • support_model_3
  • patched_model_main
  • patched_dual_sampling_model
  • patched_support_model_1
  • patched_support_model_2
  • patched_support_model_3
  • positive_final
  • detailer_positive
  • negative
  • mask_person_1
  • mask_person_2
  • couple_config

This is the sibling node of Saya Comfy Couple, and the name tells you almost everything: it runs the exact same couple pipeline but with no settings on the node itself. All the knobs - orientation, center, transition, binding mode, the experimental attention parameters - come in through one couple_config input instead of widgets.

Why would you want that? Because in the bigger automatic workflows this pack is built for, the couple usually needs to happen more than once. Phase 1 builds the base image with the full regional couple. Later hires and detail passes need to reproduce the identical spatial setup - same split, same masks, same binding - or the character regions drift between passes and your identity work falls apart. The settings live in exactly one place, the master SayaComfyCouple node; every Copy downstream just relays them.

Inputs

Same shape as the master, minus the knobs:

  • model_main, main_positive, person_1_positive, person_2_positive, negative, latent - identical to the master node.
  • couple_config - the SAYA_COUPLE_CONFIG socket. You get one from the master node's couple_config output, or from SayaCouplePromptBundleUnpack if your prompts are traveling as serialized bundles between phases.
  • Optional dual_sampling_model and support_model_1/2/3 - extra models to patch with the same regional attention, if your phase runs more than one.

Outputs

Identical port-for-port to the master: patched_model_main (plus patched variants for any support models), positive_final, detailer_positive, negative, mask_person_1, mask_person_2, and a normalized couple_config you can keep passing onward. Wire patched_model_main → sampler model, positive_final → sampler positive, and you're done.

A couple of subtleties worth knowing. The config carries a person_2_enabled flag, and it's authoritative - if the original phase ran solo (empty person 2), the Copy won't silently re-enable a second region. The node also re-normalizes the incoming config (clamping every value to its valid range), so a stale config from an older pack version still executes safely rather than crashing. And if the same model object is fed to two branches, it only patches it once and reuses the result - a small detail, but it matters when you're chaining five samplers off one checkpoint.

The trap to avoid

Don't reach for Copy on its own. It does nothing useful without a real couple_config wired in, and if you're just building a single-pass duo image, the master node is the one with the widgets you actually want to touch. Copy earns its place as the "second opinion" node that lives inside later phases - which is exactly why it's filed under the pack's rescue category. If your workflow is one simple couple, ignore this node. If it's a multi-pass pipeline where the same couple has to survive an upscale or a refiner, this is how you keep it honest.

Installation is the same as the rest of the pack: ComfyUI Manager search saya-comfy-couple-plus, or git clone https://github.com/alphaziod/saya-comfy-couple-plus into custom_nodes, then restart. Keep in mind the whole pack is WIP - ports can shift between updates, so back up workflows before pulling.

Categorysaya/rescue

Inputs (11)

NameTypeDefaultDescription
model_mainMODEL
main_positiveCONDITIONING
person_1_positiveCONDITIONING
person_2_positiveCONDITIONING
negativeCONDITIONING
latentLATENT
couple_configSAYA_COUPLE_CONFIG
dual_sampling_modeloptMODEL
support_model_1optMODEL
support_model_2optMODEL
support_model_3optMODEL

Outputs (11)

NameTypeDescription
patched_model_mainMODEL
patched_dual_sampling_modelMODEL
patched_support_model_1MODEL
patched_support_model_2MODEL
patched_support_model_3MODEL
positive_finalCONDITIONING
detailer_positiveCONDITIONING
negativeCONDITIONING
mask_person_1MASK
mask_person_2MASK
couple_configSAYA_COUPLE_CONFIG