mirror of
https://github.com/storytold/artcraft.git
synced 2026-11-02 08:28:18 +00:00
More updates to seed tool
This commit is contained in:
1 parent
6354e7c3b4
commit
39de5aba13
2 files changed
+35
-43
No files matched your search
@@ -2,12 +2,10 @@ use log::info;
|
||||
use sqlx::{MySql, Pool};
|
||||
|
||||
use errors::{anyhow, AnyhowResult};
|
||||
use hashing::bcrypt::bcrypt_password_hash::bcrypt_password_hash;
|
||||
use hashing::md5::email_to_gravatar_hash::email_to_gravatar_hash;
|
||||
use mysql_queries::queries::users::user::create_account::{create_account, CreateAccountArgs};
|
||||
use mysql_queries::queries::users::user::get_user_token_by_username::get_user_token_by_username;
|
||||
use mysql_queries::queries::voice_designer::datasets::create_dataset::{create_dataset, CreateDatasetArgs};
|
||||
use mysql_queries::queries::voice_designer::voices::create_voice::{create_voice, CreateVoiceArgs};
|
||||
use tokens::users::user::UserToken;
|
||||
|
||||
use crate::seeding::users::HANASHI_USERNAME;
|
||||
|
||||
@@ -19,11 +17,33 @@ pub async fn seed_zero_shot_tts(mysql_pool: &Pool<MySql>) -> AnyhowResult<()> {
|
||||
Some(token) => token,
|
||||
};
|
||||
|
||||
let records = [
|
||||
("Goku", "todo", &user_token),
|
||||
("David Attenborough", "todo", &user_token),
|
||||
("Ash Ketchum", "todo", &user_token),
|
||||
];
|
||||
|
||||
for (voice_name, bucket_hash, user_token) in records {
|
||||
create_voice_records(voice_name, user_token, mysql_pool).await?;
|
||||
}
|
||||
|
||||
Ok(())
|
||||
}
|
||||
|
||||
async fn create_voice_records(
|
||||
voice_name: &str,
|
||||
creator_user_token: &UserToken,
|
||||
mysql_pool: &Pool<MySql>,
|
||||
) -> AnyhowResult<()> {
|
||||
info!("Creating voice records for voice {} ...", voice_name);
|
||||
|
||||
let dataset_title = format!("{} dataset", voice_name);
|
||||
|
||||
info!("Creating dataset...");
|
||||
|
||||
let dataset_token = create_dataset(CreateDatasetArgs {
|
||||
dataset_title: "Goku Dataset",
|
||||
maybe_creator_user_token: Some(user_token.as_str()),
|
||||
dataset_title: &dataset_title,
|
||||
maybe_creator_user_token: Some(creator_user_token.as_str()),
|
||||
creator_ip_address: "127.0.0.1",
|
||||
creator_set_visibility: &Default::default(),
|
||||
maybe_mod_user_token: None,
|
||||
@@ -38,9 +58,9 @@ pub async fn seed_zero_shot_tts(mysql_pool: &Pool<MySql>) -> AnyhowResult<()> {
|
||||
model_type: "vall-e-x",
|
||||
model_version: 0,
|
||||
model_encoding_type: "encodec",
|
||||
voice_title: "Goku Voice",
|
||||
bucket_hash: "asdf",
|
||||
maybe_creator_user_token: Some(&user_token),
|
||||
voice_title: &voice_name,
|
||||
bucket_hash: "asdf", // TODO
|
||||
maybe_creator_user_token: Some(&creator_user_token),
|
||||
creator_ip_address: "127.0.0.1",
|
||||
creator_set_visibility: &Default::default(),
|
||||
mysql_pool,
|
||||
@@ -48,28 +68,3 @@ pub async fn seed_zero_shot_tts(mysql_pool: &Pool<MySql>) -> AnyhowResult<()> {
|
||||
|
||||
Ok(())
|
||||
}
|
||||
|
||||
async fn seed_dataset(
|
||||
username: &str,
|
||||
email_address: &str,
|
||||
password: &str,
|
||||
mysql_pool: &Pool<MySql>,
|
||||
) -> AnyhowResult<()> {
|
||||
info!("Seeding user {} ...", username);
|
||||
|
||||
let display_name = username.clone();
|
||||
let username = username.to_lowercase();
|
||||
let email_gravatar_hash = email_to_gravatar_hash(&email_address);
|
||||
let password_hash = bcrypt_password_hash(password)?;
|
||||
|
||||
create_account(mysql_pool, CreateAccountArgs {
|
||||
username: &username,
|
||||
display_name,
|
||||
email_address,
|
||||
email_gravatar_hash: &email_gravatar_hash,
|
||||
password_hash: &password_hash,
|
||||
ip_address: "127.0.0.1",
|
||||
}).await.map_err(|err| anyhow!("err: {:?}", err))?;
|
||||
|
||||
Ok(())
|
||||
}
|
||||
@@ -1,17 +1,19 @@
|
||||
use anyhow::anyhow;
|
||||
use sqlx::MySqlPool;
|
||||
use enums::common::visibility::Visibility;
|
||||
use enums::by_table::generic_synthetic_ids::id_category::IdCategory;
|
||||
|
||||
use enums::by_table::generic_synthetic_ids::id_category::IdCategory;
|
||||
use enums::common::visibility::Visibility;
|
||||
use errors::AnyhowResult;
|
||||
use tokens::tokens::zs_dataset::ZsDatasetToken;
|
||||
use tokens::tokens::zs_voice::ZsVoiceToken;
|
||||
use tokens::users::user::UserToken;
|
||||
|
||||
use crate::queries::generic_synthetic_ids::transactional_increment_generic_synthetic_id::transactional_increment_generic_synthetic_id;
|
||||
|
||||
pub struct CreateVoiceArgs<'a> {
|
||||
pub dataset_token: &'a ZsDatasetToken,
|
||||
|
||||
// TODO(bt,2023-10-06): These should be *Rust Enums* to limit their possible range of values.
|
||||
pub model_category: &'a str,
|
||||
pub model_type: &'a str,
|
||||
pub model_version: u64,
|
||||
@@ -45,11 +47,6 @@ pub async fn create_voice(args: CreateVoiceArgs<'_>) -> AnyhowResult<ZsVoiceToke
|
||||
|
||||
maybe_creator_synthetic_id = Some(next_zs_dataset_synthetic_id);
|
||||
}
|
||||
// TODO(bt,2023-10-06): These should be parameters, and moreover they should be *enums*
|
||||
// to limit their possible values.
|
||||
const MODEL_CATEGORY : &str = "vc";
|
||||
const MODEL_TYPE : &str = "vall-e-x";
|
||||
const ENCODING_TYPE : &str = "encodec";
|
||||
|
||||
let query_result = sqlx::query!(
|
||||
r#"
|
||||
@@ -69,9 +66,9 @@ pub async fn create_voice(args: CreateVoiceArgs<'_>) -> AnyhowResult<ZsVoiceToke
|
||||
"#,
|
||||
voice_token.as_str(),
|
||||
args.dataset_token,
|
||||
MODEL_CATEGORY,
|
||||
MODEL_TYPE,
|
||||
ENCODING_TYPE,
|
||||
args.model_category,
|
||||
args.model_type,
|
||||
args.model_encoding_type,
|
||||
args.voice_title,
|
||||
args.bucket_hash,
|
||||
args.maybe_creator_user_token,
|
||||
|
||||
Reference in new issue
Block a user