Vintage Film Photo · সর্বজনীন Open Skill
Vintage Film Photo
Vintage Film Photo
Internal
0 0 0
https://d7qlwi7tl2u27.cloudfront.net/skill-covers/prod/3656543/2026-10-14/ew92reat.jpg
# Vintage Film Photo
Turn the user's **uploaded reference image** into a **vintage analog film photograph** using **image-to-image** generation. **Composition is locked:** same crop, aspect ratio, camera angle, perspective, and placement of every person, object, and background element. Only **film-era color, tone, grain, and optical character** change—no reframing, no added or removed subjects, no outfit or location swaps unless the user explicitly asks for those (outside this skill's scope).
## When to use
- User uploads or points to an image and asks for vintage / retro / film / analog / 胶片 / 复古照片 look.
- User names a film era or stock (e.g. 70s Kodak, faded Fujifilm, disposable camera, expired film).
- User wants another variant, more grain, warmer/cooler cast, or higher detail on the **same** upload.
**Do not use** for video, text-only generation without a reference image, identity changes, NSFW, or requests that change who/what appears in the scene.
## Style reference (read on demand)
Film-era definitions and prompt tokens:
| File | Read when |
|---|---|
| `references/vintage-film-looks.md` | Choosing or explaining a film look; user asks what styles exist; complex or mixed lighting in the source |
Call `read_skill_file(name='vintage-film-photo', path='references/vintage-film-looks.md')` once per task unless the user repeats the same style ID.
## i2i model channels (required)
Always use **`generate_image`** with the user's image in **`input_urls`** (first URL = structure reference). Set **`model`** to exactly one of:
| Channel | When to use |
|---|---|
| `i2i.hd.lite` | Fast preview, simple scenes, user asks for a quick draft |
| `i2i.hd` | **Default** balanced quality for most conversions |
| `i2i.hd.gpt` | Portraits, fine detail, busy scenes, small text, or user asks for best quality |
Do **not** use `t2i*` channels for this skill. Do **not** pass physical model names.
If the first result drifts layout or changes subject placement, retry once with the **same** `input_urls` and a stricter prompt (see below), stepping up channel (`i2i.hd.lite` → `i2i.hd` → `i2i.hd.gpt`) if needed.
## Workflow
1. **Confirm input** — Use the user's uploaded image URL / `asset_id` from the conversation or canvas. If missing, ask for one image before generating.
2. **Optional analysis** — For vague requests ("make it vintage"), call `recognize_image` on the same input to detect subject type (portrait, landscape, indoor, night, etc.) and map to a style ID via `references/vintage-film-looks.md`.
3. **Pick look** — Default style ID: `classic-35mm-warm`. Override when the user names an era/stock or analysis suggests a better match (mention the choice briefly in the reply).
4. **Match dimensions** — Preserve the source aspect ratio:
- Infer orientation from the reference: wide → `orientation='landscape'`; tall → `orientation='portrait'`; roughly equal → `orientation='square'`.
- If the user explicitly requires a non-standard ratio (e.g. 3:4, 4:3), pass `aspect_ratio='W:H'` **instead of** guessing wrong from orientation alone.
- Do **not** pass arbitrary pixel sizes. Omit `resolution` unless the user asks for higher output (then default → `1080P` or `2K` as requested).
5. **Generate** — Single output per request unless the user asks for multiple variants:
```text
generate_image(
model='<i2i.hd.lite | i2i.hd | i2i.hd.gpt>',
input_urls=[<user_reference_image>],
orientation='<landscape|portrait|square>' OR aspect_ratio='<W:H>',
prompt=<English prompt from template>,
name='<short title, e.g. Vintage film – Street>',
entity_type='skill_generation'
)
```
6. **Reply** — Summarize film look chosen, quality tier, and that composition matches the upload. Do not paste long URLs; canvas shows the asset.
For multi-image batches, use `write_todos` and process sequentially with the same rules per image.
## Prompt template (English, layout-locked)
Build one string. Insert `[STYLE_ID]` tokens from the reference file's **P