diff --git a/LICENSE b/LICENSE
index 0ed6a8b..d4666c6 100644
--- a/LICENSE
+++ b/LICENSE
@@ -1,21 +1,40 @@
-MIT License
+ GNU GENERAL PUBLIC LICENSE
+ Version 3, 29 June 2007
-Copyright (c) 2025 Carmine Cristallo Scalzi
+ Copyright (C) 2025 Carmine Cristallo Scalzi (IAMCCS)
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see .
+
+-------------------------------------------------------------------------------
+ATTRIBUTION NOTICE (GPL-3.0, Section 5a)
+-------------------------------------------------------------------------------
+
+This project incorporates code derived from the following upstream projects,
+all distributed under the GNU General Public License v3.0:
+
+ - ComfyUI-Wan-SVI2Pro-FLF (https://github.com/IAMCCS/ComfyUI-Wan-SVI2Pro-FLF)
+ Copyright (C) original contributors — GPL-3.0
+ - ComfyUI-KJNodes (https://github.com/kijai/ComfyUI-KJNodes)
+ Copyright (C) Kijai — GPL-3.0
+ - ComfyUI (https://github.com/comfyanonymous/ComfyUI)
+ Copyright (C) comfyanonymous and contributors — GPL-3.0
+
+In particular, iamccs_wan_svipro_motion.py contains logic adapted from
+ComfyUI-Wan-SVI2Pro-FLF and ComfyUI-KJNodes. All modifications are by
+Carmine Cristallo Scalzi (IAMCCS) and are released under the same GPL-3.0
+license in compliance with the copyleft requirements of the upstream projects.
+
+-------------------------------------------------------------------------------
+Full license text: https://www.gnu.org/licenses/gpl-3.0.txt
+-------------------------------------------------------------------------------
diff --git a/iamccs_wan_svipro_motion.py b/iamccs_wan_svipro_motion.py
index 3d868e2..93aaacb 100644
--- a/iamccs_wan_svipro_motion.py
+++ b/iamccs_wan_svipro_motion.py
@@ -2,6 +2,19 @@
# ===============================================================
# IAMCCS WanImageMotion
# Drop-in replacement for KJNodes WanImageToVideoSVIPro with motion control
+#
+# Copyright (C) 2025-2026 Carmine Cristallo Scalzi (IAMCCS)
+#
+# This file is part of IAMCCS-nodes and is distributed under the
+# GNU General Public License v3.0 (GPL-3.0).
+#
+# This file contains logic derived from the following GPL-3.0 projects:
+# - ComfyUI-Wan-SVI2Pro-FLF (https://github.com/IAMCCS/ComfyUI-Wan-SVI2Pro-FLF)
+# - ComfyUI-KJNodes (https://github.com/kijai/ComfyUI-KJNodes)
+# - ComfyUI (https://github.com/comfyanonymous/ComfyUI)
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see .
# ===============================================================
import torch
@@ -724,7 +737,10 @@ class WanImageMotionPro:
"converges toward the end frame without hard-freezing on it. "
"Use the trim_slots output to cut the overshoot frames after sampling. "
"0 = disabled, original behavior. 1 = +4 video frames (recommended). "
- "2 = +8 video frames (looser convergence)."
+ "2 = +8 video frames (looser convergence). "
+ "NOTE: If you have KJNodes WAN attention optimizations (FETA / wrapped_attention) enabled, "
+ "some versions may crash with an einops shape mismatch when overshoot > 0. "
+ "Workaround: set end_overshoot_slots=0 or disable/update that KJNodes optimization."
),
},
),
@@ -922,6 +938,16 @@ class WanImageMotionPro:
)
total_latents_gen = total_latents + _overshoot
+ if _overshoot > 0:
+ self._log.warning(
+ "[WanImageMotionPro] end_overshoot_slots=%s enabled (total_latents=%s -> gen=%s). "
+ "If you use KJNodes WAN attention optimizations (FETA / wrapped_attention) and hit an einops shape mismatch, "
+ "set end_overshoot_slots=0 or disable/update that optimization.",
+ int(end_overshoot_slots),
+ total_latents,
+ total_latents_gen,
+ )
+
device = anchor_latent.device
dtype = anchor_latent.dtype