Written policy
Models allowed by type of work, prohibited uses, who approves and how it is disclosed to the client, in a file the scripts read.
Deliverable: politica_ia.json with historyOcto for generative AI in Photoshop
Photoshop brings Generative Fill and Generative Expand, Prompt to Edit and partner models; the Firefly API and the Photoshop API make part of that available to programs. Octo writes the policy and the usage log, builds the API client in dry-run mode, leaves each variation awaiting approval and reads the Content Credentials before publishing. Choosing the image and releasing it stay with people.
Six possible deliverables, drawn from the research. None of them publishes anything on its own, none of them touches Content Credentials, and all of them end with a person deciding.
Models allowed by type of work, prohibited uses, who approves and how it is disclosed to the client, in a file the scripts read.
Deliverable: politica_ia.json with historyFile, feature, model, channel, prompt, area changed, image release and who approved. Credit consumption stops being a surprise.
Deliverable: registro_ia.csv per jobA Firefly API client in dry-run mode by default; each variation lands in a new folder, awaiting approval.
Deliverable: firefly_expand_lote.py and a logEach file's C2PA manifest read with c2patool and classified by the IPTC source vocabulary, without changing anything.
Deliverable: C2PA reports and an indexManifest, log and policy together: AI with no log entry, a credential lost along the way, a model outside the policy, a person without a release.
Deliverable: pendencias_ia.csv for whoever publishesA piece with a person and no image release doesn't go to the cloud; the data protection officer's assessment (LGPD, Brazil's data protection law) comes first.
Deliverable: list of blocked items with reasonsThe same Octo cycle, applied to generative AI. Each arm has a narrow role; the ones who choose the image, disclose the use to the client and publish are people.
Who uses generative AI, on which plan, with which model, for which pieces, and how many credits are consumed.
Usage policy and a per-file log, in versioned files the scripts read.
Server credential in a vault, photos of people blocked without a release, nothing published without approval (LGPD, Brazil's data protection law).
What stays with the designer in Photoshop and what goes to the Firefly API or the Photoshop API, with its own credential.
An API client in dry-run mode, C2PA reading and a cross-check with the log and the policy.
Manifest, log and policy together. "The API responded" is not approval.
Only approved pieces, with the manifest read. Publication is decided by a person.
Policy, models, versions and who approved each piece, with the date.
Octo does not remove or alter Content Credentials, does not publish and does not press the generative button for the designer. It prepares, logs and checks.
The criteria Octo uses to choose, with the documented limit of each path.
| Task | Path | Notes |
|---|---|---|
| One-off AI retouching | Desktop Photoshop, by the person | Plan credits; log and review |
| Format expansion at volume | Firefly API, /v3/images/expand-async | Server credential; access through the Adobe representative |
| Generate images by program | Firefly API, /v3/images/generate-async | Response with jobId and statusUrl |
| Remove backgrounds at volume | Photoshop API v2, /v2/remove-background | See the cloud API page |
| Read Content Credentials | c2patool | Options checked with -h on the installed version |
| Cross-check manifest, log and policy | Python, standard library only | Doesn't decide; lists open items |
| Automate the interface's generative button | Outside the research | The guidelines prohibit unauthorized automation |
| Approve the image | A person | No script replaces it |
Three steps. Each one only makes sense after the previous one has shown results on your team.
A proposal, not a promise
Octo reads the manifests in the publishing folder, without changing how you work.
A written policy, a request and a log for every use, and the cross-check before publishing.
Expansion and generation at volume through the Firefly API, with variations awaiting approval.
Every point below has a source published by the vendor, by the project or by the responsible agency. The sources are in the next section.
3
points with a published source, each with its reference shown alongside.
generate-async and expand-async return jobId, statusUrl and cancelUrl; the server token lasts 24 hours.Source: developer.adobe.com, Firefly ServicestrainedAlgorithmicMedia ("Created using Generative AI") and compositeWithTrainedAlgorithmicMedia ("Edited using Generative AI").Source: cv.iptc.org, Digital Source TypeOcto prepares everything, but it does not sign. The document of record stays with whoever is accountable for it.
Surveys, calculates, organizes and produces the documents: processed files, proofs, reports and spreadsheets.
Deliverable: material ready to checkThe client or the art director checks what Octo delivered before approving. If something doesn't add up, it goes back to Octo with the correction.
Step: checked by the person who approvesOcto does not approve the artwork. Artwork carries no legal signature: approval of the artwork and the proof stays with the client or the art director.
Approval: client or art directorFirefly Services documentation, Adobe's AI guidelines and credits page, a 2024 announcement, the 27.11 release announcement, the C2PA specification, the IPTC vocabulary and c2patool, consulted on Oct 31, 2026.
The assessment starts by reading the Content Credentials of a publishing folder that already exists. You get what has AI, what lost its credential along the way and the questions only your team can answer, and you decide with that in hand.