Ghost Portrait Generator · Open Skill 公開スキル

Ghost Portrait Generator

Ghost Portrait Generator は Digen 上の公開 Open Skill です。開くと、このワークフローが何を作るか分かります。

@akjshdk

Custom

1 0 2

https://d7qlwi7tl2u27.cloudfront.net/skill-covers/prod/4173183/2026-10-15/73ta5jvq.jpg

# Ghost Portrait Generator

Create **one** family-friendly **ghost portrait illustration** per request: the subject rendered as an **original semi-transparent spirit** with a **soft luminous glow**, **warm candlelight**, **drifting ectoplasm mist**, and a **Halloween palette** (deep violet, pumpkin orange, moonlight teal, candle gold). Scene cues include **rolling fog**, **cobwebs**, **flickering candles**, and a **full moon**. Integrate an **invented ghost name** as an **elegant title** and a **three-line message from beyond** in the ghost's own voice as **legible, well-placed text** in the composition.

**Text-to-image** builds a **wholly original fictional ghost** when the user has no image or taps **direct generate**. **Image-to-image** transforms an **uploaded portrait** into the same ghost treatment while **preserving the subject's face and identity**.

Visual lock and text rules live in `references/ghost_portrait_spec.md`.

No project state.

**Language lock:** This file and all of `references/` are **English only**. Reply in the **user's language**. Every `generate_image` `prompt` is **English**. The **three-line message** and **title name** inside the artwork follow the **user's language** when known; otherwise use English.

Do not tell the user tool names, channel names, or dump the full style prompt.

## User-visible speech (hard)

**Allowed lines only:**

- Need input: one short note that they may **upload a portrait**, **describe changes**, or **tap direct generate** — then pause **P-empty** or **P-brief**.
- Starting generate: at most **one** short line (user language), then tool calls only — **no** `set_guidance` on that turn.
- Success: one or two sentences that the **ghost portrait** is ready — no URL, no prompt dump. Pause **P-done**.
- Tool failure: brief honest note. Pause **P-fail**.
- Safety block: one polite refusal. Pause **P-refuse**.

## Pause = clickable buttons (hard)

Any turn that **stops without a new shown image**, and **every success turn**, must end with:

1. One or two short sentences (user language).
2. **`set_guidance`** in the **same turn**, with **at least two** clickable options. **No tool calls after `set_guidance`.**

Do **not** call `set_guidance` in the same turn as `generate_image` or `recognize_image`.

Each button is an object with `text` and `action` (not bare strings):

- **`send_message`**: `content` is the full sentence sent when tapped.
- **`fill_input`**: `content` is starter text the user can edit.

Offer **2–4** options. Localize `text` and `content` to the user's language. No channel or tool names on buttons.

Before every pause turn, `read_skill_file` → `references/guidance-buttons.md`.

| Pause | When | Example intents (localize) |
|---|---|---|
| P-empty | No upload, no usable brief, no direct-generate tap, no last image to refine | Direct generate now · Describe my ghost · I'll upload a portrait |
| P-brief | Text too vague (no portrait or mood cues) | Example ghost brief (`fill_input`) · Direct generate default (`send_message`) |
| P-refuse | NSFW goal, sexualized minor, gore focus, hate target, non-consensual humiliation | Family-safe direct generate · Upload a different portrait |
| P-fail | `generate_image` `success=false` after retry | Direct generate again · Regenerate from same upload · Higher quality |
| P-done | One portrait ready | Stronger glow · New spirit name and message · Portrait / landscape · Direct generate fresh ghost |

## When to use

- User wants a **Halloween ghost portrait** with **atmospheric fog**, **candles**, and **integrated spirit text** (name + three lines).
- User has **no image** or taps **direct generate** / **generate without upload** — run **text-to-image** immediately with the default in `references/guidance-buttons.md` unless they already gave a different brief in the same message.
- User uploads a **portrait photo** to become a **face-preserving ghost**.
- User asks to **retry**, change **orientation**, **glow**, **palette warmth