AI-generated workflow illustration. The panels are conceptual and do not represent a tested interface or measured model outputs.
Image-generation prompts become difficult to debug when the subject, scene, camera, lighting, format, and constraints all change at once. This article turns a Free GPT Image 2 prompt workflow into a small, reproducible specification: one YAML brief, one changed variable per iteration, and one review log for the selected output.
The method is tool-agnostic. UGC Maker currently labels the linked browser page “Free GPT Image 2” and exposes prompt, reference-image, and aspect-ratio controls. The page also displayed free, no-signup access when checked on August 25, 2026. This article does not treat the UI label as independent verification of the underlying model provider, an API, or benchmark performance.
Why a prompt needs an output contract
A prompt describes what to generate. An output contract also states what must remain stable, what may change, where the result will be used, and how a reviewer decides whether it passes.
For a product card, the contract might require:
- a 1:1 destination ratio;
- a stable bottle silhouette and label position;
- a neutral surface with copy space;
- no generated price, rating, or product claim;
- a side-by-side review against the approved reference.
Without that contract, a visually attractive result can still fail the actual task.
Define the prompt specification in YAML
The following file keeps creative instructions and review requirements in one place.
project: bottle-product-card
version: 1
destination:
channel: mobile-store
aspect_ratio: "1:1"
copy_space: top-right
input:
reference_id: approved-bottle-014
reference_rights_checked: true
subject:
description: matte black insulated bottle
must_keep:
- silhouette
- cap shape
- black surface finish
- label position
scene:
context: bright home-office desk
camera: close three-quarter view
lighting: soft morning window light
style: realistic commercial lifestyle photography
avoid:
- extra products
- invented claims
- generated price or rating
- unreadable headline text
review:
compare_with_reference: true
check:
- proportions
- label geometry
- color and material
- mobile readability
- copy space
This is not an API request format. It is a human-readable source of truth from which a prompt can be assembled.
Render a prompt from the specification
A minimal JavaScript function can turn the fields into consistent prompt text.
function renderPrompt(spec) {
const keep = spec.subject.must_keep.join(", ");
const avoid = spec.avoid.join(", ");
return [
`Create a ${spec.destination.aspect_ratio} image of ${spec.subject.description}.`,
`Scene: ${spec.scene.context}.`,
`Camera: ${spec.scene.camera}.`,
`Lighting: ${spec.scene.lighting}.`,
`Style: ${spec.scene.style}.`,
`Keep consistent with the reference: ${keep}.`,
`Leave copy space at ${spec.destination.copy_space}.`,
`Avoid: ${avoid}.`,
].join(" ");
}
Separating data from prose makes the brief easier to review. A teammate can inspect must_keep without searching through a paragraph, and a later version can reuse the same subject contract with a different scene.
Validate the brief before generation
The generator cannot repair a missing requirement that the team never documented. A small validation function catches common omissions before anyone spends time comparing outputs.
function validateSpec(spec) {
const errors = [];
if (!spec.destination?.aspect_ratio) {
errors.push("destination.aspect_ratio is required");
}
if (!spec.subject?.description) {
errors.push("subject.description is required");
}
if (!spec.subject?.must_keep?.length) {
errors.push("subject.must_keep needs at least one item");
}
if (spec.input?.reference_id && !spec.input.reference_rights_checked) {
errors.push("reference rights must be checked before upload");
}
if (!spec.review?.check?.length) {
errors.push("review.check needs at least one criterion");
}
return errors;
}
This validation does not establish legal permission; it only prevents the team from skipping its own confirmation field.
Change one variable per iteration
When an output fails, classify the failure before changing the brief.
| Failure | First field to change | Fields to hold stable |
|---|---|---|
| Product is too small | scene.camera |
subject, surface, light, ratio |
| Background is distracting | scene.context |
subject, camera, light, ratio |
| No room for copy |
destination.copy_space or camera |
subject and preserve list |
| Product identity drifts | shorten subject.must_keep to essentials |
scene and ratio |
| Text is unreadable | remove generated copy; reserve space | subject, scene, ratio |
Record each run as a small patch rather than rewriting the full prompt history.
iterations:
- id: v1
change: initial specification
result: product too small on mobile
decision: reject
- id: v2
change:
field: scene.camera
from: close three-quarter view
to: tight three-quarter product close-up
result: product readable; copy space preserved
decision: keep-for-review
- id: v3
change:
field: scene.lighting
from: soft morning window light
to: soft side light with weaker background highlights
result: label contrast improved
decision: selected-direction
The log does not need a database. A YAML or Markdown file beside the selected image is enough for a small workflow.
Use a reference image when identity matters
Text-only generation is useful for exploration. A reference image is more appropriate when the result needs to stay close to a product photo, portrait, package, or brand asset. It remains guidance rather than a guarantee of pixel-level reproduction.
Before upload, record the source and intended use. After each iteration, compare the output with the approved reference for proportions, labels, colors, added components, and removed components. If exact text matters, reserve copy space and add the approved wording later.
The UGC Maker Free GPT Image 2 page can be used to test this manual prompt-and-reference process. Do not describe the browser page as an API unless the service publishes API documentation and terms for that use.
Create a handoff record for the selected image
The final image alone is not reproducible. Send the specification, reference identifier, selected iteration, and open review items with it.
handoff:
project: bottle-product-card
selected_iteration: v3
output_file: bottle-product-card-v3.webp
reference_id: approved-bottle-014
prompt_spec_version: 1
final_copy_added: false
review_status:
product_identity: pass
mobile_readability: pass
exact_label_text: replace-in-design-tool
usage_terms: verify-before-publication
next_action: add approved label and price outside the generator
This gives a designer, developer, or content operator enough context to continue without guessing which details were intentional.
What this workflow does not prove
A successful output does not prove that future runs will preserve the same subject. It does not validate generated text, authorize a logo, grant rights to a reference image, or establish commercial-use permission. Those require separate checks.
The YAML structure also does not imply a hidden request schema, stable seed, latency target, throughput limit, or supported automation interface. It is a local workflow for making manual prompt experiments easier to inspect.
Conclusion
A reproducible Free GPT Image 2 prompt workflow needs three small artifacts: a specification, a one-variable iteration log, and a handoff record. Together they separate product identity from creative variation and make review decisions visible. Keep the format lightweight, validate required fields before generation, and verify the live tool controls and terms before production use.

Prompt anatomy: subject, scene, camera, lighting, output format, and constraints.
