diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..02e259c6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.testvenv/ diff --git a/conditioning.py b/conditioning.py index 74be29df..c3803cc2 100644 --- a/conditioning.py +++ b/conditioning.py @@ -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, diff --git a/pyproject.toml b/pyproject.toml index 848436e6..27eb6ac7 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -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 diff --git a/samplers.py b/samplers.py index 68d5d689..081a1667 100644 --- a/samplers.py +++ b/samplers.py @@ -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,