Add auto_frame_count support for all remaining video models (#897)

This commit is contained in:
fatalis 2026-06-19 08:05:18 -05:00 committed by GitHub
parent 022d1c29e0
commit 4af4fb9d58
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 18 additions and 6 deletions

View File

@ -181,9 +181,10 @@ export const modelArchs: ModelArch[] = [
'config.process[0].train.noise_scheduler': ['flowmatch', 'flowmatch'], 'config.process[0].train.noise_scheduler': ['flowmatch', 'flowmatch'],
'config.process[0].sample.num_frames': [41, 1], 'config.process[0].sample.num_frames': [41, 1],
'config.process[0].sample.fps': [16, 1], 'config.process[0].sample.fps': [16, 1],
'config.process[0].datasets[x].fps': [16, undefined],
}, },
disableSections: ['network.conv'], disableSections: ['network.conv'],
additionalSections: ['datasets.num_frames', 'model.low_vram'], additionalSections: ['datasets.num_frames', 'model.low_vram', 'datasets.auto_frame_count'],
}, },
{ {
name: 'wan21_i2v:14b480p', name: 'wan21_i2v:14b480p',
@ -200,9 +201,10 @@ export const modelArchs: ModelArch[] = [
'config.process[0].sample.num_frames': [41, 1], 'config.process[0].sample.num_frames': [41, 1],
'config.process[0].sample.fps': [16, 1], 'config.process[0].sample.fps': [16, 1],
'config.process[0].train.timestep_type': ['weighted', 'sigmoid'], 'config.process[0].train.timestep_type': ['weighted', 'sigmoid'],
'config.process[0].datasets[x].fps': [16, undefined],
}, },
disableSections: ['network.conv'], disableSections: ['network.conv'],
additionalSections: ['sample.ctrl_img', 'datasets.num_frames', 'model.low_vram'], additionalSections: ['sample.ctrl_img', 'datasets.num_frames', 'model.low_vram', 'datasets.auto_frame_count'],
}, },
{ {
name: 'wan21_i2v:14b', name: 'wan21_i2v:14b',
@ -219,9 +221,10 @@ export const modelArchs: ModelArch[] = [
'config.process[0].sample.num_frames': [41, 1], 'config.process[0].sample.num_frames': [41, 1],
'config.process[0].sample.fps': [16, 1], 'config.process[0].sample.fps': [16, 1],
'config.process[0].train.timestep_type': ['weighted', 'sigmoid'], 'config.process[0].train.timestep_type': ['weighted', 'sigmoid'],
'config.process[0].datasets[x].fps': [16, undefined],
}, },
disableSections: ['network.conv'], disableSections: ['network.conv'],
additionalSections: ['sample.ctrl_img', 'datasets.num_frames', 'model.low_vram'], additionalSections: ['sample.ctrl_img', 'datasets.num_frames', 'model.low_vram', 'datasets.auto_frame_count'],
}, },
{ {
name: 'wan21:14b', name: 'wan21:14b',
@ -237,9 +240,10 @@ export const modelArchs: ModelArch[] = [
'config.process[0].train.noise_scheduler': ['flowmatch', 'flowmatch'], 'config.process[0].train.noise_scheduler': ['flowmatch', 'flowmatch'],
'config.process[0].sample.num_frames': [41, 1], 'config.process[0].sample.num_frames': [41, 1],
'config.process[0].sample.fps': [16, 1], 'config.process[0].sample.fps': [16, 1],
'config.process[0].datasets[x].fps': [16, undefined],
}, },
disableSections: ['network.conv'], disableSections: ['network.conv'],
additionalSections: ['datasets.num_frames', 'model.low_vram'], additionalSections: ['datasets.num_frames', 'model.low_vram', 'datasets.auto_frame_count'],
}, },
{ {
name: 'wan22_14b:t2v', name: 'wan22_14b:t2v',
@ -257,6 +261,7 @@ export const modelArchs: ModelArch[] = [
'config.process[0].sample.fps': [16, 1], 'config.process[0].sample.fps': [16, 1],
'config.process[0].model.low_vram': [true, false], 'config.process[0].model.low_vram': [true, false],
'config.process[0].train.timestep_type': ['linear', 'sigmoid'], 'config.process[0].train.timestep_type': ['linear', 'sigmoid'],
'config.process[0].datasets[x].fps': [16, undefined],
'config.process[0].model.model_kwargs': [ 'config.process[0].model.model_kwargs': [
{ {
train_high_noise: true, train_high_noise: true,
@ -266,7 +271,7 @@ export const modelArchs: ModelArch[] = [
], ],
}, },
disableSections: ['network.conv'], disableSections: ['network.conv'],
additionalSections: ['datasets.num_frames', 'model.low_vram', 'model.multistage', 'model.layer_offloading'], additionalSections: ['datasets.num_frames', 'model.low_vram', 'model.multistage', 'model.layer_offloading', 'datasets.auto_frame_count'],
accuracyRecoveryAdapters: { accuracyRecoveryAdapters: {
// '3 bit with ARA': 'uint3|ostris/accuracy_recovery_adapters/wan22_14b_t2i_torchao_uint3.safetensors', // '3 bit with ARA': 'uint3|ostris/accuracy_recovery_adapters/wan22_14b_t2i_torchao_uint3.safetensors',
'4 bit with ARA': 'uint4|ostris/accuracy_recovery_adapters/wan22_14b_t2i_torchao_uint4.safetensors', '4 bit with ARA': 'uint4|ostris/accuracy_recovery_adapters/wan22_14b_t2i_torchao_uint4.safetensors',
@ -288,6 +293,7 @@ export const modelArchs: ModelArch[] = [
'config.process[0].sample.fps': [16, 1], 'config.process[0].sample.fps': [16, 1],
'config.process[0].model.low_vram': [true, false], 'config.process[0].model.low_vram': [true, false],
'config.process[0].train.timestep_type': ['linear', 'sigmoid'], 'config.process[0].train.timestep_type': ['linear', 'sigmoid'],
'config.process[0].datasets[x].fps': [16, undefined],
'config.process[0].model.model_kwargs': [ 'config.process[0].model.model_kwargs': [
{ {
train_high_noise: true, train_high_noise: true,
@ -303,6 +309,7 @@ export const modelArchs: ModelArch[] = [
'model.low_vram', 'model.low_vram',
'model.multistage', 'model.multistage',
'model.layer_offloading', 'model.layer_offloading',
'datasets.auto_frame_count',
], ],
accuracyRecoveryAdapters: { accuracyRecoveryAdapters: {
'4 bit with ARA': 'uint4|ostris/accuracy_recovery_adapters/wan22_14b_i2v_torchao_uint4.safetensors', '4 bit with ARA': 'uint4|ostris/accuracy_recovery_adapters/wan22_14b_i2v_torchao_uint4.safetensors',
@ -327,9 +334,10 @@ export const modelArchs: ModelArch[] = [
'config.process[0].sample.height': [768, 1024], 'config.process[0].sample.height': [768, 1024],
'config.process[0].train.timestep_type': ['weighted', 'sigmoid'], 'config.process[0].train.timestep_type': ['weighted', 'sigmoid'],
'config.process[0].datasets[x].do_i2v': [true, undefined], 'config.process[0].datasets[x].do_i2v': [true, undefined],
'config.process[0].datasets[x].fps': [24, undefined],
}, },
disableSections: ['network.conv'], disableSections: ['network.conv'],
additionalSections: ['sample.ctrl_img', 'datasets.num_frames', 'model.low_vram', 'datasets.do_i2v'], additionalSections: ['sample.ctrl_img', 'datasets.num_frames', 'model.low_vram', 'datasets.do_i2v', 'datasets.auto_frame_count'],
}, },
{ {
name: 'lumina2', name: 'lumina2',

View File

@ -70,6 +70,7 @@ export const handleModelArchChange = (
const hasControlPath = newArch?.additionalSections?.includes('datasets.control_path') || false; const hasControlPath = newArch?.additionalSections?.includes('datasets.control_path') || false;
const hasMultiControlPaths = newArch?.additionalSections?.includes('datasets.multi_control_paths') || false; const hasMultiControlPaths = newArch?.additionalSections?.includes('datasets.multi_control_paths') || false;
const hasNumFrames = newArch?.additionalSections?.includes('datasets.num_frames') || false; const hasNumFrames = newArch?.additionalSections?.includes('datasets.num_frames') || false;
const hasAutoFrameCount = newArch?.additionalSections?.includes('datasets.auto_frame_count') || false;
const controls = newArch?.controls ?? []; const controls = newArch?.controls ?? [];
const datasets = jobConfig.config.process[0].datasets.map(dataset => { const datasets = jobConfig.config.process[0].datasets.map(dataset => {
const newDataset = objectCopy(dataset); const newDataset = objectCopy(dataset);
@ -120,6 +121,9 @@ export const handleModelArchChange = (
if (!hasNumFrames) { if (!hasNumFrames) {
newDataset.num_frames = 1; // reset num_frames if not applicable newDataset.num_frames = 1; // reset num_frames if not applicable
} }
if (!hasAutoFrameCount) {
delete newDataset.auto_frame_count;
}
return newDataset; return newDataset;
}); });
setJobConfig(datasets, 'config.process[0].datasets'); setJobConfig(datasets, 'config.process[0].datasets');