Batch Training: remove debug diagnostics; bump version to 2.7.7
Batch Training confirmed working end to end (controlled batch with transitions, distinct per-variant seeds, node rating ignored during a batch, per-entry rating + VF/axis learning on submit). Stripped the temporary trace prints (Batch Training check / Batch check / ACTUAL scene seeds), keeping clean progress logs. Gitignore the local .testvenv. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
ad9e171e4f
commit
aa4a7f643c
@@ -0,0 +1 @@
|
||||
.testvenv/
|
||||
+1
-5
@@ -12173,9 +12173,6 @@ class FunPackVideoRefinerV2(FunPackVideoRefiner):
|
||||
# conditioning just before each return below — so it wraps whatever output_conditioning
|
||||
# ends up being: single-scene OR multi-scene (transition split). Works WITH transitions.
|
||||
_do_batch = int(batch_variants or 1) > 1 and not learning_mode and not prompt_only_mode
|
||||
print(f"[FunPackVideoRefinerV2] Batch Training check: batch_variants={batch_variants}, "
|
||||
f"split_by_transitions={split_by_transitions}, learning_mode={learning_mode}, "
|
||||
f"prompt_only={prompt_only_mode}, will_batch={_do_batch}")
|
||||
if split_by_transitions:
|
||||
try:
|
||||
scene_texts = split_scene_texts
|
||||
@@ -12295,8 +12292,7 @@ class FunPackVideoRefinerV2(FunPackVideoRefiner):
|
||||
m["funpack_scene_seed"] = (variant_seed[vi] + scene_idx[vi]) & 0xffffffffffffffff
|
||||
scene_idx[vi] += 1
|
||||
print(f"[FunPackVideoRefinerV2] Batch Training: packed {n} variant(s) over "
|
||||
f"{len(output_conditioning)} scene(s) = {len(packed)} entries; per-variant seeds = "
|
||||
f"{[variant_seed[k] for k in sorted(variant_seed)]}")
|
||||
f"{len(output_conditioning)} scene(s) = {len(packed)} entries.")
|
||||
return packed
|
||||
|
||||
def _v2_build_batch_variants(self, raw_prompt, n, seed, clip, encode_cache, source_image,
|
||||
|
||||
+1
-1
@@ -2,7 +2,7 @@
|
||||
[project]
|
||||
name = "ComfyUI-FunPack" # Unique identifier for your node. Immutable after creation.
|
||||
description = "A set of nodes for experiments with video generation models, including prompt refinement, adaptive LoRA weight workflows, story tools, video stitching, lorebook enhancement and more."
|
||||
version = "2.7.6" # Custom Node version. Must be semantically versioned.
|
||||
version = "2.7.7" # Custom Node version. Must be semantically versioned.
|
||||
license = { text = "GNU GPL v3" }
|
||||
dependencies = [] # Filled in from requirements.txt
|
||||
|
||||
|
||||
+2
-13
@@ -2245,16 +2245,7 @@ class FunPackLTXAVSceneChainSampler:
|
||||
# Batch Training: Studio (the hub) packs N conditionings into positive, each scene entry
|
||||
# tagged 'funpack_batch_variant'. That marker is the only trigger — the sampler has no
|
||||
# batch-count input. Sample one chain per packed entry, persist each for rating in Studio.
|
||||
try:
|
||||
_marks = [(e[1].get("funpack_batch_variant")
|
||||
if isinstance(e, (list, tuple)) and len(e) > 1 and isinstance(e[1], dict) else None)
|
||||
for e in (positive or [])]
|
||||
except Exception:
|
||||
_marks = "?"
|
||||
_vg = self._split_batch_variants(positive)
|
||||
print(f"[FunPackSceneChain] Batch check: {len(positive or [])} positive entr(ies), "
|
||||
f"variant markers={_marks}, variant groups={len(_vg) if _vg else 0}")
|
||||
if _vg is not None:
|
||||
if self._split_batch_variants(positive) is not None:
|
||||
return self._run_batch_training(
|
||||
model, vae, positive, negative, sampler, sigmas, seed, latent_template,
|
||||
num_frames_per_scene, frame_overlap, cfg, max_scenes, use_same_seed,
|
||||
@@ -2521,9 +2512,7 @@ class FunPackLTXAVSceneChainSampler:
|
||||
base_seed = int(seed)
|
||||
for idx, pos_i in entries:
|
||||
iter_seed = base_seed + idx
|
||||
_scene_seeds = [self._scene_seed(sc) for sc in (pos_i or [])]
|
||||
print(f"[FunPackSceneChain] Batch Training {idx + 1}/{len(entries)} "
|
||||
f"(loop_seed={iter_seed}, ACTUAL noise scene_seeds={_scene_seeds})")
|
||||
print(f"[FunPackSceneChain] Batch Training {idx + 1}/{len(entries)}")
|
||||
out = self.sample(
|
||||
model, vae, pos_i, negative, sampler, sigmas, iter_seed, latent_template,
|
||||
num_frames_per_scene, frame_overlap, cfg, max_scenes, use_same_seed=use_same_seed,
|
||||
|
||||
Reference in New Issue
Block a user