ComfyPilotComfyPilot
工作流 / 视频 / VEED Fabric 1.0:会说话的照片
VEED Fabric 1.0:会说话的照片

VEED Fabric 1.0:会说话的照片

VEED Fabric 1.0: Talking Photo

用 VEED Fabric 1.0 把一张静态照片和一段语音变成会说话的对口型视频:画面中的人脸跟着音频说话,成片保持原图比例,长度与音频一致,最长 300 秒,可选 480p 或 720p。适合数字头像、吉祥物,以及用自己录制或 TTS 生成的语音制作本地化出镜短片。

视频 5 个节点 2 个输入 42 次使用 ComfyUI ≥ 0.43.0 ComfyUI 5 KB

下载工作流 JSON 查看官方来源

下载后把文件拖进 ComfyUI 窗口即可打开。

节点构成

MarkdownNote × 1
LoadImage × 1
LoadAudio × 1
VeedFabricNode × 1
SaveVideo × 1

官方标注的模型

VEED

工作流 JSON

和上面「下载工作流 JSON」是同一份文件。

1{
2 "id": "5b4ffc84-79bf-4ead-840c-689638e237ab",
3 "revision": 0,
4 "last_node_id": 6,
5 "last_link_id": 3,
6 "nodes": [
7 {
8 "id": 6,
9 "type": "MarkdownNote",
10 "pos": [
11 -1040,
12 -420
13 ],
14 "size": [
15 520,
16 620
17 ],
18 "flags": [],
19 "order": 2,
20 "mode": 0,
21 "inputs": [],
22 "outputs": [],
23 "properties": [],
24 "widgets_values": [
25 "## VEED Fabric 1.0: Talking Photo — Workflow Guide\n\n## Input Assets\n- [black_fashion_portrait.png](https://raw.githubusercontent.com/Comfy-Org/workflow_templates/refs/heads/main/input/black_fashion_portrait.png)\n- [audio_see_beyond_the_light.mp3](https://raw.githubusercontent.com/Comfy-Org/workflow_templates/refs/heads/main/input/audio_see_beyond_the_light.mp3)\n\n## How to Use\n1. Load a photo with one clear, front-facing face.\n2. Load the speech: it sets lip movement and clip length.\n3. Pick 720p (default) or 480p.\n\n## Limits\n- Audio up to 300 seconds; output length equals the audio.\n- 480p is 864x480 at 16:9; 720p is 1312x736.\n- One speaker per run; the clearest front-facing face speaks.\n"
26 ],
27 "widgets_values_named": {
28 "text": "## VEED Fabric 1.0: Talking Photo — Workflow Guide\n\n## Input Assets\n- [black_fashion_portrait.png](https://raw.githubusercontent.com/Comfy-Org/workflow_templates/refs/heads/main/input/black_fashion_portrait.png)\n- [audio_see_beyond_the_light.mp3](https://raw.githubusercontent.com/Comfy-Org/workflow_templates/refs/heads/main/input/audio_see_beyond_the_light.mp3)\n\n## How to Use\n1. Load a photo with one clear, front-facing face.\n2. Load the speech: it sets lip movement and clip length.\n3. Pick 720p (default) or 480p.\n\n## Limits\n- Audio up to 300 seconds; output length equals the audio.\n- 480p is 864x480 at 16:9; 720p is 1312x736.\n- One speaker per run; the clearest front-facing face speaks.\n"
29 },
30 "color": "#222",
31 "bgcolor": "#000",
32 "title": "Note: Workflow Guide"
33 },
34 {
35 "id": 2,
36 "type": "LoadImage",
37 "pos": [
38 -440,
39 -420
40 ],
41 "size": [
42 420,
43 470
44 ],
45 "flags": [],
46 "order": 0,
47 "mode": 0,
48 "inputs": [],
49 "outputs": [
50 {
51 "name": "IMAGE",
52 "type": "IMAGE",
53 "links": [
54 1
55 ]
56 },
57 {
58 "name": "MASK",
59 "type": "MASK",
60 "links": null
61 }
62 ],
63 "properties": {
64 "Node name for S&R": "LoadImage"
65 },
66 "widgets_values": [
67 "black_fashion_portrait.png",
68 "image"
69 ],
70 "widgets_values_named": {
71 "image": "black_fashion_portrait.png",
72 "upload": "image"
73 }
74 },
75 {
76 "id": 5,
77 "type": "LoadAudio",
78 "pos": [
79 -440,
80 110
81 ],
82 "size": [
83 420,
84 170
85 ],
86 "flags": [],
87 "order": 1,
88 "mode": 0,
89 "inputs": [],
90 "outputs": [
91 {
92 "name": "AUDIO",
93 "type": "AUDIO",
94 "links": [
95 3
96 ]
97 }
98 ],
99 "properties": {
100 "Node name for S&R": "LoadAudio"
101 },
102 "widgets_values": [
103 "audio_see_beyond_the_light.mp3",
104 ""
105 ],
106 "widgets_values_named": {
107 "audio": "audio_see_beyond_the_light.mp3",
108 "upload": ""
109 }
110 },
111 {
112 "id": 1,
113 "type": "VeedFabricNode",
114 "pos": [
115 60,
116 -420
117 ],
118 "size": [
119 360,
120 260
121 ],
122 "flags": [],
123 "order": 3,
124 "mode": 0,
125 "inputs": [
126 {
127 "name": "model.image",
128 "type": "IMAGE",
129 "link": 1
130 },
131 {
132 "name": "model.audio",
133 "type": "AUDIO",
134 "link": 3
135 }
136 ],
137 "outputs": [
138 {
139 "name": "VIDEO",
140 "type": "VIDEO",
141 "links": [
142 2
143 ]
144 }
145 ],
146 "properties": {
147 "Node name for S&R": "VeedFabricNode"
148 },
149 "widgets_values": [
150 "fabric-1.0",
151 "720p"
152 ],
153 "widgets_values_named": {
154 "model": "fabric-1.0",
155 "model.resolution": "720p"
156 },
157 "color": "#432",
158 "bgcolor": "#653"
159 },
160 {
161 "id": 3,
162 "type": "SaveVideo",
163 "pos": [
164 500,
165 -420
166 ],
167 "size": [
168 560,
169 540
170 ],
171 "flags": [],
172 "order": 4,
173 "mode": 0,
174 "inputs": [
175 {
176 "name": "video",
177 "type": "VIDEO",
178 "link": 2
179 }
180 ],
181 "outputs": [
182 {
183 "name": "video",
184 "type": "VIDEO",
185 "links": null
186 }
187 ],
188 "properties": [],
189 "widgets_values": [
190 "video/VEED_Fabric_1.0",
191 "auto",
192 "auto",
193 "auto"
194 ],
195 "widgets_values_named": {
196 "filename_prefix": "video/VEED_Fabric_1.0",
197 "format": "auto",
198 "format.codec": "auto",
199 "codec": "auto"
200 }
201 }
202 ],
203 "links": [
204 [
205 1,
206 2,
207 0,
208 1,
209 0,
210 "IMAGE"
211 ],
212 [
213 3,
214 5,
215 0,
216 1,
217 1,
218 "AUDIO"
219 ],
220 [
221 2,
222 1,
223 0,
224 3,
225 0,
226 "VIDEO"
227 ]
228 ],
229 "groups": [],
230 "config": [],
231 "extra": {
232 "ds": {
233 "scale": 0.72,
234 "offset": [
235 820,
236 402
237 ]
238 },
239 "frontendVersion": "1.58.0"
240 },
241 "version": 0.4
242}