Instructions to use sensenova/SenseNova-6.8-Code2Video with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use sensenova/SenseNova-6.8-Code2Video with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("image-text-to-text", model="sensenova/SenseNova-6.8-Code2Video") messages = [ { "role": "user", "content": [ {"type": "image", "url": "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/p-blog/candy.JPG"}, {"type": "text", "text": "What animal is on the candy?"} ] }, ] pipe(text=messages)# pip install -U transformers accelerate # Load model directly from transformers import AutoProcessor, AutoModelForMultimodalLM processor = AutoProcessor.from_pretrained("sensenova/SenseNova-6.8-Code2Video") model = AutoModelForMultimodalLM.from_pretrained("sensenova/SenseNova-6.8-Code2Video", device_map="auto") messages = [ { "role": "user", "content": [ {"type": "image", "url": "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/p-blog/candy.JPG"}, {"type": "text", "text": "What animal is on the candy?"} ] }, ] inputs = processor.apply_chat_template( messages, add_generation_prompt=True, tokenize=True, return_dict=True, return_tensors="pt", ).to(model.device) outputs = model.generate(**inputs, max_new_tokens=256) print(processor.decode(outputs[0][inputs["input_ids"].shape[-1]:])) - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use sensenova/SenseNova-6.8-Code2Video with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "sensenova/SenseNova-6.8-Code2Video" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "sensenova/SenseNova-6.8-Code2Video", "messages": [ { "role": "user", "content": [ { "type": "text", "text": "Describe this image in one sentence." }, { "type": "image_url", "image_url": { "url": "https://cdn.britannica.com/61/93061-050-99147DCE/Statue-of-Liberty-Island-New-York-Bay.jpg" } } ] } ] }'Use Docker
docker model run hf.co/sensenova/SenseNova-6.8-Code2Video
- SGLang
How to use sensenova/SenseNova-6.8-Code2Video with SGLang:
Install from pip and serve model
# Install SGLang from pip: pip install sglang # Start the SGLang server: python3 -m sglang.launch_server \ --model-path "sensenova/SenseNova-6.8-Code2Video" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "sensenova/SenseNova-6.8-Code2Video", "messages": [ { "role": "user", "content": [ { "type": "text", "text": "Describe this image in one sentence." }, { "type": "image_url", "image_url": { "url": "https://cdn.britannica.com/61/93061-050-99147DCE/Statue-of-Liberty-Island-New-York-Bay.jpg" } } ] } ] }'Use Docker images
docker run --gpus all \ --shm-size 32g \ -p 30000:30000 \ -v ~/.cache/huggingface:/root/.cache/huggingface \ --env "HF_TOKEN=<secret>" \ --ipc=host \ lmsysorg/sglang:latest \ python3 -m sglang.launch_server \ --model-path "sensenova/SenseNova-6.8-Code2Video" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "sensenova/SenseNova-6.8-Code2Video", "messages": [ { "role": "user", "content": [ { "type": "text", "text": "Describe this image in one sentence." }, { "type": "image_url", "image_url": { "url": "https://cdn.britannica.com/61/93061-050-99147DCE/Statue-of-Liberty-Island-New-York-Bay.jpg" } } ] } ] }' - Docker Model Runner
How to use sensenova/SenseNova-6.8-Code2Video with Docker Model Runner:
docker model run hf.co/sensenova/SenseNova-6.8-Code2Video
SenseNova 6.8 Code2Video
A code-driven video creation model, fine-tuned from Qwen3.8-27B
Launch film (90 s, with sound), made by SenseNova 6.8 Code2Video
We present SenseNova 6.8 Code2Video, a lightweight open model for code-driven video creation. The model builds and renders videos by generating executable code, and currently focuses on short videos implemented entirely in code. Preliminary results show good visual composition and motion choreography in motion design, suggesting the potential of lightweight models for programmatic video creation.
We chose code as the entry point to video creation partly for its ability to connect different models and creative tools. Beyond building and rendering visual content directly, code can call image generation, video generation, 3D modelling and video editing models and tools, chaining generation, editing and compositing into a complete creative workflow.
We believe code can become a common language between ideas and finished work. Our long-term goal is a model that coordinates different generative models and creative tools through code to create digital content across media. SenseNova 6.8 Code2Video is a first step in this direction. Next, we will scale the model further and extend these abilities to editing, compositing, animation and 3D content creation.
Released Resources
| Resource | Location | Description |
|---|---|---|
| Model weights | This repository | Weights, config and tokenizer |
| Example trajectories | trajectories/ |
Message and tool logs with figures |
| Production skill | GitHub | Workflow, craft guides, rendering tools |
Deployment
LightLLM
docker run --rm --gpus all --ipc=host -p 8000:8000 \
-v /path/to/SenseNova-6.8-Code2Video:/model \
ghcr.io/modeltc/lightllm:main \
python -m lightllm.server.api_server \
--model_dir /model \
--tp 4 \
--max_req_total_len 524288 \
--host 0.0.0.0 --port 8000
vLLM
docker run --rm --gpus all --ipc=host -p 8000:8000 \
-e VLLM_ALLOW_LONG_MAX_MODEL_LEN=1 \
-v /path/to/SenseNova-6.8-Code2Video:/model \
vllm/vllm-openai:latest \
--model /model \
--tensor-parallel-size 4 \
--max-model-len 524288 \
--reasoning-parser qwen3 \
--enable-auto-tool-choice \
--tool-call-parser qwen3_coder \
--host 0.0.0.0 --port 8000
SGLang
docker run --rm --gpus all --ipc=host -p 8000:8000 \
-e SGLANG_ALLOW_OVERWRITE_LONGER_CONTEXT_LEN=1 \
-v /path/to/SenseNova-6.8-Code2Video:/model \
lmsysorg/sglang:latest \
python -m sglang.launch_server \
--model-path /model \
--tp-size 4 \
--context-length 524288 \
--reasoning-parser qwen3 \
--tool-call-parser qwen3_coder \
--host 0.0.0.0 --port 8000
Recommended harness: Claude Code
A complete film is a long-horizon task: the model writes and renders code, reviews the frames and revises, turn after turn. SenseNova 6.8 Code2Video sustains runs of more than 10 hours and more than 2,000 turns. Configure Claude Code for runs of that length:
| Setting | Value | Configuration |
|---|---|---|
| Context window | 512K | CLAUDE_CODE_MAX_CONTEXT_TOKENS=524288 |
| Auto-compaction | 0.8 | CLAUDE_AUTOCOMPACT_PCT_OVERRIDE=80 |
| Max output | 64K | CLAUDE_CODE_MAX_OUTPUT_TOKENS=64000 |
| Turns per run | 2,000+ | --max-turns 2000 or more |
| Time per run | 10 h+ | timeout 10h or more |
Set the context window explicitly, since Claude Code otherwise treats an unknown model as a 200K model. With compaction at 0.8 and 64K of output, every request stays within the 512K server limit.
Put the endpoint and these variables in a private settings file, and supply the credential through ANTHROPIC_AUTH_TOKEN or ANTHROPIC_API_KEY:
{
"env": {
"ANTHROPIC_BASE_URL": "https://your-endpoint.example.com",
"ANTHROPIC_MODEL": "your-deployed-model-name",
"CLAUDE_CODE_MAX_CONTEXT_TOKENS": "524288",
"CLAUDE_AUTOCOMPACT_PCT_OVERRIDE": "80",
"CLAUDE_CODE_MAX_OUTPUT_TOKENS": "64000"
},
"model": "your-deployed-model-name"
}
Avoid slow shell initialization: every Bash call starts a new shell.
Usage
Producing a film has three stages:
| Stage | Performed by | Output |
|---|---|---|
| 1. Prompt enhancement | A strong general model (we use Claude Opus 5.5) with the Enhance prompt template | dense_prompt.md |
| 2. Production | SenseNova 6.8 Code2Video in Claude Code with the code-video skill |
out/final.mp4, SPEC.md, VERIFY.md |
| 3. Revision (optional) | The creator writes notes; SenseNova 6.8 Code2Video applies them in the same project | A new version of the film |
Stage 2 with the settings above:
cd /path/to/task # contains dense_prompt.md, assets/ and .claude/skills/code-video
claude -p --settings /path/to/private-settings.json --model your-deployed-model-name \
--max-turns 2000 --permission-mode acceptEdits --allowedTools "Bash,Read,Write,Edit,Glob,Grep,Skill" \
'Use the project code-video skill. Read .claude/skills/code-video/SKILL.md and dense_prompt.md, then the relevant craft guides. Produce the complete video and deliver out/final.mp4, SPEC.md and VERIFY.md.'
The run executes shell commands without asking, so start it in an isolated working environment. For a revision, run claude -p --continue in the same folder with the creator's notes as the prompt.
Copy the skill into .claude/skills/code-video unchanged and put task-specific requirements in the prompt. Setup steps and dependencies are in the GitHub repository.
Production trajectories
trajectories/all.openai.jsonl holds one film per line, in OpenAI messages format.
Each line contains messages, tools, images, enable_thinking and metadata. The messages include reasoning, tool calls and results, retries and compaction summaries. Images appear as <image> placeholders; the ordered images array gives their paths relative to trajectories/, and all 357 figures are in trajectories/figures/. Private paths and hosts are anonymized, so recorded commands are not directly replayable.
License
Released under the Apache License 2.0.
Contributors
We thank the following contributors for their work on SenseNova 6.8 Code2Video:
- Downloads last month
- -
