data_transforms dataloader block for automatically RVCing inputs - #3143
data_transforms dataloader block for automatically RVCing inputs#3143bghira wants to merge 15 commits into
Conversation
84c8524 to
c421843
Compare
c421843 to
b45d8a6
Compare
There was a problem hiding this comment.
🔵 Needs a closer look
It changes core factory metadata-clone gating and adds a new audio form flow whose dirty-state/Alpine wiring is only covered by Jest, so human verification and E2E testing are warranted.
Pull request overview
This PR introduces a new data_transforms dataloader block that expands a source dataset into additional generated training datasets before normal dataloader setup, with the first task being audio identity_transfer (RVC-style voice cloning). It wires a new simpletuner/helpers/data_transforms module into the factory, adds a WebUI editor for audio datasets, refactors auto-generated metadata cloning to key off a new metadata_clone_source_id, and adds extensive multilingual documentation. Much of the runtime RVC training/conversion is intentionally scaffolding that raises NotImplementedError; only the cache-reuse path is functional.
Changes:
- New
data_transformsregistry (base.py) +identity_transfer.pytransform, integrated intoFactoryRegistry.configure. - Refactored
_handle_bucket_operationsto clone metadata viametadata_clone_source_id(set byDatasetDuplicator) instead ofauto_generated. - WebUI support: new audio "Voice Identity Transfer" section, JS helpers, blueprint field; plus EN + zh/ja/pt-BR/es/hi docs.
File summaries
| File | Description |
|---|---|
| simpletuner/helpers/data_transforms/base.py | New DataTransformTask base + registry + process_data_transforms expansion. |
| simpletuner/helpers/data_transforms/identity_transfer.py | RVC identity-transfer transform, cache/hub/manifest plumbing (training/conversion stubbed). |
| simpletuner/helpers/data_transforms/init.py | Exposes the registry and transform. |
| simpletuner/helpers/data_backend/factory.py | Registers process_data_transforms; switches metadata-clone gating to metadata_clone_source_id; versioning keys. |
| simpletuner/helpers/metadata/utils/duplicator.py | Sets metadata_clone_source_id on generated conditioning configs. |
| simpletuner/templates/components/dataloader/sections/audio_body.html | New Voice Identity Transfer form section. |
| simpletuner/templates/trainer_htmx.html | normalizeDataTransforms and save-path handling for audio. |
| simpletuner/static/js/dataloader-section-component.js | Identity-transfer store helpers + audio-only guards. |
| simpletuner/simpletuner_sdk/server/data/dataset_blueprints.py | New data_transforms audio blueprint field. |
| tests/* | Unit/Jest tests for transform, blueprint, and JS helpers. |
| documentation/*, mkdocs.yml | New Voice Cloning docs + data_transforms DATALOADER entries (all languages). |
Review details
- Files reviewed: 32/32 changed files
- Comments generated: 2
- Review effort level: Balanced
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
pr 3143 review comments
…re/auto-rvc-pipeline
…re/auto-rvc-pipeline
This pull request adds comprehensive documentation for the new
data_transformsfeature in the dataloader configuration, across all supported languages. The documentation explains how to use transforms to generate new datasets before normal dataloader setup, with special details on audio identity transfer and the current implementation status.Key documentation updates:
New
data_transformsSection in Dataloader Docsdata_transformsconfiguration option, including its values, usage, and behavior for expanding source datasets into generated training datasets prior to normal dataloader setup. [1] [2] [3] [4] [5] [6]Audio Identity Transfer and Implementation Details
{"task": "identity_transfer", "method": "rvc"}) for audio backends, with references to the relevant voice cloning guides in each language. [1] [2] [3] [4] [5] [6]