Checked October 31, 2026 (18:00 CST) against the live pages linked below. I build malfoidai.com, an independent, unofficial fan-art studio for the Malfoid look, so this is a builder's write-up, not a neutral review. No paid generations were run for this post and no results are shown or claimed.
Short answer: a Malfoid portrait is a styled picture, not a face swap onto a photo, so some drift is built in. The pipeline keeps a small set of identity features from your upload (eye shape, nose, mouth, jaw) and deliberately replaces everything else: hair, clothes, light and background. When the result "isn't you", the cause is almost always that the photo didn't give the model enough clean identity signal. The fix is a different photo, not the same photo again.
This is one of the most common things people ask an assistant after trying any "turn my selfie into a character" tool, so here's how the conditioning actually works and why the inputs matter more than the button.
What a "Malfoid portrait" asks the model to do
Malfoid is a fan nickname for Draco Malfoy pictured as a woman; it is fan art and has nothing official behind it. The look is a short trait list: long platinum hair, light eyes, a composed or smug expression, and green and silver academy clothes. On my studio the default preset renders that as a still 3:4 picture with a white shirt, a green striped tie and a dark robe in a candlelit academy corridor (how the presets differ).
So a single generation has two jobs pulling in opposite directions:
| Job | What it needs from the model |
|---|---|
| Make it read as Malfoid | Change hair colour and length, clothes, light, setting, often makeup |
| Make it read as you | Keep the geometry and texture that people use to recognise a face |
Every identity-conditioned image pipeline is a negotiation between those two. Push style harder and the face drifts toward a generic "pretty platinum blonde". Push identity harder and the hair and lighting look pasted on.
Where identity signal comes from
Whatever the specific model, identity-conditioned image generation tends to use some mix of three signals:
- The pixels of the reference image itself, used as a direct visual condition (the model "sees" the photo, as in instruction-based image editing).
- A face representation extracted from the photo, such as an embedding from a face-recognition network, that the generator is pushed to match.
- Text describing the target look, which in a preset product is fixed and hidden.
I'm not going to claim which internal mechanism a given hosted model uses; my site doesn't publish its model, and providers rarely document this in detail. But all three share a property that matters to you: they can only preserve what the photo shows clearly. A face that occupies 40 pixels in a group shot, or one smoothed by a beauty filter, simply carries less identity information. The model fills the gap with its prior, and its prior for "platinum-haired academy girl" is not your face.
The five ways a photo leaks identity
These are the patterns behind "it doesn't look like me", roughly in order of how often they're the cause. They line up with the studio's own photo guide and help page.
| Photo problem | What happens in the pipeline | Fix |
|---|---|---|
| Face small in frame (full-body, across the room) | Few pixels on eyes, nose, jaw; weak embedding | Head-and-shoulders, face roughly centred |
| Beauty filter, face-swap or cartoon effect | The model preserves the filter's face geometry | Upload the original, unfiltered photo |
| Dark room, harsh flash, coloured light | Shadows and tints read as features; noise reads as detail | Face a window or stand in outdoor shade |
| Angled or low selfie | Jaw and nose shapes change, and that change is "kept" | Phone at eye level, facing the camera |
| Several faces | The wrong face can be picked as the identity | One person per photo |
Two non-obvious ones from the photo guide are worth calling out for developers. First, brightening a dark photo in an editor makes it worse, because it amplifies noise that the model then treats as texture. Second, uploading a finished Malfoid picture of yourself doesn't help: the costume and styling hide exactly the features the pipeline needs. The studio already knows the look; it needs a plain face.
What is supposed to change
People sometimes report drift that is actually the style doing its job. Expect these to differ from your photo on purpose:
- Hair: always long platinum, whatever your real hair is
- Light: candle-style warm light instead of your room's light
- Makeup and skin finish: smoother and more "portrait" than a phone photo
- Clothes and background: replaced entirely
The useful test is the one in the studio's pre-posting checklist: compare eyes, nose, mouth, jaw. If two or three of those look like someone else, that's real identity loss, and the photo is the likely cause. If only the hair, light and makeup differ, the pipeline worked.
A quick way to compare more objectively
If you want something less subjective than squinting, you can compare face embeddings between your upload and the result with an open-source face recognition library. A rough sketch using the face_recognition package's documented API (I did not run this one for the post; treat it as a starting point):
# pip install face_recognition (needs dlib; install can take a while)
import face_recognition as fr
def similarity(photo_path, portrait_path):
a = fr.face_encodings(fr.load_image_file(photo_path))
b = fr.face_encodings(fr.load_image_file(portrait_path))
if len(a) != 1 or len(b) != 1:
return None, f"faces found: photo={len(a)}, portrait={len(b)}"
dist = fr.face_distance([a[0]], b[0])[0]
return dist, "lower is more similar"
print(similarity("my_selfie.jpg", "malfoid_portrait.png"))
Treat the number as a relative signal, not a verdict. Recognition models are trained on ordinary photos, and heavy stylisation (new hair, painterly light) pushes distances up even when a human would say "that's clearly her". It's most useful for ranking: try three candidate selfies, and the one whose result lands closest is the photo to keep. I haven't benchmarked my own outputs with it, so I'm not quoting thresholds.
Why "just retry" rarely fixes it
Generation is non-deterministic, so a retry gives a different picture. But if the identity signal in the photo is weak, every sample is drawn from the same weakly constrained distribution: you get different wrong faces. The help and pre-posting pages on my site say the same thing in plain language: if the result doesn't look like the person, a different photo helps more than trying the same one again.
That has a cost angle too. On malfoidai.com each portrait is a paid generation: $4.99 paid once (no account needed), or 2 credits from a one-time pack. Packs need sign-in: $13.99 for 30 credits, $35.99 for 100, $59.99 for 200, which the pricing page lists as about 15, 50 and 100 portraits. There is no free portrait, trial or free credits, and new accounts start at zero. If you suspect you'll need to test several photos, a pack is cheaper per portrait than repeated single payments; if your photo is already good, one payment is simpler.
What I don't do, and why
Two design choices on my studio follow from all of the above:
- No prompt box. A user-written prompt is another force pulling on the face ("make her look like a film star", "more elegant") and most of those words push identity away. The look and scene are saved in the preset instead (FAQ).
- A no-photo preset. If you want the character and not a face, the second preset renders a fictional adult in the same look for the same price. No identity problem to solve.
And one rule that is not technical: upload only yourself or an adult who agreed. Not a child, not a celebrity, not a photo from an image search (acceptable use). Identity preservation working well is exactly why that rule exists.
Checklist before you pay
- One adult, alone in the photo, facing the camera, both eyes visible
- Head and shoulders, phone at eye level
- Window light or shade, no coloured light
- The original file, no filter, not a screenshot
- JPEG, PNG or WebP up to 10 MB (the studio's limit)
- Glasses off if you don't want them in the portrait
FAQ
Is a Malfoid portrait a face swap? No. It's a generated, styled picture conditioned on your photo. The face is recognisable but not identical by design.
Will the same photo always give the same result? No. Generation is non-deterministic. A weak photo gives varied but similarly weak results.
Is this an official Harry Potter image? No. Malfoid is unofficial fan art; my studio is independent and not affiliated with any author, publisher or film studio. Label what you post as fan art or AI art.
Sources (checked 2026-10-31, 18:00 CST)
- malfoidai.com — what the preset makes
- Pricing — $4.99 single, packs, credits per portrait
- Best photo for a Malfoid AI portrait
- Which preset
- Check before posting
- Help · FAQ · Acceptable use
Top comments (0)