# Set up and train my character in Remix.Camera

Act as my setup agent and drive this project through a reviewed training dataset, a completed baseline, and a visual evaluation. Do the work using available tools, rather than only explaining how I could do it.

## Use Remix.Camera exclusively

Use the Remix.Camera API for character creation, photo uploads, training, status checks, and evaluation image generation. Do not call fal.ai or another external training/generation provider, request their API keys, or substitute a third-party workflow. Provider details in the accompanying article explain the historical experiment only. If Remix does not expose a control, report that limitation and continue with supported Remix features.

## Start proactively

1. Read https://remix.camera/api/v1/design/docs and inspect the tools, existing character, references, and approvals already available in our conversation or workspace. Treat this brief as a workflow; current API documentation determines supported parameters.
2. Reuse answers I have already given. Ask one concise intake question only for missing essentials: which character/reference to use, where the photos are, the desired appearance and use cases, and the maximum total budget. Do not ask me to supply credentials in chat. Use configured credentials or guide me through secure connection setup.
3. While waiting for any missing answer, inventory the available files, identify duplicates, prepare a contact sheet, and draft a representative evaluation plan. Keep making independent progress.
4. Maintain a project folder with an image manifest, explicit review decisions, dataset versions, job IDs, output files, and a cost ledger. Preserve existing characters and original photos.
5. Before paid work, establish the total authorized budget, check current prices or credit requirements, and reserve room for evaluation. Track incurred and pending costs together. Continue within explicit authorization without repeatedly asking permission; ask only when a missing decision or additional spend genuinely requires it.


## Objective and budget

Ask the owner what must remain stable (identity and appearance), what kinds of photos matter, and the maximum total spend. Use the existing answers if already provided. Do not promise a universal best model.

## Data preparation

1. Start with one approved primary reference. Collect photos of the SAME identity; scene donors and other identities are not identity training inputs.
2. Show a numbered, aspect-fit contact sheet. Preserve explicit include/exclude decisions by image hash, not row position.
3. Reject identity drift, severe artifacts and duplicates. Check close-ups, different angles, wider shots, expression, clothing, pose and lighting coverage. Flag missing coverage instead of inventing captions.
4. If using synthetic images, visually compare each face to the primary reference. Do not automatically recycle generated outputs into training.
5. Inspect the actual resized/cropped dataset. Write supported captions from these pixels. Use ordinary capture/pose/framing/clothing/setting/lighting language. Don't copy instructions from the generation pipeline.
6. Preserve original files, transformed files, hashes, captions and exclusions. Keep related variants of a scene in one train/evaluation split. Reserve unseen scenes where possible.

## Standard Remix workflow

Read the current API docs at https://remix.camera/api/v1/design/docs. Create a character with multipart photo data. Preserve the returned ID. Add photos in requests below 4 MB. Wait for readiness and photo checks. Training requires at least 10 cleared photos; use returned training.eligible rather than assuming readiness from count alone.

POST /api/v1/design/characters/{characterId}/training with an idempotencyKey. Reuse it only when retrying that same logical action. Poll status and stop on terminal failure. Uploading photos does not start training; reference-generation readiness does not prove training is complete. Check alreadyTrained/inProgress responses before considering a new request.

The public training API does NOT currently expose custom captions, training steps, learning rate, trainer selection or imported external weight URLs. Do not invent parameters. Treat captions as local review notes unless the current Remix API explicitly supports submitting them. Do not submit the historical training-recipe.json as an API payload.

## Controlled evaluation

Write the test set before viewing candidates: front portrait, three-quarter/side view, seated scene, standing/full-body scene, mirror selfie, bright light, flash and unfamiliar wardrobe/background. Use at least two seeds where the evaluation backend exposes seeds. Exclude training-scene copies from claims of generalization.

Save the exact Remix request, character ID, returned generation/job IDs, exposed settings, reference hashes and output hashes. Record unexposed settings as unavailable; do not invent seed, adapter or model controls. Reuse baseline outputs only when the recorded inputs and exposed settings match. If the API cannot fix seeds, use repeated samples and disclose that limitation.

Compare identity first, then pose/prompt adherence, anatomy, texture, lighting and diversity. Allow ties and both-bad outcomes. Report provider blocks separately. Preserve configuration; record any intentional change before making it. Show side-by-side HTML AND inline images with aspect-fit display.

## Improvement loop

Improve photo selection and coverage first. Change one supported factor per comparison and keep the baseline. Only vary captions, steps, or inference strength if the current Remix API explicitly exposes those controls. Do not route around missing features through another provider. Confirm documented retraining or separate-character support before attempting another trained version.

## Acceptance and release

Provide the Remix character ID/link, verified training status, exposed settings, dataset version, budget and known limitations. Obtain the owner's preference on the concrete comparison before replacing a working character. Do not silently activate a model in production or assume the API supports retraining/importing weights when it doesn't.

## API setup examples

### For agents: the supported character API flow

Keep the API key on your server. Create a character with a reference photo, keep the returned character ID, and poll its readiness:

```bash
curl -X POST https://remix.camera/api/v1/design/characters \
  -H "Authorization: Bearer $REMIX_API_KEY" \
  -F "name=Maya" -F "subjectType=person" -F "photo=@reference.jpg"

curl "https://remix.camera/api/v1/design/characters/$CHARACTER_ID" \
  -H "Authorization: Bearer $REMIX_API_KEY"
```

Set `CHARACTER_ID` to the returned ID. Add the rest of the photos in batches under 4 MB per request:

```bash
curl -X POST "https://remix.camera/api/v1/design/characters/$CHARACTER_ID/photos" \
  -H "Authorization: Bearer $REMIX_API_KEY" \
  -F "photo=@photo-02.jpg" -F "photo=@photo-03.jpg"
```

Check `character.training.eligible` before starting. When eligible, send one training request:

```bash
curl -X POST "https://remix.camera/api/v1/design/characters/$CHARACTER_ID/training" \
  -H "Authorization: Bearer $REMIX_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"idempotencyKey":"maya-training-v1"}'
```

Reuse that key for a retry of the same action; do not invent a new key each time a request times out. Poll character status, distinguish reference-generation readiness from completed training, and stop on a terminal error. A queued job is not a trained model. A training response can also indicate that a character is already trained; do not assume calling it again creates a new checkpoint.

Generate after readiness using the documented image endpoint:

```bash
curl -X POST https://remix.camera/api/v1/design/images \
  -H "Authorization: Bearer $REMIX_API_KEY" \
  -H "Idempotency-Key: maya-cafe-test-v1" \
  -H "Content-Type: application/json" \
  -d '{"characterId":"YOUR_RETURNED_CHARACTER_ID","request":"A candid seated cafe portrait in soft daylight"}'
```

Use the returned image status URL to wait for the result. These API examples follow Remix's documented character workflow. They do not expose the exact seed, LoRA, caption, or hyperparameter controls used in our advanced provider experiment. See [the API documentation](https://remix.camera/api/v1/design/docs) for the current contract.


## Finish the job

Return a usable character link or ID, verified training status, actual evaluation images, a concise recommendation, total spend and remaining budget, and links to the dataset and review report. Show progress when a job is running. Never report queued work as completed. If the environment cannot continue polling, save the request ID and exact resume instructions. If a tool or API capability is unavailable, explain the precise limitation and complete the remaining supported work. Do not stop at a plan when execution is authorized.
