Celebrity Look-Alike · Image Editing
The weird one, and why it can't be seeded
- image_url
- images
- task id
What it actually does
This is the odd node in the pack, and it's worth being straight about it: you give it one portrait, it returns a generated image of the closest celebrity match. No prompt, no parameters, nothing to tune. One socket in, one image out, $0.05 per image.
It's a party trick with a real engine under it. Face-recognition embeddings - the ArcFace-family vectors from InsightFace that sit under IP-Adapter FaceID, InstantID and every local identity tool - are already a similarity search: each face becomes a vector, and "who does this look like" is a distance query against a reference set. Normally that vector drives a generative pipeline; here it selects a likeness and renders it.
The two limits that shape how you use it: the result carries no name or score, and there is no seed on the node, so you get the resemblance as an image and not as a fact, and you can't reproduce a specific output.
Inputs and outputs
image_url (IMAGE) - one portrait photo with a single, clearly visible, roughly frontal face. The tooltip is doing real work there. A group photo, a three-quarter turn, sunglasses, or a face filling 8% of the frame all degrade the embedding before the model gets a say.
Outputs:
images(IMAGE) - the generated look-alike portrait.task id(STRING) - the console/support reference.
That's the whole node.
How to actually use it
Treat it as a first-pass sketch, not a deliverable. Wire the output into something that does care about craft - an Image Upscaler node, or a face detail pass - and treat the result as a prompt-free starting point for a portrait you'd otherwise pay a photographer for.
Where it's genuinely useful: character design. Getting "what if this face were cast as a film star" is a fast way to find a direction you'd never have prompted for. Where it's useless: anything resembling a sourced claim about who someone looks like. It gives you a picture, not an answer, and the image may be a blend rather than a clean match.
Install
Manager → search SpicyAPI, or:
cd ComfyUI/custom_nodes
git clone https://github.com/spicyapi-ai/comfyui-spicyapi
Restart. No dependencies, no model files, no GPU - the pack declares zero dependencies and every model is hosted, so a laptop is fine. Python 3.10+ and a ComfyUI with the V3 node API. Key in Settings > SpicyAPI (or SPICY_API_KEY), then one restart so the node list is built from your account. Set Max cost per run while you're in there.
Honest caveats
- No reproducibility. No seed means the same photo can give you a different rendering. For comparing variants that's irritating; for a casual test it's fine.
- It will refuse-ish on bad input rather than error nicely. No face, multiple faces, or a heavy profile tends to produce a weak result rather than a clear message. Crop to one clear face and try again.
- Likeness is legally live territory. Generating a stranger's resemblance to a public figure, then using it commercially or in a context that implies endorsement, is where the actual risk is - and this is a hosted endpoint, so you can't fall back on "it never left my machine".
- Your photo leaves your machine. Same structural caveat as every node in this pack.
- 50 cents is the second-most expensive image node here - cheap for a curiosity, expensive for a loop you leave running.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| image_url | IMAGE | URL of one portrait photo with a single, clearly visible, roughly frontal face. | |
| seed | INT | 00–2147483647 | This model takes no seed, so the number is never sent. Changing it makes ComfyUI run the node again: set 'control after generate' to randomize for a new result on every run; every run is billed. |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| images | IMAGE | — |
| task id | STRING | The SpicyAPI task id, for the console logs or support. |