{"record":{"id":"4c2ff7f2dcd05837","repo":"hiyouga/LlamaFactory","slug":"moss-vl-does-not-support-audio-inputs","errorCode":null,"errorMessage":"MOSS-VL does not support audio inputs.","messagePattern":"MOSS-VL does not support audio inputs\\.","errorType":"exception","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"src/llamafactory/data/mm_plugin.py","lineNumber":677,"sourceCode":"            message[\"content\"] = content\n\n        return messages\n\n    @override\n    def get_mm_inputs(\n        self,\n        images: list[\"ImageInput\"],\n        videos: list[\"VideoInput\"],\n        audios: list[\"AudioInput\"],\n        imglens: list[int],\n        vidlens: list[int],\n        audlens: list[int],\n        batch_ids: list[list[int]],\n        processor: Optional[\"MMProcessor\"],\n    ) -> dict[str, Union[list[int], \"torch.Tensor\"]]:\n        self._validate_input(processor, images, videos, audios)\n        if audios:\n            raise ValueError(\"MOSS-VL does not support audio inputs.\")\n\n        if not (len(imglens) == len(vidlens) == len(batch_ids)):\n            raise ValueError(\"MOSS-VL batch metadata must have one entry per sample.\")\n        final_pixel_values = []\n        final_grid_thw = []\n        media_nums_per_sample = []\n        image_offset = 0\n        video_offset = 0\n        for imglen, vidlen, input_ids in zip(imglens, vidlens, batch_ids):\n            sample_images = images[image_offset : image_offset + imglen]\n            sample_videos = videos[video_offset : video_offset + vidlen]\n            image_offset += imglen\n            video_offset += vidlen\n            image_chunks, image_grids = [], []\n            if sample_images:\n                regularized_images = self._regularize_images(\n                    sample_images,\n                    image_max_pixels=2**63 - 1,","sourceCodeStart":659,"sourceCodeEnd":695,"githubUrl":"https://github.com/hiyouga/LlamaFactory/blob/f28afaf6355af515454dfb16c97d728307c93897/src/llamafactory/data/mm_plugin.py#L659-L695","documentation":"The MOSS-VL plugin is image/video-only: its _get_mm_inputs raises immediately if the audios list is non-empty. Audio placeholders/media are not implemented for this architecture.","triggerScenarios":"Running a template/dataset that supplies an `audios` column (or <audio> placeholders) with a MOSS-VL model, e.g. reusing a qwen2_omni audio dataset config with the moss_vl plugin.","commonSituations":"Copying a multimodal config from an omni model to MOSS-VL; datasets that always include an audios field even when empty-ish (a non-empty list triggers this).","solutions":["Switch to an audio-capable plugin/model (qwen2_omni, qwen2_audio) if audio input is required.","Strip the audios column / <audio> placeholders from the dataset when using MOSS-VL.","Use a template without audio support for MOSS-VL."],"exampleFix":"### before\n# dataset.json row\n{\"messages\": [{\"role\":\"user\",\"content\":\"<audio> transcribe\"}], \"audios\": [\"a.wav\"]}\n# with model_plugin: moss_vl\n### after\n{\"messages\": [{\"role\":\"user\",\"content\":\"transcribe\"}]}\n# or switch plugin to qwen2_omni","handlingStrategy":"validation","validationCode":"assert not audios, 'MOSS-VL does not accept audio; strip the audios column or use qwen2_omni'","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Match dataset modality to the model plugin before training; keep an audio dataset config separate."],"tags":["multimodal","moss-vl","audio","unsupported-feature"],"backgroundTag":null,"analyzedSha":"f28afaf6355af515454dfb16c97d728307c93897","analyzedAt":"2026-08-14T21:57:28.298Z","schemaVersion":2},"datasetVersion":"2026-08-15T17:31:12.345Z"}