package ml import "encoding/json" // GenconfigMarshal serializa un GenerationConfig a JSON canonico con indent de 2 espacios. // El formato es identico al de Python json.dumps(indent=2, sort_keys=False): // keys en el orden de declaracion del struct, snake_case, campos omitempty ausentes si zero. func GenconfigMarshal(cfg GenerationConfig) ([]byte, error) { return json.MarshalIndent(cfg, "", " ") } // GenconfigUnmarshal deserializa JSON (compacto o con indent) a GenerationConfig. // Los campos JSON deben usar snake_case: negative_prompt, cfg_scale, model_type, etc. func GenconfigUnmarshal(data []byte) (GenerationConfig, error) { var cfg GenerationConfig if err := json.Unmarshal(data, &cfg); err != nil { return GenerationConfig{}, err } return cfg, nil }