Skywork AI Skyreels V4 Reference To Video (Official Edition)
Character consistency, now with @image1 tags and audio
- ref_images
- ref_videos
- api_config
- video
- request_id
- urls
Skyreels V3 proved the reference-to-video trick; V4 turns it into something you can actually build scenes with - longer clips, video references as well as images, and synchronized audio on by default. If you want a character who stays the same person across a shot, this is the node.
What this node does
BizyTRD_Skyreels_V4_Official_R2V_API generates video conditioned on reference images (ref_images) and even reference videos (ref_videos) - feed it a clip of your subject and it keeps the look and motion vocabulary going. V4 stretches the duration envelope way past V3's 5-second cap, to 3–15 seconds, and adds sound generation that's on by default.
Cloud execution, as always: flip BizyAirPlus ON, and the heavy lifting happens on BizyAir's servers while your GPU watches. No local model, no VRAM bill.
The input that trips everyone up
The prompt field has a specific syntax and it's easy to miss: the tooltip says that if you've attached images or videos, you reference them inline in the prompt with @image1 / @video1 tags. So the flow is: drop a face into ref_images, then write something like "@image1 turns and walks toward the camera." The node needs the tag to know which reference drives which part of the action. This is the Skyreels quirk - most other video APIs just auto-apply their reference images, and if you assume that here, your prompt does nothing.
The rest of the inputs are familiar: resolution (1080p default), duration (3–15s), mode (std vs fast - fast is quicker but currently forces sound off), aspect_ratio (16:9 default), and sound (on by default; V4 generates dialogue and SFX, not silent footage).
Shared BizyAir options: api_config overrides the endpoint/key for one request, skip_error degrades a failed cloud call to an error placeholder instead of aborting the workflow.
Outputs
video- the finished clip, ready for preview or save.request_id- the cloud task ID.urls- hosted URLs for the result.
How to install
cd /path/to/ComfyUI/custom_nodes
git clone https://github.com/siliconflow/BizyAirPlus.git
cd BizyAirPlus
python -m pip install -r requirements.txt
Restart ComfyUI (or install "BizyAirPlus" through ComfyUI Manager). Dependencies: bizyair-cloudberry and bizytrd, no model downloads. First run: account at bizyair.ai → API key → enter it when the ON button prompts (or Settings > BizyAirPlus; the key is saved to ~/.BizyAirPlus/apikey.ini).
Where people get burned
The @image1 tag syntax is the #1 failure, and it produces the most confusing symptom: the node works fine, the video just ignores your reference entirely. If your refs seem to be doing nothing, check the prompt tags before you blame the model.
Also remember fast mode and sound = true don't mix on this one yet. And the standing pack gotcha: BizyAir picked up malware rumors from a 2025 ComfyUI Manager auto-install bug, but it's a legitimate SiliconFlow pack - uninstall it properly with pip if you ever need to, don't just nuke the folder.
Inputs (10)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | The video generation prompt supports referencing uploaded images and videos. If there are images and videos, use the@image1/@video1 tag in the prompt parameter | |
| resolution | COMBO | 1080p | Resolution |
| duration | INT | 103–15 | Video length in seconds |
| mode | COMBO | std | The“Fast” mode provides faster generation, while the“Standard” mode strikes a balance between speed and quality. Currently, the“Fast” mode only supports sound = false (audio disabled) ; this mode does not support audio and video output yet, but will be available in a future update. |
| ref_imagesopt | COMFY_AUTOGROW_V3 | — | |
| ref_videosopt | VIDEO | Video | |
| aspect_ratioopt | COMBO | 16:9 | Aspect ratio of video |
| soundopt | BOOLEAN | true | Whether to generate video and audio |
| api_configopt | BIZYAIR_OPENAPI_CONFIG | 单次请求覆盖base_url和api_key | |
| skip_erroropt | BOOLEAN | false | 开启后遇到错误不中断工作流,输出对应类型的错误占位符 |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| video | VIDEO | — |
| request_id | STRING | — |
| urls | STRING | — |