The Page is Blank
Adjust the parameters on the left to begin the creation process.
{{ loadingStage || 'Consulting the Muses...' }}
{{ sec.title }}
{{ sec.subtitle }}
{{ item.name }}
"{{ item.bio }}"
Adjust the parameters on the left to begin the creation process.
{{ loadingStage || 'Consulting the Muses...' }}
{{ sec.subtitle }}
"{{ item.bio }}"
Jev filter — candidate scores
Jev scored {{ lastJevReport.poolSize }} candidates against the whole list in {{ lastJevReport.requests }} request{{ lastJevReport.requests === 1 ? '' : 's' }} (cost ${{ lastJevReport.cost.toFixed(6) }}), and the top {{ lastJevReport.keep }} were kept. Score = fit − 0.6 × stock − 0.3 × alike − {{ lastJevReport.penalty.toFixed(2) }} × earliness (1 for the first suggestion, 0 for the last).
| Name | Fit | Stock | Alike | Order | Score | |
|---|---|---|---|---|---|---|
| {{ r.name }} | {{ pct(r.fit) }} | {{ pct(r.stock) }} | {{ pct(r.alike) }} | #{{ r.position }} | {{ r.quality.toFixed(2) }} |
Classic filter — first pass, discarded
Full names
{{ lastDiscardList.names.join(', ') }}
Excluded name parts
{{ lastDiscardList.parts.join(', ') }}
Jev (the default): the assistant suggests a larger pool; Jev (a fast decision model, via your OpenRouter key) scores every name against the whole list for fit, stock-name feel and similarity to the others, and the best are kept. Classic: the assistant first lists its own favourite names, which are then excluded (see the discard list below). Compare both: runs both and shows the two results side by side. Without an OpenRouter key, or if Jev fails, the classic filter is used.
Names the assistant suggested early tend to be its most stereotypical, so they lose up to this much score. 0 = ignore the order.
Generate this many "AI favorite" names internally and exclude them from results. 0 = disabled.
Comma or line-separated. These are always excluded regardless of other settings.
Placeholders: {name}, {genre}
Enter a specific name to analyze its fit, origin, and perception based on your current settings.