diff --git a/configs/flux2_klein/flux2_klein_i2i_edit.json b/configs/flux2_klein/flux2_klein_i2i_edit.json new file mode 100644 index 00000000..f0e7f792 --- /dev/null +++ b/configs/flux2_klein/flux2_klein_i2i_edit.json @@ -0,0 +1,13 @@ +{ + "model_cls": "flux2_klein", + "task": "i2i", + "task_variant": "edit", + "infer_steps": 40, + "sample_guide_scale": 4.0, + "vae_scale_factor": 16, + "feature_caching": "None", + "enable_cfg": true, + "patch_size": 2, + "tokenizer_max_length": 512, + "rope_type": "flashinfer" +} diff --git a/configs/flux2_klein/flux2_klein_i2i_edit_cfg_parallel.json b/configs/flux2_klein/flux2_klein_i2i_edit_cfg_parallel.json new file mode 100644 index 00000000..a5dc4200 --- /dev/null +++ b/configs/flux2_klein/flux2_klein_i2i_edit_cfg_parallel.json @@ -0,0 +1,16 @@ +{ + "model_cls": "flux2_klein", + "task": "i2i", + "task_variant": "edit", + "infer_steps": 40, + "sample_guide_scale": 4.0, + "vae_scale_factor": 16, + "feature_caching": "None", + "enable_cfg": true, + "patch_size": 2, + "tokenizer_max_length": 512, + "rope_type": "flashinfer", + "parallel": { + "cfg_p_size": 2 + } +} diff --git a/lightx2v/models/schedulers/flux2_klein/scheduler.py b/lightx2v/models/schedulers/flux2_klein/scheduler.py index 784ba1e3..0dab83b6 100644 --- a/lightx2v/models/schedulers/flux2_klein/scheduler.py +++ b/lightx2v/models/schedulers/flux2_klein/scheduler.py @@ -169,8 +169,8 @@ def prepare_i2i(self, input_info, input_image, vae): image_latents = [] for img in input_image: - imagge_latent = self._encode_image(img) - image_latents.append(imagge_latent) + image_latent = self._encode_image(img) + image_latents.append(image_latent) if "task_variant" in self.config: self.task_variant = self.config["task_variant"] @@ -180,7 +180,6 @@ def prepare_i2i(self, input_info, input_image, vae): ref_img_latent = self._pack_latents(ref_img_latent).squeeze(0) ref_img_latent = ref_img_latent.unsqueeze(0).to(AI_DEVICE, dtype=self.dtype) - self.latents = (1 - self.sigmas[0]) * ref_img_latent + self.sigmas[0] * self.latents image_latent_ids = self._prepare_image_ids(image_latents, scale=10) diff --git a/scripts/flux2_klein/infer_flux2_klein_i2i_distill_maskedit.sh b/scripts/flux2_klein/infer_flux2_klein_i2i_distill_maskedit.sh index 234f5f7b..362f12cf 100755 --- a/scripts/flux2_klein/infer_flux2_klein_i2i_distill_maskedit.sh +++ b/scripts/flux2_klein/infer_flux2_klein_i2i_distill_maskedit.sh @@ -1,5 +1,5 @@ #!/bin/bash -lightx2v_path= +lightx2v_path=/mnt/miaohua/wangshankun/LightX2V model_path="/data/temp/black-forest-labs/FLUX.2-klein-9B" export CUDA_VISIBLE_DEVICES=0 diff --git a/scripts/flux2_klein/infer_flux2_klein_i2i_maskedit.sh b/scripts/flux2_klein/infer_flux2_klein_i2i_maskedit.sh new file mode 100755 index 00000000..067787c7 --- /dev/null +++ b/scripts/flux2_klein/infer_flux2_klein_i2i_maskedit.sh @@ -0,0 +1,15 @@ +#!/bin/bash +lightx2v_path= +model_path="/data/temp/black-forest-labs/FLUX.2-klein-9B" +export CUDA_VISIBLE_DEVICES=0 + +source ${lightx2v_path}/scripts/base/base.sh + +python -m lightx2v.infer \ + --model_cls flux2_klein \ + --task i2i \ + --model_path $model_path \ + --prompt "A clean ppt background, without text" \ + --image_path "${lightx2v_path}/assets/inputs/imgs/mask_edit" \ + --save_result_path "${lightx2v_path}/save_results/flux2_klein_i2i_mask_edit.png" \ + --config_json "${lightx2v_path}/configs/flux2_klein/flux2_klein_i2i_edit.json" diff --git a/scripts/flux2_klein/infer_flux2_klein_i2i_maskedit_cfg_parallel.sh b/scripts/flux2_klein/infer_flux2_klein_i2i_maskedit_cfg_parallel.sh new file mode 100755 index 00000000..b15793a5 --- /dev/null +++ b/scripts/flux2_klein/infer_flux2_klein_i2i_maskedit_cfg_parallel.sh @@ -0,0 +1,15 @@ +#!/bin/bash +lightx2v_path= +model_path="/data/temp/black-forest-labs/FLUX.2-klein-9B" +export CUDA_VISIBLE_DEVICES=0,1 + +source ${lightx2v_path}/scripts/base/base.sh + +torchrun --nproc_per_node=2 -m lightx2v.infer \ + --model_cls flux2_klein \ + --task i2i \ + --model_path $model_path \ + --prompt "A clean ppt background, without text" \ + --image_path "${lightx2v_path}/assets/inputs/imgs/mask_edit" \ + --save_result_path "${lightx2v_path}/save_results/flux2_klein_i2i_mask_edit.png" \ + --config_json "${lightx2v_path}/configs/flux2_klein/flux2_klein_i2i_edit_cfg_parallel.json"