HappyHorse 视频编辑
Restyle or redo an existing clip, not generate one
- reference_images
- video
- video_url
- video_path
Most video nodes generate from scratch. This one edits what you already have. HappyHorse VideoEdit ("HappyHorse 视频编辑") takes an existing video plus a text instruction and returns a new version - restyle an animation, swap an object, change the mood of footage without reshooting. It's the last of the four API nodes in this pack, and its OSS rules are the most surprising.
How it works
The source video arrives as a plain string - a public URL or a local file path. The node builds a media payload with that video, optionally adds up to 5 reference images (as an IMAGE batch) to steer identity or style, and sends everything to the happyhorse-1.0-video-edit model. Then the same async flow as the rest of the pack: task ID, poll, download to output/happyhorse/.
The OSS asymmetry - read this first
Whether you need OSS depends entirely on what you feed it:
- Video is a URL → works with no OSS at all. The optional reference images get skipped (with a console warning), but the edit itself runs.
- Video is a local path → requires OSS to upload the file. Missing OSS raises a hard
ValueError, not the graceful T2V fallback the image nodes use. You can't paste a path and hope.
So the trick to avoiding setup is to give it a URL. The example workflow test_video_edit.json ships with a placeholder URL you must replace - it will not run as-is, which trips people immediately.
The inputs that matter
- api_key - the shared DashScope key.
- video - public URL or local file path. The tooltip is explicit: local paths need complete OSS config to auto-upload.
- prompt - the edit instruction, multiline.
- resolution - 720P / 1080P. ratio - 16:9, 9:16, 1:1, 4:3, 3:4.
- seed, watermark - standard. Note there's no duration field; the model works from the source clip's length.
- reference_images - optional, 0 to 5, accepts a batch.
- OSS_ACCESS_KEY / OSS_SECRET_KEY / bucket / endpoint - needed for local files and reference images.
Outputs
Same three as every node in the pack: video (native ComfyUI VIDEO, previews inline), video_url (public CDN link, ~24-hour lifetime), video_path (local mp4). All nodes are output nodes, so nothing downstream is required to run.
Install
Pack-standard: ComfyUI Manager, search "Comfyui-Wenyi-demo1", or clone https://github.com/WY-S/Comfyui-Wenyi-demo1 into custom_nodes and pip install -r requirements.txt, then restart.
Where people actually get burned: forgetting to swap the placeholder URL in the example workflow, feeding a local path with no OSS and getting the "视频为本地文件但 OSS 配置不完整" error, and the general frontend-cache issue where node outputs look wrong after an update (hard-refresh with Ctrl+Shift+R or clear the site's local storage).
Inputs (13)
| Name | Type | Default | Description |
|---|---|---|---|
| api_key | STRING | 阿里百炼 API Key(填写后自动保存到 config.json) | |
| video | STRING | 待编辑视频:公网 URL 或本地文件路径(本地路径需 OSS 配置齐全才能自动上传) | |
| prompt | STRING | — | |
| resolution | COMBO | 1080P | 2 options: 720P, 1080P |
| ratio | COMBO | 16:9 | 5 options: 16:9, 9:16, 1:1, 4:3, 3:4 |
| seed | INT | 00–2147483647 | — |
| watermark | BOOLEAN | true | — |
| reference_imagesopt | IMAGE | 参考图(可选,0~5 张,支持 batch) | |
| OSS_ACCESS_KEYopt | STRING | 阿里云 OSS AccessKey ID(留空使用 config.json 默认值) | |
| OSS_SECRET_KEYopt | STRING | 阿里云 OSS AccessKey Secret(留空使用 config.json 默认值) | |
| bucketopt | STRING | OSS Bucket 名称(留空使用 config.json 默认值) | |
| endpointopt | STRING | oss-cn-beijing.aliyuncs.com | OSS Endpoint,如 oss-cn-beijing.aliyuncs.com(留空使用 config.json 默认值) |
| modelopt | COMBO | happyhorse-1.0-video-edit | 模型名称(固定值,不可修改) |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| video | VIDEO | — |
| video_url | STRING | — |
| video_path | STRING | — |