There is a lot of talk about generative intelligence and how to integrate it into business processes for producing and processing information. Here is a practical example of application. Starting problem: creating a collection of images for the football-player database of Fantacalciopedia, a site focused on fantasy football information.
Work objectives: improving the pre-existing image set
Developed in 2017, the pre-existing image set on the FCP site had been created using vector graphics with generic puppets diversified by skin color (B/W) and hairstyles. The set contained about 60 variants for a football-player database that fluctuates between 600 and 700 players depending on seasons and moments, therefore a ratio of about 1 image for every 12 players. Therefore, the first objective of this work is to increase the variability of the image set, to allow a representation of at least 1 image every 6 players, or at most 1 every 7.

Objective 2: improve character expressiveness
Another limitation of the 2017 character set is its low expressiveness. Since they were developed in vector graphics, the characters have no expressions; they were conceived to represent a generic and deliberately minimalist aspect of the footballers. But today, in 2025, the second objective of this work is to develop an image collection that has greater expressiveness and a greater ability to represent faces and the specific features of footballers.
Problems to address: moving from a black/white model to a multiethnic model with age variables
The main difficulty when creating a collection of generic faces is finding a systemic approach to representing somatic peculiarities. But not only that: there is also the age factor, players have faces and expressions that are also a function of different ages and of a different degree of experience and awareness. In short, a fascinating challenge. Let's see how we addressed it.
![]()
Fantacalciopedia.com is a fantasy football information site that implements an original database of teams and footballers. It is followed by 2 million fantasy football players
Problem data: what we know
- Number of footballers in Serie A: range of about 600-700
- Average age of Serie A footballers: about 27 years, but we know that player profiles can range from 16 to 37-38 years old, therefore covering a range of at least 20-22 years.
- Then we need to represent different ethnic-geographical specificities:
- at the top level there are Europeans, Africans, Americans, Asians
- but then there are subgroups: for example South Americans, meaning Argentinians, Uruguayans, Brazilians with lighter, darker, more Caribbean variants
- there are Balkan Europeans, Serbs, Croats, Bosnians and so on
- there are Turks, Lebanese, Israelis and more generally Euro-Asians
- there are Central Europeans, French, Belgians, Germans, with curly hairstyles and often sharp features, but also English, Scottish, Irish people
- there are Southern Europeans, the so-called Mediterraneans, Italians, Greeks, Spaniards and others
- there are Northern Europeans and Scandinavians, with very blond hair, often beards and fair skin
- there are Euro-Africans, French, English, Italians and so on with ebony-colored skin and afro-style hairstyles
- there are Easterners, Chinese, Japanese, Indonesians, Indians, although currently a minority in the Italian league
- and then there is of course a huge indistinguishable mass of hybridizations.
Average age of Serie A footballers: about 27 years, but we know that player profiles can range from 16 to 37-38 years old, therefore covering a range of at least 20-22 years.
But our goal is to find a scheme that gives us expressive breadth without taking on infinite or unmanageable dimensions. It is impossible to represent all reality, we must find a systemic compromise with a reasonable margin of approximation.
Final objective: develop a collection of at least 100 characters.
According to a trio of researchers from Fudan University, there are AI systems already on the market that have surpassed the limit of non-replicability.
READ THE ARTICLE
Step 1: developing individual test characters, the cref parameter
We choose to use Midjourney to tackle this work. In my opinion, from a creative point of view, it is currently the best generative engine available.
The first thing to do is to develop test characters in order to find a satisfactory reference style. I need a prompt for developing the character and, of course, starting images. I want to use the --cref parameter for this phase 1: introduced by MJ only in recent months, this parameter allows the generative engine to be given a model character, so as to obtain results resembling that model, even in different contexts.
It is a gigantic cool feature, even if it requires some work, because it is obviously not yet very easy to manage.
My starting subject is Romelu Lukaku and after about twenty prompt-design attempts and adjustments, my decisive prompt is:
"portrait of Romelu Lukaku with blu shirt running across a snowy soccer field, surrounded by Christmas decorations such as lights, a Christmas tree, and wreaths. The character is dynamic, wearing a festive winter sports outfit, with the background showcasing a clear sky and snowflakes gently falling. The atmosphere is joyful and festive, evoking the spirit of Christmas."
I am satisfied with the result, even though I do not need to develop the footballers' bodies because the collection will be used in square portrait format. Still, it helps me define a style, which I will now have to multiply.
The CREF parameter makes it possible to reproduce images starting from a specific character. The image below looks a lot like footballer Romelu Lukaku, but it is a reproduction created with Midjourney.

Step 2: create an example output board
At this point I need to reproduce other players, because my goal is to create an example output board. Anyone working with generative intelligences these days may have learned a small-big secret of LLMs: generative AIs can do incredible things, the difficult part at the moment is making them understand what we want to obtain. But let's not digress.
I choose some footballers who have particular traits, hairstyles and visual peculiarities. My intent is to create a purely illustrative range. I combine business with pleasure: I will also need a cover for the winter auction guide. I put the two things together and, with a little goodwill, the result is not bad:

Step 3: generate character boards and multiply the variants
At this point I am ready to move on to generating collections. I need to develop a prompt for Midjourney, but first I feed it two reference-output images:
- the old vector collection grid, which is the format I want to obtain
- the new example grid I created
So the battle of prompts begins. MJ returns diversified results and in many cases results that are extremely far from what I need. Nevertheless, this work phase is useful for refining the prompt and getting closer to the result styles I am interested in. The final version of the prompt that gives me the best results is:
"A collection of male characters soccer players portraits with the same front-facing view, showing different hairstyles, hair colors, and skin tones. Each character has a unique look but follows the same cartoonish, minimalistic style, with clear lines and soft shading. The characters' expressions are neutral with simple details like t-shirts. The focus is on diverse hairstyles, such as curly, straight, wavy, and mohawks, with a variety of hair colors including blonde, brown, black, and red. The skin tones vary from light to dark shades. The style should be consistent throughout the collection, emphasizing the differences in hair and skin."
And the result:


Step 4: multiply the variants, prompt remix and vary subtle/strong
![]()
Prompt Remix and Prompt Vary (Subtle/Strong) are two powerful tools for refining results on Midjourney.
I need many different variants to expand the characters' equipment and expressiveness. To obtain this result, I bend the prompts dozens and dozens of times, generating a huge quantity of boards, but I do not need most of them in full, I have to select the individual elements. In this phase I mainly work with prompt remix and prompt vary subtle/strong, two tools of apocalyptic power that allow you either to remix the prompt by moving the focus of the output (remix), or to refine subsequent variants without moving too far away from the starting point (vary subtle/strong).
This part of the work is super-interesting because personally I remain, every time, deeply fascinated, almost awed, by the ability to generate detailed variants. The final-result boards I select are about 30 and some are incredible, in my opinion. They contain on average 10-12 characters each. That would be about 300-350 characters, but I need roughly one third of them.
Here are some of them:

Step 5: character selection and final collection creation
To complete the work, all that remains is to select the characters while trying to maintain stylistic consistency. At the end of the work, the final collection consists of about 130 characters, offering greater breadth, expressiveness and variability in representing footballers. Here are some screenshots of the new collection, which you can already find published on fantacalciopedia.



I have worked on SEO since 1992, when Europe finally became united and everyone started building digital projects across borders. I am a digital director, my job is to bring qualified traffic to websites. I have a sixth sense for content development, refinement and charm. I walk a lot and I listen to the groove.
Request info
Objective: create a set of 100 characters
Step 1: Create a test character
Step 2: Build an example output board
Step 3: Generate the first boards and multiply the character variants
Step 4: Refine the variants with prompt remix and vary subtle/strong
Step 5: Final character selection and collection creation






