ComfyPilotComfyPilot
工作流 / 图像 / MOSS-Image:颜色与深度控制
MOSS-Image:颜色与深度控制

MOSS-Image:颜色与深度控制

MOSS-Image: Color & Depth Control

使用 MOSS-Image 对参考照片进行重新摆姿和重新风格化:画面先用 MoGe 3 估算参考图的几何结构,然后生成一张新图像,保留姿态、构图和轮廓,而由提示词决定角色、服装、场景和淺色。颜色/深度控制适配器 LoRA 让模型遵循估算出的映射图,颜色映射插槽则用于区域绘制的布局。

图像 25 个节点 1 个输入 239 次使用 ComfyUI ≥ 0.43.0 ComfyUI 47 KB

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

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

需要的权重

这个工作流引用了 5 个权重文件,其中 5 个能在本站模型库里找到。

flux2-vae_small.safetensors 在模型库查看
moge_3_vitg_fp16.safetensors 在模型库查看
moss_image_color_depth_control.safetensors 在模型库查看
moss_image_sft_int8_convrot.safetensors 在模型库查看
qwen3.5_9b_int8_convrot.safetensors 在模型库查看

节点构成

CLIPTextEncode × 2
MarkdownNote × 2
UNETLoader × 1
SkipLayerGuidanceDiTSimple × 1
CLIPLoader × 1
VAELoader × 1
VAEDecode × 1
TemporalScoreRescaling × 1
SamplerCustom × 1
SamplerER_SDE × 1
BasicScheduler × 1
ModelSamplingAuraFlow × 1
LoraLoaderModelOnly × 1
MOSSImageControl × 1
EmptyLatentImage × 1
LoadImage × 1

官方标注的模型

MOSS-Image

工作流 JSON

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

1{
2 "id": "5140b129-e927-49a6-816e-668c69d43008",
3 "revision": 0,
4 "last_node_id": 85,
5 "last_link_id": 153,
6 "nodes": [
7 {
8 "id": 1,
9 "type": "UNETLoader",
10 "pos": [
11 -440,
12 -410
13 ],
14 "size": [
15 500,
16 90
17 ],
18 "flags": [],
19 "order": 0,
20 "mode": 0,
21 "inputs": [],
22 "outputs": [
23 {
24 "name": "MODEL",
25 "type": "MODEL",
26 "slot_index": 0,
27 "links": [
28 91
29 ]
30 }
31 ],
32 "properties": {
33 "Node name for S&R": "UNETLoader",
34 "models": [
35 {
36 "name": "moss_image_sft_int8_convrot.safetensors",
37 "url": "https://huggingface.co/Comfy-Org/MOSS-Image/resolve/main/diffusion_models/moss_image_sft_int8_convrot.safetensors",
38 "directory": "diffusion_models"
39 }
40 ]
41 },
42 "widgets_values": [
43 "moss_image_sft_int8_convrot.safetensors",
44 "default"
45 ],
46 "widgets_values_named": {
47 "unet_name": "moss_image_sft_int8_convrot.safetensors",
48 "weight_dtype": "default"
49 }
50 },
51 {
52 "id": 2,
53 "type": "SkipLayerGuidanceDiTSimple",
54 "pos": [
55 620,
56 -460
57 ],
58 "size": [
59 400,
60 130
61 ],
62 "flags": [],
63 "order": 18,
64 "mode": 0,
65 "showAdvanced": true,
66 "inputs": [
67 {
68 "name": "model",
69 "type": "MODEL",
70 "link": 69
71 }
72 ],
73 "outputs": [
74 {
75 "name": "MODEL",
76 "type": "MODEL",
77 "slot_index": 0,
78 "links": [
79 35,
80 36
81 ]
82 }
83 ],
84 "title": "SkipLayerGuidanceDiTSimple (uncond skips block 22)",
85 "properties": {
86 "Node name for S&R": "SkipLayerGuidanceDiTSimple"
87 },
88 "widgets_values": [
89 "",
90 "24",
91 0,
92 1
93 ],
94 "widgets_values_named": {
95 "double_layers": "",
96 "single_layers": "24",
97 "start_percent": 0,
98 "end_percent": 1
99 }
100 },
101 {
102 "id": 3,
103 "type": "CLIPLoader",
104 "pos": [
105 -440,
106 -50
107 ],
108 "size": [
109 500,
110 110
111 ],
112 "flags": [],
113 "order": 1,
114 "mode": 0,
115 "inputs": [],
116 "outputs": [
117 {
118 "name": "CLIP",
119 "type": "CLIP",
120 "slot_index": 0,
121 "links": [
122 3,
123 4
124 ]
125 }
126 ],
127 "properties": {
128 "Node name for S&R": "CLIPLoader",
129 "models": [
130 {
131 "name": "qwen3.5_9b_int8_convrot.safetensors",
132 "url": "https://huggingface.co/Comfy-Org/MOSS-Image/resolve/main/text_encoders/qwen3.5_9b_int8_convrot.safetensors",
133 "directory": "text_encoders"
134 }
135 ]
136 },
137 "widgets_values": [
138 "qwen3.5_9b_int8_convrot.safetensors",
139 "moss_image",
140 "default"
141 ],
142 "widgets_values_named": {
143 "clip_name": "qwen3.5_9b_int8_convrot.safetensors",
144 "type": "moss_image",
145 "device": "default"
146 }
147 },
148 {
149 "id": 4,
150 "type": "VAELoader",
151 "pos": [
152 -440,
153 130
154 ],
155 "size": [
156 500,
157 60
158 ],
159 "flags": [],
160 "order": 2,
161 "mode": 0,
162 "inputs": [],
163 "outputs": [
164 {
165 "name": "VAE",
166 "type": "VAE",
167 "slot_index": 0,
168 "links": [
169 9,
170 105
171 ]
172 }
173 ],
174 "properties": {
175 "Node name for S&R": "VAELoader",
176 "models": [
177 {
178 "name": "flux2-vae_small.safetensors",
179 "url": "https://huggingface.co/Comfy-Org/MOSS-Image/resolve/main/vae/flux2-vae_small.safetensors",
180 "directory": "vae"
181 }
182 ]
183 },
184 "widgets_values": [
185 "flux2-vae_small.safetensors"
186 ],
187 "widgets_values_named": {
188 "vae_name": "flux2-vae_small.safetensors"
189 }
190 },
191 {
192 "id": 5,
193 "type": "CLIPTextEncode",
194 "pos": [
195 150,
196 -60
197 ],
198 "size": [
199 470,
200 240
201 ],
202 "flags": [],
203 "order": 9,
204 "mode": 0,
205 "inputs": [
206 {
207 "name": "clip",
208 "type": "CLIP",
209 "link": 3
210 }
211 ],
212 "outputs": [
213 {
214 "name": "CONDITIONING",
215 "type": "CONDITIONING",
216 "slot_index": 0,
217 "links": [
218 99
219 ]
220 }
221 ],
222 "title": "Positive Prompt",
223 "properties": {
224 "Node name for S&R": "CLIPTextEncode"
225 },
226 "widgets_values": [
227 "a photograph of a woman in the night city"
228 ],
229 "widgets_values_named": {
230 "text": "a photograph of a woman in the night city"
231 },
232 "color": "#232",
233 "bgcolor": "#353"
234 },
235 {
236 "id": 6,
237 "type": "CLIPTextEncode",
238 "pos": [
239 150,
240 250
241 ],
242 "size": [
243 480,
244 110
245 ],
246 "flags": [],
247 "order": 10,
248 "mode": 0,
249 "inputs": [
250 {
251 "name": "clip",
252 "type": "CLIP",
253 "link": 4
254 }
255 ],
256 "outputs": [
257 {
258 "name": "CONDITIONING",
259 "type": "CONDITIONING",
260 "slot_index": 0,
261 "links": [
262 100
263 ]
264 }
265 ],
266 "title": "Negative Prompt",
267 "properties": {
268 "Node name for S&R": "CLIPTextEncode"
269 },
270 "widgets_values": [
271 "nsfw, worst quality, bad anatomy, watermark, jpeg artifact"
272 ],
273 "widgets_values_named": {
274 "text": "nsfw, worst quality, bad anatomy, watermark, jpeg artifact"
275 },
276 "color": "#223",
277 "bgcolor": "#335"
278 },
279 {
280 "id": 9,
281 "type": "VAEDecode",
282 "pos": [
283 1910,
284 -520
285 ],
286 "size": [
287 210,
288 50
289 ],
290 "flags": [],
291 "order": 22,
292 "mode": 0,
293 "inputs": [
294 {
295 "name": "samples",
296 "type": "LATENT",
297 "link": 25
298 },
299 {
300 "name": "vae",
301 "type": "VAE",
302 "link": 9
303 }
304 ],
305 "outputs": [
306 {
307 "name": "IMAGE",
308 "type": "IMAGE",
309 "slot_index": 0,
310 "links": [
311 151
312 ]
313 }
314 ],
315 "properties": {
316 "Node name for S&R": "VAEDecode"
317 },
318 "color": "#322",
319 "bgcolor": "#533"
320 },
321 {
322 "id": 16,
323 "type": "TemporalScoreRescaling",
324 "pos": [
325 160,
326 -470
327 ],
328 "size": [
329 400,
330 90
331 ],
332 "flags": [],
333 "order": 12,
334 "mode": 0,
335 "showAdvanced": true,
336 "inputs": [
337 {
338 "name": "model",
339 "type": "MODEL",
340 "link": 117
341 }
342 ],
343 "outputs": [
344 {
345 "name": "patched_model",
346 "type": "MODEL",
347 "links": [
348 59
349 ]
350 }
351 ],
352 "properties": {
353 "Node name for S&R": "TemporalScoreRescaling"
354 },
355 "widgets_values": [
356 0.95,
357 1
358 ],
359 "widgets_values_named": {
360 "tsr_k": 0.95,
361 "tsr_sigma": 1
362 }
363 },
364 {
365 "id": 20,
366 "type": "SamplerCustom",
367 "pos": [
368 1500,
369 -360
370 ],
371 "size": [
372 280,
373 500
374 ],
375 "flags": [],
376 "order": 21,
377 "mode": 0,
378 "inputs": [
379 {
380 "name": "model",
381 "type": "MODEL",
382 "link": 35
383 },
384 {
385 "name": "positive",
386 "type": "CONDITIONING",
387 "link": 101
388 },
389 {
390 "name": "negative",
391 "type": "CONDITIONING",
392 "link": 102
393 },
394 {
395 "name": "sampler",
396 "type": "SAMPLER",
397 "link": 94
398 },
399 {
400 "name": "sigmas",
401 "type": "SIGMAS",
402 "link": 27
403 },
404 {
405 "name": "latent_image",
406 "type": "LATENT",
407 "link": 106
408 }
409 ],
410 "outputs": [
411 {
412 "name": "output",
413 "type": "LATENT",
414 "links": [
415 25
416 ]
417 },
418 {
419 "name": "denoised_output",
420 "type": "LATENT",
421 "links": null
422 }
423 ],
424 "properties": {
425 "Node name for S&R": "SamplerCustom"
426 },
427 "widgets_values": [
428 true,
429 1099957152091484,
430 "randomize",
431 3
432 ],
433 "widgets_values_named": {
434 "add_noise": true,
435 "noise_seed": 1099957152091484,
436 "control_after_generate": "randomize",
437 "cfg": 3
438 }
439 },
440 {
441 "id": 21,
442 "type": "SamplerER_SDE",
443 "pos": [
444 1160,
445 -310
446 ],
447 "size": [
448 270,
449 130
450 ],
451 "flags": [],
452 "order": 3,
453 "mode": 0,
454 "showAdvanced": true,
455 "inputs": [],
456 "outputs": [
457 {
458 "name": "SAMPLER",
459 "type": "SAMPLER",
460 "links": [
461 94
462 ]
463 }
464 ],
465 "properties": {
466 "Node name for S&R": "SamplerER_SDE"
467 },
468 "widgets_values": [
469 "ER-SDE",
470 3,
471 1,
472 1.05
473 ],
474 "widgets_values_named": {
475 "solver_type": "ER-SDE",
476 "max_stage": 3,
477 "eta": 1,
478 "s_noise": 1.05
479 }
480 },
481 {
482 "id": 22,
483 "type": "BasicScheduler",
484 "pos": [
485 1160,
486 -90
487 ],
488 "size": [
489 270,
490 110
491 ],
492 "flags": [],
493 "order": 20,
494 "mode": 0,
495 "inputs": [
496 {
497 "name": "model",
498 "type": "MODEL",
499 "link": 36
500 }
501 ],
502 "outputs": [
503 {
504 "name": "SIGMAS",
505 "type": "SIGMAS",
506 "links": [
507 27
508 ]
509 }
510 ],
511 "properties": {
512 "Node name for S&R": "BasicScheduler"
513 },
514 "widgets_values": [
515 "simple",
516 25,
517 1
518 ],
519 "widgets_values_named": {
520 "scheduler": "simple",
521 "steps": 25,
522 "denoise": 1
523 }
524 },
525 {
526 "id": 36,
527 "type": "ModelSamplingAuraFlow",
528 "pos": [
529 160,
530 -300
531 ],
532 "size": [
533 400,
534 90
535 ],
536 "flags": [],
537 "order": 15,
538 "mode": 0,
539 "inputs": [
540 {
541 "name": "model",
542 "type": "MODEL",
543 "link": 59
544 }
545 ],
546 "outputs": [
547 {
548 "name": "MODEL",
549 "type": "MODEL",
550 "links": [
551 69
552 ]
553 }
554 ],
555 "properties": {
556 "Node name for S&R": "ModelSamplingAuraFlow"
557 },
558 "widgets_values": [
559 5,
560 "flow"
561 ],
562 "widgets_values_named": {
563 "shift": 5,
564 "sampling": "flow"
565 }
566 },
567 {
568 "id": 49,
569 "type": "LoraLoaderModelOnly",
570 "pos": [
571 -440,
572 -240
573 ],
574 "size": [
575 500,
576 120
577 ],
578 "flags": [],
579 "order": 8,
580 "mode": 0,
581 "inputs": [
582 {
583 "name": "model",
584 "type": "MODEL",
585 "link": 91
586 }
587 ],
588 "outputs": [
589 {
590 "name": "MODEL",
591 "type": "MODEL",
592 "links": [
593 117
594 ]
595 }
596 ],
597 "properties": {
598 "Node name for S&R": "LoraLoaderModelOnly",
599 "models": [
600 {
601 "name": "moss_image_color_depth_control.safetensors",
602 "url": "https://huggingface.co/Comfy-Org/MOSS-Image/resolve/main/loras/moss_image_color_depth_control.safetensors",
603 "directory": "loras"
604 }
605 ]
606 },
607 "widgets_values": [
608 "moss_image_color_depth_control.safetensors",
609 1
610 ],
611 "widgets_values_named": {
612 "lora_name": "moss_image_color_depth_control.safetensors",
613 "strength_model": 1
614 }
615 },
616 {
617 "id": 53,
618 "type": "MOSSImageControl",
619 "pos": [
620 770,
621 -50
622 ],
623 "size": [
624 270,
625 190
626 ],
627 "flags": [],
628 "order": 19,
629 "mode": 0,
630 "inputs": [
631 {
632 "name": "positive",
633 "type": "CONDITIONING",
634 "link": 99
635 },
636 {
637 "name": "negative",
638 "type": "CONDITIONING",
639 "link": 100
640 },
641 {
642 "name": "vae",
643 "type": "VAE",
644 "link": 105
645 },
646 {
647 "name": "color_map",
648 "shape": 7,
649 "type": "IMAGE",
650 "link": null
651 },
652 {
653 "name": "depth_map",
654 "shape": 7,
655 "type": "IMAGE",
656 "link": 148
657 }
658 ],
659 "outputs": [
660 {
661 "name": "positive",
662 "type": "CONDITIONING",
663 "links": [
664 101
665 ]
666 },
667 {
668 "name": "negative",
669 "type": "CONDITIONING",
670 "links": [
671 102
672 ]
673 }
674 ],
675 "properties": {
676 "Node name for S&R": "MOSSImageControl"
677 },
678 "widgets_values": [
679 1,
680 0,
681 0.6
682 ],
683 "widgets_values_named": {
684 "strength": 1,
685 "start_percent": 0,
686 "end_percent": 0.6
687 }
688 },
689 {
690 "id": 54,
691 "type": "EmptyLatentImage",
692 "pos": [
693 1510,
694 650
695 ],
696 "size": [
697 270,
698 110
699 ],
700 "flags": [],
701 "order": 17,
702 "mode": 0,
703 "inputs": [
704 {
705 "name": "width",
706 "type": "INT",
707 "widget": {
708 "name": "width"
709 },
710 "link": 125
711 },
712 {
713 "name": "height",
714 "type": "INT",
715 "widget": {
716 "name": "height"
717 },
718 "link": 126
719 }
720 ],
721 "outputs": [
722 {
723 "name": "LATENT",
724 "type": "LATENT",
725 "links": [
726 106
727 ]
728 }
729 ],
730 "properties": {
731 "Node name for S&R": "EmptyLatentImage"
732 },
733 "widgets_values": [
734 1024,
735 1024,
736 1
737 ],
738 "widgets_values_named": {
739 "width": 1024,
740 "height": 1024,
741 "batch_size": 1
742 }
743 },
744 {
745 "id": 55,
746 "type": "LoadImage",
747 "pos": [
748 -400,
749 630
750 ],
751 "size": [
752 290,
753 110
754 ],
755 "flags": [],
756 "order": 4,
757 "mode": 0,
758 "inputs": [],
759 "outputs": [
760 {
761 "name": "IMAGE",
762 "type": "IMAGE",
763 "links": [
764 138
765 ]
766 },
767 {
768 "name": "MASK",
769 "type": "MASK",
770 "links": null
771 }
772 ],
773 "properties": {
774 "Node name for S&R": "LoadImage"
775 },
776 "widgets_values": [
777 "fashion_portrait_red_canyon.png",
778 "image"
779 ],
780 "widgets_values_named": {
781 "image": "fashion_portrait_red_canyon.png",
782 "upload": "image"
783 },
784 "color": "#322",
785 "bgcolor": "#533"
786 },
787 {
788 "id": 61,
789 "type": "GetImageSize",
790 "pos": [
791 1200,
792 680
793 ],
794 "size": [
795 140,
796 70
797 ],
798 "flags": [],
799 "order": 14,
800 "mode": 0,
801 "inputs": [
802 {
803 "name": "image",
804 "type": "IMAGE",
805 "link": 141
806 }
807 ],
808 "outputs": [
809 {
810 "name": "width",
811 "type": "INT",
812 "links": [
813 125
814 ]
815 },
816 {
817 "name": "height",
818 "type": "INT",
819 "links": [
820 126
821 ]
822 },
823 {
824 "name": "batch_size",
825 "type": "INT",
826 "links": null
827 }
828 ],
829 "properties": {
830 "Node name for S&R": "GetImageSize"
831 }
832 },
833 {
834 "id": 76,
835 "type": "bd7417be-5473-468c-99f1-78759bff8966",
836 "pos": [
837 400,
838 640
839 ],
840 "size": [
841 350,
842 190
843 ],
844 "flags": [],
845 "order": 13,
846 "mode": 0,
847 "inputs": [
848 {
849 "name": "image",
850 "type": "IMAGE",
851 "link": 140
852 }
853 ],
854 "outputs": [
855 {
856 "name": "IMAGE",
857 "type": "IMAGE",
858 "links": [
859 147
860 ]
861 }
862 ],
863 "properties": {
864 "previewExposures": []
865 },
866 "widgets_values": [
867 9,
868 4,
869 "depth",
870 "moge_3_vitg_fp16.safetensors"
871 ],
872 "widgets_values_named": {
873 "resolution_level": 9,
874 "batch_size": 4,
875 "output": "depth",
876 "model_name": "moge_3_vitg_fp16.safetensors"
877 }
878 },
879 {
880 "id": 77,
881 "type": "ImageScaleToTotalPixels",
882 "pos": [
883 40,
884 630
885 ],
886 "size": [
887 280,
888 110
889 ],
890 "flags": [],
891 "order": 11,
892 "mode": 0,
893 "showAdvanced": true,
894 "inputs": [
895 {
896 "name": "image",
897 "type": "IMAGE",
898 "link": 138
899 }
900 ],
901 "outputs": [
902 {
903 "name": "IMAGE",
904 "type": "IMAGE",
905 "links": [
906 140,
907 141
908 ]
909 }
910 ],
911 "properties": {
912 "Node name for S&R": "ImageScaleToTotalPixels"
913 },
914 "widgets_values": [
915 "lanczos",
916 1,
917 16
918 ],
919 "widgets_values_named": {
920 "upscale_method": "lanczos",
921 "megapixels": 1,
922 "resolution_steps": 16
923 }
924 },
925 {
926 "id": 79,
927 "type": "PreviewImage",
928 "pos": [
929 810,
930 640
931 ],
932 "size": [
933 140,
934 30
935 ],
936 "flags": [],
937 "order": 16,
938 "mode": 0,
939 "inputs": [
940 {
941 "name": "images",
942 "type": "IMAGE",
943 "link": 147
944 }
945 ],
946 "outputs": [
947 {
948 "name": "images",
949 "type": "IMAGE",
950 "links": [
951 148,
952 150
953 ]
954 }
955 ],
956 "properties": {
957 "Node name for S&R": "PreviewImage"
958 }
959 },
960 {
961 "id": 80,
962 "type": "ImageCompare",
963 "pos": [
964 2810,
965 -370
966 ],
967 "size": [
968 930,
969 780
970 ],
971 "flags": [],
972 "order": 24,
973 "mode": 0,
974 "inputs": [
975 {
976 "name": "image_a",
977 "shape": 7,
978 "type": "IMAGE",
979 "link": 150
980 },
981 {
982 "name": "image_b",
983 "shape": 7,
984 "type": "IMAGE",
985 "link": 153
986 }
987 ],
988 "outputs": [],
989 "properties": {
990 "Node name for S&R": "ImageCompare"
991 },
992 "widgets_values": [
993 [
994 "",
995 ""
996 ]
997 ],
998 "widgets_values_named": []
999 },
1000 {
1001 "id": 81,
1002 "type": "Painter",
1003 "pos": [
1004 -430,
1005 1120
1006 ],
1007 "size": [
1008 450,
1009 550
1010 ],
1011 "flags": [],
1012 "order": 5,
1013 "mode": 0,
1014 "inputs": [
1015 {
1016 "name": "image",
1017 "shape": 7,
1018 "type": "IMAGE",
1019 "link": null
1020 }
1021 ],
1022 "outputs": [
1023 {
1024 "name": "IMAGE",
1025 "type": "IMAGE",
1026 "links": null
1027 },
1028 {
1029 "name": "MASK",
1030 "type": "MASK",
1031 "links": null
1032 }
1033 ],
1034 "properties": {
1035 "Node name for S&R": "Painter"
1036 },
1037 "widgets_values": [
1038 "painter-81-1793022443249.png [input]",
1039 512,
1040 512,
1041 "#000000"
1042 ],
1043 "widgets_values_named": {
1044 "mask": "painter-81-1793022443249.png [input]",
1045 "width": 512,
1046 "height": 512,
1047 "bg_color": "#000000"
1048 }
1049 },
1050 {
1051 "id": 83,
1052 "type": "MarkdownNote",
1053 "pos": [
1054 -1230,
1055 -520
1056 ],
1057 "size": [
1058 710,
1059 890
1060 ],
1061 "flags": [],
1062 "order": 6,
1063 "mode": 0,
1064 "inputs": [],
1065 "outputs": [],
1066 "title": "Note: About",
1067 "properties": [],
1068 "widgets_values": [
1069 "## MOSS-Image: Color & Depth Control from a Photo\n\n**Input Assets**\n- [fashion_portrait_red_canyon.png](https://raw.githubusercontent.com/Comfy-Org/workflow_templates/refs/heads/main/input/fashion_portrait_red_canyon.png) — required workflow input (`input/fashion_portrait_red_canyon.png`)\n\nDrop in a photo and the graph estimates its geometry, then generates a new image that keeps the same pose and framing. No map to prepare by hand.\n\n**How it works**\n\n1. **Load Image** (node 55) - the character reference. It is scaled to 1.0 MP, 16 px aligned (node 77), and drives the output size through **Get Image Size** (node 61) -> **Empty Latent** (node 54).\n2. **Geometry Estimation (MoGe 3)** subgraph - `Load MoGe Model` (`moge_3_vitg_fp16`) -> `Run MoGe Inference` -> `Render MoGe Geometry`. Its output is the `depth_map` of **MOSS-Image Color/Depth Control** (node 53).\n3. **Positive Prompt** (node 5) describes the character and the scene. Geometry comes from the render, everything else - identity, wardrobe, material, light, style - comes from the text.\n4. **MOSS-Image Color/Depth Control** (node 53) injects the map into the image tokens; the LoRA loaded just before it (`moss_image_color_depth_control.safetensors`, strength 1.0) is what makes the model read it. Without the LoRA the node is a no-op.\n5. **Save / Compare**: `VAE Decode` -> preview, plus **Compare Images** (node 80) holding the generated frame next to the rendered map.\n\n**Settings**\n\n`strength` 1.0 is the trained strength; `start_percent` / `end_percent` pick the part of the run that is controlled (0 to 0.6 here: the layout is fixed, the last steps render freely). Sampling follows the MOSS-Image control test graph: 25 steps, CFG 3, `er_sde` / `simple`, shift 5, skip layer guidance on layer 24, temporal score rescaling 0.95.\n\n**Useful knobs**\n\n- `Render MoGe Geometry` in the subgraph is set to `mask`: only the silhouette is used. Switch it to `depth` (`normalization = min_max`) when you want the face profile, shoulders and background falloff to be controlled too - the pose gets tighter, the prompt has less room.\n- `end_percent` 1.0 pins geometry to the last step; 0.5 frees the surface and lighting. For a mask-derived map 0.6 is a good middle.\n- The reference has **pointed elf ears**, and the geometry keeps them. Either keep that in the prompt (`pointed elf ears`) or hide them (`ears covered by hair`).\n- **Painter** (node 81) is in the graph for painting a map by hand: white near / black far for depth, one flat colour per region for colour. Connect its `IMAGE` to `depth_map` or `color_map` to override the estimate.\n- `color_map` is optional and currently unconnected. One flat colour per region, colours only act as region IDs, black means \"unspecified\"; it must match the output size (1024 x 1024 here).\n"
1070 ],
1071 "widgets_values_named": {
1072 "text": "## MOSS-Image: Color & Depth Control from a Photo\n\n**Input Assets**\n- [fashion_portrait_red_canyon.png](https://raw.githubusercontent.com/Comfy-Org/workflow_templates/refs/heads/main/input/fashion_portrait_red_canyon.png) — required workflow input (`input/fashion_portrait_red_canyon.png`)\n\nDrop in a photo and the graph estimates its geometry, then generates a new image that keeps the same pose and framing. No map to prepare by hand.\n\n**How it works**\n\n1. **Load Image** (node 55) - the character reference. It is scaled to 1.0 MP, 16 px aligned (node 77), and drives the output size through **Get Image Size** (node 61) -> **Empty Latent** (node 54).\n2. **Geometry Estimation (MoGe 3)** subgraph - `Load MoGe Model` (`moge_3_vitg_fp16`) -> `Run MoGe Inference` -> `Render MoGe Geometry`. Its output is the `depth_map` of **MOSS-Image Color/Depth Control** (node 53).\n3. **Positive Prompt** (node 5) describes the character and the scene. Geometry comes from the render, everything else - identity, wardrobe, material, light, style - comes from the text.\n4. **MOSS-Image Color/Depth Control** (node 53) injects the map into the image tokens; the LoRA loaded just before it (`moss_image_color_depth_control.safetensors`, strength 1.0) is what makes the model read it. Without the LoRA the node is a no-op.\n5. **Save / Compare**: `VAE Decode` -> preview, plus **Compare Images** (node 80) holding the generated frame next to the rendered map.\n\n**Settings**\n\n`strength` 1.0 is the trained strength; `start_percent` / `end_percent` pick the part of the run that is controlled (0 to 0.6 here: the layout is fixed, the last steps render freely). Sampling follows the MOSS-Image control test graph: 25 steps, CFG 3, `er_sde` / `simple`, shift 5, skip layer guidance on layer 24, temporal score rescaling 0.95.\n\n**Useful knobs**\n\n- `Render MoGe Geometry` in the subgraph is set to `mask`: only the silhouette is used. Switch it to `depth` (`normalization = min_max`) when you want the face profile, shoulders and background falloff to be controlled too - the pose gets tighter, the prompt has less room.\n- `end_percent` 1.0 pins geometry to the last step; 0.5 frees the surface and lighting. For a mask-derived map 0.6 is a good middle.\n- The reference has **pointed elf ears**, and the geometry keeps them. Either keep that in the prompt (`pointed elf ears`) or hide them (`ears covered by hair`).\n- **Painter** (node 81) is in the graph for painting a map by hand: white near / black far for depth, one flat colour per region for colour. Connect its `IMAGE` to `depth_map` or `color_map` to override the estimate.\n- `color_map` is optional and currently unconnected. One flat colour per region, colours only act as region IDs, black means \"unspecified\"; it must match the output size (1024 x 1024 here).\n"
1073 },
1074 "color": "#222",
1075 "bgcolor": "#000"
1076 },
1077 {
1078 "id": 84,
1079 "type": "MarkdownNote",
1080 "pos": [
1081 -1970,
1082 -520
1083 ],
1084 "size": [
1085 520,
1086 1250
1087 ],
1088 "flags": [],
1089 "order": 7,
1090 "mode": 0,
1091 "inputs": [],
1092 "outputs": [],
1093 "title": "Note: Model Links",
1094 "properties": [],
1095 "widgets_values": [
1096 "## Model Links\n\n- [Hugging Face:Comfy-Org/MOSS-Image](https://huggingface.co/Comfy-Org/MOSS-Image)\n- [Hugging Face:Comfy-Org/MoGe](https://huggingface.co/Comfy-Org/MoGe) (geometry estimation)\n- Upstream control adapter: darask0/MOSS-Image-color-depth-control (Hugging Face repo is gated — sign in to view)\n\n**ModelScope mirrors** (alternative repo location)\n\n- [ModelScope:Comfy-Org/MOSS-Image](https://modelscope.cn/models/Comfy-Org/MOSS-Image)\n- [ModelScope:Comfy-Org/MoGe](https://modelscope.cn/models/Comfy-Org/MoGe)\n\n**diffusion_models**\n\n- [moss_image_sft_int8_convrot.safetensors](https://huggingface.co/Comfy-Org/MOSS-Image/resolve/main/diffusion_models/moss_image_sft_int8_convrot.safetensors) - 5.41 GB, the checkpoint this graph loads\n- [moss_image_sft_bf16.safetensors](https://huggingface.co/Comfy-Org/MOSS-Image/resolve/main/diffusion_models/moss_image_sft_bf16.safetensors) - 10.16 GB, higher precision, slower\n- [moss_image_base_int8_convrot.safetensors](https://huggingface.co/Comfy-Org/MOSS-Image/resolve/main/diffusion_models/moss_image_base_int8_convrot.safetensors) - 5.41 GB, the base checkpoint runs in the same graph\n\n**text_encoders**\n\n- [qwen3.5_9b_int8_convrot.safetensors](https://huggingface.co/Comfy-Org/MOSS-Image/resolve/main/text_encoders/qwen3.5_9b_int8_convrot.safetensors) - 9.75 GB, the encoder this graph loads\n- [qwen3.5_9b_w4a8_gptq.safetensors](https://huggingface.co/Comfy-Org/MOSS-Image/resolve/main/text_encoders/qwen3.5_9b_w4a8_gptq.safetensors) - 7.34 GB, drop-in swap, saves 2.4 GB\n- [qwen3.5_9b_bf16.safetensors](https://huggingface.co/Comfy-Org/MOSS-Image/resolve/main/text_encoders/qwen3.5_9b_bf16.safetensors) - 19.31 GB, full precision\n\n**vae**\n\n- [flux2-vae_small.safetensors](https://huggingface.co/Comfy-Org/MOSS-Image/resolve/main/vae/flux2-vae_small.safetensors) - 249 MB, the one this graph loads\n- [flux2-vae.safetensors](https://huggingface.co/Comfy-Org/MOSS-Image/resolve/main/vae/flux2-vae.safetensors) - 336 MB, full size, pixel-level differences only\n\n**loras**\n\n- [moss_image_color_depth_control.safetensors](https://huggingface.co/Comfy-Org/MOSS-Image/resolve/main/loras/moss_image_color_depth_control.safetensors) - 313 MB, `LoraLoaderModelOnly` at strength 1.0\n\n**geometry_estimation**\n\n- [moge_3_vitg_fp16.safetensors](https://huggingface.co/Comfy-Org/MoGe/resolve/main/geometry_estimation/moge_3_vitg_fp16.safetensors) - 2.50 GB, the depth estimator used by the subgraph\n- [moge_3_vitl_fp16.safetensors](https://huggingface.co/Comfy-Org/MoGe/resolve/main/geometry_estimation/moge_3_vitl_fp16.safetensors) - 741 MB, the lighter ViT-L variant\n\n**Disk footprint**: the graph as shipped needs **18.23 GB** (18,226,010,396 bytes) (5.41 + 9.75 + 0.25 + 0.31 + 2.50). Swapping the text encoder to `w4a8_gptq` brings it to **15.82 GB**; a bf16 checkpoint and encoder instead push it past 32 GB.\n\n## Model Storage Location\n\n```\n📂 ComfyUI/\n├── 📂 models/\n│ ├── 📂 diffusion_models/\n│ │ └── moss_image_sft_int8_convrot.safetensors 5.41 GB\n│ ├── 📂 text_encoders/\n│ │ └── qwen3.5_9b_int8_convrot.safetensors 9.75 GB\n│ ├── 📂 vae/\n│ │ └── flux2-vae_small.safetensors 249 MB\n│ ├── 📂 loras/\n│ │ └── moss_image_color_depth_control.safetensors 313 MB\n│ └── 📂 geometry_estimation/\n│ └── moge_3_vitg_fp16.safetensors 2.50 GB\n```\n\nCore support (`MOSSImageControl`, MoGe nodes) ships from ComfyUI **0.43.0**.\n\n## Report Issue\n\nNote: Please update ComfyUI first ([guide](https://docs.comfy.org/installation/update_comfyui)) and prepare required models. Desktop/Cloud updates follow stable releases, so some nightly-supported models may not be available yet.\n\n- Cannot run / runtime errors: [ComfyUI/issues](https://github.com/comfyanonymous/ComfyUI/issues)\n- UI / frontend issues: [ComfyUI_frontend/issues](https://github.com/Comfy-Org/ComfyUI_frontend/issues)\n- Workflow issues: [workflow_templates/issues](https://github.com/Comfy-Org/workflow_templates/issues)\n"
1097 ],
1098 "widgets_values_named": {
1099 "text": "## Model Links\n\n- [Hugging Face:Comfy-Org/MOSS-Image](https://huggingface.co/Comfy-Org/MOSS-Image)\n- [Hugging Face:Comfy-Org/MoGe](https://huggingface.co/Comfy-Org/MoGe) (geometry estimation)\n- Upstream control adapter: darask0/MOSS-Image-color-depth-control (Hugging Face repo is gated — sign in to view)\n\n**ModelScope mirrors** (alternative repo location)\n\n- [ModelScope:Comfy-Org/MOSS-Image](https://modelscope.cn/models/Comfy-Org/MOSS-Image)\n- [ModelScope:Comfy-Org/MoGe](https://modelscope.cn/models/Comfy-Org/MoGe)\n\n**diffusion_models**\n\n- [moss_image_sft_int8_convrot.safetensors](https://huggingface.co/Comfy-Org/MOSS-Image/resolve/main/diffusion_models/moss_image_sft_int8_convrot.safetensors) - 5.41 GB, the checkpoint this graph loads\n- [moss_image_sft_bf16.safetensors](https://huggingface.co/Comfy-Org/MOSS-Image/resolve/main/diffusion_models/moss_image_sft_bf16.safetensors) - 10.16 GB, higher precision, slower\n- [moss_image_base_int8_convrot.safetensors](https://huggingface.co/Comfy-Org/MOSS-Image/resolve/main/diffusion_models/moss_image_base_int8_convrot.safetensors) - 5.41 GB, the base checkpoint runs in the same graph\n\n**text_encoders**\n\n- [qwen3.5_9b_int8_convrot.safetensors](https://huggingface.co/Comfy-Org/MOSS-Image/resolve/main/text_encoders/qwen3.5_9b_int8_convrot.safetensors) - 9.75 GB, the encoder this graph loads\n- [qwen3.5_9b_w4a8_gptq.safetensors](https://huggingface.co/Comfy-Org/MOSS-Image/resolve/main/text_encoders/qwen3.5_9b_w4a8_gptq.safetensors) - 7.34 GB, drop-in swap, saves 2.4 GB\n- [qwen3.5_9b_bf16.safetensors](https://huggingface.co/Comfy-Org/MOSS-Image/resolve/main/text_encoders/qwen3.5_9b_bf16.safetensors) - 19.31 GB, full precision\n\n**vae**\n\n- [flux2-vae_small.safetensors](https://huggingface.co/Comfy-Org/MOSS-Image/resolve/main/vae/flux2-vae_small.safetensors) - 249 MB, the one this graph loads\n- [flux2-vae.safetensors](https://huggingface.co/Comfy-Org/MOSS-Image/resolve/main/vae/flux2-vae.safetensors) - 336 MB, full size, pixel-level differences only\n\n**loras**\n\n- [moss_image_color_depth_control.safetensors](https://huggingface.co/Comfy-Org/MOSS-Image/resolve/main/loras/moss_image_color_depth_control.safetensors) - 313 MB, `LoraLoaderModelOnly` at strength 1.0\n\n**geometry_estimation**\n\n- [moge_3_vitg_fp16.safetensors](https://huggingface.co/Comfy-Org/MoGe/resolve/main/geometry_estimation/moge_3_vitg_fp16.safetensors) - 2.50 GB, the depth estimator used by the subgraph\n- [moge_3_vitl_fp16.safetensors](https://huggingface.co/Comfy-Org/MoGe/resolve/main/geometry_estimation/moge_3_vitl_fp16.safetensors) - 741 MB, the lighter ViT-L variant\n\n**Disk footprint**: the graph as shipped needs **18.23 GB** (18,226,010,396 bytes) (5.41 + 9.75 + 0.25 + 0.31 + 2.50). Swapping the text encoder to `w4a8_gptq` brings it to **15.82 GB**; a bf16 checkpoint and encoder instead push it past 32 GB.\n\n## Model Storage Location\n\n```\n📂 ComfyUI/\n├── 📂 models/\n│ ├── 📂 diffusion_models/\n│ │ └── moss_image_sft_int8_convrot.safetensors 5.41 GB\n│ ├── 📂 text_encoders/\n│ │ └── qwen3.5_9b_int8_convrot.safetensors 9.75 GB\n│ ├── 📂 vae/\n│ │ └── flux2-vae_small.safetensors 249 MB\n│ ├── 📂 loras/\n│ │ └── moss_image_color_depth_control.safetensors 313 MB\n│ └── 📂 geometry_estimation/\n│ └── moge_3_vitg_fp16.safetensors 2.50 GB\n```\n\nCore support (`MOSSImageControl`, MoGe nodes) ships from ComfyUI **0.43.0**.\n\n## Report Issue\n\nNote: Please update ComfyUI first ([guide](https://docs.comfy.org/installation/update_comfyui)) and prepare required models. Desktop/Cloud updates follow stable releases, so some nightly-supported models may not be available yet.\n\n- Cannot run / runtime errors: [ComfyUI/issues](https://github.com/comfyanonymous/ComfyUI/issues)\n- UI / frontend issues: [ComfyUI_frontend/issues](https://github.com/Comfy-Org/ComfyUI_frontend/issues)\n- Workflow issues: [workflow_templates/issues](https://github.com/Comfy-Org/workflow_templates/issues)\n"
1100 },
1101 "color": "#222",
1102 "bgcolor": "#000"
1103 },
1104 {
1105 "id": 85,
1106 "type": "SaveImage",
1107 "pos": [
1108 1910,
1109 -370
1110 ],
1111 "size": [
1112 840,
1113 770
1114 ],
1115 "flags": [],
1116 "order": 23,
1117 "mode": 0,
1118 "inputs": [
1119 {
1120 "name": "images",
1121 "type": "IMAGE",
1122 "link": 151
1123 }
1124 ],
1125 "outputs": [
1126 {
1127 "name": "images",
1128 "type": "IMAGE",
1129 "links": [
1130 153
1131 ]
1132 }
1133 ],
1134 "properties": {
1135 "Node name for S&R": "SaveImage"
1136 },
1137 "widgets_values": [
1138 "image_moss_image_color_depth_control"
1139 ],
1140 "widgets_values_named": {
1141 "filename_prefix": "image_moss_image_color_depth_control"
1142 }
1143 }
1144 ],
1145 "links": [
1146 [
1147 3,
1148 3,
1149 0,
1150 5,
1151 0,
1152 "CLIP"
1153 ],
1154 [
1155 4,
1156 3,
1157 0,
1158 6,
1159 0,
1160 "CLIP"
1161 ],
1162 [
1163 9,
1164 4,
1165 0,
1166 9,
1167 1,
1168 "VAE"
1169 ],
1170 [
1171 25,
1172 20,
1173 0,
1174 9,
1175 0,
1176 "LATENT"
1177 ],
1178 [
1179 27,
1180 22,
1181 0,
1182 20,
1183 4,
1184 "SIGMAS"
1185 ],
1186 [
1187 35,
1188 2,
1189 0,
1190 20,
1191 0,
1192 "MODEL"
1193 ],
1194 [
1195 36,
1196 2,
1197 0,
1198 22,
1199 0,
1200 "MODEL"
1201 ],
1202 [
1203 59,
1204 16,
1205 0,
1206 36,
1207 0,
1208 "MODEL"
1209 ],
1210 [
1211 69,
1212 36,
1213 0,
1214 2,
1215 0,
1216 "MODEL"
1217 ],
1218 [
1219 91,
1220 1,
1221 0,
1222 49,
1223 0,
1224 "MODEL"
1225 ],
1226 [
1227 94,
1228 21,
1229 0,
1230 20,
1231 3,
1232 "SAMPLER"
1233 ],
1234 [
1235 99,
1236 5,
1237 0,
1238 53,
1239 0,
1240 "CONDITIONING"
1241 ],
1242 [
1243 100,
1244 6,
1245 0,
1246 53,
1247 1,
1248 "CONDITIONING"
1249 ],
1250 [
1251 101,
1252 53,
1253 0,
1254 20,
1255 1,
1256 "CONDITIONING"
1257 ],
1258 [
1259 102,
1260 53,
1261 1,
1262 20,
1263 2,
1264 "CONDITIONING"
1265 ],
1266 [
1267 105,
1268 4,
1269 0,
1270 53,
1271 2,
1272 "VAE"
1273 ],
1274 [
1275 106,
1276 54,
1277 0,
1278 20,
1279 5,
1280 "LATENT"
1281 ],
1282 [
1283 117,
1284 49,
1285 0,
1286 16,
1287 0,
1288 "MODEL"
1289 ],
1290 [
1291 125,
1292 61,
1293 0,
1294 54,
1295 0,
1296 "INT"
1297 ],
1298 [
1299 126,
1300 61,
1301 1,
1302 54,
1303 1,
1304 "INT"
1305 ],
1306 [
1307 138,
1308 55,
1309 0,
1310 77,
1311 0,
1312 "IMAGE"
1313 ],
1314 [
1315 140,
1316 77,
1317 0,
1318 76,
1319 0,
1320 "IMAGE"
1321 ],
1322 [
1323 141,
1324 77,
1325 0,
1326 61,
1327 0,
1328 "IMAGE"
1329 ],
1330 [
1331 147,
1332 76,
1333 0,
1334 79,
1335 0,
1336 "IMAGE"
1337 ],
1338 [
1339 148,
1340 79,
1341 0,
1342 53,
1343 4,
1344 "IMAGE"
1345 ],
1346 [
1347 150,
1348 79,
1349 0,
1350 80,
1351 0,
1352 "IMAGE"
1353 ],
1354 [
1355 151,
1356 9,
1357 0,
1358 85,
1359 0,
1360 "IMAGE"
1361 ],
1362 [
1363 153,
1364 85,
1365 0,
1366 80,
1367 1,
1368 "IMAGE"
1369 ]
1370 ],
1371 "groups": [
1372 {
1373 "id": 1,
1374 "title": "Models",
1375 "bounding": [
1376 -460,
1377 -570,
1378 550,
1379 950
1380 ],
1381 "color": "#3f789e",
1382 "flags": []
1383 },
1384 {
1385 "id": 2,
1386 "title": "Conditioning",
1387 "bounding": [
1388 120,
1389 -140,
1390 970,
1391 520
1392 ],
1393 "color": "#A88",
1394 "flags": []
1395 },
1396 {
1397 "id": 3,
1398 "title": "Group",
1399 "bounding": [
1400 120,
1401 -570,
1402 970,
1403 400
1404 ],
1405 "color": "#3f789e",
1406 "flags": []
1407 },
1408 {
1409 "id": 4,
1410 "title": "Sampling",
1411 "bounding": [
1412 1120,
1413 -570,
1414 740,
1415 950
1416 ],
1417 "color": "#3f789e",
1418 "flags": []
1419 },
1420 {
1421 "id": 5,
1422 "title": "Control Images",
1423 "bounding": [
1424 -460,
1425 410,
1426 1550,
1427 640
1428 ],
1429 "color": "#A88",
1430 "flags": []
1431 },
1432 {
1433 "id": 6,
1434 "title": "Image Size",
1435 "bounding": [
1436 1120,
1437 410,
1438 740,
1439 640
1440 ],
1441 "color": "#3f789e",
1442 "flags": []
1443 }
1444 ],
1445 "definitions": {
1446 "subgraphs": [
1447 {
1448 "id": "bd7417be-5473-468c-99f1-78759bff8966",
1449 "version": 1,
1450 "state": {
1451 "lastGroupId": 6,
1452 "lastNodeId": 85,
1453 "lastLinkId": 153,
1454 "lastRerouteId": 0
1455 },
1456 "revision": 0,
1457 "config": [],
1458 "name": "Geometry Estimation (MoGe 3)",
1459 "inputNode": {
1460 "id": -10,
1461 "bounding": [
1462 -4222.843118848306,
1463 5870.2764474883315,
1464 135.919921875,
1465 148
1466 ]
1467 },
1468 "outputNode": {
1469 "id": -20,
1470 "bounding": [
1471 -3020.2786458333335,
1472 5890.562500000001,
1473 128,
1474 68
1475 ]
1476 },
1477 "inputs": [
1478 {
1479 "id": "79d73cb8-4bea-46a4-b51f-667917823086",
1480 "name": "image",
1481 "type": "IMAGE",
1482 "linkIds": [
1483 131
1484 ],
1485 "localized_name": "image",
1486 "pos": [
1487 -4110.923196973306,
1488 5894.2764474883315
1489 ]
1490 },
1491 {
1492 "id": "7433a2b5-b40a-42d0-84f7-78d05c4fb561",
1493 "name": "resolution_level",
1494 "type": "INT",
1495 "linkIds": [
1496 133
1497 ],
1498 "pos": [
1499 -4110.923196973306,
1500 5914.2764474883315
1501 ]
1502 },
1503 {
1504 "id": "7d118489-73ef-46ca-b118-26c719144ae9",
1505 "name": "batch_size",
1506 "type": "INT",
1507 "linkIds": [
1508 136
1509 ],
1510 "pos": [
1511 -4110.923196973306,
1512 5934.2764474883315
1513 ]
1514 },
1515 {
1516 "id": "17b4dad4-b955-4c27-b929-61e89bb70a61",
1517 "name": "output",
1518 "type": "COMBO",
1519 "linkIds": [
1520 134
1521 ],
1522 "pos": [
1523 -4110.923196973306,
1524 5954.2764474883315
1525 ]
1526 },
1527 {
1528 "id": "99726d76-065b-4f44-abb7-37e47bafe353",
1529 "name": "model_name",
1530 "type": "COMBO",
1531 "linkIds": [
1532 135
1533 ],
1534 "pos": [
1535 -4110.923196973306,
1536 5974.2764474883315
1537 ]
1538 }
1539 ],
1540 "outputs": [
1541 {
1542 "id": "5cbd5fcf-5810-4e2d-a5fc-3b4ba3577d9a",
1543 "name": "IMAGE",
1544 "type": "IMAGE",
1545 "linkIds": [
1546 132
1547 ],
1548 "localized_name": "IMAGE",
1549 "pos": [
1550 -2996.2786458333335,
1551 5914.562500000001
1552 ]
1553 }
1554 ],
1555 "widgets": [],
1556 "nodes": [
1557 {
1558 "id": 73,
1559 "type": "LoadMoGeModel",
1560 "pos": [
1561 -3990,
1562 5840
1563 ],
1564 "size": [
1565 270,
1566 70
1567 ],
1568 "flags": [],
1569 "order": 0,
1570 "mode": 0,
1571 "inputs": [
1572 {
1573 "localized_name": "model_name",
1574 "name": "model_name",
1575 "type": "COMBO",
1576 "widget": {
1577 "name": "model_name"
1578 },
1579 "link": 135
1580 }
1581 ],
1582 "outputs": [
1583 {
1584 "localized_name": "MOGE_MODEL",
1585 "name": "MOGE_MODEL",
1586 "type": "MOGE_MODEL",
1587 "links": [
1588 129
1589 ]
1590 }
1591 ],
1592 "properties": {
1593 "Node name for S&R": "LoadMoGeModel",
1594 "models": [
1595 {
1596 "name": "moge_3_vitg_fp16.safetensors",
1597 "url": "https://huggingface.co/Comfy-Org/MoGe/resolve/main/geometry_estimation/moge_3_vitg_fp16.safetensors",
1598 "directory": "geometry_estimation"
1599 }
1600 ]
1601 },
1602 "widgets_values": [
1603 "moge_3_vitg_fp16.safetensors"
1604 ],
1605 "widgets_values_named": {
1606 "model_name": "moge_3_vitg_fp16.safetensors"
1607 }
1608 },
1609 {
1610 "id": 74,
1611 "type": "MoGeInference",
1612 "pos": [
1613 -3670,
1614 5840
1615 ],
1616 "size": [
1617 270,
1618 200
1619 ],
1620 "flags": [],
1621 "order": 1,
1622 "mode": 0,
1623 "inputs": [
1624 {
1625 "localized_name": "moge_model",
1626 "name": "moge_model",
1627 "type": "MOGE_MODEL",
1628 "link": 129
1629 },
1630 {
1631 "localized_name": "image",
1632 "name": "image",
1633 "type": "IMAGE",
1634 "link": 131
1635 },
1636 {
1637 "localized_name": "resolution_level",
1638 "name": "resolution_level",
1639 "type": "INT",
1640 "widget": {
1641 "name": "resolution_level"
1642 },
1643 "link": 133
1644 },
1645 {
1646 "localized_name": "batch_size",
1647 "name": "batch_size",
1648 "type": "INT",
1649 "widget": {
1650 "name": "batch_size"
1651 },
1652 "link": 136
1653 }
1654 ],
1655 "outputs": [
1656 {
1657 "localized_name": "moge_geometry",
1658 "name": "moge_geometry",
1659 "type": "MOGE_GEOMETRY",
1660 "links": [
1661 130
1662 ]
1663 }
1664 ],
1665 "properties": {
1666 "Node name for S&R": "MoGeInference"
1667 },
1668 "widgets_values": [
1669 9,
1670 0,
1671 4,
1672 true,
1673 true,
1674 3
1675 ],
1676 "widgets_values_named": {
1677 "resolution_level": 9,
1678 "fov_x_degrees": 0,
1679 "batch_size": 4,
1680 "force_projection": true,
1681 "apply_mask": true,
1682 "refine_steps": 3
1683 }
1684 },
1685 {
1686 "id": 75,
1687 "type": "MoGeRender",
1688 "pos": [
1689 -3350,
1690 5840
1691 ],
1692 "size": [
1693 270,
1694 70
1695 ],
1696 "flags": [],
1697 "order": 2,
1698 "mode": 0,
1699 "inputs": [
1700 {
1701 "localized_name": "moge_geometry",
1702 "name": "moge_geometry",
1703 "type": "MOGE_GEOMETRY",
1704 "link": 130
1705 },
1706 {
1707 "localized_name": "output",
1708 "name": "output",
1709 "type": "COMBO",
1710 "widget": {
1711 "name": "output"
1712 },
1713 "link": 134
1714 }
1715 ],
1716 "outputs": [
1717 {
1718 "localized_name": "IMAGE",
1719 "name": "IMAGE",
1720 "type": "IMAGE",
1721 "links": [
1722 132
1723 ]
1724 }
1725 ],
1726 "properties": {
1727 "Node name for S&R": "MoGeRender"
1728 },
1729 "widgets_values": [
1730 "mask"
1731 ],
1732 "widgets_values_named": {
1733 "output": "mask"
1734 }
1735 }
1736 ],
1737 "groups": [],
1738 "links": [
1739 {
1740 "id": 129,
1741 "origin_id": 73,
1742 "origin_slot": 0,
1743 "target_id": 74,
1744 "target_slot": 0,
1745 "type": "MOGE_MODEL"
1746 },
1747 {
1748 "id": 130,
1749 "origin_id": 74,
1750 "origin_slot": 0,
1751 "target_id": 75,
1752 "target_slot": 0,
1753 "type": "MOGE_GEOMETRY"
1754 },
1755 {
1756 "id": 131,
1757 "origin_id": -10,
1758 "origin_slot": 0,
1759 "target_id": 74,
1760 "target_slot": 1,
1761 "type": "IMAGE"
1762 },
1763 {
1764 "id": 132,
1765 "origin_id": 75,
1766 "origin_slot": 0,
1767 "target_id": -20,
1768 "target_slot": 0,
1769 "type": "IMAGE"
1770 },
1771 {
1772 "id": 133,
1773 "origin_id": -10,
1774 "origin_slot": 1,
1775 "target_id": 74,
1776 "target_slot": 2,
1777 "type": "INT"
1778 },
1779 {
1780 "id": 134,
1781 "origin_id": -10,
1782 "origin_slot": 3,
1783 "target_id": 75,
1784 "target_slot": 1,
1785 "type": "COMBO"
1786 },
1787 {
1788 "id": 135,
1789 "origin_id": -10,
1790 "origin_slot": 4,
1791 "target_id": 73,
1792 "target_slot": 0,
1793 "type": "COMBO"
1794 },
1795 {
1796 "id": 136,
1797 "origin_id": -10,
1798 "origin_slot": 2,
1799 "target_id": 74,
1800 "target_slot": 3,
1801 "type": "INT"
1802 }
1803 ],
1804 "extra": []
1805 }
1806 ]
1807 },
1808 "config": [],
1809 "extra": {
1810 "ds": {
1811 "scale": 1.028382046552393,
1812 "offset": [
1813 917.8564453584381,
1814 371.2914554922773
1815 ]
1816 },
1817 "frontendVersion": "1.57.6",
1818 "VHS_latentpreview": false,
1819 "VHS_latentpreviewrate": 0,
1820 "VHS_MetadataImage": true,
1821 "VHS_KeepIntermediate": true
1822 },
1823 "version": 0.4
1824}