Skip to content

Evanesca opens soon: this page shows how the chat will work.

Create portraits

POST/images/edits

Makes portraits with PhotoMaker V2 from 1 to 4 face photos and a prompt that holds the trigger word img right after the subject. Same key and credit as chat; billed per second of generation.

Catalogue checked on 20 Oct 2026

SoonOpening soon: what follows describes the service as it will work.

Server URLhttps://evanesca.app/api/v1
POST/images/editsOpens at launch
AuthorizationBearer $EVANESCA_API_KEY
  • Authorizationstringrequired

    Bearer followed by your key, which starts with sk-eva-.

  • Content-Typestringrequired

    Multipart, as OpenAI's contract has it — or JSON, with the photos as data URLs.

    Valuesmultipart/form-dataapplication/json

Request body

multipart/form-data
  • modelstringrequired

    PhotoMaker V2, by TencentARC.

    Valuesphotomaker-v2

  • promptstringrequired

    350 characters at most, with the trigger word img right after the subject: “a woman img as an astronaut”.

  • image[]filerequired

    1 to 4 face photos, JPEG or PNG, one field per photo.

  • imagesarray of strings

    In a JSON body, instead of image[]: the photos as base64 data URLs.

  • ninteger

    How many images to make.

    Default1

    Values1–5

  • sizestring

    The size of each image, in pixels.

    Default1024x1024

    Values1024x10241792x10241024x1792

Where it runs, what it costs

Evanesca · on the record

Runs in
  • Infomaniak · Switzerlandphotomaker-v2
Operator keeps

Infomaniak states that queries are “neither recorded nor used to train models” (Infomaniak AI Tools).

Costs
€0.0092 per second of generation, VAT included, rounded up to the next second, one second at least; usage.generation_seconds is what is billed. About 5 seconds, so about €0.05, for a typical PhotoMaker V2 portrait. A refused request costs nothing.
Response headers
x-evanesca-operator: infomaniak
x-evanesca-location: switzerland

What leaves Evanesca

The prompt and the face photos go to Infomaniak, in Switzerland — outside the EU, under an EU adequacy decision; the images come back in the response and Evanesca keeps none of them. The images carry IPTC metadata marking them as AI-generated (AI Act, art. 50(2)) — metadata, not a watermark, so a screenshot or a re-encode can remove it (Images).

A face photo is personal data: send only photos you are allowed to use. The terms forbid an image of a real person without their consent, and any sexual or intimate image of a real person, even with their consent.

Errors

StatustypeMeaning
400invalid_requestA prompt without img or over 350 characters, no photo or more than 4, a file that is neither JPEG nor PNG, n or size out of bounds — the param field says which (limits).
401invalid_api_keyNo key, a malformed key, or a revoked one.
402insufficient_creditYour credit is at zero or below. Add credit to continue.
404model_not_foundUnknown ID, a model Evanesca does not serve, or flux-schnell, which is served by /images/generations.
502upstream_errorThe operator could not be reached, sent an unreadable answer, or turned down Evanesca's own account. Your key is not the problem: retry.

Other operator errors reach you with its status and body, and Retry-After when it sends one (errors).

curl https://evanesca.app/api/v1/images/edits \
  -H "Authorization: Bearer $EVANESCA_API_KEY" \
  -F model=photomaker-v2 \
  -F "prompt=a woman img as an astronaut" \
  -F "image[]=@face-1.jpg" \
  -F "image[]=@face-2.jpg"
{
  "created": 1791763200,
  "model": "photomaker-v2",
  "data": [{ "b64_json": "/9j/4AAQSkZJRgABAQ…" }],
  "usage": { "generation_seconds": 5, "images": 1 }
}