This commit is contained in:
简州
2025-12-04 15:20:01 +08:00
parent 450a7302ae
commit 72167e86a4
7 changed files with 41 additions and 102 deletions
-1
View File
@@ -27,7 +27,6 @@ CUDA_VISIBLE_DEVICES=$CUDA_VISIBLE_DEVICES /primus_xpfs_workspace_T04/huangshiji
--convert_model_dtype \
--infer_frames 48 \
--load_lora \
--lora_path "/primus_xpfs_workspace_T04/huangyubo/Causvid/checkpoints/1005_s2v_causal_sft_1_4_0/ckpt/merged_model_step_step_25000/only_lora.pt" \
--lora_path_dmd "/primus_xpfs_workspace_T04/huangyubo/LongLive/1027_s2v_selfforcing_1_13_2/ckptcopy/step_2500_generator_lora.pt" \
--sample_steps 4 \
--sample_guide_scale 0 \
-1
View File
@@ -19,7 +19,6 @@ CUDA_VISIBLE_DEVICES=$CUDA_VISIBLE_DEVICES /primus_xpfs_workspace_T04/huangshiji
--convert_model_dtype \
--infer_frames 48 \
--load_lora \
--lora_path "/primus_xpfs_workspace_T04/huangyubo/Causvid/checkpoints/1005_s2v_causal_sft_1_4_0/ckpt/merged_model_step_step_25000/only_lora.pt" \
--lora_path_dmd "/primus_xpfs_workspace_T04/huangyubo/LongLive/1027_s2v_selfforcing_1_13_2/ckptcopy/step_2500_generator_lora.pt" \
--sample_steps 4 \
--sample_guide_scale 0 \
+3 -4
View File
@@ -9,12 +9,11 @@ CUDA_VISIBLE_DEVICES=$CUDA_VISIBLE_DEVICES /primus_xpfs_workspace_T04/huangshiji
--training_config liveavatar/configs/s2v_causal_sft.yaml \
--offload_model False \
--convert_model_dtype \
--prompt "A close-up, black and white video of a 60-70 year old male digital human, resembling Albert Einstein. He has a surprised and curious expression with raised eyebrows and slightly parted lips, as if about to speak. He wears a dark suit, white shirt, and dark tie. In the dimly lit background to his right, a blackboard with a chalk circle and symbols like 'L' and 'K' is visible. The scene has a thoughtful, intelligent, and slightly whimsical atmosphere, rendered in a classic black and white film style." \
--image "examples/demo/case1.jpg" \
--audio "examples/demo/case1_talker.wav" \
--prompt "A stout, cheerful dwarf with a magnificent braided beard adorned with metal rings, wearing a heavy leather apron. He's standing in his fiery, cluttered forge, laughing heartily as he explains the mastery of his craft, holding up a glowing hammer. Style of Blizzard Entertainment cinematics (like World of Warcraft), warm, dynamic lighting from the forge." \
--image "examples/dwarven_blacksmith.jpg" \
--audio "examples/dwarven_blacksmith.wav" \
--infer_frames 48 \
--load_lora \
--lora_path "/primus_xpfs_workspace_T04/huangyubo/Causvid/checkpoints/1005_s2v_causal_sft_1_4_0/ckpt/merged_model_step_step_25000/only_lora.pt" \
--lora_path_dmd "/primus_xpfs_workspace_T04/huangyubo/LongLive/1027_s2v_selfforcing_1_13_2/ckptcopy/step_2500_generator_lora.pt" \
--sample_steps 4 \
--sample_guide_scale 0 \
+3 -4
View File
@@ -9,12 +9,11 @@ CUDA_VISIBLE_DEVICES=$CUDA_VISIBLE_DEVICES /primus_xpfs_workspace_T04/huangshiji
--training_config liveavatar/configs/s2v_causal_sft.yaml \
--offload_model True \
--convert_model_dtype \
--prompt "A vibrant 3D anime style avatar of a young blonde woman with high pigtails, wearing a black Gothic Lolita dress with an off-shoulder neckline, lace choker, and gloves, speaking playfully to the camera with expressive, exaggerated hand gestures and a slight smirk. The camera is steady, and the background is a dark, simple studio." \
--image "examples/demo/case1.jpg" \
--audio "examples/talk.wav" \
--prompt "A stout, cheerful dwarf with a magnificent braided beard adorned with metal rings, wearing a heavy leather apron. He's standing in his fiery, cluttered forge, laughing heartily as he explains the mastery of his craft, holding up a glowing hammer. Style of Blizzard Entertainment cinematics (like World of Warcraft), warm, dynamic lighting from the forge." \
--image "examples/dwarven_blacksmith.jpg" \
--audio "examples/dwarven_blacksmith.wav" \
--infer_frames 48 \
--load_lora \
--lora_path "/primus_xpfs_workspace_T04/huangyubo/Causvid/checkpoints/1005_s2v_causal_sft_1_4_0/ckpt/merged_model_step_step_25000/only_lora.pt" \
--lora_path_dmd "/primus_xpfs_workspace_T04/huangyubo/LongLive/1027_s2v_selfforcing_1_13_2/ckptcopy/step_2500_generator_lora.pt" \
--sample_steps 4 \
--sample_guide_scale 0 \
+14 -33
View File
@@ -619,41 +619,22 @@ def generate(args, training_settings):
single_gpu=args.single_gpu,
offload_kv_cache=args.offload_kv_cache,
)
if args.load_lora and args.lora_path is not None:
print(f'Use LoRA: lora path: {args.lora_path}, lora rank:', training_settings['lora_rank'] ,", lora alpha: ",training_settings['lora_alpha'])
if args.load_lora and args.lora_path_dmd is not None:
print(f'Use LoRA: lora path: {args.lora_path_dmd}, lora rank:', training_settings['lora_rank'] ,", lora alpha: ",training_settings['lora_alpha'])
# for version <1.5.0, using ckpt not merged 还需要把ckpt path改了
if args.using_merged_ckpt is False:
wan_s2v.add_lora_to_model(
wan_s2v.noise_model,
lora_rank=training_settings['lora_rank'],
lora_alpha=training_settings['lora_alpha'],
lora_target_modules=training_settings['lora_target_modules'],
init_lora_weights=training_settings['init_lora_weights'],
pretrained_lora_path=args.lora_path,
load_lora_weight_only=False,
)
if args.lora_path_dmd is not None:
wan_s2v.add_lora_to_model(
wan_s2v.noise_model,
lora_rank=training_settings['lora_rank'],
lora_alpha=training_settings['lora_alpha'],
lora_target_modules=training_settings['lora_target_modules'],
init_lora_weights=training_settings['init_lora_weights'],
pretrained_lora_path=args.lora_path_dmd,
load_only=True,
)
else:
# for version >=1.5.0, using merged ckpt,还需要把ckpt path改了
if args.lora_path_dmd is not None:
wan_s2v.add_lora_to_model(
wan_s2v.noise_model,
lora_rank=256,
lora_alpha=256,
lora_target_modules=training_settings['lora_target_modules'],
init_lora_weights=training_settings['init_lora_weights'],
pretrained_lora_path=args.lora_path_dmd
)
if args.lora_path_dmd is not None:
wan_s2v.add_lora_to_model(
wan_s2v.noise_model,
lora_rank=training_settings['lora_rank'],
lora_alpha=training_settings['lora_alpha'],
lora_target_modules=training_settings['lora_target_modules'],
init_lora_weights=training_settings['init_lora_weights'],
pretrained_lora_path=args.lora_path_dmd,
load_lora_weight_only=False,
)
else:
assert False, "Only s2v is supported for now."
+7 -25
View File
@@ -365,40 +365,22 @@ def initialize_pipeline(args, training_settings):
)
# Load LoRA if specified
if args.load_lora and args.lora_path is not None:
logging.info(f'Loading LoRA: path={args.lora_path}, rank={training_settings["lora_rank"]}, alpha={training_settings["lora_alpha"]}')
if args.load_lora and args.lora_path_dmd is not None:
logging.info(f'Loading LoRA: path={args.lora_path_dmd}, rank={training_settings["lora_rank"]}, alpha={training_settings["lora_alpha"]}')
if args.using_merged_ckpt is False:
if args.lora_path_dmd is not None:
wan_s2v.add_lora_to_model(
wan_s2v.noise_model,
lora_rank=training_settings['lora_rank'],
lora_alpha=training_settings['lora_alpha'],
lora_target_modules=training_settings['lora_target_modules'],
init_lora_weights=training_settings['init_lora_weights'],
pretrained_lora_path=args.lora_path,
pretrained_lora_path=args.lora_path_dmd,
load_lora_weight_only=False,
)
if args.lora_path_dmd is not None:
wan_s2v.add_lora_to_model(
wan_s2v.noise_model,
lora_rank=training_settings['lora_rank'],
lora_alpha=training_settings['lora_alpha'],
lora_target_modules=training_settings['lora_target_modules'],
init_lora_weights=training_settings['init_lora_weights'],
pretrained_lora_path=args.lora_path_dmd,
load_only=True,
)
else:
if args.lora_path_dmd is not None:
wan_s2v.add_lora_to_model(
wan_s2v.noise_model,
lora_rank=256,
lora_alpha=256,
lora_target_modules=training_settings['lora_target_modules'],
init_lora_weights=training_settings['init_lora_weights'],
pretrained_lora_path=args.lora_path_dmd
)
wan_s2v_pipeline = wan_s2v
global_args = args
+14 -34
View File
@@ -456,41 +456,21 @@ def generate(args, training_settings):
single_gpu=args.single_gpu,
offload_kv_cache=args.offload_kv_cache,
)
if args.load_lora and args.lora_path is not None:
print(f'Use LoRA: lora path: {args.lora_path}, lora rank:', training_settings['lora_rank'] ,", lora alpha: ",training_settings['lora_alpha'])
# for version <1.5.0, using ckpt not merged 还需要把ckpt path改了
if args.using_merged_ckpt is False:
wan_s2v.add_lora_to_model(
wan_s2v.noise_model,
lora_rank=training_settings['lora_rank'],
lora_alpha=training_settings['lora_alpha'],
lora_target_modules=training_settings['lora_target_modules'],
init_lora_weights=training_settings['init_lora_weights'],
pretrained_lora_path=args.lora_path,
load_lora_weight_only=False,
)
if args.load_lora and args.lora_path_dmd is not None:
print(f'Use LoRA: lora path: {args.lora_path_dmd}, lora rank:', training_settings['lora_rank'] ,", lora alpha: ",training_settings['lora_alpha'])
if args.lora_path_dmd is not None:
wan_s2v.add_lora_to_model(
wan_s2v.noise_model,
lora_rank=training_settings['lora_rank'],
lora_alpha=training_settings['lora_alpha'],
lora_target_modules=training_settings['lora_target_modules'],
init_lora_weights=training_settings['init_lora_weights'],
pretrained_lora_path=args.lora_path_dmd,
load_only=True,
)
else:
# for version >=1.5.0, using merged ckpt,还需要把ckpt path改了
if args.lora_path_dmd is not None:
wan_s2v.add_lora_to_model(
wan_s2v.noise_model,
lora_rank=256,
lora_alpha=256,
lora_target_modules=training_settings['lora_target_modules'],
init_lora_weights=training_settings['init_lora_weights'],
pretrained_lora_path=args.lora_path_dmd
)
if args.lora_path_dmd is not None:
wan_s2v.add_lora_to_model(
wan_s2v.noise_model,
lora_rank=training_settings['lora_rank'],
lora_alpha=training_settings['lora_alpha'],
lora_target_modules=training_settings['lora_target_modules'],
init_lora_weights=training_settings['init_lora_weights'],
pretrained_lora_path=args.lora_path_dmd,
load_lora_weight_only=False,
)
# Prepare video path for SAM2 processing (will be handled in pipeline)
logging.info(f"Generating video ...")