Space Journey Video · Open Skill 公開技能

Space Journey Video

It can land on various planets and make a video. It looks pretty good.

@ExploreFly

MV

1 0 1

https://d7qlwi7tl2u27.cloudfront.net/skill-covers/prod/3656543/2026-08-18/6hvgf3uz.jpg

# Interstellar Travel Video

## When to use
- The user wants a cinematic video of traveling by spaceship to a planet and exploring it, from the cockpit view inside the ship.
- The user gives a planet name (e.g. "Mars", "Proxima Centauri b"), uploads a planet image, and/or uploads a person/character image to appear in the video.
- The user wants a video made from text and/or image assets (not from an existing video clip).
- The user asks for a sequel / next episode / continuation of a previously made interstellar travel video.

## Language
- Throughout the whole workflow, always reply to the user in the same language the user used in their latest message (e.g. Chinese, English, Japanese, etc.). This applies to every interaction: clarifying questions, progress updates, confirmations, delivery messages, and suggested actions. Generation prompts and tool calls stay in English; only the conversation with the user follows this rule.

## Steps

0. **Ask the aspect ratio first.** Before anything else, present the user two option buttons (via `set_guidance`): one for landscape 16:9 and one for portrait 9:16, with the button text written in the user's language (e.g. "🖥️ Landscape 16:9" / "📱 Portrait 9:16"). Wait for the user to pick one, and record it as `orientation` (`'landscape'` or `'portrait'`). If the user already stated the desired aspect ratio in their request, use it directly without asking. Both steps 3 and 4 must use this same `orientation`.

1. **Collect the inputs.** Identify what the user provided:
   - `planet_image` — an uploaded image of the target planet (optional).
   - `planet_name` — the name or description of the target planet (optional).
   - `person_image` — an uploaded image of a person/character who should appear in the video (optional).
   - If neither a `planet_image` nor a `planet_name` is provided, ask the user for one of them before continuing.

2. **Determine the planet's appearance.**
   - If `planet_image` exists, use it directly as the visual reference for the next step; no search is needed. If `planet_name` is also given, use it only to enrich the prompt wording.
   - Otherwise, if `planet_name` exists, call `search_web` with a query such as `"<planet name> planet appearance color surface atmosphere"` to learn what the planet looks like (colors, terrain, atmosphere, rings, clouds, etc.), then summarize the findings into a short visual description for the next step.
   - If the user provided a `person_image`, keep it as an additional reference; do not search for it.

3. **Generate the cockpit reference image** — must use `model='i2i.hd.lite'` only:
   - Call `generate_image` with:
     - `model: 'i2i.hd.lite'` (mandatory; do not substitute any other channel or model).
     - `input_urls`: `planet_image` if provided, and `person_image` if provided (so the person's likeness can be captured).
     - If no image was provided at all (planet name only), omit `input_urls` and build the prompt purely from the search summary — still with `model='i2i.hd.lite'`.
     - `orientation`: the aspect ratio chosen in step 0 (`'landscape'` for 16:9 or `'portrait'` for 9:16), matching the final video.
     - `prompt`: first-person view from inside the cockpit of an interstellar spaceship, seated in the pilot seat and looking out through the front windshield toward the destination planet; describe the planet from the search summary or the uploaded planet image (colors, terrain, atmosphere, rings, etc.); the space around the destination planet may be decorated with other stars, planets, and a starry river (galaxy/nebula) as embellishments; cinematic sci-fi style, high detail. If `person_image` was provided, state that the person from the uploaded photo is the one seated in the cockpit (visible from behind in the pilot seat).
     - `name: 'cockpit-view-reference'`, `entity_type: 'reference_images'`.

4. **Generate the 10-second travel video** — must use `model='ref2v'` only:
   - Call `generate_video` with:
     - `model: