> ## Documentation Index
> Fetch the complete documentation index at: https://tryunsora.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Movie materials

> Generate pre-production images for a film: character faces, bodies and sheets, locations, first frames, style collages and storyboards.

Makes one reference image for a script, in one of 8 modes:

| `mode` | Makes |
| - | - |
| `face` | Close-up portrait of a character |
| `wide-body` | Full-body shot of a character |
| `sheet` | Character turnaround sheet |
| `location` | Set or location reference |
| `first-frame` | The opening frame of a shot |
| `style-collage` | Look-and-feel collage |
| `multishot-2x4` | 8-panel storyboard |
| `multishot-1x4` | 4-panel storyboard |

Costs 3 credits at `1k`, 4 at `2k` (default) and 6 at `4k`. Add up to 14 `referenceImageUrls`. `params` takes optional per-mode settings: `cinematography` for every mode (`cinematic`, `anime`, `realistic`, `cartoon`, `fantasy`, …); `age` and `gender` for `face`; `camera-angle` for `first-frame`; `color-palette`, `lighting-mood` and `era-vibe` for `style-collage`. Poll [Poll image status](https://tryunsora.com/docs/api-reference/image/poll-status.md) with `generation.id`.

```bash theme={null}
curl -X POST "https://mvp.tryunsora.com/api/v1/movie-materials/create" \
  -H "Authorization: Bearer uns_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "mode": "face",
    "prompt": "A weary lighthouse keeper in her sixties, wind-burned skin, grey braid",
    "params": { "age": "elderly", "gender": "female", "cinematography": "realistic" },
    "ratio": "3:4"
  }'
```


## OpenAPI

````yaml POST /movie-materials/create
openapi: 3.1.0
info:
  title: Unsora API
  version: 1.4.0
  description: >-
    Public API for Unsora integrations. Authenticate with an Unsora API key
    (`uns_…`, created under Developers → API keys in the app) as a Bearer token
    in the Authorization header. Limit: 60 requests per minute per key; over it,
    429 with code RATE_LIMIT_EXCEEDED.
servers:
  - url: https://mvp.tryunsora.com/api/v1
    description: Production
  - url: /api/v1
    description: This server
security: []
tags:
  - name: User
  - name: Models
    description: >-
      Every video, image and motion-control model, with each model's inputs
      taken from the provider's own request schema and prices quoted live. One
      generate endpoint covers all of them.
  - name: Video
  - name: Image
  - name: Influencer
  - name: Thumbnail
  - name: Clipping
  - name: Music
  - name: Voiceover
  - name: Upscaler
  - name: Subtitle removal
  - name: Motion control
  - name: Avatar
  - name: Movie materials
  - name: Voice clones
  - name: Voice changer
  - name: Uploads
  - name: Scheduler
paths:
  /movie-materials/create:
    post:
      tags:
        - Movie materials
      summary: Make a pre-production image for a film
      description: >-
        Generates one reference image for a script: a character's face, full
        body or turnaround sheet, a location, a first frame, a style collage, or
        a storyboard. Costs 3 credits at 1k, 4 at 2k, 6 at 4k. Poll GET
        /image/status/{id} with `generation.id`.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                prompt:
                  type: string
                  description: Description of the character, place or scene.
                mode:
                  type: string
                  enum:
                    - face
                    - wide-body
                    - sheet
                    - location
                    - first-frame
                    - style-collage
                    - multishot-2x4
                    - multishot-1x4
                  description: >-
                    `face` close-up portrait; `wide-body` full body; `sheet`
                    character turnaround; `location` set reference;
                    `first-frame` opening shot; `style-collage` look and feel;
                    `multishot-2x4` and `multishot-1x4` storyboard grids.
                params:
                  type: object
                  additionalProperties:
                    type: string
                  description: >-
                    Optional per-mode settings: `cinematography` (every mode,
                    default `cinematic`); `age` (default `adult`) and `gender`
                    (default `female`) for `face`; `camera-angle` (default
                    `eye-level`) for `first-frame`; `color-palette` (default
                    `warm`), `lighting-mood` (default `natural`) and `era-vibe`
                    (default `modern`) for `style-collage`.
                ratio:
                  type: string
                  enum:
                    - auto
                    - '1:1'
                    - '9:16'
                    - '16:9'
                    - '4:3'
                    - '3:4'
                  default: '16:9'
                resolution:
                  type: string
                  enum:
                    - 1k
                    - 2k
                    - 4k
                  default: 2k
                referenceImageUrls:
                  type: array
                  maxItems: 14
                  items:
                    type: string
                    format: uri
                  description: Up to 14 reference images, e.g. of the actor or the set.
              required:
                - prompt
                - mode
      responses:
        '200':
          description: Job queued
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenerationCreateResponse'
        '400':
          description: >-
            Missing prompt, or an invalid mode, ratio or resolution, or more
            than 14 reference images
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '402':
          description: Insufficient credits
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: User not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      security:
        - bearerAuth: []
components:
  schemas:
    GenerationCreateResponse:
      type: object
      properties:
        success:
          type: boolean
        generation:
          type: object
          properties:
            id:
              type: string
            status:
              type: string
              example: QUEUED
          required:
            - id
            - status
        creditsDeducted:
          type: integer
        creditsRemaining:
          type: integer
      required:
        - success
        - generation
    ErrorResponse:
      type: object
      properties:
        success:
          type: boolean
        error:
          type: string
        code:
          type: string
        message:
          type: string
      required:
        - error
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: An Unsora API key (`uns_…`). A Clerk session token also works.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.