portrait-clone-genlisted
Install: claude install-skill maxxyart/portrait-clone
# Portrait Clone Gen
**Input:** TikTok link (video or photo post), Instagram link (reel, post, carousel), a screenshot or a picture (file path or image attached in chat).
**Output:** one image file `clones/<name-slug>.jpg` in the current project. Library format for every avatar: JPG, long side 1920 px (9:16 = 1080x1920), whatever the source resolution. Work files live in `clones/_work/<name-slug>/` (prompt.json, meta.json, source frames, raw PNG, reference-vs-clone preview), and every avatar has a row in `clones/index.csv`.
Scripts: `scripts/` in this skill's folder (default install: `~/.claude/skills/portrait-clone-gen/scripts/`, adjust the paths below if you installed elsewhere). Needs Python 3.9+ with Pillow, and ffmpeg for video links. Keys: `RUNWARE_API_KEY` (always) and `SCRAPE_CREATORS_API_KEY` (links only), read from the environment, from the file in `PORTRAIT_CLONE_ENV_FILE`, or from `./.env`.
## Pipeline
1. **Prepare references**
- Link: `python3 ~/.claude/skills/portrait-clone-gen/scripts/prepare_reference.py "<url>"`
→ `clones/_work/<platform>-<id>/`: `first_frame.png`, `cover.jpg`, `frame_25|50|75.png` (videos), `meta.json` (author, caption, stats).
- Screenshot / picture file(s): `python3 …/prepare_reference.py "<path>" ["<path2>" …]` → `input_N.jpg`.
- Image attached in chat without a file path: create `clones/_work/img-<timestamp>/` yourself and work from what you see (hex values are then visual estimates).
2. **Look at every reference** (Rea