Natal Chart Calculator
A real astrologer's data, ready to feed your LLM
- astral_data_json
This is the flagship of the Comfyui-Kerykeion pack. Give Natal Chart Calculator a birth date, a birth time, and a city, and it returns a complete natal chart as JSON - Sun, Moon, Ascendant, all ten planets, and all twelve houses - in Spanish, formatted so a language model can read it and talk to you like an astrologer. The pack's own README pitches it exactly that way: "Ideal for connecting to an LLM node and asking it to act as an astrologer."
If you've ever wanted an actual chart computation driving your workflow instead of a vibe, this is where the pack earns its keep.
How it works
The pipeline is three steps, and understanding them explains most of this node's behavior:
- Geocoding. Your
city_namegoes to OpenStreetMap's free Nominatim geocoder to get latitude/longitude. This is a network call - no API key, but it needs internet, and it must find the city. - Timezone.
timezonefinderresolves the timezone at those coordinates, because a birth time in Madrid isn't the same absolute moment as one in Mexico City. - Chart calculation. The heavy lifting is done by kerykeion, a proper Python astrology engine. The node runs it with
online=False- kerykeion's "offline mode" - which means it computes positions locally with the Swiss Ephemeris (viapyswisseph) rather than fetching from an online service. The name is a bit of a lie, though: the chart math is offline, but the geocoding step still needs the network.
The result is a JSON string with Spanish keys and sign names: sol, luna, ascendente, a planetas block for the eight other planets (Mercury through Pluto), and a casas block for houses 1 through 12. Sign names are translated to Spanish - Aries stays Aries, but Pisces becomes Piscis and Aquarius becomes Acuario.
The inputs that matter
All of them are required, but only a few will bite you:
- year (1900–2100), month, day - the birth date. Mind the ranges; kerykeion isn't going to do a chart for 1750.
- hour, minute - the birth time. This one matters more than it looks. The Ascendant (and the house cusps) depend on the exact time and place. Default is 12:00 - if you don't know a real birth time, the Ascendant and houses are essentially placeholders. The Sun and Moon signs will still be roughly right.
- city_name - free text, default "Madrid". It goes to a geocoder, so spell it well enough that Nominatim can find it; "Springfield" is going to be a gamble.
The single output
- astral_data_json - a STRING. Wire it to a text display node to read it, or (the intended flow) feed it to an LLM node like Ollama with a system prompt along the lines of "You are a fortune teller. With this natal chart, write a reading." The JSON structure is exactly what a model can reason over.
Installing it
cd ComfyUI/custom_nodes
git clone https://github.com/Meisoftcoltd/Comfyui-Kerykeion
cd Comfyui-Kerykeion
pip install -r requirements.txt
or search "ComfyUI-Kerykeion" in ComfyUI Manager and restart. Requirements are kerykeion, geopy, timezonefinder, cairosvg, Pillow - all pure pip installs, no model downloads, no checkpoints. kerykeion pulls in pyswisseph, which bundles the Swiss Ephemeris data, so everything the chart math needs arrives via pip.
Common issues
- "Ciudad no encontrada" errors. The node geocodes every single run. No internet, or a city Nominatim can't resolve, and you get a JSON
{"error": "Ciudad no encontrada o error de geocodificación"}string instead of a chart - not a crash, a JSON error you have to notice. Check the console for theWarning (NatalChartCalculator)line. - Geocoding rate limits. Nominatim's free tier is polite-but-limited. Rapid repeated runs can get throttled, so don't hammer it.
- Spanish output. If you're English-speaking, the JSON comes back in Spanish and it's not configurable - that's a feature of this pack, not a bug you've introduced. Either feed it to a Spanish-capable LLM or treat it as data.
- Wrong Ascendant. The #1 "why is my chart wrong" report: a guessed birth time. The node can only compute what you feed it.
Honest verdict: it's a niche node in a niche pack, but it does real astronomical calculation rather than faking it - and for "LLM astrologer" workflows, there's not much else in ComfyUI that does this cleanly.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| year | INT | 20001900–2100 | — |
| month | INT | 11–12 | — |
| day | INT | 11–31 | — |
| hour | INT | 120–23 | — |
| minute | INT | 00–59 | — |
| city_name | STRING | Madrid | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| astral_data_json | STRING | — |