ComfyPilotComfyPilot
工作流 / 角色与时尚 / 虚拟试穿: Flux
虚拟试穿: Flux

虚拟试穿: Flux

Virtual Try-On: Flux

上传一张人物照片和一张服装图像。生成一个虚拟试穿结果,将服装应用到人物身上,同时保留面部和姿态。

角色与时尚 7 个节点 2 个输入 19 次使用 ComfyUI ≥ 0.23.0 ComfyUI 6 KB

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

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

节点构成

LoadImage × 2
SaveImage × 1
ImageCompare × 1
FluxVTONode × 1
MarkdownNote × 1
ImageStitch × 1

官方标注的模型

FLUX

工作流 JSON

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

1{
2 "id": "9497dbde-dc0e-4337-ac9b-2da3560264ab",
3 "revision": 0,
4 "last_node_id": 9,
5 "last_link_id": 10,
6 "nodes": [
7 {
8 "id": 1,
9 "type": "LoadImage",
10 "pos": [
11 138900,
12 138250
13 ],
14 "size": [
15 290,
16 400
17 ],
18 "flags": [],
19 "order": 0,
20 "mode": 0,
21 "inputs": [],
22 "outputs": [
23 {
24 "name": "IMAGE",
25 "type": "IMAGE",
26 "links": [
27 6,
28 9
29 ]
30 },
31 {
32 "name": "MASK",
33 "type": "MASK",
34 "links": null
35 }
36 ],
37 "properties": {
38 "Node name for S&R": "LoadImage"
39 },
40 "widgets_values": [
41 "portrait_floral_headshot.png",
42 "image"
43 ]
44 },
45 {
46 "id": 4,
47 "type": "SaveImage",
48 "pos": [
49 139760,
50 138260
51 ],
52 "size": [
53 730,
54 870
55 ],
56 "flags": [],
57 "order": 5,
58 "mode": 0,
59 "inputs": [
60 {
61 "name": "images",
62 "type": "IMAGE",
63 "link": 7
64 }
65 ],
66 "outputs": [],
67 "properties": [],
68 "widgets_values": [
69 "Flux_VTO"
70 ]
71 },
72 {
73 "id": 5,
74 "type": "LoadImage",
75 "pos": [
76 138900,
77 138720
78 ],
79 "size": [
80 290,
81 370
82 ],
83 "flags": [],
84 "order": 1,
85 "mode": 0,
86 "inputs": [],
87 "outputs": [
88 {
89 "name": "IMAGE",
90 "type": "IMAGE",
91 "links": [
92 10
93 ]
94 },
95 {
96 "name": "MASK",
97 "type": "MASK",
98 "links": null
99 }
100 ],
101 "properties": {
102 "Node name for S&R": "LoadImage"
103 },
104 "widgets_values": [
105 "green_chiffon_short_dress.png",
106 "image"
107 ]
108 },
109 {
110 "id": 6,
111 "type": "ImageCompare",
112 "pos": [
113 140520,
114 138260
115 ],
116 "size": [
117 800,
118 870
119 ],
120 "flags": [],
121 "order": 6,
122 "mode": 0,
123 "inputs": [
124 {
125 "name": "image_a",
126 "shape": 7,
127 "type": "IMAGE",
128 "link": 6
129 },
130 {
131 "name": "image_b",
132 "shape": 7,
133 "type": "IMAGE",
134 "link": 8
135 }
136 ],
137 "outputs": [],
138 "properties": {
139 "Node name for S&R": "ImageCompare"
140 },
141 "widgets_values": []
142 },
143 {
144 "id": 7,
145 "type": "FluxVTONode",
146 "pos": [
147 139280,
148 138250
149 ],
150 "size": [
151 400,
152 200
153 ],
154 "flags": [],
155 "order": 4,
156 "mode": 0,
157 "inputs": [
158 {
159 "name": "person",
160 "type": "IMAGE",
161 "link": 9
162 },
163 {
164 "name": "garment",
165 "type": "IMAGE",
166 "link": 10
167 }
168 ],
169 "outputs": [
170 {
171 "name": "IMAGE",
172 "type": "IMAGE",
173 "links": [
174 7,
175 8
176 ]
177 }
178 ],
179 "properties": {
180 "Node name for S&R": "FluxVTONode"
181 },
182 "widgets_values": [
183 "Replace the full outfit with the reference garment",
184 0,
185 "randomize"
186 ],
187 "color": "#432",
188 "bgcolor": "#653"
189 },
190 {
191 "id": 8,
192 "type": "MarkdownNote",
193 "pos": [
194 138400,
195 138250
196 ],
197 "size": [
198 400,
199 862.5625
200 ],
201 "flags": [],
202 "order": 2,
203 "mode": 0,
204 "inputs": [],
205 "outputs": [],
206 "title": "Note: Flux Virtual Try-On",
207 "properties": [],
208 "widgets_values": [
209 "## FLUX Virtual Try-On\n\nPuts the clothing from your **garment** photo onto the **person** photo. Face and pose stay from the person image.\n\n### Quick start\n\n- **Load Image (top)** — **Person**: who will wear the clothes. Use a clear photo with the body/clothing area visible.\n- **Load Image (bottom)** — **Garment**: the clothes to apply (product shot, flat lay, or one combined image).\n\nUpload both, adjust **prompt** on **Flux Virtual Try-On** if needed, then **Queue Prompt**. Use **Compare Images** to check before/after; **Save Image** writes the result.\n\n### Prompt\n\nDescribe the garment and how it should be worn — not the person or background.\n\nExample:\n`Dress the person in the reference garment. Match color, pattern, and fit. Keep face and pose unchanged.`\n\nOptional: `upper body only`, `tucked in`, `preserve the logo on the chest`.\n\n### Several garment images\n\nOnly one image goes into **garment**. Use **Stitch Images** to join separate pieces (e.g. jacket + pants) side by side or stacked, then connect that output to **garment**. Name each piece in the prompt."
210 ],
211 "color": "#222",
212 "bgcolor": "#000"
213 },
214 {
215 "id": 9,
216 "type": "ImageStitch",
217 "pos": [
218 138900,
219 139200
220 ],
221 "size": [
222 270,
223 184
224 ],
225 "flags": [],
226 "order": 3,
227 "mode": 0,
228 "inputs": [
229 {
230 "name": "image1",
231 "type": "IMAGE",
232 "link": null
233 },
234 {
235 "name": "image2",
236 "shape": 7,
237 "type": "IMAGE",
238 "link": null
239 }
240 ],
241 "outputs": [
242 {
243 "name": "IMAGE",
244 "type": "IMAGE",
245 "links": null
246 }
247 ],
248 "properties": {
249 "Node name for S&R": "ImageStitch"
250 },
251 "widgets_values": [
252 "right",
253 true,
254 0,
255 "white"
256 ]
257 }
258 ],
259 "links": [
260 [
261 6,
262 1,
263 0,
264 6,
265 0,
266 "IMAGE"
267 ],
268 [
269 7,
270 7,
271 0,
272 4,
273 0,
274 "IMAGE"
275 ],
276 [
277 8,
278 7,
279 0,
280 6,
281 1,
282 "IMAGE"
283 ],
284 [
285 9,
286 1,
287 0,
288 7,
289 0,
290 "IMAGE"
291 ],
292 [
293 10,
294 5,
295 0,
296 7,
297 1,
298 "IMAGE"
299 ]
300 ],
301 "groups": [],
302 "config": [],
303 "extra": {
304 "ds": {
305 "scale": 0.42819193646529136,
306 "offset": [
307 -136836.43480332155,
308 -137502.8517517957
309 ]
310 },
311 "frontendVersion": "1.45.14",
312 "VHS_latentpreview": false,
313 "VHS_latentpreviewrate": 0,
314 "VHS_MetadataImage": true,
315 "VHS_KeepIntermediate": true
316 },
317 "version": 0.4
318}