Selfie to Demon · compétence Open Skill
Selfie to Demon
Selfie to Demon est une Open Skill publique sur Digen. Ouvrez-la pour voir ce que ce workflow crée.
Custom
1 0 1
https://d7qlwi7tl2u27.cloudfront.net/skill-covers/prod/3949831/2026-10-19/bnr3wenn.jpg
# Selfie to Demon Turn the user's own photo into the "Selfie to Demon" look: one photorealistic portrait where the same person is shown twice — a clean, natural human half and a corrupted demon half — split down the middle of the face. The user's identity must stay readable; only the demon half is transformed. This Skill has no structured state. Everything you need across turns lives in the conversation and in the generated canvas assets. ## When to use - The user uploads a photo of themselves (or someone) and asks for a "demon version", "demon selfie", "selfie to demon", "half demon", "possessed version", "hell version of me". - The user wants an existing demon portrait re-styled, or wants the demon traits changed (different horns, eye color, skin, outfit, intensity). - Only a photo plus optional text is provided; the output is always a single image. ## Inputs and outputs | Input | How it is used | |---|---| | Reference photo (required for a faithful result) | Passed to `generate_image` as `input_urls=[photo]`. It carries the identity, hairstyle, pose, camera distance and background of the human half. | | Text prompt (optional) | Describes the demon traits to apply (horns, eye glow, cracked skin, outfit, mood, intensity). Mapped into the prompt with `references/demon-variations.md`. | | Output | One portrait image, vertical 9:16, added to the canvas. | ## Steps 1. **Read the visual spec first.** Call `read_skill_file(name="selfie-to-demon", path="references/style-and-prompt.md")` before writing any prompt. It holds the palette, materials, lighting, split layout, must-keep / must-avoid rules and the copy-ready prompt templates. Never call `generate_image` before this read. 2. **Confirm the source photo.** Identify the image the user attached in this turn or earlier. If there is no photo, ask for one once. If the user insists on text only, continue with a text-to-image call (`model='t2i'`) and tell them the result will not preserve their real identity. 3. **Extract identity anchors.** If the photo has not already been described in this conversation, call `recognize_image(image_url=<photo>, prompt="Describe the person's face shape, hairstyle and hair color, eye color, skin tone, expression, head pose, camera angle and distance, clothing on the shoulders/neck, and the background."). Anchor list and what matters most is in `references/step-details.md`. Skip this call when the anchors are already established in the conversation. 4. **Map the user's text to demon traits.** Read `read_skill_file(name="selfie-to-demon", path="references/demon-variations.md")` when the user names specific traits, an intensity level, or something the defaults do not cover. If the user gave no text, use the DEFAULT preset from that file. 5. **Assemble the prompt.** Read `read_skill_file(name="selfie-to-demon", path="references/step-details.md")` for the prompt assembly order, generation parameters and the quality-control checklist. Fill the template from `references/style-and-prompt.md` with the identity anchors, chosen traits and the user's language-independent details. Write the image prompt in English. 6. **Generate.** Call: `generate_image(prompt=<assembled prompt>, input_urls=[<source photo>], model='i2i.hd.lite', orientation='portrait', resolution='2K', name='Selfie to Demon', entity_type='characters')` Keep `model='i2i.hd.lite'` — this is an image-to-image edit of an existing photo. Only fall back to `model='t2i'` for the text-only case in step 2. 7. **Quality-check and retry.** Run the checklist in `references/step-details.md` (identity, split alignment, feature continuity, trait match, cleanliness). If it fails, apply the listed correction, regenerate at most twice with the same `model='i2i.hd.lite'`, then report honestly. 8. **Reply and guide.** Describe the result in one or two natural sentences (which traits were applied), do not paste long URLs, and call `set_guidance` in the same turn with relevant next actions, e.g.