The idea
Ukrainians wear the vyshyvanka, our embroidered shirt, on holidays, Christmas included. In these pictures mine is under a deliberately loud ugly sweater.
The sweater is the "before". Its hem is still whole, and one loose red yarn end hangs down over the shirt. The card is the "after": the hem has come apart into red loops over the embroidery, and one red strand runs across a linen cloth into the first cross-stitched letter of the greeting. Ugly on top. Ukrainian underneath.
Image 1: the sweater
I made this sweater after the card, on purpose. Photoshop on the web doesn't give me a reference image option for Nano Banana, so I put the reference on the canvas itself. I opened a new 3300 × 2048 document, exported the card as it was then to Adobe cloud storage as a PNG and imported it on the right. Then I drew a rectangular selection over the empty left side and ran Generative Fill with Gemini 3 (Nano Banana Pro), asking for a flat lay of the sweater the man on the right is wearing. I can't tell you how much of the canvas the model actually takes in. What I can say is that with the card sitting next to the selection, the flat lay came out close to the card's colours, with its tinsel garland and big bulbs.
That first pass knitted a holiday figure onto the chest instead of my face. I already had a knitted portrait of myself from my first sweater document. There I had placed my own photo, cut it out with Remove background and had Nano Banana knit it into the sweater. Then I turned a copy of that result into a knitting chart with Stylize > Mosaic and had Nano Banana knit that chart again, which gave the face a V-stitch texture. I imported that portrait into the new document, put it over the figure with Transform and gave it an oval layer mask.
Nano Banana did the next few steps. One fill over the portrait knitted it into the chest, but it left an oval edge and some odd cords. A pass over the whole sweater area removed those and added a fifth, red bulb so the order matched the card. Another whole-area pass gave the shirt a wide red-and-black eight-point-star band at the hem and three small red cross-stitches next to the loose yarn end, a hint of what happens on the card. Then I brought the imported portrait back to the top, trimmed its mask to the face and hat, and ran a ring-shaped fill around the face to blend it in. It didn't really work: a circle of chunky knit stayed around the face.
Then I went back to the card and made its sweater uglier (more on that in the card answer). I imported the new card as a second reference and ran one more Nano Banana pass over the whole sweater. That's where the flat lay got its bells, snowflakes and stars, the row of reindeer, the felt tree and the candy cane. This pass covers all the earlier ones (their layers are still in the file underneath), and it re-rendered my portrait too, so the face on the sweater is Nano Banana's version of that knitted portrait. I tried one more whole pass to clean up around the face, but the face started to drift, so I deleted it.
The last steps I kept were by hand. That darker circle of chunky knit was still around the portrait. On an empty layer I painted it out with Clone Stamp and Spot Healing Brush, sampling all layers. Then I hid both card layers (they're still in the file, hidden, with "REF" in their names) and cropped the canvas down to the sweater with the Crop tool. Later a second Clone Stamp round, on its own layer, toned down a dark arc above the hat and the leftover chunky knit beside the hat and below the face; a few dark stitches along the hair line are still there. This time I fenced each area with a lasso selection first, so the hat and the face couldn't be touched.
It isn't a perfect copy of the card's sweater. Several details came out different and I left them; the most visible are the shirt collar, the reindeer and the chest motifs; my knitted face is the same on both, but it's bigger on the flat lay than on the card; the card also has one bell fewer and two extra small pompoms at the shoulders.
Image 2: the holiday card
I started from a photo of myself. I placed it, scaled down, on a blank canvas and ran a single Generative Fill with Gemini 3 (Nano Banana Pro) over the whole canvas: me from the waist up with a light smile, in a loud sweater over a vyshyvanka, the lower part of the sweater unravelled into red loops, my hands on a linen cloth, a Christmas room behind me. So the face on the card is Nano Banana's re-render of my photo, not the photo's own pixels. I got there the hard way. My first tries kept my original head and generated the body under it. They gave me a second face, seams, odd proportions and once a second beard. Doing the whole frame in one pass got rid of all that.
I needed room at the bottom for lettering, so I extended the canvas from 2100 to 2600 px with the Crop tool. Generative Expand on the web offered me only Firefly models, so I didn't use it. Then, after two earlier tries I'll come back to, I drew a lasso from the unravelled fringe down to the bottom edge and let Nano Banana remake that whole area in one pass: my hands on the linen cloth, the red cross-stitch "Ugly on top. / Ukrainian underneath.", a smaller "Merry Christmas" and a red-and-black border of eight-point stars. Two earlier tries at this area are still in the stack under it: one left a hard seam where the selection began, the other a cut line across my hands. Starting the lasso at the busy fringe worked where those straight selections hadn't. I hid the first try; the second stays switched on only because the very bottom rows of the border come from it.
One small thing Nano Banana couldn't do for me: the strand on the linen started at the edge of the table, not at the sweater. Two small fills to join them both failed (one drew a tiny extra scene, the other left a patch), so I joined them myself with a single 9 px Brush stroke on its own layer, from the lowest hanging loop into the strand that runs into the "U".
The little knitted face on the chest first came from my first sweater document. Copy and paste between documents didn't work for me in Photoshop on the web, so I exported it to Adobe cloud storage, imported it into the card, scaled it to 65% with Transform and masked it. An earlier attempt at a chest portrait, made with Nano Banana right on the card, is still in the file underneath.
After placing the portrait I made the sweater uglier. I lassoed the yoke, the colour bands and the sleeves, subtracted the chest portrait from the selection, and ran one Nano Banana pass. It added the reindeer with pompom noses, two snowflakes and a big eight-point star, bells on the garland, a felt tree on one sleeve and a candy cane on the other. My face, the collar, my hands and the loops were all outside the selection.
Around the chest portrait there were stray bits I didn't want: a faint ghost bulb, coloured dots, pieces of a snowflake. I redrew the portrait's mask by hand, tight around the hat and face, then cleaned up most of what was left with Spot Healing Brush and later Clone Stamp, each on its own empty layer, sampling all layers; a slightly darker band to the right of the face stayed. Later I noticed a bit of the earlier portrait's Santa hat showing through the gap around the face, so I switched that old layer off.
One more fix: the upper sleeves. On the card they had come out magenta, while the flat lay's sleeves are green down to the cuffs. I recoloured them with a Hue/Saturation and a Levels adjustment layer, grouped under one layer mask that I traced along each sleeve with the Lasso at 100% zoom, so the tinsel, the pompoms and the background stay out of it. A thin magenta line was left where the old colours met; I re-tinted it with a small Brush on a layer set to Color mode, so it now reads as a darker green seam across each sleeve, and toned down a pale fringe along one sleeve edge with another small Brush layer.
The last step was the chest portrait again. It was an earlier render than the face on the finished sweater, so the two didn't match, and I made them the same portrait without generating anything. I exported the finished sweater to Adobe cloud storage, imported it into the card, scaled it to about 45% with Transform so its face sat over the old one, and gave it a layer mask drawn with the Lasso tightly around the hat and face, feathered 2 px. I switched the old imported portrait off; the gap around the face now shows the plain knit of the first pass. Two small specks showed through at the edge of that gap, and I cloned them away with Clone Stamp on its own empty layer, sampling all layers. The darker band to the right of the face is fainter now, but it's still there.
One honest note about models. Every generative layer I kept was made with Gemini 3 (Nano Banana Pro), picked in the model menu; after the layer number, each of their names starts with "NB Pro" (the names are mine; Photoshop marks them as generative layers). Once, while I was working on the linen, a fill came out of Firefly because the model menu hadn't switched. I deleted that layer straight away.
Which steps were Nano Banana and which were Photoshop
| File | Gemini 3 (Nano Banana Pro) fills in the file | Photoshop's own tools |
|---|---|---|
| Sweater (image 1) | first flat lay; knitting the portrait in; cleanup pass with the fifth bulb; shirt hem band and the three small stitches; ring fill around the face; final whole-sweater pass after the card got uglier (the only one you see; the others are under it) | card imported twice as a reference, both now hidden; knitted portrait imported, Transform, layer mask; Clone Stamp and Spot Healing Brush on the circle around the face; Crop; a second Clone Stamp round inside lasso selections |
| Card (image 2) | whole-canvas pass from my photo; an earlier chest portrait (hidden); three linen and lettering passes (the last one on top, the first hidden); the uglier sweater pass | my photo as the input layer; Crop to extend the canvas; Brush stroke joining the strand; knitted portrait imported, Transform, hand-drawn mask (now switched off); Spot Healing Brush and Clone Stamp around the chest portrait; Hue/Saturation + Levels on the upper sleeves through a hand-traced mask; small Brush touch-ups on the sleeves; the finished sweater imported, Transform to about 45%, Lasso mask around the hat and face (the chest portrait you see); Clone Stamp on two specks |
| Made earlier in my first sweater document (imported into both files: a layer under the final pass in the sweater, and a switched-off layer in the card) | knitting my cut-out photo into a portrait, then knitting the Mosaic chart of it (first sweater document) | Remove background on my photo; Stylize > Mosaic on a copy of the first knitted portrait (first sweater document) |
Deleted along the way and not in either file: one Firefly fill (by mistake, deleted at once), about two dozen Nano Banana tries that made seams or patches, and one whole pass that made the face drift.