diff --git a/assets-library/models-performance.json b/assets-library/models-performance.json index b108d45..458ccf1 100644 --- a/assets-library/models-performance.json +++ b/assets-library/models-performance.json @@ -65,10 +65,10 @@ }, "avg_scores": {}, "best_combinations": [], - "verdict": "7라운드 검증 / ComfyUI 재시작 후 100% 성공률 / 검정 0.01-0.68% 일관 / 파스텔 8-42% 변동" + "verdict": "파스텔 평균 26.1% (11회) / 검정 평균 0.24%" }, "flux-dev": { - "rounds_used": 8, + "rounds_used": 22, "dimensions": { "byeolyi": [], "hanja": [], @@ -78,20 +78,56 @@ "auto_pastel": [ 20.1, 29.7, - 12.3 + 12.3, + 9.99, + 27.51, + 48.5, + 12.87, + 25.65, + 9.99, + 27.51, + 48.5, + 12.87, + 25.65, + 9.99, + 27.51, + 48.5, + 12.87 ], "auto_black": [ 3.11, 0.0, - 0.16 + 0.16, + 13.98, + 0.79, + 0.27, + 11.67, + 1.95, + 13.98, + 0.79, + 0.27, + 11.67, + 1.95, + 13.98, + 0.79, + 0.27, + 11.67 ] }, "avg_scores": {}, - "best_combinations": [], - "verdict": "Stage 3 Refiner (img2img denoise 0.3) 정상 작동 / 단독 워크플로우는 OOM 빈번" + "best_combinations": [ + { + "round": "R1-clean", + "id": "1-4", + "variant": "PuLID 0.7 + Redux 0.5", + "pastel_pct": 48.5, + "black_pct": 0.27 + } + ], + "verdict": "파스텔 평균 24.1% (17회) / 검정 평균 5.14%" }, "pulid-flux": { - "rounds_used": 9, + "rounds_used": 20, "dimensions": { "byeolyi": [], "hanja": [], @@ -101,12 +137,34 @@ "auto_pastel": [ 30.2, 33.7, - 44.5 + 44.5, + 9.99, + 27.51, + 48.5, + 25.65, + 9.99, + 27.51, + 48.5, + 25.65, + 9.99, + 27.51, + 48.5 ], "auto_black": [ 0.73, 2.51, - 1.11 + 1.11, + 13.98, + 0.79, + 0.27, + 1.95, + 13.98, + 0.79, + 0.27, + 1.95, + 13.98, + 0.79, + 0.27 ] }, "avg_scores": {}, @@ -119,9 +177,16 @@ "black_pct": 1.11, "pastel_pct": 44.5, "note": "전체 라운드 best pastel 1위" + }, + { + "round": "R1-clean", + "id": "1-4", + "variant": "PuLID 0.7 + Redux 0.5", + "pastel_pct": 48.5, + "black_pct": 0.27 } ], - "verdict": "weight 1.0 + mean fusion = 별이 ID lock + 파스텔 44.5% (R1-1 Pony 42.5% 추월)" + "verdict": "파스텔 평균 29.8% (14회) / 검정 평균 3.81%" }, "qwen-image-2512": { "rounds_used": 1, @@ -150,7 +215,7 @@ }, "avg_scores": {}, "best_combinations": [], - "verdict": "단일 모델 성공 / A 별이 검정 13.92% 한계 / B 한옥 안정 36.4% 파스텔" + "verdict": "파스텔 평균 30.2% (2회) / 검정 평균 7.41%" }, "qwen-edit-2511": { "rounds_used": 8, @@ -158,6 +223,40 @@ "avg_scores": {}, "best_combinations": [], "verdict": "Stage 2 인페인트 6차 실패 — Qwen 계열 GGUF Q4 환경 호환성 결함 확정" + }, + "flux-redux": { + "rounds_used": 3, + "dimensions": { + "byeolyi": [], + "hanja": [], + "hanok": [], + "illustration": [], + "korean_traditional": [], + "auto_pastel": [ + 48.5, + 48.5, + 48.5 + ], + "auto_black": [ + 0.27, + 0.27, + 0.27 + ] + }, + "avg_scores": {}, + "best_combinations": [ + { + "round": "R1-clean", + "id": "1-4", + "variant": "PuLID 0.7 + Redux 0.5", + "pastel_pct": 48.5, + "black_pct": 0.27 + } + ], + "verdict": "파스텔 평균 48.5% (3회) / 검정 평균 0.27%" } - } + }, + "_processed_rounds": [ + "R1-clean" + ] } \ No newline at end of file diff --git a/assets-library/prompts/failed-patterns.json b/assets-library/prompts/failed-patterns.json index 81384a1..0b3210c 100644 --- a/assets-library/prompts/failed-patterns.json +++ b/assets-library/prompts/failed-patterns.json @@ -80,5 +80,15 @@ ], "verdict": "GGUF Q4 + CUDA 13.0 + PyTorch 2.12 환경 호환성 결함 — 6차 모두 5KB latent", "next_track": "non-GGUF safetensors 또는 다른 quant (Q8/fp16) 필요 — 본 트랙에서는 한자 정확 렌더링 = Pony score_9 만 가능" - } + }, + "r1-1-2-pastel-low-flux-dev": [ + { + "round": "R1-clean", + "id": "1-2", + "variant": "PuLID weight 0.85 mean delayed_start 0.05 (concat-replacement)", + "pastel_pct": 9.99, + "black_pct": 13.98, + "note": "auto-classified pastel-low (delayed start_at + concat replacement)" + } + ] } \ No newline at end of file diff --git a/assets-library/prompts/negative-effective.json b/assets-library/prompts/negative-effective.json index 9e26dfe..96535dc 100644 --- a/assets-library/prompts/negative-effective.json +++ b/assets-library/prompts/negative-effective.json @@ -1 +1,9 @@ -{} \ No newline at end of file +{ + "A_byeolyi_pastel_negatives": [ + { + "round": "R1-clean", + "negative": "cartoon, anime, child, teenage, purple hoodie, japanese building, plastic skin", + "resulted_in_pastel": 48.5 + } + ] +} \ No newline at end of file diff --git a/assets-library/prompts/proven-patterns.json b/assets-library/prompts/proven-patterns.json index a189828..cb88500 100644 --- a/assets-library/prompts/proven-patterns.json +++ b/assets-library/prompts/proven-patterns.json @@ -23,5 +23,44 @@ "consistent_pastel_pct_range": "13-42% (해상도·프롬프트 영향)", "verdict": "Pony 단일 모델 = 가장 안정적 (R1·R2·R4 모두 성공)" } + }, + "illustration_auto": { + "R1-clean-1-1": [ + { + "pastel_pct": 25.65, + "black_pct": 1.95, + "variant": "PuLID weight 0.85 mean (first try)", + "models": [ + "flux-dev", + "pulid-flux" + ], + "round": "R1-clean" + } + ], + "R1-clean-1-3": [ + { + "pastel_pct": 27.51, + "black_pct": 0.79, + "variant": "PuLID weight 1.0 mean", + "models": [ + "flux-dev", + "pulid-flux" + ], + "round": "R1-clean" + } + ], + "R1-clean-1-4": [ + { + "pastel_pct": 48.5, + "black_pct": 0.27, + "variant": "PuLID 0.7 + Redux 0.5", + "models": [ + "flux-dev", + "pulid-flux", + "flux-redux" + ], + "round": "R1-clean" + } + ] } } \ No newline at end of file diff --git a/assets-library/workflows/_index.json b/assets-library/workflows/_index.json index 762fe43..10aa349 100644 --- a/assets-library/workflows/_index.json +++ b/assets-library/workflows/_index.json @@ -1,5 +1,65 @@ { - "count": 0, - "winner": [], - "partial": [] + "count": 3, + "winner": [ + { + "name": "winner_auto-illustration_auto-R1-clean-1-4-flux-dev.json", + "category": "winner_auto", + "best_dimension": "illustration_auto", + "auto_metrics": { + "pastel_pct": 48.5, + "black_pct": 0.27 + }, + "models": [ + "flux-dev", + "pulid-flux", + "flux-redux" + ], + "round": "R1-clean", + "variant": "PuLID 0.7 + Redux 0.5", + "reusable_for": [ + "타로 78장", + "별이 일러스트 시리즈" + ] + } + ], + "partial": [ + { + "name": "partial-illustration_auto-R1-clean-1-1-flux-dev.json", + "category": "partial", + "best_dimension": "illustration_auto", + "auto_metrics": { + "pastel_pct": 25.65, + "black_pct": 1.95 + }, + "models": [ + "flux-dev", + "pulid-flux" + ], + "round": "R1-clean", + "variant": "PuLID weight 0.85 mean (first try)", + "reusable_for": [ + "관찰", + "한복 ref 후보" + ] + }, + { + "name": "partial-illustration_auto-R1-clean-1-3-flux-dev.json", + "category": "partial", + "best_dimension": "illustration_auto", + "auto_metrics": { + "pastel_pct": 27.51, + "black_pct": 0.79 + }, + "models": [ + "flux-dev", + "pulid-flux" + ], + "round": "R1-clean", + "variant": "PuLID weight 1.0 mean", + "reusable_for": [ + "관찰", + "한복 ref 후보" + ] + } + ] } \ No newline at end of file diff --git a/assets-library/workflows/partial-illustration_auto-R1-clean-1-1-flux-dev.json b/assets-library/workflows/partial-illustration_auto-R1-clean-1-1-flux-dev.json new file mode 100644 index 0000000..95a9857 --- /dev/null +++ b/assets-library/workflows/partial-illustration_auto-R1-clean-1-1-flux-dev.json @@ -0,0 +1,165 @@ +{ + "1": { + "class_type": "UnetLoaderGGUF", + "inputs": { + "unet_name": "flux1-dev-Q5_K_S.gguf" + } + }, + "2": { + "class_type": "DualCLIPLoader", + "inputs": { + "clip_name1": "clip_l.safetensors", + "clip_name2": "t5xxl_fp8_e4m3fn.safetensors", + "type": "flux" + } + }, + "3": { + "class_type": "VAELoader", + "inputs": { + "vae_name": "ae.safetensors" + } + }, + "4": { + "class_type": "CLIPTextEncode", + "inputs": { + "text": "A 25-28 year old Korean woman in a modern hanbok with subtle Cute Horror mood, sitting gracefully in a traditional Korean tea house with hanok wooden architecture, warm afternoon light filtering through latticed windows, cool pale skin, gentle expression, photorealistic, high detail", + "clip": [ + "2", + 0 + ] + } + }, + "5": { + "class_type": "CLIPTextEncode", + "inputs": { + "text": "cartoon, anime, child, teenage, purple hoodie, japanese building, plastic skin", + "clip": [ + "2", + 0 + ] + } + }, + "6": { + "class_type": "EmptyLatentImage", + "inputs": { + "width": 768, + "height": 1344, + "batch_size": 1 + } + }, + "7": { + "class_type": "PulidFluxModelLoader", + "inputs": { + "pulid_file": "pulid_flux_v0.9.1.safetensors" + } + }, + "8": { + "class_type": "PulidFluxEvaClipLoader", + "inputs": {} + }, + "9": { + "class_type": "PulidFluxInsightFaceLoader", + "inputs": { + "provider": "CUDA" + } + }, + "10": { + "class_type": "LoadImage", + "inputs": { + "image": "byeolyi-ref-768x1344.png" + } + }, + "11": { + "class_type": "ApplyPulidFlux", + "inputs": { + "model": [ + "1", + 0 + ], + "pulid_flux": [ + "7", + 0 + ], + "eva_clip": [ + "8", + 0 + ], + "face_analysis": [ + "9", + 0 + ], + "image": [ + "10", + 0 + ], + "weight": 0.85, + "start_at": 0.0, + "end_at": 0.8, + "fusion": "mean", + "fusion_weight_max": 1.0, + "fusion_weight_min": 0.0, + "train_step": 1000, + "use_gray": true + } + }, + "12": { + "class_type": "FluxGuidance", + "inputs": { + "conditioning": [ + "4", + 0 + ], + "guidance": 3.5 + } + }, + "13": { + "class_type": "KSampler", + "inputs": { + "model": [ + "11", + 0 + ], + "positive": [ + "12", + 0 + ], + "negative": [ + "5", + 0 + ], + "latent_image": [ + "6", + 0 + ], + "seed": 101001, + "steps": 25, + "cfg": 1.0, + "sampler_name": "euler", + "scheduler": "simple", + "denoise": 1.0 + } + }, + "14": { + "class_type": "VAEDecode", + "inputs": { + "samples": [ + "13", + 0 + ], + "vae": [ + "3", + 0 + ] + } + }, + "15": { + "class_type": "SaveImage", + "inputs": { + "images": [ + "14", + 0 + ], + "filename_prefix": "m103_clean_r1_1_pulid_w085" + } + } +} \ No newline at end of file diff --git a/assets-library/workflows/partial-illustration_auto-R1-clean-1-3-flux-dev.json b/assets-library/workflows/partial-illustration_auto-R1-clean-1-3-flux-dev.json new file mode 100644 index 0000000..c6bd960 --- /dev/null +++ b/assets-library/workflows/partial-illustration_auto-R1-clean-1-3-flux-dev.json @@ -0,0 +1,165 @@ +{ + "1": { + "class_type": "UnetLoaderGGUF", + "inputs": { + "unet_name": "flux1-dev-Q5_K_S.gguf" + } + }, + "2": { + "class_type": "DualCLIPLoader", + "inputs": { + "clip_name1": "clip_l.safetensors", + "clip_name2": "t5xxl_fp8_e4m3fn.safetensors", + "type": "flux" + } + }, + "3": { + "class_type": "VAELoader", + "inputs": { + "vae_name": "ae.safetensors" + } + }, + "4": { + "class_type": "CLIPTextEncode", + "inputs": { + "text": "A 25-28 year old Korean woman in a modern hanbok with subtle Cute Horror mood, sitting gracefully in a traditional Korean tea house with hanok wooden architecture, warm afternoon light filtering through latticed windows, cool pale skin, gentle expression, photorealistic, high detail", + "clip": [ + "2", + 0 + ] + } + }, + "5": { + "class_type": "CLIPTextEncode", + "inputs": { + "text": "cartoon, anime, child, teenage, purple hoodie, japanese building, plastic skin", + "clip": [ + "2", + 0 + ] + } + }, + "6": { + "class_type": "EmptyLatentImage", + "inputs": { + "width": 768, + "height": 1344, + "batch_size": 1 + } + }, + "7": { + "class_type": "PulidFluxModelLoader", + "inputs": { + "pulid_file": "pulid_flux_v0.9.1.safetensors" + } + }, + "8": { + "class_type": "PulidFluxEvaClipLoader", + "inputs": {} + }, + "9": { + "class_type": "PulidFluxInsightFaceLoader", + "inputs": { + "provider": "CUDA" + } + }, + "10": { + "class_type": "LoadImage", + "inputs": { + "image": "byeolyi-ref-768x1344.png" + } + }, + "11": { + "class_type": "ApplyPulidFlux", + "inputs": { + "model": [ + "1", + 0 + ], + "pulid_flux": [ + "7", + 0 + ], + "eva_clip": [ + "8", + 0 + ], + "face_analysis": [ + "9", + 0 + ], + "image": [ + "10", + 0 + ], + "weight": 1.0, + "start_at": 0.0, + "end_at": 0.8, + "fusion": "mean", + "fusion_weight_max": 1.0, + "fusion_weight_min": 0.0, + "train_step": 1000, + "use_gray": true + } + }, + "12": { + "class_type": "FluxGuidance", + "inputs": { + "conditioning": [ + "4", + 0 + ], + "guidance": 3.5 + } + }, + "13": { + "class_type": "KSampler", + "inputs": { + "model": [ + "11", + 0 + ], + "positive": [ + "12", + 0 + ], + "negative": [ + "5", + 0 + ], + "latent_image": [ + "6", + 0 + ], + "seed": 101003, + "steps": 25, + "cfg": 1.0, + "sampler_name": "euler", + "scheduler": "simple", + "denoise": 1.0 + } + }, + "14": { + "class_type": "VAEDecode", + "inputs": { + "samples": [ + "13", + 0 + ], + "vae": [ + "3", + 0 + ] + } + }, + "15": { + "class_type": "SaveImage", + "inputs": { + "images": [ + "14", + 0 + ], + "filename_prefix": "m103_clean_r1_3_pulid_w100" + } + } +} \ No newline at end of file diff --git a/assets-library/workflows/winner_auto-illustration_auto-R1-clean-1-4-flux-dev.json b/assets-library/workflows/winner_auto-illustration_auto-R1-clean-1-4-flux-dev.json new file mode 100644 index 0000000..b15215b --- /dev/null +++ b/assets-library/workflows/winner_auto-illustration_auto-R1-clean-1-4-flux-dev.json @@ -0,0 +1,210 @@ +{ + "1": { + "class_type": "UnetLoaderGGUF", + "inputs": { + "unet_name": "flux1-dev-Q5_K_S.gguf" + } + }, + "2": { + "class_type": "DualCLIPLoader", + "inputs": { + "clip_name1": "clip_l.safetensors", + "clip_name2": "t5xxl_fp8_e4m3fn.safetensors", + "type": "flux" + } + }, + "3": { + "class_type": "VAELoader", + "inputs": { + "vae_name": "ae.safetensors" + } + }, + "4": { + "class_type": "CLIPTextEncode", + "inputs": { + "text": "A 25-28 year old Korean woman in a modern hanbok with subtle Cute Horror mood, sitting gracefully in a traditional Korean tea house with hanok wooden architecture, warm afternoon light filtering through latticed windows, cool pale skin, gentle expression, photorealistic, high detail", + "clip": [ + "2", + 0 + ] + } + }, + "5": { + "class_type": "CLIPTextEncode", + "inputs": { + "text": "cartoon, anime, child, teenage, purple hoodie, japanese building, plastic skin", + "clip": [ + "2", + 0 + ] + } + }, + "6": { + "class_type": "EmptyLatentImage", + "inputs": { + "width": 768, + "height": 1344, + "batch_size": 1 + } + }, + "7": { + "class_type": "PulidFluxModelLoader", + "inputs": { + "pulid_file": "pulid_flux_v0.9.1.safetensors" + } + }, + "8": { + "class_type": "PulidFluxEvaClipLoader", + "inputs": {} + }, + "9": { + "class_type": "PulidFluxInsightFaceLoader", + "inputs": { + "provider": "CUDA" + } + }, + "10": { + "class_type": "LoadImage", + "inputs": { + "image": "byeolyi-ref-768x1344.png" + } + }, + "11": { + "class_type": "ApplyPulidFlux", + "inputs": { + "model": [ + "1", + 0 + ], + "pulid_flux": [ + "7", + 0 + ], + "eva_clip": [ + "8", + 0 + ], + "face_analysis": [ + "9", + 0 + ], + "image": [ + "10", + 0 + ], + "weight": 0.7, + "start_at": 0.0, + "end_at": 0.8, + "fusion": "mean", + "fusion_weight_max": 1.0, + "fusion_weight_min": 0.0, + "train_step": 1000, + "use_gray": true + } + }, + "12": { + "class_type": "FluxGuidance", + "inputs": { + "conditioning": [ + "19", + 0 + ], + "guidance": 3.5 + } + }, + "13": { + "class_type": "KSampler", + "inputs": { + "model": [ + "11", + 0 + ], + "positive": [ + "12", + 0 + ], + "negative": [ + "5", + 0 + ], + "latent_image": [ + "6", + 0 + ], + "seed": 101004, + "steps": 25, + "cfg": 1.0, + "sampler_name": "euler", + "scheduler": "simple", + "denoise": 1.0 + } + }, + "14": { + "class_type": "VAEDecode", + "inputs": { + "samples": [ + "13", + 0 + ], + "vae": [ + "3", + 0 + ] + } + }, + "15": { + "class_type": "SaveImage", + "inputs": { + "images": [ + "14", + 0 + ], + "filename_prefix": "m103_clean_r1_4_pulid_redux" + } + }, + "16": { + "class_type": "StyleModelLoader", + "inputs": { + "style_model_name": "flux1-redux-dev.safetensors" + } + }, + "17": { + "class_type": "CLIPVisionLoader", + "inputs": { + "clip_name": "sigclip_vision_patch14_384.safetensors" + } + }, + "18": { + "class_type": "CLIPVisionEncode", + "inputs": { + "clip_vision": [ + "17", + 0 + ], + "image": [ + "10", + 0 + ], + "crop": "center" + } + }, + "19": { + "class_type": "StyleModelApply", + "inputs": { + "conditioning": [ + "4", + 0 + ], + "style_model": [ + "16", + 0 + ], + "clip_vision_output": [ + "18", + 0 + ], + "strength": 0.5, + "strength_type": "multiply" + } + } +} \ No newline at end of file diff --git a/eval/meeting-103-v2.1-clean-grid.html b/eval/meeting-103-v2.1-clean-grid.html new file mode 100644 index 0000000..3380894 --- /dev/null +++ b/eval/meeting-103-v2.1-clean-grid.html @@ -0,0 +1,80 @@ + +
+captured_at=2026-05-19T23:14:08 · track=meeting-103-v2.1-clean
+