Nodes/ComfyUI-Dashscope/Dashscope Emotion Caller
ComfyUI Node

Dashscope Emotion Caller

Make a portrait photo talk

By neverbiasu·Created 2 years ago·Updated 8 months ago· 6
Dashscope Emotion Caller
  • image
  • audio
  • frames
  • frame_count
  • video_info
  • audio

This is the flashiest node in the ComfyUI-Dashscope pack, and it's the one people usually find first. Give it a portrait photo and an audio clip, and it returns the frames of a video where that person speaks - lips synced to the audio, facial expressions and head motion included. It's a hosted talking-head service, the same lineage as Alibaba's open-source EchoMimic work, wrapped as a ComfyUI node. No local model, no VRAM, no heavy weights: everything runs on Alibaba's side and you get back ready-to-wire video frames.

Reach for it when you need a "photo talks" result without standing up a local talking-head stack. It's genuinely handy for avatar work, character vlogs, or testing a scene idea before you commit to a local pipeline. The flip side is you're renting the render - it costs money per video, takes minutes, and holds the queue while it works.

How it works

Two DashScope services under the hood, in sequence. First emo-detect-v1 analyzes your photo and returns a face bounding box plus a larger body bounding box. Then emo-v1 kicks off async video synthesis: it takes the image, the audio, and those bounding boxes, and submits the job. The node then polls the task status every two seconds until it succeeds, downloads the finished MP4, and converts it to frames with torchvision. A 100MB cap on the video keeps things sane.

Because it's a hosted job with a queue, this node blocks. The whole run - detect, synthesize, poll, download - happens synchronously on the ComfyUI execution thread. A talking-head render can take minutes, and ComfyUI just sits there. Plan around that: run it, then go do something else.

Inputs and output

  • image (IMAGE) - your portrait. The requirements are strict and come from the API itself: a single person, facing the camera, full face visible, resolution roughly 400–7000px, and the person's proportion in frame has to be right. The node even ships a lookup table mapping Alibaba's raw error strings to readable messages and prints the reason to the console, because it knows you'll hit them.
  • audio (AUDIO) - a spoken clip to sync against. ComfyUI's built-in LoadAudio node produces this type, so that's the natural source.

Outputs:

  • frames (IMAGE) - the generated video as an image batch. This is your main result; wire it into a video encoder like VHS_VideoCombine to save an MP4.
  • frame_count (INT) - how many frames you got.
  • video_info (VHS_VIDEOINFO) - metadata for VideoHelperSuite consumers.
  • audio (AUDIO) - the input audio passed straight through, so you can re-pair it with the frames downstream.

Troubleshooting

  • "InvalidFile.NoHuman" / "MultiHuman" - the classic pair. The service wants exactly one person, front-facing, fully visible. A group photo or a turned-away head is a hard no; the node prints the reason to the console.
  • "InvalidFile.Resolution" - keep the long edge under ~7000px and over ~400px. Upscale tiny crops first if you need to.
  • Unknown output type - video_info uses the VHS_VIDEOINFO type, which only exists if VideoHelperSuite is installed. The frames and audio outputs work without it; that port just won't connect until you add VHS.
  • Missing key - yes, this one needs DASHSCOPE_API_KEY too, read from the environment at call time. Set it before launching ComfyUI and restart. And note the account-region caveat that bites every node in this pack: some DashScope services want mainland-China verification, so sign-up can be more fiddly than a Western API.

Install

Part of the ComfyUI-Dashscope pack. In ComfyUI Manager, search ComfyUI-Dashscope, or:

cd ComfyUI/custom_nodes
git clone https://github.com/neverbiasu/ComfyUI-Dashscope
pip install -r requirements.txt

Restart ComfyUI. The only pip dependency is dashscope (the pack relies on the torchvision/torchaudio already bundled with ComfyUI for frame extraction), there are no model downloads, and each generated video bills against your Alibaba account - check the DashScope pricing page before you batch thirty takes of the same scene.

Categorydashscope

Inputs (2)

NameTypeDefaultDescription
imageIMAGE
audioAUDIO

Outputs (4)

NameTypeDescription
framesIMAGE
frame_countINT
video_infoVHS_VIDEOINFO
audioAUDIO