
Il s'agit d'un script Python qui utilise l'IA pour générer de nouvelles cartes Pokémon aléatoires. Il choisit 6 éléments et un type de créature, et aléatoire génère 1-2 capacités.
Il utilise ensuite OpenAI pour générer un nom Pokemon et une description, et crée une invite pour MidJourney (qui doit être utilisée manuellement).
Ensuite, une commande distincte peut être utilisée pour combiner les données Pokémon avec l'illustration générée pour créer une nouvelle carte Pokémon.
Regardez la vidéo sur YouTube!
La carte générée terminée aura un nom, une description et une illustration de la carte.
| Description | Image de carte |
|---|---|
| Ignax est un pokemon chaud étouffant trouvé dans les régions en forme de désert qui brandisse une hache sombre mortelle. Il est connu pour son comportement féroce et sa capacité de surtension d'allumage, qu'il utilise des avantages dans des batailles féroces et impressionnantes. | ![]() |
Le script peut également générer une série de cartes qui évoluent les unes des autres.
| Formulaire 1 | Formulaire 2 | Formulaire 3 |
|---|---|---|
![]() | ![]() | ![]() |
![]() | ![]() | ![]() |
Pour l'exemple complet, voir la galerie.
La sortie sera dans le dossier /output , avec des dossiers vides pour que vous puissiez mettre des illustrations de carte.
[project root]
├───output
├───cards
├───images
Les cartes auront JSON comme ceci:
{
"index" : 26 ,
"name" : " Flamo " ,
"description" : " ... " ,
"element" : " Fire " ,
"rarity" : " common " ,
"rarity_index" : 0 ,
"hp" : 50 ,
"abilities" : [
{
"name" : " Scorch " ,
"element" : " Fire " ,
"cost" : 2 ,
"is_mixed_element" : false ,
"power" : 40
}
],
"image_prompt" : " a chibi young fire-type parrot pokemon, in a volcano environment, lava texture background, anime chibi drawing style, pastel background --niji --ar 3:2 " ,
"image_file" : " 026_flamo.png "
} Vous pouvez utiliser l' image_prompt pour générer l'illustration de la carte avec MidJourney.
Installez Python 3.10 (ou supérieur)
Installez les dépendances avec pip install -r requirements.txt
Définissez votre PythonPath sur le src afin que les modules puissent être importés.
# For bash, you can use:
export PYTHONPATH= $PYTHONPATH :srcSi vous souhaitez utiliser OpenAI pour générer des noms et des descriptions, vous devrez configurer un compte avec OpenAI.
Ensuite, mettez votre clé API dans un fichier appelé .env à la racine du projet.
# In your .env file
OPENAI_API_KEY= " sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx "Si vous voulez des illustrations générées par l'IA, vous devrez également créer un compte (rejoignez simplement leur discorde) avec MidJourney.
L'exécution générera une collection de Pokémon dans le dossier output . AVERTISSEMENT! Chaque fois que vous exécutez ceci, il écrasera les fichiers existants dans le dossier output .
python src/generate.py Cela générera des fichiers json de carte, 1 série de cartes (entre 1-3 cartes) pour chaque élément. La rareté, le type de créature et le nombre d'évolutions des cartes seront aléatoires.
Vous verrez le résumé de la série de cartes générée:
Chippo (Neutral)
HP: 30
Rarity: ★ (common)
Abilities:
Slash (Neutral)
Cost: ● ●
Power: 20
Description: [...]
Image Prompt: [...]
python src/generate.py -n 10python src/generate.py -e fire Cela ne générera que des cartes pour l'élément fire . Les éléments disponibles sont: fire , water , grass , electric , psychic , neutral .
Vous pouvez également spécifier un type de créature spécifique (sujet) pour générer des cartes. Cela remplacera la sélection de sujets par défaut (qui est aléatoire).
python src/generate.py -e grass --subject pumpkinVous pouvez littéralement mettre n'importe quoi ici! Amusez-vous avec?
| Pumkpin | Toucan | Sphinx |
|---|---|---|
![]() | ![]() | ![]() |
Vous pouvez utiliser l' image_prompt pour générer l'illustration de la carte avec MidJourney. L'invite d'image sera dans le fichier json pour chaque carte (et également dans l' image_prompts.txt dans le dossier output ).
Chippo::0 a chibi young neutral-type toucan pokemon, in a village environment, bright lighting, anime chibi drawing style, pastel background --niji --ar 3:2
Copiez-le dans l'invite MidJourney /image . Il générera 4 variations de l'image. Vous pouvez ensuite le monter à l'échelle en appuyant sur l'un des boutons U du bot.
Téléchargez et enregistrez l'image dans le dossier output/pokemon-classic/images . Renommez ensuite le fichier pour correspondre à l' image_file dans le fichier json (par exemple 001_chippo.png ).

Vous pouvez utiliser le script render_cards.py pour rendre les cartes dans un fichier PNG. Il ira dans votre dossier output/pokemon-classic/renders .
python src/render_cards.py Toutes les cartes qui ont un fichier image dans le dossier output/pokemon-classic/images seront rendues. Si aucune image n'est trouvée, elle rendra une carte vierge.
| feu | eau | herbe | électrique | psychique | lutte | neutre |
|---|---|---|---|---|---|---|
![]() | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() |
Merci à TheDuckTamerblanks pour le modèle de carte vierge.