gguf-py : add support for sub_type (in arrays) in GGUFWriter add_key_value method (#13561)
This commit is contained in:
parent
54a2c7a8cd
commit
2b131621e6
5 changed files with 29 additions and 16 deletions
|
@ -1521,19 +1521,21 @@ class GGUFEditorWindow(QMainWindow):
|
|||
continue
|
||||
|
||||
# Apply changes if any
|
||||
sub_type = None
|
||||
if field.name in self.metadata_changes:
|
||||
value_type, value = self.metadata_changes[field.name]
|
||||
if value_type == GGUFValueType.ARRAY:
|
||||
# Handle array values
|
||||
element_type, array_values = value
|
||||
writer.add_array(field.name, array_values)
|
||||
else:
|
||||
writer.add_key_value(field.name, value, value_type)
|
||||
sub_type, value = value
|
||||
else:
|
||||
# Copy original value
|
||||
value = field.contents()
|
||||
if value is not None and field.types:
|
||||
writer.add_key_value(field.name, value, field.types[0])
|
||||
value_type = field.types[0]
|
||||
if value_type == GGUFValueType.ARRAY:
|
||||
sub_type = field.types[-1]
|
||||
|
||||
if value is not None:
|
||||
writer.add_key_value(field.name, value, value_type, sub_type=sub_type)
|
||||
|
||||
# Add new metadata
|
||||
for key, (value_type, value) in self.metadata_changes.items():
|
||||
|
@ -1541,7 +1543,12 @@ class GGUFEditorWindow(QMainWindow):
|
|||
if self.reader.get_field(key) is not None:
|
||||
continue
|
||||
|
||||
writer.add_key_value(key, value, value_type)
|
||||
sub_type = None
|
||||
if value_type == GGUFValueType.ARRAY:
|
||||
# Handle array values
|
||||
sub_type, value = value
|
||||
|
||||
writer.add_key_value(key, value, value_type, sub_type=sub_type)
|
||||
|
||||
# Add tensors (including data)
|
||||
for tensor in self.reader.tensors:
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue