Show HN: Make your own AI-generated Magic: The Gathering cards with GPT-2
minimaxir.com
minimaxir.com
1. Haha, Javascript _is_ sorcery. Awesome.
2. Wait, Javascript is evil sorcery?
3. This card does a lot
4. Wait, the result of this card is that I do something pointless, then I give my opponent 7 cards from my library, then I put the rest of my library into my graveyard?
In fact, I got one that is identical to an actual card.
Generated by GPT-2 [2]:
Tephraderm {1}{R} (common)
Sorcery
Each player sacrifices a land.
Actual M:tG card (copied by hand by me and keeping the same notation): Tremble {1}{R} (Odyssey common)
Sorcery
Each player sacrifices a land.
Also, the names of cards don't seem to be generated by the RNN. "Tephraderm", above, is an actual Magic card (a red rare creature from Onslaught). I certainly did see a "Bontu, Primal Calamity" (which I didn't save) whose name was basically a mashup of the names of "Bontu the Glorified" and "Zacama, Primal Calamity"._______________
[1] https://www.mtgsalvation.com/forums/magic-fundamentals/custo...
[2] https://i.imgur.com/PdHkBXr.png
Cards discussed above:
Tremble: https://shop.tcgplayer.com/magic/odyssey/tremble
Tephraderm: https://shop.tcgplayer.com/magic/onslaught/tephraderm
Zacama, Primal Calamity: https://shop.tcgplayer.com/magic/rivals-of-ixalan/zacama-pri...
Bontu the Glorified: https://shop.tcgplayer.com/magic/amonkhet/bontu-the-glorifie...
Sorry, can't link to the Gatherer for any of the cards above- it's down for me.
These are from mtg-gpt-2-cloud-run/generated_card_dumps/temp_0_7/cards_0.txt and just the top few rows (also, only the ones I immediately recognised):
Shrieking Specter {6}{B} (common)
Creature ~ Specter (4/4)
Flying
Whenever Shrieking Specter attacks, defending player discards a card.
Luminous Bonds {2}{W} (common)
Enchantment ~ Aura
Enchant creature
Enchanted creature can't attack or block.
Mwonvuli Acid-Moss {3}{G} (uncommon)
Sorcery
Destroy target land. Search your library for
a forest card and put that card onto the battlefield
tapped. Then shuffle your library.
Druid'S Deliverance {1}{G} (common)
Instant
Prevent all combat damage that would be dealt this turn. Populate.
And so on.Don't ask me why I immediately recognised Shrieking Specter.
It would take a bit of work to figure out which of the generated cards are mashups of existing cards, or the characteristics of existing cards with new names, and which ones are original. Do you have a way to figure this out?
Hey, this is an interesting project regardless. At least with M:tG cards it's very easy to see when GPT-2's output is identical to its input. Imagine trying to figure that out with arbitrary text...
Edit: Oh, the README. Reading it now.
The app uses a random temperature between 0.7 and 1.2 to prevent it from going off-the-rails.
Demonic Trade {1}{B} (common)
Sorcery
Buyback {2}
Destroy target artifact.
(For some reason, the text on the side says "Uncast" instead of "counter".)
That's how the source script encodes it (to differentiate it from "counters" like +1/+1 counters) but for some reason it's not fixed during decode. I'm tempted to manually add a fix.
Pretty awesome
https://www.mtgsalvation.com/forums/magic-fundamentals/custo...
I think towards the end of the thread the initiator of the thread and some of the people in the impromptu community that formed around him started discussing how to generate illustrations and even did it to some extent.
I'm not sure it's quite fair, as RoboRosewater is funnier when it's garbled. Some of its cards have been… memorable :)
https://andymakesgames.tumblr.com/post/167733819029/urzas-dr...
https://twitter.com/jonathanfly/status/1124918657220534272
This person trained a nice cart art model: https://twitter.com/mkturkcan/status/1121228356899561472
Lastly just an amusing MTG card mashup:
This worked for a couple of cards and then broke. The image is not related to the data listed to the side. https://i.imgur.com/HiuuPU0.png
Here's a Hacker News card:
The first couple of cards I generated were way overpowered though. The first one was an uncommon 9/8 for 4 mana.
Internal Server Error