Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3c3a303668 | ||
|
|
1ab2f3f4d6 | ||
|
|
bbb3de51c6 | ||
|
|
64b31546e4 | ||
|
|
92916019ae | ||
|
|
8847a7c7ea | ||
|
|
193ab66e5e | ||
|
|
211b827e46 | ||
|
|
9ed5360d69 |
@@ -0,0 +1,21 @@
|
|||||||
|
name: Publish to Comfy registry
|
||||||
|
on:
|
||||||
|
workflow_dispatch:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- main
|
||||||
|
paths:
|
||||||
|
- "pyproject.toml"
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
publish-node:
|
||||||
|
name: Publish Custom Node to registry
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Check out code
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
- name: Publish Custom Node
|
||||||
|
uses: Comfy-Org/publish-node-action@main
|
||||||
|
with:
|
||||||
|
## Add your own personal access token to your Github Repository secrets and reference it here.
|
||||||
|
personal_access_token: ${{ secrets.REGISTRY_ACCESS_TOKEN }}
|
||||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -250,6 +250,7 @@ class ADMD_InitializeTraining:
|
|||||||
[
|
[
|
||||||
'Lion',
|
'Lion',
|
||||||
'AdamW',
|
'AdamW',
|
||||||
|
'prodigy'
|
||||||
], {
|
], {
|
||||||
"default": 'Lion'
|
"default": 'Lion'
|
||||||
}),
|
}),
|
||||||
@@ -336,6 +337,14 @@ class ADMD_InitializeTraining:
|
|||||||
if optimization_method == "AdamW":
|
if optimization_method == "AdamW":
|
||||||
print("Using AdamW optimizer for training")
|
print("Using AdamW optimizer for training")
|
||||||
optimizer = torch.optim.AdamW
|
optimizer = torch.optim.AdamW
|
||||||
|
elif optimization_method == "Prodigy":
|
||||||
|
try:
|
||||||
|
import prodigyopt
|
||||||
|
except ImportError:
|
||||||
|
raise ImportError("Prodigy not installed")
|
||||||
|
|
||||||
|
print(f"use Prodigy optimizer")
|
||||||
|
optimizer = prodigyopt.Prodigy
|
||||||
else:
|
else:
|
||||||
print("Using Lion optimizer for training")
|
print("Using Lion optimizer for training")
|
||||||
optimizer = Lion
|
optimizer = Lion
|
||||||
@@ -404,12 +413,7 @@ class ADMD_InitializeTraining:
|
|||||||
lr_scheduler_spatial_list.append(lr_scheduler_spatial)
|
lr_scheduler_spatial_list.append(lr_scheduler_spatial)
|
||||||
|
|
||||||
# Support mixed-precision training
|
# Support mixed-precision training
|
||||||
if 'scaler' not in globals():
|
scaler = torch.cuda.amp.GradScaler()
|
||||||
scaler = torch.cuda.amp.GradScaler()
|
|
||||||
print("initialize scaler")
|
|
||||||
else:
|
|
||||||
scaler.reset()
|
|
||||||
print("reset scaler")
|
|
||||||
|
|
||||||
admd_pipeline = {
|
admd_pipeline = {
|
||||||
"optimizer_temporal": optimizer_temporal,
|
"optimizer_temporal": optimizer_temporal,
|
||||||
@@ -584,7 +588,7 @@ class ADMD_DiffusersLoader:
|
|||||||
class ADMD_CheckpointLoader:
|
class ADMD_CheckpointLoader:
|
||||||
@classmethod
|
@classmethod
|
||||||
def IS_CHANGED(s):
|
def IS_CHANGED(s):
|
||||||
return ""
|
return float("nan")
|
||||||
@classmethod
|
@classmethod
|
||||||
def INPUT_TYPES(cls):
|
def INPUT_TYPES(cls):
|
||||||
|
|
||||||
@@ -713,7 +717,7 @@ class ADMD_CheckpointLoader:
|
|||||||
class ADMD_ComfyModelLoader:
|
class ADMD_ComfyModelLoader:
|
||||||
@classmethod
|
@classmethod
|
||||||
def IS_CHANGED(s):
|
def IS_CHANGED(s):
|
||||||
return ""
|
return float("nan")
|
||||||
@classmethod
|
@classmethod
|
||||||
def INPUT_TYPES(cls):
|
def INPUT_TYPES(cls):
|
||||||
|
|
||||||
@@ -746,7 +750,7 @@ class ADMD_ComfyModelLoader:
|
|||||||
original_config = OmegaConf.load(os.path.join(script_directory, f"configs/v1-inference.yaml"))
|
original_config = OmegaConf.load(os.path.join(script_directory, f"configs/v1-inference.yaml"))
|
||||||
ad_unet_config = OmegaConf.load(os.path.join(script_directory, f"configs/ad_unet_config.yaml"))
|
ad_unet_config = OmegaConf.load(os.path.join(script_directory, f"configs/ad_unet_config.yaml"))
|
||||||
|
|
||||||
from diffusers.loaders.single_file_utils import (convert_ldm_vae_checkpoint, convert_ldm_unet_checkpoint, create_text_encoder_from_ldm_clip_checkpoint, create_vae_diffusers_config, create_unet_diffusers_config)
|
from .single_file_utils import (convert_ldm_vae_checkpoint, convert_ldm_unet_checkpoint, create_text_encoder_from_ldm_clip_checkpoint, create_vae_diffusers_config, create_unet_diffusers_config)
|
||||||
|
|
||||||
tokenizer = CLIPTokenizer.from_pretrained("openai/clip-vit-large-patch14")
|
tokenizer = CLIPTokenizer.from_pretrained("openai/clip-vit-large-patch14")
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,15 @@
|
|||||||
|
[project]
|
||||||
|
name = "comfyui-admotiondirector"
|
||||||
|
description = "This is a trainer for AnimateDiff MotionLoRAs, based on the implementation of MotionDirector by ExponentialML."
|
||||||
|
version = "1.0.0"
|
||||||
|
license = "Apache-2.0"
|
||||||
|
dependencies = ["diffusers>=0.26.2", "huggingface_hub>=0.20.3", "transformers>=4.37.2", "loralib", "einops", "omegaconf", "lion-pytorch", "peft", "imageio>=2.33.1", "imageio-ffmpeg>=0.4.7"]
|
||||||
|
|
||||||
|
[project.urls]
|
||||||
|
Repository = "https://github.com/kijai/ComfyUI-ADMotionDirector"
|
||||||
|
# Used by Comfy Registry https://comfyregistry.org
|
||||||
|
|
||||||
|
[tool.comfy]
|
||||||
|
PublisherId = "kijai"
|
||||||
|
DisplayName = "ComfyUI-ADMotionDirector"
|
||||||
|
Icon = ""
|
||||||
+2
-2
@@ -1,6 +1,6 @@
|
|||||||
diffusers==0.26.2
|
diffusers>=0.27.2
|
||||||
huggingface_hub>=0.20.3
|
huggingface_hub>=0.20.3
|
||||||
transformers==4.37.2
|
transformers>=4.37.2
|
||||||
loralib
|
loralib
|
||||||
einops
|
einops
|
||||||
omegaconf
|
omegaconf
|
||||||
|
|||||||
Reference in New Issue
Block a user