Sora 图生视频
Sora Image2Video, the pack's img2video workhorse
- image
- video
- Filenames
- video_url
- response_info
- prompt_used
SoraImage2Video is the sibling of the pack's text-to-video node, and for most real workflows it's the one you'll actually use. Static images are everywhere - a character render, a product shot, a frame you like from a video - and this node makes them move without re-rolling the whole clip from scratch. It shares the same plumbing as SoraText2Video: your image and prompt go to a reseller API (T8, Comfly, or Aabao) that proxies OpenAI's Sora, it polls until the clip is done, and drops the mp4 back into the graph. No local model, no GPU work, per-clip cost.
How it works
The node encodes your IMAGE to base64 and sends it as a multimodal message to the provider's video endpoint, alongside your prompt and the control parameters. Before sending, it resizes your image to match the target aspect ratio - that's what the resize_mode input controls: cover (crop to fill), contain (letterbox), or stretch (distort to fit). cover is the default and usually what you want; contain adds bars, stretch keeps every pixel at the cost of geometry.
The inputs that matter
- image - required. Comes straight off a
Load Imageor any node that outputs IMAGE. - prompt - describe the motion you want ("镜头缓慢向前推进", i.e. slow push-in). The default is a gentle "让图像动起来" (make the image move).
- motion_direction - the standout control:
auto,forward,backward,left,right,up,down,zoom_in,zoom_out,rotate_cw,rotate_ccw. This gets folded into the request, so you can steer the camera without fighting the prompt. - motion_intensity - 0.0–1.0, default 0.5. Low for subtle parallax, high for dramatic moves. For portraits keep it around 0.3 or faces start morphing.
- style -
keep_original(default, best for character/consistency work), plus cinematic, realistic, anime, 3d, oil_painting, watercolor. - aspect_ratio / quality / duration / hd - same rules as the text node: 1080p and HD need
sora-2-pro, HD and 25s don't mix.
Outputs are the pack's standard five: video, Filenames, video_url, response_info, prompt_used. Chain video into the pack's FrameBlender or Topaz node, or a VHS preview.
Install
Same as the rest of the pack - ComfyUI Manager, search "ComfyUI_Sora", or:
cd ComfyUI/custom_nodes
git clone https://github.com/xuchenxu168/ComfyUI_Sora
cd ComfyUI_Sora && pip install -r requirements.txt
Restart, set an API key in the node or in config.json, done. Nothing to download; the only real dependency is an account with one of the three resellers.
Common issues
- Video ignores the image - usually an aspect mismatch: the API resized/cropped your image to the target ratio and the important part got cropped. Switch
resize_modetocontain, or pre-crop the source yourself. - 1080p erroring out - 1080p only supports
sora-2-pro; every other model caps at 720p. This is validated, so check the console. - Motion too strong / artifacts - dial
motion_intensitydown and keep the duration short for a first pass. Like every image-to-video model, the input's first frame is what the rest of the clip is judged against - feed it a clean, sharp still. - Provider limits - some controls (like HD on older models) are provider-dependent. The Aabao models generally accept the widest set.
Reach for this node when you have a still you like and want the "what if it moved?" answer fast. It's the pack's best bang-per-prompt.
Inputs (15)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — | |
| prompt | STRING | 让图像动起来 | — |
| aspect_ratio | COMBO | 16:9 | 横屏(16:9)适合YouTube/B站,竖屏(9:16)适合抖音/快手 |
| quality | COMBO | 1080p | ⚠️ 1080p 仅支持 sora-2-pro 模型,其他模型仅支持 720p |
| duration | COMBO | 5s | 视频时长,15s需要使用15s模型,25s仅支持sora-2-pro模型 |
| hd | BOOLEAN | false | ⚠️ HD高清模式仅 sora-2-pro 模型支持,不能与25s同时使用 |
| api_provideropt | COMBO | t8 | 选择API提供商:T8、T8-US、T8-HK、Comfly、Comfly-US、Comfly-HK 或 Aabao (newapi.ai) |
| api_keyopt | STRING | — | |
| modelopt | COMBO | sora_video2 | 8 options: sora_video2, sora-2-pro, sora-2, [Aabao] sora-2-landscape, [Aabao] sora-2-landscape-15s, [Aabao] sora-2-portrait, +2 |
| motion_directionopt | COMBO | auto | 11 options: auto, forward, backward, left, right, up, +5 |
| motion_intensityopt | FLOAT | 0.50–1 | — |
| styleopt | COMBO | keep_original | 7 options: keep_original, cinematic, realistic, anime, 3d, oil_painting, +1 |
| resize_modeopt | COMBO | cover | 3 options: cover, contain, stretch |
| seedopt | INT | -1-1–2147483647 | — |
| output_diropt | STRING | sora_videos | — |
Outputs (5)
| Name | Type | Description |
|---|---|---|
| video | VIDEO | — |
| Filenames | VHS_FILENAMES | — |
| video_url | STRING | — |
| response_info | STRING | — |
| prompt_used | STRING | — |