scenario-skyboxes — Claude Code skill: panoramas and setup
Create and revise 360° skyboxes through Scenario MCP. Useful for game environments, VR backdrops, and preparing panorama files for export.
npx skills add scenario-labs/skills --skill scenario-skyboxes -a claude-codeWhat scenario-skyboxes does
This skill guides Scenario models through text-to-panorama generation, photo conversion, style changes, and skybox upscaling. It starts by finding an available model and reading that model’s parameter schema. The catalog can change, so check it again before relying on a model ID or its listed capabilities. A regular image model can leave panorama edges mismatched or distort the poles.
The workflow covers launching a model, waiting for its job, and viewing the result with Scenario tools. A dedicated skybox upscaler preserves the wrap when enlarging an image, and the final asset can be downloaded. The separate scenario skill from the same repository is needed for the Scenario MCP connection. Model settings and output formats depend on the selected schema; confirm the cubemap layout with the schema before using Skybox GPT for that export.
What it helps with
- generate a 360° panorama from a text prompt
- turn a place photo into a skybox
- change the mood of an existing panorama
- enlarge a skybox while preserving its wrap
- prepare an equirectangular image for a game engine
Example prompts for the agent
- Create a 360° panorama of a misty forest at dawn for my game scene.
- Turn this photo of a place into a skybox and show me the result.
- Upscale this panorama without breaking the wrap, then prepare it for Unity.
How to install scenario-skyboxes
1Skills CLI (Vercel)
npx skills add scenario-labs/skills --skill scenario-skyboxes -a claude-code2Manually: put the files in place
~/.claude/skills/scenario-skyboxes/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/scenario-skyboxes/
1Skills CLI (Vercel)
npx skills add scenario-labs/skills --skill scenario-skyboxes -a codex2Manually: put the files in place
.agents/skills/scenario-skyboxes/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add scenario-labs/skills --skill scenario-skyboxes -a cursor2Manually: put the files in place
.cursor/skills/scenario-skyboxes/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install scenario-labs/skills scenario-skyboxes2Manually: put the files in place
.github/skills/scenario-skyboxes/SKILL.md1Skills CLI (Vercel)
npx skills add scenario-labs/skills --skill scenario-skyboxes -a gemini-cli2Platform CLI
gemini skills install https://github.com/scenario-labs/skills --path skills/scenario-skyboxesManually: put the files in place
.devin/skills/scenario-skyboxes/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add scenario-labs/skills --skill scenario-skyboxes -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about scenario-skyboxes
How do I install scenario-skyboxes in Claude Code?
Run npx skills add scenario-labs/skills --skill scenario-skyboxes -a claude-code. The skill file is placed at ~/.claude/skills/scenario-skyboxes/SKILL.md.
What does scenario-skyboxes do?
It guides Scenario MCP workflows for generating 360° panoramas from text or photos, adjusting their look, and upscaling skyboxes.
Does scenario-skyboxes handle the Scenario MCP connection?
It points to the separate scenario skill in the same repository for the connection and core generation workflow.
Source text
SKILL.md · MIT
---
name: scenario-skyboxes
description: Use when a task involves generating or iterating on skyboxes, 360 panoramas, equirectangular images, environment maps, HDRI-style backdrops, or VR backdrops through the Scenario MCP. Triggers include text-to-skybox, turning a photo into a 360 environment, restyling a panorama's mood, upscaling a skybox without breaking the seam wrap, or exporting equirectangular or cubemap layouts for game engines such as Unity, Unreal, or Godot.
license: MIT
---
# Scenario Skyboxes and 360 Panoramas
## Overview
Scenario hosts dedicated skybox models that produce seamless equirectangular 360 panoramas, plus a
seam-preserving skybox upscaler. Always generate with a skybox-specific model rather than a generic
image model: these enforce the seam continuity and pole geometry that ordinary text-to-image output
lacks.
Connection and the core generation loop: see the `scenario` skill in this repo. If a sibling skill
named here is missing from your available skills, ask the user to install it
(`npx skills add scenario-labs/skills --skill <name>`); unattended, proceed from tool schemas and
flag the gap.
## Quick reference
| Step | Tool | Purpose |
| ---- | ------------------------------------------------------- | ---------------------------------------------- |
| 1 | `search` (target="models", query="skybox", public=true) | Discover current skybox models |
| 2 | `model_schema_get` | Exact parameter contract for the chosen model |
| 3 | `model_run` | `dry_run=true` to price; `wait=false` to batch |
| 4 | `jobs_wait` | On timeout re-call with `pending_job_ids` |
| 5 | `asset_display` / `asset_download` | Review inline, then save the file |
Model IDs and the parameter facts below were live `search` hits at authoring time. Re-discover them
each time: availability differs per team and evolves.
- `model_scenario-skybox-flux`: text to 360 panorama, a style preset enum (count drifts; read it
from the schema), automatic seam and pole correction, optional reference image with a strength
slider.
- `model_scenario-skybox-gpt`: text to 360 panorama guided by up to 10 reference images, quality
presets, width and height up to 3840 px.
- `model_hunyuan-world-image-to-skybox`: one photo of a place to a seamless 360 skybox.
- `model_sc-upscale-flux-skybox`: 2x to 8x skybox upscale that preserves the seamless wrap.
## Worked example: generate, iterate, export
Example: a stylized forest skybox for a game scene.
1. `search` with target="models", query="skybox", public=true. Pick a text-to-skybox model, for
example `model_scenario-skybox-flux`.
2. `model_schema_get` for that model. Expect fields like prompt, style, negativePrompt, image,
strength, numOutputs, geometryEnforcement, seed. negativePrompt is inert unless
negativePromptStrength is above 0.
3. `model_run` with parameters={"prompt": "ancient pine forest at dawn, mist between trunks, god
rays", "style": "cinematic", "numOutputs": 2}. Take style preset names from the schema response.
`dry_run=true` first prices the run; launch with `wait=false`.
4. `jobs_wait` with job_ids=[the returned job_id]. Its ~180s timeout is not an error: re-call with
the returned `pending_job_ids` as `job_ids`, never a second `model_run`. Then `asset_display`
each output.
5. Iterate on mood: copy the seed from the best result and change only style (cinematic,
oil-painting, cyberpunk, and more). To keep composition while shifting look, pass the favorite as
image with low strength (0.2 to 0.4). To steer mood from concept art instead, switch to
`model_scenario-skybox-gpt` and pass referenceImages.
6. Export: run `model_sc-upscale-flux-skybox` with image=asset_id and the smallest upscaleFactor
that reaches target (the upscale can cost several times the generation, and its `dry_run` can
only run once the input asset exists, so the chain cannot be priced up front). baseModel defaults
to FLUX.1-dev (stylized); a Krea-based realism option exists, and strength defaults to 0.6, which
invents detail: lower it when the goal is the same panorama at higher resolution. Read the exact
allowed values from `model_schema_get` before switching. Then `asset_download` the final asset.
7. Verify the seam at no cost: compare the saved PNG's leftmost and rightmost pixel columns; on a
seamless panorama they differ by near zero while columns a quarter-turn apart differ by an order
of magnitude more.
Engine format notes: Skybox Flux outputs equirectangular panoramas; keep the default sizing
(1536x768 at authoring time) and read the real dimensions off the returned asset rather than
assuming them. Skybox GPT's catalog lists equirectangular 2:1 plus cubemap strip 6:1 and cubemap
cross 4:3 layouts, but its schema exposes only width and height, so confirm the layout contract with
`model_schema_get` before relying on a cubemap layout. Beyond flat backdrops, the same search
surfaces `model_hunyuan-world-skybox-to-splat`, and a separate search (query="world") finds the
Marble world models; both turn a finished panorama into a navigable 3D Gaussian splat scene, the
pipeline the `scenario-3d-worlds` skill teaches end to end.
## Common mistakes
- Prompting a generic image model for a "360 panorama": edges will not wrap and poles smear. Use a
dedicated skybox model.
- Upscaling with a generic upscaler: it breaks continuity at the wrap seam. Use the skybox upscaler.
- Hardcoding model IDs in scripts or docs: re-discover with `search`; the catalog changes.
- Fighting seam or pole distortion through prompt wording on Skybox Flux: raise geometryEnforcement
above 0 instead, and only when distortion is actually visible.
- Requesting a non 2:1 width to height ratio on Skybox GPT while expecting equirectangular output:
keep 2:1 (for example 2048x1024) for correct 360 viewing.
- Skipping `model_schema_get`: skybox models carry model-specific fields (style,
geometryEnforcement, quality) that generic assumptions miss.
© scenario-labs · MIT · scenario-labs/skills