JCscrew commited on
Commit
366fd1c
ยท
verified ยท
1 Parent(s): 4f494a8

Upload 2 files

Browse files
Files changed (2) hide show
  1. Single_Posture_ko.json +1 -0
  2. script_ko.sh +336 -0
Single_Posture_ko.json ADDED
@@ -0,0 +1 @@
 
 
1
+ {"id":"1151fdc5-60c4-44b9-ba71-b927bf4c90bc","revision":1,"last_node_id":810,"last_link_id":875,"nodes":[{"id":555,"type":"CLIPSetLastLayer","pos":[4366.049429367366,1208.5803615097361],"size":[289.3587951660156,58],"flags":{},"order":53,"mode":0,"inputs":[{"localized_name":"clip","name":"clip","type":"CLIP","link":320},{"localized_name":"stop_at_clip_layer","name":"stop_at_clip_layer","type":"INT","widget":{"name":"stop_at_clip_layer"}}],"outputs":[{"localized_name":"CLIP","name":"CLIP","type":"CLIP","slot_index":0,"links":[657]}],"title":"CLIP ์Šคํ‚ต ์„ค์ •","properties":{"cnr_id":"comfy-core","ver":"0.3.65","Node name for S&R":"CLIPSetLastLayer"},"widgets_values":[-2],"color":"#322","bgcolor":"#533"},{"id":576,"type":"LatentUpscaleBy","pos":[4691.603200949492,903.6574842119815],"size":[264.64105224609375,82],"flags":{},"order":63,"mode":0,"inputs":[{"localized_name":"samples","name":"samples","type":"LATENT","link":425},{"localized_name":"upscale_method","name":"upscale_method","type":"COMBO","widget":{"name":"upscale_method"}},{"localized_name":"scale_by","name":"scale_by","type":"FLOAT","widget":{"name":"scale_by"}}],"outputs":[{"localized_name":"LATENT","name":"LATENT","type":"LATENT","slot_index":0,"links":[426]}],"title":"Latent Upscale 1.5x","properties":{"cnr_id":"comfy-core","ver":"0.3.65","Node name for S&R":"LatentUpscaleBy"},"widgets_values":["bicubic",1.5],"color":"#322","bgcolor":"#533"},{"id":507,"type":"Note","pos":[4142.66064453125,2066.015625],"size":[580,100],"flags":{},"order":0,"mode":0,"inputs":[],"outputs":[],"title":"๐Ÿ“Œ ๊ธ/๋ถ€์ • ํ”„๋กฌํ”„ํŠธ ์„ค์ •","properties":{},"widgets_values":["โœ… ๊ธ์ • ํ”„๋กฌํ”„ํŠธ: ์ด๋ฏธ์ง€ ์Šคํƒ€์ผ, ๋ฐฐ๊ฒฝ ๋ฐ ํ•„์ˆ˜ ํ”„๋กฌํ”„ํŠธ๋ฅผ ์„ค์ •ํ•˜๋Š” ๊ณณ\n๐Ÿšซ ๋ถ€์ • ํ”„๋กฌํ”„ํŠธ: ํ•„์š”ํ•œ ๊ฒฝ์šฐ์—๋งŒ ์ž…๋ ฅํ•˜๊ณ , ๋„ˆ๋ฌด ๋งŽ์ด ์ž…๋ ฅํ•˜๋ฉด Illustrious ๊ณ„์—ด ๋ชจ๋ธ์˜ ์ถœ๋ ฅ ํ’ˆ์งˆ์ด ์ €ํ•˜๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค"],"color":"#232","bgcolor":"#353"},{"id":552,"type":"KSampler","pos":[4691.603200949492,1026.070997395577],"size":[267.302490234375,262],"flags":{},"order":61,"mode":0,"inputs":[{"localized_name":"model","name":"model","type":"MODEL","link":866},{"localized_name":"positive","name":"positive","type":"CONDITIONING","link":822},{"localized_name":"negative","name":"negative","type":"CONDITIONING","link":826},{"localized_name":"latent_image","name":"latent_image","type":"LATENT","link":426},{"localized_name":"seed","name":"seed","type":"INT","widget":{"name":"seed"}},{"localized_name":"steps","name":"steps","type":"INT","widget":{"name":"steps"}},{"localized_name":"cfg","name":"cfg","type":"FLOAT","widget":{"name":"cfg"}},{"localized_name":"sampler_name","name":"sampler_name","type":"COMBO","widget":{"name":"sampler_name"}},{"localized_name":"scheduler","name":"scheduler","type":"COMBO","widget":{"name":"scheduler"}},{"localized_name":"denoise","name":"denoise","type":"FLOAT","widget":{"name":"denoise"}}],"outputs":[{"localized_name":"LATENT","name":"LATENT","type":"LATENT","slot_index":0,"links":[833]}],"title":"๊ณ ํ•ด์ƒ๋„ ๋ณด์ •(Hires Fix) ์„ค์ •","properties":{"cnr_id":"comfy-core","ver":"0.3.65","Node name for S&R":"KSampler"},"widgets_values":[786376751932568,"randomize",20,7,"euler_ancestral","karras",0.4],"color":"#322","bgcolor":"#533"},{"id":505,"type":"Note","pos":[4142.66064453125,2843.263916015625],"size":[580,100],"flags":{},"order":1,"mode":0,"inputs":[],"outputs":[],"title":"๐Ÿ“Œ ๊ฐ์ •/๋™์ž‘ ๋žœ๋ค ํ’€ ์„ค์ •","properties":{},"widgets_values":["โ€ข ์—ฌ๊ธฐ์˜ ๋žœ๋ค ํ’€์€ ์ด๋ฏธ์ง€ ์ƒ์„ฑ ์‹œ ๋ฌด์ž‘์œ„๋กœ ํ•˜๋‚˜๋ฅผ ์„ ํƒํ•˜์—ฌ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค\nโ€ข ๋ชฉํ‘œ๋Š” ๋™์ผํ•œ ๊ฐ์ •/๋™์ž‘์„ ์ถœ๋ ฅํ•  ๋•Œ ์ด๋ฏธ์ง€์— ๋ฏธ์„ธํ•œ ๋ณ€ํ™”๋ฅผ ์ฃผ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค\nโ€ข ๋”ฐ๋ผ์„œ, ๋ชจ๋“  ๊ฐ์ •/๋™์ž‘์— ๋ฒ”์šฉ์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ๋‹จ์–ด๋ฅผ ์„ ํƒํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค"],"color":"#232","bgcolor":"#353"},{"id":808,"type":"IPAdapterAdvanced","pos":[5868.581561218039,907.1540194462376],"size":[334.26104736328125,311.9405517578125],"flags":{},"order":56,"mode":4,"inputs":[{"localized_name":"model","name":"model","type":"MODEL","link":862},{"localized_name":"ipadapter","name":"ipadapter","type":"IPADAPTER","link":863},{"localized_name":"image","name":"image","type":"IMAGE","link":864},{"localized_name":"image_negative","name":"image_negative","shape":7,"type":"IMAGE","link":null},{"localized_name":"attn_mask","name":"attn_mask","shape":7,"type":"MASK","link":null},{"localized_name":"clip_vision","name":"clip_vision","shape":7,"type":"CLIP_VISION","link":null},{"localized_name":"weight","name":"weight","type":"FLOAT","widget":{"name":"weight"}},{"localized_name":"weight_type","name":"weight_type","type":"COMBO","widget":{"name":"weight_type"}},{"localized_name":"combine_embeds","name":"combine_embeds","type":"COMBO","widget":{"name":"combine_embeds"}},{"localized_name":"start_at","name":"start_at","type":"FLOAT","widget":{"name":"start_at"}},{"localized_name":"end_at","name":"end_at","type":"FLOAT","widget":{"name":"end_at"}},{"localized_name":"embeds_scaling","name":"embeds_scaling","type":"COMBO","widget":{"name":"embeds_scaling"}}],"outputs":[{"localized_name":"MODEL","name":"MODEL","type":"MODEL","slot_index":0,"links":[865,866]}],"title":"์บ๋ฆญํ„ฐ ์ผ๊ด€์„ฑ ์„ค์ •","properties":{"cnr_id":"comfyui_ipadapter_plus","ver":"2.0.0","Node name for S&R":"IPAdapterAdvanced","aux_id":"cubiq/ComfyUI_IPAdapter_plus"},"widgets_values":[0.7,"linear","concat",0,0.9,"V only"],"color":"#432","bgcolor":"#653"},{"id":50,"type":"KSampler","pos":[4365.495230148616,900.5449611191109],"size":[290.1283264160156,262],"flags":{},"order":59,"mode":0,"inputs":[{"localized_name":"model","name":"model","type":"MODEL","link":865},{"localized_name":"positive","name":"positive","type":"CONDITIONING","link":819},{"localized_name":"negative","name":"negative","type":"CONDITIONING","link":823},{"localized_name":"latent_image","name":"latent_image","type":"LATENT","link":40},{"localized_name":"seed","name":"seed","type":"INT","widget":{"name":"seed"},"link":null},{"localized_name":"steps","name":"steps","type":"INT","widget":{"name":"steps"}},{"localized_name":"cfg","name":"cfg","type":"FLOAT","widget":{"name":"cfg"}},{"localized_name":"sampler_name","name":"sampler_name","type":"COMBO","widget":{"name":"sampler_name"}},{"localized_name":"scheduler","name":"scheduler","type":"COMBO","widget":{"name":"scheduler"}},{"localized_name":"denoise","name":"denoise","type":"FLOAT","widget":{"name":"denoise"}}],"outputs":[{"localized_name":"LATENT","name":"LATENT","type":"LATENT","slot_index":0,"links":[425]}],"title":"์ด๋ฏธ์ง€ ์ƒ์„ฑ ๋ชจ๋ธ ์„ค์ •","properties":{"cnr_id":"comfy-core","ver":"0.3.65","Node name for S&R":"KSampler"},"widgets_values":[501308820819644,"randomize",30,7,"euler_ancestral","karras",1],"color":"#322","bgcolor":"#533"},{"id":511,"type":"Note","pos":[4365.495230148616,765.5400783066109],"size":[289.4764404296875,98.72884368896484],"flags":{},"order":2,"mode":0,"inputs":[],"outputs":[],"title":"๋น„๊ณ /์ฐธ๊ณ  ์‚ฌํ•ญ","properties":{},"widgets_values":["โ€ข ๊ธฐ๋ณธ ๋งค๊ฐœ๋ณ€์ˆ˜๋Š” waiNSFWIllustrious_v150์˜ ์„ค์ •์— ๋”ฐ๋ฆ…๋‹ˆ๋‹ค\nโ€ข ์‹œ๋“œ: ์ธ๋ฌผ ์•ˆ์ •์„ฑ์„ ์œ ์ง€ํ•ด์•ผ ํ•  ๋•Œ, 'Fixed' ๋กœ ๋ณ€๊ฒฝํ•˜์‹ญ์‹œ์˜ค\nโ€ข ์ƒ˜ํ”Œ๋Ÿฌ, ์Šค์ผ€์ค„๋Ÿฌ: ์ด๋ฏธ์ง€ ์ƒ์„ฑ ์Šคํƒ€์ผ์— ์˜ํ–ฅ์„ ๋ฏธ์น˜๋ฏ€๋กœ, ํ˜„์žฌ ์Šคํƒ€์ผ์ด ๋งˆ์Œ์— ๋“ค์ง€ ์•Š์œผ๋ฉด ์กฐ์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค"],"color":"#322","bgcolor":"#533"},{"id":553,"type":"Note","pos":[4691.603200949492,766.9263440752627],"size":[267.4271545410156,97.55703735351562],"flags":{},"order":3,"mode":0,"inputs":[],"outputs":[],"title":"๋น„๊ณ /์ฐธ๊ณ  ์‚ฌํ•ญ","properties":{},"widgets_values":["โ€ข ๊ธฐ๋ณธ ๋งค๊ฐœ๋ณ€์ˆ˜๋Š” waiNSFWIllustrious_v150์˜ ์„ค์ •์— ๋”ฐ๋ฆ…๋‹ˆ๋‹ค\nโ€ข ์‹œ๋“œ: ์ธ๋ฌผ ์•ˆ์ •์„ฑ์„ ์œ ์ง€ํ•ด์•ผ ํ•  ๋•Œ, 'Fixed' ๋กœ ๋ณ€๊ฒฝํ•˜์‹ญ์‹œ์˜ค\nโ€ข ์ƒ˜ํ”Œ๋Ÿฌ, ์Šค์ผ€์ค„๋Ÿฌ: ์ด๋ฏธ์ง€ ์ƒ์„ฑ ์Šคํƒ€์ผ์— ์˜ํ–ฅ์„ ๋ฏธ์น˜๋ฏ€๋กœ, ํ˜„์žฌ ์Šคํƒ€์ผ์ด ๋งˆ์Œ์— ๋“ค์ง€ ์•Š์œผ๋ฉด ์กฐ์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค"],"color":"#322","bgcolor":"#533"},{"id":809,"type":"Note","pos":[5868.581561218039,770.3175326298314],"size":[334.8277282714844,96.24404907226562],"flags":{},"order":4,"mode":0,"inputs":[],"outputs":[],"title":"๋น„๊ณ /์ฐธ๊ณ  ์‚ฌํ•ญ","properties":{},"widgets_values":["โ€ข ๊ธฐ๋ณธ์ ์œผ๋กœ **๋น„ํ™œ์„ฑํ™”**๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋ณด๋ผ์ƒ‰ **๋…ธ๋“œ**๋ฅผ ๋งˆ์šฐ์Šค ์˜ค๋ฅธ์ชฝ ๋ฒ„ํŠผ์œผ๋กœ ํด๋ฆญํ•˜๊ณ  `์šฐํšŒ(bypass)`๋ฅผ ์„ ํƒํ•˜์—ฌ **ํ™œ์„ฑํ™”**ํ•˜์‹ญ์‹œ์˜ค\nโ€ข ํ™œ์„ฑํ™”๋˜๋ฉด, ๊ฐ€์ ธ์˜จ ์ด๋ฏธ์ง€ ์† ์บ๋ฆญํ„ฐ์˜ ์–ผ๊ตด์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์ƒˆ ์ด๋ฏธ์ง€๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ๋™์ผํ•œ ์บ๋ฆญํ„ฐ๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค\nโ€ข ๋™์‹œ์—, ์บ๋ฆญํ„ฐ ํ”„๋กฌํ”„ํŠธ๋Š” ๋™์ผํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค\nโ€ข ๋งŒ์•ฝ ์ฐธ์กฐ ์ด๋ฏธ์ง€๋ฅผ ๊ฐ€์ ธ์˜ค์ง€ ์•Š์œผ๋ฉด, ์‹œ์Šคํ…œ ์˜ค๋ฅ˜๋กœ ์ธํ•ด **์ด๋ฏธ์ง€๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.**\nโ€ข weight, end_at: ๊ฐ€์ค‘์น˜๊ฐ€ ๋†’์„์ˆ˜๋ก ์ผ๊ด€์„ฑ์€ ์ข‹์•„์ง€์ง€๋งŒ, ๋ชจ๋ฐฉ(ํŠธ๋ ˆ์ด์‹ฑ)์˜ ์ •๋„๊ฐ€ ๊ฐ•ํ•ด์ง‘๋‹ˆ๋‹ค"],"color":"#432","bgcolor":"#653"},{"id":17,"type":"YANC.MultilineString","pos":[4142.66064453125,2994.78857421875],"size":[580,280],"flags":{},"order":5,"mode":0,"inputs":[{"localized_name":"string","name":"string","type":"STRING","widget":{"name":"string"}}],"outputs":[{"localized_name":"STRING","name":"STRING","type":"STRING","slot_index":0,"links":[873]}],"title":"๐ŸŽฒ ๊ฐ์ •/๋™์ž‘ ๋žœ๋ค ํ’€ (๋ฌด์ž‘์œ„ ํ”„๋กฌํ”„ํŠธ ์„ ํƒ)","properties":{"cnr_id":"comfyui-yanc","ver":"1445232b23f4bd6d5644e850236c042808eb9efa","Node name for S&R":"EmotionRandomPool","aux_id":"ka-puna/comfyui-yanc"},"widgets_values":["open mouth\nclosed mouth\nparted lips\ntongue visible\nfloating hair\nloose hair strands\nsway back\nrhythmic breathing"],"color":"#232","bgcolor":"#353"},{"id":15,"type":"YANC.MultilineString","pos":[7126.74365234375,2227.34033203125],"size":[293.4252624511719,1412.4327392578125],"flags":{},"order":6,"mode":0,"inputs":[{"localized_name":"string","name":"string","type":"STRING","widget":{"name":"string"}}],"outputs":[{"localized_name":"STRING","name":"STRING","type":"STRING","slot_index":0,"links":[846]}],"title":"๐Ÿ˜Š ๊ฐ์ •/๋™์ž‘ ์ด๋ฆ„","properties":{"cnr_id":"comfyui-yanc","ver":"1445232b23f4bd6d5644e850236c042808eb9efa","Node name for S&R":"EmotionNames","aux_id":"ka-puna/comfyui-yanc"},"widgets_values":["neutral \nsmile \nhappy \nlaughing \nrelieved \nshy \nembarrassed \nsad \ndisappointed \ncrying \nangry \npouting \nsurprised \nconfused \ncurious \nthinking \nworried \nscared \ntired \nbored \nlovestruck \nseductive \nsmug \ncontemptuous \ncrazy \nhug \nkiss \nshowing bra \nshowing breasts \npulling panties \npillow talk \nsleeping \nmasturbation_char_normal \nmasturbation_char_orgasm \nfingering own anal_char_normal \nfingering own anal_char_orgasm \nfingering own pussy_char_normal \nfingering own pussy_char_orgasm \nanal beads_char_normal \nanal beads_char_orgasm \nbutt plug_char_normal \nbutt plug_char_orgasm \ndildo_char_normal \ndildo_char_orgasm \nvibrator_char_normal \nvibrator_char_orgasm \npeeing_char_normal \npeeing_char_orgasm \n69_both_normal \n69_both_orgasm \nblowjob_user_normal \nblowjob_user_orgasm \ncunnilingus_char_normal \ncunnilingus_char_orgasm \nrimjob_user_normal \nrimjob_user_orgasm \nbreast play_char_normal \nbreast play_char_orgasm \nbreast play_user_normal \nbreast play_user_orgasm \nbreastfeeding_char_normal \nbreastfeeding_char_orgasm \nfingering_char_normal \nfingering_char_orgasm \nhandjob_user_normal \nhandjob_user_orgasm \nfootjob_user_normal \nfootjob_user_orgasm \npaizuri_user_normal \npaizuri_user_orgasm \nspanking_char_normal \nspanking_char_orgasm \nhuman toilet_char_normal \nhuman toilet_char_orgasm \nmissionary_both_normal \nmissionary_both_orgasm \nmissionary_both_ejaculation \ndoggystyle_both_normal \ndoggystyle_both_orgasm \ndoggystyle_both_ejaculation \nmating press_both_normal \nmating press_both_orgasm \nmating press_both_ejaculation \ncowgirl_both_normal \ncowgirl_both_orgasm \ncowgirl_both_ejaculation \nreverse cowgirl_both_normal \nreverse cowgirl_both_orgasm \nreverse cowgirl_both_ejaculation \nupright straddle_both_normal \nupright straddle_both_orgasm \nupright straddle_both_ejaculation \nreverse upright straddle_both_normal \nreverse upright straddle_both_orgasm \nreverse upright straddle_both_ejaculation \nstanding_both_normal \nstanding_both_orgasm \nstanding_both_ejaculation \nreverse standing_both_normal \nreverse standing_both_orgasm \nreverse standing_both_ejaculation \nsuspended congress_both_normal \nsuspended congress_both_orgasm \nsuspended congress_both_ejaculation \nspooning_both_normal \nspooning_both_orgasm \nspooning_both_ejaculation \nfull nelson_both_normal \nfull nelson_both_orgasm \nfull nelson_both_ejaculation"],"color":"#232","bgcolor":"#353"},{"id":16,"type":"YANC.MultilineString","pos":[7433.42333984375,2229.061279296875],"size":[773.0369262695312,1409.99267578125],"flags":{},"order":7,"mode":0,"inputs":[{"localized_name":"string","name":"string","type":"STRING","widget":{"name":"string"}}],"outputs":[{"localized_name":"STRING","name":"STRING","type":"STRING","slot_index":0,"links":[847]}],"title":"๐Ÿ˜Š ๊ฐ์ •/๋™์ž‘ ํ”„๋กฌํ”„ํŠธ (์ˆœ์„œ๋Š” ์™ผ์ชฝ ์ด๋ฆ„๊ณผ ์ผ์น˜ํ•ด์•ผ ํ•จ)","properties":{"cnr_id":"comfyui-yanc","ver":"1445232b23f4bd6d5644e850236c042808eb9efa","Node name for S&R":"EmotionPrompts","aux_id":"ka-puna/comfyui-yanc"},"widgets_values":["1girl, solo, neutral, looking at viewer, (front view:1.3), cowboy shot, standing \n1girl, solo, smile, soft_smile, closed mouth, looking at viewer, cowboy shot, standing \n1girl, solo, happy, joy, looking at viewer, cowboy shot, standing \n1girl, solo, laughing, giggle, wide open mouth, teeth visible, eyes squinted, looking at viewer, cowboy shot, standing \n1girl, solo, relaxed, sighing, soft smile, looking at viewer, cowboy shot, standing \n1girl, solo, shyness, blush, fidget, looking away, cowboy shot, standing \n1girl, solo, embarrassed, blush, hand on own face, looking away, cowboy shot, standing \n1girl, solo, sad, depressed, guilty expression, downcast eyes, frown, looking down, cowboy shot, standing \n1girl, solo, disappointed, frown, crossed arms, sigh, looking at viewer, cowboy shot, standing \n1girl, solo, crying, tears streaming, open mouth sob, sad eyes, looking at viewer, cowboy shot, standing \n1girl, solo, angry, annoyed, furrowed brows, clenched teeth, glaring, looking at viewer, cowboy shot, standing \n1girl, solo, pouting, grudging, puffed cheeks, crossed arms, looking away, cowboy shot, standing \n1girl, solo, surprised, shocked, wide eyes, open mouth, raised eyebrows, looking at viewer, cowboy shot, standing \n1girl, solo, confused, dazed, tilted head, question mark expression, looking at viewer, cowboy shot, standing \n1girl, solo, curious, wide eyes, tilted head, interested gaze, looking at viewer, cowboy shot, standing \n1girl, solo, thinking, hand on chin, focused eyes, slight frown, looking away, cowboy shot, standing \n1girl, solo, worried, nervous, biting lip, furrowed brows, looking at viewer, cowboy shot, standing \n1girl, solo, scared, panic, wide eyes, trembling, open mouth, looking at viewer, cowboy shot, standing \n1girl, solo, tired, exhausted, half-closed eyes, yawn, looking away, cowboy shot, standing \n1girl, solo, bored, blank stare, resting chin on hand, looking away, cowboy shot, standing \n1girl, solo, lovestruck, admiring, heart eyes, dreamy smile, looking at viewer, cowboy shot, standing \n1girl, solo, seductive smile, lustful eyes, biting lip, looking at viewer, cowboy shot, standing \n1girl, solo, smug, smirk, confident grin, raised eyebrow, looking at viewer, cowboy shot, standing \n1girl, solo, contemptuous, taunting, sneer, looking down, cowboy shot, standing \n1girl, solo, crazy smile, evil smile, wide grin, manic eyes, looking at viewer, cowboy shot, standing \n1girl, solo, hug, hugging, embracing tightly, close contact, looking at viewer, cowboy shot, standing \n1girl, solo, kiss, deep kiss, closed eyes, intimate, looking at viewer, cowboy shot, standing \n1girl, solo, showing bra, lifting shirt, bra visible, teasing, looking at viewer, cowboy shot, standing \n1girl, solo, showing breasts, topless, nipples visible, exposed breasts, looking at viewer, cowboy shot, standing \n1girl, solo, pulling panties, lowering underwear, teasing, looking at viewer, cowboy shot, standing \n1girl, solo, pillow talk, lying on bed, whispering, relaxed expressions, looking at viewer \n1girl, solo, sleeping, closed eyes, peaceful face, lying on bed, looking at viewer \n1girl, solo, masturbation, self-pleasure, normal intensity, touching pussy, moaning softly \n1girl, solo, masturbation, self-pleasure, orgasm, climax expression, body trembling \n1girl, solo, fingering own anal, self-insertion, normal intensity, anus focus, moaning \n1girl, solo, fingering own anal, self-insertion, orgasm, climax, body arching \n1girl, solo, fingering own pussy, self-insertion, normal intensity, pussy juice, moaning \n1girl, solo, fingering own pussy, self-insertion, orgasm, climax, squirting \n1girl, solo, anal beads, insertion in anus, normal intensity, beads dangling \n1girl, solo, anal beads, insertion in anus, orgasm, climax, pulling beads \n1girl, solo, butt plug, inserted in anus, normal intensity, plug visible \n1girl, solo, butt plug, inserted in anus, orgasm, climax, body trembling \n1girl, solo, dildo, vaginal insertion, normal intensity, riding dildo, moaning \n1girl, solo, dildo, vaginal insertion, orgasm, climax, deep insertion \n1girl, solo, vibrator, on pussy or clit, normal intensity, buzzing, moaning \n1girl, solo, vibrator, on pussy or clit, orgasm, climax, intense vibration \n1girl, solo, peeing, urinating, normal intensity, stream visible, squatting \n1girl, solo, peeing, urinating, orgasm, climax with pee, intense release \n1girl, 1boy, 69 position, mutual oral, normal intensity, licking and sucking \n1girl, 1boy, 69 position, mutual oral, orgasm, climax together, cum and juice \n1girl, 1boy, blowjob on boy, oral on penis, normal intensity, sucking \n1girl, 1boy, blowjob on boy, oral on penis, orgasm, climax, cum in mouth \n1girl, 1boy, cunnilingus on girl, licking pussy, normal intensity, moaning \n1girl, 1boy, cunnilingus on girl, licking pussy, orgasm, climax, squirting \n1girl, 1boy, rimjob on boy, licking anus, normal intensity, tongue out \n1girl, 1boy, rimjob on boy, licking anus, orgasm, climax, body tense \n1girl, 1boy, breast play on girl, fondling breasts, normal intensity, nipples teased, moaning \n1girl, 1boy, breast play on girl, fondling breasts, orgasm, climax, nipples erect \n1girl, 1boy, breast play on boy, fondling partner's breasts, normal intensity, teasing \n1girl, 1boy, breast play on boy, fondling partner's breasts, orgasm, climax, partner reacting \n1girl, 1boy, breastfeeding on boy, sucking nipples, normal intensity, milk flow \n1girl, 1boy, breastfeeding on boy, sucking nipples, girl orgasm, climax, lactation intense \n1girl, 1boy, fingering on girl, inserting fingers in pussy, normal intensity, moaning \n1girl, 1boy, fingering on girl, inserting fingers in pussy, orgasm, climax, squirting \n1girl, 1boy, handjob on boy, stroking penis, normal intensity, hand motion \n1girl, 1boy, handjob on boy, stroking penis, orgasm, climax, cum shot \n1girl, 1boy, footjob on boy, feet on penis, normal intensity, toes gripping \n1girl, 1boy, footjob on boy, feet on penis, orgasm, climax, cum on feet \n1girl, 1boy, paizuri on boy, breasts around penis, normal intensity, titfuck \n1girl, 1boy, paizuri on boy, breasts around penis, orgasm, climax, cum on breasts \n1girl, 1boy, spanking on girl, slapping ass, normal intensity, red marks, moaning \n1girl, 1boy, spanking on girl, slapping ass, girl orgasm, climax, body tense \n1girl, 1boy, human toilet on girl, receiving cum, normal intensity, mouth open \n1girl, 1boy, human toilet on girl, receiving cum, girl orgasm, climax during \n1girl, 1boy, missionary position, both normal, vaginal sex, legs spread \n1girl, 1boy, missionary position, girl orgasm, climax expressions, body tense \n1girl, 1boy, missionary position, both ejaculation, cum inside, overflowing \n1girl, 1boy, doggystyle position, both normal, from behind, ass focus \n1girl, 1boy, doggystyle position, girl orgasm, climax, back arched \ndoggystyle_both_ejaculation \n1girl, 1boy, mating press position, both normal, deep penetration, legs folded \n1girl, 1boy, mating press position, girl orgasm, intense climax, pressed down \n1girl, 1boy, mating press position, both ejaculation, creampie, deep inside \n1girl, 1boy, cowgirl position, both normal, girl on top, riding \n1girl, 1boy, cowgirl position, girl orgasm, climax, grinding \n1girl, 1boy, cowgirl position, both ejaculation, cum overflow, bouncing \n1girl, 1boy, reverse cowgirl position, both normal, back to partner, ass view \n1girl, 1boy, reverse cowgirl position, girl orgasm, climax, leaning back \n1girl, 1boy, reverse cowgirl position, both ejaculation, cum drip, reverse riding \n1girl, 1boy, upright straddle position, both normal, sitting face to face, hugging \n1girl, 1boy, upright straddle position, girl orgasm, climax embrace \n1girl, 1boy, upright straddle position, both ejaculation, cum inside, close contact \n1girl, 1boy, reverse upright straddle position, both normal, back to partner, leaning forward \n1girl, 1boy, reverse upright straddle position, girl orgasm, climax, arching back \n1girl, 1boy, reverse upright straddle position, both ejaculation, cum overflow, reverse sitting \n1girl, 1boy, standing position, both normal, face to face, one leg up \n1girl, 1boy, standing position, girl orgasm, climax standing, holding partner \n1girl, 1boy, standing position, both ejaculation, cum drip, balanced \n1girl, 1boy, reverse standing position, both normal, back to partner, bent over \n1girl, 1boy, reverse standing position, girl orgasm, climax, pushing back \n1girl, 1boy, reverse standing position, both ejaculation, cum inside, from behind \n1girl, 1boy, suspended congress position, both normal, carried up, legs wrapped \n1girl, 1boy, suspended congress position, girl orgasm, climax in air, holding tight \n1girl, 1boy, suspended congress position, both ejaculation, cum drip, suspended \n1girl, 1boy, spooning position, both normal, side by side, from behind \n1girl, 1boy, spooning position, girl orgasm, climax cuddle, bodies close \n1girl, 1boy, spooning position, both ejaculation, cum inside, intimate \n1girl, 1boy, full nelson position, both normal, legs held up, deep penetration \n1girl, 1boy, full nelson position, girl orgasm, climax exposed, arms locked \n1girl, 1boy, full nelson position, both ejaculation, creampie, held in place "],"color":"#232","bgcolor":"#353"},{"id":541,"type":"Note","pos":[8935.8076171875,2262.110595703125],"size":[210,1598.3480224609375],"flags":{},"order":8,"mode":0,"inputs":[],"outputs":[],"title":"๐Ÿ“Œ ๊ฐ์ •/๋™์ž‘ ์˜ต์…˜","properties":{},"widgets_values":["1. ์ค‘๋ฆฝ \n2. ๋ฏธ์†Œ \n3. ํ–‰๋ณตํ•จ \n4. ํฌ๊ฒŒ ์›ƒ์Œ \n5. ์•ˆ์‹ฌ \n6. ์ˆ˜์ค์Œ \n7. ๋‹นํ™ฉํ•จ \n8. ์Šฌํ”” \n9. ์‹ค๋ง \n10. ์šธ์Œ \n11. ํ™”๋‚จ \n12. ๋ณผ ๋ถ€ํ’€๋ฆผ \n13. ๋†€๋žŒ \n14. ํ˜ผ๋ž€ \n15. ํ˜ธ๊ธฐ์‹ฌ \n16. ์ƒ๊ฐ \n17. ๊ฑฑ์ • \n18. ๊ณตํฌ \n19. ํ”ผ๋กœ \n20. ์ง€๋ฃจํ•จ \n21. ์—ฐ๋ชจ \n22. ์œ ํ˜น \n23. ์šฐ์ญํ•จ \n24. ๊ฒฝ๋ฉธ \n25. ๊ด‘๊ธฐ \n26. ํฌ์˜น \n27. ํ‚ค์Šค \n28. ๋ธŒ๋ž˜์ง€์–ด ๋…ธ์ถœ \n29. ๊ฐ€์Šด ๋…ธ์ถœ \n30. ํŒฌํ‹ฐ ๋‚ด๋ฆฌ๊ธฐ \n31. ์ž ๋“ค๊ธฐ ์ „ ์‘์‹œ \n32. ์ˆ˜๋ฉด \n33. ์ž์œ„_์บ๋ฆญํ„ฐ ์พŒ๊ฐ \n34. ์ž์œ„_์บ๋ฆญํ„ฐ ์˜ค๋ฅด๊ฐ€์ฆ˜ \n35. ํ•ญ๋ฌธ ์ž์œ„_์บ๋ฆญํ„ฐ ์พŒ๊ฐ \n36. ํ•ญ๋ฌธ ์ž์œ„_์บ๋ฆญํ„ฐ ์˜ค๋ฅด๊ฐ€์ฆ˜ \n37. ์งˆ ์ž์œ„_์บ๋ฆญํ„ฐ ์พŒ๊ฐ \n38. ์งˆ ์ž์œ„_์บ๋ฆญํ„ฐ ์˜ค๋ฅด๊ฐ€์ฆ˜ \n39. ์• ๋„ ๋น„์ฆˆ_์บ๋ฆญํ„ฐ ์พŒ๊ฐ \n40. ์• ๋„ ๋น„์ฆˆ_์บ๋ฆญํ„ฐ ์˜ค๋ฅด๊ฐ€์ฆ˜ \n41. ๋ฒ„ํŠธ ํ”Œ๋Ÿฌ๊ทธ_์บ๋ฆญํ„ฐ ์พŒ๊ฐ \n42. ๋ฒ„ํŠธ ํ”Œ๋Ÿฌ๊ทธ_์บ๋ฆญํ„ฐ ์˜ค๋ฅด๊ฐ€์ฆ˜ \n43. ๋”œ๋„_์บ๋ฆญํ„ฐ ์พŒ๊ฐ \n44. ๋”œ๋„_์บ๋ฆญํ„ฐ ์˜ค๋ฅด๊ฐ€์ฆ˜ \n45. ๋ฐ”์ด๋ธŒ๋ ˆ์ดํ„ฐ_์บ๋ฆญํ„ฐ ์พŒ๊ฐ \n46. ๋ฐ”์ด๋ธŒ๋ ˆ์ดํ„ฐ_์บ๋ฆญํ„ฐ ์˜ค๋ฅด๊ฐ€์ฆ˜ \n47. ์†Œ๋ณ€_์บ๋ฆญํ„ฐ ์พŒ๊ฐ \n48. ์†Œ๋ณ€_์บ๋ฆญํ„ฐ ์˜ค๋ฅด๊ฐ€์ฆ˜ \n49. 69 ์ฒด์œ„_์Œ๋ฐฉ ์พŒ๊ฐ \n50. 69 ์ฒด์œ„_์บ๋ฆญํ„ฐ ์˜ค๋ฅด๊ฐ€์ฆ˜ \n51. ๊ตฌ๊ฐ• ์„ฑ๊ต_์‚ฌ์šฉ์ž ์พŒ๊ฐ \n52. ๊ตฌ๊ฐ• ์„ฑ๊ต_์‚ฌ์šฉ์ž ์‚ฌ์ • \n53. ์ปค๋‹๋ง๊ตฌ์Šค_์บ๋ฆญํ„ฐ ์พŒ๊ฐ \n54. ์ปค๋‹๋ง๊ตฌ์Šค_์บ๋ฆญํ„ฐ ์˜ค๋ฅด๊ฐ€์ฆ˜ \n55. ๋ฆผ์žก_์‚ฌ์šฉ์ž ์พŒ๊ฐ \n56. ๋ฆผ์žก_์‚ฌ์šฉ์ž ์‚ฌ์ • \n57. ๊ฐ€์Šด ์• ๋ฌด_์บ๋ฆญํ„ฐ ์พŒ๊ฐ \n58. ๊ฐ€์Šด ์• ๋ฌด_์บ๋ฆญํ„ฐ ์˜ค๋ฅด๊ฐ€์ฆ˜ \n59. ๊ฐ€์Šด ์• ๋ฌด_์‚ฌ์šฉ์ž ์พŒ๊ฐ \n60. ๊ฐ€์Šด ์• ๋ฌด_์‚ฌ์šฉ์ž ์‚ฌ์ • \n61. ์ˆ˜์œ _์บ๋ฆญํ„ฐ ์พŒ๊ฐ \n62. ์ˆ˜์œ _์บ๋ฆญํ„ฐ ์˜ค๋ฅด๊ฐ€์ฆ˜ \n63. ํ•‘๊ฑฐ๋ง_์บ๋ฆญํ„ฐ ์พŒ๊ฐ \n64. ํ•‘๊ฑฐ๋ง_์บ๋ฆญํ„ฐ ์˜ค๋ฅด๊ฐ€์ฆ˜ \n65. ํ•ธ๋“œ์žก_์‚ฌ์šฉ์ž ์พŒ๊ฐ \n66. ํ•ธ๋“œ์žก_์‚ฌ์šฉ์ž ์‚ฌ์ • \n67. ํ’‹์žก_์‚ฌ์šฉ์ž ์พŒ๊ฐ \n68. ํ’‹์žก_์‚ฌ์šฉ์ž ์‚ฌ์ • \n69. ํŒŒ์ด์ฆˆ๋ฆฌ_์‚ฌ์šฉ์ž ์พŒ๊ฐ \n70. ํŒŒ์ด์ฆˆ๋ฆฌ_์‚ฌ์šฉ์ž ์‚ฌ์ • \n71. ์ŠคํŒฝํ‚น_์บ๋ฆญํ„ฐ ์พŒ๊ฐ \n72. ์ŠคํŒฝํ‚น_์บ๋ฆญํ„ฐ ์˜ค๋ฅด๊ฐ€์ฆ˜ \n73. ์ธ๊ฐ„ ๋ณ€๊ธฐ_์บ๋ฆญํ„ฐ ์พŒ๊ฐ \n74. ์ธ๊ฐ„ ๋ณ€๊ธฐ_์บ๋ฆญํ„ฐ ์˜ค๋ฅด๊ฐ€์ฆ˜ \n75. ๋ฏธ์…”๋„ˆ๋ฆฌ ์ฒด์œ„_์Œ๋ฐฉ ์พŒ๊ฐ \n76. ๋ฏธ์…”๋„ˆ๋ฆฌ ์ฒด์œ„_์บ๋ฆญํ„ฐ ์˜ค๋ฅด๊ฐ€์ฆ˜ \n77. ๋ฏธ์…”๋„ˆ๋ฆฌ ์ฒด์œ„_์‚ฌ์šฉ์ž ์‚ฌ์ • \n78. ๋„๊ทธ์Šคํƒ€์ผ ์ฒด์œ„_์Œ๋ฐฉ ์พŒ๊ฐ \n79. ๋„๊ทธ์Šคํƒ€์ผ ์ฒด์œ„_์บ๋ฆญํ„ฐ ์˜ค๋ฅด๊ฐ€์ฆ˜ \n80. ๋„๊ทธ์Šคํƒ€์ผ ์ฒด์œ„_์‚ฌ์šฉ์ž ์‚ฌ์ • \n81. ๋ฉ”์ดํŒ… ํ”„๋ ˆ์Šค ์ฒด์œ„_์Œ๋ฐฉ ์พŒ๊ฐ \n82. ๋ฉ”์ดํŒ… ํ”„๋ ˆ์Šค ์ฒด์œ„_์บ๋ฆญํ„ฐ ์˜ค๋ฅด๊ฐ€์ฆ˜ \n83. ๋ฉ”์ดํŒ… ํ”„๋ ˆ์Šค ์ฒด์œ„_์‚ฌ์šฉ์ž ์‚ฌ์ • \n84. ์นด์šฐ๊ฑธ ์ฒด์œ„_์Œ๋ฐฉ ์พŒ๊ฐ \n85. ์นด์šฐ๊ฑธ ์ฒด์œ„_์บ๋ฆญํ„ฐ ์˜ค๋ฅด๊ฐ€์ฆ˜ \n86. ์นด์šฐ๊ฑธ ์ฒด์œ„_์‚ฌ์šฉ์ž ์‚ฌ์ • \n87. ๋ฆฌ๋ฒ„์Šค ์นด์šฐ๊ฑธ ์ฒด์œ„_์Œ๋ฐฉ ์พŒ๊ฐ \n88. ๋ฆฌ๋ฒ„์Šค ์นด์šฐ๊ฑธ ์ฒด์œ„_์บ๋ฆญํ„ฐ ์˜ค๋ฅด๊ฐ€์ฆ˜ \n89. ๋ฆฌ๋ฒ„์Šค ์นด์šฐ๊ฑธ ์ฒด์œ„_์‚ฌ์šฉ์ž ์‚ฌ์ • \n90. ์ง๋ฆฝ ๊ต์ฐจ ์ฒด์œ„_์Œ๋ฐฉ ์พŒ๊ฐ \n91. ์ง๋ฆฝ ๊ต์ฐจ ์ฒด์œ„_์บ๋ฆญํ„ฐ ์˜ค๋ฅด๊ฐ€์ฆ˜ \n92. ์ง๋ฆฝ ๊ต์ฐจ ์ฒด์œ„_์‚ฌ์šฉ์ž ์‚ฌ์ • \n93. ๋ฆฌ๋ฒ„์Šค ์ง๋ฆฝ ๊ต์ฐจ ์ฒด์œ„_์Œ๋ฐฉ ์พŒ๊ฐ \n94. ๋ฆฌ๋ฒ„์Šค ์ง๋ฆฝ ๊ต์ฐจ ์ฒด์œ„_์บ๋ฆญํ„ฐ ์˜ค๋ฅด๊ฐ€์ฆ˜ \n95. ๋ฆฌ๋ฒ„์Šค ์ง๋ฆฝ ๊ต์ฐจ ์ฒด์œ„_์‚ฌ์šฉ์ž ์‚ฌ์ • \n96. ์Šคํƒ ๋”ฉ ์ฒด์œ„_์Œ๋ฐฉ ์พŒ๊ฐ \n97. ์Šคํƒ ๋”ฉ ์ฒด์œ„_์บ๋ฆญํ„ฐ ์˜ค๋ฅด๊ฐ€์ฆ˜ \n98. ์Šคํƒ ๋”ฉ ์ฒด์œ„_์‚ฌ์šฉ์ž ์‚ฌ์ • \n99. ๋ฆฌ๋ฒ„์Šค ์Šคํƒ ๋”ฉ ์ฒด์œ„_์Œ๋ฐฉ ์พŒ๊ฐ \n100. ๋ฆฌ๋ฒ„์Šค ์Šคํƒ ๋”ฉ ์ฒด์œ„_์บ๋ฆญํ„ฐ ์˜ค๋ฅด๊ฐ€์ฆ˜ \n101. ๋ฆฌ๋ฒ„์Šค ์Šคํƒ ๋”ฉ ์ฒด์œ„_์‚ฌ์šฉ์ž ์‚ฌ์ • \n102. ์„œ์ŠคํŽœ๋””๋“œ ์ฝฉ๊ทธ๋ ˆ์Šค ์ฒด์œ„_์Œ๋ฐฉ ์พŒ๊ฐ \n103. ์„œ์ŠคํŽœ๋””๋“œ ์ฝฉ๊ทธ๋ ˆ์Šค ์ฒด์œ„_์บ๋ฆญํ„ฐ ์˜ค๋ฅด๊ฐ€์ฆ˜ \n104. ์„œ์ŠคํŽœ๋””๋“œ ์ฝฉ๊ทธ๋ ˆ์Šค ์ฒด์œ„_์‚ฌ์šฉ์ž ์‚ฌ์ • \n105. ์Šคํ‘ธ๋‹ ์ฒด์œ„_์Œ๋ฐฉ ์พŒ๊ฐ \n106. ์Šคํ‘ธ๋‹ ์ฒด์œ„_์บ๋ฆญํ„ฐ ์˜ค๋ฅด๊ฐ€์ฆ˜ \n107. ์Šคํ‘ธ๋‹ ์ฒด์œ„_์‚ฌ์šฉ์ž ์‚ฌ์ • \n108. ํ’€ ๋„ฌ์Šจ ์ฒด์œ„_์Œ๋ฐฉ ์พŒ๊ฐ \n109. ํ’€ ๋„ฌ์Šจ ์ฒด์œ„_์บ๋ฆญํ„ฐ ์˜ค๋ฅด๊ฐ€์ฆ˜ \n110. ํ’€ ๋„ฌ์Šจ ์ฒด์œ„_์‚ฌ์šฉ์ž ์‚ฌ์ •"],"color":"#223","bgcolor":"#335"},{"id":501,"type":"Note","pos":[8483.68359375,2012.513916015625],"size":[658.0982055664062,88],"flags":{},"order":9,"mode":0,"inputs":[],"outputs":[],"title":"๋น„๊ณ /์ฐธ๊ณ  ์‚ฌํ•ญ","properties":{},"widgets_values":["โ€ข ์ˆซ์ž๋ฅผ ์ž…๋ ฅํ•˜์—ฌ ์‚ฌ์šฉํ•  ์บ๋ฆญํ„ฐ/์˜์ƒ/๊ฐ์ •/๋™์ž‘์„ ์„ ํƒํ•˜์‹ญ์‹œ์˜ค\nโ€ข 0์„ ์ž…๋ ฅํ•˜๋ฉด ํ•ด๋‹น ํ•„๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค\nโ€ข ํ”„๋กฌํ”„ํŠธ๋ฅผ ํŽธ์ง‘ํ•œ ํ›„, ๋‚˜์ค‘์— ์ด๋ฏธ์ง€๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋ฐ ํŽธ๋ฆฌํ•˜๋„๋ก ์˜ต์…˜์— ์‹๋ณ„ ๊ฐ€๋Šฅํ•œ ๋‚ด์šฉ์„ ๋‹ค์‹œ ์ž…๋ ฅํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค"],"color":"#223","bgcolor":"#335"},{"id":503,"type":"Note","pos":[4864.658203125,2066.015625],"size":[3297.87646484375,88],"flags":{},"order":10,"mode":0,"inputs":[],"outputs":[],"title":"๐Ÿ“Œ ์บ๋ฆญํ„ฐ, ์˜์ƒ, ๊ฐ์ •/๋™์ž‘ ์„ค์ •","properties":{},"widgets_values":["โ€ข ์ด๋ฆ„: ํŒŒ์ผ ์ƒ์„ฑ ์‹œ ์‚ฌ์šฉ๋˜๋Š” ์ด๋ฆ„\nโ€ข ํ”„๋กฌํ”„ํŠธ: ์ด๋ฆ„ ๋‚ด์šฉ์„ ์™„์ „ํžˆ ์„ค๋ช…\nโ€ข ์ค„ ๋ฐ”๊ฟˆ์œผ๋กœ ๊ตฌ๋ถ„ํ•ฉ๋‹ˆ๋‹ค. ์บ๋ฆญํ„ฐ ์ด๋ฆ„๊ณผ ์บ๋ฆญํ„ฐ ํ”„๋กฌํ”„ํŠธ์˜ **์ค„ ์ˆ˜๊ฐ€ ๊ฐ™์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค.**\nโ€ข ํŽธ์ง‘์„ ์™„๋ฃŒํ•œ ํ›„, ๋‚˜์ค‘์— ์ด๋ฏธ์ง€๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋ฐ ํŽธ๋ฆฌํ•˜๋„๋ก ์˜ค๋ฅธ์ชฝ ๐ŸŸฆ ์— ์ด๋ฆ„์„ ์ž‘์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค"],"color":"#232","bgcolor":"#353"},{"id":554,"type":"Note","pos":[4028.232666015625,205.88243103027344],"size":[678.8988037109375,214.44945733291678],"flags":{},"order":11,"mode":0,"inputs":[],"outputs":[],"title":"๐Ÿ“ฐ ์ดˆ๋ณด์ž ์•ˆ๋‚ด","properties":{},"widgets_values":["1๏ธโƒฃ ๊ธฐ๋Šฅ๋ณ„๋กœ ์ •๋ฆฌ๋˜์–ด ์žˆ์–ด ์—ฐ๊ฒฐ์„ (๋…ธ๋“œ ๋งํฌ)์ด ๋ณต์žกํ•ฉ๋‹ˆ๋‹ค. ์˜ค๋ฅธ์ชฝ ํ•˜๋‹จ์˜ `์—ฐ๊ฒฐ์„  ์ˆจ๊ธฐ๊ธฐ/Hide Link` ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜์—ฌ ์—ฐ๊ฒฐ์„ ์„ ์ˆจ๊ธฐ์‹ญ์‹œ์˜ค\n2๏ธโƒฃ ์›Œํฌํ”Œ๋กœ์šฐ ๋””์ž์ธ์€ ๋ฌด์ง€๊ฐœ ์ƒ‰์ƒ ์ˆœ์„œ๋กœ ์ง„ํ–‰๋ฉ๋‹ˆ๋‹ค. ๐ŸŸฅ โ†’ ๐ŸŸจ โ†’ ๐ŸŸฉ โ†’ ๐ŸŸฆ โ†’ ๐ŸŸช\n3๏ธโƒฃ ์›Œํฌํ”Œ๋กœ์šฐ ์‹คํ–‰ ์‹œ์ž‘ ๋ฒ„ํŠผ์€ ์˜ค๋ฅธ์ชฝ ์ƒ๋‹จ์— ์žˆ์Šต๋‹ˆ๋‹ค\n4๏ธโƒฃ Vast.ai (Docker + Launch script)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์‹œ์ž‘ํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ, ๋จผ์ € ํ™”๋ฉด ์ค‘์•™ ์ƒ๋‹จ์˜ ๐Ÿงฉ Manager๋ฅผ ํด๋ฆญํ•˜์‹ญ์‹œ์˜ค\n ๊ทธ๋Ÿฐ ๋‹ค์Œ ํ™”๋ฉด ์ค‘์•™ ์ƒ๋‹จ์˜ `Custom Nodes Manager`๋ฅผ ์„ ํƒํ•˜๊ณ , ๋‹ค์Œ ๋ชจ๋ธ์„ ๊ฒ€์ƒ‰ํ•˜์—ฌ ์„ค์น˜ํ•œ ํ›„ ComfyUI๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜์‹ญ์‹œ์˜ค\n5๏ธโƒฃ ๊ทธ๋Ÿฐ ๋‹ค์Œ ๋‹ค์Œ ํ•ต์‹ฌ ๋ชจ๋ธ์ด ์˜ฌ๋ฐ”๋ฅธ ์œ„์น˜์— ์žˆ๋Š”์ง€ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค (ํด๋”๊ฐ€ ์—†์œผ๋ฉด ์ง์ ‘ ์ƒ์„ฑ):\n โ€ข waiNSFWIllustrious_v150.safetensors โ†’ ComfyUI/models/checkpoints/\n โ€ข CLIP-ViT-H-14-laion2B-s32B-b79K.safetensors โ†’ ComfyUI/models/clip_vision/\n โ€ข ip-adapter-plus-face_sdxl_vit-h.safetensors โ†’ ComfyUI/models/ipadapter/\n โ€ข RealESRGAN_x4plus_anime_6B.pth โ†’ ComfyUI/models/upscale_models/"],"color":"#233","bgcolor":"#355"},{"id":521,"type":"Note","pos":[4308.38083438814,460.92087235824096],"size":[402.17730712890625,115.37745666503906],"flags":{},"order":12,"mode":0,"inputs":[],"outputs":[],"title":"๐Ÿ“Œ ์ƒ‰์ƒ ๋ธ”๋ก ์„ค๋ช…","properties":{},"widgets_values":["๐ŸŸฅ ๋นจ๊ฐ„์ƒ‰: ๋ชจ๋ธ ๋ฐ ํ•ด๋‹น ๋งค๊ฐœ๋ณ€์ˆ˜ ์„ค์ • ์˜์—ญ. ํ•œ ๋ฒˆ ์„ค์ •ํ•˜๋ฉด ์ดํ›„ ์กฐ์ • ๋นˆ๋„๊ฐ€ ๋‚ฎ์Šต๋‹ˆ๋‹ค\n๐ŸŸจ ๋…ธ๋ž€์ƒ‰: ๋น„๊ต์  ์ž์ฃผ ์กฐ์ž‘ํ•˜๋Š” ๋ชจ๋ธ ๋ฐ ๋งค๊ฐœ๋ณ€์ˆ˜ ์„ค์ • ๊ฐ’\n๐ŸŸฉ ๋…น์ƒ‰: ํ”„๋กฌํ”„ํŠธ. ๊ฐ€์žฅ ์ž์ฃผ ์กฐ์ •ํ•˜๊ณ  ๋ฏธ์„ธ ์กฐ์ •ํ•˜๋Š” ์˜์—ญ\n๐ŸŸฆ ํŒŒ๋ž€์ƒ‰: ์˜ต์…˜. ์›ํ•˜๋Š” ์บ๋ฆญํ„ฐ/์˜์ƒ/๊ฐ์ •/๋™์ž‘์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค\n๐ŸŸช ๋ณด๋ผ์ƒ‰: ์ด๋ฏธ์ง€ ์ถœ๋ ฅ. ์™ผ์ชฝ ์ƒ๋‹จ์˜ Queue๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ **์ถœ๋ ฅ ๊ฒฐ๊ณผ๋ฅผ ํ™•์ธํ•˜๋Š” ๊ฒƒ์ด ๋น ๋ฆ…๋‹ˆ๋‹ค.**\nโฌ› ๊ฒ€์€์ƒ‰: ์‹œ์Šคํ…œ ๋…ธ๋“œ ๋ฐ ์Šค์œ„์น˜ ์„ค์ • ๊ฐ’. ์‹œ์Šคํ…œ ์ถœ๋ ฅ ํ๋ฆ„์„ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š๋Š” ํ•œ ๊ฑด๋“œ๋ฆด ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค"],"color":"#233","bgcolor":"#355"},{"id":520,"type":"Note","pos":[4028.232666015625,460.92087235824096],"size":[265.6201251075363,115.48346075171185],"flags":{},"order":13,"mode":0,"inputs":[],"outputs":[],"title":"๐ŸŽฏ ์‚ฌ์šฉ ์›Œํฌํ”Œ๋กœ์šฐ ์„ค๋ช…","properties":{},"widgets_values":["1๏ธโƒฃ ๐ŸŸจ ๋ชจ๋“ˆ ์Šค์œ„์น˜, ๋ฐฐ์น˜(Batch) ์ˆ˜๋Ÿ‰ ์„ค์ •\n2๏ธโƒฃ ๐ŸŸฉ ํ”„๋กฌํ”„ํŠธ ํŽธ์ง‘\n3๏ธโƒฃ ๐ŸŸฆ ์„ ํƒ๊ธฐ์— ๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅํ•˜์—ฌ ์บ๋ฆญํ„ฐ/์˜์ƒ/๊ฐ์ •/๋™์ž‘ ์„ ํƒ\n4๏ธโƒฃ ๐ŸŸช ์‹คํ–‰, ์ด๋ฏธ์ง€ ์ถœ๋ ฅ\n"],"color":"#233","bgcolor":"#355"},{"id":585,"type":"Note","pos":[4719.5883361675515,205.88243103027344],"size":[271.0012560799405,367.9998457442287],"flags":{},"order":14,"mode":0,"inputs":[],"outputs":[],"title":"๐Ÿ“Œ ๋ฒ„์ „ ์—…๋ฐ์ดํŠธ","properties":{},"widgets_values":["V1:\nโ€ข ๋žœ๋ค ํ’€์ด ์ž‘๋™ํ•˜์ง€ ์•Š๋Š” ๋ฒ„๊ทธ ์ˆ˜์ •\nโ€ข ํŒŒ์ผ ์ด๋ฆ„ ์ถœ๋ ฅ ์˜ค๋ฅ˜ ๋ฒ„๊ทธ ์ˆ˜์ •\nโ€ข ์–ผ๊ตด ๋ฐ ์† ๋””ํ…Œ์ผ ๋ณด์ •์„ Img2Img ๋‹จ๊ณ„๋กœ ์˜ฎ๊ธฐ๊ณ  ์ด๋ฏธ์ง€ ์ถœ๋ ฅ ์›Œํฌํ”Œ๋กœ์šฐ ์ตœ์ ํ™”\n"],"color":"#233","bgcolor":"#355"},{"id":522,"type":"Note","pos":[4044.352294921875,764.5138549804688],"size":[287.8123788111707,88],"flags":{},"order":15,"mode":0,"inputs":[],"outputs":[],"title":"๋น„๊ณ /์ฐธ๊ณ  ์‚ฌํ•ญ","properties":{},"widgets_values":["๊ธฐ๋ณธ ์‚ฌ์šฉ ๋ชจ๋ธ\nโ€ข ์ด๋ฏธ์ง€ ์ƒ์„ฑ ๋ชจ๋ธ: waiNSFWIllustrious_v150.safensors\nโ€ข ์—…์Šค์ผ€์ผ ๋ชจ๋ธ: RealESRGAN_x4plus_anime_6B.pth\nโ€ข ์บ๋ฆญํ„ฐ ์ผ๊ด€์„ฑ: PLUS FACE"],"color":"#322","bgcolor":"#533"},{"id":1,"type":"CheckpointLoaderSimple","pos":[4044.352294921875,888.920911053841],"size":[287.37873773017964,100.09639704239089],"flags":{},"order":16,"mode":0,"inputs":[{"localized_name":"ckpt_name","name":"ckpt_name","type":"COMBO","widget":{"name":"ckpt_name"}}],"outputs":[{"localized_name":"MODEL","name":"MODEL","type":"MODEL","slot_index":0,"links":[334]},{"localized_name":"CLIP","name":"CLIP","type":"CLIP","slot_index":1,"links":[335]},{"localized_name":"VAE","name":"VAE","type":"VAE","slot_index":2,"links":[830]}],"title":"์ด๋ฏธ์ง€ ์ƒ์„ฑ ๋ชจ๋ธ (Checkpoint)","properties":{"cnr_id":"comfy-core","ver":"0.3.65","Node name for S&R":"CheckpointLoaderSimple"},"widgets_values":["waiNSFWIllustrious_v150.safetensors"],"color":"#322","bgcolor":"#533"},{"id":60,"type":"UpscaleModelLoader","pos":[4044.352294921875,1023.4909735876448],"size":[287.25223101210395,58],"flags":{},"order":17,"mode":0,"inputs":[{"localized_name":"model_name","name":"model_name","type":"COMBO","widget":{"name":"model_name"}}],"outputs":[{"localized_name":"UPSCALE_MODEL","name":"UPSCALE_MODEL","type":"UPSCALE_MODEL","slot_index":0,"links":[386]}],"title":"์—…์Šค์ผ€์ผ ๋ชจ๋ธ","properties":{"cnr_id":"comfy-core","ver":"0.3.65","Node name for S&R":"UpscaleModelLoader"},"widgets_values":["RealESRGAN_x4plus_anime_6B.pth"],"color":"#322","bgcolor":"#533"},{"id":807,"type":"IPAdapterUnifiedLoader","pos":[4044.352294921875,1118.3097941860112],"size":[285.96186248773574,78],"flags":{},"order":52,"mode":0,"inputs":[{"localized_name":"model","name":"model","type":"MODEL","link":861},{"localized_name":"ipadapter","name":"ipadapter","shape":7,"type":"IPADAPTER","link":null},{"localized_name":"preset","name":"preset","type":"COMBO","widget":{"name":"preset"}}],"outputs":[{"localized_name":"model","name":"model","type":"MODEL","slot_index":0,"links":[862]},{"localized_name":"ipadapter","name":"ipadapter","type":"IPADAPTER","slot_index":1,"links":[863]}],"title":"์บ๋ฆญํ„ฐ ์ผ๊ด€์„ฑ ๋ชจ๋ธ","properties":{"cnr_id":"comfyui_ipadapter_plus","ver":"2.0.0","Node name for S&R":"IPAdapterUnifiedLoader","aux_id":"cubiq/ComfyUI_IPAdapter_plus"},"widgets_values":["PLUS FACE (portraits)"],"color":"#322","bgcolor":"#533"},{"id":556,"type":"Note","pos":[5067.923717434593,768.8932602598475],"size":[276.8067554191957,138.63529027225286],"flags":{},"order":18,"mode":0,"inputs":[],"outputs":[],"title":"๋น„๊ณ /์ฐธ๊ณ  ์‚ฌํ•ญ","properties":{},"widgets_values":["โ€ข ์ƒ์„ฑํ•  ์ด๋ฏธ์ง€์˜ ์›๋ณธ ํฌ๊ธฐ. ๊ฐ ๋ชจ๋ธ๋งˆ๋‹ค ๊ถŒ์žฅ ๊ฐ’์ด ์žˆ์Šต๋‹ˆ๋‹ค\nโ€ข ์ •๋ฐ€ ๋ณด์ • ํ›„ ์ตœ์ข… ์ถœ๋ ฅ๋ฌผ์€ ์›๋ณธ ํฌ๊ธฐ์˜ 4๋ฐฐ๊ฐ€ ๋˜์–ด ๋””ํ…Œ์ผ์„ ๋ณด์™„ํ•ฉ๋‹ˆ๋‹ค\nโ€ข waiNSFWIllustrious_v150์˜ ์ตœ์†Œ๊ฐ’์€ 1024 ์ด์ƒ์ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค\nโ€ข ๋ฐฐ์น˜ ํฌ๊ธฐ/batch_size: ํ•œ ๋ฒˆ์— ์ƒ์„ฑํ•  ์ด๋ฏธ์ง€ ์ˆ˜\nโ€ข ์ผ๋ฐ˜์ ์ธ ์ด๋ฏธ์ง€ ํฌ๊ธฐ ๋ฐ ๋น„์œจ:\n - ์Šค๋งˆํŠธํฐ ์ „์ฒด ํ™”๋ฉด: 1080 x 1920 (9:16)\n - ์†Œ์…œ ๋ฏธ๋””์–ด ์ด๋ฏธ์ง€: 1080 x 1350 (4:5)\n - ์ •์‚ฌ๊ฐํ˜• ์ด๋ฏธ์ง€: 1080 x 1080 (1:1)"],"color":"#432","bgcolor":"#653"},{"id":581,"type":"Note","pos":[5070.887677603601,1149.8838442640972],"size":[272.2233662623221,88],"flags":{},"order":19,"mode":0,"inputs":[],"outputs":[],"title":"๋น„๊ณ /์ฐธ๊ณ  ์‚ฌํ•ญ","properties":{},"widgets_values":["โ€ข ๊ธฐ๋ณธ์ ์œผ๋กœ **๋น„ํ™œ์„ฑํ™”**๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋ณด๋ผ์ƒ‰ **๋…ธ๋“œ**๋ฅผ ๋งˆ์šฐ์Šค ์˜ค๋ฅธ์ชฝ ๋ฒ„ํŠผ์œผ๋กœ ํด๋ฆญํ•˜๊ณ  `์šฐํšŒ(bypass)`๋ฅผ ์„ ํƒํ•˜์—ฌ **ํ™œ์„ฑํ™”**ํ•˜์‹ญ์‹œ์˜ค\nโ€ข ์ด๋ฏธ์ง€๋ฅผ 4๋ฐฐ ํ™•๋Œ€ํ•˜๊ณ  ๋””ํ…Œ์ผ์„ ์ˆ˜์ •ํ•˜์—ฌ ๋”์šฑ ์ •๊ตํ•˜๊ฒŒ ๋งŒ๋“ญ๋‹ˆ๋‹ค\nโ€ข ์ดํ›„ img2img ์ˆ˜์ •์„ ๊ณ„ํšํ•˜๊ณ  ์žˆ๋‹ค๋ฉด, ์ด ๊ธฐ๋Šฅ์„ ์ผœ์ง€ ๋งˆ์‹ญ์‹œ์˜ค"],"color":"#432","bgcolor":"#653"},{"id":565,"type":"ImageUpscaleWithModel","pos":[5070.887677603601,1281.9410952406597],"size":[275.45835116845683,46],"flags":{},"order":62,"mode":4,"inputs":[{"localized_name":"upscale_model","name":"upscale_model","type":"UPSCALE_MODEL","link":386},{"localized_name":"image","name":"image","type":"IMAGE","link":831}],"outputs":[{"localized_name":"IMAGE","name":"IMAGE","type":"IMAGE","slot_index":0,"links":[832]}],"properties":{"cnr_id":"comfy-core","ver":"0.3.65","Node name for S&R":"ImageUpscaleWithModel"},"widgets_values":[],"color":"#432","bgcolor":"#653"},{"id":40,"type":"EmptyLatentImage","pos":[5067.923717434593,945.1885814604672],"size":[277.79330328152264,106],"flags":{},"order":20,"mode":0,"inputs":[{"localized_name":"width","name":"width","type":"INT","widget":{"name":"width"}},{"localized_name":"height","name":"height","type":"INT","widget":{"name":"height"}},{"localized_name":"batch_size","name":"batch_size","type":"INT","widget":{"name":"batch_size"}}],"outputs":[{"localized_name":"LATENT","name":"LATENT","type":"LATENT","slot_index":0,"links":[40]}],"title":"์›๋ณธ ์ด๋ฏธ์ง€ ํฌ๊ธฐ ๋ฐ ๋ฐฐ์น˜ ํฌ๊ธฐ","properties":{"cnr_id":"comfy-core","ver":"0.3.65","Node name for S&R":"EmptyLatentImage"},"widgets_values":[1080,1352,1],"color":"#432","bgcolor":"#653"},{"id":547,"type":"Note","pos":[5393.2881449632505,768.9653536264918],"size":[420.6268431112485,88],"flags":{},"order":21,"mode":0,"inputs":[],"outputs":[],"title":"๋น„๊ณ /์ฐธ๊ณ  ์‚ฌํ•ญ","properties":{},"widgets_values":["โ€ข ๊ธฐ๋ณธ์ ์œผ๋กœ **๋น„ํ™œ์„ฑํ™”**๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋ณด๋ผ์ƒ‰ **๋…ธ๋“œ**๋ฅผ ๋งˆ์šฐ์Šค ์˜ค๋ฅธ์ชฝ ๋ฒ„ํŠผ์œผ๋กœ ํด๋ฆญํ•˜๊ณ  `์šฐํšŒ(bypass)`๋ฅผ ์„ ํƒํ•˜์—ฌ **ํ™œ์„ฑํ™”**ํ•˜์‹ญ์‹œ์˜ค. ์‚ฌ์šฉํ•  LoRA๋ฅผ ์„ ํƒํ•˜๊ณ  ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์กฐ์ •ํ•˜์‹ญ์‹œ์˜ค\nโ€ข strength_model: **LoRA๊ฐ€ ์ด๋ฏธ์ง€ ์ƒ์„ฑ์— ๋ฏธ์น˜๋Š” ์˜ํ–ฅ(๊ฐ•๋„)**\nโ€ข ์ผ๋ถ€ LoRA๋Š” ํŠน์ • ํ”„๋กฌํ”„ํŠธ๋กœ ํ™œ์„ฑํ™”ํ•ด์•ผ ํ•˜๋ฏ€๋กœ, ๊ด€๋ จ ์„ธ๋ถ€ ์‚ฌํ•ญ์€ LoRA ๊ฐœ๋ฐœ์ž๊ฐ€ ๋ชจ๋ธ ๋ฐœํ‘œ ์‹œ ์ œ๊ณตํ•œ ์„ค๋ช…์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค"],"color":"#432","bgcolor":"#653"},{"id":550,"type":"LoraLoader","pos":[5393.2881449632505,1219.0604999534262],"size":[423.2602901197315,126.11517836854637],"flags":{},"order":49,"mode":4,"inputs":[{"localized_name":"model","name":"model","type":"MODEL","link":304},{"localized_name":"clip","name":"clip","type":"CLIP","link":305},{"localized_name":"lora_name","name":"lora_name","type":"COMBO","widget":{"name":"lora_name"}},{"localized_name":"strength_model","name":"strength_model","type":"FLOAT","widget":{"name":"strength_model"}},{"localized_name":"strength_clip","name":"strength_clip","type":"FLOAT","widget":{"name":"strength_clip"}}],"outputs":[{"localized_name":"MODEL","name":"MODEL","type":"MODEL","slot_index":0,"links":[861]},{"localized_name":"CLIP","name":"CLIP","type":"CLIP","slot_index":1,"links":[320]}],"title":"LoRA ๋ชจ๋ธ 3","properties":{"cnr_id":"comfy-core","ver":"0.3.65","Node name for S&R":"LoraLoader"},"widgets_values":["",1,1],"color":"#432","bgcolor":"#653"},{"id":806,"type":"LoadImage","pos":[5868.581561218039,1259.470913977487],"size":[332.92449951171875,345.4947676610841],"flags":{},"order":22,"mode":0,"inputs":[{"localized_name":"image","name":"image","type":"COMBO","widget":{"name":"image"}},{"localized_name":"choose file to upload","name":"upload","type":"IMAGEUPLOAD","widget":{"name":"upload"}}],"outputs":[{"localized_name":"IMAGE","name":"IMAGE","type":"IMAGE","slot_index":0,"links":[864]},{"localized_name":"MASK","name":"MASK","type":"MASK","slot_index":1,"links":null}],"title":"์ฐธ์กฐ ์ด๋ฏธ์ง€","properties":{"cnr_id":"comfy-core","ver":"0.3.65","Node name for S&R":"LoadImage"},"widgets_values":["example.png","image"],"color":"#432","bgcolor":"#653"},{"id":629,"type":"YANC.ConcatStrings","pos":[6976.842391217718,979.8009057403067],"size":[210,78],"flags":{},"order":47,"mode":0,"inputs":[{"localized_name":"a_optional","name":"a_optional","shape":7,"type":"STRING","link":683},{"localized_name":"b_optional","name":"b_optional","shape":7,"type":"STRING","link":684},{"localized_name":"separator","name":"separator","type":"STRING","widget":{"name":"separator"}}],"outputs":[{"localized_name":"STRING","name":"STRING","type":"STRING","slot_index":0,"links":[687]}],"title":"ํŒŒ์ผ ์ด๋ฆ„ ์กฐํ•ฉ 1","properties":{"cnr_id":"comfyui-yanc","ver":"1445232b23f4bd6d5644e850236c042808eb9efa","Node name for S&R":"YANC.ConcatStrings","aux_id":"ka-puna/comfyui-yanc"},"widgets_values":["_"]},{"id":630,"type":"YANC.ConcatStrings","pos":[6976.842391217718,1095.777294308494],"size":[210,78],"flags":{},"order":50,"mode":0,"inputs":[{"localized_name":"a_optional","name":"a_optional","shape":7,"type":"STRING","link":687},{"localized_name":"b_optional","name":"b_optional","shape":7,"type":"STRING","link":685},{"localized_name":"separator","name":"separator","type":"STRING","widget":{"name":"separator"}}],"outputs":[{"localized_name":"STRING","name":"STRING","type":"STRING","slot_index":0,"links":[688]}],"title":"ํŒŒ์ผ ์ด๋ฆ„ ์กฐํ•ฉ 2","properties":{"cnr_id":"comfyui-yanc","ver":"8.25.1","Node name for S&R":"YANC.ConcatStrings","aux_id":"ka-puna/comfyui-yanc"},"widgets_values":["_"]},{"id":624,"type":"YANC.ConcatStrings","pos":[6976.842391217718,1211.221195878078],"size":[210,78],"flags":{},"order":54,"mode":0,"inputs":[{"localized_name":"a_optional","name":"a_optional","shape":7,"type":"STRING","link":688},{"localized_name":"b_optional","name":"b_optional","shape":7,"type":"STRING","link":689},{"localized_name":"separator","name":"separator","type":"STRING","widget":{"name":"separator"}}],"outputs":[{"localized_name":"STRING","name":"STRING","type":"STRING","slot_index":0,"links":[721]}],"title":"ํŒŒ์ผ ์ด๋ฆ„ ์กฐํ•ฉ 3","properties":{"cnr_id":"comfyui-yanc","ver":"1445232b23f4bd6d5644e850236c042808eb9efa","Node name for S&R":"YANC.ConcatStrings","aux_id":"ka-puna/comfyui-yanc"},"widgets_values":["_"]},{"id":617,"type":"YANC.FormatDatetimeString","pos":[6976.842391217718,1326.5329508120872],"size":[210,58],"flags":{},"order":23,"mode":0,"inputs":[{"localized_name":"string_format","name":"string_format","type":"STRING","widget":{"name":"string_format"}}],"outputs":[{"localized_name":"STRING","name":"STRING","type":"STRING","slot_index":0,"links":[689]}],"title":"ํƒ€์ž„์Šคํƒฌํ”„ (Timestamp)","properties":{"cnr_id":"comfyui-yanc","ver":"1445232b23f4bd6d5644e850236c042808eb9efa","Node name for S&R":"YANC.FormatDatetimeString","aux_id":"ka-puna/comfyui-yanc"},"widgets_values":["%Y%m%d_%H%M%S"]},{"id":625,"type":"YANC.ConcatStrings","pos":[6749.2155793622715,1011.3802653169413],"size":[210,78],"flags":{},"order":51,"mode":0,"inputs":[{"localized_name":"a_optional","name":"a_optional","shape":7,"type":"STRING","link":875},{"localized_name":"b_optional","name":"b_optional","shape":7,"type":"STRING","link":651},{"localized_name":"separator","name":"separator","type":"STRING","widget":{"name":"separator"}}],"outputs":[{"localized_name":"STRING","name":"STRING","type":"STRING","slot_index":0,"links":[652]}],"title":"์กฐํ•ฉ 2: + ์บ๋ฆญํ„ฐ","properties":{"cnr_id":"comfyui-yanc","ver":"1445232b23f4bd6d5644e850236c042808eb9efa","Node name for S&R":"YANC.ConcatStrings","aux_id":"ka-puna/comfyui-yanc"},"widgets_values":[", "]},{"id":626,"type":"YANC.ConcatStrings","pos":[6749.2155793622715,1126.9754428013457],"size":[210,78],"flags":{},"order":55,"mode":0,"inputs":[{"localized_name":"a_optional","name":"a_optional","shape":7,"type":"STRING","link":652},{"localized_name":"b_optional","name":"b_optional","shape":7,"type":"STRING","link":653},{"localized_name":"separator","name":"separator","type":"STRING","widget":{"name":"separator"}}],"outputs":[{"localized_name":"STRING","name":"STRING","type":"STRING","slot_index":0,"links":[654]}],"title":"์กฐํ•ฉ 3: + ์˜์ƒ","properties":{"cnr_id":"comfyui-yanc","ver":"1445232b23f4bd6d5644e850236c042808eb9efa","Node name for S&R":"YANC.ConcatStrings","aux_id":"ka-puna/comfyui-yanc"},"widgets_values":[", "]},{"id":627,"type":"YANC.ConcatStrings","pos":[6749.2155793622715,1242.6032528031992],"size":[210,78],"flags":{},"order":58,"mode":0,"inputs":[{"localized_name":"a_optional","name":"a_optional","shape":7,"type":"STRING","link":654},{"localized_name":"b_optional","name":"b_optional","shape":7,"type":"STRING","link":656},{"localized_name":"separator","name":"separator","type":"STRING","widget":{"name":"separator"}}],"outputs":[{"localized_name":"STRING","name":"STRING","type":"STRING","slot_index":0,"links":[658]}],"title":"์กฐํ•ฉ 4: + ์Šคํƒ€์ผ","properties":{"cnr_id":"comfyui-yanc","ver":"1445232b23f4bd6d5644e850236c042808eb9efa","Node name for S&R":"YANC.ConcatStrings","aux_id":"ka-puna/comfyui-yanc"},"widgets_values":[", "]},{"id":609,"type":"CLIPTextEncode","pos":[6749.2155793622715,1357.689065821899],"size":[210,88],"flags":{},"order":64,"mode":0,"inputs":[{"localized_name":"clip","name":"clip","type":"CLIP","link":657},{"localized_name":"text","name":"text","type":"STRING","widget":{"name":"text"},"link":658}],"outputs":[{"localized_name":"CONDITIONING","name":"CONDITIONING","type":"CONDITIONING","slot_index":0,"links":[819,822]}],"title":"โœ… ์ตœ์ข… ๊ธ์ • ํ”„๋กฌํ”„ํŠธ","properties":{"cnr_id":"comfy-core","ver":"0.3.65","Node name for S&R":"CLIPTextEncode"},"widgets_values":[""]},{"id":611,"type":"VAEDecode","pos":[6976.842391217718,894.7912443864976],"size":[210,46],"flags":{},"order":65,"mode":0,"inputs":[{"localized_name":"samples","name":"samples","type":"LATENT","link":833},{"localized_name":"vae","name":"vae","type":"VAE","link":830}],"outputs":[{"localized_name":"IMAGE","name":"IMAGE","type":"IMAGE","slot_index":0,"links":[831]}],"properties":{"cnr_id":"comfy-core","ver":"0.3.65","Node name for S&R":"VAEDecode"},"widgets_values":[]},{"id":610,"type":"CLIPTextEncode","pos":[6749.2155793622715,1482.4433606603484],"size":[210,88],"flags":{},"order":57,"mode":0,"inputs":[{"localized_name":"clip","name":"clip","type":"CLIP","link":657},{"localized_name":"text","name":"text","type":"STRING","widget":{"name":"text"},"link":664}],"outputs":[{"localized_name":"CONDITIONING","name":"CONDITIONING","type":"CONDITIONING","slot_index":0,"links":[823,826]}],"title":"๐Ÿšซ ์ตœ์ข… ๋ถ€์ • ํ”„๋กฌํ”„ํŠธ","properties":{"cnr_id":"comfy-core","ver":"0.3.65","Node name for S&R":"CLIPTextEncode"},"widgets_values":[""]},{"id":810,"type":"YANC.ConcatStrings","pos":[6749.2155793622715,896.0545579293849],"size":[210,78],"flags":{},"order":48,"mode":0,"inputs":[{"localized_name":"a_optional","name":"a_optional","shape":7,"type":"STRING","link":650},{"localized_name":"b_optional","name":"b_optional","shape":7,"type":"STRING","link":874},{"localized_name":"separator","name":"separator","type":"STRING","widget":{"name":"separator"}}],"outputs":[{"localized_name":"STRING","name":"STRING","type":"STRING","slot_index":0,"links":[875]}],"title":"์กฐํ•ฉ 1: ๊ฐ์ • + ๋žœ๋ค ๋‹จ์–ด","properties":{"cnr_id":"comfyui-yanc","ver":"1445232b23f4bd6d5644e850236c042808eb9efa","Node name for S&R":"YANC.ConcatStrings","aux_id":"ka-puna/comfyui-yanc"},"widgets_values":[", "]},{"id":700,"type":"PrimitiveNode","pos":[6531.710510145106,1586.8195045940638],"size":[210,82],"flags":{},"order":24,"mode":0,"inputs":[],"outputs":[{"name":"INT","type":"INT","widget":{"name":"select"},"slot_index":0,"links":[836]}],"title":"๐ŸŽฒ ๋žœ๋ค ํ’€ ์ „์šฉ ์‹œ๋“œ","properties":{"Run widget replace on values":false,"Node name for S&R":"PrimitiveNode"},"widgets_values":[280739022362709,"randomize"]},{"id":701,"type":"ImpactStringSelector","pos":[6531.710510145106,1414.31845730851],"size":[210,136],"flags":{},"order":39,"mode":0,"inputs":[{"localized_name":"strings","name":"strings","type":"STRING","widget":{"name":"strings"},"link":873},{"localized_name":"multiline","name":"multiline","type":"BOOLEAN","widget":{"name":"multiline"}},{"localized_name":"select","name":"select","type":"INT","widget":{"name":"select"},"link":836}],"outputs":[{"localized_name":"STRING","name":"STRING","type":"STRING","slot_index":0,"links":[874]}],"title":"๐ŸŽฒ ๋žœ๋ค ํ’€ ์„ ํƒ๊ธฐ","properties":{"cnr_id":"comfyui-impact-pack","ver":"8.25.1","Node name for S&R":"ImpactStringSelector","aux_id":"ltdrdata/ComfyUI-Impact-Pack"},"widgets_values":["true",false,280739022362709]},{"id":805,"type":"ImpactStringSelector","pos":[6531.710510145106,1242.3791597051677],"size":[210,136],"flags":{},"order":45,"mode":0,"inputs":[{"localized_name":"strings","name":"strings","type":"STRING","widget":{"name":"strings"},"link":847},{"localized_name":"multiline","name":"multiline","type":"BOOLEAN","widget":{"name":"multiline"}},{"localized_name":"select","name":"select","type":"INT","widget":{"name":"select"},"link":872}],"outputs":[{"localized_name":"STRING","name":"STRING","type":"STRING","slot_index":0,"links":[650]}],"title":"๊ฐ์ • ํ”„๋กฌํ”„ํŠธ ์„ ํƒ๊ธฐ","properties":{"cnr_id":"comfyui-impact-pack","ver":"8.25.1","Node name for S&R":"ImpactStringSelector","aux_id":"ltdrdata/ComfyUI-Impact-Pack"},"widgets_values":["true",0,0]},{"id":803,"type":"ImpactStringSelector","pos":[6531.710510145106,1069.0765908334815],"size":[210,136],"flags":{},"order":43,"mode":0,"inputs":[{"localized_name":"strings","name":"strings","type":"STRING","widget":{"name":"strings"},"link":845},{"localized_name":"multiline","name":"multiline","type":"BOOLEAN","widget":{"name":"multiline"}},{"localized_name":"select","name":"select","type":"INT","widget":{"name":"select"},"link":870}],"outputs":[{"localized_name":"STRING","name":"STRING","type":"STRING","slot_index":0,"links":[653]}],"title":"์˜์ƒ ํ”„๋กฌํ”„ํŠธ ์„ ํƒ๊ธฐ","properties":{"cnr_id":"comfyui-impact-pack","ver":"8.25.1","Node name for S&R":"ImpactStringSelector","aux_id":"ltdrdata/ComfyUI-Impact-Pack"},"widgets_values":["true",0,0]},{"id":801,"type":"ImpactStringSelector","pos":[6531.710510145106,896.1816599877762],"size":[210,136],"flags":{},"order":41,"mode":0,"inputs":[{"localized_name":"strings","name":"strings","type":"STRING","widget":{"name":"strings"},"link":843},{"localized_name":"multiline","name":"multiline","type":"BOOLEAN","widget":{"name":"multiline"}},{"localized_name":"select","name":"select","type":"INT","widget":{"name":"select"},"link":868}],"outputs":[{"localized_name":"STRING","name":"STRING","type":"STRING","slot_index":0,"links":[651]}],"title":"์บ๋ฆญํ„ฐ ํ”„๋กฌํ”„ํŠธ ์„ ํƒ๊ธฐ","properties":{"cnr_id":"comfyui-impact-pack","ver":"8.25.1","Node name for S&R":"ImpactStringSelector","aux_id":"ltdrdata/ComfyUI-Impact-Pack"},"widgets_values":["true",0,0]},{"id":802,"type":"ImpactStringSelector","pos":[6312.54266879757,1069.5183514087862],"size":[210,136],"flags":{},"order":42,"mode":0,"inputs":[{"localized_name":"strings","name":"strings","type":"STRING","widget":{"name":"strings"},"link":844},{"localized_name":"multiline","name":"multiline","type":"BOOLEAN","widget":{"name":"multiline"}},{"localized_name":"select","name":"select","type":"INT","widget":{"name":"select"},"link":869}],"outputs":[{"localized_name":"STRING","name":"STRING","type":"STRING","slot_index":0,"links":[684]}],"title":"์˜์ƒ ์ด๋ฆ„ ์„ ํƒ๊ธฐ","properties":{"cnr_id":"comfyui-impact-pack","ver":"8.25.1","Node name for S&R":"ImpactStringSelector","aux_id":"ltdrdata/ComfyUI-Impact-Pack"},"widgets_values":["true",0,0]},{"id":804,"type":"ImpactStringSelector","pos":[6312.54266879757,1242.1135536089132],"size":[210,136],"flags":{},"order":44,"mode":0,"inputs":[{"localized_name":"strings","name":"strings","type":"STRING","widget":{"name":"strings"},"link":846},{"localized_name":"multiline","name":"multiline","type":"BOOLEAN","widget":{"name":"multiline"}},{"localized_name":"select","name":"select","type":"INT","widget":{"name":"select"},"link":871}],"outputs":[{"localized_name":"STRING","name":"STRING","type":"STRING","slot_index":0,"links":[685]}],"title":"๊ฐ์ • ์ด๋ฆ„ ์„ ํƒ๊ธฐ","properties":{"cnr_id":"comfyui-impact-pack","ver":"8.25.1","Node name for S&R":"ImpactStringSelector","aux_id":"ltdrdata/ComfyUI-Impact-Pack"},"widgets_values":["true",0,0]},{"id":800,"type":"ImpactStringSelector","pos":[6312.54266879757,897.1782617152486],"size":[210,136],"flags":{},"order":40,"mode":0,"inputs":[{"localized_name":"strings","name":"strings","type":"STRING","widget":{"name":"strings"},"link":842},{"localized_name":"multiline","name":"multiline","type":"BOOLEAN","widget":{"name":"multiline"}},{"localized_name":"select","name":"select","type":"INT","widget":{"name":"select"},"link":867}],"outputs":[{"localized_name":"STRING","name":"STRING","type":"STRING","slot_index":0,"links":[683]}],"title":"์บ๋ฆญํ„ฐ ์ด๋ฆ„ ์„ ํƒ๊ธฐ","properties":{"cnr_id":"comfyui-impact-pack","ver":"8.25.1","Node name for S&R":"ImpactStringSelector","aux_id":"ltdrdata/ComfyUI-Impact-Pack"},"widgets_values":["true",0,0]},{"id":515,"type":"Note","pos":[6312.54266879757,770.5653445971296],"size":[874.0786601297968,88],"flags":{},"order":25,"mode":0,"inputs":[],"outputs":[],"title":"๋น„๊ณ /์ฐธ๊ณ  ์‚ฌํ•ญ","properties":{},"widgets_values":["**์ผ๋ฐ˜ ์‚ฌ์šฉ์ž๋Š” ๊ฑด๋“œ๋ฆด ํ•„์š”๊ฐ€ ์—†๋Š” ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค. ํ™”๋ฉด์˜ ๋ฏธ๊ด€์„ ์œ„ํ•ด ๋ชจ๋‘ ํ•œ๊ณณ์— ์ •๋ฆฌํ•ด ๋‘์—ˆ์Šต๋‹ˆ๋‹ค.**"],"color":"#222","bgcolor":"#000"},{"id":220,"type":"SaveImage","pos":[9228.852676713788,1970.7755975771674],"size":[320,410],"flags":{},"order":60,"mode":0,"inputs":[{"localized_name":"images","name":"images","type":"IMAGE","link":832},{"localized_name":"filename_prefix","name":"filename_prefix","type":"STRING","widget":{"name":"filename_prefix"},"link":721}],"outputs":[],"properties":{"cnr_id":"comfy-core","ver":"0.3.65","Node name for S&R":"SaveImage"},"widgets_values":["ComfyUI"],"color":"#323","bgcolor":"#535"},{"id":548,"type":"LoraLoader","pos":[5393.2881449632505,894.0926076915237],"size":[421.3982080281894,126],"flags":{},"order":38,"mode":4,"inputs":[{"localized_name":"model","name":"model","type":"MODEL","link":334},{"localized_name":"clip","name":"clip","type":"CLIP","link":335},{"localized_name":"lora_name","name":"lora_name","type":"COMBO","widget":{"name":"lora_name"}},{"localized_name":"strength_model","name":"strength_model","type":"FLOAT","widget":{"name":"strength_model"}},{"localized_name":"strength_clip","name":"strength_clip","type":"FLOAT","widget":{"name":"strength_clip"}}],"outputs":[{"localized_name":"MODEL","name":"MODEL","type":"MODEL","slot_index":0,"links":[302]},{"localized_name":"CLIP","name":"CLIP","type":"CLIP","slot_index":1,"links":[303]}],"title":"LoRA ๋ชจ๋ธ 1","properties":{"cnr_id":"comfy-core","ver":"0.3.65","Node name for S&R":"LoraLoader"},"widgets_values":["",1,1],"color":"#432","bgcolor":"#653"},{"id":549,"type":"LoraLoader","pos":[5393.2881449632505,1056.876034648698],"size":[422.97017730184325,126],"flags":{},"order":46,"mode":4,"inputs":[{"localized_name":"model","name":"model","type":"MODEL","link":302},{"localized_name":"clip","name":"clip","type":"CLIP","link":303},{"localized_name":"lora_name","name":"lora_name","type":"COMBO","widget":{"name":"lora_name"}},{"localized_name":"strength_model","name":"strength_model","type":"FLOAT","widget":{"name":"strength_model"}},{"localized_name":"strength_clip","name":"strength_clip","type":"FLOAT","widget":{"name":"strength_clip"}}],"outputs":[{"localized_name":"MODEL","name":"MODEL","type":"MODEL","slot_index":0,"links":[304]},{"localized_name":"CLIP","name":"CLIP","type":"CLIP","slot_index":1,"links":[305]}],"title":"LoRA ๋ชจ๋ธ 2","properties":{"cnr_id":"comfy-core","ver":"0.3.65","Node name for S&R":"LoraLoader"},"widgets_values":["",1,1],"color":"#432","bgcolor":"#653"},{"id":10,"type":"YANC.MultilineString","pos":[4142.66064453125,2227.34033203125],"size":[580,200],"flags":{},"order":26,"mode":0,"inputs":[{"localized_name":"string","name":"string","type":"STRING","widget":{"name":"string"}}],"outputs":[{"localized_name":"STRING","name":"STRING","type":"STRING","slot_index":0,"links":[656]}],"title":"โœ… ๊ธ์ • ํ”„๋กฌํ”„ํŠธ","properties":{"cnr_id":"comfyui-yanc","ver":"1445232b23f4bd6d5644e850236c042808eb9efa","Node name for S&R":"StylePrompt","aux_id":"ka-puna/comfyui-yanc"},"widgets_values":["masterpiece, best quality"],"color":"#232","bgcolor":"#353"},{"id":582,"type":"Note","pos":[3796.922446759251,1973.5632010844909],"size":[210,693.850341796875],"flags":{},"order":27,"mode":0,"inputs":[],"outputs":[],"title":"๐Ÿ“Œ ํ”„๋กฌํ”„ํŠธ ๋ณด๊ด€ํ•จ","properties":{},"widgets_values":["๊ต์ฒดํ•ด์•ผ ํ•  ์˜ˆ๋น„ ํ”„๋กฌํ”„ํŠธ๋ฅผ ๋ฐฐ์น˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค"],"color":"#233","bgcolor":"#355"},{"id":18,"type":"YANC.MultilineString","pos":[4142.66064453125,2484.199951171875],"size":[580,260],"flags":{},"order":28,"mode":0,"inputs":[{"localized_name":"string","name":"string","type":"STRING","widget":{"name":"string"}}],"outputs":[{"localized_name":"STRING","name":"STRING","type":"STRING","slot_index":0,"links":[664]}],"title":"๐Ÿšซ ๋ถ€์ • ํ”„๋กฌํ”„ํŠธ","properties":{"cnr_id":"comfyui-yanc","ver":"1445232b23f4bd6d5644e850236c042808eb9efa","Node name for S&R":"NegativePrompt","aux_id":"ka-puna/comfyui-yanc"},"widgets_values":["bad quality, worst quality, worst detail"],"color":"#232","bgcolor":"#353"},{"id":12,"type":"YANC.MultilineString","pos":[5187.13232421875,2227.34033203125],"size":[739.16943359375,680.1710815429688],"flags":{},"order":29,"mode":0,"inputs":[{"localized_name":"string","name":"string","type":"STRING","widget":{"name":"string"}}],"outputs":[{"localized_name":"STRING","name":"STRING","type":"STRING","slot_index":0,"links":[843]}],"title":"๐Ÿ‘ค ์บ๋ฆญํ„ฐ ํ”„๋กฌํ”„ํŠธ (์ˆœ์„œ๋Š” ์™ผ์ชฝ ์ด๋ฆ„๊ณผ ์ผ์น˜ํ•ด์•ผ ํ•จ)","properties":{"cnr_id":"comfyui-yanc","ver":"1445232b23f4bd6d5644e850236c042808eb9efa","Node name for S&R":"CharacterPrompts","aux_id":"ka-puna/comfyui-yanc"},"widgets_values":[""],"color":"#232","bgcolor":"#353"},{"id":11,"type":"YANC.MultilineString","pos":[4864.658203125,2227.34033203125],"size":[304.1833801269531,676.0800170898438],"flags":{},"order":30,"mode":0,"inputs":[{"localized_name":"string","name":"string","type":"STRING","widget":{"name":"string"}}],"outputs":[{"localized_name":"STRING","name":"STRING","type":"STRING","slot_index":0,"links":[842]}],"title":"๐Ÿ‘ค ์บ๋ฆญํ„ฐ ์ด๋ฆ„","properties":{"cnr_id":"comfyui-yanc","ver":"1445232b23f4bd6d5644e850236c042808eb9efa","Node name for S&R":"Characters","aux_id":"ka-puna/comfyui-yanc"},"widgets_values":[""],"color":"#232","bgcolor":"#353"},{"id":13,"type":"YANC.MultilineString","pos":[6005.70458984375,2227.34033203125],"size":[293.6859436035156,680.3911743164062],"flags":{},"order":31,"mode":0,"inputs":[{"localized_name":"string","name":"string","type":"STRING","widget":{"name":"string"}}],"outputs":[{"localized_name":"STRING","name":"STRING","type":"STRING","slot_index":0,"links":[844]}],"title":"๐Ÿ‘— ์˜์ƒ ์ด๋ฆ„ ๋ชฉ๋ก","properties":{"cnr_id":"comfyui-yanc","ver":"1445232b23f4bd6d5644e850236c042808eb9efa","Node name for S&R":"OutfitNames","aux_id":"ka-puna/comfyui-yanc"},"widgets_values":[""],"color":"#232","bgcolor":"#353"},{"id":14,"type":"YANC.MultilineString","pos":[6313.9150390625,2227.34033203125],"size":[739.0233154296875,680.6255493164062],"flags":{},"order":32,"mode":0,"inputs":[{"localized_name":"string","name":"string","type":"STRING","widget":{"name":"string"}}],"outputs":[{"localized_name":"STRING","name":"STRING","type":"STRING","slot_index":0,"links":[845]}],"title":"๐Ÿ‘— ์˜์ƒ ํ”„๋กฌํ”„ํŠธ (์ˆœ์„œ๋Š” ์™ผ์ชฝ ์ด๋ฆ„๊ณผ ์ผ์น˜ํ•ด์•ผ ํ•จ)","properties":{"cnr_id":"comfyui-yanc","ver":"1445232b23f4bd6d5644e850236c042808eb9efa","Node name for S&R":"OutfitPrompts","aux_id":"ka-puna/comfyui-yanc"},"widgets_values":[""],"color":"#232","bgcolor":"#353"},{"id":502,"type":"Note","pos":[8483.68359375,2262.110595703125],"size":[210,362.90765380859375],"flags":{},"order":33,"mode":0,"inputs":[],"outputs":[],"title":"๐Ÿ“Œ ์บ๋ฆญํ„ฐ ์˜ต์…˜","properties":{},"widgets_values":["1. \n2.\n3."],"color":"#223","bgcolor":"#335"},{"id":540,"type":"Note","pos":[8711.7470703125,2262.110595703125],"size":[210,362.0140686035156],"flags":{},"order":34,"mode":0,"inputs":[],"outputs":[],"title":"๐Ÿ“Œ ์˜์ƒ ์˜ต์…˜","properties":{},"widgets_values":["1. \n2.\n3."],"color":"#223","bgcolor":"#335"},{"id":20,"type":"ImpactInt","pos":[8483.68359375,2140.197265625],"size":[210,80],"flags":{},"order":35,"mode":0,"inputs":[{"localized_name":"value","name":"value","type":"INT","widget":{"name":"value"}}],"outputs":[{"localized_name":"INT","name":"INT","type":"INT","slot_index":0,"links":[867,868]}],"title":"๐Ÿ‘ค ์บ๋ฆญํ„ฐ ์„ ํƒ๊ธฐ","properties":{"cnr_id":"comfyui-impact-pack","ver":"8.25.1","Node name for S&R":"CharacterSelector","aux_id":"ltdrdata/ComfyUI-Impact-Pack"},"widgets_values":[0],"color":"#223","bgcolor":"#335"},{"id":21,"type":"ImpactInt","pos":[8711.7470703125,2140.197265625],"size":[210,80],"flags":{},"order":36,"mode":0,"inputs":[{"localized_name":"value","name":"value","type":"INT","widget":{"name":"value"}}],"outputs":[{"localized_name":"INT","name":"INT","type":"INT","slot_index":0,"links":[869,870]}],"title":"๐Ÿ‘— ์˜์ƒ ์„ ํƒ๊ธฐ","properties":{"cnr_id":"comfyui-impact-pack","ver":"8.25.1","Node name for S&R":"OutfitSelector","aux_id":"ltdrdata/ComfyUI-Impact-Pack"},"widgets_values":[0],"color":"#223","bgcolor":"#335"},{"id":22,"type":"ImpactInt","pos":[8935.8076171875,2140.197265625],"size":[210,80],"flags":{},"order":37,"mode":0,"inputs":[{"localized_name":"value","name":"value","type":"INT","widget":{"name":"value"}}],"outputs":[{"localized_name":"INT","name":"INT","type":"INT","slot_index":0,"links":[871,872]}],"title":"๐Ÿ˜Š ๊ฐ์ •/๋™์ž‘ ์„ ํƒ๊ธฐ","properties":{"cnr_id":"comfyui-impact-pack","ver":"8.25.1","Node name for S&R":"EmotionSelector","aux_id":"ltdrdata/ComfyUI-Impact-Pack"},"widgets_values":[0],"color":"#223","bgcolor":"#335"}],"links":[[40,40,0,50,3,"LATENT"],[302,548,0,549,0,"MODEL"],[303,548,1,549,1,"CLIP"],[304,549,0,550,0,"MODEL"],[305,549,1,550,1,"CLIP"],[320,550,1,555,0,"CLIP"],[334,1,0,548,0,"MODEL"],[335,1,1,548,1,"CLIP"],[386,60,0,565,0,"UPSCALE_MODEL"],[425,50,0,576,0,"LATENT"],[426,576,0,552,3,"LATENT"],[650,805,0,810,0,"STRING"],[651,801,0,625,1,"STRING"],[652,625,0,626,0,"STRING"],[653,803,0,626,1,"STRING"],[654,626,0,627,0,"STRING"],[656,10,0,627,1,"STRING"],[657,555,0,610,0,"CLIP"],[658,627,0,609,1,"STRING"],[664,18,0,610,1,"STRING"],[683,800,0,629,0,"STRING"],[684,802,0,629,1,"STRING"],[685,804,0,630,1,"STRING"],[687,629,0,630,0,"STRING"],[688,630,0,624,0,"STRING"],[689,617,0,624,1,"STRING"],[721,624,0,220,1,"STRING"],[819,609,0,50,1,"CONDITIONING"],[822,609,0,552,1,"CONDITIONING"],[823,610,0,50,2,"CONDITIONING"],[826,610,0,552,2,"CONDITIONING"],[830,1,2,611,1,"VAE"],[831,611,0,565,1,"IMAGE"],[832,565,0,220,0,"IMAGE"],[833,552,0,611,0,"LATENT"],[836,700,0,701,2,"INT"],[842,11,0,800,0,"STRING"],[843,12,0,801,0,"STRING"],[844,13,0,802,0,"STRING"],[845,14,0,803,0,"STRING"],[846,15,0,804,0,"STRING"],[847,16,0,805,0,"STRING"],[861,550,0,807,0,"MODEL"],[862,807,0,808,0,"MODEL"],[863,807,1,808,1,"IPADAPTER"],[864,806,0,808,2,"IMAGE"],[865,808,0,50,0,"MODEL"],[866,808,0,552,0,"MODEL"],[867,20,0,800,2,"INT"],[868,20,0,801,2,"INT"],[869,21,0,802,2,"INT"],[870,21,0,803,2,"INT"],[871,22,0,804,2,"INT"],[872,22,0,805,2,"INT"],[873,17,0,701,0,"STRING"],[874,701,0,810,1,"STRING"],[875,810,0,625,0,"STRING"]],"groups":[{"id":2,"title":"๐Ÿ“Œ ๋ชจ๋ธ ๋กœ๋“œ ๊ฐ’","bounding":[4034.352294921875,690.9138549804687,307.8123788111707,515.3959392055425],"color":"#A88","font_size":24,"flags":{}},{"id":6,"title":"๐Ÿ“Œ ์„ ํƒ๊ธฐ","bounding":[8473.68359375,1938.91455078125,689.938720703125,2107.04736328125],"color":"#88A","font_size":24,"flags":{}},{"id":7,"title":"๐Ÿ“Œ ๋ธ”๋ž™ ๋ฐ•์Šค","bounding":[6302.54266879757,696.9653445971295,894.2997224201486,981.8541599969329],"color":"#444","font_size":24,"flags":{}},{"id":13,"title":"๐Ÿ“Œ ์ด๋ฏธ์ง€ ์ƒ์„ฑ ๋ชจ๋ธ ์„ค์ • ๊ฐ’","bounding":[4355.495230148616,691.9401027206734,310.12841796875,584.6402587890625],"color":"#A88","font_size":24,"flags":{}},{"id":17,"title":"๐Ÿ“Œ ํ™•๋Œ€/์ •๋ฐ€ ๋ณด์ • ์„ค์ •","bounding":[4681.603200949492,693.3263684893252,287.42724609375,604.74462890625],"color":"#A88","font_size":24,"flags":{}},{"id":18,"title":"๐Ÿ“Œ LoRA ์„ค์ • (์„ ํƒ ์‚ฌํ•ญ)","bounding":[5383.2881449632505,695.3653536264918,443.2602901197315,659.8103246954807],"color":"#b58b2a","font_size":24,"flags":{}},{"id":19,"title":"๐Ÿ“Œ ํ”„๋กฌํ”„ํŠธ ๊ฐ’","bounding":[4036.716064453125,1940.318115234375,4377.12109375,2108.97509765625],"color":"#8A8","font_size":24,"flags":{}},{"id":20,"title":"๐Ÿ“Œ ์ด๋ฏธ์ง€ ํฌ๊ธฐ, ์ƒ์„ฑ ์žฅ์ˆ˜(๋ฐฐ์น˜ ์‚ฌ์ด์ฆˆ) ์„ค์ •","bounding":[5057.923717434593,695.2932602598474,297.79330328152264,365.8953212006196],"color":"#b58b2a","font_size":24,"flags":{}},{"id":21,"title":"๐Ÿ“Œ ์ด๋ฏธ์ง€ ํ™•๋Œ€/์ˆ˜์ • (์„ ํƒ ์‚ฌํ•ญ)","bounding":[5060.887677603601,1076.2838442640973,295.45835116845683,261.6572509765625],"color":"#b58b2a","font_size":24,"flags":{}},{"id":22,"title":"๐Ÿ“Œ ์บ๋ฆญํ„ฐ ์ผ๊ด€์„ฑ ์„ค์ • (์„ ํƒ ์‚ฌํ•ญ)","bounding":[5858.581561218039,696.7175570438939,355.241943359375,951.8958740234375],"color":"#b58b2a","font_size":24,"flags":{}}],"config":{},"extra":{"ds":{"scale":0.7364816866080054,"offset":[-7879.877220106133,-1679.6826533094581]}},"version":0.4}
script_ko.sh ADDED
@@ -0,0 +1,336 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/bin/bash
2
+ set -uo pipefail
3
+ set +H
4
+
5
+ export PIP_NO_CACHE_DIR=1
6
+ export PIP_DISABLE_PIP_VERSION_CHECK=1
7
+ export GIT_TERMINAL_PROMPT=0
8
+
9
+ source /venv/main/bin/activate
10
+ COMFYUI_DIR="${WORKSPACE:-/workspace}/ComfyUI"
11
+ if [ -f "/venv/main/bin/python" ]; then
12
+ PYTHON_BIN="/venv/main/bin/python"
13
+ PIP_BIN="/venv/main/bin/pip"
14
+ else
15
+ PYTHON_BIN="python3"
16
+ PIP_BIN="pip3"
17
+ fi
18
+
19
+ APT_PACKAGES=(
20
+ "aria2"
21
+ )
22
+ PIP_PACKAGES=(
23
+ )
24
+ NODES=(
25
+ "https://github.com/ltdrdata/ComfyUI-Impact-Pack.git"
26
+ "https://github.com/ltdrdata/ComfyUI-Impact-Subpack.git"
27
+ "https://github.com/cubiq/ComfyUI_IPAdapter_plus.git"
28
+ "https://github.com/ka-puna/comfyui-yanc.git"
29
+ )
30
+ CHECKPOINT_MODELS=(
31
+ "https://huggingface.co/JCscrew/RisuAI_asset_generator/resolve/main/models/checkpoints/waiNSFWIllustrious_v150.safetensors"
32
+ )
33
+ CLIP_VISION_MODELS=(
34
+ "https://huggingface.co/JCscrew/RisuAI_asset_generator/resolve/main/models/clip_vision/CLIP-ViT-H-14-laion2B-s32B-b79K.safetensors"
35
+ )
36
+ IPADAPTER_MODELS=(
37
+ "https://huggingface.co/JCscrew/RisuAI_asset_generator/resolve/main/models/ipadapter/ip-adapter-plus-face_sdxl_vit-h.safetensors"
38
+ )
39
+ ESRGAN_MODELS=(
40
+ "https://huggingface.co/JCscrew/RisuAI_asset_generator/resolve/main/models/upscale_models/RealESRGAN_x4plus_anime_6B.pth"
41
+ )
42
+ WORKFLOWS=(
43
+ "https://huggingface.co/JCscrew/RisuAI_asset_generator/resolve/main/Single_Posture_TC.json"
44
+ )
45
+
46
+ log_info() { echo "--> $1"; }
47
+ log_warn() { echo " โš ๏ธ $1"; }
48
+ log_error() { echo " โŒ $1"; }
49
+ log_success() { echo " โœ… $1"; }
50
+ log_step() { echo ""; echo "=== [Step $1] $2 ==="; }
51
+
52
+ package_installed() {
53
+ $PYTHON_BIN -c "import $1" 2>/dev/null && return 0 || return 1
54
+ }
55
+
56
+ filter_requirements() {
57
+ local req_file="$1"
58
+ local tmp_file="${req_file}.filtered"
59
+ > "$tmp_file"
60
+ while IFS= read -r line; do
61
+ [[ -z "$line" || "$line" =~ ^# ]] && continue
62
+ local pkg_name
63
+ pkg_name=$(echo "$line" | sed 's/[<>=!].*//' | xargs)
64
+ if [[ -z "$pkg_name" ]]; then continue; fi
65
+ local module_name="${pkg_name//-/_}"
66
+ if package_installed "$module_name"; then
67
+ log_info "์„ค์น˜๋œ ํŒจํ‚ค์ง€ ๊ฑด๋„ˆ๋›ฐ๊ธฐ: $pkg_name"
68
+ else
69
+ echo "$line" >> "$tmp_file"
70
+ fi
71
+ done < "$req_file"
72
+ if [ -s "$tmp_file" ]; then
73
+ mv "$tmp_file" "$req_file"
74
+ return 0
75
+ else
76
+ rm -f "$tmp_file"
77
+ log_info "๋ชจ๋“  ํŒจํ‚ค์ง€๊ฐ€ ์ด๋ฏธ ์„ค์น˜๋˜์—ˆ์Šต๋‹ˆ๋‹ค"
78
+ return 1
79
+ fi
80
+ }
81
+
82
+ provisioning_has_valid_hf_token() {
83
+ [[ -n "${HF_TOKEN:-}" ]] || return 1
84
+ local response
85
+ response=$(curl -o /dev/null -s -w "%{http_code}" -X GET "https://huggingface.co/api/whoami-v2" -H "Authorization: Bearer $HF_TOKEN" -H "Content-Type: application/json")
86
+ [ "$response" -eq 200 ]
87
+ }
88
+
89
+ provisioning_has_valid_civitai_token() {
90
+ [[ -n "${CIVITAI_TOKEN:-}" ]] || return 1
91
+ local response
92
+ response=$(curl -o /dev/null -s -w "%{http_code}" -X GET "https://civitai.com/api/v1/models?hidden=1&limit=1" -H "Authorization: Bearer $CIVITAI_TOKEN" -H "Content-Type: application/json")
93
+ [ "$response" -eq 200 ]
94
+ }
95
+
96
+ install_node() {
97
+ local repo_url="$1"
98
+ local repo_name
99
+ repo_name=$(basename "$repo_url" .git)
100
+ local install_path="${COMFYUI_DIR}/custom_nodes/${repo_name}"
101
+
102
+ if [ -d "$install_path" ]; then
103
+ if [[ "${AUTO_UPDATE:-true}" != "false" ]]; then
104
+ log_info "๋…ธ๋“œ ์—…๋ฐ์ดํŠธ: $repo_name"
105
+ (cd "$install_path" && git pull -q 2>&1 | grep -v "Already up to date" || true)
106
+ else
107
+ log_info "'$repo_name'์ด(๊ฐ€) ์ด๋ฏธ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. ๊ฑด๋„ˆ๋œ๋‹ˆ๋‹ค"
108
+ return
109
+ fi
110
+ else
111
+ log_info "๋…ธ๋“œ ๋ณต์ œ: $repo_name"
112
+ git clone --depth 1 --single-branch "$repo_url" "$install_path" -q 2>&1 || true
113
+ fi
114
+
115
+ if [ -f "$install_path/requirements.txt" ]; then
116
+ log_info "$repo_name์˜ ์ข…์†์„ฑ ์ฒ˜๋ฆฌ ์ค‘..."
117
+ sed -i -e '/^torch/d' -e '/^sam2/d' "$install_path/requirements.txt" 2>/dev/null || true
118
+ if filter_requirements "$install_path/requirements.txt"; then
119
+ log_info "$repo_name์˜ ์ƒˆ๋กœ์šด ์ข…์†์„ฑ ์„ค์น˜ ์ค‘..."
120
+ $PIP_BIN install -q --no-cache-dir -r "$install_path/requirements.txt" 2>&1 | grep -v "Requirement already satisfied" || log_warn "์ผ๋ถ€ ์ข…์†์„ฑ ์„ค์น˜ ์‹คํŒจ"
121
+ fi
122
+ fi
123
+
124
+ if [ -f "$install_path/install.py" ]; then
125
+ log_info "$repo_name์˜ ์„ค์น˜ ์Šคํฌ๋ฆฝํŠธ ์‹คํ–‰ ์ค‘..."
126
+ $PYTHON_BIN "$install_path/install.py" 2>&1 || log_warn "์„ค์น˜ ์Šคํฌ๋ฆฝํŠธ ์‹คํ–‰ ์‹คํŒจ"
127
+ fi
128
+ }
129
+
130
+ download_file() {
131
+ local dest_path="$1"
132
+ local url="$2"
133
+ local filename
134
+ filename=$(basename "$dest_path")
135
+ local tmp_path="${dest_path}.tmp"
136
+
137
+ mkdir -p "$(dirname "$dest_path")"
138
+ if [ -s "$dest_path" ]; then
139
+ log_info "ํŒŒ์ผ '$filename'์ด(๊ฐ€) ์ด๋ฏธ ์กด์žฌํ•˜๊ณ  ์™„์ „ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์šด๋กœ๋“œ๋ฅผ ๊ฑด๋„ˆ๋œ๋‹ˆ๋‹ค"
140
+ return 0
141
+ fi
142
+
143
+ log_info "๋‹ค์šด๋กœ๋“œ: $filename"
144
+ local max_retries=3
145
+ local attempt=0
146
+ local auth_header=""
147
+ local success=1
148
+
149
+ if [[ "$url" =~ huggingface\.co ]] && provisioning_has_valid_hf_token; then
150
+ auth_header="Authorization: Bearer $HF_TOKEN"
151
+ log_info "HuggingFace ํ† ํฐ ์‚ฌ์šฉ"
152
+ elif [[ "$url" =~ civitai\.com ]] && provisioning_has_valid_civitai_token; then
153
+ auth_header="Authorization: Bearer $CIVITAI_TOKEN"
154
+ log_info "CivitAI ํ† ํฐ ์‚ฌ์šฉ"
155
+ fi
156
+
157
+ while [ "$attempt" -lt "$max_retries" ]; do
158
+ attempt=$((attempt + 1))
159
+ [ "$attempt" -gt 1 ] && sleep 10
160
+ if command -v aria2c >/dev/null 2>&1; then
161
+ log_info "aria2c (3 ์Šค๋ ˆ๋“œ)๋กœ ๋‹ค์šด๋กœ๋“œ: $filename (์‹œ๋„ $attempt/$max_retries)"
162
+ local aria_opts=(--console-log-level=error -c -x 3 -s 3 -k 1M --max-connection-per-server=3 --max-tries=3 --retry-wait=5 --timeout=180 --file-allocation=falloc --auto-file-renaming=false -d "$(dirname "$dest_path")" -o "${filename}.tmp")
163
+ [[ -n "$auth_header" ]] && aria_opts+=(--header="$auth_header")
164
+ aria2c "${aria_opts[@]}" "$url"
165
+ if [ $? -eq 0 ]; then success=0; break; fi
166
+ else
167
+ log_info "wget์œผ๋กœ ๋‹ค์šด๋กœ๋“œ: $filename (์‹œ๋„ $attempt/$max_retries)"
168
+ local wget_opts=(-O "$tmp_path" -c --timeout=60 --tries=3 --content-disposition --show-progress)
169
+ [[ -n "$auth_header" ]] && wget_opts+=(--header="$auth_header")
170
+ wget "${wget_opts[@]}" "$url"
171
+ if [ $? -eq 0 ]; then success=0; break; fi
172
+ fi
173
+ done
174
+
175
+ if [ "$success" -eq 0 ] && [ -s "$tmp_path" ]; then
176
+ mv "$tmp_path" "$dest_path"
177
+ log_success "๋‹ค์šด๋กœ๋“œ ์™„๋ฃŒ: $filename"
178
+ return 0
179
+ else
180
+ log_error "๋‹ค์šด๋กœ๋“œ ์‹คํŒจ: $filename"
181
+ rm -f "$tmp_path"
182
+ return 1
183
+ fi
184
+ }
185
+
186
+ download_to_directory() {
187
+ local dest_dir="$1"; shift; local urls=("$@")
188
+ if [ ${#urls[@]} -eq 0 ]; then return 0; fi
189
+ mkdir -p "$dest_dir"
190
+ log_info "${#urls[@]}๊ฐœ์˜ ํŒŒ์ผ์„ $dest_dir(์œผ)๋กœ ๋‹ค์šด๋กœ๋“œ ์ค‘"
191
+ local MAX_PARALLEL=3
192
+ for url in "${urls[@]}"; do
193
+ while [ $(jobs -r | wc -l) -ge $MAX_PARALLEL ]; do sleep 1; done
194
+ local filename
195
+ filename=$(basename "$url" | sed 's/?.*//')
196
+ download_file "${dest_dir}/${filename}" "$url" &
197
+ done
198
+ wait
199
+ }
200
+
201
+ verify_and_retry_downloads() {
202
+ local dest_dir="$1"; shift; local urls=("$@")
203
+ if [ ${#urls[@]} -eq 0 ]; then return 0; fi
204
+ log_info "$dest_dir์˜ ํŒŒ์ผ ํ™•์ธ ์ค‘..."
205
+ local missing_files=()
206
+ for url in "${urls[@]}"; do
207
+ local filename
208
+ filename=$(basename "$url" | sed 's/?.*//')
209
+ local dest_path="${dest_dir}/${filename}"
210
+ if [ ! -s "$dest_path" ]; then
211
+ log_warn "ํŒŒ์ผ ๋ˆ„๋ฝ ๋˜๋Š” ๋ถˆ์™„์ „: $filename"
212
+ missing_files+=("$url")
213
+ fi
214
+ done
215
+ if [ ${#missing_files[@]} -gt 0 ]; then
216
+ log_warn "${#missing_files[@]}๊ฐœ์˜ ๋ˆ„๋ฝ/๋ถˆ์™„์ „ํ•œ ํŒŒ์ผ ๋ฐœ๊ฒฌ, ์žฌ๋‹ค์šด๋กœ๋“œ ์ค‘..."
217
+ download_to_directory "$dest_dir" "${missing_files[@]}"
218
+ else
219
+ log_success "๋ชจ๋“  ํŒŒ์ผ์ด ์กด์žฌํ•˜๊ณ  ์™„์ „ํ•œ ๊ฒƒ์œผ๋กœ ํ™•์ธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค"
220
+ fi
221
+ }
222
+
223
+ provisioning_print_header() {
224
+ echo ""; echo "##############################################"
225
+ echo "# #"
226
+ echo "# ํ”„๋กœ๋น„์ €๋‹ ์ปจํ…Œ์ด๋„ˆ #"
227
+ echo "# #"
228
+ echo "# ์‹œ๊ฐ„์ด ์ข€ ๊ฑธ๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค #"
229
+ echo "# #"
230
+ echo "##############################################"; echo ""
231
+ }
232
+
233
+ provisioning_print_end() {
234
+ echo ""; echo "##############################################"
235
+ echo "# #"
236
+ echo "# ํ”„๋กœ๋น„์ €๋‹ ์™„๋ฃŒ! #"
237
+ echo "# #"
238
+ echo "# Total time: $((END_TIME - START_TIME)) seconds #"
239
+ echo "# #"
240
+ echo "##############################################"; echo ""
241
+ }
242
+
243
+ provisioning_step1_install_core_deps() {
244
+ log_step "1" "์‹œ์Šคํ…œ ๋ฐ ComfyUI ํ•ต์‹ฌ ์ข…์†์„ฑ ์„ค์น˜"
245
+ if [ ${#APT_PACKAGES[@]} -gt 0 ]; then
246
+ log_info "${#APT_PACKAGES[@]}๊ฐœ์˜ ์‹œ์Šคํ…œ ํŒจํ‚ค์ง€ ์„ค์น˜ ์ค€๋น„ ์ค‘..."
247
+ local packages_to_install=()
248
+ for pkg in "${APT_PACKAGES[@]}"; do
249
+ if ! dpkg -s "$pkg" >/dev/null 2>&1; then
250
+ packages_to_install+=("$pkg")
251
+ else
252
+ log_success "$pkg์ด(๊ฐ€) ์ด๋ฏธ ์„ค์น˜๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฑด๋„ˆ๋œ๋‹ˆ๋‹ค"
253
+ fi
254
+ done
255
+ if [ ${#packages_to_install[@]} -gt 0 ]; then
256
+ log_info "์„ค์น˜ ์ค‘: ${packages_to_install[*]}"
257
+ apt-get update -qq && apt-get install -y -qq "${packages_to_install[@]}" && log_success "์‹œ์Šคํ…œ ํŒจํ‚ค์ง€ ์„ค์น˜ ์™„๋ฃŒ" || log_warn "์ผ๋ถ€ ์‹œ์Šคํ…œ ํŒจํ‚ค์ง€ ์„ค์น˜ ๏ฟฝ๏ฟฝ๏ฟฝํŒจ"
258
+ fi
259
+ fi
260
+
261
+ local comfyui_req_file="${COMFYUI_DIR}/requirements.txt"
262
+ if [ -f "$comfyui_req_file" ]; then
263
+ log_info "ComfyUI ํ•ต์‹ฌ ์ข…์†์„ฑ ์ฒ˜๋ฆฌ ์ค‘: $comfyui_req_file"
264
+ if filter_requirements "$comfyui_req_file"; then
265
+ log_info "ComfyUI์˜ ์ƒˆ๋กœ์šด ์ข…์†์„ฑ ์„ค์น˜ ์ค‘..."
266
+ $PIP_BIN install -q --no-cache-dir -r "$comfyui_req_file" 2>&1 | grep -v "Requirement already satisfied" || log_warn "ComfyUI ์ผ๋ถ€ ํ•ต์‹ฌ ์ข…์†์„ฑ ์„ค์น˜ ์‹คํŒจ"
267
+ fi
268
+ else
269
+ log_warn "ComfyUI์˜ ํ•ต์‹ฌ requirements.txt ํŒŒ์ผ์„ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค!"
270
+ fi
271
+ }
272
+
273
+ provisioning_step2_nodes() {
274
+ log_step "2" "๋…ธ๋“œ ๋ฐ ์ถ”๊ฐ€ ํŒจํ‚ค์ง€ ์„ค์น˜"
275
+ if [ ${#NODES[@]} -gt 0 ]; then
276
+ cd "${COMFYUI_DIR}/custom_nodes" || exit 1
277
+ log_info "${#NODES[@]}๊ฐœ์˜ ๋…ธ๋“œ๋ฅผ ๋ณ‘๋ ฌ ์„ค์น˜ ์ค‘..."
278
+ local MAX_PARALLEL=2
279
+ for node in "${NODES[@]}"; do
280
+ while [ $(jobs -r | wc -l) -ge $MAX_PARALLEL ]; do sleep 1; done
281
+ install_node "$node" &
282
+ done
283
+ wait
284
+ log_success "๋…ธ๋“œ ์„ค์น˜ ์™„๋ฃŒ"
285
+ cd "${COMFYUI_DIR}" || exit 1
286
+ fi
287
+ }
288
+
289
+ provisioning_step3_downloads() {
290
+ log_step "3" "๋ชจ๋ธ ๋ฐ ์›Œํฌํ”Œ๋กœ์šฐ ํŒŒ์ผ ๋‹ค์šด๋กœ๋“œ"
291
+ download_to_directory "${COMFYUI_DIR}/models/checkpoints" "${CHECKPOINT_MODELS[@]}"
292
+ download_to_directory "${COMFYUI_DIR}/models/clip_vision" "${CLIP_VISION_MODELS[@]}"
293
+ download_to_directory "${COMFYUI_DIR}/models/ipadapter" "${IPADAPTER_MODELS[@]}"
294
+ download_to_directory "${COMFYUI_DIR}/models/upscale_models" "${ESRGAN_MODELS[@]}"
295
+ if [ ${#WORKFLOWS[@]} -gt 0 ]; then
296
+ log_info "์›Œํฌํ”Œ๋กœ์šฐ ํŒŒ์ผ ๋‹ค์šด๋กœ๋“œ ์ค‘..."
297
+ download_to_directory "${COMFYUI_DIR}/user/default/workflows" "${WORKFLOWS[@]}"
298
+ fi
299
+ }
300
+
301
+ if [ -f "/workspace/.provision_complete" ]; then
302
+ log_success "ํ™˜๊ฒฝ์ด ๊ตฌ์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋ฐ˜๋ณต ์‹คํ–‰์„ ๊ฑด๋„ˆ๋œ๋‹ˆ๋‹ค"
303
+ log_info "์žฌ๊ตฌ์„ฑํ•˜๋ ค๋ฉด /workspace/.provision_complete๋ฅผ ์‚ญ์ œํ•˜์‹ญ์‹œ์˜ค"
304
+ exit 0
305
+ fi
306
+ if [[ -f /.noprovisioning ]]; then
307
+ log_warn "/.noprovisioning ํŒŒ์ผ ๊ฐ์ง€๋จ, ๊ตฌ์„ฑ์„ ๊ฑด๋„ˆ๋œ๋‹ˆ๋‹ค"
308
+ exit 0
309
+ fi
310
+
311
+ START_TIME=$(date +%s)
312
+ provisioning_print_header
313
+ cd "${COMFYUI_DIR}" || exit 1
314
+
315
+ provisioning_step1_install_core_deps
316
+
317
+ provisioning_step2_nodes &
318
+ NODE_PID=$!
319
+ provisioning_step3_downloads
320
+ wait $NODE_PID
321
+
322
+ log_step "4" "๋‹ค์šด๋กœ๋“œ ๋ฌด๊ฒฐ์„ฑ ํ™•์ธ"
323
+ verify_and_retry_downloads "${COMFYUI_DIR}/models/checkpoints" "${CHECKPOINT_MODELS[@]}"
324
+ verify_and_retry_downloads "${COMFYUI_DIR}/models/clip_vision" "${CLIP_VISION_MODELS[@]}"
325
+ verify_and_retry_downloads "${COMFYUI_DIR}/models/ipadapter" "${IPADAPTER_MODELS[@]}"
326
+ verify_and_retry_downloads "${COMFYUI_DIR}/models/upscale_models" "${ESRGAN_MODELS[@]}"
327
+ verify_and_retry_downloads "${COMFYUI_DIR}/user/default/workflows" "${WORKFLOWS[@]}"
328
+
329
+ log_step "5" "๊ตฌ์„ฑ ์™„๋ฃŒ"
330
+ touch "/workspace/.provision_complete"
331
+ log_success "๊ตฌ์„ฑ ๋งˆ์ปค ํŒŒ์ผ์ด ์ƒ์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค"
332
+
333
+ END_TIME=$(date +%s)
334
+ provisioning_print_end
335
+ log_success "๋ชจ๋“  ๊ตฌ์„ฑ ๋‹จ๊ณ„๊ฐ€ ์™„๋ฃŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค!"
336
+ exit 0