nebius-world-factory · git:20261106.20ba2be · 2026-11-06 · sha256 288f85b0969d0e6d
nebius-world-factory git:20261106.20ba2beA
Immutable. This exact content never changes and is served at /api/v1/blob/288f85b0969d0e6d.
--- name: nebius-world-factory description: Use Nebius World Factory through a supplied Cosmos3 HTTPS API independently to register customer S3 storage, discover Nano or Super capabilities, transfer full-length videos with custom or multiple controls, individual weights and negative prompts, run paired iterations, manage source inventories and batches, recover verified artifacts, and export owner-scoped usage. Explain native LeRobot import limits without requiring a private SDK, repository, Nebius CLI or SSH. --- # Nebius World Factory Use this portable customer client with an operator-supplied HTTPS API origin. Get the endpoint and a customer-scoped inference key from the beta operator through their approved private channel; this public skill does not grant access. The current API exposes asynchronous generation and batch jobs. Use an inference API key; do not claim real-time or streaming inference without an exposed, qualified runtime contract. The package contains no service locator and requires no private repository, Nebius CLI, SSH, GPU access or model download. Python 3.10+ on macOS/Linux is enough once the supplied API is independently reachable and source media is staged. Do not claim public readiness from package presence or internal validation when external ingress has not been verified. Use the bundled [client](scripts/cosmos_client.py). It verifies TLS, refuses credential-bearing redirects, reads private files, retains submission identity, and checks downloaded artifacts. Do not replace these safeguards with curl commands containing keys, disabled TLS verification, browser localStorage, chat-pasted credentials, or request-body logging. ## Private setup The customer supplies `WMH_BASE_URL` (one actual HTTPS origin), `WMH_API_KEY_FILE` (a private text file with the inference key), and `WMH_S3_CREDENTIAL_FILE` (a private JSON file containing only `aws_access_key_id`, `aws_secret_access_key`, and optional `aws_session_token`). Supply the endpoint and file paths through the environment; never put the keys in environment variables or command arguments. Files must be owned by the current user with mode 0600, in a mode 0700 working directory outside Git. The API key needs `models:read`, `storage:manage`, `jobs:read`, `artifacts:read`, and the selected generation route's scope (`videos:write`, `images:write`, or `augmentations:write`) with its explicit model grant. If the customer has not made credential files, set the two destination file paths and run `python3 scripts/cosmos_client.py init-secrets` in their terminal; it asks for hidden input and writes private files. Use `init-storage-secret` with an unused S3 file path for another provider or an existing API key file. An agent must not collect these secrets through chat. For an operator-provided private CA only, set `WMH_CA_BUNDLE` to that trusted CA file; hostname verification remains enabled. For ordinary customer access, use the supplied publicly trusted HTTPS origin. Run from this skill's directory. Follow the private setup in the [iteration guide](references/iteration.md) to set `WMH_WORK_DIR`, register input storage, and create a full-source augmentation request. Then run: ```bash python3 scripts/cosmos_client.py discover --output "$WMH_WORK_DIR/contract.json" python3 scripts/cosmos_client.py register --config "$WMH_WORK_DIR/output-storage.json" python3 scripts/cosmos_client.py submit --route /v1/augmentations --request "$WMH_WORK_DIR/request.json" --state "$WMH_WORK_DIR/run.json" python3 scripts/cosmos_client.py resume --state "$WMH_WORK_DIR/run.json" --output-dir "$WMH_WORK_DIR/results" ``` Read [the request guide](references/requests.md) for storage registration and credential injection. Its [full-source video-to-video example](references/requests.md#full-source-video-to-video) contains the complete Super request JSON, Nano model selection and input requirements, HTTP headers, and explanations of all five sampling settings. Keep full-source augmentation separate from the fixed video profiles in that guide. Read [the independent iteration guide](references/iteration.md) for complete customer setup, staged MP4 and LeRobot-derivative boundaries, baseline/tuned requests, source inventories, batch recovery and private usage exports. Replace placeholders locally and make configuration/request files mode 0600. Register input storage separately when it uses another connection or credential. The helper reads the current S3 credential file for each registration. Media must already exist in the registered input bucket; the helper does not upload local media. ## Full-length custom controls Use `POST /v1/transfers` for uploaded edge/depth/segmentation/blur controls, multiple controls, individual relative weights and a top-level negative prompt on either explicitly selected model. Discover the `structural_transfer` task and require its profile, selected controls, exact combination and supported weight/negative-prompt flags. Keep it separate from the legacy edge `/v1/augmentations` request shape. The full-source transfer contract accepts complete videos, including 227 and 302 frames, without an application frame cap. In `structural-transfer-832x480-121-v1`, 121 names the internal generation window, not the input length. Native chunking retains the complete source frame count; do not trim, split or reject an input just because its count is not 121 or `4n+1`. Check the running constraints: an endpoint still advertising an exact 121-frame source requirement has an older contract, not permission to crop. The current profile requires fully decodable 832x480, 24-FPS source/control videos with identical frame counts. Read the [transfer request and remaining limits](references/requests.md#full-length-structural-transfers) and copy the [complete request example](examples/structural-transfer.json) into the private working directory before replacing its placeholders. Then use `submit --route /v1/transfers` and the same durable `resume` workflow. The portable client, verified TLS, storage checks and recovery need no private SDK. ## Submission, polling and waiting Generation is asynchronous. HTTP 202 acknowledges admission and returns a durable `job_id` plus `status_url`; it does not mean the output is ready. `submit` retains that identity and exits. Use `status` for one status read or `resume` to wait through repeated status GETs and retrieve verified artifacts. `resume` polls every three seconds between active-state reads, has no overall waiting deadline, and exits unsuccessfully if a job fails, is cancelled or requires recovery. Each HTTPS request has a separate 60-second timeout. Stopping local waiting does not cancel the remote job. Keep the same state and rerun `resume` after an interruption or download error; reconcile an ambiguous submission with the same request/state first. Read the [job lifecycle guide](references/requests.md#submission-polling-and-completion) for acknowledgement examples, status/artifact routes, batch polling and the optional separately supplied SDK's wait methods. The current HTTP contract has no server-side `wait=true` mode; do not invent a wait field or require the private SDK to use the portable client. ## Discover before generating Inspect the saved authenticated `/v1/models` and `/v1/openapi.json` contract. Choose Super or Nano explicitly; use a profile only when its running capability is exposed, implemented and qualified. The helper refuses unsupported profiles. Do not infer speech-to-text, text-to-speech, arbitrary reference audio, arbitrary shapes, full-source preservation, or action fidelity from a model name. An example is a schema illustration, not proof that a deployment serves it. For multiple camera angles, read [camera-view support and spatial evidence](references/camera-views.md). Eleven structural-control combinations are not eleven cameras. NVIDIA's separate Transfer-Auto checkpoint documents eleven physical camera identities; use it through this API only if authenticated discovery exposes a qualified multiview contract. A spatial-accuracy demo needs matched camera inputs and real outputs, calibration and measured geometry checks, in addition to playable video. Generated output requires a server-verified Nebius connection. A customer provider label or S3-compatible input does not establish output eligibility. The server verifies canonical endpoint identity and actual bucket region with the supplied credentials, then encrypts credentials under its operator key. It never returns raw credentials. Source inputs may use other approved public S3-compatible services. Private-network S3 endpoints are unsupported by this self-service path. Customer files and generated artifacts stay private. ## Source selection, iteration and usage For source inventories, use `submit --route /v1/source-inventories`, `inventory-resume` and `inventory-objects`. Inventory discovery is durable and paginated; inspect rejected and failed objects before admission. For a Super full-source inventory batch, run `batch-preflight`, then `submit --route /v1/augmentation-batches` and `resume`. Batch operations also need `batches:write`. The distinct `/v1/batches` schema supports explicit Nano T2V items. Native model batching is not implied by either API batch form. For a controlled baseline/tuned comparison, retain source identity, seed, prompt, model and control; change one supported generation setting and use a new request/state/output prefix. Inspect the actual technical report and artifacts before deciding which result to use. The only exposed evaluation mode is report-only `technical_report` with `complete_decode` and `timeline_coverage`; it does not score semantics or optimize parameters. Native LeRobot import/export is unavailable. Dataset-derived camera video is not equivalent to a dataset with action/state/timestamp alignment; preparation and staging occur before inference API use. Never silently substitute extracts when native dataset semantics are required. Use `usage-summary` or crash-resumable `usage-export` for owner-scoped evidence. Add `--include-synthetic` for demo/benchmark/internal-test campaigns; the default includes only attributed production traffic. Preserve event identities, the fixed watermark and distinct request/admission/delivery/poll/artifact counts. A synthetic customer type is not proof of real company adoption. Read the iteration guide for UTC filtering, pagination and incremental export. ## Recovery and credential lifecycle Keep the exact request and run state. After an ambiguous submit, run `submit` again with that same request and state; it reuses the stored idempotency key. Once a job ID is retained, use `resume`. Interrupting local polling does not cancel server work. An HTTP error never authorizes a new identity or another model. Failed/publication-failed/reconciliation states need inspection through the supplied API contract; publication-only retry must not rerun generation. Read-only GETs receiving HTTP 429 retry after `Retry-After` plus small jitter; generation POSTs are never automatically retried. A download error can be recovered by rerunning `resume`; reject hash mismatches. Registration returns 409 if the connection already exists (including after a lost successful response). Inspect it using `connection --id CONNECTION_ID --output PRIVATE_FILE` before changing it. Rotate only with the customer's explicit intent: `python3 scripts/cosmos_client.py rotate --connection CONNECTION_ID` reads the replacement S3 file. Revoke with `revoke --connection CONNECTION_ID`. Rotation changes the immutable connection identity and invalidates previously admitted jobs using it; let active jobs finish first when continuity is required. Revocation affects subsequent storage operations; it cannot recall bytes or interrupt an already-open transfer. It does not revoke the underlying key at Nebius; do that separately when the customer intends to disable it everywhere. Report source validation, live API validation, technical media integrity and semantic quality separately. This package is prepared for distribution; its presence does not establish that any particular endpoint is externally reachable, or authorize publishing a private repository, endpoint or evidence.