DZRobo
commited on
BUG FIX and QoL. Fix cancel support to MG nodes (#6)
Browse filesImplements cooperative cancellation and user interrupt propagation in mg_cade25_easy.py, mg_supersimple_easy.py, mg_cade25.py, and related modules. Adds interruptible sampler and callback wrappers, sentinel handling, and frequent cancel checks throughout long-running loops and workflows. Also improves LoRA selection robustness in mg_combinode.py by handling missing files gracefully. Updates workflow JSON to match new node logic.
- mod/easy/mg_cade25_easy.py +90 -10
- mod/easy/mg_supersimple_easy.py +64 -52
- mod/hard/mg_cade25.py +73 -3
- mod/mg_combinode.py +36 -18
- workflows/mg_Easy-Workflow.json +1 -1
- workflows/mg_SuperSimple-Workflow.json +1 -1
mod/easy/mg_cade25_easy.py
CHANGED
|
@@ -283,7 +283,7 @@ def _clipseg_build_mask(image_bhwc: torch.Tensor,
|
|
| 283 |
cur = _encode_clip_image(image_bhwc, clip_vision, target_res=224)
|
| 284 |
dist = _clip_cosine_distance(cur, ref_embed)
|
| 285 |
if dist > float(ref_threshold):
|
| 286 |
-
# up to +50% gain if
|
| 287 |
gate = 1.0 + min(0.5, (dist - float(ref_threshold)) * 4.0)
|
| 288 |
m = m * gate
|
| 289 |
except Exception:
|
|
@@ -1710,7 +1710,7 @@ def _build_cf_edge_mask_from_step(image_bhwc: torch.Tensor, preset_step: str) ->
|
|
| 1710 |
edge_alpha = _safe_float(p.get('edge_alpha', 1.0), 1.0)
|
| 1711 |
# Treat blend_factor as extra gain for edges (depth is not mixed here)
|
| 1712 |
blend_factor = _safe_float(p.get('blend_factor', 0.02), 0.02)
|
| 1713 |
-
# ControlNet multipliers
|
| 1714 |
edge_strength_mul = _safe_float(p.get('edge_strength_mul', 1.0), 1.0)
|
| 1715 |
|
| 1716 |
# Build edges with CF PyraCanny
|
|
@@ -1901,7 +1901,10 @@ class ComfyAdaptiveDetailEnhancer25:
|
|
| 1901 |
clipseg_gain=1.0, clipseg_blend="fuse", clipseg_ref_gate=False, clipseg_ref_threshold=0.03,
|
| 1902 |
polish_enable=False, polish_keep_low=0.4, polish_edge_lock=0.2, polish_sigma=1.0,
|
| 1903 |
polish_start_after=1, polish_keep_low_ramp=0.2,
|
| 1904 |
-
|
|
|
|
|
|
|
|
|
|
| 1905 |
# Load base preset for the selected Step. When custom_override is True,
|
| 1906 |
# visible UI controls (top-level) are kept from UI; hidden ones still come from preset.
|
| 1907 |
try:
|
|
@@ -2016,6 +2019,8 @@ class ComfyAdaptiveDetailEnhancer25:
|
|
| 2016 |
pass
|
| 2017 |
|
| 2018 |
image = safe_decode(vae, latent)
|
|
|
|
|
|
|
| 2019 |
|
| 2020 |
tuned_steps, tuned_cfg, tuned_denoise = AdaptiveSamplerHelper().tune(
|
| 2021 |
image, steps, cfg, denoise)
|
|
@@ -2046,7 +2051,10 @@ class ComfyAdaptiveDetailEnhancer25:
|
|
| 2046 |
str(sampler_name), str(scheduler), float(current_cfg), float(current_denoise),
|
| 2047 |
base_seed=0, step_tag=step_tag,
|
| 2048 |
clip_vision=clip_vision, reference_image=reference_image, clipseg_text=str(clipseg_text))
|
| 2049 |
-
except Exception:
|
|
|
|
|
|
|
|
|
|
| 2050 |
pass
|
| 2051 |
|
| 2052 |
# Visual separation and start marker after seed is finalized
|
|
@@ -2189,7 +2197,11 @@ class ComfyAdaptiveDetailEnhancer25:
|
|
| 2189 |
clipseg_enable = False
|
| 2190 |
# Depth gate cache for micro-detail injection (reuse per resolution)
|
| 2191 |
depth_gate_cache = {"size": None, "mask": None}
|
|
|
|
|
|
|
| 2192 |
for i in range(iterations):
|
|
|
|
|
|
|
| 2193 |
if i % 2 == 0:
|
| 2194 |
clear_gpu_and_ram_cache()
|
| 2195 |
|
|
@@ -2420,7 +2432,9 @@ class ComfyAdaptiveDetailEnhancer25:
|
|
| 2420 |
batch_inds = current_latent.get("batch_index", None)
|
| 2421 |
noise = _sample.prepare_noise(lat_img, int(iter_seed), batch_inds)
|
| 2422 |
noise_mask = current_latent.get("noise_mask", None)
|
| 2423 |
-
callback =
|
|
|
|
|
|
|
| 2424 |
disable_pbar = not _utils.PROGRESS_BAR_ENABLED
|
| 2425 |
sampler_obj = _samplers.sampler_object(str(sampler_name))
|
| 2426 |
samples = _sample.sample_custom(
|
|
@@ -2432,16 +2446,29 @@ class ComfyAdaptiveDetailEnhancer25:
|
|
| 2432 |
current_latent = {**current_latent}
|
| 2433 |
current_latent["samples"] = samples
|
| 2434 |
except Exception as e:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 2435 |
# Fallback to original path if anything goes wrong
|
| 2436 |
print(f"[CADE2.5][MGHybrid] fallback to common_ksampler due to: {e}")
|
| 2437 |
-
current_latent, =
|
| 2438 |
sampler_model, iter_seed, int(current_steps), current_cfg, sampler_name, _scheduler_names()[0],
|
| 2439 |
positive, negative, current_latent, denoise=current_denoise)
|
| 2440 |
else:
|
| 2441 |
-
current_latent, =
|
| 2442 |
sampler_model, iter_seed, int(current_steps), current_cfg, sampler_name, scheduler,
|
| 2443 |
positive, negative, current_latent, denoise=current_denoise)
|
| 2444 |
|
|
|
|
|
|
|
|
|
|
| 2445 |
if bool(latent_compare):
|
| 2446 |
latent_diff = current_latent["samples"] - prev_samples
|
| 2447 |
rms = torch.sqrt(torch.mean(latent_diff * latent_diff))
|
|
@@ -2477,6 +2504,8 @@ class ComfyAdaptiveDetailEnhancer25:
|
|
| 2477 |
pass
|
| 2478 |
|
| 2479 |
image = safe_decode(vae, current_latent)
|
|
|
|
|
|
|
| 2480 |
|
| 2481 |
# Polish mode: keep global form (low frequencies) from reference while letting details refine
|
| 2482 |
if bool(polish_enable) and (i >= int(polish_start_after)):
|
|
@@ -2668,6 +2697,16 @@ class ComfyAdaptiveDetailEnhancer25:
|
|
| 2668 |
CURRENT_ONNX_MASK_BCHW = None
|
| 2669 |
except Exception:
|
| 2670 |
pass
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 2671 |
|
| 2672 |
if apply_ids:
|
| 2673 |
image, = IntelligentDetailStabilizer().stabilize(image, ids_strength)
|
|
@@ -2846,6 +2885,8 @@ def _smart_seed_select(model,
|
|
| 2846 |
step_tag: str | None = None) -> int:
|
| 2847 |
# Log start of SmartSeed selection
|
| 2848 |
try:
|
|
|
|
|
|
|
| 2849 |
try:
|
| 2850 |
# Visual separation before SmartSeed block
|
| 2851 |
print("")
|
|
@@ -2885,14 +2926,18 @@ def _smart_seed_select(model,
|
|
| 2885 |
best_seed = cands[0]
|
| 2886 |
best_score = -1e9
|
| 2887 |
for sd in cands:
|
|
|
|
|
|
|
| 2888 |
try:
|
| 2889 |
# quick KSampler preview at low steps
|
| 2890 |
lat_in = {"samples": latent["samples"].clone()} if isinstance(latent, dict) else latent
|
| 2891 |
-
lat_out, =
|
| 2892 |
model, int(sd), int(probe_steps), float(cfg), str(sampler_name), str(scheduler),
|
| 2893 |
positive, negative, lat_in, denoise=float(min(denoise, 0.65))
|
| 2894 |
)
|
| 2895 |
img = safe_decode(vae, lat_out)
|
|
|
|
|
|
|
| 2896 |
# Base score: edge density toward a target + low speckle + balanced exposure
|
| 2897 |
ed = _edge_density(img)
|
| 2898 |
speck = _speckle_fraction(img)
|
|
@@ -2937,7 +2982,11 @@ def _smart_seed_select(model,
|
|
| 2937 |
if score > best_score:
|
| 2938 |
best_score = score
|
| 2939 |
best_seed = sd
|
| 2940 |
-
except Exception:
|
|
|
|
|
|
|
|
|
|
|
|
|
| 2941 |
continue
|
| 2942 |
|
| 2943 |
# Log end with selected seed
|
|
@@ -2949,7 +2998,11 @@ def _smart_seed_select(model,
|
|
| 2949 |
except Exception:
|
| 2950 |
pass
|
| 2951 |
return int(best_seed & 0xFFFFFFFFFFFFFFFF)
|
| 2952 |
-
except Exception:
|
|
|
|
|
|
|
|
|
|
|
|
|
| 2953 |
# Fallback to time-based random
|
| 2954 |
try:
|
| 2955 |
import time
|
|
@@ -2966,3 +3019,30 @@ def _smart_seed_select(model,
|
|
| 2966 |
return fallback_seed
|
| 2967 |
|
| 2968 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 283 |
cur = _encode_clip_image(image_bhwc, clip_vision, target_res=224)
|
| 284 |
dist = _clip_cosine_distance(cur, ref_embed)
|
| 285 |
if dist > float(ref_threshold):
|
| 286 |
+
# up to +50% gain if distance exceeds the reference threshold
|
| 287 |
gate = 1.0 + min(0.5, (dist - float(ref_threshold)) * 4.0)
|
| 288 |
m = m * gate
|
| 289 |
except Exception:
|
|
|
|
| 1710 |
edge_alpha = _safe_float(p.get('edge_alpha', 1.0), 1.0)
|
| 1711 |
# Treat blend_factor as extra gain for edges (depth is not mixed here)
|
| 1712 |
blend_factor = _safe_float(p.get('blend_factor', 0.02), 0.02)
|
| 1713 |
+
# ControlNet multipliers: use edge_strength_mul as an additional gain for the edge mask
|
| 1714 |
edge_strength_mul = _safe_float(p.get('edge_strength_mul', 1.0), 1.0)
|
| 1715 |
|
| 1716 |
# Build edges with CF PyraCanny
|
|
|
|
| 1901 |
clipseg_gain=1.0, clipseg_blend="fuse", clipseg_ref_gate=False, clipseg_ref_threshold=0.03,
|
| 1902 |
polish_enable=False, polish_keep_low=0.4, polish_edge_lock=0.2, polish_sigma=1.0,
|
| 1903 |
polish_start_after=1, polish_keep_low_ramp=0.2,
|
| 1904 |
+
preset_step="Step 1", custom_override=False):
|
| 1905 |
+
# Cooperative cancel before any heavy work
|
| 1906 |
+
model_management.throw_exception_if_processing_interrupted()
|
| 1907 |
+
|
| 1908 |
# Load base preset for the selected Step. When custom_override is True,
|
| 1909 |
# visible UI controls (top-level) are kept from UI; hidden ones still come from preset.
|
| 1910 |
try:
|
|
|
|
| 2019 |
pass
|
| 2020 |
|
| 2021 |
image = safe_decode(vae, latent)
|
| 2022 |
+
# allow user cancel right after initial decode
|
| 2023 |
+
model_management.throw_exception_if_processing_interrupted()
|
| 2024 |
|
| 2025 |
tuned_steps, tuned_cfg, tuned_denoise = AdaptiveSamplerHelper().tune(
|
| 2026 |
image, steps, cfg, denoise)
|
|
|
|
| 2051 |
str(sampler_name), str(scheduler), float(current_cfg), float(current_denoise),
|
| 2052 |
base_seed=0, step_tag=step_tag,
|
| 2053 |
clip_vision=clip_vision, reference_image=reference_image, clipseg_text=str(clipseg_text))
|
| 2054 |
+
except Exception as e:
|
| 2055 |
+
# propagate user cancel; swallow only non-interrupt errors
|
| 2056 |
+
if isinstance(e, model_management.InterruptProcessingException):
|
| 2057 |
+
raise
|
| 2058 |
pass
|
| 2059 |
|
| 2060 |
# Visual separation and start marker after seed is finalized
|
|
|
|
| 2197 |
clipseg_enable = False
|
| 2198 |
# Depth gate cache for micro-detail injection (reuse per resolution)
|
| 2199 |
depth_gate_cache = {"size": None, "mask": None}
|
| 2200 |
+
# check once more right before the loop starts
|
| 2201 |
+
model_management.throw_exception_if_processing_interrupted()
|
| 2202 |
for i in range(iterations):
|
| 2203 |
+
# cooperative cancel at the start of each iteration
|
| 2204 |
+
model_management.throw_exception_if_processing_interrupted()
|
| 2205 |
if i % 2 == 0:
|
| 2206 |
clear_gpu_and_ram_cache()
|
| 2207 |
|
|
|
|
| 2432 |
batch_inds = current_latent.get("batch_index", None)
|
| 2433 |
noise = _sample.prepare_noise(lat_img, int(iter_seed), batch_inds)
|
| 2434 |
noise_mask = current_latent.get("noise_mask", None)
|
| 2435 |
+
callback = _wrap_interruptible_callback(sampler_model, int(current_steps))
|
| 2436 |
+
# cooperative cancel just before entering sampler
|
| 2437 |
+
model_management.throw_exception_if_processing_interrupted()
|
| 2438 |
disable_pbar = not _utils.PROGRESS_BAR_ENABLED
|
| 2439 |
sampler_obj = _samplers.sampler_object(str(sampler_name))
|
| 2440 |
samples = _sample.sample_custom(
|
|
|
|
| 2446 |
current_latent = {**current_latent}
|
| 2447 |
current_latent["samples"] = samples
|
| 2448 |
except Exception as e:
|
| 2449 |
+
# Before any fallback, propagate user cancel if set
|
| 2450 |
+
try:
|
| 2451 |
+
model_management.throw_exception_if_processing_interrupted()
|
| 2452 |
+
except Exception:
|
| 2453 |
+
globals()["_MG_CANCEL_REQUESTED"] = False
|
| 2454 |
+
raise
|
| 2455 |
+
# Do not swallow user interruption; also check sentinel just in case
|
| 2456 |
+
if isinstance(e, model_management.InterruptProcessingException) or globals().get("_MG_CANCEL_REQUESTED", False):
|
| 2457 |
+
globals()["_MG_CANCEL_REQUESTED"] = False
|
| 2458 |
+
raise
|
| 2459 |
# Fallback to original path if anything goes wrong
|
| 2460 |
print(f"[CADE2.5][MGHybrid] fallback to common_ksampler due to: {e}")
|
| 2461 |
+
current_latent, = _interruptible_ksampler(
|
| 2462 |
sampler_model, iter_seed, int(current_steps), current_cfg, sampler_name, _scheduler_names()[0],
|
| 2463 |
positive, negative, current_latent, denoise=current_denoise)
|
| 2464 |
else:
|
| 2465 |
+
current_latent, = _interruptible_ksampler(
|
| 2466 |
sampler_model, iter_seed, int(current_steps), current_cfg, sampler_name, scheduler,
|
| 2467 |
positive, negative, current_latent, denoise=current_denoise)
|
| 2468 |
|
| 2469 |
+
# cooperative cancel immediately after sampling
|
| 2470 |
+
model_management.throw_exception_if_processing_interrupted()
|
| 2471 |
+
|
| 2472 |
if bool(latent_compare):
|
| 2473 |
latent_diff = current_latent["samples"] - prev_samples
|
| 2474 |
rms = torch.sqrt(torch.mean(latent_diff * latent_diff))
|
|
|
|
| 2504 |
pass
|
| 2505 |
|
| 2506 |
image = safe_decode(vae, current_latent)
|
| 2507 |
+
# and again after decode before post-processing
|
| 2508 |
+
model_management.throw_exception_if_processing_interrupted()
|
| 2509 |
|
| 2510 |
# Polish mode: keep global form (low frequencies) from reference while letting details refine
|
| 2511 |
if bool(polish_enable) and (i >= int(polish_start_after)):
|
|
|
|
| 2697 |
CURRENT_ONNX_MASK_BCHW = None
|
| 2698 |
except Exception:
|
| 2699 |
pass
|
| 2700 |
+
try:
|
| 2701 |
+
globals()["_MG_CANCEL_REQUESTED"] = False
|
| 2702 |
+
clear_gpu_and_ram_cache()
|
| 2703 |
+
except Exception:
|
| 2704 |
+
pass
|
| 2705 |
+
# best-effort cache cleanup on cancel or error
|
| 2706 |
+
try:
|
| 2707 |
+
clear_gpu_and_ram_cache()
|
| 2708 |
+
except Exception:
|
| 2709 |
+
pass
|
| 2710 |
|
| 2711 |
if apply_ids:
|
| 2712 |
image, = IntelligentDetailStabilizer().stabilize(image, ids_strength)
|
|
|
|
| 2885 |
step_tag: str | None = None) -> int:
|
| 2886 |
# Log start of SmartSeed selection
|
| 2887 |
try:
|
| 2888 |
+
# cooperative cancel before any smart-seed work
|
| 2889 |
+
model_management.throw_exception_if_processing_interrupted()
|
| 2890 |
try:
|
| 2891 |
# Visual separation before SmartSeed block
|
| 2892 |
print("")
|
|
|
|
| 2926 |
best_seed = cands[0]
|
| 2927 |
best_score = -1e9
|
| 2928 |
for sd in cands:
|
| 2929 |
+
# allow user to cancel between candidates
|
| 2930 |
+
model_management.throw_exception_if_processing_interrupted()
|
| 2931 |
try:
|
| 2932 |
# quick KSampler preview at low steps
|
| 2933 |
lat_in = {"samples": latent["samples"].clone()} if isinstance(latent, dict) else latent
|
| 2934 |
+
lat_out, = _interruptible_ksampler(
|
| 2935 |
model, int(sd), int(probe_steps), float(cfg), str(sampler_name), str(scheduler),
|
| 2936 |
positive, negative, lat_in, denoise=float(min(denoise, 0.65))
|
| 2937 |
)
|
| 2938 |
img = safe_decode(vae, lat_out)
|
| 2939 |
+
# and again right after decode
|
| 2940 |
+
model_management.throw_exception_if_processing_interrupted()
|
| 2941 |
# Base score: edge density toward a target + low speckle + balanced exposure
|
| 2942 |
ed = _edge_density(img)
|
| 2943 |
speck = _speckle_fraction(img)
|
|
|
|
| 2982 |
if score > best_score:
|
| 2983 |
best_score = score
|
| 2984 |
best_seed = sd
|
| 2985 |
+
except Exception as e:
|
| 2986 |
+
# do not swallow user interruption; also honour sentinel
|
| 2987 |
+
if isinstance(e, model_management.InterruptProcessingException) or globals().get("_MG_CANCEL_REQUESTED", False):
|
| 2988 |
+
globals()["_MG_CANCEL_REQUESTED"] = False
|
| 2989 |
+
raise
|
| 2990 |
continue
|
| 2991 |
|
| 2992 |
# Log end with selected seed
|
|
|
|
| 2998 |
except Exception:
|
| 2999 |
pass
|
| 3000 |
return int(best_seed & 0xFFFFFFFFFFFFFFFF)
|
| 3001 |
+
except Exception as e:
|
| 3002 |
+
if isinstance(e, model_management.InterruptProcessingException) or globals().get("_MG_CANCEL_REQUESTED", False):
|
| 3003 |
+
globals()["_MG_CANCEL_REQUESTED"] = False
|
| 3004 |
+
# propagate cancel to stop the whole prompt cleanly
|
| 3005 |
+
raise
|
| 3006 |
# Fallback to time-based random
|
| 3007 |
try:
|
| 3008 |
import time
|
|
|
|
| 3019 |
return fallback_seed
|
| 3020 |
|
| 3021 |
|
| 3022 |
+
def _wrap_interruptible_callback(model, steps):
|
| 3023 |
+
base_cb = nodes.latent_preview.prepare_callback(model, int(steps))
|
| 3024 |
+
def _cb(step, x0, x, total_steps):
|
| 3025 |
+
model_management.throw_exception_if_processing_interrupted()
|
| 3026 |
+
return base_cb(step, x0, x, total_steps)
|
| 3027 |
+
return _cb
|
| 3028 |
+
|
| 3029 |
+
def _interruptible_ksampler(model, seed, steps, cfg, sampler_name, scheduler,
|
| 3030 |
+
positive, negative, latent, denoise=1.0):
|
| 3031 |
+
lat_img = _sample.fix_empty_latent_channels(model, latent["samples"])
|
| 3032 |
+
batch_inds = latent.get("batch_index", None)
|
| 3033 |
+
noise = _sample.prepare_noise(lat_img, int(seed), batch_inds)
|
| 3034 |
+
noise_mask = latent.get("noise_mask", None)
|
| 3035 |
+
callback = _wrap_interruptible_callback(model, int(steps))
|
| 3036 |
+
# cooperative cancel just before sampler entry
|
| 3037 |
+
model_management.throw_exception_if_processing_interrupted()
|
| 3038 |
+
disable_pbar = not _utils.PROGRESS_BAR_ENABLED
|
| 3039 |
+
samples = _sample.sample(
|
| 3040 |
+
model, noise, int(steps), float(cfg), str(sampler_name), str(scheduler),
|
| 3041 |
+
positive, negative, lat_img,
|
| 3042 |
+
denoise=float(denoise), disable_noise=False, start_step=None, last_step=None,
|
| 3043 |
+
force_full_denoise=False, noise_mask=noise_mask, callback=callback,
|
| 3044 |
+
disable_pbar=disable_pbar, seed=int(seed)
|
| 3045 |
+
)
|
| 3046 |
+
out = {**latent}
|
| 3047 |
+
out["samples"] = samples
|
| 3048 |
+
return (out,)
|
mod/easy/mg_supersimple_easy.py
CHANGED
|
@@ -1,29 +1,30 @@
|
|
| 1 |
from __future__ import annotations
|
| 2 |
|
| 3 |
-
"""MG_SuperSimple:
|
| 4 |
-
|
| 5 |
-
|
| 6 |
-
|
| 7 |
-
|
| 8 |
-
|
| 9 |
-
|
| 10 |
-
|
| 11 |
-
|
| 12 |
-
|
| 13 |
-
|
| 14 |
-
|
| 15 |
-
|
| 16 |
-
|
| 17 |
-
Outputs
|
| 18 |
-
- (LATENT, IMAGE) from the final executed step
|
| 19 |
"""
|
| 20 |
|
|
|
|
| 21 |
import torch
|
| 22 |
|
| 23 |
from .mg_cade25_easy import ComfyAdaptiveDetailEnhancer25 as _CADE
|
| 24 |
from .mg_controlfusion_easy import MG_ControlFusion as _CF
|
| 25 |
from .mg_cade25_easy import _sampler_names as _sampler_names
|
| 26 |
from .mg_cade25_easy import _scheduler_names as _scheduler_names
|
|
|
|
|
|
|
| 27 |
|
| 28 |
|
| 29 |
class MG_SuperSimple:
|
|
@@ -97,10 +98,13 @@ class MG_SuperSimple:
|
|
| 97 |
return pos, neg
|
| 98 |
|
| 99 |
def run(self,
|
| 100 |
-
|
| 101 |
-
|
| 102 |
-
|
| 103 |
-
|
|
|
|
|
|
|
|
|
|
| 104 |
# Clamp step_count to 1..4
|
| 105 |
n = int(max(1, min(4, step_count)))
|
| 106 |
|
|
@@ -109,40 +113,48 @@ class MG_SuperSimple:
|
|
| 109 |
cur_pos = positive
|
| 110 |
cur_neg = negative
|
| 111 |
|
| 112 |
-
|
| 113 |
-
|
| 114 |
-
|
| 115 |
-
|
| 116 |
-
|
| 117 |
-
model=model, vae=vae, positive=cur_pos, negative=cur_neg, latent=cur_latent,
|
| 118 |
-
seed=seed, steps=steps, cfg=cfg, denoise=denoise_step1,
|
| 119 |
-
sampler_name=sampler_name, scheduler=scheduler,
|
| 120 |
-
clipseg_text=clipseg_text,
|
| 121 |
-
reference_image=reference_image, clip_vision=clip_vision,
|
| 122 |
-
)
|
| 123 |
-
cur_latent, cur_image = lat1, img1
|
| 124 |
-
|
| 125 |
-
# Steps 2..n: CF -> CADE per step
|
| 126 |
-
for i in range(2, n + 1):
|
| 127 |
-
# ControlFusion on current image/conds
|
| 128 |
-
cur_pos, cur_neg = self._cf(
|
| 129 |
-
preset_step=f"Step {i}",
|
| 130 |
-
image=cur_image, positive=cur_pos, negative=cur_neg,
|
| 131 |
-
control_net=control_net, vae=vae,
|
| 132 |
-
)
|
| 133 |
-
# CADE with shared controls
|
| 134 |
-
# If no external reference_image is provided, use the previous step image
|
| 135 |
-
# so that reference_clean / CLIP-Vision gating can take effect.
|
| 136 |
-
ref_img = reference_image if (reference_image is not None) else cur_image
|
| 137 |
-
lat_i, img_i = self._cade(
|
| 138 |
-
preset_step=f"Step {i}",
|
| 139 |
custom_override=bool(custom),
|
| 140 |
model=model, vae=vae, positive=cur_pos, negative=cur_neg, latent=cur_latent,
|
| 141 |
-
seed=seed, steps=steps, cfg=cfg, denoise=
|
| 142 |
sampler_name=sampler_name, scheduler=scheduler,
|
| 143 |
clipseg_text=clipseg_text,
|
| 144 |
-
reference_image=
|
| 145 |
)
|
| 146 |
-
cur_latent, cur_image =
|
| 147 |
-
|
| 148 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
from __future__ import annotations
|
| 2 |
|
| 3 |
+
"""MG_SuperSimple: orchestrates a 1..4 step pipeline over CF -> CADE pairs.
|
| 4 |
+
|
| 5 |
+
Step 1: CADE with the "Step 1" preset (denoise is forced to 1.0).
|
| 6 |
+
Steps 2..N: ControlFusion (CF) with the "Step N" preset, then CADE with the same "Step N" preset.
|
| 7 |
+
When custom=True: visible CADE controls (seed/steps/cfg/denoise/sampler/scheduler/clipseg_text) override the corresponding Step presets across all steps (Step 1 still uses denoise=1.0).
|
| 8 |
+
When custom=False: CADE values come from Step presets; node UI values are ignored. CF always uses its Step presets (kept minimal here).
|
| 9 |
+
Inputs:
|
| 10 |
+
|
| 11 |
+
model/vae/latent/positive/negative: standard Comfy connectors
|
| 12 |
+
control_net: ControlNet module for CF (required)
|
| 13 |
+
reference_image/clip_vision: forwarded into CADE (optional)
|
| 14 |
+
Outputs:
|
| 15 |
+
|
| 16 |
+
(LATENT, IMAGE) from the final executed step
|
|
|
|
|
|
|
| 17 |
"""
|
| 18 |
|
| 19 |
+
|
| 20 |
import torch
|
| 21 |
|
| 22 |
from .mg_cade25_easy import ComfyAdaptiveDetailEnhancer25 as _CADE
|
| 23 |
from .mg_controlfusion_easy import MG_ControlFusion as _CF
|
| 24 |
from .mg_cade25_easy import _sampler_names as _sampler_names
|
| 25 |
from .mg_cade25_easy import _scheduler_names as _scheduler_names
|
| 26 |
+
import comfy.model_management as model_management
|
| 27 |
+
from ..hard.mg_upscale_module import clear_gpu_and_ram_cache
|
| 28 |
|
| 29 |
|
| 30 |
class MG_SuperSimple:
|
|
|
|
| 98 |
return pos, neg
|
| 99 |
|
| 100 |
def run(self,
|
| 101 |
+
step_count, custom,
|
| 102 |
+
model, positive, negative, vae, latent, control_net,
|
| 103 |
+
seed, steps, cfg, denoise, sampler_name, scheduler, clipseg_text,
|
| 104 |
+
reference_image=None, clip_vision=None):
|
| 105 |
+
# Cooperative cancel before any heavy work
|
| 106 |
+
model_management.throw_exception_if_processing_interrupted()
|
| 107 |
+
|
| 108 |
# Clamp step_count to 1..4
|
| 109 |
n = int(max(1, min(4, step_count)))
|
| 110 |
|
|
|
|
| 113 |
cur_pos = positive
|
| 114 |
cur_neg = negative
|
| 115 |
|
| 116 |
+
try:
|
| 117 |
+
# Step 1: CADE with Step 1 preset, denoise forced to 1.0
|
| 118 |
+
denoise_step1 = 1.0
|
| 119 |
+
lat1, img1 = self._cade(
|
| 120 |
+
preset_step="Step 1",
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 121 |
custom_override=bool(custom),
|
| 122 |
model=model, vae=vae, positive=cur_pos, negative=cur_neg, latent=cur_latent,
|
| 123 |
+
seed=seed, steps=steps, cfg=cfg, denoise=denoise_step1,
|
| 124 |
sampler_name=sampler_name, scheduler=scheduler,
|
| 125 |
clipseg_text=clipseg_text,
|
| 126 |
+
reference_image=reference_image, clip_vision=clip_vision,
|
| 127 |
)
|
| 128 |
+
cur_latent, cur_image = lat1, img1
|
| 129 |
+
|
| 130 |
+
# Steps 2..n: CF -> CADE per step
|
| 131 |
+
for i in range(2, n + 1):
|
| 132 |
+
# allow user cancel between steps
|
| 133 |
+
model_management.throw_exception_if_processing_interrupted()
|
| 134 |
+
# ControlFusion on current image/conds
|
| 135 |
+
cur_pos, cur_neg = self._cf(
|
| 136 |
+
preset_step=f"Step {i}",
|
| 137 |
+
image=cur_image, positive=cur_pos, negative=cur_neg,
|
| 138 |
+
control_net=control_net, vae=vae,
|
| 139 |
+
)
|
| 140 |
+
# CADE with shared controls
|
| 141 |
+
# If no external reference_image is provided, use the previous step image
|
| 142 |
+
# so that reference_clean / CLIP-Vision gating can take effect.
|
| 143 |
+
ref_img = reference_image if (reference_image is not None) else cur_image
|
| 144 |
+
lat_i, img_i = self._cade(
|
| 145 |
+
preset_step=f"Step {i}",
|
| 146 |
+
custom_override=bool(custom),
|
| 147 |
+
model=model, vae=vae, positive=cur_pos, negative=cur_neg, latent=cur_latent,
|
| 148 |
+
seed=seed, steps=steps, cfg=cfg, denoise=denoise,
|
| 149 |
+
sampler_name=sampler_name, scheduler=scheduler,
|
| 150 |
+
clipseg_text=clipseg_text,
|
| 151 |
+
reference_image=ref_img, clip_vision=clip_vision,
|
| 152 |
+
)
|
| 153 |
+
cur_latent, cur_image = lat_i, img_i
|
| 154 |
+
return (cur_latent, cur_image)
|
| 155 |
+
finally:
|
| 156 |
+
# try to free memory on cancel or normal exit
|
| 157 |
+
try:
|
| 158 |
+
clear_gpu_and_ram_cache()
|
| 159 |
+
except Exception:
|
| 160 |
+
pass
|
mod/hard/mg_cade25.py
CHANGED
|
@@ -33,6 +33,9 @@ _CLIPSEG_PROC = None
|
|
| 33 |
_CLIPSEG_DEV = "cpu"
|
| 34 |
_CLIPSEG_FORCE_CPU = True # pin CLIPSeg to CPU to avoid device drift
|
| 35 |
|
|
|
|
|
|
|
|
|
|
| 36 |
# Per-iteration spatial guidance mask (B,1,H,W) in [0,1]; used by cfg_func when enabled
|
| 37 |
# Kept for potential future use with non-ONNX masks (e.g., CLIPSeg/ControlFusion),
|
| 38 |
# but not set by this node since ONNX paths are removed.
|
|
@@ -1540,7 +1543,16 @@ class ComfyAdaptiveDetailEnhancer25:
|
|
| 1540 |
clipseg_enable = False
|
| 1541 |
# Depth gate cache for micro-detail injection (reuse per resolution)
|
| 1542 |
depth_gate_cache = {"size": None, "mask": None}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1543 |
for i in range(iterations):
|
|
|
|
|
|
|
| 1544 |
if i % 2 == 0:
|
| 1545 |
clear_gpu_and_ram_cache()
|
| 1546 |
|
|
@@ -1618,7 +1630,9 @@ class ComfyAdaptiveDetailEnhancer25:
|
|
| 1618 |
batch_inds = current_latent.get("batch_index", None)
|
| 1619 |
noise = _sample.prepare_noise(lat_img, int(iter_seed), batch_inds)
|
| 1620 |
noise_mask = current_latent.get("noise_mask", None)
|
| 1621 |
-
callback =
|
|
|
|
|
|
|
| 1622 |
disable_pbar = not _utils.PROGRESS_BAR_ENABLED
|
| 1623 |
sampler_obj = _samplers.sampler_object(str(sampler_name))
|
| 1624 |
samples = _sample.sample_custom(
|
|
@@ -1630,16 +1644,29 @@ class ComfyAdaptiveDetailEnhancer25:
|
|
| 1630 |
current_latent = {**current_latent}
|
| 1631 |
current_latent["samples"] = samples
|
| 1632 |
except Exception as e:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1633 |
# Fallback to original path if anything goes wrong
|
| 1634 |
print(f"[CADE2.5][MGHybrid] fallback to common_ksampler due to: {e}")
|
| 1635 |
-
current_latent, =
|
| 1636 |
sampler_model, iter_seed, int(current_steps), current_cfg, sampler_name, _scheduler_names()[0],
|
| 1637 |
positive, negative, current_latent, denoise=current_denoise)
|
| 1638 |
else:
|
| 1639 |
-
current_latent, =
|
| 1640 |
sampler_model, iter_seed, int(current_steps), current_cfg, sampler_name, scheduler,
|
| 1641 |
positive, negative, current_latent, denoise=current_denoise)
|
| 1642 |
|
|
|
|
|
|
|
|
|
|
| 1643 |
if bool(latent_compare):
|
| 1644 |
latent_diff = current_latent["samples"] - prev_samples
|
| 1645 |
rms = torch.sqrt(torch.mean(latent_diff * latent_diff))
|
|
@@ -1675,6 +1702,8 @@ class ComfyAdaptiveDetailEnhancer25:
|
|
| 1675 |
pass
|
| 1676 |
|
| 1677 |
image = safe_decode(vae, current_latent)
|
|
|
|
|
|
|
| 1678 |
|
| 1679 |
# Polish mode: keep global form (low frequencies) from reference while letting details refine
|
| 1680 |
if bool(polish_enable) and (i >= int(polish_start_after)):
|
|
@@ -1833,6 +1862,17 @@ class ComfyAdaptiveDetailEnhancer25:
|
|
| 1833 |
CURRENT_ONNX_MASK_BCHW = None
|
| 1834 |
except Exception:
|
| 1835 |
pass
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1836 |
|
| 1837 |
if apply_ids:
|
| 1838 |
image, = IntelligentDetailStabilizer().stabilize(image, ids_strength)
|
|
@@ -1862,3 +1902,33 @@ class ComfyAdaptiveDetailEnhancer25:
|
|
| 1862 |
|
| 1863 |
|
| 1864 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 33 |
_CLIPSEG_DEV = "cpu"
|
| 34 |
_CLIPSEG_FORCE_CPU = True # pin CLIPSeg to CPU to avoid device drift
|
| 35 |
|
| 36 |
+
# Cooperative cancel sentinel: set in callbacks when user interrupts
|
| 37 |
+
_MG_CANCEL_REQUESTED = False
|
| 38 |
+
|
| 39 |
# Per-iteration spatial guidance mask (B,1,H,W) in [0,1]; used by cfg_func when enabled
|
| 40 |
# Kept for potential future use with non-ONNX masks (e.g., CLIPSeg/ControlFusion),
|
| 41 |
# but not set by this node since ONNX paths are removed.
|
|
|
|
| 1543 |
clipseg_enable = False
|
| 1544 |
# Depth gate cache for micro-detail injection (reuse per resolution)
|
| 1545 |
depth_gate_cache = {"size": None, "mask": None}
|
| 1546 |
+
# early interruption check before starting the loop
|
| 1547 |
+
try:
|
| 1548 |
+
model_management.throw_exception_if_processing_interrupted()
|
| 1549 |
+
except Exception:
|
| 1550 |
+
# ensure finally-block cleanup runs and exception propagates
|
| 1551 |
+
raise
|
| 1552 |
+
|
| 1553 |
for i in range(iterations):
|
| 1554 |
+
# cooperative cancel at the start of each iteration
|
| 1555 |
+
model_management.throw_exception_if_processing_interrupted()
|
| 1556 |
if i % 2 == 0:
|
| 1557 |
clear_gpu_and_ram_cache()
|
| 1558 |
|
|
|
|
| 1630 |
batch_inds = current_latent.get("batch_index", None)
|
| 1631 |
noise = _sample.prepare_noise(lat_img, int(iter_seed), batch_inds)
|
| 1632 |
noise_mask = current_latent.get("noise_mask", None)
|
| 1633 |
+
callback = _wrap_interruptible_callback(sampler_model, int(current_steps))
|
| 1634 |
+
# cooperative cancel just before entering sampler
|
| 1635 |
+
model_management.throw_exception_if_processing_interrupted()
|
| 1636 |
disable_pbar = not _utils.PROGRESS_BAR_ENABLED
|
| 1637 |
sampler_obj = _samplers.sampler_object(str(sampler_name))
|
| 1638 |
samples = _sample.sample_custom(
|
|
|
|
| 1644 |
current_latent = {**current_latent}
|
| 1645 |
current_latent["samples"] = samples
|
| 1646 |
except Exception as e:
|
| 1647 |
+
# Before any fallback, propagate user cancel if set
|
| 1648 |
+
try:
|
| 1649 |
+
model_management.throw_exception_if_processing_interrupted()
|
| 1650 |
+
except Exception:
|
| 1651 |
+
globals()["_MG_CANCEL_REQUESTED"] = False
|
| 1652 |
+
raise
|
| 1653 |
+
# Do not swallow user interruption; also check sentinel just in case
|
| 1654 |
+
if isinstance(e, model_management.InterruptProcessingException) or globals().get("_MG_CANCEL_REQUESTED", False):
|
| 1655 |
+
globals()["_MG_CANCEL_REQUESTED"] = False
|
| 1656 |
+
raise
|
| 1657 |
# Fallback to original path if anything goes wrong
|
| 1658 |
print(f"[CADE2.5][MGHybrid] fallback to common_ksampler due to: {e}")
|
| 1659 |
+
current_latent, = _interruptible_ksampler(
|
| 1660 |
sampler_model, iter_seed, int(current_steps), current_cfg, sampler_name, _scheduler_names()[0],
|
| 1661 |
positive, negative, current_latent, denoise=current_denoise)
|
| 1662 |
else:
|
| 1663 |
+
current_latent, = _interruptible_ksampler(
|
| 1664 |
sampler_model, iter_seed, int(current_steps), current_cfg, sampler_name, scheduler,
|
| 1665 |
positive, negative, current_latent, denoise=current_denoise)
|
| 1666 |
|
| 1667 |
+
# cooperative cancel right after sampling, before further heavy work
|
| 1668 |
+
model_management.throw_exception_if_processing_interrupted()
|
| 1669 |
+
|
| 1670 |
if bool(latent_compare):
|
| 1671 |
latent_diff = current_latent["samples"] - prev_samples
|
| 1672 |
rms = torch.sqrt(torch.mean(latent_diff * latent_diff))
|
|
|
|
| 1702 |
pass
|
| 1703 |
|
| 1704 |
image = safe_decode(vae, current_latent)
|
| 1705 |
+
# allow cancel between sampling and post-decode logic
|
| 1706 |
+
model_management.throw_exception_if_processing_interrupted()
|
| 1707 |
|
| 1708 |
# Polish mode: keep global form (low frequencies) from reference while letting details refine
|
| 1709 |
if bool(polish_enable) and (i >= int(polish_start_after)):
|
|
|
|
| 1862 |
CURRENT_ONNX_MASK_BCHW = None
|
| 1863 |
except Exception:
|
| 1864 |
pass
|
| 1865 |
+
# reset cancel sentinel and cleanup cache
|
| 1866 |
+
try:
|
| 1867 |
+
globals()["_MG_CANCEL_REQUESTED"] = False
|
| 1868 |
+
clear_gpu_and_ram_cache()
|
| 1869 |
+
except Exception:
|
| 1870 |
+
pass
|
| 1871 |
+
# best-effort cleanup of GPU/CPU caches on cancel or error
|
| 1872 |
+
try:
|
| 1873 |
+
clear_gpu_and_ram_cache()
|
| 1874 |
+
except Exception:
|
| 1875 |
+
pass
|
| 1876 |
|
| 1877 |
if apply_ids:
|
| 1878 |
image, = IntelligentDetailStabilizer().stabilize(image, ids_strength)
|
|
|
|
| 1902 |
|
| 1903 |
|
| 1904 |
|
| 1905 |
+
def _wrap_interruptible_callback(model, steps):
|
| 1906 |
+
base_cb = nodes.latent_preview.prepare_callback(model, int(steps))
|
| 1907 |
+
def _cb(step, x0, x, total_steps):
|
| 1908 |
+
# mark sentinel so outer layers avoid fallbacks on cancel
|
| 1909 |
+
if model_management.processing_interrupted():
|
| 1910 |
+
globals()["_MG_CANCEL_REQUESTED"] = True
|
| 1911 |
+
raise model_management.InterruptProcessingException()
|
| 1912 |
+
return base_cb(step, x0, x, total_steps)
|
| 1913 |
+
return _cb
|
| 1914 |
+
|
| 1915 |
+
def _interruptible_ksampler(model, seed, steps, cfg, sampler_name, scheduler,
|
| 1916 |
+
positive, negative, latent, denoise=1.0):
|
| 1917 |
+
lat_img = _sample.fix_empty_latent_channels(model, latent["samples"])
|
| 1918 |
+
batch_inds = latent.get("batch_index", None)
|
| 1919 |
+
noise = _sample.prepare_noise(lat_img, int(seed), batch_inds)
|
| 1920 |
+
noise_mask = latent.get("noise_mask", None)
|
| 1921 |
+
callback = _wrap_interruptible_callback(model, int(steps))
|
| 1922 |
+
# cooperative cancel just before sampler entry
|
| 1923 |
+
model_management.throw_exception_if_processing_interrupted()
|
| 1924 |
+
disable_pbar = not _utils.PROGRESS_BAR_ENABLED
|
| 1925 |
+
samples = _sample.sample(
|
| 1926 |
+
model, noise, int(steps), float(cfg), str(sampler_name), str(scheduler),
|
| 1927 |
+
positive, negative, lat_img,
|
| 1928 |
+
denoise=float(denoise), disable_noise=False, start_step=None, last_step=None,
|
| 1929 |
+
force_full_denoise=False, noise_mask=noise_mask, callback=callback,
|
| 1930 |
+
disable_pbar=disable_pbar, seed=int(seed)
|
| 1931 |
+
)
|
| 1932 |
+
out = {**latent}
|
| 1933 |
+
out["samples"] = samples
|
| 1934 |
+
return (out,)
|
mod/mg_combinode.py
CHANGED
|
@@ -60,6 +60,12 @@ def _unload_old_checkpoint(current_path):
|
|
| 60 |
class MagicNodesCombiNode:
|
| 61 |
@classmethod
|
| 62 |
def INPUT_TYPES(cls):
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 63 |
return {
|
| 64 |
"required": {
|
| 65 |
|
|
@@ -72,37 +78,37 @@ class MagicNodesCombiNode:
|
|
| 72 |
|
| 73 |
# --- LoRA 1 ---
|
| 74 |
"use_lora_1": ("BOOLEAN", {"default": True}),
|
| 75 |
-
"lora_1": (
|
| 76 |
"strength_model_1": ("FLOAT", {"default": 1.0, "min": -1.5, "max": 1.5, "step": 0.01,}),
|
| 77 |
"strength_clip_1": ("FLOAT", {"default": 1.0, "min": -1.5, "max": 1.5, "step": 0.01,}),
|
| 78 |
|
| 79 |
# --- LoRA 2 ---
|
| 80 |
"use_lora_2": ("BOOLEAN", {"default": False}),
|
| 81 |
-
"lora_2": (
|
| 82 |
"strength_model_2": ("FLOAT", {"default": 0.0, "min": -1.5, "max": 1.5, "step": 0.01,}),
|
| 83 |
"strength_clip_2": ("FLOAT", {"default": 0.0, "min": -1.5, "max": 1.5, "step": 0.01,}),
|
| 84 |
|
| 85 |
# --- LoRA 3 ---
|
| 86 |
"use_lora_3": ("BOOLEAN", {"default": False}),
|
| 87 |
-
"lora_3": (
|
| 88 |
"strength_model_3": ("FLOAT", {"default": 0.0, "min": -1.5, "max": 1.5, "step": 0.01,}),
|
| 89 |
"strength_clip_3": ("FLOAT", {"default": 0.0, "min": -1.5, "max": 1.5, "step": 0.01,}),
|
| 90 |
|
| 91 |
# --- LoRA 4 ---
|
| 92 |
"use_lora_4": ("BOOLEAN", {"default": False}),
|
| 93 |
-
"lora_4": (
|
| 94 |
"strength_model_4": ("FLOAT", {"default": 0.0, "min": -1.5, "max": 1.5, "step": 0.01,}),
|
| 95 |
"strength_clip_4": ("FLOAT", {"default": 0.0, "min": -1.5, "max": 1.5, "step": 0.01,}),
|
| 96 |
|
| 97 |
# --- LoRA 5 ---
|
| 98 |
"use_lora_5": ("BOOLEAN", {"default": False}),
|
| 99 |
-
"lora_5": (
|
| 100 |
"strength_model_5": ("FLOAT", {"default": 0.0, "min": -1.5, "max": 1.5, "step": 0.01,}),
|
| 101 |
"strength_clip_5": ("FLOAT", {"default": 0.0, "min": -1.5, "max": 1.5, "step": 0.01,}),
|
| 102 |
|
| 103 |
# --- LoRA 6 ---
|
| 104 |
"use_lora_6": ("BOOLEAN", {"default": False}),
|
| 105 |
-
"lora_6": (
|
| 106 |
"strength_model_6": ("FLOAT", {"default": 0.0, "min": -1.5, "max": 1.5, "step": 0.01,}),
|
| 107 |
"strength_clip_6": ("FLOAT", {"default": 0.0, "min": -1.5, "max": 1.5, "step": 0.01,}),
|
| 108 |
},
|
|
@@ -302,18 +308,30 @@ class MagicNodesCombiNode:
|
|
| 302 |
lora_stack = [] # list of (lora_file, sc, sm)
|
| 303 |
defer_clip = bool(standard_pipeline)
|
| 304 |
for use_lora, lora_name, sm, sc in loras:
|
| 305 |
-
|
| 306 |
-
|
| 307 |
-
|
| 308 |
-
|
| 309 |
-
|
| 310 |
-
|
| 311 |
-
|
| 312 |
-
|
| 313 |
-
|
| 314 |
-
|
| 315 |
-
|
| 316 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 317 |
|
| 318 |
_clear_unused_loras(active_lora_paths)
|
| 319 |
# Warn about duplicate LoRA selections across slots
|
|
|
|
| 60 |
class MagicNodesCombiNode:
|
| 61 |
@classmethod
|
| 62 |
def INPUT_TYPES(cls):
|
| 63 |
+
def _loras_with_none():
|
| 64 |
+
try:
|
| 65 |
+
return ["None"] + list(folder_paths.get_filename_list("loras"))
|
| 66 |
+
except Exception:
|
| 67 |
+
return ["None"]
|
| 68 |
+
|
| 69 |
return {
|
| 70 |
"required": {
|
| 71 |
|
|
|
|
| 78 |
|
| 79 |
# --- LoRA 1 ---
|
| 80 |
"use_lora_1": ("BOOLEAN", {"default": True}),
|
| 81 |
+
"lora_1": (_loras_with_none(), {}),
|
| 82 |
"strength_model_1": ("FLOAT", {"default": 1.0, "min": -1.5, "max": 1.5, "step": 0.01,}),
|
| 83 |
"strength_clip_1": ("FLOAT", {"default": 1.0, "min": -1.5, "max": 1.5, "step": 0.01,}),
|
| 84 |
|
| 85 |
# --- LoRA 2 ---
|
| 86 |
"use_lora_2": ("BOOLEAN", {"default": False}),
|
| 87 |
+
"lora_2": (_loras_with_none(), {}),
|
| 88 |
"strength_model_2": ("FLOAT", {"default": 0.0, "min": -1.5, "max": 1.5, "step": 0.01,}),
|
| 89 |
"strength_clip_2": ("FLOAT", {"default": 0.0, "min": -1.5, "max": 1.5, "step": 0.01,}),
|
| 90 |
|
| 91 |
# --- LoRA 3 ---
|
| 92 |
"use_lora_3": ("BOOLEAN", {"default": False}),
|
| 93 |
+
"lora_3": (_loras_with_none(), {}),
|
| 94 |
"strength_model_3": ("FLOAT", {"default": 0.0, "min": -1.5, "max": 1.5, "step": 0.01,}),
|
| 95 |
"strength_clip_3": ("FLOAT", {"default": 0.0, "min": -1.5, "max": 1.5, "step": 0.01,}),
|
| 96 |
|
| 97 |
# --- LoRA 4 ---
|
| 98 |
"use_lora_4": ("BOOLEAN", {"default": False}),
|
| 99 |
+
"lora_4": (_loras_with_none(), {}),
|
| 100 |
"strength_model_4": ("FLOAT", {"default": 0.0, "min": -1.5, "max": 1.5, "step": 0.01,}),
|
| 101 |
"strength_clip_4": ("FLOAT", {"default": 0.0, "min": -1.5, "max": 1.5, "step": 0.01,}),
|
| 102 |
|
| 103 |
# --- LoRA 5 ---
|
| 104 |
"use_lora_5": ("BOOLEAN", {"default": False}),
|
| 105 |
+
"lora_5": (_loras_with_none(), {}),
|
| 106 |
"strength_model_5": ("FLOAT", {"default": 0.0, "min": -1.5, "max": 1.5, "step": 0.01,}),
|
| 107 |
"strength_clip_5": ("FLOAT", {"default": 0.0, "min": -1.5, "max": 1.5, "step": 0.01,}),
|
| 108 |
|
| 109 |
# --- LoRA 6 ---
|
| 110 |
"use_lora_6": ("BOOLEAN", {"default": False}),
|
| 111 |
+
"lora_6": (_loras_with_none(), {}),
|
| 112 |
"strength_model_6": ("FLOAT", {"default": 0.0, "min": -1.5, "max": 1.5, "step": 0.01,}),
|
| 113 |
"strength_clip_6": ("FLOAT", {"default": 0.0, "min": -1.5, "max": 1.5, "step": 0.01,}),
|
| 114 |
},
|
|
|
|
| 308 |
lora_stack = [] # list of (lora_file, sc, sm)
|
| 309 |
defer_clip = bool(standard_pipeline)
|
| 310 |
for use_lora, lora_name, sm, sc in loras:
|
| 311 |
+
# Skip when disabled or name empty
|
| 312 |
+
if not use_lora or not lora_name:
|
| 313 |
+
continue
|
| 314 |
+
# Resolve path safely (do not raise if missing)
|
| 315 |
+
try:
|
| 316 |
+
lora_path = folder_paths.get_full_path("loras", lora_name)
|
| 317 |
+
except Exception:
|
| 318 |
+
lora_path = None
|
| 319 |
+
if not lora_path or not os.path.exists(lora_path):
|
| 320 |
+
try:
|
| 321 |
+
print(f"[CombiNode] LoRA '{lora_name}' not found; skipping.")
|
| 322 |
+
except Exception:
|
| 323 |
+
pass
|
| 324 |
+
continue
|
| 325 |
+
active_lora_paths.append(lora_path)
|
| 326 |
+
# keep lora object to avoid reloading
|
| 327 |
+
if lora_path in _lora_cache:
|
| 328 |
+
lora_file = _lora_cache[lora_path]
|
| 329 |
+
else:
|
| 330 |
+
lora_file = comfy.utils.load_torch_file(lora_path, safe_load=True)
|
| 331 |
+
_lora_cache[lora_path] = lora_file
|
| 332 |
+
lora_stack.append((lora_file, float(sc), float(sm)))
|
| 333 |
+
sc_apply = 0.0 if defer_clip else sc
|
| 334 |
+
model, clip = comfy.sd.load_lora_for_models(model, clip, lora_file, sm, sc_apply)
|
| 335 |
|
| 336 |
_clear_unused_loras(active_lora_paths)
|
| 337 |
# Warn about duplicate LoRA selections across slots
|
workflows/mg_Easy-Workflow.json
CHANGED
|
@@ -1 +1 @@
|
|
| 1 |
-
{"id":"ab14c37a-6cec-41cf-899a-b499539f5b8b","revision":0,"last_node_id":58,"last_link_id":152,"nodes":[{"id":33,"type":"PreviewImage","pos":[934.524998846107,827.6679009139978],"size":[454.34515960057956,487.52469509807827],"flags":{},"order":24,"mode":0,"inputs":[{"localized_name":"images","name":"images","type":"IMAGE","link":142}],"outputs":[],"properties":{"Node name for S&R":"PreviewImage"},"widgets_values":[]},{"id":16,"type":"PreviewImage","pos":[1500.7861350427,834.011023145272],"size":[454.34515960057956,487.52469509807827],"flags":{},"order":25,"mode":0,"inputs":[{"localized_name":"images","name":"images","type":"IMAGE","link":22}],"outputs":[],"properties":{"Node name for S&R":"PreviewImage"},"widgets_values":[]},{"id":7,"type":"SaveImage","pos":[2796.435012229308,813.9383242288463],"size":[645.60324992196,715.7559184038435],"flags":{},"order":35,"mode":0,"inputs":[{"localized_name":"images","name":"images","type":"IMAGE","link":48},{"localized_name":"filename_prefix","name":"filename_prefix","type":"STRING","widget":{"name":"filename_prefix"},"link":null}],"outputs":[],"properties":{},"widgets_values":["ComfyUI"]},{"id":26,"type":"PreviewImage","pos":[2402.088511427638,-384.4257289383634],"size":[204.34144162678967,246],"flags":{},"order":32,"mode":0,"inputs":[{"localized_name":"images","name":"images","type":"IMAGE","link":41}],"outputs":[],"properties":{"Node name for S&R":"PreviewImage"},"widgets_values":[]},{"id":45,"type":"PreviewImage","pos":[2134.6382392169603,-384.3467464741332],"size":[204.34144162678967,246],"flags":{},"order":29,"mode":0,"inputs":[{"localized_name":"images","name":"images","type":"IMAGE","link":123}],"outputs":[],"properties":{"Node name for S&R":"PreviewImage"},"widgets_values":[]},{"id":44,"type":"MG_ControlFusion_Easy","pos":[2230.0043967143683,-89.74152781984677],"size":[270,258],"flags":{},"order":26,"mode":0,"inputs":[{"localized_name":"image","name":"image","type":"IMAGE","link":110},{"localized_name":"positive","name":"positive","type":"CONDITIONING","link":119},{"localized_name":"negative","name":"negative","type":"CONDITIONING","link":120},{"localized_name":"control_net","name":"control_net","type":"CONTROL_NET","link":146},{"localized_name":"vae","name":"vae","type":"VAE","link":134},{"localized_name":"preset_step","name":"preset_step","type":"COMBO","widget":{"name":"preset_step"},"link":null},{"localized_name":"custom","name":"custom","type":"BOOLEAN","widget":{"name":"custom"},"link":null},{"localized_name":"enable_depth","name":"enable_depth","type":"BOOLEAN","widget":{"name":"enable_depth"},"link":null},{"localized_name":"enable_pyra","name":"enable_pyra","type":"BOOLEAN","widget":{"name":"enable_pyra"},"link":null},{"localized_name":"edge_alpha","name":"edge_alpha","type":"FLOAT","widget":{"name":"edge_alpha"},"link":null},{"localized_name":"blend_factor","name":"blend_factor","type":"FLOAT","widget":{"name":"blend_factor"},"link":null}],"outputs":[{"localized_name":"positive","name":"positive","type":"CONDITIONING","links":[115,122]},{"localized_name":"negative","name":"negative","type":"CONDITIONING","links":[116,121]},{"localized_name":"Mask_Preview","name":"Mask_Preview","type":"IMAGE","links":[123]}],"properties":{"Node name for S&R":"MG_ControlFusion_Easy"},"widgets_values":["Step 3",false,true,true,1,0.02]},{"id":42,"type":"PreviewImage","pos":[2869.9561925844105,-392.07761053265784],"size":[204.34144162678967,246],"flags":{},"order":34,"mode":0,"inputs":[{"localized_name":"images","name":"images","type":"IMAGE","link":90}],"outputs":[],"properties":{"Node name for S&R":"PreviewImage"},"widgets_values":[]},{"id":31,"type":"PreviewImage","pos":[3124.9260576007664,-392.6557805266826],"size":[204.34144162678967,246],"flags":{},"order":36,"mode":0,"inputs":[{"localized_name":"images","name":"images","type":"IMAGE","link":46}],"outputs":[],"properties":{"Node name for S&R":"PreviewImage"},"widgets_values":[]},{"id":41,"type":"MG_ControlFusion_Easy","pos":[2963.5735553194004,-88.49280600871076],"size":[270,258],"flags":{},"order":31,"mode":0,"inputs":[{"localized_name":"image","name":"image","type":"IMAGE","link":85},{"localized_name":"positive","name":"positive","type":"CONDITIONING","link":122},{"localized_name":"negative","name":"negative","type":"CONDITIONING","link":121},{"localized_name":"control_net","name":"control_net","type":"CONTROL_NET","link":148},{"localized_name":"vae","name":"vae","type":"VAE","link":133},{"localized_name":"preset_step","name":"preset_step","type":"COMBO","widget":{"name":"preset_step"},"link":null},{"localized_name":"custom","name":"custom","type":"BOOLEAN","widget":{"name":"custom"},"link":null},{"localized_name":"enable_depth","name":"enable_depth","type":"BOOLEAN","widget":{"name":"enable_depth"},"link":null},{"localized_name":"enable_pyra","name":"enable_pyra","type":"BOOLEAN","widget":{"name":"enable_pyra"},"link":null},{"localized_name":"edge_alpha","name":"edge_alpha","type":"FLOAT","widget":{"name":"edge_alpha"},"link":null},{"localized_name":"blend_factor","name":"blend_factor","type":"FLOAT","widget":{"name":"blend_factor"},"link":null}],"outputs":[{"localized_name":"positive","name":"positive","type":"CONDITIONING","links":[86]},{"localized_name":"negative","name":"negative","type":"CONDITIONING","links":[87]},{"localized_name":"Mask_Preview","name":"Mask_Preview","type":"IMAGE","links":[90]}],"properties":{"Node name for S&R":"MG_ControlFusion_Easy"},"widgets_values":["Step 4",false,true,true,1,0.02]},{"id":43,"type":"MG_ControlFusion_Easy","pos":[1591.642692427568,-97.88472358998305],"size":[270,258],"flags":{},"order":19,"mode":0,"inputs":[{"localized_name":"image","name":"image","type":"IMAGE","link":97},{"localized_name":"positive","name":"positive","type":"CONDITIONING","link":102},{"localized_name":"negative","name":"negative","type":"CONDITIONING","link":103},{"localized_name":"control_net","name":"control_net","type":"CONTROL_NET","link":144},{"localized_name":"vae","name":"vae","type":"VAE","link":135},{"localized_name":"preset_step","name":"preset_step","type":"COMBO","widget":{"name":"preset_step"},"link":null},{"localized_name":"custom","name":"custom","type":"BOOLEAN","widget":{"name":"custom"},"link":null},{"localized_name":"enable_depth","name":"enable_depth","type":"BOOLEAN","widget":{"name":"enable_depth"},"link":null},{"localized_name":"enable_pyra","name":"enable_pyra","type":"BOOLEAN","widget":{"name":"enable_pyra"},"link":null},{"localized_name":"edge_alpha","name":"edge_alpha","type":"FLOAT","widget":{"name":"edge_alpha"},"link":null},{"localized_name":"blend_factor","name":"blend_factor","type":"FLOAT","widget":{"name":"blend_factor"},"link":null}],"outputs":[{"localized_name":"positive","name":"positive","type":"CONDITIONING","links":[107,119]},{"localized_name":"negative","name":"negative","type":"CONDITIONING","links":[106,120]},{"localized_name":"Mask_Preview","name":"Mask_Preview","type":"IMAGE","links":[124]}],"properties":{"Node name for S&R":"MG_ControlFusion_Easy"},"widgets_values":["Step 2",false,true,true,1,0.02]},{"id":15,"type":"PreviewImage","pos":[1735.1930557379187,-393.0297689400224],"size":[204.34144162678967,246],"flags":{},"order":27,"mode":0,"inputs":[{"localized_name":"images","name":"images","type":"IMAGE","link":21}],"outputs":[],"properties":{"Node name for S&R":"PreviewImage"},"widgets_values":[]},{"id":46,"type":"PreviewImage","pos":[1507.7533042139721,-396.74243519648866],"size":[204.34144162678967,246],"flags":{},"order":23,"mode":0,"inputs":[{"localized_name":"images","name":"images","type":"IMAGE","link":124}],"outputs":[],"properties":{"Node name for S&R":"PreviewImage"},"widgets_values":[]},{"id":10,"type":"Note","pos":[-144.73815950276332,524.3438860412525],"size":[210,135.28179391870685],"flags":{},"order":0,"mode":0,"inputs":[],"outputs":[],"title":"Positive","properties":{},"widgets_values":["---->"],"color":"#232","bgcolor":"#353"},{"id":8,"type":"Note","pos":[-136.6498868216612,934.3499360344714],"size":[213.5817209730206,155.86666460906906],"flags":{},"order":1,"mode":0,"inputs":[],"outputs":[],"title":"Negative","properties":{},"widgets_values":["---->\n\n(super-wrong:1) - it's a trigger negative prompt for 'mg_7lambda_negative'"],"color":"#322","bgcolor":"#533"},{"id":53,"type":"Reroute","pos":[990.3715999390612,503.0075133219898],"size":[75,26],"flags":{},"order":20,"mode":0,"inputs":[{"name":"","type":"*","link":141}],"outputs":[{"name":"","type":"IMAGE","links":[142]}],"properties":{"showOutputText":false,"horizontal":false}},{"id":3,"type":"MagicSeedLatent","pos":[629.902126183393,-182.7453558545654],"size":[270,198],"flags":{},"order":9,"mode":0,"inputs":[{"localized_name":"vae","name":"vae","shape":7,"type":"VAE","link":2},{"localized_name":"image","name":"image","shape":7,"type":"IMAGE","link":null},{"localized_name":"width","name":"width","type":"INT","widget":{"name":"width"},"link":null},{"localized_name":"height","name":"height","type":"INT","widget":{"name":"height"},"link":null},{"localized_name":"batch_size","name":"batch_size","type":"INT","widget":{"name":"batch_size"},"link":null},{"localized_name":"sigma","name":"sigma","type":"FLOAT","widget":{"name":"sigma"},"link":null},{"localized_name":"bias","name":"bias","type":"FLOAT","widget":{"name":"bias"},"link":null},{"localized_name":"mix_image","name":"mix_image","type":"BOOLEAN","widget":{"name":"mix_image"},"link":null}],"outputs":[{"localized_name":"LATENT","name":"LATENT","type":"LATENT","links":[19]}],"properties":{"Node name for S&R":"MagicSeedLatent"},"widgets_values":[672,944,1,0.8,0.5,false],"color":"#323","bgcolor":"#535"},{"id":4,"type":"ControlNetLoader","pos":[1106.8272213312625,465.13839701649334],"size":[271.9963341032716,58],"flags":{},"order":2,"mode":0,"inputs":[{"localized_name":"control_net_name","name":"control_net_name","type":"COMBO","widget":{"name":"control_net_name"},"link":null}],"outputs":[{"label":"CONTROL_NET","localized_name":"CONTROL_NET","name":"CONTROL_NET","type":"CONTROL_NET","slot_index":0,"links":[143]}],"properties":{"Node name for S&R":"ControlNetLoader","models":[{"name":"control_v11p_sd15_scribble_fp16.safetensors","url":"https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_scribble_fp16.safetensors?download=true","directory":"controlnet"}]},"widgets_values":["diffusers_xl_depth_full.safetensors"],"color":"#233","bgcolor":"#355"},{"id":5,"type":"CLIPVisionLoader","pos":[1107.383961736022,356.1351441545039],"size":[267.557917518395,58],"flags":{},"order":3,"mode":0,"inputs":[{"localized_name":"clip_name","name":"clip_name","type":"COMBO","widget":{"name":"clip_name"},"link":null}],"outputs":[{"localized_name":"CLIP_VISION","name":"CLIP_VISION","type":"CLIP_VISION","links":[17,92]}],"properties":{"Node name for S&R":"CLIPVisionLoader"},"widgets_values":["open_clip_model(NS).safetensors"],"color":"#2a363b","bgcolor":"#3f5159"},{"id":49,"type":"Reroute","pos":[2127.6689254267244,589.457535723742],"size":[75,26],"flags":{},"order":15,"mode":0,"inputs":[{"name":"","type":"*","link":129}],"outputs":[{"name":"","type":"VAE","links":[130,131,134]}],"properties":{"showOutputText":false,"horizontal":false},"color":"#432","bgcolor":"#653"},{"id":47,"type":"Reroute","pos":[2126.2268260656597,621.1837216671687],"size":[75,26],"flags":{},"order":12,"mode":0,"inputs":[{"name":"","type":"*","link":125}],"outputs":[{"name":"","type":"CLIP_VISION","links":[126,127]}],"properties":{"showOutputText":false,"horizontal":false},"color":"#2a363b","bgcolor":"#3f5159"},{"id":55,"type":"Reroute","pos":[2125.520836752072,649.1034792254129],"size":[75,26],"flags":{},"order":11,"mode":0,"inputs":[{"name":"","type":"*","link":145}],"outputs":[{"name":"","type":"CONTROL_NET","links":[146,147]}],"properties":{"showOutputText":false,"horizontal":false},"color":"#233","bgcolor":"#355"},{"id":52,"type":"Reroute","pos":[2847.2765065980852,559.1734491413802],"size":[75,26],"flags":{},"order":18,"mode":0,"inputs":[{"name":"","type":"*","link":139}],"outputs":[{"name":"","type":"MODEL","links":[140]}],"properties":{"showOutputText":false,"horizontal":false},"color":"#223","bgcolor":"#335"},{"id":50,"type":"Reroute","pos":[2847.276506598083,593.7838338069366],"size":[75,26],"flags":{},"order":21,"mode":0,"inputs":[{"name":"","type":"*","link":131}],"outputs":[{"name":"","type":"VAE","links":[132,133]}],"properties":{"showOutputText":false,"horizontal":false},"color":"#432","bgcolor":"#653"},{"id":48,"type":"Reroute","pos":[2847.2765065980825,624.0679203892983],"size":[75,26],"flags":{},"order":17,"mode":0,"inputs":[{"name":"","type":"*","link":127}],"outputs":[{"name":"","type":"CLIP_VISION","links":[128]}],"properties":{"showOutputText":false,"horizontal":false},"color":"#2a363b","bgcolor":"#3f5159"},{"id":56,"type":"Reroute","pos":[2843.686318562366,656.3139760307369],"size":[75,26],"flags":{},"order":16,"mode":0,"inputs":[{"name":"","type":"*","link":147}],"outputs":[{"name":"","type":"CONTROL_NET","links":[148]}],"properties":{"showOutputText":false,"horizontal":false},"color":"#233","bgcolor":"#355"},{"id":19,"type":"Reroute","pos":[1498.7055053565248,550.5312952244669],"size":[75,26],"flags":{},"order":7,"mode":0,"inputs":[{"name":"","type":"*","link":150}],"outputs":[{"name":"","type":"MODEL","links":[136,137]}],"properties":{"showOutputText":false,"horizontal":false},"color":"#223","bgcolor":"#335"},{"id":20,"type":"Reroute","pos":[1500.2829216438683,587.3239702140152],"size":[75,26],"flags":{},"order":10,"mode":0,"inputs":[{"name":"","type":"*","link":31}],"outputs":[{"name":"","type":"VAE","links":[32,129,135]}],"properties":{"showOutputText":false,"horizontal":false},"color":"#432","bgcolor":"#653"},{"id":17,"type":"Reroute","pos":[1500.0465475793615,619.3098903755488],"size":[75,26],"flags":{},"order":6,"mode":0,"inputs":[{"name":"","type":"*","link":92}],"outputs":[{"name":"","type":"CLIP_VISION","links":[28,125]}],"properties":{"showOutputText":false,"horizontal":false},"color":"#2a363b","bgcolor":"#3f5159"},{"id":54,"type":"Reroute","pos":[1500.2152857001722,653.5359574268514],"size":[75,26],"flags":{},"order":5,"mode":0,"inputs":[{"name":"","type":"*","link":143}],"outputs":[{"name":"","type":"CONTROL_NET","links":[144,145]}],"properties":{"showOutputText":false,"horizontal":false},"color":"#233","bgcolor":"#355"},{"id":51,"type":"Reroute","pos":[2129.1110247877914,554.8471510581859],"size":[75,26],"flags":{},"order":13,"mode":0,"inputs":[{"name":"","type":"*","link":137}],"outputs":[{"name":"","type":"MODEL","links":[138,139]}],"properties":{"showOutputText":false,"horizontal":false},"color":"#223","bgcolor":"#335"},{"id":24,"type":"ComfyAdaptiveDetailEnhancer25_Easy","pos":[2216.167965338495,236.13994164208663],"size":[304.44140625,394],"flags":{},"order":28,"mode":0,"inputs":[{"localized_name":"model","name":"model","type":"MODEL","link":138},{"localized_name":"positive","name":"positive","type":"CONDITIONING","link":115},{"localized_name":"negative","name":"negative","type":"CONDITIONING","link":116},{"localized_name":"vae","name":"vae","type":"VAE","link":130},{"localized_name":"latent","name":"latent","type":"LATENT","link":62},{"localized_name":"reference_image","name":"reference_image","shape":7,"type":"IMAGE","link":66},{"localized_name":"clip_vision","name":"clip_vision","shape":7,"type":"CLIP_VISION","link":126},{"localized_name":"preset_step","name":"preset_step","type":"COMBO","widget":{"name":"preset_step"},"link":null},{"localized_name":"custom","name":"custom","type":"BOOLEAN","widget":{"name":"custom"},"link":null},{"localized_name":"seed","name":"seed","type":"INT","widget":{"name":"seed"},"link":null},{"localized_name":"steps","name":"steps","type":"INT","widget":{"name":"steps"},"link":null},{"localized_name":"cfg","name":"cfg","type":"FLOAT","widget":{"name":"cfg"},"link":null},{"localized_name":"denoise","name":"denoise","type":"FLOAT","widget":{"name":"denoise"},"link":null},{"localized_name":"sampler_name","name":"sampler_name","type":"COMBO","widget":{"name":"sampler_name"},"link":null},{"localized_name":"scheduler","name":"scheduler","type":"COMBO","widget":{"name":"scheduler"},"link":null},{"localized_name":"clipseg_text","name":"clipseg_text","shape":7,"type":"STRING","widget":{"name":"clipseg_text"},"link":null}],"outputs":[{"localized_name":"LATENT","name":"LATENT","type":"LATENT","links":[61]},{"localized_name":"IMAGE","name":"IMAGE","type":"IMAGE","links":[40,65,85]},{"localized_name":"mask_preview","name":"mask_preview","type":"IMAGE","links":[41]}],"properties":{"Node name for S&R":"ComfyAdaptiveDetailEnhancer25_Easy"},"widgets_values":["Step 3",false,0,"fixed",30,7,0.55,"ddim","MGHybrid","hand, feet, face"]},{"id":25,"type":"PreviewImage","pos":[2076.6050781706476,818.6164042016213],"size":[607.2076918734667,715.3763941463438],"flags":{},"order":30,"mode":0,"inputs":[{"localized_name":"images","name":"images","type":"IMAGE","link":40}],"outputs":[],"properties":{"Node name for S&R":"PreviewImage"},"widgets_values":[]},{"id":29,"type":"ComfyAdaptiveDetailEnhancer25_Easy","pos":[2947.1571822581677,229.68250150174998],"size":[304.44140625,394],"flags":{},"order":33,"mode":0,"inputs":[{"localized_name":"model","name":"model","type":"MODEL","link":140},{"localized_name":"positive","name":"positive","type":"CONDITIONING","link":86},{"localized_name":"negative","name":"negative","type":"CONDITIONING","link":87},{"localized_name":"vae","name":"vae","type":"VAE","link":132},{"localized_name":"latent","name":"latent","type":"LATENT","link":61},{"localized_name":"reference_image","name":"reference_image","shape":7,"type":"IMAGE","link":65},{"localized_name":"clip_vision","name":"clip_vision","shape":7,"type":"CLIP_VISION","link":128},{"localized_name":"preset_step","name":"preset_step","type":"COMBO","widget":{"name":"preset_step"},"link":null},{"localized_name":"custom","name":"custom","type":"BOOLEAN","widget":{"name":"custom"},"link":null},{"localized_name":"seed","name":"seed","type":"INT","widget":{"name":"seed"},"link":null},{"localized_name":"steps","name":"steps","type":"INT","widget":{"name":"steps"},"link":null},{"localized_name":"cfg","name":"cfg","type":"FLOAT","widget":{"name":"cfg"},"link":null},{"localized_name":"denoise","name":"denoise","type":"FLOAT","widget":{"name":"denoise"},"link":null},{"localized_name":"sampler_name","name":"sampler_name","type":"COMBO","widget":{"name":"sampler_name"},"link":null},{"localized_name":"scheduler","name":"scheduler","type":"COMBO","widget":{"name":"scheduler"},"link":null},{"localized_name":"clipseg_text","name":"clipseg_text","shape":7,"type":"STRING","widget":{"name":"clipseg_text"},"link":null}],"outputs":[{"localized_name":"LATENT","name":"LATENT","type":"LATENT","links":null},{"localized_name":"IMAGE","name":"IMAGE","type":"IMAGE","links":[48]},{"localized_name":"mask_preview","name":"mask_preview","type":"IMAGE","links":[46]}],"properties":{"Node name for S&R":"ComfyAdaptiveDetailEnhancer25_Easy"},"widgets_values":["Step 4",false,0,"fixed",30,7,0.45,"ddim","MGHybrid","hand, feet, face"]},{"id":11,"type":"ComfyAdaptiveDetailEnhancer25_Easy","pos":[1572.9731847035082,222.56018167321056],"size":[304.44140625,394],"flags":{},"order":22,"mode":0,"inputs":[{"localized_name":"model","name":"model","type":"MODEL","link":136},{"localized_name":"positive","name":"positive","type":"CONDITIONING","link":107},{"localized_name":"negative","name":"negative","type":"CONDITIONING","link":106},{"localized_name":"vae","name":"vae","type":"VAE","link":32},{"localized_name":"latent","name":"latent","type":"LATENT","link":37},{"localized_name":"reference_image","name":"reference_image","shape":7,"type":"IMAGE","link":24},{"localized_name":"clip_vision","name":"clip_vision","shape":7,"type":"CLIP_VISION","link":28},{"localized_name":"preset_step","name":"preset_step","type":"COMBO","widget":{"name":"preset_step"},"link":null},{"localized_name":"custom","name":"custom","type":"BOOLEAN","widget":{"name":"custom"},"link":null},{"localized_name":"seed","name":"seed","type":"INT","widget":{"name":"seed"},"link":null},{"localized_name":"steps","name":"steps","type":"INT","widget":{"name":"steps"},"link":null},{"localized_name":"cfg","name":"cfg","type":"FLOAT","widget":{"name":"cfg"},"link":null},{"localized_name":"denoise","name":"denoise","type":"FLOAT","widget":{"name":"denoise"},"link":null},{"localized_name":"sampler_name","name":"sampler_name","type":"COMBO","widget":{"name":"sampler_name"},"link":null},{"localized_name":"scheduler","name":"scheduler","type":"COMBO","widget":{"name":"scheduler"},"link":null},{"localized_name":"clipseg_text","name":"clipseg_text","shape":7,"type":"STRING","widget":{"name":"clipseg_text"},"link":null}],"outputs":[{"localized_name":"LATENT","name":"LATENT","type":"LATENT","links":[62]},{"localized_name":"IMAGE","name":"IMAGE","type":"IMAGE","links":[22,66,110]},{"localized_name":"mask_preview","name":"mask_preview","type":"IMAGE","links":[21]}],"properties":{"Node name for S&R":"ComfyAdaptiveDetailEnhancer25_Easy"},"widgets_values":["Step 2",false,0,"fixed",30,7,0.65,"ddim","MGHybrid","hand, feet, face"]},{"id":14,"type":"ComfyAdaptiveDetailEnhancer25_Easy","pos":[1028.7352577781799,-254.68484251639404],"size":[304.44140625,394],"flags":{},"order":14,"mode":0,"inputs":[{"localized_name":"model","name":"model","type":"MODEL","link":152},{"localized_name":"positive","name":"positive","type":"CONDITIONING","link":13},{"localized_name":"negative","name":"negative","type":"CONDITIONING","link":14},{"localized_name":"vae","name":"vae","type":"VAE","link":15},{"localized_name":"latent","name":"latent","type":"LATENT","link":19},{"localized_name":"reference_image","name":"reference_image","shape":7,"type":"IMAGE","link":null},{"localized_name":"clip_vision","name":"clip_vision","shape":7,"type":"CLIP_VISION","link":17},{"localized_name":"preset_step","name":"preset_step","type":"COMBO","widget":{"name":"preset_step"},"link":null},{"localized_name":"custom","name":"custom","type":"BOOLEAN","widget":{"name":"custom"},"link":null},{"localized_name":"seed","name":"seed","type":"INT","widget":{"name":"seed"},"link":null},{"localized_name":"steps","name":"steps","type":"INT","widget":{"name":"steps"},"link":null},{"localized_name":"cfg","name":"cfg","type":"FLOAT","widget":{"name":"cfg"},"link":null},{"localized_name":"denoise","name":"denoise","type":"FLOAT","widget":{"name":"denoise"},"link":null},{"localized_name":"sampler_name","name":"sampler_name","type":"COMBO","widget":{"name":"sampler_name"},"link":null},{"localized_name":"scheduler","name":"scheduler","type":"COMBO","widget":{"name":"scheduler"},"link":null},{"localized_name":"clipseg_text","name":"clipseg_text","shape":7,"type":"STRING","widget":{"name":"clipseg_text"},"link":null}],"outputs":[{"localized_name":"LATENT","name":"LATENT","type":"LATENT","links":[37]},{"localized_name":"IMAGE","name":"IMAGE","type":"IMAGE","links":[24,97,141]},{"localized_name":"mask_preview","name":"mask_preview","type":"IMAGE","links":[]}],"properties":{"Node name for S&R":"ComfyAdaptiveDetailEnhancer25_Easy"},"widgets_values":["Step 1",false,0,"fixed",30,7,0.9999,"ddim","MGHybrid","hand, feet, face"]},{"id":58,"type":"PatchSageAttention","pos":[627.8244030121156,-297.19892309893845],"size":[270,58],"flags":{},"order":8,"mode":0,"inputs":[{"localized_name":"model","name":"model","type":"MODEL","link":151},{"localized_name":"sage_attention","name":"sage_attention","type":"COMBO","widget":{"name":"sage_attention"},"link":null}],"outputs":[{"localized_name":"MODEL","name":"MODEL","type":"MODEL","links":[152]}],"properties":{"Node name for S&R":"PatchSageAttention"},"widgets_values":["auto_quality"],"color":"#223","bgcolor":"#335"},{"id":2,"type":"MagicNodesCombiNode","pos":[93.09648271877055,-350.9065523480804],"size":[439.3682369626521,1874.7812342789503],"flags":{},"order":4,"mode":0,"inputs":[{"localized_name":"model_in","name":"model_in","shape":7,"type":"MODEL","link":null},{"localized_name":"clip_in","name":"clip_in","shape":7,"type":"CLIP","link":null},{"localized_name":"vae_in","name":"vae_in","shape":7,"type":"VAE","link":null},{"localized_name":"positive_in","name":"positive_in","shape":7,"type":"CONDITIONING","link":null},{"localized_name":"negative_in","name":"negative_in","shape":7,"type":"CONDITIONING","link":null},{"localized_name":"use_checkpoint","name":"use_checkpoint","type":"BOOLEAN","widget":{"name":"use_checkpoint"},"link":null},{"localized_name":"checkpoint","name":"checkpoint","type":"COMBO","widget":{"name":"checkpoint"},"link":null},{"localized_name":"clear_cache","name":"clear_cache","type":"BOOLEAN","widget":{"name":"clear_cache"},"link":null},{"localized_name":"use_lora_1","name":"use_lora_1","type":"BOOLEAN","widget":{"name":"use_lora_1"},"link":null},{"localized_name":"lora_1","name":"lora_1","type":"COMBO","widget":{"name":"lora_1"},"link":null},{"localized_name":"strength_model_1","name":"strength_model_1","type":"FLOAT","widget":{"name":"strength_model_1"},"link":null},{"localized_name":"strength_clip_1","name":"strength_clip_1","type":"FLOAT","widget":{"name":"strength_clip_1"},"link":null},{"localized_name":"use_lora_2","name":"use_lora_2","type":"BOOLEAN","widget":{"name":"use_lora_2"},"link":null},{"localized_name":"lora_2","name":"lora_2","type":"COMBO","widget":{"name":"lora_2"},"link":null},{"localized_name":"strength_model_2","name":"strength_model_2","type":"FLOAT","widget":{"name":"strength_model_2"},"link":null},{"localized_name":"strength_clip_2","name":"strength_clip_2","type":"FLOAT","widget":{"name":"strength_clip_2"},"link":null},{"localized_name":"use_lora_3","name":"use_lora_3","type":"BOOLEAN","widget":{"name":"use_lora_3"},"link":null},{"localized_name":"lora_3","name":"lora_3","type":"COMBO","widget":{"name":"lora_3"},"link":null},{"localized_name":"strength_model_3","name":"strength_model_3","type":"FLOAT","widget":{"name":"strength_model_3"},"link":null},{"localized_name":"strength_clip_3","name":"strength_clip_3","type":"FLOAT","widget":{"name":"strength_clip_3"},"link":null},{"localized_name":"use_lora_4","name":"use_lora_4","type":"BOOLEAN","widget":{"name":"use_lora_4"},"link":null},{"localized_name":"lora_4","name":"lora_4","type":"COMBO","widget":{"name":"lora_4"},"link":null},{"localized_name":"strength_model_4","name":"strength_model_4","type":"FLOAT","widget":{"name":"strength_model_4"},"link":null},{"localized_name":"strength_clip_4","name":"strength_clip_4","type":"FLOAT","widget":{"name":"strength_clip_4"},"link":null},{"localized_name":"use_lora_5","name":"use_lora_5","type":"BOOLEAN","widget":{"name":"use_lora_5"},"link":null},{"localized_name":"lora_5","name":"lora_5","type":"COMBO","widget":{"name":"lora_5"},"link":null},{"localized_name":"strength_model_5","name":"strength_model_5","type":"FLOAT","widget":{"name":"strength_model_5"},"link":null},{"localized_name":"strength_clip_5","name":"strength_clip_5","type":"FLOAT","widget":{"name":"strength_clip_5"},"link":null},{"localized_name":"use_lora_6","name":"use_lora_6","type":"BOOLEAN","widget":{"name":"use_lora_6"},"link":null},{"localized_name":"lora_6","name":"lora_6","type":"COMBO","widget":{"name":"lora_6"},"link":null},{"localized_name":"strength_model_6","name":"strength_model_6","type":"FLOAT","widget":{"name":"strength_model_6"},"link":null},{"localized_name":"strength_clip_6","name":"strength_clip_6","type":"FLOAT","widget":{"name":"strength_clip_6"},"link":null},{"localized_name":"positive_prompt","name":"positive_prompt","shape":7,"type":"STRING","widget":{"name":"positive_prompt"},"link":null},{"localized_name":"negative_prompt","name":"negative_prompt","shape":7,"type":"STRING","widget":{"name":"negative_prompt"},"link":null},{"localized_name":"clip_set_last_layer_positive","name":"clip_set_last_layer_positive","shape":7,"type":"INT","widget":{"name":"clip_set_last_layer_positive"},"link":null},{"localized_name":"clip_set_last_layer_negative","name":"clip_set_last_layer_negative","shape":7,"type":"INT","widget":{"name":"clip_set_last_layer_negative"},"link":null},{"localized_name":"recipe_slot","name":"recipe_slot","shape":7,"type":"COMBO","widget":{"name":"recipe_slot"},"link":null},{"localized_name":"recipe_save","name":"recipe_save","shape":7,"type":"BOOLEAN","widget":{"name":"recipe_save"},"link":null},{"localized_name":"recipe_use","name":"recipe_use","shape":7,"type":"BOOLEAN","widget":{"name":"recipe_use"},"link":null},{"localized_name":"standard_pipeline","name":"standard_pipeline","shape":7,"type":"BOOLEAN","widget":{"name":"standard_pipeline"},"link":null},{"localized_name":"clip_lora_pos_gain","name":"clip_lora_pos_gain","shape":7,"type":"FLOAT","widget":{"name":"clip_lora_pos_gain"},"link":null},{"localized_name":"clip_lora_neg_gain","name":"clip_lora_neg_gain","shape":7,"type":"FLOAT","widget":{"name":"clip_lora_neg_gain"},"link":null},{"localized_name":"dynamic_pos","name":"dynamic_pos","shape":7,"type":"BOOLEAN","widget":{"name":"dynamic_pos"},"link":null},{"localized_name":"dynamic_neg","name":"dynamic_neg","shape":7,"type":"BOOLEAN","widget":{"name":"dynamic_neg"},"link":null},{"localized_name":"dyn_seed","name":"dyn_seed","shape":7,"type":"INT","widget":{"name":"dyn_seed"},"link":null},{"localized_name":"dynamic_break_freeze","name":"dynamic_break_freeze","shape":7,"type":"BOOLEAN","widget":{"name":"dynamic_break_freeze"},"link":null},{"localized_name":"show_expanded_prompts","name":"show_expanded_prompts","shape":7,"type":"BOOLEAN","widget":{"name":"show_expanded_prompts"},"link":null},{"localized_name":"save_expanded_prompts","name":"save_expanded_prompts","shape":7,"type":"BOOLEAN","widget":{"name":"save_expanded_prompts"},"link":null}],"outputs":[{"localized_name":"MODEL","name":"MODEL","type":"MODEL","links":[150,151]},{"localized_name":"CLIP","name":"CLIP","type":"CLIP","links":null},{"localized_name":"Positive","name":"Positive","type":"CONDITIONING","links":[13,102]},{"localized_name":"Negative","name":"Negative","type":"CONDITIONING","links":[14,103]},{"localized_name":"VAE","name":"VAE","type":"VAE","links":[2,15,31]}],"properties":{"Node name for S&R":"MagicNodesCombiNode"},"widgets_values":[true,"7Lambda_1.3_2D_Universal.safetensors",true,true,"mg_7lambda_negative.safetensors",-1,0.2,false,"mg_7lambda_negative.safetensors",0,0,false,"mg_7lambda_negative.safetensors",0,0,false,"mg_7lambda_negative.safetensors",0,0,false,"mg_7lambda_negative.safetensors",0,0,false,"mg_7lambda_negative.safetensors",false,false,"(correct human anatomy:1).\n(masterwork:1), very aesthetic, super detailed, newest, masterpiece, amazing quality, highres, sharpen image, best quality.\n25yrs 1woman, necklace, earnings, jewelry, wrist jewelry, ponytail hair, blue hair, blue eyes, yellow kimono with floral print, holds a large pillow, purple pillow, smile, 2 hands.\nFront view, Bedroom","(super-wrong:1), wrong, worst, mistake, (anatomically incorrect human:1), wrong geometry\n(six fingers:1), pixelated,\n(bad hands:1), deformed nails, (fused fingers), (incorrecting hold in hand:1), bad fingers\nugly, (bad anatomy), junior artist, beginner's drawing, bad composition, loose, underpainting, muddy colors, broken symmetry, unclear focal point, blurry details, incorrect perspective, shaky outlines, uneven lines,\n(unsharpen eyes:1), imperfect eyes, skewed eyes, unnatural face, unnatural body, extra limb, missing limbs, distorted eyelashes, misplaced pupils, noisly eyes, long neck,\nobject clipping, clothing clipping, object intersection, unrealistic overlap, geometry intersection,\ntext, typo, signature, watermarks on image, error",-2,-2,"Off",false,false,false,0.92,1,false,false,0,false,false,false]}],"links":[[2,2,4,3,0,"VAE"],[13,2,2,14,1,"CONDITIONING"],[14,2,3,14,2,"CONDITIONING"],[15,2,4,14,3,"VAE"],[17,5,0,14,6,"CLIP_VISION"],[19,3,0,14,4,"LATENT"],[21,11,2,15,0,"IMAGE"],[22,11,1,16,0,"IMAGE"],[24,14,1,11,5,"IMAGE"],[28,17,0,11,6,"CLIP_VISION"],[31,2,4,20,0,"*"],[32,20,0,11,3,"VAE"],[37,14,0,11,4,"LATENT"],[40,24,1,25,0,"IMAGE"],[41,24,2,26,0,"IMAGE"],[46,29,2,31,0,"IMAGE"],[48,29,1,7,0,"IMAGE"],[61,24,0,29,4,"LATENT"],[62,11,0,24,4,"LATENT"],[65,24,1,29,5,"IMAGE"],[66,11,1,24,5,"IMAGE"],[85,24,1,41,0,"IMAGE"],[86,41,0,29,1,"CONDITIONING"],[87,41,1,29,2,"CONDITIONING"],[90,41,2,42,0,"IMAGE"],[92,5,0,17,0,"*"],[97,14,1,43,0,"IMAGE"],[102,2,2,43,1,"CONDITIONING"],[103,2,3,43,2,"CONDITIONING"],[106,43,1,11,2,"CONDITIONING"],[107,43,0,11,1,"CONDITIONING"],[110,11,1,44,0,"IMAGE"],[115,44,0,24,1,"CONDITIONING"],[116,44,1,24,2,"CONDITIONING"],[119,43,0,44,1,"CONDITIONING"],[120,43,1,44,2,"CONDITIONING"],[121,44,1,41,2,"CONDITIONING"],[122,44,0,41,1,"CONDITIONING"],[123,44,2,45,0,"IMAGE"],[124,43,2,46,0,"IMAGE"],[125,17,0,47,0,"*"],[126,47,0,24,6,"CLIP_VISION"],[127,47,0,48,0,"*"],[128,48,0,29,6,"CLIP_VISION"],[129,20,0,49,0,"*"],[130,49,0,24,3,"VAE"],[131,49,0,50,0,"*"],[132,50,0,29,3,"VAE"],[133,50,0,41,4,"VAE"],[134,49,0,44,4,"VAE"],[135,20,0,43,4,"VAE"],[136,19,0,11,0,"MODEL"],[137,19,0,51,0,"*"],[138,51,0,24,0,"MODEL"],[139,51,0,52,0,"*"],[140,52,0,29,0,"MODEL"],[141,14,1,53,0,"*"],[142,53,0,33,0,"IMAGE"],[143,4,0,54,0,"*"],[144,54,0,43,3,"CONTROL_NET"],[145,54,0,55,0,"*"],[146,55,0,44,3,"CONTROL_NET"],[147,55,0,56,0,"*"],[148,56,0,41,3,"CONTROL_NET"],[150,2,0,19,0,"*"],[151,2,0,58,0,"MODEL"],[152,58,0,14,0,"MODEL"]],"groups":[{"id":1,"title":"Step1 - Pre-warm","bounding":[985.2202161884722,-368.00948371274734,405.87327906278074,908.4829257340471],"color":"#a1309b","font_size":22,"flags":{}},{"id":2,"title":"Step2 - warming","bounding":[1491.7975585478357,-546.9292924524468,464.03429546870484,1238.2310938486526],"color":"#b58b2a","font_size":22,"flags":{}},{"id":3,"title":"Step3 - Pre-ready","bounding":[2110.501998988056,-553.0885338063888,518.639493048679,1245.9769642733752],"color":"#3f789e","font_size":22,"flags":{}},{"id":4,"title":"Step4 - High-res","bounding":[2836.675702344997,-548.5808647096898,526.8246054854121,1235.0376260654407],"color":"#8A8","font_size":22,"flags":{}},{"id":5,"title":"1 - Pre-warm","bounding":[912.8922171272666,734.9178623674503,505.331679024805,647.6692243308507],"color":"#a1309b","font_size":22,"flags":{}},{"id":6,"title":"2 - warming","bounding":[1478.1593316885921,734.6063030539617,505.331679024805,647.6692243308507],"color":"#b58b2a","font_size":22,"flags":{}},{"id":7,"title":"3 - Pre-ready","bounding":[2040.803574403982,730.9381266791784,683.3155821674318,849.0584001035625],"color":"#3f789e","font_size":22,"flags":{}},{"id":8,"title":"Step4 - High-res","bounding":[2771.933529470263,732.683066906069,700.3585746163794,850.3693995227123],"color":"#8A8","font_size":22,"flags":{}}],"config":{},"extra":{"ds":{"scale":1.1167815779424883,"offset":[314.5473164115067,582.999969688245]}},"version":0.4}
|
|
|
|
| 1 |
+
{"id":"ab14c37a-6cec-41cf-899a-b499539f5b8b","revision":0,"last_node_id":58,"last_link_id":152,"nodes":[{"id":33,"type":"PreviewImage","pos":[934.524998846107,827.6679009139978],"size":[454.34515960057956,487.52469509807827],"flags":{},"order":24,"mode":0,"inputs":[{"localized_name":"images","name":"images","type":"IMAGE","link":142}],"outputs":[],"properties":{"Node name for S&R":"PreviewImage"},"widgets_values":[]},{"id":16,"type":"PreviewImage","pos":[1500.7861350427,834.011023145272],"size":[454.34515960057956,487.52469509807827],"flags":{},"order":25,"mode":0,"inputs":[{"localized_name":"images","name":"images","type":"IMAGE","link":22}],"outputs":[],"properties":{"Node name for S&R":"PreviewImage"},"widgets_values":[]},{"id":7,"type":"SaveImage","pos":[2796.435012229308,813.9383242288463],"size":[645.60324992196,715.7559184038435],"flags":{},"order":35,"mode":0,"inputs":[{"localized_name":"images","name":"images","type":"IMAGE","link":48},{"localized_name":"filename_prefix","name":"filename_prefix","type":"STRING","widget":{"name":"filename_prefix"},"link":null}],"outputs":[],"properties":{},"widgets_values":["ComfyUI"]},{"id":26,"type":"PreviewImage","pos":[2402.088511427638,-384.4257289383634],"size":[204.34144162678967,246],"flags":{},"order":32,"mode":0,"inputs":[{"localized_name":"images","name":"images","type":"IMAGE","link":41}],"outputs":[],"properties":{"Node name for S&R":"PreviewImage"},"widgets_values":[]},{"id":45,"type":"PreviewImage","pos":[2134.6382392169603,-384.3467464741332],"size":[204.34144162678967,246],"flags":{},"order":29,"mode":0,"inputs":[{"localized_name":"images","name":"images","type":"IMAGE","link":123}],"outputs":[],"properties":{"Node name for S&R":"PreviewImage"},"widgets_values":[]},{"id":44,"type":"MG_ControlFusion_Easy","pos":[2230.0043967143683,-89.74152781984677],"size":[270,258],"flags":{},"order":26,"mode":0,"inputs":[{"localized_name":"image","name":"image","type":"IMAGE","link":110},{"localized_name":"positive","name":"positive","type":"CONDITIONING","link":119},{"localized_name":"negative","name":"negative","type":"CONDITIONING","link":120},{"localized_name":"control_net","name":"control_net","type":"CONTROL_NET","link":146},{"localized_name":"vae","name":"vae","type":"VAE","link":134},{"localized_name":"preset_step","name":"preset_step","type":"COMBO","widget":{"name":"preset_step"},"link":null},{"localized_name":"custom","name":"custom","type":"BOOLEAN","widget":{"name":"custom"},"link":null},{"localized_name":"enable_depth","name":"enable_depth","type":"BOOLEAN","widget":{"name":"enable_depth"},"link":null},{"localized_name":"enable_pyra","name":"enable_pyra","type":"BOOLEAN","widget":{"name":"enable_pyra"},"link":null},{"localized_name":"edge_alpha","name":"edge_alpha","type":"FLOAT","widget":{"name":"edge_alpha"},"link":null},{"localized_name":"blend_factor","name":"blend_factor","type":"FLOAT","widget":{"name":"blend_factor"},"link":null}],"outputs":[{"localized_name":"positive","name":"positive","type":"CONDITIONING","links":[115,122]},{"localized_name":"negative","name":"negative","type":"CONDITIONING","links":[116,121]},{"localized_name":"Mask_Preview","name":"Mask_Preview","type":"IMAGE","links":[123]}],"properties":{"Node name for S&R":"MG_ControlFusion_Easy"},"widgets_values":["Step 3",false,true,true,1,0.02]},{"id":42,"type":"PreviewImage","pos":[2869.9561925844105,-392.07761053265784],"size":[204.34144162678967,246],"flags":{},"order":34,"mode":0,"inputs":[{"localized_name":"images","name":"images","type":"IMAGE","link":90}],"outputs":[],"properties":{"Node name for S&R":"PreviewImage"},"widgets_values":[]},{"id":31,"type":"PreviewImage","pos":[3124.9260576007664,-392.6557805266826],"size":[204.34144162678967,246],"flags":{},"order":36,"mode":0,"inputs":[{"localized_name":"images","name":"images","type":"IMAGE","link":46}],"outputs":[],"properties":{"Node name for S&R":"PreviewImage"},"widgets_values":[]},{"id":41,"type":"MG_ControlFusion_Easy","pos":[2963.5735553194004,-88.49280600871076],"size":[270,258],"flags":{},"order":31,"mode":0,"inputs":[{"localized_name":"image","name":"image","type":"IMAGE","link":85},{"localized_name":"positive","name":"positive","type":"CONDITIONING","link":122},{"localized_name":"negative","name":"negative","type":"CONDITIONING","link":121},{"localized_name":"control_net","name":"control_net","type":"CONTROL_NET","link":148},{"localized_name":"vae","name":"vae","type":"VAE","link":133},{"localized_name":"preset_step","name":"preset_step","type":"COMBO","widget":{"name":"preset_step"},"link":null},{"localized_name":"custom","name":"custom","type":"BOOLEAN","widget":{"name":"custom"},"link":null},{"localized_name":"enable_depth","name":"enable_depth","type":"BOOLEAN","widget":{"name":"enable_depth"},"link":null},{"localized_name":"enable_pyra","name":"enable_pyra","type":"BOOLEAN","widget":{"name":"enable_pyra"},"link":null},{"localized_name":"edge_alpha","name":"edge_alpha","type":"FLOAT","widget":{"name":"edge_alpha"},"link":null},{"localized_name":"blend_factor","name":"blend_factor","type":"FLOAT","widget":{"name":"blend_factor"},"link":null}],"outputs":[{"localized_name":"positive","name":"positive","type":"CONDITIONING","links":[86]},{"localized_name":"negative","name":"negative","type":"CONDITIONING","links":[87]},{"localized_name":"Mask_Preview","name":"Mask_Preview","type":"IMAGE","links":[90]}],"properties":{"Node name for S&R":"MG_ControlFusion_Easy"},"widgets_values":["Step 4",false,true,true,1,0.02]},{"id":43,"type":"MG_ControlFusion_Easy","pos":[1591.642692427568,-97.88472358998305],"size":[270,258],"flags":{},"order":19,"mode":0,"inputs":[{"localized_name":"image","name":"image","type":"IMAGE","link":97},{"localized_name":"positive","name":"positive","type":"CONDITIONING","link":102},{"localized_name":"negative","name":"negative","type":"CONDITIONING","link":103},{"localized_name":"control_net","name":"control_net","type":"CONTROL_NET","link":144},{"localized_name":"vae","name":"vae","type":"VAE","link":135},{"localized_name":"preset_step","name":"preset_step","type":"COMBO","widget":{"name":"preset_step"},"link":null},{"localized_name":"custom","name":"custom","type":"BOOLEAN","widget":{"name":"custom"},"link":null},{"localized_name":"enable_depth","name":"enable_depth","type":"BOOLEAN","widget":{"name":"enable_depth"},"link":null},{"localized_name":"enable_pyra","name":"enable_pyra","type":"BOOLEAN","widget":{"name":"enable_pyra"},"link":null},{"localized_name":"edge_alpha","name":"edge_alpha","type":"FLOAT","widget":{"name":"edge_alpha"},"link":null},{"localized_name":"blend_factor","name":"blend_factor","type":"FLOAT","widget":{"name":"blend_factor"},"link":null}],"outputs":[{"localized_name":"positive","name":"positive","type":"CONDITIONING","links":[107,119]},{"localized_name":"negative","name":"negative","type":"CONDITIONING","links":[106,120]},{"localized_name":"Mask_Preview","name":"Mask_Preview","type":"IMAGE","links":[124]}],"properties":{"Node name for S&R":"MG_ControlFusion_Easy"},"widgets_values":["Step 2",false,true,true,1,0.02]},{"id":15,"type":"PreviewImage","pos":[1735.1930557379187,-393.0297689400224],"size":[204.34144162678967,246],"flags":{},"order":27,"mode":0,"inputs":[{"localized_name":"images","name":"images","type":"IMAGE","link":21}],"outputs":[],"properties":{"Node name for S&R":"PreviewImage"},"widgets_values":[]},{"id":46,"type":"PreviewImage","pos":[1507.7533042139721,-396.74243519648866],"size":[204.34144162678967,246],"flags":{},"order":23,"mode":0,"inputs":[{"localized_name":"images","name":"images","type":"IMAGE","link":124}],"outputs":[],"properties":{"Node name for S&R":"PreviewImage"},"widgets_values":[]},{"id":10,"type":"Note","pos":[-144.73815950276332,524.3438860412525],"size":[210,135.28179391870685],"flags":{},"order":0,"mode":0,"inputs":[],"outputs":[],"title":"Positive","properties":{},"widgets_values":["---->"],"color":"#232","bgcolor":"#353"},{"id":8,"type":"Note","pos":[-136.6498868216612,934.3499360344714],"size":[213.5817209730206,155.86666460906906],"flags":{},"order":1,"mode":0,"inputs":[],"outputs":[],"title":"Negative","properties":{},"widgets_values":["---->\n\n(super-wrong:1) - it's a trigger negative prompt for 'mg_7lambda_negative'"],"color":"#322","bgcolor":"#533"},{"id":53,"type":"Reroute","pos":[990.3715999390612,503.0075133219898],"size":[75,26],"flags":{},"order":20,"mode":0,"inputs":[{"name":"","type":"*","link":141}],"outputs":[{"name":"","type":"IMAGE","links":[142]}],"properties":{"showOutputText":false,"horizontal":false}},{"id":3,"type":"MagicSeedLatent","pos":[629.902126183393,-182.7453558545654],"size":[270,198],"flags":{},"order":9,"mode":0,"inputs":[{"localized_name":"vae","name":"vae","shape":7,"type":"VAE","link":2},{"localized_name":"image","name":"image","shape":7,"type":"IMAGE","link":null},{"localized_name":"width","name":"width","type":"INT","widget":{"name":"width"},"link":null},{"localized_name":"height","name":"height","type":"INT","widget":{"name":"height"},"link":null},{"localized_name":"batch_size","name":"batch_size","type":"INT","widget":{"name":"batch_size"},"link":null},{"localized_name":"sigma","name":"sigma","type":"FLOAT","widget":{"name":"sigma"},"link":null},{"localized_name":"bias","name":"bias","type":"FLOAT","widget":{"name":"bias"},"link":null},{"localized_name":"mix_image","name":"mix_image","type":"BOOLEAN","widget":{"name":"mix_image"},"link":null}],"outputs":[{"localized_name":"LATENT","name":"LATENT","type":"LATENT","links":[19]}],"properties":{"Node name for S&R":"MagicSeedLatent"},"widgets_values":[672,944,1,0.8,0.5,false],"color":"#323","bgcolor":"#535"},{"id":4,"type":"ControlNetLoader","pos":[1106.8272213312625,465.13839701649334],"size":[271.9963341032716,58],"flags":{},"order":2,"mode":0,"inputs":[{"localized_name":"control_net_name","name":"control_net_name","type":"COMBO","widget":{"name":"control_net_name"},"link":null}],"outputs":[{"label":"CONTROL_NET","localized_name":"CONTROL_NET","name":"CONTROL_NET","type":"CONTROL_NET","slot_index":0,"links":[143]}],"properties":{"Node name for S&R":"ControlNetLoader","models":[{"name":"control_v11p_sd15_scribble_fp16.safetensors","url":"https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_scribble_fp16.safetensors?download=true","directory":"controlnet"}]},"widgets_values":["diffusers_xl_depth_full.safetensors"],"color":"#233","bgcolor":"#355"},{"id":5,"type":"CLIPVisionLoader","pos":[1107.383961736022,356.1351441545039],"size":[267.557917518395,58],"flags":{},"order":3,"mode":0,"inputs":[{"localized_name":"clip_name","name":"clip_name","type":"COMBO","widget":{"name":"clip_name"},"link":null}],"outputs":[{"localized_name":"CLIP_VISION","name":"CLIP_VISION","type":"CLIP_VISION","links":[17,92]}],"properties":{"Node name for S&R":"CLIPVisionLoader"},"widgets_values":["open_clip_model(NS).safetensors"],"color":"#2a363b","bgcolor":"#3f5159"},{"id":49,"type":"Reroute","pos":[2127.6689254267244,589.457535723742],"size":[75,26],"flags":{},"order":15,"mode":0,"inputs":[{"name":"","type":"*","link":129}],"outputs":[{"name":"","type":"VAE","links":[130,131,134]}],"properties":{"showOutputText":false,"horizontal":false},"color":"#432","bgcolor":"#653"},{"id":47,"type":"Reroute","pos":[2126.2268260656597,621.1837216671687],"size":[75,26],"flags":{},"order":12,"mode":0,"inputs":[{"name":"","type":"*","link":125}],"outputs":[{"name":"","type":"CLIP_VISION","links":[126,127]}],"properties":{"showOutputText":false,"horizontal":false},"color":"#2a363b","bgcolor":"#3f5159"},{"id":55,"type":"Reroute","pos":[2125.520836752072,649.1034792254129],"size":[75,26],"flags":{},"order":11,"mode":0,"inputs":[{"name":"","type":"*","link":145}],"outputs":[{"name":"","type":"CONTROL_NET","links":[146,147]}],"properties":{"showOutputText":false,"horizontal":false},"color":"#233","bgcolor":"#355"},{"id":52,"type":"Reroute","pos":[2847.2765065980852,559.1734491413802],"size":[75,26],"flags":{},"order":18,"mode":0,"inputs":[{"name":"","type":"*","link":139}],"outputs":[{"name":"","type":"MODEL","links":[140]}],"properties":{"showOutputText":false,"horizontal":false},"color":"#223","bgcolor":"#335"},{"id":50,"type":"Reroute","pos":[2847.276506598083,593.7838338069366],"size":[75,26],"flags":{},"order":21,"mode":0,"inputs":[{"name":"","type":"*","link":131}],"outputs":[{"name":"","type":"VAE","links":[132,133]}],"properties":{"showOutputText":false,"horizontal":false},"color":"#432","bgcolor":"#653"},{"id":48,"type":"Reroute","pos":[2847.2765065980825,624.0679203892983],"size":[75,26],"flags":{},"order":17,"mode":0,"inputs":[{"name":"","type":"*","link":127}],"outputs":[{"name":"","type":"CLIP_VISION","links":[128]}],"properties":{"showOutputText":false,"horizontal":false},"color":"#2a363b","bgcolor":"#3f5159"},{"id":56,"type":"Reroute","pos":[2843.686318562366,656.3139760307369],"size":[75,26],"flags":{},"order":16,"mode":0,"inputs":[{"name":"","type":"*","link":147}],"outputs":[{"name":"","type":"CONTROL_NET","links":[148]}],"properties":{"showOutputText":false,"horizontal":false},"color":"#233","bgcolor":"#355"},{"id":19,"type":"Reroute","pos":[1498.7055053565248,550.5312952244669],"size":[75,26],"flags":{},"order":7,"mode":0,"inputs":[{"name":"","type":"*","link":150}],"outputs":[{"name":"","type":"MODEL","links":[136,137]}],"properties":{"showOutputText":false,"horizontal":false},"color":"#223","bgcolor":"#335"},{"id":20,"type":"Reroute","pos":[1500.2829216438683,587.3239702140152],"size":[75,26],"flags":{},"order":10,"mode":0,"inputs":[{"name":"","type":"*","link":31}],"outputs":[{"name":"","type":"VAE","links":[32,129,135]}],"properties":{"showOutputText":false,"horizontal":false},"color":"#432","bgcolor":"#653"},{"id":17,"type":"Reroute","pos":[1500.0465475793615,619.3098903755488],"size":[75,26],"flags":{},"order":6,"mode":0,"inputs":[{"name":"","type":"*","link":92}],"outputs":[{"name":"","type":"CLIP_VISION","links":[28,125]}],"properties":{"showOutputText":false,"horizontal":false},"color":"#2a363b","bgcolor":"#3f5159"},{"id":54,"type":"Reroute","pos":[1500.2152857001722,653.5359574268514],"size":[75,26],"flags":{},"order":5,"mode":0,"inputs":[{"name":"","type":"*","link":143}],"outputs":[{"name":"","type":"CONTROL_NET","links":[144,145]}],"properties":{"showOutputText":false,"horizontal":false},"color":"#233","bgcolor":"#355"},{"id":51,"type":"Reroute","pos":[2129.1110247877914,554.8471510581859],"size":[75,26],"flags":{},"order":13,"mode":0,"inputs":[{"name":"","type":"*","link":137}],"outputs":[{"name":"","type":"MODEL","links":[138,139]}],"properties":{"showOutputText":false,"horizontal":false},"color":"#223","bgcolor":"#335"},{"id":24,"type":"ComfyAdaptiveDetailEnhancer25_Easy","pos":[2216.167965338495,236.13994164208663],"size":[304.44140625,394],"flags":{},"order":28,"mode":0,"inputs":[{"localized_name":"model","name":"model","type":"MODEL","link":138},{"localized_name":"positive","name":"positive","type":"CONDITIONING","link":115},{"localized_name":"negative","name":"negative","type":"CONDITIONING","link":116},{"localized_name":"vae","name":"vae","type":"VAE","link":130},{"localized_name":"latent","name":"latent","type":"LATENT","link":62},{"localized_name":"reference_image","name":"reference_image","shape":7,"type":"IMAGE","link":66},{"localized_name":"clip_vision","name":"clip_vision","shape":7,"type":"CLIP_VISION","link":126},{"localized_name":"preset_step","name":"preset_step","type":"COMBO","widget":{"name":"preset_step"},"link":null},{"localized_name":"custom","name":"custom","type":"BOOLEAN","widget":{"name":"custom"},"link":null},{"localized_name":"seed","name":"seed","type":"INT","widget":{"name":"seed"},"link":null},{"localized_name":"steps","name":"steps","type":"INT","widget":{"name":"steps"},"link":null},{"localized_name":"cfg","name":"cfg","type":"FLOAT","widget":{"name":"cfg"},"link":null},{"localized_name":"denoise","name":"denoise","type":"FLOAT","widget":{"name":"denoise"},"link":null},{"localized_name":"sampler_name","name":"sampler_name","type":"COMBO","widget":{"name":"sampler_name"},"link":null},{"localized_name":"scheduler","name":"scheduler","type":"COMBO","widget":{"name":"scheduler"},"link":null},{"localized_name":"clipseg_text","name":"clipseg_text","shape":7,"type":"STRING","widget":{"name":"clipseg_text"},"link":null}],"outputs":[{"localized_name":"LATENT","name":"LATENT","type":"LATENT","links":[61]},{"localized_name":"IMAGE","name":"IMAGE","type":"IMAGE","links":[40,65,85]},{"localized_name":"mask_preview","name":"mask_preview","type":"IMAGE","links":[41]}],"properties":{"Node name for S&R":"ComfyAdaptiveDetailEnhancer25_Easy"},"widgets_values":["Step 3",false,0,"fixed",30,7,0.55,"ddim","MGHybrid","hand, feet, face"]},{"id":25,"type":"PreviewImage","pos":[2076.6050781706476,818.6164042016213],"size":[607.2076918734667,715.3763941463438],"flags":{},"order":30,"mode":0,"inputs":[{"localized_name":"images","name":"images","type":"IMAGE","link":40}],"outputs":[],"properties":{"Node name for S&R":"PreviewImage"},"widgets_values":[]},{"id":29,"type":"ComfyAdaptiveDetailEnhancer25_Easy","pos":[2947.1571822581677,229.68250150174998],"size":[304.44140625,394],"flags":{},"order":33,"mode":0,"inputs":[{"localized_name":"model","name":"model","type":"MODEL","link":140},{"localized_name":"positive","name":"positive","type":"CONDITIONING","link":86},{"localized_name":"negative","name":"negative","type":"CONDITIONING","link":87},{"localized_name":"vae","name":"vae","type":"VAE","link":132},{"localized_name":"latent","name":"latent","type":"LATENT","link":61},{"localized_name":"reference_image","name":"reference_image","shape":7,"type":"IMAGE","link":65},{"localized_name":"clip_vision","name":"clip_vision","shape":7,"type":"CLIP_VISION","link":128},{"localized_name":"preset_step","name":"preset_step","type":"COMBO","widget":{"name":"preset_step"},"link":null},{"localized_name":"custom","name":"custom","type":"BOOLEAN","widget":{"name":"custom"},"link":null},{"localized_name":"seed","name":"seed","type":"INT","widget":{"name":"seed"},"link":null},{"localized_name":"steps","name":"steps","type":"INT","widget":{"name":"steps"},"link":null},{"localized_name":"cfg","name":"cfg","type":"FLOAT","widget":{"name":"cfg"},"link":null},{"localized_name":"denoise","name":"denoise","type":"FLOAT","widget":{"name":"denoise"},"link":null},{"localized_name":"sampler_name","name":"sampler_name","type":"COMBO","widget":{"name":"sampler_name"},"link":null},{"localized_name":"scheduler","name":"scheduler","type":"COMBO","widget":{"name":"scheduler"},"link":null},{"localized_name":"clipseg_text","name":"clipseg_text","shape":7,"type":"STRING","widget":{"name":"clipseg_text"},"link":null}],"outputs":[{"localized_name":"LATENT","name":"LATENT","type":"LATENT","links":null},{"localized_name":"IMAGE","name":"IMAGE","type":"IMAGE","links":[48]},{"localized_name":"mask_preview","name":"mask_preview","type":"IMAGE","links":[46]}],"properties":{"Node name for S&R":"ComfyAdaptiveDetailEnhancer25_Easy"},"widgets_values":["Step 4",false,0,"fixed",30,7,0.45,"ddim","MGHybrid","hand, feet, face"]},{"id":11,"type":"ComfyAdaptiveDetailEnhancer25_Easy","pos":[1572.9731847035082,222.56018167321056],"size":[304.44140625,394],"flags":{},"order":22,"mode":0,"inputs":[{"localized_name":"model","name":"model","type":"MODEL","link":136},{"localized_name":"positive","name":"positive","type":"CONDITIONING","link":107},{"localized_name":"negative","name":"negative","type":"CONDITIONING","link":106},{"localized_name":"vae","name":"vae","type":"VAE","link":32},{"localized_name":"latent","name":"latent","type":"LATENT","link":37},{"localized_name":"reference_image","name":"reference_image","shape":7,"type":"IMAGE","link":24},{"localized_name":"clip_vision","name":"clip_vision","shape":7,"type":"CLIP_VISION","link":28},{"localized_name":"preset_step","name":"preset_step","type":"COMBO","widget":{"name":"preset_step"},"link":null},{"localized_name":"custom","name":"custom","type":"BOOLEAN","widget":{"name":"custom"},"link":null},{"localized_name":"seed","name":"seed","type":"INT","widget":{"name":"seed"},"link":null},{"localized_name":"steps","name":"steps","type":"INT","widget":{"name":"steps"},"link":null},{"localized_name":"cfg","name":"cfg","type":"FLOAT","widget":{"name":"cfg"},"link":null},{"localized_name":"denoise","name":"denoise","type":"FLOAT","widget":{"name":"denoise"},"link":null},{"localized_name":"sampler_name","name":"sampler_name","type":"COMBO","widget":{"name":"sampler_name"},"link":null},{"localized_name":"scheduler","name":"scheduler","type":"COMBO","widget":{"name":"scheduler"},"link":null},{"localized_name":"clipseg_text","name":"clipseg_text","shape":7,"type":"STRING","widget":{"name":"clipseg_text"},"link":null}],"outputs":[{"localized_name":"LATENT","name":"LATENT","type":"LATENT","links":[62]},{"localized_name":"IMAGE","name":"IMAGE","type":"IMAGE","links":[22,66,110]},{"localized_name":"mask_preview","name":"mask_preview","type":"IMAGE","links":[21]}],"properties":{"Node name for S&R":"ComfyAdaptiveDetailEnhancer25_Easy"},"widgets_values":["Step 2",false,0,"fixed",30,7,0.65,"ddim","MGHybrid","hand, feet, face"]},{"id":14,"type":"ComfyAdaptiveDetailEnhancer25_Easy","pos":[1028.7352577781799,-254.68484251639404],"size":[304.44140625,394],"flags":{},"order":14,"mode":0,"inputs":[{"localized_name":"model","name":"model","type":"MODEL","link":152},{"localized_name":"positive","name":"positive","type":"CONDITIONING","link":13},{"localized_name":"negative","name":"negative","type":"CONDITIONING","link":14},{"localized_name":"vae","name":"vae","type":"VAE","link":15},{"localized_name":"latent","name":"latent","type":"LATENT","link":19},{"localized_name":"reference_image","name":"reference_image","shape":7,"type":"IMAGE","link":null},{"localized_name":"clip_vision","name":"clip_vision","shape":7,"type":"CLIP_VISION","link":17},{"localized_name":"preset_step","name":"preset_step","type":"COMBO","widget":{"name":"preset_step"},"link":null},{"localized_name":"custom","name":"custom","type":"BOOLEAN","widget":{"name":"custom"},"link":null},{"localized_name":"seed","name":"seed","type":"INT","widget":{"name":"seed"},"link":null},{"localized_name":"steps","name":"steps","type":"INT","widget":{"name":"steps"},"link":null},{"localized_name":"cfg","name":"cfg","type":"FLOAT","widget":{"name":"cfg"},"link":null},{"localized_name":"denoise","name":"denoise","type":"FLOAT","widget":{"name":"denoise"},"link":null},{"localized_name":"sampler_name","name":"sampler_name","type":"COMBO","widget":{"name":"sampler_name"},"link":null},{"localized_name":"scheduler","name":"scheduler","type":"COMBO","widget":{"name":"scheduler"},"link":null},{"localized_name":"clipseg_text","name":"clipseg_text","shape":7,"type":"STRING","widget":{"name":"clipseg_text"},"link":null}],"outputs":[{"localized_name":"LATENT","name":"LATENT","type":"LATENT","links":[37]},{"localized_name":"IMAGE","name":"IMAGE","type":"IMAGE","links":[24,97,141]},{"localized_name":"mask_preview","name":"mask_preview","type":"IMAGE","links":[]}],"properties":{"Node name for S&R":"ComfyAdaptiveDetailEnhancer25_Easy"},"widgets_values":["Step 1",false,0,"fixed",30,7,0.9999,"ddim","MGHybrid","hand, feet, face"]},{"id":58,"type":"PatchSageAttention","pos":[627.8244030121156,-297.19892309893845],"size":[270,58],"flags":{},"order":8,"mode":0,"inputs":[{"localized_name":"model","name":"model","type":"MODEL","link":151},{"localized_name":"sage_attention","name":"sage_attention","type":"COMBO","widget":{"name":"sage_attention"},"link":null}],"outputs":[{"localized_name":"MODEL","name":"MODEL","type":"MODEL","links":[152]}],"properties":{"Node name for S&R":"PatchSageAttention"},"widgets_values":["auto_quality"],"color":"#223","bgcolor":"#335"},{"id":2,"type":"MagicNodesCombiNode","pos":[93.09648271877055,-350.9065523480804],"size":[439.3682369626521,1874.7812342789503],"flags":{},"order":4,"mode":0,"inputs":[{"localized_name":"model_in","name":"model_in","shape":7,"type":"MODEL","link":null},{"localized_name":"clip_in","name":"clip_in","shape":7,"type":"CLIP","link":null},{"localized_name":"vae_in","name":"vae_in","shape":7,"type":"VAE","link":null},{"localized_name":"positive_in","name":"positive_in","shape":7,"type":"CONDITIONING","link":null},{"localized_name":"negative_in","name":"negative_in","shape":7,"type":"CONDITIONING","link":null},{"localized_name":"use_checkpoint","name":"use_checkpoint","type":"BOOLEAN","widget":{"name":"use_checkpoint"},"link":null},{"localized_name":"checkpoint","name":"checkpoint","type":"COMBO","widget":{"name":"checkpoint"},"link":null},{"localized_name":"clear_cache","name":"clear_cache","type":"BOOLEAN","widget":{"name":"clear_cache"},"link":null},{"localized_name":"use_lora_1","name":"use_lora_1","type":"BOOLEAN","widget":{"name":"use_lora_1"},"link":null},{"localized_name":"lora_1","name":"lora_1","type":"COMBO","widget":{"name":"lora_1"},"link":null},{"localized_name":"strength_model_1","name":"strength_model_1","type":"FLOAT","widget":{"name":"strength_model_1"},"link":null},{"localized_name":"strength_clip_1","name":"strength_clip_1","type":"FLOAT","widget":{"name":"strength_clip_1"},"link":null},{"localized_name":"use_lora_2","name":"use_lora_2","type":"BOOLEAN","widget":{"name":"use_lora_2"},"link":null},{"localized_name":"lora_2","name":"lora_2","type":"COMBO","widget":{"name":"lora_2"},"link":null},{"localized_name":"strength_model_2","name":"strength_model_2","type":"FLOAT","widget":{"name":"strength_model_2"},"link":null},{"localized_name":"strength_clip_2","name":"strength_clip_2","type":"FLOAT","widget":{"name":"strength_clip_2"},"link":null},{"localized_name":"use_lora_3","name":"use_lora_3","type":"BOOLEAN","widget":{"name":"use_lora_3"},"link":null},{"localized_name":"lora_3","name":"lora_3","type":"COMBO","widget":{"name":"lora_3"},"link":null},{"localized_name":"strength_model_3","name":"strength_model_3","type":"FLOAT","widget":{"name":"strength_model_3"},"link":null},{"localized_name":"strength_clip_3","name":"strength_clip_3","type":"FLOAT","widget":{"name":"strength_clip_3"},"link":null},{"localized_name":"use_lora_4","name":"use_lora_4","type":"BOOLEAN","widget":{"name":"use_lora_4"},"link":null},{"localized_name":"lora_4","name":"lora_4","type":"COMBO","widget":{"name":"lora_4"},"link":null},{"localized_name":"strength_model_4","name":"strength_model_4","type":"FLOAT","widget":{"name":"strength_model_4"},"link":null},{"localized_name":"strength_clip_4","name":"strength_clip_4","type":"FLOAT","widget":{"name":"strength_clip_4"},"link":null},{"localized_name":"use_lora_5","name":"use_lora_5","type":"BOOLEAN","widget":{"name":"use_lora_5"},"link":null},{"localized_name":"lora_5","name":"lora_5","type":"COMBO","widget":{"name":"lora_5"},"link":null},{"localized_name":"strength_model_5","name":"strength_model_5","type":"FLOAT","widget":{"name":"strength_model_5"},"link":null},{"localized_name":"strength_clip_5","name":"strength_clip_5","type":"FLOAT","widget":{"name":"strength_clip_5"},"link":null},{"localized_name":"use_lora_6","name":"use_lora_6","type":"BOOLEAN","widget":{"name":"use_lora_6"},"link":null},{"localized_name":"lora_6","name":"lora_6","type":"COMBO","widget":{"name":"lora_6"},"link":null},{"localized_name":"strength_model_6","name":"strength_model_6","type":"FLOAT","widget":{"name":"strength_model_6"},"link":null},{"localized_name":"strength_clip_6","name":"strength_clip_6","type":"FLOAT","widget":{"name":"strength_clip_6"},"link":null},{"localized_name":"positive_prompt","name":"positive_prompt","shape":7,"type":"STRING","widget":{"name":"positive_prompt"},"link":null},{"localized_name":"negative_prompt","name":"negative_prompt","shape":7,"type":"STRING","widget":{"name":"negative_prompt"},"link":null},{"localized_name":"clip_set_last_layer_positive","name":"clip_set_last_layer_positive","shape":7,"type":"INT","widget":{"name":"clip_set_last_layer_positive"},"link":null},{"localized_name":"clip_set_last_layer_negative","name":"clip_set_last_layer_negative","shape":7,"type":"INT","widget":{"name":"clip_set_last_layer_negative"},"link":null},{"localized_name":"recipe_slot","name":"recipe_slot","shape":7,"type":"COMBO","widget":{"name":"recipe_slot"},"link":null},{"localized_name":"recipe_save","name":"recipe_save","shape":7,"type":"BOOLEAN","widget":{"name":"recipe_save"},"link":null},{"localized_name":"recipe_use","name":"recipe_use","shape":7,"type":"BOOLEAN","widget":{"name":"recipe_use"},"link":null},{"localized_name":"standard_pipeline","name":"standard_pipeline","shape":7,"type":"BOOLEAN","widget":{"name":"standard_pipeline"},"link":null},{"localized_name":"clip_lora_pos_gain","name":"clip_lora_pos_gain","shape":7,"type":"FLOAT","widget":{"name":"clip_lora_pos_gain"},"link":null},{"localized_name":"clip_lora_neg_gain","name":"clip_lora_neg_gain","shape":7,"type":"FLOAT","widget":{"name":"clip_lora_neg_gain"},"link":null},{"localized_name":"dynamic_pos","name":"dynamic_pos","shape":7,"type":"BOOLEAN","widget":{"name":"dynamic_pos"},"link":null},{"localized_name":"dynamic_neg","name":"dynamic_neg","shape":7,"type":"BOOLEAN","widget":{"name":"dynamic_neg"},"link":null},{"localized_name":"dyn_seed","name":"dyn_seed","shape":7,"type":"INT","widget":{"name":"dyn_seed"},"link":null},{"localized_name":"dynamic_break_freeze","name":"dynamic_break_freeze","shape":7,"type":"BOOLEAN","widget":{"name":"dynamic_break_freeze"},"link":null},{"localized_name":"show_expanded_prompts","name":"show_expanded_prompts","shape":7,"type":"BOOLEAN","widget":{"name":"show_expanded_prompts"},"link":null},{"localized_name":"save_expanded_prompts","name":"save_expanded_prompts","shape":7,"type":"BOOLEAN","widget":{"name":"save_expanded_prompts"},"link":null}],"outputs":[{"localized_name":"MODEL","name":"MODEL","type":"MODEL","links":[150,151]},{"localized_name":"CLIP","name":"CLIP","type":"CLIP","links":null},{"localized_name":"Positive","name":"Positive","type":"CONDITIONING","links":[13,102]},{"localized_name":"Negative","name":"Negative","type":"CONDITIONING","links":[14,103]},{"localized_name":"VAE","name":"VAE","type":"VAE","links":[2,15,31]}],"properties":{"Node name for S&R":"MagicNodesCombiNode"},"widgets_values":[true,"None",true,false,"None",-1,0.2,false,"None",0,0,false,"None",0,0,false,"None",0,0,false,"None",0,0,false,"None",false,false,"(correct human anatomy:1).\n(masterwork:1), very aesthetic, super detailed, newest, masterpiece, amazing quality, highres, sharpen image, best quality.\n25yrs 1woman, necklace, earnings, jewelry, wrist jewelry, ponytail hair, blue hair, blue eyes, yellow kimono with floral print, holds a large pillow, purple pillow, smile, 2 hands.\nFront view, Bedroom","(super-wrong:1), wrong, worst, mistake, (anatomically incorrect human:1), wrong geometry\n(six fingers:1), pixelated,\n(bad hands:1), deformed nails, (fused fingers), (incorrecting hold in hand:1), bad fingers\nugly, (bad anatomy), junior artist, beginner's drawing, bad composition, loose, underpainting, muddy colors, broken symmetry, unclear focal point, blurry details, incorrect perspective, shaky outlines, uneven lines,\n(unsharpen eyes:1), imperfect eyes, skewed eyes, unnatural face, unnatural body, extra limb, missing limbs, distorted eyelashes, misplaced pupils, noisly eyes, long neck,\nobject clipping, clothing clipping, object intersection, unrealistic overlap, geometry intersection,\ntext, typo, signature, watermarks on image, error",-2,-2,"Off",false,false,false,0.92,1,false,false,0,false,false,false]}],"links":[[2,2,4,3,0,"VAE"],[13,2,2,14,1,"CONDITIONING"],[14,2,3,14,2,"CONDITIONING"],[15,2,4,14,3,"VAE"],[17,5,0,14,6,"CLIP_VISION"],[19,3,0,14,4,"LATENT"],[21,11,2,15,0,"IMAGE"],[22,11,1,16,0,"IMAGE"],[24,14,1,11,5,"IMAGE"],[28,17,0,11,6,"CLIP_VISION"],[31,2,4,20,0,"*"],[32,20,0,11,3,"VAE"],[37,14,0,11,4,"LATENT"],[40,24,1,25,0,"IMAGE"],[41,24,2,26,0,"IMAGE"],[46,29,2,31,0,"IMAGE"],[48,29,1,7,0,"IMAGE"],[61,24,0,29,4,"LATENT"],[62,11,0,24,4,"LATENT"],[65,24,1,29,5,"IMAGE"],[66,11,1,24,5,"IMAGE"],[85,24,1,41,0,"IMAGE"],[86,41,0,29,1,"CONDITIONING"],[87,41,1,29,2,"CONDITIONING"],[90,41,2,42,0,"IMAGE"],[92,5,0,17,0,"*"],[97,14,1,43,0,"IMAGE"],[102,2,2,43,1,"CONDITIONING"],[103,2,3,43,2,"CONDITIONING"],[106,43,1,11,2,"CONDITIONING"],[107,43,0,11,1,"CONDITIONING"],[110,11,1,44,0,"IMAGE"],[115,44,0,24,1,"CONDITIONING"],[116,44,1,24,2,"CONDITIONING"],[119,43,0,44,1,"CONDITIONING"],[120,43,1,44,2,"CONDITIONING"],[121,44,1,41,2,"CONDITIONING"],[122,44,0,41,1,"CONDITIONING"],[123,44,2,45,0,"IMAGE"],[124,43,2,46,0,"IMAGE"],[125,17,0,47,0,"*"],[126,47,0,24,6,"CLIP_VISION"],[127,47,0,48,0,"*"],[128,48,0,29,6,"CLIP_VISION"],[129,20,0,49,0,"*"],[130,49,0,24,3,"VAE"],[131,49,0,50,0,"*"],[132,50,0,29,3,"VAE"],[133,50,0,41,4,"VAE"],[134,49,0,44,4,"VAE"],[135,20,0,43,4,"VAE"],[136,19,0,11,0,"MODEL"],[137,19,0,51,0,"*"],[138,51,0,24,0,"MODEL"],[139,51,0,52,0,"*"],[140,52,0,29,0,"MODEL"],[141,14,1,53,0,"*"],[142,53,0,33,0,"IMAGE"],[143,4,0,54,0,"*"],[144,54,0,43,3,"CONTROL_NET"],[145,54,0,55,0,"*"],[146,55,0,44,3,"CONTROL_NET"],[147,55,0,56,0,"*"],[148,56,0,41,3,"CONTROL_NET"],[150,2,0,19,0,"*"],[151,2,0,58,0,"MODEL"],[152,58,0,14,0,"MODEL"]],"groups":[{"id":1,"title":"Step1 - Pre-warm","bounding":[985.2202161884722,-368.00948371274734,405.87327906278074,908.4829257340471],"color":"#a1309b","font_size":22,"flags":{}},{"id":2,"title":"Step2 - warming","bounding":[1491.7975585478357,-546.9292924524468,464.03429546870484,1238.2310938486526],"color":"#b58b2a","font_size":22,"flags":{}},{"id":3,"title":"Step3 - Pre-ready","bounding":[2110.501998988056,-553.0885338063888,518.639493048679,1245.9769642733752],"color":"#3f789e","font_size":22,"flags":{}},{"id":4,"title":"Step4 - High-res","bounding":[2836.675702344997,-548.5808647096898,526.8246054854121,1235.0376260654407],"color":"#8A8","font_size":22,"flags":{}},{"id":5,"title":"1 - Pre-warm","bounding":[912.8922171272666,734.9178623674503,505.331679024805,647.6692243308507],"color":"#a1309b","font_size":22,"flags":{}},{"id":6,"title":"2 - warming","bounding":[1478.1593316885921,734.6063030539617,505.331679024805,647.6692243308507],"color":"#b58b2a","font_size":22,"flags":{}},{"id":7,"title":"3 - Pre-ready","bounding":[2040.803574403982,730.9381266791784,683.3155821674318,849.0584001035625],"color":"#3f789e","font_size":22,"flags":{}},{"id":8,"title":"Step4 - High-res","bounding":[2771.933529470263,732.683066906069,700.3585746163794,850.3693995227123],"color":"#8A8","font_size":22,"flags":{}}],"config":{},"extra":{"ds":{"scale":1.1167815779424886,"offset":[205.33901426105587,523.8684695773068]}},"version":0.4}
|
workflows/mg_SuperSimple-Workflow.json
CHANGED
|
@@ -1 +1 @@
|
|
| 1 |
-
{"id":"56753873-517d-40af-ae8d-5268147c2215","revision":0,"last_node_id":11,"last_link_id":13,"nodes":[{"id":3,"type":"MagicSeedLatent","pos":[512.301972673182,-160.53141723865224],"size":[270,198],"flags":{},"order":7,"mode":0,"inputs":[{"localized_name":"vae","name":"vae","shape":7,"type":"VAE","link":2},{"localized_name":"image","name":"image","shape":7,"type":"IMAGE","link":null},{"localized_name":"width","name":"width","type":"INT","widget":{"name":"width"},"link":null},{"localized_name":"height","name":"height","type":"INT","widget":{"name":"height"},"link":null},{"localized_name":"batch_size","name":"batch_size","type":"INT","widget":{"name":"batch_size"},"link":null},{"localized_name":"sigma","name":"sigma","type":"FLOAT","widget":{"name":"sigma"},"link":null},{"localized_name":"bias","name":"bias","type":"FLOAT","widget":{"name":"bias"},"link":null},{"localized_name":"mix_image","name":"mix_image","type":"BOOLEAN","widget":{"name":"mix_image"},"link":null}],"outputs":[{"localized_name":"LATENT","name":"LATENT","type":"LATENT","links":[1]}],"properties":{"Node name for S&R":"MagicSeedLatent"},"widgets_values":[672,944,1,0.8,0.5,false]},{"id":5,"type":"CLIPVisionLoader","pos":[506.9319719576752,211.9373321706582],"size":[270,58],"flags":{},"order":0,"mode":0,"inputs":[{"localized_name":"clip_name","name":"clip_name","type":"COMBO","widget":{"name":"clip_name"},"link":null}],"outputs":[{"localized_name":"CLIP_VISION","name":"CLIP_VISION","type":"CLIP_VISION","links":[6]}],"properties":{"Node name for S&R":"CLIPVisionLoader"},"widgets_values":["open_clip_model(NS).safetensors"]},{"id":4,"type":"ControlNetLoader","pos":[511.7792692396367,92.03226884939174],"size":[250.8316192626953,70.76512908935547],"flags":{},"order":1,"mode":0,"inputs":[{"localized_name":"control_net_name","name":"control_net_name","type":"COMBO","widget":{"name":"control_net_name"},"link":null}],"outputs":[{"label":"CONTROL_NET","localized_name":"CONTROL_NET","name":"CONTROL_NET","type":"CONTROL_NET","slot_index":0,"links":[5]}],"properties":{"Node name for S&R":"ControlNetLoader","models":[{"name":"control_v11p_sd15_scribble_fp16.safetensors","url":"https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_scribble_fp16.safetensors?download=true","directory":"controlnet"}]},"widgets_values":["diffusers_xl_depth_full.safetensors"]},{"id":7,"type":"SaveImage","pos":[1313.88318732331,-284.27461870524576],"size":[649.1787028832787,738.4004538255251],"flags":{},"order":9,"mode":0,"inputs":[{"localized_name":"images","name":"images","type":"IMAGE","link":9},{"localized_name":"filename_prefix","name":"filename_prefix","type":"STRING","widget":{"name":"filename_prefix"},"link":null}],"outputs":[],"properties":{},"widgets_values":["ComfyUI"]},{"id":9,"type":"Note","pos":[910.5361930926384,-655.0060405255866],"size":[392.52185101243265,274.0344197725986],"flags":{},"order":2,"mode":0,"inputs":[],"outputs":[],"properties":{},"widgets_values":["Choose `step_count` (2/3/4) and Run.\n\n- When \"Custom\" is off, presets fully drive parameters\n- When \"Custom\" is on, the visible CADE controls override the Step presets across all steps; Step 1 still enforces `denoise=1.0`\n "],"color":"#432","bgcolor":"#653"},{"id":8,"type":"Note","pos":[-185.13480893968315,807.6288513313478],"size":[210,139.74892023047641],"flags":{},"order":3,"mode":0,"inputs":[],"outputs":[],"title":"Negative","properties":{},"widgets_values":["(super-wrong:1) - it's a trigger negative prompt for 'mg_7lambda_negative'"],"color":"#322","bgcolor":"#533"},{"id":10,"type":"Note","pos":[-187.5189731363135,484.2103704484261],"size":[210,135.28179391870685],"flags":{},"order":4,"mode":0,"inputs":[],"outputs":[],"title":"Positive","properties":{},"widgets_values":["->"],"color":"#232","bgcolor":"#353"},{"id":2,"type":"MagicNodesCombiNode","pos":[43.7826785907816,-342.50895107491186],"size":[438.90744171577774,1665.2680405789415],"flags":{},"order":5,"mode":0,"inputs":[{"localized_name":"model_in","name":"model_in","shape":7,"type":"MODEL","link":null},{"localized_name":"clip_in","name":"clip_in","shape":7,"type":"CLIP","link":null},{"localized_name":"vae_in","name":"vae_in","shape":7,"type":"VAE","link":null},{"localized_name":"positive_in","name":"positive_in","shape":7,"type":"CONDITIONING","link":null},{"localized_name":"negative_in","name":"negative_in","shape":7,"type":"CONDITIONING","link":null},{"localized_name":"use_checkpoint","name":"use_checkpoint","type":"BOOLEAN","widget":{"name":"use_checkpoint"},"link":null},{"localized_name":"checkpoint","name":"checkpoint","type":"COMBO","widget":{"name":"checkpoint"},"link":null},{"localized_name":"clear_cache","name":"clear_cache","type":"BOOLEAN","widget":{"name":"clear_cache"},"link":null},{"localized_name":"use_lora_1","name":"use_lora_1","type":"BOOLEAN","widget":{"name":"use_lora_1"},"link":null},{"localized_name":"lora_1","name":"lora_1","type":"COMBO","widget":{"name":"lora_1"},"link":null},{"localized_name":"strength_model_1","name":"strength_model_1","type":"FLOAT","widget":{"name":"strength_model_1"},"link":null},{"localized_name":"strength_clip_1","name":"strength_clip_1","type":"FLOAT","widget":{"name":"strength_clip_1"},"link":null},{"localized_name":"use_lora_2","name":"use_lora_2","type":"BOOLEAN","widget":{"name":"use_lora_2"},"link":null},{"localized_name":"lora_2","name":"lora_2","type":"COMBO","widget":{"name":"lora_2"},"link":null},{"localized_name":"strength_model_2","name":"strength_model_2","type":"FLOAT","widget":{"name":"strength_model_2"},"link":null},{"localized_name":"strength_clip_2","name":"strength_clip_2","type":"FLOAT","widget":{"name":"strength_clip_2"},"link":null},{"localized_name":"use_lora_3","name":"use_lora_3","type":"BOOLEAN","widget":{"name":"use_lora_3"},"link":null},{"localized_name":"lora_3","name":"lora_3","type":"COMBO","widget":{"name":"lora_3"},"link":null},{"localized_name":"strength_model_3","name":"strength_model_3","type":"FLOAT","widget":{"name":"strength_model_3"},"link":null},{"localized_name":"strength_clip_3","name":"strength_clip_3","type":"FLOAT","widget":{"name":"strength_clip_3"},"link":null},{"localized_name":"use_lora_4","name":"use_lora_4","type":"BOOLEAN","widget":{"name":"use_lora_4"},"link":null},{"localized_name":"lora_4","name":"lora_4","type":"COMBO","widget":{"name":"lora_4"},"link":null},{"localized_name":"strength_model_4","name":"strength_model_4","type":"FLOAT","widget":{"name":"strength_model_4"},"link":null},{"localized_name":"strength_clip_4","name":"strength_clip_4","type":"FLOAT","widget":{"name":"strength_clip_4"},"link":null},{"localized_name":"use_lora_5","name":"use_lora_5","type":"BOOLEAN","widget":{"name":"use_lora_5"},"link":null},{"localized_name":"lora_5","name":"lora_5","type":"COMBO","widget":{"name":"lora_5"},"link":null},{"localized_name":"strength_model_5","name":"strength_model_5","type":"FLOAT","widget":{"name":"strength_model_5"},"link":null},{"localized_name":"strength_clip_5","name":"strength_clip_5","type":"FLOAT","widget":{"name":"strength_clip_5"},"link":null},{"localized_name":"use_lora_6","name":"use_lora_6","type":"BOOLEAN","widget":{"name":"use_lora_6"},"link":null},{"localized_name":"lora_6","name":"lora_6","type":"COMBO","widget":{"name":"lora_6"},"link":null},{"localized_name":"strength_model_6","name":"strength_model_6","type":"FLOAT","widget":{"name":"strength_model_6"},"link":null},{"localized_name":"strength_clip_6","name":"strength_clip_6","type":"FLOAT","widget":{"name":"strength_clip_6"},"link":null},{"localized_name":"positive_prompt","name":"positive_prompt","shape":7,"type":"STRING","widget":{"name":"positive_prompt"},"link":null},{"localized_name":"negative_prompt","name":"negative_prompt","shape":7,"type":"STRING","widget":{"name":"negative_prompt"},"link":null},{"localized_name":"clip_set_last_layer_positive","name":"clip_set_last_layer_positive","shape":7,"type":"INT","widget":{"name":"clip_set_last_layer_positive"},"link":null},{"localized_name":"clip_set_last_layer_negative","name":"clip_set_last_layer_negative","shape":7,"type":"INT","widget":{"name":"clip_set_last_layer_negative"},"link":null},{"localized_name":"recipe_slot","name":"recipe_slot","shape":7,"type":"COMBO","widget":{"name":"recipe_slot"},"link":null},{"localized_name":"recipe_save","name":"recipe_save","shape":7,"type":"BOOLEAN","widget":{"name":"recipe_save"},"link":null},{"localized_name":"recipe_use","name":"recipe_use","shape":7,"type":"BOOLEAN","widget":{"name":"recipe_use"},"link":null},{"localized_name":"standard_pipeline","name":"standard_pipeline","shape":7,"type":"BOOLEAN","widget":{"name":"standard_pipeline"},"link":null},{"localized_name":"clip_lora_pos_gain","name":"clip_lora_pos_gain","shape":7,"type":"FLOAT","widget":{"name":"clip_lora_pos_gain"},"link":null},{"localized_name":"clip_lora_neg_gain","name":"clip_lora_neg_gain","shape":7,"type":"FLOAT","widget":{"name":"clip_lora_neg_gain"},"link":null},{"localized_name":"dynamic_pos","name":"dynamic_pos","shape":7,"type":"BOOLEAN","widget":{"name":"dynamic_pos"},"link":null},{"localized_name":"dynamic_neg","name":"dynamic_neg","shape":7,"type":"BOOLEAN","widget":{"name":"dynamic_neg"},"link":null},{"localized_name":"dyn_seed","name":"dyn_seed","shape":7,"type":"INT","widget":{"name":"dyn_seed"},"link":null},{"localized_name":"dynamic_break_freeze","name":"dynamic_break_freeze","shape":7,"type":"BOOLEAN","widget":{"name":"dynamic_break_freeze"},"link":null},{"localized_name":"show_expanded_prompts","name":"show_expanded_prompts","shape":7,"type":"BOOLEAN","widget":{"name":"show_expanded_prompts"},"link":null},{"localized_name":"save_expanded_prompts","name":"save_expanded_prompts","shape":7,"type":"BOOLEAN","widget":{"name":"save_expanded_prompts"},"link":null}],"outputs":[{"localized_name":"MODEL","name":"MODEL","type":"MODEL","links":[12]},{"localized_name":"CLIP","name":"CLIP","type":"CLIP","links":null},{"localized_name":"Positive","name":"Positive","type":"CONDITIONING","links":[3]},{"localized_name":"Negative","name":"Negative","type":"CONDITIONING","links":[4]},{"localized_name":"VAE","name":"VAE","type":"VAE","links":[2,10]}],"properties":{"Node name for S&R":"MagicNodesCombiNode"},"widgets_values":[true,"7Lambda_1.3_2D_Universal.safetensors",false,true,"mg_7lambda_negative.safetensors",-1,0.2,false,"mg_7lambda_negative.safetensors",0,0,false,"mg_7lambda_negative.safetensors",0,0,false,"mg_7lambda_negative.safetensors",0,0,false,"mg_7lambda_negative.safetensors",0,0,false,"mg_7lambda_negative.safetensors",false,false,"(correct human anatomy:1).\n(masterwork:1), very aesthetic, super detailed, newest, masterpiece, amazing quality, highres, sharpen image, best quality.\n25yrs 1woman, necklace, earnings, jewelry, wrist jewelry, ponytail hair, blue hair, blue eyes, yellow kimono with floral print, holds a large pillow, purple pillow, smile, 2 hands.\nFront view, Bedroom","(super-wrong:1), wrong, worst, mistake, (anatomically incorrect human:1), wrong geometry\n(six fingers:1), pixelated,\n(bad hands:1), deformed nails, (fused fingers), (incorrecting hold in hand:1), bad fingers\nugly, (bad anatomy), junior artist, beginner's drawing, bad composition, loose, underpainting, muddy colors, broken symmetry, unclear focal point, blurry details, incorrect perspective, shaky outlines, uneven lines,\n(unsharpen eyes:1), imperfect eyes, skewed eyes, unnatural face, unnatural body, extra limb, missing limbs, distorted eyelashes, misplaced pupils, noisly eyes, long neck,\nobject clipping, clothing clipping, object intersection, unrealistic overlap, geometry intersection,\ntext, typo, signature, watermarks on image, error",-2,-2,"Off",false,false,false,0.92,0.2,false,false,0,false,false,false]},{"id":11,"type":"PatchSageAttention","pos":[513.1090242917288,-276.13824745203897],"size":[270,58],"flags":{},"order":6,"mode":0,"inputs":[{"localized_name":"model","name":"model","type":"MODEL","link":12},{"localized_name":"sage_attention","name":"sage_attention","type":"COMBO","widget":{"name":"sage_attention"},"link":null}],"outputs":[{"localized_name":"MODEL","name":"MODEL","type":"MODEL","links":[13]}],"properties":{"Node name for S&R":"PatchSageAttention"},"widgets_values":["auto_quality"]},{"id":1,"type":"MG_SuperSimple","pos":[967.5636043818711,-308.67868061536035],"size":[270,414],"flags":{},"order":8,"mode":0,"inputs":[{"localized_name":"model","name":"model","type":"MODEL","link":13},{"localized_name":"positive","name":"positive","type":"CONDITIONING","link":3},{"localized_name":"negative","name":"negative","type":"CONDITIONING","link":4},{"localized_name":"vae","name":"vae","type":"VAE","link":10},{"localized_name":"latent","name":"latent","type":"LATENT","link":1},{"localized_name":"control_net","name":"control_net","type":"CONTROL_NET","link":5},{"localized_name":"reference_image","name":"reference_image","shape":7,"type":"IMAGE","link":null},{"localized_name":"clip_vision","name":"clip_vision","shape":7,"type":"CLIP_VISION","link":6},{"localized_name":"step_count","name":"step_count","type":"INT","widget":{"name":"step_count"},"link":null},{"localized_name":"custom","name":"custom","type":"BOOLEAN","widget":{"name":"custom"},"link":null},{"localized_name":"seed","name":"seed","type":"INT","widget":{"name":"seed"},"link":null},{"localized_name":"steps","name":"steps","type":"INT","widget":{"name":"steps"},"link":null},{"localized_name":"cfg","name":"cfg","type":"FLOAT","widget":{"name":"cfg"},"link":null},{"localized_name":"denoise","name":"denoise","type":"FLOAT","widget":{"name":"denoise"},"link":null},{"localized_name":"sampler_name","name":"sampler_name","type":"COMBO","widget":{"name":"sampler_name"},"link":null},{"localized_name":"scheduler","name":"scheduler","type":"COMBO","widget":{"name":"scheduler"},"link":null},{"localized_name":"clipseg_text","name":"clipseg_text","type":"STRING","widget":{"name":"clipseg_text"},"link":null}],"outputs":[{"localized_name":"LATENT","name":"LATENT","type":"LATENT","links":null},{"localized_name":"IMAGE","name":"IMAGE","type":"IMAGE","links":[9]}],"properties":{"Node name for S&R":"MG_SuperSimple"},"widgets_values":[4,false,824025253278145,"randomize",30,4.5,0.65,"ddim","MGHybrid","hand, feet, face"]}],"links":[[1,3,0,1,4,"LATENT"],[2,2,4,3,0,"VAE"],[3,2,2,1,1,"CONDITIONING"],[4,2,3,1,2,"CONDITIONING"],[5,4,0,1,5,"CONTROL_NET"],[6,5,0,1,7,"CLIP_VISION"],[9,1,1,7,0,"IMAGE"],[10,2,4,1,3,"VAE"],[12,2,0,11,0,"MODEL"],[13,11,0,1,0,"MODEL"]],"groups":[],"config":{},"extra":{"ds":{"scale":0.7400249944258689,"offset":[289.8997630357029,579.3737880920758]}},"version":0.4}
|
|
|
|
| 1 |
+
{"id":"56753873-517d-40af-ae8d-5268147c2215","revision":0,"last_node_id":11,"last_link_id":13,"nodes":[{"id":3,"type":"MagicSeedLatent","pos":[512.301972673182,-160.53141723865224],"size":[270,198],"flags":{},"order":7,"mode":0,"inputs":[{"localized_name":"vae","name":"vae","shape":7,"type":"VAE","link":2},{"localized_name":"image","name":"image","shape":7,"type":"IMAGE","link":null},{"localized_name":"width","name":"width","type":"INT","widget":{"name":"width"},"link":null},{"localized_name":"height","name":"height","type":"INT","widget":{"name":"height"},"link":null},{"localized_name":"batch_size","name":"batch_size","type":"INT","widget":{"name":"batch_size"},"link":null},{"localized_name":"sigma","name":"sigma","type":"FLOAT","widget":{"name":"sigma"},"link":null},{"localized_name":"bias","name":"bias","type":"FLOAT","widget":{"name":"bias"},"link":null},{"localized_name":"mix_image","name":"mix_image","type":"BOOLEAN","widget":{"name":"mix_image"},"link":null}],"outputs":[{"localized_name":"LATENT","name":"LATENT","type":"LATENT","links":[1]}],"properties":{"Node name for S&R":"MagicSeedLatent"},"widgets_values":[672,944,1,0.8,0.5,false]},{"id":5,"type":"CLIPVisionLoader","pos":[506.9319719576752,211.9373321706582],"size":[270,58],"flags":{},"order":0,"mode":0,"inputs":[{"localized_name":"clip_name","name":"clip_name","type":"COMBO","widget":{"name":"clip_name"},"link":null}],"outputs":[{"localized_name":"CLIP_VISION","name":"CLIP_VISION","type":"CLIP_VISION","links":[6]}],"properties":{"Node name for S&R":"CLIPVisionLoader"},"widgets_values":["open_clip_model(NS).safetensors"]},{"id":4,"type":"ControlNetLoader","pos":[511.7792692396367,92.03226884939174],"size":[250.8316192626953,70.76512908935547],"flags":{},"order":1,"mode":0,"inputs":[{"localized_name":"control_net_name","name":"control_net_name","type":"COMBO","widget":{"name":"control_net_name"},"link":null}],"outputs":[{"label":"CONTROL_NET","localized_name":"CONTROL_NET","name":"CONTROL_NET","type":"CONTROL_NET","slot_index":0,"links":[5]}],"properties":{"Node name for S&R":"ControlNetLoader","models":[{"name":"control_v11p_sd15_scribble_fp16.safetensors","url":"https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_scribble_fp16.safetensors?download=true","directory":"controlnet"}]},"widgets_values":["diffusers_xl_depth_full.safetensors"]},{"id":7,"type":"SaveImage","pos":[1313.88318732331,-284.27461870524576],"size":[649.1787028832787,738.4004538255251],"flags":{},"order":9,"mode":0,"inputs":[{"localized_name":"images","name":"images","type":"IMAGE","link":9},{"localized_name":"filename_prefix","name":"filename_prefix","type":"STRING","widget":{"name":"filename_prefix"},"link":null}],"outputs":[],"properties":{},"widgets_values":["ComfyUI"]},{"id":9,"type":"Note","pos":[910.5361930926384,-655.0060405255866],"size":[392.52185101243265,274.0344197725986],"flags":{},"order":2,"mode":0,"inputs":[],"outputs":[],"properties":{},"widgets_values":["Choose `step_count` (2/3/4) and Run.\n\n- When \"Custom\" is off, presets fully drive parameters\n- When \"Custom\" is on, the visible CADE controls override the Step presets across all steps; Step 1 still enforces `denoise=1.0`\n "],"color":"#432","bgcolor":"#653"},{"id":8,"type":"Note","pos":[-185.13480893968315,807.6288513313478],"size":[210,139.74892023047641],"flags":{},"order":3,"mode":0,"inputs":[],"outputs":[],"title":"Negative","properties":{},"widgets_values":["(super-wrong:1) - it's a trigger negative prompt for 'mg_7lambda_negative'"],"color":"#322","bgcolor":"#533"},{"id":10,"type":"Note","pos":[-187.5189731363135,484.2103704484261],"size":[210,135.28179391870685],"flags":{},"order":4,"mode":0,"inputs":[],"outputs":[],"title":"Positive","properties":{},"widgets_values":["->"],"color":"#232","bgcolor":"#353"},{"id":11,"type":"PatchSageAttention","pos":[513.1090242917288,-276.13824745203897],"size":[270,58],"flags":{},"order":6,"mode":0,"inputs":[{"localized_name":"model","name":"model","type":"MODEL","link":12},{"localized_name":"sage_attention","name":"sage_attention","type":"COMBO","widget":{"name":"sage_attention"},"link":null}],"outputs":[{"localized_name":"MODEL","name":"MODEL","type":"MODEL","links":[13]}],"properties":{"Node name for S&R":"PatchSageAttention"},"widgets_values":["auto_quality"]},{"id":1,"type":"MG_SuperSimple","pos":[967.5636043818711,-308.67868061536035],"size":[270,414],"flags":{},"order":8,"mode":0,"inputs":[{"localized_name":"model","name":"model","type":"MODEL","link":13},{"localized_name":"positive","name":"positive","type":"CONDITIONING","link":3},{"localized_name":"negative","name":"negative","type":"CONDITIONING","link":4},{"localized_name":"vae","name":"vae","type":"VAE","link":10},{"localized_name":"latent","name":"latent","type":"LATENT","link":1},{"localized_name":"control_net","name":"control_net","type":"CONTROL_NET","link":5},{"localized_name":"reference_image","name":"reference_image","shape":7,"type":"IMAGE","link":null},{"localized_name":"clip_vision","name":"clip_vision","shape":7,"type":"CLIP_VISION","link":6},{"localized_name":"step_count","name":"step_count","type":"INT","widget":{"name":"step_count"},"link":null},{"localized_name":"custom","name":"custom","type":"BOOLEAN","widget":{"name":"custom"},"link":null},{"localized_name":"seed","name":"seed","type":"INT","widget":{"name":"seed"},"link":null},{"localized_name":"steps","name":"steps","type":"INT","widget":{"name":"steps"},"link":null},{"localized_name":"cfg","name":"cfg","type":"FLOAT","widget":{"name":"cfg"},"link":null},{"localized_name":"denoise","name":"denoise","type":"FLOAT","widget":{"name":"denoise"},"link":null},{"localized_name":"sampler_name","name":"sampler_name","type":"COMBO","widget":{"name":"sampler_name"},"link":null},{"localized_name":"scheduler","name":"scheduler","type":"COMBO","widget":{"name":"scheduler"},"link":null},{"localized_name":"clipseg_text","name":"clipseg_text","type":"STRING","widget":{"name":"clipseg_text"},"link":null}],"outputs":[{"localized_name":"LATENT","name":"LATENT","type":"LATENT","links":null},{"localized_name":"IMAGE","name":"IMAGE","type":"IMAGE","links":[9]}],"properties":{"Node name for S&R":"MG_SuperSimple"},"widgets_values":[4,false,824025253278145,"randomize",30,4.5,0.65,"ddim","MGHybrid","hand, feet, face"]},{"id":2,"type":"MagicNodesCombiNode","pos":[43.7826785907816,-342.50895107491186],"size":[438.90744171577774,1665.2680405789415],"flags":{},"order":5,"mode":0,"inputs":[{"localized_name":"model_in","name":"model_in","shape":7,"type":"MODEL","link":null},{"localized_name":"clip_in","name":"clip_in","shape":7,"type":"CLIP","link":null},{"localized_name":"vae_in","name":"vae_in","shape":7,"type":"VAE","link":null},{"localized_name":"positive_in","name":"positive_in","shape":7,"type":"CONDITIONING","link":null},{"localized_name":"negative_in","name":"negative_in","shape":7,"type":"CONDITIONING","link":null},{"localized_name":"use_checkpoint","name":"use_checkpoint","type":"BOOLEAN","widget":{"name":"use_checkpoint"},"link":null},{"localized_name":"checkpoint","name":"checkpoint","type":"COMBO","widget":{"name":"checkpoint"},"link":null},{"localized_name":"clear_cache","name":"clear_cache","type":"BOOLEAN","widget":{"name":"clear_cache"},"link":null},{"localized_name":"use_lora_1","name":"use_lora_1","type":"BOOLEAN","widget":{"name":"use_lora_1"},"link":null},{"localized_name":"lora_1","name":"lora_1","type":"COMBO","widget":{"name":"lora_1"},"link":null},{"localized_name":"strength_model_1","name":"strength_model_1","type":"FLOAT","widget":{"name":"strength_model_1"},"link":null},{"localized_name":"strength_clip_1","name":"strength_clip_1","type":"FLOAT","widget":{"name":"strength_clip_1"},"link":null},{"localized_name":"use_lora_2","name":"use_lora_2","type":"BOOLEAN","widget":{"name":"use_lora_2"},"link":null},{"localized_name":"lora_2","name":"lora_2","type":"COMBO","widget":{"name":"lora_2"},"link":null},{"localized_name":"strength_model_2","name":"strength_model_2","type":"FLOAT","widget":{"name":"strength_model_2"},"link":null},{"localized_name":"strength_clip_2","name":"strength_clip_2","type":"FLOAT","widget":{"name":"strength_clip_2"},"link":null},{"localized_name":"use_lora_3","name":"use_lora_3","type":"BOOLEAN","widget":{"name":"use_lora_3"},"link":null},{"localized_name":"lora_3","name":"lora_3","type":"COMBO","widget":{"name":"lora_3"},"link":null},{"localized_name":"strength_model_3","name":"strength_model_3","type":"FLOAT","widget":{"name":"strength_model_3"},"link":null},{"localized_name":"strength_clip_3","name":"strength_clip_3","type":"FLOAT","widget":{"name":"strength_clip_3"},"link":null},{"localized_name":"use_lora_4","name":"use_lora_4","type":"BOOLEAN","widget":{"name":"use_lora_4"},"link":null},{"localized_name":"lora_4","name":"lora_4","type":"COMBO","widget":{"name":"lora_4"},"link":null},{"localized_name":"strength_model_4","name":"strength_model_4","type":"FLOAT","widget":{"name":"strength_model_4"},"link":null},{"localized_name":"strength_clip_4","name":"strength_clip_4","type":"FLOAT","widget":{"name":"strength_clip_4"},"link":null},{"localized_name":"use_lora_5","name":"use_lora_5","type":"BOOLEAN","widget":{"name":"use_lora_5"},"link":null},{"localized_name":"lora_5","name":"lora_5","type":"COMBO","widget":{"name":"lora_5"},"link":null},{"localized_name":"strength_model_5","name":"strength_model_5","type":"FLOAT","widget":{"name":"strength_model_5"},"link":null},{"localized_name":"strength_clip_5","name":"strength_clip_5","type":"FLOAT","widget":{"name":"strength_clip_5"},"link":null},{"localized_name":"use_lora_6","name":"use_lora_6","type":"BOOLEAN","widget":{"name":"use_lora_6"},"link":null},{"localized_name":"lora_6","name":"lora_6","type":"COMBO","widget":{"name":"lora_6"},"link":null},{"localized_name":"strength_model_6","name":"strength_model_6","type":"FLOAT","widget":{"name":"strength_model_6"},"link":null},{"localized_name":"strength_clip_6","name":"strength_clip_6","type":"FLOAT","widget":{"name":"strength_clip_6"},"link":null},{"localized_name":"positive_prompt","name":"positive_prompt","shape":7,"type":"STRING","widget":{"name":"positive_prompt"},"link":null},{"localized_name":"negative_prompt","name":"negative_prompt","shape":7,"type":"STRING","widget":{"name":"negative_prompt"},"link":null},{"localized_name":"clip_set_last_layer_positive","name":"clip_set_last_layer_positive","shape":7,"type":"INT","widget":{"name":"clip_set_last_layer_positive"},"link":null},{"localized_name":"clip_set_last_layer_negative","name":"clip_set_last_layer_negative","shape":7,"type":"INT","widget":{"name":"clip_set_last_layer_negative"},"link":null},{"localized_name":"recipe_slot","name":"recipe_slot","shape":7,"type":"COMBO","widget":{"name":"recipe_slot"},"link":null},{"localized_name":"recipe_save","name":"recipe_save","shape":7,"type":"BOOLEAN","widget":{"name":"recipe_save"},"link":null},{"localized_name":"recipe_use","name":"recipe_use","shape":7,"type":"BOOLEAN","widget":{"name":"recipe_use"},"link":null},{"localized_name":"standard_pipeline","name":"standard_pipeline","shape":7,"type":"BOOLEAN","widget":{"name":"standard_pipeline"},"link":null},{"localized_name":"clip_lora_pos_gain","name":"clip_lora_pos_gain","shape":7,"type":"FLOAT","widget":{"name":"clip_lora_pos_gain"},"link":null},{"localized_name":"clip_lora_neg_gain","name":"clip_lora_neg_gain","shape":7,"type":"FLOAT","widget":{"name":"clip_lora_neg_gain"},"link":null},{"localized_name":"dynamic_pos","name":"dynamic_pos","shape":7,"type":"BOOLEAN","widget":{"name":"dynamic_pos"},"link":null},{"localized_name":"dynamic_neg","name":"dynamic_neg","shape":7,"type":"BOOLEAN","widget":{"name":"dynamic_neg"},"link":null},{"localized_name":"dyn_seed","name":"dyn_seed","shape":7,"type":"INT","widget":{"name":"dyn_seed"},"link":null},{"localized_name":"dynamic_break_freeze","name":"dynamic_break_freeze","shape":7,"type":"BOOLEAN","widget":{"name":"dynamic_break_freeze"},"link":null},{"localized_name":"show_expanded_prompts","name":"show_expanded_prompts","shape":7,"type":"BOOLEAN","widget":{"name":"show_expanded_prompts"},"link":null},{"localized_name":"save_expanded_prompts","name":"save_expanded_prompts","shape":7,"type":"BOOLEAN","widget":{"name":"save_expanded_prompts"},"link":null}],"outputs":[{"localized_name":"MODEL","name":"MODEL","type":"MODEL","links":[12]},{"localized_name":"CLIP","name":"CLIP","type":"CLIP","links":null},{"localized_name":"Positive","name":"Positive","type":"CONDITIONING","links":[3]},{"localized_name":"Negative","name":"Negative","type":"CONDITIONING","links":[4]},{"localized_name":"VAE","name":"VAE","type":"VAE","links":[2,10]}],"properties":{"Node name for S&R":"MagicNodesCombiNode"},"widgets_values":[true,"None",false,false,"None",-1,0.2,false,"None",0,0,false,"None",0,0,false,"None",0,0,false,"None",0,0,false,"None",false,false,"(correct human anatomy:1).\n(masterwork:1), very aesthetic, super detailed, newest, masterpiece, amazing quality, highres, sharpen image, best quality.\n25yrs 1woman, necklace, earnings, jewelry, wrist jewelry, ponytail hair, blue hair, blue eyes, yellow kimono with floral print, holds a large pillow, purple pillow, smile, 2 hands.\nFront view, Bedroom","(super-wrong:1), wrong, worst, mistake, (anatomically incorrect human:1), wrong geometry\n(six fingers:1), pixelated,\n(bad hands:1), deformed nails, (fused fingers), (incorrecting hold in hand:1), bad fingers\nugly, (bad anatomy), junior artist, beginner's drawing, bad composition, loose, underpainting, muddy colors, broken symmetry, unclear focal point, blurry details, incorrect perspective, shaky outlines, uneven lines,\n(unsharpen eyes:1), imperfect eyes, skewed eyes, unnatural face, unnatural body, extra limb, missing limbs, distorted eyelashes, misplaced pupils, noisly eyes, long neck,\nobject clipping, clothing clipping, object intersection, unrealistic overlap, geometry intersection,\ntext, typo, signature, watermarks on image, error",-2,-2,"Off",false,false,false,0.92,0.2,false,false,0,false,false,false]}],"links":[[1,3,0,1,4,"LATENT"],[2,2,4,3,0,"VAE"],[3,2,2,1,1,"CONDITIONING"],[4,2,3,1,2,"CONDITIONING"],[5,4,0,1,5,"CONTROL_NET"],[6,5,0,1,7,"CLIP_VISION"],[9,1,1,7,0,"IMAGE"],[10,2,4,1,3,"VAE"],[12,2,0,11,0,"MODEL"],[13,11,0,1,0,"MODEL"]],"groups":[],"config":{},"extra":{"ds":{"scale":1.083470594338915,"offset":[384.9360293986372,501.93873776549896]}},"version":0.4}
|