APNext Geography
Countries, territories and nationalities as dropdowns
- prompt
- random
GeographyPromptNode does one small thing: it gives you dropdowns of 202 countries, 82 territories and 209 nationalities and appends your pick to the prompt. It's part of dagthomas's "SDXL Auto Prompter" pack, and its two real uses are steering place - the architecture, landscape and light of a country - and steering people - the appearance a nationality tag biases toward. Naming a nationality is a genuinely strong lever for face and features; naming a country biases setting.
It's also blunt, and worth being thoughtful about. A nationality tag pulls the model toward whatever average it learned from its training data, stereotypes and all. That's fine when you want "a street in Marrakech" or a specific regional look, and it's a footgun if you lean on it as a lazy substitute for describing an actual person. Use it as a starting bias, then describe the individual you actually want.
How it works
No model, no API key - it joins your prompt with the selected geographic terms via the separator (comma default) and returns a string. As with the whole family, each menu opens with None / Random / Multiple Random, so a seed lets you roll a location or nationality. It's tag-style injection, native to SDXL-lineage checkpoints; on LLM-encoded 2026 models the terms read as instruction text.
The inputs and outputs that matter
prompt- your base text; the geography folds in.countries(202) - biases setting, architecture and landscape.nationalities(209) - biases a subject's appearance; the strongest lever of the three.territories(82) - regions, dependencies and specific locales for finer place-setting.seed- drivesRandom/Multiple Random.attributes(off by default) - adds the pack's extra descriptor words for each entry.
Outputs are prompt and random, both strings, into a CLIP Text Encode.
How to install it
ComfyUI Manager: search comfyui_dagthomas, install, restart. Manual:
cd ComfyUI/custom_nodes && git clone https://github.com/dagthomas/comfyui_dagthomas
cd comfyui_dagthomas && pip install -r requirements.txt
then restart. The requirements.txt installs the whole pack - openai, anthropic, google-generativeai, transformers, decord, scipy - because dagthomas also ships cloud-LLM and video nodes. This builder needs none of it; decord is the usual build headache, and the plain nodes generally load if it fails.
Where people get burned
- Nationality as a crutch. It biases toward an average, stereotypes included. Set the direction with it, then describe the specific person - features, age, expression - so you're not shipping a caricature.
- Country vs nationality confusion.
countriessteers the place;nationalitiessteers the person. Mixing both can send the setting and the subject in different directions. Decide which you're steering. - Model era. On SDXL/Illustrious these behave like tags. On Flux 2 / Z-Image, fold the place or nationality into a plain sentence rather than appending it as a bare tag.
- Redundant picks. "Japan" plus "japanese" plus a Tokyo landmark is three ways of saying the same thing and can over-bias. One well-chosen term usually does it.
Inputs (8)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | — | |
| separator | STRING | , | — |
| stringopt | STRING | — | |
| seedopt | INT | 00–18446744073709550000 | — |
| attributesopt | BOOLEAN | false | — |
| countriesopt | COMBO | None | 202 options: None, Random, Multiple Random, Afghanistan, Albania, Algeria, +196 |
| territoriesopt | COMBO | None | 82 options: None, Random, Multiple Random, Abu Dhabi, Ajman, Akrotiri, +76 |
| nationalitiesopt | COMBO | None | 209 options: None, Random, Multiple Random, afghan, albanian, algerian, +203 |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| prompt | STRING | — |
| random | STRING | — |