Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/robiningelbrecht/pokemon-card-generator
A PHP app that generates Pokemon cards by using GPT and Stable Diffusion.
https://github.com/robiningelbrecht/pokemon-card-generator
ai gpt stable-diffusion website
Last synced: about 1 month ago
JSON representation
A PHP app that generates Pokemon cards by using GPT and Stable Diffusion.
- Host: GitHub
- URL: https://github.com/robiningelbrecht/pokemon-card-generator
- Owner: robiningelbrecht
- License: mit
- Created: 2023-02-10T10:16:03.000Z (almost 2 years ago)
- Default Branch: master
- Last Pushed: 2023-03-27T14:14:27.000Z (over 1 year ago)
- Last Synced: 2024-11-10T02:34:12.556Z (about 1 month ago)
- Topics: ai, gpt, stable-diffusion, website
- Language: PHP
- Homepage: https://pokemon-card-generator.robiningelbrecht.be/
- Size: 103 MB
- Stars: 89
- Watchers: 4
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-stable-diffusion - pokemon-card-generator
README
AI Pokemon card generator
---
This PHP script uses AI to generate new, random Pokemon cards by using
- `GPT` to generate a name and description
- `Stable Diffusion` to create a visual
- [Pokémon TCG](https://github.com/PokemonTCG/pokemon-tcg-data) for accurate moves sets
- [PokeApi](https://pokeapi.co/) for accurate element typesFirst of all, thanks to [Jack](https://github.com/pixegami) for the amazing work
on the [Python equivalent](https://github.com/pixegami/pokemon-card-generator) of
this repository. I was inspired by his creativity to generate Pokémon cards out of thin air,
although I came up with a slightly different approach.### Comparison
| | This repo | Jack's repo |
|------------------------------------------------|:-------------------:|:-------------:|
| AI to generate name and description | OpenAI - GPT3, GPT4 | OpenAI - GPT3 |
| AI to generate visual | Stable Difussion | Midjourney |
| Generate multiple cards at once | ✅ | ✅ |
| Generate cards of a specific element | ✅ | ✅ |
| Generate cards of a specific creature | ✅ | ✅ |
| Generate a series that evolve from one another | ✅ | ✅ |
| Fully generate a card with one command | ✅ | ❌ |
| Gallery with overview of generated cards | ✅ | ❌ |## Installation
```bash
> git clone [email protected]:robiningelbrecht/pokemon-card-generator.git
# Build docker containers
> docker-compose up -d --build
# Install dependencies
> docker-compose run --rm php-cli composer install
```## Configuration
For this script to work you'll need two different API keys
### OpenAI
* Set up an OpenAI account by navigating to https://beta.openai.com/signup
* Create an API key on https://platform.openai.com/account/api-keys### Replicate.com
* Set up a Replicate account by navigating to https://replicate.com/signin
* Copy your API key from https://replicate.com/accountThe model used for generating visuals is [OpenJourney](https://replicate.com/prompthero/openjourney).
It's a Stable Diffusion model fine-tuned on Midjourney v4 images.Both accounts have free tiers at first, but after a while you will need to enter
credit card details. It'll cost you around 1-2 cents to generate a card.### .env
Copy `.env.dist` and rename to `.env`, it should at least contain following info:
```dotenv
OPEN_AI_API_KEY=your-open-ai-api-key
REPLICATE_API_KEY=your-replicate-api-key
```## Generate your first card
At this point, you should be locked and loaded to generate your first Pokémon card by running
```bash
> docker-compose run --rm php-cli bin/console app:card:generate
```Your CLI should output something along the lines of
You'll be able to view your card and all information used to generate it,
by navigating to the card gallery page: `http://localhost:8080/`.### CLI command options
```
-t, --cardType The card type you want to generate, omit to use a random one. Valid options are dark, electric, fighting, fire, grass, normal, psychic, steel, water
-r, --rarity The rarity of the Pokémon you want to generate, omit to use a random one. Valid options are common, uncommon, rare
-s, --size The size of the Pokémon you want to generate, omit to use a random one. Valid options are xl, l, m, s, xs
-c, --creature The creature the Pokémon needs to look like (e.g. monkey, dragon, etc.). Omit to to use a random one
-e, --evolutionSeries Indicates if you want to generate a series that evolve from one another. Options "size", "rarity" and "numberOfCards" will be ignored
-x, --numberOfCards The number of cards to generate. A number between 1 and 10 [default: 1]
-f, --fileType The image file type you want to use. Valid options are svg, png [default: "png"]
-g, --gptVersion GPT version to use. Valid options are 3, 4 [default: 4]
-h, --help Display help for the given command. When no command is given display help for the list command
```The PNG slightly differs from the SVG because the latter allows for more flexibility while generating the image
## Examples
There's an example gallery available on https://pokemon-card-generator.robiningelbrecht.be/
## Gotta generate 'em all
Be sure to also check https://gotta-generate-em-all.com.
It generates and publishes a new card every day 🥳. Cards are also publised to https://www.reddit.com/r/GottaGenerateEmAll/## Acknowledgements
Thanks to [TheDuckTamerBlanks](https://www.deviantart.com/katarawaterbender) for the blank card templates.