ComfyUI Node

Phota Edit

Prompt-editing a photo without losing the face

By photalabs·Created 3 months ago·Updated 3 months ago· 0
Phota Edit
  • image
  • subject_1
  • subject_2
  • IMAGE
promptMake this photo more vibrant.
num_outputs1
aspect_ratioauto
resolution1K
qualityauto
profile_id
api_key
base_modelauto

The hosted version of "edit this photo"

PhotaEdit takes an image and a text prompt and hands you back an edited image - "make this photo more vibrant," "turn the sky into a sunset," "put this product in their hand." If you've been paying attention to the local ecosystem, this is the same move as instruction-editing models like Qwen-Image-Edit or Flux Kontext: don't regenerate a character from scratch, edit the image you already have so the identity never gets re-invented. The difference is that here the model runs on Phota's servers, and identity is locked in by a trained profile instead of by careful LoRA balancing.

How it works

The node base64-encodes your IMAGE tensor into a PNG, sends it with your prompt to Phota's /edit endpoint, and decodes the returned image back into a normal IMAGE tensor - from the canvas it looks like any local edit node, except the pixels were made elsewhere. The call runs async with the HTTP work offloaded to a thread, so a slow edit doesn't stall the rest of your queue.

Identity is where it gets clever. Connect a profile (via profile_id, or the subject_1/subject_2 typed sockets) and the API preserves that subject's face when they're already in the input image. When they're not in the image - say you want a selfie of the subject holding a product you've provided - you write [[profile]] in the prompt to introduce them. Unlike PhotaGenerate, Edit never appends profiles implicitly: most edits already contain the subject, so it only substitutes your explicit placeholders. That's a deliberate design choice, and it saves you from profiles drifting into every edit you didn't ask for.

The inputs that matter

  • image - the IMAGE tensor to edit (wire in whatever LoadImage or upstream node produced).
  • prompt - the instruction. Multiline, defaults to "Make this photo more vibrant."
  • num_outputs - 1–4 edited variants per run, handy when you want options.
  • aspect_ratio / resolution / quality - resolution runs 1K–4K. Leave quality on auto unless you're on gpt-image-2; the README warns some base models reject the field outright.

The optional base_model dropdown is populated live from the API (flux-2, flux-2-pro, gpt-image-2, nb2, qwen-image-2, seedream-5-pro) and defaults to auto, meaning the server's default.

Output is a single IMAGE - straight into PreviewImage or a Save node.

Install, key, and the honest tradeoffs

Search Phota API Nodes in ComfyUI Manager, or:

cd ComfyUI/custom_nodes
git clone https://github.com/photalabs/comfyui-phota

Then restart. Only dependency is requests; no GPU, no model download. Get a key at platform.photalabs.com and prefer the PHOTA_API_KEY env var or phota.ini over the api_key widget - widget values get embedded in shared workflow JSON/PNG.

The honest part: this is billed per image from prepaid credits, and your photo leaves your machine to get edited. Phota is a small, newer service - you won't find a wall of community threads on it, so judge the likeness and quality on your own test runs. If a local instruction-edit chain plus a consistency LoRA already does what you need, that stays free after the first download; this node is for when you want the same result without babysitting a local stack.

CategoryPhota

Inputs (11)

NameTypeDefaultDescription
imageIMAGE
promptSTRINGMake this photo more vibrant.
num_outputsINT11–4
aspect_ratioCOMBOauto6 options: auto, 1:1, 3:4, 4:3, 9:16, 16:9
resolutionCOMBO1K3 options: 1K, 2K, 4K
qualityCOMBOauto4 options: auto, low, medium, high
profile_idoptSTRINGProfile ID(s) for identity preservation — connect a Phota Profile Selector or paste IDs, comma-separated for multiple subjects. The typed subject_1/subject_2 sockets take precedence for placeholder positions.
api_keyoptSTRINGLeave empty (recommended) to use the PHOTA_API_KEY environment variable or phota.ini. A key typed here is saved inside the workflow — do not share such workflows.
base_modeloptCOMBOautoBase model. 'auto' uses the API default.
subject_1optPHOTA_PROFILETyped profile reference; fills [[profile1]] (and joins [[profile]]).
subject_2optPHOTA_PROFILETyped profile reference; fills [[profile2]] (and joins [[profile]]).

Outputs (1)

NameTypeDescription
IMAGEIMAGE