HashLips / hashlips_art_engine

HashLips Art Engine is a tool used to create multiple different instances of artworks based on provided layers.
MIT License
7.18k stars 4.3k forks source link

How to make exact numbers of attributes to be generated? #1217

Open LorenzoElenkov opened 2 years ago

LorenzoElenkov commented 2 years ago

I am trying to change the code in order to be able to generate 111 images with predetermined numbers of attributes in a layer that add up to 111:

Layer: 1 Attribute#1: 53 occurrences Attribute#2: 20 occurrences Attribute#3: 38 occurrences they all add up to 111

Layer: 2 Attribute#4: 23 ... Attribute#5: 18 ... ..... Attribute#11: 13 ... (they all add up to 111)

Layer: 3 Couple of attributes that all add up to 111

Layer 4: One attribute only that is with 111 occurrences

By running the generator, the output should be 111 unique images where every attribute is used (in general)

Do you have any idea how to accomplish this?

I have modified the code where the function createDna and every time I run the code it does everything correctly but it always reach around 100 images created and then it always says that DNA exists until it reach the threshold of 10000 checks.

bolshoytoster commented 2 years ago

@LorenzoElenkov do you have enough layers/attributes to generate 111 unique images?

Could you run Get-ChildItem -Recurse layers in powershell and paste the output here please.

LorenzoElenkov commented 2 years ago

@bolshoytoster I am on MacBook M1, powershell is windows, is zsh the equivalent for powershell?

Each layer has various attributes ranging from 1 to 16. Then, each attribute has a number of occurrences. All layers' attributes occurrences add up to 111 so all attributes occurrences are exactly matching the output number.

bolshoytoster commented 2 years ago

@LorenzoElenkov

I am on MacBook M1, powershell is windows, is zsh the equivalent for powershell?

sorry, I assumed you were on windows. Could you run ls -R layers instead.

LorenzoElenkov commented 2 years ago

@bolshoytoster

Armor Background Tribe Weapon

layers/Armor: Bronze#53.png Gold#20.png Silver#38.png

layers/Background: Empty#23.png Fire#18.png Fog#20.png Lightning#8.png Night#10.png Rain#15.png Sandstorm#4.png Snow#13.png

layers/Tribe: Aphrodite#111.png

layers/Weapon: Fire bow#1.png Fire sword#4.png Golden spear#11.png Ice daggers#5.png Iron bow#8.png Iron sword#12.png Fire daggers#2.png Golden bow#6.png Golden sword#9.png Ice spear#8.png Iron daggers#9.png Fire spear#6.png Golden daggers#7.png Ice bow#3.png Ice sword#6.png Iron spear#14.png

There we go.

I hope you can help me out :)

LorenzoElenkov commented 2 years ago

It's worth mentioning that the number of each layer represents the occurrences and not a rarity percentage. E.g. out of 111 images generated, 53 must be with Bronze Armor, etc...

gblotter commented 2 years ago

yeah - I'd be interested in the answer to this as well 👍🏽

bolshoytoster commented 2 years ago

@gblotter an answer to what? There are multiple questions here.

gblotter commented 2 years ago

Do you have any idea how to accomplish this?

I'm interested in accomplishing the same thing.

It looks like this issue was half-way-solved (i.e. you asked for a terminal output to help you troubleshoot and it got dropped there). I guess at the heart of it, I've got a similar need - I want a to generate art for predetermined numbers of attributes in a layer that add up to X.

bolshoytoster commented 2 years ago

@LorenzoElenkov

I have modified the code where the function createDna and every time I run the code it does everything correctly

Could you share your modifications if possible for @gblotter please.