工作流 /
产品与广告 /
让模特手持产品

让模特手持产品
Add Product to Character’s Hand, AI UGC
上传你的角色和产品照片,生成角色手持产品的图片。
产品与广告
5 个节点 2 个输入 10 次使用 ComfyUI ≥ 0.8.0 hellorob 13 KB
节点构成
LoadImage
× 2
SaveImage
× 1
GeminiImage2Node
× 1
e20a7fb5-3d72-41c9-a78c-fdf287ec46ec
× 1
官方标注的模型
Gemini3 Pro Image PreviewGoogleNano Banana Pro
工作流 JSON
和上面「下载工作流 JSON」是同一份文件。
1{
2 "id": "1532265d-5a1f-40c4-ad49-82de6d7ff2ac",
3 "revision": 0,
4 "last_node_id": 19,
5 "last_link_id": 21,
6 "nodes": [
7 {
8 "id": 15,
9 "type": "SaveImage",
10 "pos": [
11 1849.9997951004482,
12 349.9999158717077
13 ],
14 "size": [
15 564,
16 888
17 ],
18 "flags": [],
19 "order": 4,
20 "mode": 0,
21 "inputs": [
22 {
23 "name": "images",
24 "type": "IMAGE",
25 "link": 16
26 }
27 ],
28 "outputs": [],
29 "properties": {
30 "Node name for S&R": "SaveImage",
31 "cnr_id": "comfy-core",
32 "ver": "0.3.76"
33 },
34 "widgets_values": [
35 "ComfyUI"
36 ]
37 },
38 {
39 "id": 17,
40 "type": "GeminiImage2Node",
41 "pos": [
42 1261.9999596355658,
43 349.9999158717077
44 ],
45 "size": [
46 504,
47 888
48 ],
49 "flags": [],
50 "order": 3,
51 "mode": 0,
52 "inputs": [
53 {
54 "name": "images",
55 "shape": 7,
56 "type": "IMAGE",
57 "link": 21
58 },
59 {
60 "name": "files",
61 "shape": 7,
62 "type": "GEMINI_INPUT_FILES",
63 "link": null
64 }
65 ],
66 "outputs": [
67 {
68 "name": "IMAGE",
69 "type": "IMAGE",
70 "links": [
71 16
72 ]
73 },
74 {
75 "name": "STRING",
76 "type": "STRING",
77 "links": null
78 }
79 ],
80 "properties": {
81 "Node name for S&R": "GeminiImage2Node",
82 "cnr_id": "comfy-core",
83 "ver": "0.3.76"
84 },
85 "widgets_values": [
86 "The subject from image 1 is holding the product from image 2, the product logo is visible.",
87 "gemini-3-pro-image-preview",
88 983525498427854,
89 "randomize",
90 "auto",
91 "2K",
92 "IMAGE+TEXT",
93 "You are an expert image-generation engine. You must ALWAYS produce an image.\nInterpret all user input—regardless of format, intent, or abstraction—as literal visual directives for image composition.\nIf a prompt is conversational or lacks specific visual details, you must creatively invent a concrete visual scenario that depicts the concept.\nPrioritize generating the visual representation above any text, formatting, or conversational requests."
94 ],
95 "color": "#432",
96 "bgcolor": "#653"
97 },
98 {
99 "id": 10,
100 "type": "LoadImage",
101 "pos": [
102 344.3451303700883,
103 349.9999158717077
104 ],
105 "size": [
106 516,
107 732
108 ],
109 "flags": [],
110 "order": 0,
111 "mode": 0,
112 "inputs": [],
113 "outputs": [
114 {
115 "name": "IMAGE",
116 "type": "IMAGE",
117 "links": [
118 19
119 ]
120 },
121 {
122 "name": "MASK",
123 "type": "MASK",
124 "links": null
125 }
126 ],
127 "title": "Load Subject Image",
128 "properties": {
129 "Node name for S&R": "LoadImage",
130 "cnr_id": "comfy-core",
131 "ver": "0.3.76"
132 },
133 "widgets_values": [
134 "subject-elderly-lady-portrait.png",
135 "image"
136 ],
137 "color": "#232",
138 "bgcolor": "#353"
139 },
140 {
141 "id": 11,
142 "type": "LoadImage",
143 "pos": [
144 344.3451303700883,
145 1145.1414702648215
146 ],
147 "size": [
148 516,
149 732
150 ],
151 "flags": [],
152 "order": 1,
153 "mode": 0,
154 "inputs": [],
155 "outputs": [
156 {
157 "name": "IMAGE",
158 "type": "IMAGE",
159 "links": [
160 20
161 ]
162 },
163 {
164 "name": "MASK",
165 "type": "MASK",
166 "links": null
167 }
168 ],
169 "title": "Load Product Image",
170 "properties": {
171 "Node name for S&R": "LoadImage",
172 "cnr_id": "comfy-core",
173 "ver": "0.3.76"
174 },
175 "widgets_values": [
176 "product-toothbrush.png",
177 "image"
178 ],
179 "color": "#232",
180 "bgcolor": "#353"
181 },
182 {
183 "id": 18,
184 "type": "e20a7fb5-3d72-41c9-a78c-fdf287ec46ec",
185 "pos": [
186 985.9998620550939,
187 349.9999158717077
188 ],
189 "size": [
190 225,
191 96
192 ],
193 "flags": {
194 "collapsed": false
195 },
196 "order": 2,
197 "mode": 0,
198 "inputs": [
199 {
200 "label": "image_1",
201 "name": "image",
202 "type": "IMAGE",
203 "link": 19
204 },
205 {
206 "label": "image_2",
207 "name": "image_1",
208 "type": "IMAGE",
209 "link": 20
210 }
211 ],
212 "outputs": [
213 {
214 "name": "IMAGE",
215 "type": "IMAGE",
216 "links": [
217 21
218 ]
219 }
220 ],
221 "properties": {
222 "proxyWidgets": [],
223 "cnr_id": "comfy-core",
224 "ver": "0.4.0"
225 },
226 "widgets_values": []
227 }
228 ],
229 "links": [
230 [
231 16,
232 17,
233 0,
234 15,
235 0,
236 "IMAGE"
237 ],
238 [
239 19,
240 10,
241 0,
242 18,
243 0,
244 "IMAGE"
245 ],
246 [
247 20,
248 11,
249 0,
250 18,
251 1,
252 "IMAGE"
253 ],
254 [
255 21,
256 18,
257 0,
258 17,
259 0,
260 "IMAGE"
261 ]
262 ],
263 "groups": [],
264 "definitions": {
265 "subgraphs": [
266 {
267 "id": "e20a7fb5-3d72-41c9-a78c-fdf287ec46ec",
268 "version": 1,
269 "state": {
270 "lastGroupId": 0,
271 "lastNodeId": 19,
272 "lastLinkId": 21,
273 "lastRerouteId": 0
274 },
275 "revision": 0,
276 "config": [],
277 "name": "Batch Images",
278 "inputNode": {
279 "id": -10,
280 "bounding": [
281 818,
282 362,
283 144,
284 96
285 ]
286 },
287 "outputNode": {
288 "id": -20,
289 "bounding": [
290 1778,
291 362,
292 144,
293 72
294 ]
295 },
296 "inputs": [
297 {
298 "id": "bc8c15e3-969a-4321-9518-84a5cdf64836",
299 "name": "image",
300 "type": "IMAGE",
301 "linkIds": [
302 10,
303 19
304 ],
305 "localized_name": "image",
306 "pos": [
307 780,
308 320
309 ]
310 },
311 {
312 "id": "6288f9fa-a2ef-4285-a1b3-a35c52d4087f",
313 "name": "image_1",
314 "type": "IMAGE",
315 "linkIds": [
316 11
317 ],
318 "localized_name": "image_1",
319 "pos": [
320 780,
321 340
322 ]
323 }
324 ],
325 "outputs": [
326 {
327 "id": "7f588e1c-0a55-4023-930f-ec99d2f311df",
328 "name": "IMAGE",
329 "type": "IMAGE",
330 "linkIds": [
331 21
332 ],
333 "localized_name": "IMAGE",
334 "pos": [
335 1500,
336 320
337 ]
338 }
339 ],
340 "widgets": [],
341 "nodes": [
342 {
343 "id": 13,
344 "type": "ResizeAndPadImage",
345 "pos": [
346 1334,
347 602
348 ],
349 "size": [
350 252,
351 156
352 ],
353 "flags": {
354 "collapsed": false
355 },
356 "order": 1,
357 "mode": 0,
358 "inputs": [
359 {
360 "localized_name": "image",
361 "name": "image",
362 "type": "IMAGE",
363 "link": 11
364 },
365 {
366 "localized_name": "target_width",
367 "name": "target_width",
368 "type": "INT",
369 "widget": {
370 "name": "target_width"
371 },
372 "link": 12
373 },
374 {
375 "localized_name": "target_height",
376 "name": "target_height",
377 "type": "INT",
378 "widget": {
379 "name": "target_height"
380 },
381 "link": 13
382 }
383 ],
384 "outputs": [
385 {
386 "localized_name": "IMAGE",
387 "name": "IMAGE",
388 "type": "IMAGE",
389 "links": [
390 20
391 ]
392 }
393 ],
394 "properties": {
395 "Node name for S&R": "ResizeAndPadImage",
396 "cnr_id": "comfy-core",
397 "ver": "0.3.76"
398 },
399 "widgets_values": [
400 512,
401 512,
402 "white",
403 "area"
404 ]
405 },
406 {
407 "id": 12,
408 "type": "GetImageSize",
409 "pos": [
410 1106,
411 638
412 ],
413 "size": [
414 192,
415 79.2
416 ],
417 "flags": {
418 "collapsed": false
419 },
420 "order": 0,
421 "mode": 0,
422 "inputs": [
423 {
424 "localized_name": "image",
425 "name": "image",
426 "type": "IMAGE",
427 "link": 10
428 }
429 ],
430 "outputs": [
431 {
432 "localized_name": "width",
433 "name": "width",
434 "type": "INT",
435 "links": [
436 12
437 ]
438 },
439 {
440 "localized_name": "height",
441 "name": "height",
442 "type": "INT",
443 "links": [
444 13
445 ]
446 },
447 {
448 "localized_name": "batch_size",
449 "name": "batch_size",
450 "type": "INT",
451 "links": null
452 }
453 ],
454 "properties": {
455 "Node name for S&R": "GetImageSize",
456 "cnr_id": "comfy-core",
457 "ver": "0.3.76"
458 },
459 "widgets_values": []
460 },
461 {
462 "id": 19,
463 "type": "BatchImagesNode",
464 "pos": [
465 1382,
466 386
467 ],
468 "size": [
469 203.0765625,
470 103.2
471 ],
472 "flags": [],
473 "order": 2,
474 "mode": 0,
475 "inputs": [
476 {
477 "label": "image0",
478 "localized_name": "images.image0",
479 "name": "images.image0",
480 "type": "IMAGE",
481 "link": 19
482 },
483 {
484 "label": "image1",
485 "localized_name": "images.image1",
486 "name": "images.image1",
487 "type": "IMAGE",
488 "link": 20
489 },
490 {
491 "label": "image2",
492 "localized_name": "images.image2",
493 "name": "images.image2",
494 "shape": 7,
495 "type": "IMAGE",
496 "link": null
497 }
498 ],
499 "outputs": [
500 {
501 "localized_name": "IMAGE",
502 "name": "IMAGE",
503 "type": "IMAGE",
504 "links": [
505 21
506 ]
507 }
508 ],
509 "properties": {
510 "Node name for S&R": "BatchImagesNode"
511 },
512 "widgets_values": []
513 }
514 ],
515 "groups": [],
516 "links": [
517 {
518 "id": 12,
519 "origin_id": 12,
520 "origin_slot": 0,
521 "target_id": 13,
522 "target_slot": 1,
523 "type": "INT"
524 },
525 {
526 "id": 13,
527 "origin_id": 12,
528 "origin_slot": 1,
529 "target_id": 13,
530 "target_slot": 2,
531 "type": "INT"
532 },
533 {
534 "id": 10,
535 "origin_id": -10,
536 "origin_slot": 0,
537 "target_id": 12,
538 "target_slot": 0,
539 "type": "IMAGE"
540 },
541 {
542 "id": 11,
543 "origin_id": -10,
544 "origin_slot": 1,
545 "target_id": 13,
546 "target_slot": 0,
547 "type": "IMAGE"
548 },
549 {
550 "id": 19,
551 "origin_id": -10,
552 "origin_slot": 0,
553 "target_id": 19,
554 "target_slot": 0,
555 "type": "IMAGE"
556 },
557 {
558 "id": 20,
559 "origin_id": 13,
560 "origin_slot": 0,
561 "target_id": 19,
562 "target_slot": 1,
563 "type": "IMAGE"
564 },
565 {
566 "id": 21,
567 "origin_id": 19,
568 "origin_slot": 0,
569 "target_id": -20,
570 "target_slot": 0,
571 "type": "IMAGE"
572 }
573 ],
574 "extra": {
575 "workflowRendererVersion": "Vue"
576 }
577 }
578 ]
579 },
580 "config": [],
581 "extra": {
582 "ds": {
583 "scale": 0.5345541216813412,
584 "offset": [
585 263.0972388370495,
586 42.87302575467866
587 ]
588 },
589 "frontendVersion": "1.41.13",
590 "workflowRendererVersion": "Vue",
591 "VHS_latentpreview": false,
592 "VHS_latentpreviewrate": 0,
593 "VHS_MetadataImage": true,
594 "VHS_KeepIntermediate": true,
595 "linearData": {
596 "inputs": [
597 [
598 "10",
599 "image"
600 ],
601 [
602 "11",
603 "image"
604 ],
605 [
606 "17",
607 "resolution"
608 ]
609 ],
610 "outputs": [
611 "15"
612 ]
613 },
614 "linearMode": true
615 },
616 "version": 0.4
617}