Nodes/Phota API Nodes/Phota Profile Status
ComfyUI Node

Phota Profile Status

Is my Phota profile done training yet? Ask, don't block

By photalabs·Created 3 months ago·Updated 3 months ago· 0
Phota Profile Status
  • profile
  • status
  • message
profile_id
api_key

The status check that doesn't hold up your queue

Profile training takes around 25 minutes on Phota's standard tier. You have two ways to deal with that wait: block on it, or check on it later. PhotaProfileStatus is the "check later" node - it does a single, non-blocking API call and reports where a profile is in its lifecycle. It exists precisely for the workflow where you submit training, come back after lunch, and want to know if the profile is ready to use.

How it works

The node calls the profile-status endpoint once and returns two strings: status and message. Status is one of VALIDATING, QUEUING, IN_PROGRESS, READY, or ERROR; message carries any server-provided detail (usually empty, but useful when a training run failed and the API explains why). Because status lives server-side and changes on its own, the node deliberately never caches - every run does a fresh fetch, so hooking it into a workflow that executes on a timer or a re-run gets you current truth, not a stale answer.

It's an output node, and its status text also shows up in the UI, so you can literally read "READY" in the node's own output area when the run finishes.

The inputs

  • profile_id - the ID to check (required). You'll typically grab this from a Phota Train Profile node's output.
  • profile - optional typed socket from a Selector or Train Profile node; overrides profile_id when connected.
  • api_key - leave empty; use PHOTA_API_KEY or phota.ini so the key doesn't end up embedded in shared workflows.

Outputs

  • status - the lifecycle state.
  • message - optional server detail, e.g. why a run errored.

Where it fits

The canonical use: run PhotaTrainProfile with wait_for_ready off - it returns immediately with the new profile's ID and a SUBMITTED status - then wire its profile_id into a PhotaProfileStatus node you run whenever you want an update. It's also the recovery tool for a training run that timed out: the pack's timeout error explicitly suggests checking the profile later with this node, because a slow run can finish after the node gave up waiting. And it pairs with PhotaProfilePicture as a mini status board: confirm READY, then pull the cover photo to see the face.

Install is the shared pack setup - 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 or model files, and a status check is a free call - the whole point of asking instead of blocking.

CategoryPhota

Inputs (3)

NameTypeDefaultDescription
profile_idSTRING
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.
profileoptPHOTA_PROFILEProfile reference from a Phota Profile Selector or Train Profile node. Overrides profile_id.

Outputs (2)

NameTypeDescription
statusSTRING
messageSTRING