File size: 4,320 Bytes
cd026e5 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 | # Character Sheet Generation — gpt-image-2 Prompt
How to convert a single reference photo (a headshot, or ideally a real full-body photo) into a
**4-panel character sheet** used as the training/inference reference for the
[LTX-Best-Face-ID](https://huggingface.co/Alissonerdx/LTX-Best-Face-ID) character-sheet checkpoint.
## What it produces
A single image, 4 panels arranged left to right, all on a clean white background:
1. **Face close-up** (head and shoulders, front-facing)
2. **Full body — front view**
3. **Full body — side view** (90° profile)
4. **Full body — back view**
The same person's exact face, hair, and clothing are preserved across all four panels.
> ⚠️ **The reference image resolution must be `1536×1024`.** The LTX character-sheet LoRA was
> trained on sheets at this exact size — ask for `1536x1024` / landscape when generating it, and
> use `ref_resize_mode = native_resolution` on the ComfyUI node at inference time (see below).
## Model
`gpt-image-2` — the easiest way is to just **upload your photo to ChatGPT** and paste the prompt
below (image generation/editing is built in, no API needed). Ask for it at **1536×1024** / landscape.
## The prompt
```text
Convert the person in the photo into a character reference sheet with four panels
arranged left to right: a close-up of the face, then full-body front, side, and back
views, on a white background.
```
If your source image already shows the full body (recommended — see below), you can use the
longer, more explicit version, which gives more consistent results:
```text
Create a character reference sheet on a clean white background, divided into FOUR panels
arranged side by side, using the person in the input image as the exact subject.
Panel 1 (leftmost, narrower panel): a CLOSE-UP of the person's FACE ONLY (head and shoulders,
front-facing, filling most of the panel) — zoom in on the face shown in the input image.
Panel 2: FULL BODY (head to toe) FRONT view, facing directly forward.
Panel 3: FULL BODY (head to toe) SIDE view, facing 90 degrees to the right.
Panel 4: FULL BODY (head to toe) BACK view, facing completely away (back of head and body visible).
Preserve the person's exact facial features, skin tone, hair color, hair style, and EXACT clothing
(same garments, colors, and patterns) as shown in the input image, consistent across all four panels.
Panels 2-4 must show the full body with no cropping. White background. Equal white spacing between
panels. No text, no labels, no borders.
```
## Input image matters a lot
- **If the input is a real full-body photo:** the model can *see* the actual clothing and just
needs to re-render it from new angles — clothing stays accurate across all four panels. This is
the recommended input.
- **If the input is only a face/headshot crop:** the model has no information about the person's
body or clothing below the neck, so it has to **invent** an outfit for panels 2–4. The face
panel stays accurate; the body panels won't match any real clothing the person owns. Still
useful for identity, less useful if you need clothing consistency.
## Using the result
- **For inference** (ComfyUI, `LTX Identity Transfer` node): feed the 4-panel sheet directly as
the reference image, `source_id=2`, and set **`ref_resize_mode = native_resolution`** — the
sheet is a wide (1536×1024) image trained at its own fixed resolution, independent of the output
video's resolution. Using the default `match_target` mode squashes the sheet down to the video's
resolution and destroys facial/clothing detail.
- **For training:** pair the sheet with the ORIGINAL video the reference came from and a caption
describing the scene/action (`ref_t2v: ...`), same `source_id=2` / `layout=overlap` conditioning
as the base close-up recipe.
## Notes / gotchas
- `gpt-image-2`'s moderation occasionally rejects an input with `safety_violations=[sexual]` even
for ordinary photos (more often with athletic/swimwear-adjacent source images) — handle this as
a normal failure case and skip that sample, don't retry blindly.
- Rate limits are tight (roughly 5 images/min per account at time of writing) — space out batch
requests (e.g. ~13s between calls) and use a small thread pool rather than firing all requests
at once.
|