Model reference · open weights
SkyReels-I2V-720P is an open-weight video model from Skywork. AxForge deploys and operates it for you on dedicated EU-owned hardware — with the licence handled where one is required.
Available as managed deployment — configured and operated for you on dedicated EU hardware, quoted per deployment.
What it is
| Maker | Skywork |
|---|---|
| Type | Video models |
| Task | Image→video |
| Parameters (lead) | 16.4B |
| Runs with | diffusers |
| Released | 2025-04-24 |
| Popularity | 855 downloads / month |
| Licence | Commercial licence needed |
About
📑 Technical Report · 👋 Playground · 💬 Discord · 🤗 Hugging Face · 🤖 ModelScope · 🌐 GitHub
Welcome to the SkyReels V2 repository! Here, you'll find the model weights for our infinite-length film generative models. To the best of our knowledge, it represents the first open-source video generative model employing AutoRegressive Diffusion-Forcing architecture that achieves the SOTA performance among publicly available models.
The demos above showcase 30-second videos generated using our SkyReels-V2 Diffusion Forcing model.
# clone the repository.
git clone https://github.com/SkyworkAI/SkyReels-V2
cd SkyReels-V2
# Install dependencies. Test environment uses Python 3.10.12.
pip install -r requirements.txt
You can download our models from Hugging Face:
After downloading, set the model path in your generation commands:
The Diffusion Forcing version model allows us to generate Infinite-Length videos. This model supports both text-to-video (T2V) and image-to-video (I2V) tasks, and it can perform inference in both synchronous and asynchronous modes. Here we demonstrate 2 running scripts as examples for long video generation. If you want to adjust the inference parameters, e.g., the duration of video, inference mode, read the Note below first.
synchronous generation for 10s video
model_id=Skywork/SkyReels-V2-DF-14B-540P
# synchronous inference
python3 generate_video_df.py \
--model_id ${model_id} \
--resolution 540P \
--ar_step 0 \
--base_num_frames 97 \
--num_frames 257 \
--overlap_history 17 \
--prompt "A graceful white swan with a curved neck and delicate feathers swimming in a serene lake at dawn, its reflection perfectly mirrored in the still water as mist rises from the surface, with the swan occasionally dipping its head into the water to feed." \
--addnoise_condition 20 \
--offload \
--teacache \
--use_ret_steps \
--teacache_thresh 0.3
asynchronous generation for 30s video
model_id=Skywork/SkyReels-V2-DF-14B-540P
# asynchronous inference
python3 generate_video_df.py \
--model_id ${model_id} \
--resolution 540P \
--ar_step 5 \
--causal_block_size 5 \
--base_num_frames 97 \
--num_frames 737 \
--overlap_history 17 \
--prompt "A graceful white swan with a curved neck and delicate feathers swimming in a serene lake at dawn, its reflection perfectly mirrored in the still water as mist rises from the surface, with the swan occasionally dipping its head into the water to feed." \
--addnoise_condition 20 \
--offload
Note:
- If you want to run the image-to-video (I2V) task, add
--image ${image_path}to your command and it is also better to use text-to-video (T2V)-like prompt which includes some descriptions of the first-frame image.- For long video generation, you can just switch the
--num_frames, e.g.,--num_frames 257for 10s video,--num_frames 377for 15s video,--num_frames 737for 30s video,--num_frames 1457for 60s video. The number is not strictly aligned with the logical frame number for specified time duration, but it is aligned with some training parameters, which means it may perform better. When you use asynchronous inference with causal_block_size > 1, the--num_framesshould be carefully set.- You can use
--ar_step 5to enable asynchronous inference. When asynchronous inference,--causal_block_size 5is recommended while it is not supposed to be set for synchronous generation. REMEMBER that the frame latent number inputted into the model in every iteration, e.g., base frame latent number (e.g., (97-1)//4+1=25 for base_num_frames=97) and (e.g., (237-97-(97-17)x1+17-1)//4+1=20 for base_num_frames=97, num_frames=237, overlap_history=17) for the last iteration, MUST be divided by causal_block_size. If you find it too hard to calculate and set proper values, just use our recommended setting above :). Asynchronous inference will take more steps to diffuse the whole sequence which means it will be SLOWER than synchronous mode. In our experiments, asynchronous inference may improve the instruction following and visual consistent performance.- To reduce peak VRAM, just lower the
--base_num_frames, e.g., to 77 or 57, while keeping the same generative length--num_framesy
From the published model card. Full card on the HuggingFace links in the sidebar.
Using it via the API
Once AxForge deploys skyreels-i2v-720p for you, it answers on the OpenAI-compatible API — the same base URL and keys as every other model. (skyreels-i2v-720p below is illustrative; you get the exact model name on deployment.)
$ curl -sS https://api.axforge.ai/v1/videos/generations \
-H "Authorization: Bearer $AXFORGE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"skyreels-i2v-720p","prompt":"a drone shot over a forest"}'
Create an account — your API key is available in the console. 5M tokens/month currently included with every new account at launch.