mirror of
https://github.com/storytold/FineTrainers-Conditioning.git
synced 2026-10-18 00:33:52 +00:00
address some reviews; change hunyuan checkpoint repo-id
This commit is contained in:
@@ -273,8 +273,7 @@ OUTPUT_DIR="/path/to/models/hunyuan-video/hunyuan-video-loras/hunyuan-video_caki
|
|||||||
|
|
||||||
# Model arguments
|
# Model arguments
|
||||||
model_cmd="--model_name hunyuan_video \
|
model_cmd="--model_name hunyuan_video \
|
||||||
--pretrained_model_name_or_path tencent/HunyuanVideo
|
--pretrained_model_name_or_path hunyuanvideo-community/HunyuanVideo"
|
||||||
--revision refs/pr/18"
|
|
||||||
|
|
||||||
# Dataset arguments
|
# Dataset arguments
|
||||||
dataset_cmd="--data_root $DATA_ROOT \
|
dataset_cmd="--data_root $DATA_ROOT \
|
||||||
@@ -356,7 +355,7 @@ import torch
|
|||||||
from diffusers import HunyuanVideoPipeline, HunyuanVideoTransformer3DModel
|
from diffusers import HunyuanVideoPipeline, HunyuanVideoTransformer3DModel
|
||||||
from diffusers.utils import export_to_video
|
from diffusers.utils import export_to_video
|
||||||
|
|
||||||
model_id = "tencent/HunyuanVideo"
|
model_id = "hunyuanvideo-community/HunyuanVideo"
|
||||||
transformer = HunyuanVideoTransformer3DModel.from_pretrained(
|
transformer = HunyuanVideoTransformer3DModel.from_pretrained(
|
||||||
model_id, subfolder="transformer", torch_dtype=torch.bfloat16
|
model_id, subfolder="transformer", torch_dtype=torch.bfloat16
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ logger = get_logger("finetrainers") # pylint: disable=invalid-name
|
|||||||
|
|
||||||
|
|
||||||
def load_condition_models(
|
def load_condition_models(
|
||||||
model_id: str = "tencent/HunyuanVideo",
|
model_id: str = "hunyuanvideo-community/HunyuanVideo",
|
||||||
text_encoder_dtype: torch.dtype = torch.float16,
|
text_encoder_dtype: torch.dtype = torch.float16,
|
||||||
text_encoder_2_dtype: torch.dtype = torch.float16,
|
text_encoder_2_dtype: torch.dtype = torch.float16,
|
||||||
revision: Optional[str] = None,
|
revision: Optional[str] = None,
|
||||||
@@ -43,7 +43,7 @@ def load_condition_models(
|
|||||||
|
|
||||||
|
|
||||||
def load_latent_models(
|
def load_latent_models(
|
||||||
model_id: str = "tencent/HunyuanVideo",
|
model_id: str = "hunyuanvideo-community/HunyuanVideo",
|
||||||
vae_dtype: torch.dtype = torch.float16,
|
vae_dtype: torch.dtype = torch.float16,
|
||||||
revision: Optional[str] = None,
|
revision: Optional[str] = None,
|
||||||
cache_dir: Optional[str] = None,
|
cache_dir: Optional[str] = None,
|
||||||
@@ -56,12 +56,12 @@ def load_latent_models(
|
|||||||
|
|
||||||
|
|
||||||
def load_diffusion_models(
|
def load_diffusion_models(
|
||||||
model_id: str = "tencent/HunyuanVideo",
|
model_id: str = "hunyuanvideo-community/HunyuanVideo",
|
||||||
transformer_dtype: torch.dtype = torch.bfloat16,
|
transformer_dtype: torch.dtype = torch.bfloat16,
|
||||||
revision: Optional[str] = None,
|
revision: Optional[str] = None,
|
||||||
cache_dir: Optional[str] = None,
|
cache_dir: Optional[str] = None,
|
||||||
**kwargs,
|
**kwargs,
|
||||||
) -> Dict[str, nn.Module]:
|
) -> Dict[str, Union[nn.Module, FlowMatchEulerDiscreteScheduler]]:
|
||||||
transformer = HunyuanVideoTransformer3DModel.from_pretrained(
|
transformer = HunyuanVideoTransformer3DModel.from_pretrained(
|
||||||
model_id, subfolder="transformer", torch_dtype=transformer_dtype, revision=revision, cache_dir=cache_dir
|
model_id, subfolder="transformer", torch_dtype=transformer_dtype, revision=revision, cache_dir=cache_dir
|
||||||
)
|
)
|
||||||
@@ -70,7 +70,7 @@ def load_diffusion_models(
|
|||||||
|
|
||||||
|
|
||||||
def initialize_pipeline(
|
def initialize_pipeline(
|
||||||
model_id: str = "tencent/HunyuanVideo",
|
model_id: str = "hunyuanvideo-community/HunyuanVideo",
|
||||||
text_encoder_dtype: torch.dtype = torch.float16,
|
text_encoder_dtype: torch.dtype = torch.float16,
|
||||||
text_encoder_2_dtype: torch.dtype = torch.float16,
|
text_encoder_2_dtype: torch.dtype = torch.float16,
|
||||||
transformer_dtype: torch.dtype = torch.bfloat16,
|
transformer_dtype: torch.dtype = torch.bfloat16,
|
||||||
|
|||||||
@@ -138,7 +138,7 @@ class Trainer:
|
|||||||
self.vae = components.get("vae", self.vae)
|
self.vae = components.get("vae", self.vae)
|
||||||
self.scheduler = components.get("scheduler", self.scheduler)
|
self.scheduler = components.get("scheduler", self.scheduler)
|
||||||
|
|
||||||
def _nuke_components(self) -> None:
|
def _delete_components(self) -> None:
|
||||||
self.tokenizer = None
|
self.tokenizer = None
|
||||||
self.tokenizer_2 = None
|
self.tokenizer_2 = None
|
||||||
self.tokenizer_3 = None
|
self.tokenizer_3 = None
|
||||||
@@ -274,7 +274,7 @@ class Trainer:
|
|||||||
torch.save(other_conditions, filename.as_posix())
|
torch.save(other_conditions, filename.as_posix())
|
||||||
index += 1
|
index += 1
|
||||||
progress_bar.update(1)
|
progress_bar.update(1)
|
||||||
self._nuke_components()
|
self._delete_components()
|
||||||
|
|
||||||
memory_statistics = get_memory_statistics()
|
memory_statistics = get_memory_statistics()
|
||||||
logger.info(f"Memory after precomputing conditions: {json.dumps(memory_statistics, indent=4)}")
|
logger.info(f"Memory after precomputing conditions: {json.dumps(memory_statistics, indent=4)}")
|
||||||
@@ -323,7 +323,7 @@ class Trainer:
|
|||||||
torch.save(latent_conditions, filename.as_posix())
|
torch.save(latent_conditions, filename.as_posix())
|
||||||
index += 1
|
index += 1
|
||||||
progress_bar.update(1)
|
progress_bar.update(1)
|
||||||
self._nuke_components()
|
self._delete_components()
|
||||||
|
|
||||||
self.state.accelerator.wait_for_everyone()
|
self.state.accelerator.wait_for_everyone()
|
||||||
logger.info("Precomputation complete")
|
logger.info("Precomputation complete")
|
||||||
@@ -669,7 +669,8 @@ class Trainer:
|
|||||||
accelerator.backward(loss)
|
accelerator.backward(loss)
|
||||||
|
|
||||||
if accelerator.sync_gradients and accelerator.distributed_type != DistributedType.DEEPSPEED:
|
if accelerator.sync_gradients and accelerator.distributed_type != DistributedType.DEEPSPEED:
|
||||||
accelerator.clip_grad_norm_(self.transformer.parameters(), self.args.max_grad_norm)
|
grad_norm = accelerator.clip_grad_norm_(self.transformer.parameters(), self.args.max_grad_norm)
|
||||||
|
logs["grad_norm"] = grad_norm
|
||||||
|
|
||||||
self.optimizer.step()
|
self.optimizer.step()
|
||||||
self.lr_scheduler.step()
|
self.lr_scheduler.step()
|
||||||
|
|||||||
Reference in New Issue
Block a user