闲兔|数字人图片输出
Get your digital-human reference images out as a real IMAGE socket
- 图片
This is the smallest kind of node, and the kind people search for at 2am: your reference images are sitting inside a workbench panel, the workbench has no image socket, and you need them as a normal IMAGE batch. That's the whole job. It reaches into the 数字人工作台 state, pulls the current shot's uploaded reference pictures off disk, and hands them back as a batch you can wire anywhere.
Why you'd want that: the digital-human studio already feeds the refs to H3 internally, but you may want them somewhere else in the same graph - upscale them, run them through a Qwen Image edit for a cleaner character plate, drop them into Save Image as a paper trail for the shot, or feed a second, different model (a talking-head avatar, an LTX-2 pass) that wants the same character reference without another upload dialog.
The mechanism, briefly
The node takes exactly one input, studio_state, the same JSON blob the workbench writes into its own widget. It parses it with the pack's shared state reader - which enforces the usual invariants (valid JSON, at least one shot, unique shot IDs, max 9 images per shot) - then resolves the active shot and loads each uploaded image record. Records are annotated filepaths (subfolder/name plus an input/output/temp origin), so they're resolved through ComfyUI's own file helpers and a missing file raises rather than returning black frames.
The batch is then normalised: every image is bilinearly resized to the first image's height and width, cut to a single frame, and concatenated. That's why three refs of different shapes come out as three same-sized frames - ComfyUI's IMAGE type is a batch with one geometry, so something has to give. If you care about exact pixels here, order your uploads so the reference you want everyone to match is first.
What you get, and what you don't
One output: 图片, an IMAGE batch of the current shot's references. That's it. There is no seed, no canvas size, no path field to invent - if you find yourself looking for a parameter, you're looking at the workbench node, not this one.
It is also not an output node in ComfyUI's sense. Nothing gets written to disk by running it. If the graph ends here, nothing happens; wire it into Save Image, Preview Image, or your upscaler.
Fixes for the two errors you'll actually see: 当前分镜还没有上传参考图 means the active shot has no images (in the panel, upload them to the segment you have selected - the node reads the active segment, not a picked one), and 数字人工作台状态不是有效 JSON means the studio_state widget got hand-edited or mangled by a copy-paste.
Install
It ships inside the same pack as the workbench, so there's nothing extra:
cd ComfyUI/custom_nodes
git clone https://github.com/xiantuhenlan/ComfyUI-Xiantu-QwenImage21-Workbench.git
pip install -r ComfyUI-Xiantu-QwenImage21-Workbench/requirements.txt
Then restart ComfyUI and hard-refresh the browser - the pack's frontend lives in a versioned directory and a stale cached panel is the classic "the node is installed but the UI is missing" report. Copy studio_state from the workbench node into this one's widget (or let the pack's frontend handle it) and you're done. Yes, that means the state is duplicated in two widgets in your saved workflow; it's stored as JSON on the node, so the whole shot list rides along with the workflow file - the uploaded media does not, which is the one thing that breaks when you share a workflow with someone else.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| studio_state | STRING | {} | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| 图片 | IMAGE | — |