Candlelight Count Transformation · skill publik Open Skill

Candlelight Count Transformation

Candlelight Count Transformation adalah Open Skill publik di Digen. Buka untuk melihat apa yang dibuat alur ini.

@wwws

Course

4 0 2

https://d7qlwi7tl2u27.cloudfront.net/skill-covers/prod/4284863/2026-10-19/pc73zd58.jpg

# Candlelight Count Transformation

Turn one uploaded photo into an 8-second single-take short video: two foreground candles gutter and dim, the light rolls from warm amber to cold moonlight, the subject's skin fades to porcelain, the pupils ignite red, fangs appear, a black high-collar cape lifts behind the shoulders, and the wall behind becomes a gothic corridor. The same subject, the same framing, one continuous shot.

No structured project state is used. Everything needed across turns (identity anchors, chosen look, the written script) lives in the conversation and on canvas assets.

## When to use

- User uploads a portrait / character photo and asks for the "candlelight dims, becomes the count" short video.
- User asks to restyle, lengthen, shorten, re-time or fix a previous result of this skill.
- User only wants the transformed still (keyframe) without motion.
- User gives text only and wants this transformation built from a generated base portrait.

## Inputs and outputs

| Input | How it is used |
|---|---|
| Reference image (primary) | Identity anchor. Analyzed with `recognize_image`, then passed into `generate_image` (`i2i.hd.lite`) and `generate_video` (`ref2v`) as `input_urls`. Its face, hair, facial hair and framing must survive. |
| Text prompt (optional) | Mood / variant / pacing notes (colder, more menacing, slower push-in, longer hold). It tunes the script and the prompt fragments, but never overrides the locked look, the identity anchors, the 9:16 framing or the one-take rule. |

Output: one short video asset (`entity_type='final_videos'`) plus the transformed keyframe image (`entity_type='storyboard_images'`). If the user asked for a still only, skip the script step and the video step.

## Steps

1. **Confirm intent and inputs.** Identify: is there a reference image, what did the text ask for, still or video, any pacing/length preference. If there is no image, say so and offer to generate a base portrait first with `generate_image(model='t2i', orientation='portrait')` and continue from that; do not silently invent a person.
2. **Plan the run.** `read_skill_file(path="references/workflow-stages.md")` and follow its stage plan, checks, branches and retry rules. Enter `write_todos` for multi-stage runs.
3. **Read the identity.** Call `recognize_image` on the user's image with a short English prompt asking for: face structure and age, hairstyle and facial hair, skin tone, expression and gaze direction, clothing and neckline, framing and crop, foreground/background props, dominant light direction and color. Keep these as "must keep" anchors for every later step.
4. **Lock the look and build the image prompt.** `read_skill_file(path="references/style-and-prompt.md")`. Fill its image keyframe template with the identity anchors and the user's text, then call `generate_image` with `model='i2i.hd.lite'`, `input_urls=[reference image]`, `orientation='portrait'`, `entity_type='storyboard_images'`, and a short `name`. This keyframe is the visual contract for the video (porcelain skin, red eyes, fangs, cape, gothic corridor). If the user only wanted a still, stop here and reply.
5. **Write the script for this request.** `read_skill_file(path="references/video-script.md")` and write a complete English script for **this** user's request — logline, 8-second beat breakdown, per-beat framing, camera move, subject action, light change, transition, must-keep / must-avoid. Never reuse a generic template as the finished script; derive the beats from the analyzed photo and the user's text.
6. **Compress into the video prompt.** `read_skill_file(path="references/video-content-constraints.md")` and apply its shot, motion, timing, ref2v and forbidden-content rules while turning the script into one dense English prompt.
7. **Generate the video.** Call `generate_video` with `model='ref2v'`, `input_urls=[original reference image, keyframe]`, `orientation='portrait'`, `resolution='1080P'`, `duration=8`, `entity_type='final_videos'`, and