{"skill":{"slug":"sora","displayName":"Sora Video Generation","summary":"Generate videos from text prompts or reference images using OpenAI Sora.\n\n✅ USE WHEN:\n- Need AI-generated video from text description\n- Want image-to-video (animate a still image)\n- Creating cinematic/artistic video content\n- Need motion/animation without lip-sync\n\n❌ DON'T USE WHEN:\n- Need lip-sync (person speaking) → use veed-ugc or ugc-manual\n- Just need image generation → use nano-banana-pro or morpheus\n- Editing existing videos → use Remotion\n- Need UGC-style talking head → use veed-ugc\n\nINPUT: Text prompt + optional reference image\nOUTPUT: MP4 video (various resolutions/durations)","description":"---\nname: sora\ndescription: |\n  Generate videos from text prompts or reference images using OpenAI Sora.\n  \n  ✅ USE WHEN:\n  - Need AI-generated video from text description\n  - Want image-to-video (animate a still image)\n  - Creating cinematic/artistic video content\n  - Need motion/animation without lip-sync\n  \n  ❌ DON'T USE WHEN:\n  - Need lip-sync (person speaking) → use veed-ugc or ugc-manual\n  - Just need image generation → use nano-banana-pro or morpheus\n  - Editing existing videos → use Remotion\n  - Need UGC-style talking head → use veed-ugc\n  \n  INPUT: Text prompt + optional reference image\n  OUTPUT: MP4 video (various resolutions/durations)\n---\n\n# Sora Video Generation\n\nGenerate videos using OpenAI's Sora API.\n\n## API Reference\n\n**Endpoint:** `POST https://api.openai.com/v1/videos`\n\n### Parameters\n\n| Parameter | Values | Description |\n|-----------|--------|-------------|\n| `prompt` | string | Text description of the video (required) |\n| `input_reference` | file | Optional image that guides generation |\n| `model` | `sora-2`, `sora-2-pro` | Model to use (default: sora-2) |\n| `seconds` | `4`, `8`, `12` | Video duration (default: 4) |\n| `size` | `720x1280`, `1280x720`, `1024x1792`, `1792x1024` | Output resolution |\n\n### Important Notes\n\n- **Image dimensions must match video size exactly** - the script auto-resizes\n- Video generation takes 1-3 minutes typically\n- Videos expire after ~1 hour - download immediately\n\n## Usage\n\n```bash\n# Basic text-to-video\nuv run ~/.clawdbot/skills/sora/scripts/generate_video.py \\\n  --prompt \"A cat playing piano\" \\\n  --filename \"output.mp4\"\n\n# Image-to-video (auto-resizes image)\nuv run ~/.clawdbot/skills/sora/scripts/generate_video.py \\\n  --prompt \"Slow dolly shot, steam rising, warm lighting\" \\\n  --filename \"output.mp4\" \\\n  --input-image \"reference.png\" \\\n  --seconds 8 \\\n  --size 720x1280\n\n# With specific model\nuv run ~/.clawdbot/skills/sora/scripts/generate_video.py \\\n  --prompt \"Cinematic scene\" \\\n  --filename \"output.mp4\" \\\n  --model sora-2-pro \\\n  --seconds 12\n```\n\n## Script Parameters\n\n| Flag | Description | Default |\n|------|-------------|---------|\n| `--prompt`, `-p` | Video description (required) | - |\n| `--filename`, `-f` | Output file path (required) | - |\n| `--input-image`, `-i` | Reference image path | None |\n| `--seconds`, `-s` | Duration: 4, 8, or 12 | 8 |\n| `--size`, `-sz` | Resolution | 720x1280 |\n| `--model`, `-m` | sora-2 or sora-2-pro | sora-2 |\n| `--api-key`, `-k` | OpenAI API key | env var |\n| `--poll-interval` | Check status every N seconds | 10 |\n\n## API Key\n\nSet `OPENAI_API_KEY` environment variable or pass `--api-key`.\n\n## Prompt Engineering for Video\n\n### Good prompts include:\n\n1. **Camera movement**: dolly, pan, zoom, tracking shot\n2. **Motion description**: swirling, rising, falling, shifting\n3. **Lighting**: golden hour, candlelight, dramatic rim lighting\n4. **Atmosphere**: steam, particles, bokeh, haze\n5. **Mood/style**: cinematic, commercial, lifestyle, editorial\n\n### Example prompts:\n\n**Food commercial:**\n```\nSlow dolly shot of gourmet dish, soft morning sunlight streaming through window, \nsubtle steam rising, warm cozy atmosphere, premium food commercial aesthetic\n```\n\n**Lifestyle:**\n```\nGolden hour light slowly shifting across mountains, gentle breeze rustling leaves, \nserene morning atmosphere, premium lifestyle commercial\n```\n\n**Product shot:**\n```\nCinematic close-up, dramatic lighting with warm highlights, \nslow reveal, luxury commercial style\n```\n\n## Workflow: Image → Video\n\n1. Generate image with Nano Banana Pro (or use existing)\n2. Pass image as `--input-image` to Sora\n3. Write prompt describing desired motion/atmosphere\n4. Script auto-resizes image to match video dimensions\n\n## Output\n\n- Videos saved as MP4\n- Typical file size: 1.5-3MB for 8 seconds\n- Resolution matches `--size` parameter\n","topics":["Video Generation","Animation","Image Generation","Prompt"],"tags":{"latest":"1.0.1"},"stats":{"comments":0,"downloads":2066,"installsAllTime":78,"installsCurrent":13,"stars":2,"versions":1},"createdAt":1770859170960,"updatedAt":1778989968121},"latestVersion":{"version":"1.0.1","createdAt":1770859170960,"changelog":"Improved routing: vs lip-sync tools clarification","license":null},"metadata":null,"owner":{"handle":"pauldelavallaz","userId":"s17es8yqc61443cxz7kbvr73rs884ggf","displayName":"Paul de Lavallaz","image":"https://avatars.githubusercontent.com/u/51497690?v=4"},"moderation":null}