Synastry Calculator
The compatibility node your LLM will write love readings from
- synastry_data_json
Synastry is astrology's compatibility reading: it compares two natal charts and lists the aspects between them - "your Sun conjunct their Moon," that kind of thing. Synastry Calculator is the Comfyui-Kerykeion node that does exactly that comparison and hands you the results as Spanish JSON, ready for an LLM to turn into a relationship reading. It's the love node, and it's the most genuinely "two people" thing in this pack: two full birth data sets in, one compatibility summary out.
How it works
It runs the same machinery as Natal Chart Calculator, but twice - once per person. Each birth date/time/city goes through geocoding (Nominatim), timezone resolution (timezonefinder), and a kerykeion AstrologicalSubject in offline mode. Then kerykeion's SynastryAspects class compares the two subjects and pulls out the relevant interplanetary aspects.
The output is where the pack's personality shows. It doesn't hand you raw angles - it hands you human-readable Spanish sentences:
"Sol de Alice en Conjunción con Luna de Bob"
That's the format: planet of person 1, in aspect, with planet of person 2. Aspects are translated to Spanish (Conjunción, Oposición, Trígono, Cuadratura, Sextil) and planets get their Spanish names (Sol, Luna, Quirón, Nodo Norte…). It's explicitly built so a language model can read it and answer "how compatible are they?" in natural language.
The inputs that matter
There are fourteen of them - seven per person - but they fall into two groups:
- Person 1 -
p1_name,p1_year,p1_month,p1_day,p1_hour,p1_minute,p1_city. - Person 2 - the same with
p2_prefixes. Defaults are a Persona 1 / Persona 2 pair in Madrid and Barcelona.
Three things worth knowing:
- The names matter. The name inputs appear verbatim in the output sentences ("Sol de Alice en Conjunción…"). Set them to real names before you pipe this to an LLM, or you'll get readings about "Persona 1."
- Birth time matters for both people. Same caveat as the natal chart - a default 12:00 makes the Ascendant-based aspects iffy. The Sun/Moon stuff survives, the houses don't.
- Two cities means two geocoder calls. Every run resolves both locations, so it's twice as sensitive to network hiccups as the single-chart nodes.
The single output
- synastry_data_json - a STRING holding
persona_1,persona_2, and asinastrialist of those readable aspect sentences. Wire it to a text node to inspect, or straight into an LLM node for the actual reading.
Installing it
Same pack story:
cd ComfyUI/custom_nodes
git clone https://github.com/Meisoftcoltd/Comfyui-Kerykeion
cd Comfyui-Kerykeion
pip install -r requirements.txt
or "ComfyUI-Kerykeion" via ComfyUI Manager and restart. Pure pip dependencies (kerykeion, geopy, timezonefinder, cairosvg, Pillow), no model downloads. The chart math runs locally via Swiss Ephemeris.
Common issues
{"error": ...}strings instead of output. Geocoding is the fragile link - one person's city fails to resolve (or you're offline) and you get a JSON error rather than a crash. Check the console; the messages name which city failed.- Spanish aspect vocabulary. Oposición, Trígono, Cuadratura - if you're not a Spanish speaker and you're reading the raw JSON, it looks exotic. It's just the translation layer doing its job.
- Rate limits. Two Nominatim lookups per run; repeated runs can trip the free-tier throttle.
Worth noting: this pack's astrology is real Swiss Ephemeris computation, but the interpretation is entirely yours (or your LLM's). Synastry Calculator gives you the aspects honestly and lets the model do the woo. For a compatibility-reading workflow in ComfyUI, that's about as good as it gets.
Inputs (14)
| Name | Type | Default | Description |
|---|---|---|---|
| p1_name | STRING | Persona 1 | — |
| p1_year | INT | 19901900–2100 | — |
| p1_month | INT | 11–12 | — |
| p1_day | INT | 11–31 | — |
| p1_hour | INT | 120–23 | — |
| p1_minute | INT | 00–59 | — |
| p1_city | STRING | Madrid | — |
| p2_name | STRING | Persona 2 | — |
| p2_year | INT | 19951900–2100 | — |
| p2_month | INT | 11–12 | — |
| p2_day | INT | 11–31 | — |
| p2_hour | INT | 120–23 | — |
| p2_minute | INT | 00–59 | — |
| p2_city | STRING | Barcelona | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| synastry_data_json | STRING | — |