Compare commits

...
Author SHA1 Message Date
Brandon Thomas 4b29f96b90 wip 2024-09-18 12:37:49 -04:00
Brandon Thomas fb7cddbac7 testing 2024-09-18 03:04:02 -04:00
Brandon Thomas 0192c8edc8 test compilation in tokens package too 2024-09-18 02:17:24 -04:00
Brandon Thomas 6444bb07b0 remove old versions of sqlx-core, sqlx-mysql 2024-09-18 02:13:08 -04:00
Brandon Thomas 57850eeb41 simple test to make iterating faster 2024-09-18 02:03:08 -04:00
Brandon Thomas ffc1aacff9 fix tokens and enums crates, mysql_queries etc. are broken 2024-09-17 22:51:22 -04:00
Brandon Thomas 9c2e0f998d upgrade sqlx wip 2024-09-17 22:43:52 -04:00
Brandon Thomas c956ea1239 need to upgrade sqlx to enable slow connection logging 2024-09-17 13:43:33 -04:00
Brandon Thomas bc5cd46633 analysis on media files 2024-09-17 13:13:07 -04:00
Brandon Thomas f3be7bf0f4 more username formats 2024-09-16 20:37:50 -04:00
Brandon Thomas 3a3f1aef14 random username function (for later) 2024-09-16 20:27:11 -04:00
Brandon Thomas ec4fc294a9 Random username, needs work 2024-09-16 19:46:41 -04:00
Brandon Thomas 05df706251 aggressively log list featured media files 2024-09-16 14:10:37 -04:00
Brandon Thomas 0db061455a report cloudflare ray id / trace id 2024-09-16 13:11:42 -04:00
Brandon Thomas b2015685f7 iterate over files with comments 2024-09-16 03:30:53 -04:00
Brandon Thomas 5bff23f479 add media links to all job endpoints 2024-09-16 02:33:33 -04:00
Brandon Thomas c5494afef7 remove suboptimal words we won't want to use as username atoms 2024-09-16 02:13:15 -04:00
Brandon Thomas d74f902965 sort username atom lists 2024-09-16 00:23:52 -04:00
Brandon Thomas 9214b8ffa5 add files for random username atoms 2024-09-16 00:22:22 -04:00
Brandon Thomas 1aefd1be11 upload original zip if debug header present 2024-09-15 15:13:48 -04:00
Brandon Thomas dd954d7ef0 add more logging to studio_shot 2024-09-15 15:03:10 -04:00
Brandon Thomas a8991a1a24 write AVT cookie from new app state endpoint 2024-09-15 13:39:05 -04:00
Brandon Thomas d4f4648dc2 w2l analysis, remove garbage from email-sender-job 2024-09-13 07:01:50 -04:00
Brandon Thomas 63143121f6 add lipsync details to jobs endpoints 2024-09-12 14:18:51 -04:00
Brandon Thomas c2f7cd8ca5 fix docs 2024-09-11 21:00:04 -04:00
Brandon Thomas b8870f6cdf form validations 2024-09-11 20:56:01 -04:00
Brandon Thomas 6ad695bfe9 video upload: resample frame rate + trim (WIP) 2024-09-11 20:37:07 -04:00
Brandon Thomas 166d5aab3b doc endpoint 2024-09-11 00:00:01 -04:00
Brandon Thomas d04bffdb84 cleanup new monolithic endpoint 2024-09-10 23:49:43 -04:00
Brandon Thomas 89ff405318 reshape app state endpoint 2024-09-10 23:13:51 -04:00
Brandon Thomas 87f70d507f include premium account info in the endpoint 2024-09-10 18:35:04 -04:00
Brandon Thomas 9dfaf44ac9 doc comment 2024-09-10 18:15:51 -04:00
Brandon Thomas ba003aded1 new monolithic app status endpoint (WIP) to reduce frontend issues 2024-09-10 17:59:45 -04:00
Brandon Thomas a3e12de516 misc: analytics query, don't overwrite updated at, etc. 2024-09-10 16:02:08 -04:00
Brandon Thomas 77359f1bd4 update product categories 2024-09-09 20:00:49 -04:00
Brandon Thomas 4dbf2b3b45 rename product categories so they sort and group better for analysis 2024-09-09 16:17:30 -04:00
Brandon Thomas 60117ad8dc analytics query 2024-09-09 15:45:47 -04:00
Brandon Thomas 4500b2ebfc fix face fusion video titles 2024-09-08 23:28:24 -04:00
Brandon Thomas 716abbe553 change estimate again 2024-09-08 22:23:43 -04:00
Brandon Thomas a57244a4be fix query nullability, codegen 2024-09-08 22:04:13 -04:00
Brandon Thomas 021ca222ae lipsync usage, better estimate for lipsync jobs 2024-09-08 21:50:33 -04:00
Brandon Thomas a330a18e54 analysis of usage 2024-09-08 19:22:48 -04:00
Kasisnu 1a06cdbf6b hotfix: modelweights search query 2024-09-08 20:26:16 +05:30
Brandon Thomas fd5384431e codegen db 2024-09-08 02:34:22 -04:00
Brandon Thomas 5c6abb59d4 add model use counts to all endpoints 2024-09-08 02:29:54 -04:00
Brandon Thomas f95759cd24 write cached model usage counts to elasticsearch 2024-09-07 15:03:40 -04:00
Brandon Thomas 5218cbadec update log lines 2024-09-07 14:28:09 -04:00
Brandon Thomas 7df5dc63ce codegen db 2024-09-07 03:04:36 -04:00
Brandon Thomas 0cee5e5fcc update cached model usage counts 2024-09-07 03:01:23 -04:00
Brandon Thomas bc67dcf878 don't re-establish connection if we already have one 2024-09-07 00:33:05 -04:00
Brandon Thomas 7b5ced8302 update analytics job to skip rewriting model_usage_counts 2024-09-07 00:19:41 -04:00
Brandon Thomas d3ebc80cbf analytics job now updates model_weight_usage_counts 2024-09-06 23:11:50 -04:00
Brandon Thomas aa30e1bf57 tokio sleep 2024-09-06 22:33:32 -04:00
Brandon Thomas 5a25995be5 refactor job so we can use multiple threads 2024-09-06 22:29:32 -04:00
Brandon Thomas 091429b727 start to refactor analytics-job 2024-09-06 22:08:29 -04:00
Brandon Thomas e1e93b9109 notes 2024-09-06 22:03:42 -04:00
Brandon Thomas fe32f985e3 migrations: not in aws, cached usage count 2024-09-06 00:26:07 -04:00
Brandon Thomas 171958ba1e fix scoping by product category 2024-09-05 21:23:43 -04:00
Brandon Thomas 3793da5bf8 document 2024-09-05 21:11:19 -04:00
Brandon Thomas 14ee33649b update docs 2024-09-05 21:01:36 -04:00
Brandon Thomas 6e1a597fd4 add media_links to cover images 2024-09-05 20:55:32 -04:00
Brandon Thomas 382a2105cf media_links in media files APIs (except cover images) 2024-09-05 20:44:16 -04:00
Brandon Thomas 483652f1da fully tested media links 2024-09-05 20:16:15 -04:00
Brandon Thomas e4d807ac6a media links (wip) 2024-09-05 20:07:11 -04:00
Brandon Thomas 0663fd77d1 fix inference category for face fusion 2024-09-05 12:41:18 -04:00
Brandon Thomas 292ff5d970 new media links for migration (wip) 2024-09-05 12:41:18 -04:00
Kasisnu 14f63c5f7d lipsync: make minor tweaks to match params 2024-09-05 16:54:22 +05:30
Brandon Thomas 20aac52cb7 fix job dispatch 2024-09-05 01:07:15 -04:00
Brandon Thomas 0dbc056546 auto-configure jobs with job type 2024-09-05 00:55:27 -04:00
Brandon Thomas c65bcef4c0 fix rvc job config 2024-09-05 00:48:05 -04:00
Brandon Thomas 676b7e9cc0 new RVC dispatching 2024-09-04 23:54:52 -04:00
Brandon Thomas b6a0c70058 refactor module 2024-09-04 21:51:51 -04:00
Brandon Thomas d2169f7221 don't process comfy workflow upload jobs! 2024-09-04 21:39:23 -04:00
Brandon Thomas 27e30fd17a webcam param on live portrait 2024-09-04 20:30:35 -04:00
Brandon Thomas 5b91a1396a refactor, codegen db 2024-09-03 23:36:57 -04:00
Brandon Thomas 8e326ac101 calculate legacy tts usages 2024-09-03 19:19:08 -04:00
Brandon Thomas 4815fce4be query logging 2024-09-03 00:27:34 -04:00
Brandon Thomas 5599ce2383 fix backfill query, improve logging 2024-09-03 00:25:14 -04:00
Brandon Thomas 06f80c794c much more efficient backfill 2024-09-02 23:36:22 -04:00
Brandon Thomas 8c7a666129 http docs for face fusion enqueue 2024-09-02 22:36:07 -04:00
Brandon Thomas 4b681f68b6 endpoint to enqueue face fusion 2024-09-02 22:28:58 -04:00
Brandon Thomas 11bbeefe1b fix storyteller web with face fusion enums 2024-09-02 22:14:21 -04:00
Brandon Thomas 4631b2b6d2 face fusion jobs (largely copy pasted from live portrait) 2024-09-02 22:03:36 -04:00
Brandon Thomas 5ee766d4e1 codegen db, misc 2024-09-02 20:25:08 -04:00
Brandon Thomas 65028539c6 fix multithreading 2024-09-02 02:34:22 -04:00
Brandon Thomas c27a505ab3 multithreaded 2024-09-02 02:23:22 -04:00
Brandon Thomas 1b82c4bc61 log progress 2024-09-02 02:01:43 -04:00
Brandon Thomas 59a0780e94 add retry logic 2024-09-02 01:54:00 -04:00
Brandon Thomas 9e0b19155d don't continue to pull connections from the pool 2024-09-02 01:38:04 -04:00
Brandon Thomas 447fcc7a65 query all models on all dates 2024-09-02 01:03:54 -04:00
Brandon Thomas cf11948462 walk all tokens for backfilling 2024-09-02 00:21:36 -04:00
Brandon Thomas 3045d1a848 insert records into new table 2024-09-01 20:42:59 -04:00
Brandon Thomas 281a0454c1 correct calculations 2024-09-01 20:33:08 -04:00
Brandon Thomas 41cd1576fd get count of usages while supporting old token formats 2024-09-01 20:24:10 -04:00
Brandon Thomas 8b8b739b3a backfill cli wip 2024-09-01 19:12:26 -04:00
Brandon Thomas 95ca2b53e7 new model stats table, results of long-running query 2024-09-01 17:19:39 -04:00
Brandon Thomas 045a4a9996 union all tts models query 2024-09-01 01:50:02 -04:00
Brandon Thomas 52f3024767 more analysis 2024-09-01 00:46:02 -04:00
Brandon Thomas 58a69e280a more analysis 2024-08-31 20:54:25 -04:00
Brandon Thomas 2e88c56a04 more top user analysis 2024-08-31 20:07:55 -04:00
Brandon Thomas 736f4a24b1 useful analytics queries 2024-08-31 19:16:04 -04:00
Brandon Thomas 83d5ae9e13 working on correctly attributing product categories 2024-08-31 02:45:16 -04:00
Brandon Thomas 0bc48d413f categorize studio jobs 2024-08-31 01:00:34 -04:00
Brandon Thomas 917053e9f8 stable diffusion jobs coming through? more analysis... 2024-08-31 00:53:51 -04:00
Brandon Thomas bdbedc56ed cors for video board 2024-08-30 15:51:54 -04:00
Brandon Thomas 40a13182f7 analytics queries (wip) 2024-08-30 04:09:27 -04:00
Brandon Thomas 08a6a1516c track model downloads too 2024-08-30 01:19:30 -04:00
Brandon Thomas 52c348be83 start tracking inference job product category for easier analytics 2024-08-30 01:09:41 -04:00
Brandon Thomas 4cb8226117 enum for job product category 2024-08-30 00:35:20 -04:00
Brandon Thomas 65f0718fb2 filter featured media by product category 2024-08-29 01:06:34 -04:00
Brandon Thomas 6a30d0c0d2 correct docs - there is an index on this column 2024-08-28 23:59:46 -04:00
Brandon Thomas b43c54123f migration for jobs storage flag 2024-08-28 22:11:26 -04:00
Brandon Thomas 4714e5cbee Four new migrations to run 2024-08-28 22:05:05 -04:00
Brandon Thomas 2c3d1fa26a docs on endpoint 2024-08-28 18:08:52 -04:00
Brandon Thomas 748e8a6d3e INSECURE HACK TO BYPASS CORS UGH 2024-08-28 18:06:13 -04:00
Brandon Thomas b7091b8b07 heuristic for frame type 2024-08-28 01:50:21 -04:00
Brandon Thomas d2bb9d538d query to update uploaded files 2024-08-28 01:25:28 -04:00
Brandon Thomas 90e54650bc update documentation 2024-08-27 19:42:13 -04:00
Brandon Thomas edf204711b set is_user_upload flag in more places 2024-08-27 19:25:26 -04:00
Brandon Thomas 59c0f2246a write media_files.is_user_upload from handlers 2024-08-27 19:06:41 -04:00
Brandon Thomas f8a092c21c codegen db, fix build errors 2024-08-27 18:46:54 -04:00
Brandon Thomas b32f14a19c remove upload flag from API for listing featured media files 2024-08-27 18:32:38 -04:00
Brandon Thomas d810760641 add is_user_upload + system_file bools to list media file endpoints 2024-08-27 18:28:27 -04:00
Brandon Thomas 63a4285830 don't return raw http responses 2024-08-27 17:39:19 -04:00
Brandon Thomas 56ac11801d new bool fields in es-update-job and media file search endpoints 2024-08-27 17:15:03 -04:00
Brandon Thomas 73d57b3a1f is_user_upload, is_system... fields in media file GET endpoints 2024-08-27 17:03:39 -04:00
Brandon Thomas 57f9e6708d add url slug + migration token to legacy TTS so we can canonicalize 2024-08-27 16:42:13 -04:00
Brandon Thomas bc21102c20 Add databox analytics queries 2024-08-27 16:14:31 -04:00
Brandon Thomas 7178843565 fix vocoder query 2024-08-27 01:12:56 -04:00
Brandon Thomas 04c5c6c294 package upgrades 2024-08-27 00:54:38 -04:00
Brandon Thomas 5debd5f1da codegen db 2024-08-27 00:46:21 -04:00
Brandon Thomas bd4ce9fd50 make sure we can still query for old models by token 2024-08-27 00:44:52 -04:00
Brandon Thomas 7a03631743 add url slug to model weights endpoints 2024-08-26 22:33:59 -04:00
Brandon Thomas 129ff91d9b remove unicode control chars 2024-08-26 21:01:35 -04:00
Brandon Thomas e5a7e2046d more test cases for title cleaning 2024-08-26 20:31:26 -04:00
Brandon Thomas 79a13d043e model title to slug 2024-08-26 16:49:17 -04:00
Brandon Thomas f49e080e34 codegen db 2024-08-25 22:05:37 -04:00
Brandon Thomas 518fe20bcd more cleanup 2024-08-25 22:04:08 -04:00
Brandon Thomas 7be3e6d4bc kill container_common crate 2024-08-25 21:45:41 -04:00
Brandon Thomas a5f435ae71 kill off dead result type 2024-08-25 21:18:42 -04:00
Brandon Thomas 6f0a97e362 write is_intermediate_system_file flag 2024-08-25 19:32:53 -04:00
Brandon Thomas bede3246e9 store scene token in engine render record 2024-08-25 19:21:20 -04:00
Brandon Thomas 0d2580f481 share code for generic media file insert 2024-08-25 19:02:17 -04:00
Brandon Thomas 8a8fae1380 codegen db 2024-08-25 18:02:02 -04:00
Brandon Thomas 35904deb0a refactor media file insert queries 2024-08-25 18:00:28 -04:00
Brandon Thomas 949f57a82a document new endpoint 2024-08-25 14:13:42 -04:00
Brandon Thomas f50934bdcc accept fps and scene source arguments (not saved to db yet) 2024-08-25 14:10:21 -04:00
Brandon Thomas 1b64903283 refactor insert query 2024-08-25 12:52:06 -04:00
Brandon Thomas 46447448fc studio zipped shots - ffmpg + upload work 2024-08-25 12:26:22 -04:00
Brandon Thomas ba369dab95 studio shot handler WIP - handle zip archives 2024-08-25 11:32:35 -04:00
Brandon Thomas 3121eb75ac refactor user session functions module 2024-08-23 20:50:23 -04:00
Brandon Thomas 7a45f57588 re-sort deprecated endpoint docs 2024-08-23 20:46:56 -04:00
Brandon Thomas 65fce3fb9c use Json<T> for upload endpoints 2024-08-23 20:44:22 -04:00
Brandon Thomas 983846dbc4 tag media file upload routes together 2024-08-23 20:30:28 -04:00
Brandon Thomas 5cb1e789da Add two new columns to media_files: watermark, upload 2024-08-23 02:35:27 -04:00
Brandon Thomas 007882edd6 document the new indices 2024-08-23 00:30:57 -04:00
Brandon Thomas 8b9526d13d document insert statements 2024-08-22 23:28:43 -04:00
Brandon Thomas 14c4935355 migrations to add indices (already run in prod!) 2024-08-22 23:20:54 -04:00
Brandon Thomas 532a33ef65 no longer prevent 'test' from being used in usernames 2024-08-22 23:07:53 -04:00
Brandon Thomas b5ae9fce14 make bare metal live portrait script more general 2024-08-21 21:58:52 -04:00
Brandon Thomas 1223ae8c0d script to launch live portrait on local dev bare metal 2024-08-21 21:53:08 -04:00
Brandon Thomas 9aa21aa757 rename functions one final time to be more ergonomic 2024-08-21 17:09:15 -04:00
Brandon Thomas 4c01430de2 delete lists of "possible" files 2024-08-21 17:01:27 -04:00
Brandon Thomas becc3e2c8f shared function to delete all files 2024-08-21 16:33:08 -04:00
Brandon Thomas e2c78c7054 rename file deletion functions for more general use 2024-08-21 16:16:30 -04:00
Brandon Thomas 1b9a735756 refactor file deletion module 2024-08-21 16:04:42 -04:00
Brandon Thomas 15a783d508 safe delete on failures 2024-08-20 20:52:48 -04:00
Brandon Thomas f1971e1063 configure all watermark parameters 2024-08-19 21:28:32 -04:00
Brandon Thomas 15b89cc7d8 bucket URLs for model weight cover images 2024-08-19 18:35:42 -04:00
Brandon Thomas d2de0db63f bucket URLs for all media file endpoints 2024-08-19 18:04:57 -04:00
Brandon Thomas 22785aa78b strongly typed URL 2024-08-19 16:39:25 -04:00
Brandon Thomas 9d09b6c21e report final URL to frontend for media files (WIP) 2024-08-19 03:22:22 -04:00
Brandon Thomas 7c6356b701 hostname detection not working with URI - use host header 2024-08-18 03:46:49 -04:00
Brandon Thomas f08d239445 log branding decision 2024-08-18 03:19:34 -04:00
Brandon Thomas 3ceefd7fa7 add watermark to live portrait 2024-08-18 03:13:59 -04:00
Brandon Thomas 55a64c7e3c Script for running live portrait on bare metal (ick) 2024-08-18 03:13:26 -04:00
Brandon Thomas 3cd74a5d9c watermark type on studio job 2024-08-17 09:58:26 -04:00
Brandon Thomas 393ef4ff27 live portrait metadata in media files batch get endpoint 2024-08-16 22:41:36 -04:00
Brandon Thomas 98b999121a add response data for live portrait, if encoded in the db 2024-08-16 22:34:40 -04:00
Brandon Thomas 4204e167ba codegen db, include live portrait tokens in media file 2024-08-16 20:50:55 -04:00
Brandon Thomas 2b100f2aaa replace old SD json metadata with new polymorphic enum struct 2024-08-16 20:40:56 -04:00
Brandon Thomas 6fda5cc12c inner payload for media files 2024-08-16 20:05:02 -04:00
Kasisnu 2a4a693466 temp inference category for LP so Bombay is unblocked 2024-08-16 14:44:08 +05:30
Brandon Thomas 6346eb3f96 refactor inference args module 2024-08-16 02:07:49 -04:00
Brandon Thomas bf679d4e33 don't call ffprobe twice 2024-08-16 01:46:19 -04:00
Brandon Thomas ef256a1dd9 codegen db 2024-08-16 00:59:58 -04:00
Brandon Thomas 2914c2574e clean up live portrait record insert metadata, add title 2024-08-16 00:54:21 -04:00
Brandon Thomas b7fccc7c7c Implement TTL Sieve to replace permanently stuck Sieve 2024-08-15 23:34:07 -04:00
Brandon Thomas 53bbcee54d don't doubly decode polymorphic args for each job detail 2024-08-15 22:56:01 -04:00
Brandon Thomas 64c990b66e add live portrait details to the other two job status endpoints 2024-08-15 22:37:47 -04:00
Brandon Thomas 029394ebd0 add live portrait metadata to session jobs 2024-08-15 22:31:54 -04:00
Brandon Thomas da6bbbe745 refactor inference job module 2024-08-15 21:20:44 -04:00
Brandon Thomas 6e8cdefe5c HTTP GET version of model weight search 2024-08-13 23:10:06 -04:00
Brandon Thomas cdea155523 refactor weights handlers module 2024-08-13 22:47:41 -04:00
Brandon Thomas 7a85207745 better visibility into failing to load env config files 2024-08-11 20:38:15 -04:00
Kasisnu 0e517845bb live portrait: pass stdout/err correctly 2024-08-09 17:00:12 +05:30
Kasisnu 9208f4cad5 stream and write stdout/err logs for comfy runs 2024-08-09 16:14:53 +05:30
Brandon Thomas 9a8f0e9780 more test cases for ffprobe 2024-08-09 02:15:09 -04:00
Brandon Thomas e6e6b523fc doc 2024-08-09 01:56:20 -04:00
Brandon Thomas 268c7cd8a1 move db error classification to From<> 2024-08-09 01:54:41 -04:00
Brandon Thomas d701f0a437 report 400s instead of 500s on duplicate idempotency tokens 2024-08-09 01:48:31 -04:00
Brandon Thomas 61033712c8 cleanup 2024-08-09 00:16:15 -04:00
Brandon Thomas cf42710ade use ffprobe to decode video info 2024-08-09 00:13:17 -04:00
Brandon Thomas 948db59d84 remove binaries from build 2024-08-08 23:11:11 -04:00
Brandon Thomas d909a7e0c6 update cpu build container to include ffmpeg and better cache stages 2024-08-08 22:52:54 -04:00
Brandon Thomas 6790133f96 revert some changes to media libs (don't include symphonia) 2024-08-08 22:52:37 -04:00
Brandon Thomas 61ef340e27 debug video 2024-08-08 22:24:21 -04:00
Brandon Thomas 4a914f8829 debug uploaded video 2024-08-08 22:06:11 -04:00
Brandon Thomas 9cb340b194 debug video error 2024-08-08 21:26:04 -04:00
Brandon Thomas bda8cb5e10 emit ffprobe on video upload 2024-08-08 20:31:35 -04:00
Brandon Thomas 6d4adfe60f cleanup analytics queries 2024-08-08 17:44:39 -04:00
Brandon Thomas b3be085994 safer migration for model weights elasticsearch 2024-08-08 17:22:46 -04:00
Brandon Thomas 6b0ebe666e codegen db 2024-08-08 16:44:40 -04:00
Brandon Thomas 72fb4c77e9 update featured bool for model search 2024-08-08 16:36:05 -04:00
Brandon Thomas a70b94d7cb add "is_featured" to get weight 2024-08-08 16:20:42 -04:00
Brandon Thomas 897034657d scoping types and categories for list featured weights 2024-08-08 14:08:38 -04:00
Brandon Thomas 31d40907fd handle justin downloads 2024-08-07 20:45:14 -04:00
Brandon Thomas 8c3ae9c72c truncate seconds passed from frontend 2024-08-07 19:50:23 -04:00
Brandon Thomas 2ee6822bac truncate audio 2024-08-07 19:17:44 -04:00
Brandon Thomas 7f95c86e31 decode audio info for gptsovits 2024-08-07 18:48:00 -04:00
Brandon Thomas f570672272 codegen db 2024-08-07 18:35:18 -04:00
Brandon Thomas 753f61cbce insert gptsovits records with correct metadata 2024-08-07 18:33:41 -04:00
Brandon Thomas 68a581e4b9 move/organize ffmpeg common commands 2024-08-07 17:30:04 -04:00
Brandon Thomas a73a0638a0 heuristic gptsovits file extraction 2024-08-07 16:16:39 -04:00
Brandon Thomas d8db78bf7f tests for gptsovits archives 2024-08-07 01:57:06 -04:00
Brandon Thomas b2a9cdc830 fix gptsovits output file pathing 2024-08-06 21:41:43 -04:00
Brandon Thomas c803be4ed4 provide reference language 2024-08-06 20:23:35 -04:00
Brandon Thomas 9d3984e071 log errors when gptsovits fails 2024-08-06 19:23:03 -04:00
Brandon Thomas d276748ebe enqueue GPTsovits models for download 2024-08-06 15:43:54 -04:00
Brandon Thomas b45c83ff1e missing env configs cause local dev startup failures 2024-08-06 13:12:49 -04:00
Brandon Thomas 1a22f81f7f handle reference audio + transcript not existing 2024-08-06 13:04:12 -04:00
Kasisnu 9d03cd71a8 some fixes 2024-08-06 21:20:46 +05:30
Kasisnu e5ae0a9a83 hmm: fast previews, large patches :// 2024-08-06 21:20:46 +05:30
Kasisnu f731bce142 funky dev setup 2024-08-06 21:20:46 +05:30
Brandon Thomas 72a18875ea upload reference transcript file 2024-08-04 23:59:03 -04:00
Brandon Thomas 4fda4cdda5 record file size 2024-08-04 23:45:23 -04:00
Brandon Thomas a2969215b9 share env var copying code 2024-08-03 11:19:59 -04:00
Brandon Thomas be8822dce4 fix errors, codegen db 2024-08-01 21:20:39 -04:00
Brandon Thomas 617f500039 fix model weight search 2024-08-01 21:01:23 -04:00
Brandon Thomas 62f7279870 update recent model weights records 2024-08-01 20:03:00 -04:00
dependabot[bot] d2e9140b50 Bump quick-xml from 0.35.0 to 0.36.1 (#362)
Bumps [quick-xml](https://github.com/tafia/quick-xml) from 0.35.0 to
0.36.1.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/tafia/quick-xml/releases">quick-xml's
releases</a>.</em></p>
<blockquote>
<h2>v0.36.1 - Read binary from XML</h2>
<h2>What's Changed</h2>
<h3>New Features</h3>
<ul>
<li><a
href="https://redirect.github.com/tafia/quick-xml/issues/623">#623</a>:
Added <code>Reader::stream()</code> that can be used to read arbitrary
data from the inner reader while track position for XML reader.</li>
</ul>
<p><a
href="https://redirect.github.com/tafia/quick-xml/issues/623">#623</a>:
<a
href="https://redirect.github.com/tafia/quick-xml/issues/623">tafia/quick-xml#623</a></p>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/tafia/quick-xml/compare/v0.36.0...v0.36.1">https://github.com/tafia/quick-xml/compare/v0.36.0...v0.36.1</a></p>
<h2>v0.36.0 - Compatibility with Adobe Flash</h2>
<h2>What's Changed</h2>
<h3>Bug Fixes</h3>
<ul>
<li><a
href="https://redirect.github.com/tafia/quick-xml/issues/781">#781</a>:
Fix conditions to start CDATA section. Only uppercase
<code>&lt;![CDATA[</code> can start it.
Previously any case was allowed.</li>
<li><a
href="https://redirect.github.com/tafia/quick-xml/issues/780">#780</a>:
Fixed incorrect <code>.error_position()</code> when encountering syntax
error for open or self-closed tag.</li>
</ul>
<h3>Misc Changes</h3>
<ul>
<li><a
href="https://redirect.github.com/tafia/quick-xml/issues/780">#780</a>:
<code>reader::Parser</code>, <code>reader::ElementParser</code> and
<code>reader::PiParser</code> moved to the new module
<code>parser</code>.</li>
<li><a
href="https://redirect.github.com/tafia/quick-xml/issues/776">#776</a>:
Allow to have attributes in the end tag for compatibility reasons with
Adobe Flash XML parser.</li>
</ul>
<p><a
href="https://redirect.github.com/tafia/quick-xml/issues/776">#776</a>:
<a
href="https://redirect.github.com/tafia/quick-xml/issues/776">tafia/quick-xml#776</a>
<a
href="https://redirect.github.com/tafia/quick-xml/issues/780">#780</a>:
<a
href="https://redirect.github.com/tafia/quick-xml/pull/780">tafia/quick-xml#780</a>
<a
href="https://redirect.github.com/tafia/quick-xml/issues/781">#781</a>:
<a
href="https://redirect.github.com/tafia/quick-xml/pull/781">tafia/quick-xml#781</a></p>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/tafia/quick-xml/compare/v0.35.0...v0.36.0">https://github.com/tafia/quick-xml/compare/v0.35.0...v0.36.0</a></p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/tafia/quick-xml/blob/master/Changelog.md">quick-xml's
changelog</a>.</em></p>
<blockquote>
<h2>0.36.1 -- 2024-07-23</h2>
<h3>New Features</h3>
<ul>
<li><a
href="https://redirect.github.com/tafia/quick-xml/issues/623">#623</a>:
Added <code>Reader::stream()</code> that can be used to read arbitrary
data
from the inner reader while track position for XML reader.</li>
</ul>
<p><a
href="https://redirect.github.com/tafia/quick-xml/issues/623">#623</a>:
<a
href="https://redirect.github.com/tafia/quick-xml/issues/623">tafia/quick-xml#623</a></p>
<h2>0.36.0 -- 2024-07-08</h2>
<h3>Bug Fixes</h3>
<ul>
<li><a
href="https://redirect.github.com/tafia/quick-xml/issues/781">#781</a>:
Fix conditions to start CDATA section. Only uppercase
<code>&lt;![CDATA[</code> can start it.
Previously any case was allowed.</li>
<li><a
href="https://redirect.github.com/tafia/quick-xml/issues/780">#780</a>:
Fixed incorrect <code>.error_position()</code> when encountering syntax
error for open or self-closed tag.</li>
</ul>
<h3>Misc Changes</h3>
<ul>
<li><a
href="https://redirect.github.com/tafia/quick-xml/issues/780">#780</a>:
<code>reader::Parser</code>, <code>reader::ElementParser</code> and
<code>reader::PiParser</code> moved to the new module
<code>parser</code>.</li>
<li><a
href="https://redirect.github.com/tafia/quick-xml/issues/776">#776</a>:
Allow to have attributes in the end tag for compatibility reasons with
Adobe Flash XML parser.</li>
</ul>
<p><a
href="https://redirect.github.com/tafia/quick-xml/issues/776">#776</a>:
<a
href="https://redirect.github.com/tafia/quick-xml/issues/776">tafia/quick-xml#776</a>
<a
href="https://redirect.github.com/tafia/quick-xml/issues/780">#780</a>:
<a
href="https://redirect.github.com/tafia/quick-xml/pull/780">tafia/quick-xml#780</a>
<a
href="https://redirect.github.com/tafia/quick-xml/issues/781">#781</a>:
<a
href="https://redirect.github.com/tafia/quick-xml/pull/781">tafia/quick-xml#781</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/tafia/quick-xml/commit/2f3824a1d265ac0b683aa485683ad00ddbc5c092"><code>2f3824a</code></a>
Release 0.36.1</li>
<li><a
href="https://github.com/tafia/quick-xml/commit/21360fe4026d0058e7640f8c9b4afd9dc6eb4d28"><code>21360fe</code></a>
Merge pull request <a
href="https://redirect.github.com/tafia/quick-xml/issues/783">#783</a>
from Mingun/binary-stream</li>
<li><a
href="https://github.com/tafia/quick-xml/commit/b1126631f887aed92967654b6a1cc36b63a6ac7d"><code>b112663</code></a>
Implement ability to read data directly from the underlying reader</li>
<li><a
href="https://github.com/tafia/quick-xml/commit/10ddcb7e943351fa72dda30ffd51db40463663e8"><code>10ddcb7</code></a>
Release 0.36.0</li>
<li><a
href="https://github.com/tafia/quick-xml/commit/959eb55e2d049a2094c3a48b54312b765fa0b2bc"><code>959eb55</code></a>
Merge pull request <a
href="https://redirect.github.com/tafia/quick-xml/issues/780">#780</a>
from Mingun/end-attributes</li>
<li><a
href="https://github.com/tafia/quick-xml/commit/6a48a28f4cc182112d9005f66f8ab4336ace3293"><code>6a48a28</code></a>
Allow to have attributes in closing tags (compatibility with the Adobe
Flash ...</li>
<li><a
href="https://github.com/tafia/quick-xml/commit/45e8be4eab0fb91a532d59cb017a039a74ab6262"><code>45e8be4</code></a>
Use <code>.error_position()</code> instead of
<code>.buffer_position()</code> in examples where err...</li>
<li><a
href="https://github.com/tafia/quick-xml/commit/df65be07e401d759ed9e8faf211bc20f7e8fbf53"><code>df65be0</code></a>
Fix incorrect <code>.error_position()</code> when encountering syntax
error for open or ...</li>
<li><a
href="https://github.com/tafia/quick-xml/commit/ecc7ef37629b77db48260738ddb73def97ad8344"><code>ecc7ef3</code></a>
Actually check that .error_position() is correct</li>
<li><a
href="https://github.com/tafia/quick-xml/commit/d387ed7416af516034b1952375ac01ee7a0a513a"><code>d387ed7</code></a>
Move <code>Parser</code>, <code>ElementParser</code> and
<code>PiParser</code> to the new module <code>parser</code>.</li>
<li>Additional commits viewable in <a
href="https://github.com/tafia/quick-xml/compare/v0.35.0...v0.36.1">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=quick-xml&package-manager=cargo&previous-version=0.35.0&new-version=0.36.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-08-01 18:08:09 -04:00
Brandon Thomas 7f856321a7 update es-update-job to include db read time 2024-08-01 17:55:32 -04:00
Brandon Thomas f807239a44 retain all tts job results 2024-08-01 15:05:06 -04:00
Brandon Thomas b6279776af queries 2024-07-30 13:54:29 -04:00
Brandon Thomas 844554f2e7 restore old URL 2024-07-27 00:39:17 -04:00
Brandon Thomas e87baf2d7f fix missing enum variant 2024-07-26 23:23:28 -04:00
dependabot[bot] 89c8f354e6 Bump zerovec-derive from 0.10.2 to 0.10.3 (#356)
Bumps [zerovec-derive](https://github.com/unicode-org/icu4x) from 0.10.2
to 0.10.3.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/unicode-org/icu4x/blob/main/CHANGELOG.md">zerovec-derive's
changelog</a>.</em></p>
<blockquote>
<h1>Changelog</h1>
<h2>icu4x 1.5.x</h2>
<ul>
<li><code>icu_calendar</code>
<ul>
<li>(1.5.1) Fix Japanese calendar Gregorian era year 0 (<a
href="https://redirect.github.com/unicode-org/icu4x/issues/4968">unicode-org/icu4x#4968</a>)</li>
<li>(1.5.2) Enforce C,packed, not just packed, on ULE types, fixing for
incoming changes to <code>repr(Rust)</code> (<a
href="https://redirect.github.com/unicode-org/icu4x/pull/5049">unicode-org/icu4x#5049</a>)</li>
</ul>
</li>
<li><code>icu_datetime</code>
<ul>
<li>(1.5.1) Fix incorrect assertion in week-of-year formatting (<a
href="https://redirect.github.com/unicode-org/icu4x/issues/4977">unicode-org/icu4x#4977</a>)</li>
</ul>
</li>
<li><code>icu_casemap</code>
<ul>
<li>(1.5.1) Enforce C,packed, not just packed, on ULE types, fixing for
incoming changes to <code>repr(Rust)</code> (<a
href="https://redirect.github.com/unicode-org/icu4x/pull/5049">unicode-org/icu4x#5049</a>)</li>
</ul>
</li>
<li><code>icu_capi</code>
<ul>
<li>(1.5.1) Fix situations in which <code>libc_alloc</code> is specified
as a dependency (<a
href="https://redirect.github.com/unicode-org/icu4x/pull/5119">unicode-org/icu4x#5119</a>)</li>
</ul>
</li>
<li><code>icu_properties</code>
<ul>
<li>(1.5.1) Enforce C,packed, not just packed, on ULE types, fixing for
incoming changes to <code>repr(Rust)</code> (<a
href="https://redirect.github.com/unicode-org/icu4x/pull/5049">unicode-org/icu4x#5049</a>)</li>
</ul>
</li>
<li><code>zerovec</code>
<ul>
<li>(0.10.3) Fix size regression by making <code>twox-hash</code> dep
<code>no_std</code> (<a
href="https://redirect.github.com/unicode-org/icu4x/pull/5007">unicode-org/icu4x#5007</a>)</li>
<li>(0.10.3) Enforce C,packed, not just packed, on ULE types, fixing for
incoming changes to <code>repr(Rust)</code> (<a
href="https://redirect.github.com/unicode-org/icu4x/pull/5049">unicode-org/icu4x#5049</a>)</li>
<li>(0.10.4) Enforce C,packed on OptionVarULE (<a
href="https://redirect.github.com/unicode-org/icu4x/pull/5143">unicode-org/icu4x#5143</a>)</li>
</ul>
</li>
<li><code>zerovec_derive</code>
<ul>
<li>(0.10.3) Enforce C,packed, not just packed, on ULE types, fixing for
incoming changes to <code>repr(Rust)</code> (<a
href="https://redirect.github.com/unicode-org/icu4x/pull/5049">unicode-org/icu4x#5049</a>)</li>
</ul>
</li>
</ul>
<h2>icu4x 1.5 (May 28, 2024)</h2>
<ul>
<li>Components
<ul>
<li>General
<ul>
<li>Compiled data updated to CLDR 45 and ICU 75 (unicode-org#4782)</li>
</ul>
</li>
<li><code>icu_calendar</code>
<ul>
<li>Fix duration offsetting and negative-year bugs in several calendars
including Chinese, Islamic, Coptic, Ethiopian, and Hebrew (<a
href="https://redirect.github.com/unicode-org/icu4x/issues/4904">#4904</a>)</li>
<li>Improved approximation for Persian calendrical calculations (<a
href="https://redirect.github.com/unicode-org/icu4x/issues/4713">unicode-org/icu4x#4713</a>)</li>
<li>Fix weekday calculations in negative ISO years (<a
href="https://redirect.github.com/unicode-org/icu4x/pull/4894">unicode-org/icu4x#4894</a>)</li>
<li>New <code>DateTime::local_unix_epoch()</code> convenience
constructor (<a
href="https://redirect.github.com/unicode-org/icu4x/pull/4479">unicode-org/icu4x#4479</a>)</li>
<li>Add caching for all islamic calendars (<a
href="https://redirect.github.com/unicode-org/icu4x/pull/4785">unicode-org/icu4x#4785</a>)</li>
<li>Add caching for chinese based calendars (<a
href="https://redirect.github.com/unicode-org/icu4x/pull/4411">unicode-org/icu4x#4411</a>,
<a
href="https://redirect.github.com/unicode-org/icu4x/pull/4468">unicode-org/icu4x#4468</a>)</li>
<li>Switch Hebrew to faster keviyah/Four Gates calculations (<a
href="https://redirect.github.com/unicode-org/icu4x/pull/4504">unicode-org/icu4x#4504</a>)</li>
<li>Replace 2820-year with 33-year cycle in Persian calendar, with
override table (<a
href="https://redirect.github.com/unicode-org/icu4x/pull/4770">unicode-org/icu4x#4770</a>,
<a
href="https://redirect.github.com/unicode-org/icu4x/pull/4775">unicode-org/icu4x#4775</a>,
<a
href="https://redirect.github.com/unicode-org/icu4x/pull/4796">unicode-org/icu4x#4796</a>)</li>
<li>Fix bugs in several calendars with new continuity test (<a
href="https://redirect.github.com/unicode-org/icu4x/pull/4904">unicode-org/icu4x#4904</a>)</li>
<li>Fix year 2319 in the Chinese calendar (<a
href="https://redirect.github.com/unicode-org/icu4x/pull/4929">unicode-org/icu4x#4929</a>)</li>
<li>Fix ISO weekday calculations in negative years (<a
href="https://redirect.github.com/unicode-org/icu4x/pull/4894">unicode-org/icu4x#4894</a>)</li>
</ul>
</li>
<li><code>icu_collections</code>
<ul>
<li>Switch from <code>wasmer</code> to <code>wasmi</code> in
<code>icu_codepointtrie_builder</code> (<a
href="https://redirect.github.com/unicode-org/icu4x/pull/4621">unicode-org/icu4x#4621</a>)</li>
</ul>
</li>
<li><code>icu_normalizer</code>
<ul>
<li>Make UTS 46 normalization non-experimental (<a
href="https://redirect.github.com/unicode-org/icu4x/issues/4712">#4712</a>)</li>
</ul>
</li>
<li><code>icu_datetime</code>
<ul>
<li>Experimental &quot;neo&quot; datetime formatter with support for
semantic skeleta and fine-grained data slicing (<a
href="https://redirect.github.com/unicode-org/icu4x/issues/1317">unicode-org/icu4x#1317</a>,
<a
href="https://redirect.github.com/unicode-org/icu4x/issues/3347">unicode-org/icu4x#3347</a>)</li>
<li><code>Writeable</code> and <code>Display</code> implementations now
don't return <code>fmt::Error</code>s that don't originate from the
<code>fmt::Write</code> anymore (<a
href="https://redirect.github.com/unicode-org/icu4x/issues/4732">#4732</a>,
<a
href="https://redirect.github.com/unicode-org/icu4x/issues/4851">#4851</a>,
<a
href="https://redirect.github.com/unicode-org/icu4x/issues/4863">#4863</a>)</li>
<li>Make <code>CldrCalendar</code> trait sealed except with experimental
feature (<a
href="https://redirect.github.com/unicode-org/icu4x/pull/4392">unicode-org/icu4x#4392</a>)</li>
<li><code>FormattedDateTime</code> and
<code>FormattedZonedDateTime</code> now implement <code>Clone</code> and
<code>Copy</code> (<a
href="https://redirect.github.com/unicode-org/icu4x/pull/4476">unicode-org/icu4x#4476</a>)</li>
</ul>
</li>
<li><code>icu_experimental</code></li>
</ul>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/unicode-org/icu4x/commits/ind/zerovec-derive@0.10.3">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=zerovec-derive&package-manager=cargo&previous-version=0.10.2&new-version=0.10.3)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
You can disable automated security fix PRs for this repo from the
[Security Alerts
page](https://github.com/storytold/storyteller-rust/network/alerts).

</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-07-26 23:09:22 -04:00
dependabot[bot] 74ac5d76ee Bump rustls from 0.21.9 to 0.21.12 (#350)
Bumps [rustls](https://github.com/rustls/rustls) from 0.21.9 to 0.21.12.
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/rustls/rustls/commit/3633152cc557cceadb0f71fa7226e6051fb6a9ee"><code>3633152</code></a>
Cargo: v0.21.11 -&gt; v0.21.12</li>
<li><a
href="https://github.com/rustls/rustls/commit/0baaeba7a8b7961108810fe0ae108d3dc45cf35e"><code>0baaeba</code></a>
proj: MSRV 1.61 -&gt; 1.63</li>
<li><a
href="https://github.com/rustls/rustls/commit/6fd691a1018297e7299b91eb2a840da579c286df"><code>6fd691a</code></a>
tls13: fix clippy::unnecessary_lazy_evaluations finding</li>
<li><a
href="https://github.com/rustls/rustls/commit/6da53375a2910e7dda1752b3d2072a77f1a00e39"><code>6da5337</code></a>
Test for illegal IP address in server name extension</li>
<li><a
href="https://github.com/rustls/rustls/commit/75f8857db71f128fb521e77135744c97453a6e4b"><code>75f8857</code></a>
Ignore server_name extension containing IP address</li>
<li><a
href="https://github.com/rustls/rustls/commit/7b8d1dbc1e666dc4d83640c64e96d257d39cfda4"><code>7b8d1db</code></a>
Prepare 0.21.11</li>
<li><a
href="https://github.com/rustls/rustls/commit/ebcb4782f23b4edf9b10a7065d9e8d4362439d9c"><code>ebcb478</code></a>
complete_io: bail out if progress is impossible</li>
<li><a
href="https://github.com/rustls/rustls/commit/20f35dfb6d3c353294c562723d4cb6639a8bd01b"><code>20f35df</code></a>
Regression test for <code>complete_io</code> infinite loop bug</li>
<li><a
href="https://github.com/rustls/rustls/commit/2f2aae15a4293639669291ab2b257835a2d4bdca"><code>2f2aae1</code></a>
Don't specially handle unauthenticated close_notify alerts</li>
<li><a
href="https://github.com/rustls/rustls/commit/e163587b985c894a6ce651992b91eb6897edde8b"><code>e163587</code></a>
Don't deny warnings from nightly clippy</li>
<li>Additional commits viewable in <a
href="https://github.com/rustls/rustls/compare/v/0.21.9...v/0.21.12">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=rustls&package-manager=cargo&previous-version=0.21.9&new-version=0.21.12)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
You can disable automated security fix PRs for this repo from the
[Security Alerts
page](https://github.com/storytold/storyteller-rust/network/alerts).

</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-07-26 23:09:04 -04:00
dependabot[bot] d5869f094b Bump zerovec from 0.10.2 to 0.10.4 (#354)
[//]: # (dependabot-start)
⚠️  **Dependabot is rebasing this PR** ⚠️ 

Rebasing might not happen immediately, so don't worry if this takes some
time.

Note: if you make any changes to this PR yourself, they will take
precedence over the rebase.

---

[//]: # (dependabot-end)

Bumps [zerovec](https://github.com/unicode-org/icu4x) from 0.10.2 to
0.10.4.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/unicode-org/icu4x/blob/main/CHANGELOG.md">zerovec's
changelog</a>.</em></p>
<blockquote>
<h1>Changelog</h1>
<h2>icu4x 1.5.x</h2>
<ul>
<li><code>icu_calendar</code>
<ul>
<li>(1.5.1) Fix Japanese calendar Gregorian era year 0 (<a
href="https://redirect.github.com/unicode-org/icu4x/issues/4968">unicode-org/icu4x#4968</a>)</li>
<li>(1.5.2) Enforce C,packed, not just packed, on ULE types, fixing for
incoming changes to <code>repr(Rust)</code> (<a
href="https://redirect.github.com/unicode-org/icu4x/pull/5049">unicode-org/icu4x#5049</a>)</li>
</ul>
</li>
<li><code>icu_datetime</code>
<ul>
<li>(1.5.1) Fix incorrect assertion in week-of-year formatting (<a
href="https://redirect.github.com/unicode-org/icu4x/issues/4977">unicode-org/icu4x#4977</a>)</li>
</ul>
</li>
<li><code>icu_casemap</code>
<ul>
<li>(1.5.1) Enforce C,packed, not just packed, on ULE types, fixing for
incoming changes to <code>repr(Rust)</code> (<a
href="https://redirect.github.com/unicode-org/icu4x/pull/5049">unicode-org/icu4x#5049</a>)</li>
</ul>
</li>
<li><code>icu_capi</code>
<ul>
<li>(1.5.1) Fix situations in which <code>libc_alloc</code> is specified
as a dependency (<a
href="https://redirect.github.com/unicode-org/icu4x/pull/5119">unicode-org/icu4x#5119</a>)</li>
</ul>
</li>
<li><code>icu_properties</code>
<ul>
<li>(1.5.1) Enforce C,packed, not just packed, on ULE types, fixing for
incoming changes to <code>repr(Rust)</code> (<a
href="https://redirect.github.com/unicode-org/icu4x/pull/5049">unicode-org/icu4x#5049</a>)</li>
</ul>
</li>
<li><code>zerovec</code>
<ul>
<li>(0.10.3) Fix size regression by making <code>twox-hash</code> dep
<code>no_std</code> (<a
href="https://redirect.github.com/unicode-org/icu4x/pull/5007">unicode-org/icu4x#5007</a>)</li>
<li>(0.10.3) Enforce C,packed, not just packed, on ULE types, fixing for
incoming changes to <code>repr(Rust)</code> (<a
href="https://redirect.github.com/unicode-org/icu4x/pull/5049">unicode-org/icu4x#5049</a>)</li>
<li>(0.10.4) Enforce C,packed on OptionVarULE (<a
href="https://redirect.github.com/unicode-org/icu4x/pull/5143">unicode-org/icu4x#5143</a>)</li>
</ul>
</li>
<li><code>zerovec_derive</code>
<ul>
<li>(0.10.3) Enforce C,packed, not just packed, on ULE types, fixing for
incoming changes to <code>repr(Rust)</code> (<a
href="https://redirect.github.com/unicode-org/icu4x/pull/5049">unicode-org/icu4x#5049</a>)</li>
</ul>
</li>
</ul>
<h2>icu4x 1.5 (May 28, 2024)</h2>
<ul>
<li>Components
<ul>
<li>General
<ul>
<li>Compiled data updated to CLDR 45 and ICU 75 (unicode-org#4782)</li>
</ul>
</li>
<li><code>icu_calendar</code>
<ul>
<li>Fix duration offsetting and negative-year bugs in several calendars
including Chinese, Islamic, Coptic, Ethiopian, and Hebrew (<a
href="https://redirect.github.com/unicode-org/icu4x/issues/4904">#4904</a>)</li>
<li>Improved approximation for Persian calendrical calculations (<a
href="https://redirect.github.com/unicode-org/icu4x/issues/4713">unicode-org/icu4x#4713</a>)</li>
<li>Fix weekday calculations in negative ISO years (<a
href="https://redirect.github.com/unicode-org/icu4x/pull/4894">unicode-org/icu4x#4894</a>)</li>
<li>New <code>DateTime::local_unix_epoch()</code> convenience
constructor (<a
href="https://redirect.github.com/unicode-org/icu4x/pull/4479">unicode-org/icu4x#4479</a>)</li>
<li>Add caching for all islamic calendars (<a
href="https://redirect.github.com/unicode-org/icu4x/pull/4785">unicode-org/icu4x#4785</a>)</li>
<li>Add caching for chinese based calendars (<a
href="https://redirect.github.com/unicode-org/icu4x/pull/4411">unicode-org/icu4x#4411</a>,
<a
href="https://redirect.github.com/unicode-org/icu4x/pull/4468">unicode-org/icu4x#4468</a>)</li>
<li>Switch Hebrew to faster keviyah/Four Gates calculations (<a
href="https://redirect.github.com/unicode-org/icu4x/pull/4504">unicode-org/icu4x#4504</a>)</li>
<li>Replace 2820-year with 33-year cycle in Persian calendar, with
override table (<a
href="https://redirect.github.com/unicode-org/icu4x/pull/4770">unicode-org/icu4x#4770</a>,
<a
href="https://redirect.github.com/unicode-org/icu4x/pull/4775">unicode-org/icu4x#4775</a>,
<a
href="https://redirect.github.com/unicode-org/icu4x/pull/4796">unicode-org/icu4x#4796</a>)</li>
<li>Fix bugs in several calendars with new continuity test (<a
href="https://redirect.github.com/unicode-org/icu4x/pull/4904">unicode-org/icu4x#4904</a>)</li>
<li>Fix year 2319 in the Chinese calendar (<a
href="https://redirect.github.com/unicode-org/icu4x/pull/4929">unicode-org/icu4x#4929</a>)</li>
<li>Fix ISO weekday calculations in negative years (<a
href="https://redirect.github.com/unicode-org/icu4x/pull/4894">unicode-org/icu4x#4894</a>)</li>
</ul>
</li>
<li><code>icu_collections</code>
<ul>
<li>Switch from <code>wasmer</code> to <code>wasmi</code> in
<code>icu_codepointtrie_builder</code> (<a
href="https://redirect.github.com/unicode-org/icu4x/pull/4621">unicode-org/icu4x#4621</a>)</li>
</ul>
</li>
<li><code>icu_normalizer</code>
<ul>
<li>Make UTS 46 normalization non-experimental (<a
href="https://redirect.github.com/unicode-org/icu4x/issues/4712">#4712</a>)</li>
</ul>
</li>
<li><code>icu_datetime</code>
<ul>
<li>Experimental &quot;neo&quot; datetime formatter with support for
semantic skeleta and fine-grained data slicing (<a
href="https://redirect.github.com/unicode-org/icu4x/issues/1317">unicode-org/icu4x#1317</a>,
<a
href="https://redirect.github.com/unicode-org/icu4x/issues/3347">unicode-org/icu4x#3347</a>)</li>
<li><code>Writeable</code> and <code>Display</code> implementations now
don't return <code>fmt::Error</code>s that don't originate from the
<code>fmt::Write</code> anymore (<a
href="https://redirect.github.com/unicode-org/icu4x/issues/4732">#4732</a>,
<a
href="https://redirect.github.com/unicode-org/icu4x/issues/4851">#4851</a>,
<a
href="https://redirect.github.com/unicode-org/icu4x/issues/4863">#4863</a>)</li>
<li>Make <code>CldrCalendar</code> trait sealed except with experimental
feature (<a
href="https://redirect.github.com/unicode-org/icu4x/pull/4392">unicode-org/icu4x#4392</a>)</li>
<li><code>FormattedDateTime</code> and
<code>FormattedZonedDateTime</code> now implement <code>Clone</code> and
<code>Copy</code> (<a
href="https://redirect.github.com/unicode-org/icu4x/pull/4476">unicode-org/icu4x#4476</a>)</li>
</ul>
</li>
<li><code>icu_experimental</code></li>
</ul>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/unicode-org/icu4x/commits/ind/zerovec@0.10.4">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=zerovec&package-manager=cargo&previous-version=0.10.2&new-version=0.10.4)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
You can disable automated security fix PRs for this repo from the
[Security Alerts
page](https://github.com/storytold/storyteller-rust/network/alerts).

</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-07-26 23:08:47 -04:00
KasisnuandBrandon Thomas d8d13daad5 gptsovits: enqueue uploads api, inference job supports uploading & tts inference (#359)
Co-authored-by: Brandon Thomas <echelon@gmail.com>
2024-07-26 23:07:56 -04:00
Brandon Thomas cef5d79bb1 watermark branding from hostname 2024-07-26 22:42:58 -04:00
Brandon Thomas 595ff3260e remove dead routes 2024-07-26 22:11:40 -04:00
Brandon Thomas 9cb2d3f74e dimensions wip 2024-07-26 18:04:11 -04:00
Brandon Thomas ce0fb4bf9e dimensions for live portrait 2024-07-25 19:16:58 -04:00
Brandon Thomas 8fc89f993e public model type in API 2024-07-25 17:41:40 -04:00
Brandon Thomas 7babe2d122 new media file model types 2024-07-25 16:30:41 -04:00
Brandon Thomas cdb3b706cf clean up origin category a little 2024-07-25 16:09:49 -04:00
Brandon Thomas 2a6254522e write media file product category for VST and Studio 2024-07-25 15:47:25 -04:00
Brandon Thomas e637af4398 Fix product categories (TODO: implement in jobs / upload endpoints) 2024-07-25 15:18:16 -04:00
Brandon Thomas 78f60cd782 documentation + begin removing media file subtype 2024-07-25 15:05:57 -04:00
Brandon Thomas 990e65abc9 upload3d feature flag 2024-07-24 19:47:44 -04:00
Brandon Thomas a6fc62810e query is long for scrollback 2024-07-23 23:45:50 -04:00
Brandon Thomas b6344a681f all payload types 2024-07-21 10:24:04 -04:00
Brandon Thomas 0454db0aa7 get the maximum use between stores 2024-07-21 10:03:44 -04:00
Brandon Thomas 233523c6b5 premium store is self-contained 2024-07-21 09:51:02 -04:00
Brandon Thomas e5e93364ae usage tracker wip 2024-07-21 09:25:04 -04:00
Brandon Thomas f17a9a034f premium keys 2024-07-21 00:17:47 -04:00
Brandon Thomas a06b583488 user token premium redis key 2024-07-21 00:09:16 -04:00
Brandon Thomas 96021d4507 add redis_schema lib (wip) 2024-07-20 23:51:11 -04:00
Brandon Thomas 7686eff0c1 better response type typing, less boilerplate 2024-07-19 23:44:45 -04:00
Brandon Thomas 705013f5e0 top models analytics query 2024-07-18 21:31:34 -04:00
Kasisnu 3f48bb217c fix: thumbnails outptu extension for requests (#360) 2024-07-18 21:31:47 +05:30
Brandon Thomas f72b4c973e updated queue stats endpoint 2024-07-17 16:49:45 -04:00
Brandon Thomas 5300902939 report on other queue stats 2024-07-17 16:26:30 -04:00
Kasisnu 9036f0993a make making thumbnails easier (#358) 2024-07-17 22:00:19 +05:30
Brandon Thomas 783ffef82c permanently fail on face detection errors 2024-07-17 08:04:24 -04:00
Brandon Thomas 5153bda209 fix command line arg 2024-07-16 22:34:42 -04:00
Brandon Thomas 0fdfc3b8fc move server "state" / configs to module 2024-07-16 22:28:43 -04:00
Brandon Thomas 17ce397d09 fixup args 2024-07-16 22:10:57 -04:00
Brandon Thomas 278d821207 reorganize file modules 2024-07-16 22:08:02 -04:00
Brandon Thomas 6352f710e0 cleanup and reorganize job code 2024-07-16 22:02:55 -04:00
Brandon Thomas e76d30caf7 make downloader common code 2024-07-16 21:39:25 -04:00
Brandon Thomas 576af78b2c input is image argument 2024-07-16 21:31:43 -04:00
Brandon Thomas d88ace6706 don't log routing tag mismatch 2024-07-16 21:08:31 -04:00
Brandon Thomas 13fe465740 fix job selection for empty scoping 2024-07-16 20:34:06 -04:00
Brandon Thomas 00ad03a819 analytics query 2024-07-16 20:25:03 -04:00
Brandon Thomas de36342731 fix model scoping for empty string 2024-07-16 19:52:15 -04:00
Brandon Thomas dafeb616a5 scope jobs by type 2024-07-16 19:10:26 -04:00
Brandon Thomas 9708e91137 public-facing inference job type 2024-07-16 17:37:58 -04:00
Brandon Thomas 06ac75a569 let users use upscaler 2024-07-16 15:54:20 -04:00
Brandon Thomas 142519b97f fix api docs 2024-07-16 15:29:14 -04:00
Brandon Thomas 8639788706 rename live portrait endpoint 2024-07-16 15:11:36 -04:00
Brandon Thomas 6af2b3f173 add support for mp4 image planes 2024-07-16 13:27:13 -04:00
Brandon Thomas 2bee82f0ae connect the last few pieces 2024-07-16 03:45:24 -04:00
Brandon Thomas 7c5ba2542c inference job - upload results 2024-07-16 03:28:39 -04:00
Brandon Thomas 7644c6813c new enum to begin field deprecation 2024-07-16 02:54:39 -04:00
Brandon Thomas 84c5ae9d18 move inference job CLI so we can reuse it 2024-07-16 02:01:32 -04:00
Brandon Thomas cc41641b2b extractor 2024-07-16 00:26:11 -04:00
Brandon Thomas b573860068 cleanup dead code, polymorphic args extraction 2024-07-16 00:00:17 -04:00
Brandon Thomas c40ffa7346 refactor module names 2024-07-15 22:58:18 -04:00
Brandon Thomas 93ce89e060 cleanup job 2024-07-15 22:54:22 -04:00
Brandon Thomas 59c4574d4d dead code 2024-07-15 22:33:18 -04:00
Brandon Thomas 6ad5a39bba reorganize workflow job module 2024-07-15 22:26:02 -04:00
Brandon Thomas 6f568087c6 share request/response 2024-07-15 21:00:17 -04:00
Brandon Thomas 5111254eaf extra test 2024-07-15 20:22:18 -04:00
Brandon Thomas 1ae84a406d use cinematic fix 2024-07-15 20:20:55 -04:00
Brandon Thomas f49e49832b document new endpoints 2024-07-15 20:11:02 -04:00
Brandon Thomas 0bf9e7b5aa share media token cleaning 2024-07-15 20:00:40 -04:00
Brandon Thomas 92338e5f66 mount workflow routes 2024-07-15 19:41:45 -04:00
Brandon Thomas e09130a1b5 remove unused portrait workflow args 2024-07-15 18:31:20 -04:00
Brandon Thomas 0465f5236f enable cinematic 2024-07-15 17:56:54 -04:00
Brandon Thomas 12cf9730f8 share debug + routing tag headers 2024-07-15 17:16:54 -04:00
Brandon Thomas bfa842b123 add new endpoints (wip) 2024-07-15 17:01:13 -04:00
Brandon Thomas 3faf22e9c5 comments 2024-07-15 16:03:04 -04:00
Brandon Thomas d87814bc41 make this clearer 2024-07-15 09:52:03 -04:00
Brandon Thomas cf057d26ec fix enum compile error 2024-07-15 09:49:23 -04:00
Brandon Thomas 2d294ce7ad enum for LivePortrait 2024-07-15 01:33:42 -04:00
Brandon Thomas 4e6285acd2 use publicweightstype in server 2024-07-15 01:27:04 -04:00
Brandon Thomas 114cdc10a0 prepare to hide some public-facing enums 2024-07-15 01:01:55 -04:00
Brandon Thomas 53e7ca28c6 new enum variant for gpt_so_vits 2024-07-14 22:10:16 -04:00
Brandon Thomas 854fe4b340 fix query 2024-07-13 23:35:45 -04:00
Brandon Thomas 330712407d anlaytics query 2024-07-13 23:24:51 -04:00
Brandon Thomas b708e5f9f6 allow people access to outputs even without studio access 2024-07-13 13:38:26 -04:00
Brandon Thomas 4146e922d8 analytics query 2024-07-12 23:48:46 -04:00
Brandon Thomas 1789918913 codegen build fix 2024-07-12 12:10:40 -04:00
Brandon Thomas 357691be20 report cached results 2024-07-12 10:18:35 -04:00
Brandon Thomas 8889299cc7 in-memory cache featured item list 2024-07-12 01:29:58 -04:00
Brandon Thomas a4023278bc add sieve 2024-07-12 00:37:59 -04:00
Brandon Thomas 73119ac9e3 fix compile errors 2024-07-12 00:01:34 -04:00
Brandon Thomas ec46833726 enroll new users in studio 2024-07-11 23:59:40 -04:00
Brandon Thomas e63ec3ae34 fix string quoting 2024-07-11 00:42:28 -04:00
Brandon Thomas aabaf0a5a5 fix query 2024-07-10 23:01:40 -04:00
Brandon Thomas 4146261806 cleanup 2024-07-10 21:57:39 -04:00
Brandon Thomas 10cc6198d9 fix pathing... 2024-07-10 21:25:51 -04:00
Brandon Thomas b8fb1b9a5e cleanup pathing (wip) (#357) 2024-07-10 20:59:18 -04:00
872 changed files with 30062 additions and 6388 deletions
+2 -1
View File
@@ -12,8 +12,9 @@ db.secrets
db_secrets.toml
env-secrets
production_database_secret_connect.sh
script/production_database_secret_connect.sh
production_database_secret_query.sh
script/production_database_secret_backup.sh
script/production_database_secret_connect.sh
production_database_voice_clone_report_download.sh
secrets.toml
secrets.yaml
+2
View File
@@ -3,6 +3,8 @@
<words>
<w>arpabet</w>
<w>backfill</w>
<w>backfilling</w>
<w>backfills</w>
<w>blendshapes</w>
<w>canonicalized</w>
<w>canonicalizing</w>
@@ -1,47 +0,0 @@
{
"db_name": "MySQL",
"query": "\nSELECT\n maybe_model_type as queue_type,\n count(*) as pending_job_count,\n NOW() as present_time\n FROM (\n SELECT\n token,\n maybe_model_type\n FROM generic_inference_jobs\n WHERE status IN (\"pending\", \"attempt_failed\")\n AND maybe_model_type IS NOT NULL\n UNION\n SELECT\n token,\n maybe_model_type\n FROM generic_inference_jobs\n WHERE status IN (\"started\")\n AND created_at > (CURDATE() - INTERVAL 15 MINUTE)\n AND maybe_model_type IS NOT NULL\n) as generic_inner\nGROUP BY queue_type\nUNION\nSELECT\n \"legacy_tts\" as queue_type,\n count(*) as pending_job_count,\n NOW() as present_time\nFROM (\n SELECT\n token\n FROM tts_inference_jobs\n WHERE status IN (\"pending\", \"attempt_failed\")\n UNION\n SELECT\n token\n FROM tts_inference_jobs\n WHERE status IN (\"started\")\n AND created_at > (CURDATE() - INTERVAL 15 MINUTE)\n) as legacy_inner\nGROUP BY queue_type\n ",
"describe": {
"columns": [
{
"ordinal": 0,
"name": "queue_type",
"type_info": {
"type": "VarString",
"flags": "BINARY",
"char_set": 224,
"max_size": 128
}
},
{
"ordinal": 1,
"name": "pending_job_count",
"type_info": {
"type": "LongLong",
"flags": "NOT_NULL | BINARY",
"char_set": 63,
"max_size": 21
}
},
{
"ordinal": 2,
"name": "present_time",
"type_info": {
"type": "Datetime",
"flags": "NOT_NULL",
"char_set": 224,
"max_size": 76
}
}
],
"parameters": {
"Right": 0
},
"nullable": [
true,
false,
false
]
},
"hash": "074307d7cd5c9a6f27e4d5ecce3072dcd13914a6f7f5f27f0f7232ae6c4813b4"
}
@@ -1,6 +1,6 @@
{
"db_name": "MySQL",
"query": "\n SELECT\n wt.token as `token: tokens::tokens::model_weights::ModelWeightToken`,\n wt.title,\n wt.weights_type as `weights_type: enums::by_table::model_weights::weights_types::WeightsType`,\n wt.weights_category as `weights_category: enums::by_table::model_weights::weights_category::WeightsCategory`,\n wt.maybe_description_markdown,\n wt.maybe_description_rendered_html,\n wt.creator_ip_address,\n wt.creator_set_visibility as `creator_set_visibility: enums::common::visibility::Visibility`,\n\n wt.creator_user_token as `creator_user_token: tokens::tokens::users::UserToken`,\n users.username as creator_username,\n users.display_name as creator_display_name,\n users.email_gravatar_hash AS creator_gravatar_hash,\n\n wt.maybe_last_update_user_token as `maybe_last_update_user_token: tokens::tokens::users::UserToken`,\n wt.original_download_url,\n wt.original_filename,\n wt.file_size_bytes,\n wt.file_checksum_sha2,\n wt.public_bucket_hash,\n wt.maybe_public_bucket_prefix,\n wt.maybe_public_bucket_extension,\n\n cover_image.public_bucket_directory_hash as maybe_cover_image_public_bucket_hash,\n cover_image.maybe_public_bucket_prefix as maybe_cover_image_public_bucket_prefix,\n cover_image.maybe_public_bucket_extension as maybe_cover_image_public_bucket_extension,\n\n entity_stats.ratings_positive_count as maybe_ratings_positive_count,\n entity_stats.ratings_negative_count as maybe_ratings_negative_count,\n entity_stats.bookmark_count as maybe_bookmark_count,\n\n wt.version,\n wt.created_at,\n wt.updated_at,\n wt.user_deleted_at,\n wt.mod_deleted_at\n FROM model_weights as wt\n JOIN users\n ON users.token = wt.creator_user_token\n LEFT OUTER JOIN media_files as cover_image\n ON cover_image.token = wt.maybe_cover_image_media_file_token\n LEFT OUTER JOIN entity_stats\n ON entity_stats.entity_type = \"model_weight\"\n AND entity_stats.entity_token = wt.token\n WHERE\n wt.token = ?\n AND wt.user_deleted_at IS NULL\n AND wt.mod_deleted_at IS NULL\n ",
"query": "\n SELECT\n wt.token as `token: tokens::tokens::model_weights::ModelWeightToken`,\n wt.title,\n wt.weights_type as `weights_type: enums::by_table::model_weights::weights_types::WeightsType`,\n wt.weights_category as `weights_category: enums::by_table::model_weights::weights_category::WeightsCategory`,\n wt.maybe_description_markdown,\n wt.maybe_description_rendered_html,\n wt.creator_ip_address,\n wt.creator_set_visibility as `creator_set_visibility: enums::common::visibility::Visibility`,\n\n wt.creator_user_token as `creator_user_token: tokens::tokens::users::UserToken`,\n users.username as creator_username,\n users.display_name as creator_display_name,\n users.email_gravatar_hash AS creator_gravatar_hash,\n\n wt.maybe_last_update_user_token as `maybe_last_update_user_token: tokens::tokens::users::UserToken`,\n wt.original_download_url,\n wt.original_filename,\n wt.file_size_bytes,\n wt.file_checksum_sha2,\n wt.public_bucket_hash,\n wt.maybe_public_bucket_prefix,\n wt.maybe_public_bucket_extension,\n\n cover_image.public_bucket_directory_hash as maybe_cover_image_public_bucket_hash,\n cover_image.maybe_public_bucket_prefix as maybe_cover_image_public_bucket_prefix,\n cover_image.maybe_public_bucket_extension as maybe_cover_image_public_bucket_extension,\n\n entity_stats.ratings_positive_count as maybe_ratings_positive_count,\n entity_stats.ratings_negative_count as maybe_ratings_negative_count,\n entity_stats.bookmark_count as maybe_bookmark_count,\n wt.cached_usage_count,\n\n featured_items.entity_token IS NOT NULL AS is_featured,\n\n wt.version,\n wt.created_at,\n wt.updated_at,\n wt.user_deleted_at,\n wt.mod_deleted_at\n\n FROM model_weights as wt\n JOIN users\n ON users.token = wt.creator_user_token\n LEFT OUTER JOIN media_files as cover_image\n ON cover_image.token = wt.maybe_cover_image_media_file_token\n LEFT OUTER JOIN entity_stats\n ON entity_stats.entity_type = \"model_weight\"\n AND entity_stats.entity_token = wt.token\n LEFT OUTER JOIN featured_items\n ON featured_items.entity_type = \"model_weight\"\n AND featured_items.entity_token = wt.token\n AND featured_items.deleted_at IS NULL\n WHERE\n wt.token = ?\n AND wt.user_deleted_at IS NULL\n AND wt.mod_deleted_at IS NULL\n ",
"describe": {
"columns": [
{
@@ -265,6 +265,26 @@
},
{
"ordinal": 26,
"name": "cached_usage_count",
"type_info": {
"type": "LongLong",
"flags": "NOT_NULL | UNSIGNED",
"char_set": 63,
"max_size": 20
}
},
{
"ordinal": 27,
"name": "is_featured",
"type_info": {
"type": "LongLong",
"flags": "NOT_NULL | BINARY",
"char_set": 63,
"max_size": 1
}
},
{
"ordinal": 28,
"name": "version",
"type_info": {
"type": "Long",
@@ -274,7 +294,7 @@
}
},
{
"ordinal": 27,
"ordinal": 29,
"name": "created_at",
"type_info": {
"type": "Timestamp",
@@ -284,7 +304,7 @@
}
},
{
"ordinal": 28,
"ordinal": 30,
"name": "updated_at",
"type_info": {
"type": "Timestamp",
@@ -294,7 +314,7 @@
}
},
{
"ordinal": 29,
"ordinal": 31,
"name": "user_deleted_at",
"type_info": {
"type": "Timestamp",
@@ -304,7 +324,7 @@
}
},
{
"ordinal": 30,
"ordinal": 32,
"name": "mod_deleted_at",
"type_info": {
"type": "Timestamp",
@@ -347,9 +367,11 @@
false,
false,
false,
false,
false,
true,
true
]
},
"hash": "0220f288c06686874df87ec163533be64cc000634920d58e7fa7a7d156cbfcae"
"hash": "1053294a21439ddb41fdd1053547b3f5c50457f6ba9450e5167a1db5caf896d1"
}
@@ -1,6 +1,6 @@
{
"db_name": "MySQL",
"query": "\nINSERT INTO media_files\nSET\n token = ?,\n\n media_class = ?,\n media_type = ?,\n\n origin_category = ?,\n origin_product_category = ?,\n\n maybe_engine_category = ?,\n maybe_animation_type = ?,\n\n maybe_mime_type = ?,\n file_size_bytes = ?,\n\n checksum_sha2 = ?,\n\n maybe_title = ?,\n maybe_duration_millis = ?,\n\n public_bucket_directory_hash = ?,\n maybe_public_bucket_prefix = ?,\n maybe_public_bucket_extension = ?,\n\n maybe_creator_user_token = ?,\n maybe_creator_anonymous_visitor_token = ?,\n creator_ip_address = ?,\n\n creator_set_visibility = ?,\n\n maybe_scene_source_media_file_token = ?,\n is_intermediate_system_file = ?,\n\n maybe_creator_file_synthetic_id = ?,\n maybe_creator_category_synthetic_id = ?,\n\n maybe_origin_model_type = NULL,\n maybe_origin_model_token = NULL\n ",
"query": "\nINSERT INTO media_files\nSET\n token = ?,\n\n media_class = ?,\n media_type = ?,\n\n origin_category = ?,\n origin_product_category = ?,\n\n maybe_engine_category = ?,\n maybe_animation_type = ?,\n\n maybe_mime_type = ?,\n file_size_bytes = ?,\n\n checksum_sha2 = ?,\n\n maybe_title = ?,\n maybe_duration_millis = ?,\n\n public_bucket_directory_hash = ?,\n maybe_public_bucket_prefix = ?,\n maybe_public_bucket_extension = ?,\n\n maybe_creator_user_token = ?,\n maybe_creator_anonymous_visitor_token = ?,\n creator_ip_address = ?,\n\n creator_set_visibility = ?,\n\n maybe_scene_source_media_file_token = ?,\n is_intermediate_system_file = ?,\n\n maybe_creator_file_synthetic_id = ?,\n maybe_creator_category_synthetic_id = ?,\n\n is_user_upload = TRUE,\n\n maybe_origin_model_type = NULL,\n maybe_origin_model_token = NULL\n ",
"describe": {
"columns": [],
"parameters": {
@@ -8,5 +8,5 @@
},
"nullable": []
},
"hash": "87f078eae38376e8d3bab9001908a5ac3a406ed79d8434ea452c194b56df80fe"
"hash": "28cac5883464613d29bedbf7308a71c258f1bf4abb8f5ca3ae320db34c137955"
}
@@ -1,6 +1,6 @@
{
"db_name": "MySQL",
"query": "\nSELECT\n tts.token as model_token,\n tts.tts_model_type as `tts_model_type: enums::by_table::tts_models::tts_model_type::TtsModelType`,\n tts.text_pipeline_type,\n tts.text_preprocessing_algorithm,\n tts.maybe_default_pretrained_vocoder,\n\n tts.use_default_mel_multiply_factor,\n tts.maybe_custom_mel_multiply_factor,\n\n tts.creator_user_token,\n users.username as creator_username,\n users.display_name as creator_display_name,\n users.email_gravatar_hash as creator_gravatar_hash,\n users.is_banned as creator_is_banned,\n\n tts.title,\n tts.description_markdown,\n tts.description_rendered_html,\n\n tts.ietf_language_tag,\n tts.ietf_primary_language_subtag,\n\n tts.is_front_page_featured,\n tts.is_twitch_featured,\n\n tts.maybe_suggested_unique_bot_command,\n\n tts.user_ratings_positive_count,\n tts.user_ratings_negative_count,\n tts.user_ratings_total_count,\n\n tts.creator_set_visibility,\n\n tts.is_locked_from_use,\n tts.is_locked_from_user_modification,\n\n tts.maybe_custom_vocoder_token,\n vocoder.title as maybe_custom_vocoder_title,\n vocoder_user.token as maybe_custom_vocoder_creator_user_token,\n vocoder_user.username as maybe_custom_vocoder_creator_username,\n vocoder_user.display_name as maybe_custom_vocoder_creator_display_name,\n vocoder_user.email_gravatar_hash as maybe_custom_vocoder_creator_gravatar_hash,\n\n tts.created_at,\n tts.updated_at,\n\n tts.creator_ip_address_creation,\n tts.creator_ip_address_last_update,\n tts.mod_deleted_at,\n tts.user_deleted_at\n\nFROM tts_models as tts\nJOIN users\n ON users.token = tts.creator_user_token\n\nLEFT OUTER JOIN vocoder_models AS vocoder\n ON vocoder.token = tts.maybe_custom_vocoder_token\nLEFT OUTER JOIN users AS vocoder_user\n ON vocoder_user.token = vocoder.creator_user_token\n\nWHERE tts.token = ?\n ",
"query": "\nSELECT\n tts.token as model_token,\n tts.tts_model_type as `tts_model_type: enums::by_table::tts_models::tts_model_type::TtsModelType`,\n tts.text_pipeline_type,\n tts.text_preprocessing_algorithm,\n tts.maybe_default_pretrained_vocoder,\n\n tts.use_default_mel_multiply_factor,\n tts.maybe_custom_mel_multiply_factor,\n\n tts.creator_user_token,\n users.username as creator_username,\n users.display_name as creator_display_name,\n users.email_gravatar_hash as creator_gravatar_hash,\n users.is_banned as creator_is_banned,\n\n tts.title,\n tts.description_markdown,\n tts.description_rendered_html,\n\n tts.ietf_language_tag,\n tts.ietf_primary_language_subtag,\n\n tts.is_front_page_featured,\n tts.is_twitch_featured,\n\n tts.maybe_suggested_unique_bot_command,\n\n tts.user_ratings_positive_count,\n tts.user_ratings_negative_count,\n tts.user_ratings_total_count,\n\n tts.creator_set_visibility,\n\n tts.is_locked_from_use,\n tts.is_locked_from_user_modification,\n\n tts.maybe_migration_new_model_weights_token,\n\n tts.maybe_custom_vocoder_token,\n vocoder.title as maybe_custom_vocoder_title,\n vocoder_user.token as maybe_custom_vocoder_creator_user_token,\n vocoder_user.username as maybe_custom_vocoder_creator_username,\n vocoder_user.display_name as maybe_custom_vocoder_creator_display_name,\n vocoder_user.email_gravatar_hash as maybe_custom_vocoder_creator_gravatar_hash,\n\n tts.created_at,\n tts.updated_at,\n\n tts.creator_ip_address_creation,\n tts.creator_ip_address_last_update,\n tts.mod_deleted_at,\n tts.user_deleted_at\n\nFROM tts_models as tts\nJOIN users\n ON users.token = tts.creator_user_token\n\nLEFT OUTER JOIN vocoder_models AS vocoder\n ON vocoder.token = tts.maybe_custom_vocoder_token\nLEFT OUTER JOIN users AS vocoder_user\n ON vocoder_user.token = vocoder.creator_user_token\n\nWHERE\n tts.token = ?\n AND tts.user_deleted_at IS NULL\n AND tts.mod_deleted_at IS NULL\n ",
"describe": {
"columns": [
{
@@ -265,6 +265,16 @@
},
{
"ordinal": 26,
"name": "maybe_migration_new_model_weights_token",
"type_info": {
"type": "VarString",
"flags": "UNIQUE_KEY | BINARY",
"char_set": 224,
"max_size": 128
}
},
{
"ordinal": 27,
"name": "maybe_custom_vocoder_token",
"type_info": {
"type": "VarString",
@@ -274,7 +284,7 @@
}
},
{
"ordinal": 27,
"ordinal": 28,
"name": "maybe_custom_vocoder_title",
"type_info": {
"type": "VarString",
@@ -284,7 +294,7 @@
}
},
{
"ordinal": 28,
"ordinal": 29,
"name": "maybe_custom_vocoder_creator_user_token",
"type_info": {
"type": "VarString",
@@ -294,7 +304,7 @@
}
},
{
"ordinal": 29,
"ordinal": 30,
"name": "maybe_custom_vocoder_creator_username",
"type_info": {
"type": "VarString",
@@ -304,7 +314,7 @@
}
},
{
"ordinal": 30,
"ordinal": 31,
"name": "maybe_custom_vocoder_creator_display_name",
"type_info": {
"type": "VarString",
@@ -314,7 +324,7 @@
}
},
{
"ordinal": 31,
"ordinal": 32,
"name": "maybe_custom_vocoder_creator_gravatar_hash",
"type_info": {
"type": "String",
@@ -324,7 +334,7 @@
}
},
{
"ordinal": 32,
"ordinal": 33,
"name": "created_at",
"type_info": {
"type": "Timestamp",
@@ -334,7 +344,7 @@
}
},
{
"ordinal": 33,
"ordinal": 34,
"name": "updated_at",
"type_info": {
"type": "Timestamp",
@@ -344,7 +354,7 @@
}
},
{
"ordinal": 34,
"ordinal": 35,
"name": "creator_ip_address_creation",
"type_info": {
"type": "VarString",
@@ -354,7 +364,7 @@
}
},
{
"ordinal": 35,
"ordinal": 36,
"name": "creator_ip_address_last_update",
"type_info": {
"type": "VarString",
@@ -364,7 +374,7 @@
}
},
{
"ordinal": 36,
"ordinal": 37,
"name": "mod_deleted_at",
"type_info": {
"type": "Timestamp",
@@ -374,7 +384,7 @@
}
},
{
"ordinal": 37,
"ordinal": 38,
"name": "user_deleted_at",
"type_info": {
"type": "Timestamp",
@@ -420,6 +430,7 @@
true,
true,
true,
true,
false,
false,
false,
@@ -428,5 +439,5 @@
true
]
},
"hash": "481493c8b377197b5f596d7ee842ab4b580da384a2fa8ed330082515b7990d58"
"hash": "295ac99103e49c817d545d5a7b8a819a839885245c60f8ce2c13a73155917942"
}
@@ -0,0 +1,12 @@
{
"db_name": "MySQL",
"query": "\n UPDATE model_weights\n SET\n cached_usage_count = ?,\n updated_at = updated_at\n WHERE token = ?\n LIMIT 1\n ",
"describe": {
"columns": [],
"parameters": {
"Right": 2
},
"nullable": []
},
"hash": "29821815aab3a511e67aa29de17e7ccae17d71a7d88230221eb6b2ce6bde5edb"
}
@@ -0,0 +1,25 @@
{
"db_name": "MySQL",
"query": "\nSELECT\n COUNT(*) as record_count\n FROM media_files as f\n left outer join model_weights as w\n on f.maybe_origin_model_token = w.token\n left outer join model_weights as w_old\n on f.maybe_origin_model_token = w_old.maybe_migration_old_model_token\n WHERE (w.token = ? OR w_old.token = ?)\n AND f.created_at >= ?\n AND f.created_at < ? + INTERVAL 1 DAY\n ",
"describe": {
"columns": [
{
"ordinal": 0,
"name": "record_count",
"type_info": {
"type": "LongLong",
"flags": "NOT_NULL | BINARY",
"char_set": 63,
"max_size": 21
}
}
],
"parameters": {
"Right": 4
},
"nullable": [
false
]
},
"hash": "3bbfaf131b5228c10320e915f553f845142920b16dc7d36f8640481760405d96"
}
@@ -0,0 +1,25 @@
{
"db_name": "MySQL",
"query": "\nSELECT NOW() as database_time\n ",
"describe": {
"columns": [
{
"ordinal": 0,
"name": "database_time",
"type_info": {
"type": "Datetime",
"flags": "NOT_NULL | BINARY",
"char_set": 63,
"max_size": 19
}
}
],
"parameters": {
"Right": 0
},
"nullable": [
false
]
},
"hash": "47a6c402aad596530aef2c71c1e621bf73a386d754a79c5150cd30dc8ee2170f"
}
@@ -1,6 +1,6 @@
{
"db_name": "MySQL",
"query": "\nSELECT\n token as `token: tokens::tokens::users::UserToken`,\n username,\n email_address,\n password_hash as `password_hash: crate::queries::users::user::lookup_user_for_login_result::VecBytes`,\n password_version,\n is_banned\nFROM users\nWHERE email_address = ?\nLIMIT 1\n ",
"query": "\nSELECT\n token as `token: tokens::tokens::users::UserToken`,\n username,\n email_address,\n password_hash as `password_hash: crate::queries::users::user::lookup_user_for_login_result::VecBytes`,\n password_version,\n is_banned,\n maybe_feature_flags\nFROM users\nWHERE email_address = ?\nLIMIT 1\n ",
"describe": {
"columns": [
{
@@ -62,6 +62,16 @@
"char_set": 63,
"max_size": 1
}
},
{
"ordinal": 6,
"name": "maybe_feature_flags",
"type_info": {
"type": "VarString",
"flags": "BINARY",
"char_set": 224,
"max_size": 1020
}
}
],
"parameters": {
@@ -73,8 +83,9 @@
false,
false,
false,
false
false,
true
]
},
"hash": "e8705ee9b3bc3213e806946fef651e9bb8c2cb5cc2ac8eff3eaed82d9a88f90e"
"hash": "48889cc9c9b8dbe482e74687629a6958c1c9bf8a1cd5ae177afea0ad0709736d"
}
@@ -1,6 +1,6 @@
{
"db_name": "MySQL",
"query": "\nSELECT\n w.id,\n w.token as `token: tokens::tokens::model_weights::ModelWeightToken`,\n\n w.creator_set_visibility as `creator_set_visibility: enums::common::visibility::Visibility`,\n\n w.weights_type as `weights_type: enums::by_table::model_weights::weights_types::WeightsType`,\n w.weights_category as `weights_category: enums::by_table::model_weights::weights_category::WeightsCategory`,\n\n w.title,\n\n cover_image.token as `maybe_cover_image_media_file_token: tokens::tokens::media_files::MediaFileToken`,\n cover_image.public_bucket_directory_hash as maybe_cover_image_public_bucket_hash,\n cover_image.maybe_public_bucket_prefix as maybe_cover_image_public_bucket_prefix,\n cover_image.maybe_public_bucket_extension as maybe_cover_image_public_bucket_extension,\n\n w.creator_user_token as `creator_user_token: tokens::tokens::users::UserToken`,\n users.username as creator_username,\n users.display_name as creator_display_name,\n users.email_gravatar_hash as creator_gravatar_hash,\n\n entity_stats.ratings_positive_count as maybe_ratings_positive_count,\n entity_stats.ratings_negative_count as maybe_ratings_negative_count,\n entity_stats.bookmark_count as maybe_bookmark_count,\n\n extension_tts.ietf_language_tag as maybe_tts_ietf_language_tag,\n extension_tts.ietf_primary_language_subtag as maybe_tts_ietf_primary_language_subtag,\n\n extension_vc.ietf_language_tag as maybe_vc_ietf_language_tag,\n extension_vc.ietf_primary_language_subtag as maybe_vc_ietf_primary_language_subtag,\n\n w.created_at,\n w.updated_at,\n w.user_deleted_at,\n w.mod_deleted_at\n\nFROM model_weights as w\n\nJOIN users\n ON users.token = w.creator_user_token\n\nLEFT OUTER JOIN model_weights_extension_tts_details as extension_tts\n ON extension_tts.model_weights_token = w.token\nLEFT OUTER JOIN model_weights_extension_voice_conversion_details as extension_vc\n ON extension_vc.model_weights_token = w.token\nLEFT OUTER JOIN entity_stats\n ON entity_stats.entity_type = \"model_weights\"\n AND entity_stats.entity_token = w.token\nLEFT OUTER JOIN media_files as cover_image\n ON cover_image.token = w.maybe_cover_image_media_file_token\n\nWHERE\n w.id > ?\nORDER BY id ASC\nLIMIT ?\n ",
"query": "\nSELECT\n w.id,\n w.token as `token: tokens::tokens::model_weights::ModelWeightToken`,\n\n w.creator_set_visibility as `creator_set_visibility: enums::common::visibility::Visibility`,\n\n w.weights_type as `weights_type: enums::by_table::model_weights::weights_types::WeightsType`,\n w.weights_category as `weights_category: enums::by_table::model_weights::weights_category::WeightsCategory`,\n\n w.title,\n\n cover_image.token as `maybe_cover_image_media_file_token: tokens::tokens::media_files::MediaFileToken`,\n cover_image.public_bucket_directory_hash as maybe_cover_image_public_bucket_hash,\n cover_image.maybe_public_bucket_prefix as maybe_cover_image_public_bucket_prefix,\n cover_image.maybe_public_bucket_extension as maybe_cover_image_public_bucket_extension,\n\n w.creator_user_token as `creator_user_token: tokens::tokens::users::UserToken`,\n users.username as creator_username,\n users.display_name as creator_display_name,\n users.email_gravatar_hash as creator_gravatar_hash,\n\n featured_items.entity_token IS NOT NULL AS is_featured,\n\n entity_stats.ratings_positive_count as maybe_ratings_positive_count,\n entity_stats.ratings_negative_count as maybe_ratings_negative_count,\n entity_stats.bookmark_count as maybe_bookmark_count,\n\n w.cached_usage_count,\n\n extension_tts.ietf_language_tag as maybe_tts_ietf_language_tag,\n extension_tts.ietf_primary_language_subtag as maybe_tts_ietf_primary_language_subtag,\n\n extension_vc.ietf_language_tag as maybe_vc_ietf_language_tag,\n extension_vc.ietf_primary_language_subtag as maybe_vc_ietf_primary_language_subtag,\n\n w.created_at,\n w.updated_at,\n w.user_deleted_at,\n w.mod_deleted_at,\n\n NOW() as database_read_time\n\nFROM model_weights as w\n\nJOIN users\n ON users.token = w.creator_user_token\n\nLEFT OUTER JOIN model_weights_extension_tts_details as extension_tts\n ON extension_tts.model_weights_token = w.token\nLEFT OUTER JOIN model_weights_extension_voice_conversion_details as extension_vc\n ON extension_vc.model_weights_token = w.token\nLEFT OUTER JOIN entity_stats\n ON entity_stats.entity_type = \"model_weight\"\n AND entity_stats.entity_token = w.token\nLEFT OUTER JOIN media_files as cover_image\n ON cover_image.token = w.maybe_cover_image_media_file_token\nLEFT OUTER JOIN featured_items\n ON featured_items.entity_type = \"model_weight\"\n AND featured_items.entity_token = w.token\n AND featured_items.deleted_at IS NULL\n\nWHERE\n w.id > ?\nORDER BY id ASC\nLIMIT ?\n ",
"describe": {
"columns": [
{
@@ -145,6 +145,16 @@
},
{
"ordinal": 14,
"name": "is_featured",
"type_info": {
"type": "LongLong",
"flags": "NOT_NULL | BINARY",
"char_set": 63,
"max_size": 1
}
},
{
"ordinal": 15,
"name": "maybe_ratings_positive_count",
"type_info": {
"type": "Long",
@@ -154,7 +164,7 @@
}
},
{
"ordinal": 15,
"ordinal": 16,
"name": "maybe_ratings_negative_count",
"type_info": {
"type": "Long",
@@ -164,7 +174,7 @@
}
},
{
"ordinal": 16,
"ordinal": 17,
"name": "maybe_bookmark_count",
"type_info": {
"type": "Long",
@@ -174,7 +184,17 @@
}
},
{
"ordinal": 17,
"ordinal": 18,
"name": "cached_usage_count",
"type_info": {
"type": "LongLong",
"flags": "NOT_NULL | UNSIGNED",
"char_set": 63,
"max_size": 20
}
},
{
"ordinal": 19,
"name": "maybe_tts_ietf_language_tag",
"type_info": {
"type": "VarString",
@@ -184,7 +204,7 @@
}
},
{
"ordinal": 18,
"ordinal": 20,
"name": "maybe_tts_ietf_primary_language_subtag",
"type_info": {
"type": "VarString",
@@ -194,7 +214,7 @@
}
},
{
"ordinal": 19,
"ordinal": 21,
"name": "maybe_vc_ietf_language_tag",
"type_info": {
"type": "VarString",
@@ -204,7 +224,7 @@
}
},
{
"ordinal": 20,
"ordinal": 22,
"name": "maybe_vc_ietf_primary_language_subtag",
"type_info": {
"type": "VarString",
@@ -214,7 +234,7 @@
}
},
{
"ordinal": 21,
"ordinal": 23,
"name": "created_at",
"type_info": {
"type": "Timestamp",
@@ -224,7 +244,7 @@
}
},
{
"ordinal": 22,
"ordinal": 24,
"name": "updated_at",
"type_info": {
"type": "Timestamp",
@@ -234,7 +254,7 @@
}
},
{
"ordinal": 23,
"ordinal": 25,
"name": "user_deleted_at",
"type_info": {
"type": "Timestamp",
@@ -244,7 +264,7 @@
}
},
{
"ordinal": 24,
"ordinal": 26,
"name": "mod_deleted_at",
"type_info": {
"type": "Timestamp",
@@ -252,6 +272,16 @@
"char_set": 63,
"max_size": 19
}
},
{
"ordinal": 27,
"name": "database_read_time",
"type_info": {
"type": "Datetime",
"flags": "NOT_NULL | BINARY",
"char_set": 63,
"max_size": 19
}
}
],
"parameters": {
@@ -272,9 +302,11 @@
false,
false,
false,
false,
true,
true,
true,
false,
true,
true,
true,
@@ -282,8 +314,9 @@
false,
false,
true,
true
true,
false
]
},
"hash": "6040227c139f6e2972734515b0a904d2a7b04bbf1a419677fc19287a0757ae21"
"hash": "4bce2b10f0510feca7f5705049a5c0eaae6e1a840146628495827468a38c05dd"
}
@@ -0,0 +1,12 @@
{
"db_name": "MySQL",
"query": "\nINSERT INTO media_files\nSET\n token = ?,\n\n media_class = ?,\n media_type = ?,\n\n origin_category = ?,\n origin_product_category = ?,\n\n maybe_engine_category = ?,\n maybe_animation_type = ?,\n\n maybe_media_subtype = ?,\n maybe_mime_type = ?,\n file_size_bytes = ?,\n\n checksum_sha2 = ?,\n\n public_bucket_directory_hash = ?,\n maybe_public_bucket_prefix = ?,\n maybe_public_bucket_extension = ?,\n\n maybe_creator_user_token = ?,\n maybe_creator_anonymous_visitor_token = ?,\n creator_ip_address = ?,\n\n creator_set_visibility = ?,\n\n maybe_creator_file_synthetic_id = ?,\n maybe_creator_category_synthetic_id = ?,\n\n is_user_upload = TRUE,\n\n maybe_origin_model_type = NULL,\n maybe_origin_model_token = NULL\n\nON DUPLICATE KEY UPDATE\n\n media_class = ?,\n media_type = ?,\n\n origin_category = ?,\n origin_product_category = ?,\n\n maybe_engine_category = ?,\n maybe_animation_type = ?,\n\n maybe_media_subtype = ?,\n maybe_mime_type = ?,\n file_size_bytes = ?,\n\n checksum_sha2 = ?,\n\n public_bucket_directory_hash = ?,\n maybe_public_bucket_prefix = ?,\n maybe_public_bucket_extension = ?,\n\n maybe_creator_user_token = ?,\n maybe_creator_anonymous_visitor_token = ?,\n creator_ip_address = ?,\n\n creator_set_visibility = ?,\n\n maybe_creator_file_synthetic_id = ?,\n maybe_creator_category_synthetic_id = ?,\n\n is_user_upload = TRUE,\n\n maybe_origin_model_type = NULL,\n maybe_origin_model_token = NULL\n ",
"describe": {
"columns": [],
"parameters": {
"Right": 39
},
"nullable": []
},
"hash": "55706e6ac35be221b9d9c6e8b247812944c61941964bb53815d31dc30d506be8"
}
@@ -1,6 +1,6 @@
{
"db_name": "MySQL",
"query": "\nSELECT\n m.token as `token: tokens::tokens::media_files::MediaFileToken`,\n\n m.media_class as `media_class: enums::by_table::media_files::media_file_class::MediaFileClass`,\n m.media_type as `media_type: enums::by_table::media_files::media_file_type::MediaFileType`,\n\n m.maybe_engine_category as `maybe_engine_category: enums::by_table::media_files::media_file_engine_category::MediaFileEngineCategory`,\n m.maybe_animation_type as `maybe_animation_type: enums::by_table::media_files::media_file_animation_type::MediaFileAnimationType`,\n\n m.maybe_media_subtype as `maybe_media_subtype: enums::by_table::media_files::media_file_subtype::MediaFileSubtype`,\n\n m.maybe_mime_type,\n\n users.token as `maybe_creator_user_token: tokens::tokens::users::UserToken`,\n users.username as maybe_creator_username,\n users.display_name as maybe_creator_display_name,\n users.email_gravatar_hash as maybe_creator_gravatar_hash,\n\n m.maybe_creator_anonymous_visitor_token as `maybe_creator_anonymous_visitor_token: tokens::tokens::anonymous_visitor_tracking::AnonymousVisitorTrackingToken`,\n\n m.maybe_batch_token as `maybe_batch_token: tokens::tokens::batch_generations::BatchGenerationToken`,\n\n m.maybe_style_transfer_source_media_file_token as `maybe_style_transfer_source_media_file_token: tokens::tokens::media_files::MediaFileToken`,\n m.maybe_scene_source_media_file_token as `maybe_scene_source_media_file_token: tokens::tokens::media_files::MediaFileToken`,\n\n\n m.maybe_title,\n m.maybe_text_transcript,\n\n m.maybe_origin_filename,\n\n m.maybe_duration_millis,\n\n m.maybe_prompt_token as `maybe_prompt_token: tokens::tokens::prompts::PromptToken`,\n prompts.maybe_other_args as maybe_other_prompt_args,\n\n media_file_cover_image.public_bucket_directory_hash as maybe_file_cover_image_public_bucket_hash,\n media_file_cover_image.maybe_public_bucket_prefix as maybe_file_cover_image_public_bucket_prefix,\n media_file_cover_image.maybe_public_bucket_extension as maybe_file_cover_image_public_bucket_extension,\n\n m.creator_set_visibility as `creator_set_visibility: enums::common::visibility::Visibility`,\n\n model_weights.token as `maybe_model_weights_token: tokens::tokens::model_weights::ModelWeightToken`,\n model_weights.title as maybe_model_weights_title,\n model_weights.weights_type as `maybe_model_weights_type: enums::by_table::model_weights::weights_types::WeightsType`,\n model_weights.weights_category as `maybe_model_weights_category: enums::by_table::model_weights::weights_category::WeightsCategory`,\n\n model_weight_cover_image.public_bucket_directory_hash as maybe_model_cover_image_public_bucket_hash,\n model_weight_cover_image.maybe_public_bucket_prefix as maybe_model_cover_image_public_bucket_prefix,\n model_weight_cover_image.maybe_public_bucket_extension as maybe_model_cover_image_public_bucket_extension,\n\n model_weight_creator.token as `maybe_model_weight_creator_user_token: tokens::tokens::users::UserToken`,\n model_weight_creator.username as maybe_model_weight_creator_username,\n model_weight_creator.display_name as maybe_model_weight_creator_display_name,\n model_weight_creator.email_gravatar_hash as maybe_model_weight_creator_gravatar_hash,\n\n m.public_bucket_directory_hash,\n m.maybe_public_bucket_prefix,\n m.maybe_public_bucket_extension,\n\n entity_stats.ratings_positive_count as maybe_ratings_positive_count,\n entity_stats.ratings_negative_count as maybe_ratings_negative_count,\n entity_stats.bookmark_count as maybe_bookmark_count,\n\n featured_items.entity_token IS NOT NULL AS is_featured,\n\n m.created_at,\n m.updated_at\n\nFROM media_files AS m\nLEFT OUTER JOIN users\n ON m.maybe_creator_user_token = users.token\nLEFT OUTER JOIN model_weights\n ON m.maybe_origin_model_token = model_weights.token\nLEFT OUTER JOIN media_files as media_file_cover_image\n ON media_file_cover_image.token = m.maybe_cover_image_media_file_token\nLEFT OUTER JOIN media_files as model_weight_cover_image\n ON model_weight_cover_image.token = model_weights.maybe_cover_image_media_file_token\nLEFT OUTER JOIN users as model_weight_creator\n ON model_weight_creator.token = model_weights.creator_user_token\nLEFT OUTER JOIN entity_stats\n ON entity_stats.entity_type = \"media_file\"\n AND entity_stats.entity_token = m.token\nLEFT OUTER JOIN prompts\n ON prompts.token = m.maybe_prompt_token\nLEFT OUTER JOIN featured_items\n ON featured_items.entity_type = 'media_file'\n AND featured_items.entity_token = m.token\n AND featured_items.deleted_at IS NULL\nWHERE\n m.token = ?\n AND m.user_deleted_at IS NULL\n AND m.mod_deleted_at IS NULL\n ",
"query": "\nSELECT\n m.token as `token: tokens::tokens::media_files::MediaFileToken`,\n\n m.media_class as `media_class: enums::by_table::media_files::media_file_class::MediaFileClass`,\n m.media_type as `media_type: enums::by_table::media_files::media_file_type::MediaFileType`,\n\n m.maybe_engine_category as `maybe_engine_category: enums::by_table::media_files::media_file_engine_category::MediaFileEngineCategory`,\n m.maybe_animation_type as `maybe_animation_type: enums::by_table::media_files::media_file_animation_type::MediaFileAnimationType`,\n\n m.maybe_media_subtype as `maybe_media_subtype: enums::by_table::media_files::media_file_subtype::MediaFileSubtype`,\n\n m.maybe_mime_type,\n\n users.token as `maybe_creator_user_token: tokens::tokens::users::UserToken`,\n users.username as maybe_creator_username,\n users.display_name as maybe_creator_display_name,\n users.email_gravatar_hash as maybe_creator_gravatar_hash,\n\n m.maybe_creator_anonymous_visitor_token as `maybe_creator_anonymous_visitor_token: tokens::tokens::anonymous_visitor_tracking::AnonymousVisitorTrackingToken`,\n\n m.maybe_batch_token as `maybe_batch_token: tokens::tokens::batch_generations::BatchGenerationToken`,\n\n m.maybe_style_transfer_source_media_file_token as `maybe_style_transfer_source_media_file_token: tokens::tokens::media_files::MediaFileToken`,\n m.maybe_scene_source_media_file_token as `maybe_scene_source_media_file_token: tokens::tokens::media_files::MediaFileToken`,\n\n\n m.maybe_title,\n m.maybe_text_transcript,\n\n m.maybe_origin_filename,\n\n m.maybe_duration_millis,\n\n m.maybe_prompt_token as `maybe_prompt_token: tokens::tokens::prompts::PromptToken`,\n prompts.maybe_other_args as maybe_other_prompt_args,\n\n media_file_cover_image.public_bucket_directory_hash as maybe_file_cover_image_public_bucket_hash,\n media_file_cover_image.maybe_public_bucket_prefix as maybe_file_cover_image_public_bucket_prefix,\n media_file_cover_image.maybe_public_bucket_extension as maybe_file_cover_image_public_bucket_extension,\n\n m.creator_set_visibility as `creator_set_visibility: enums::common::visibility::Visibility`,\n\n m.is_user_upload,\n m.is_intermediate_system_file,\n\n model_weights.token as `maybe_model_weights_token: tokens::tokens::model_weights::ModelWeightToken`,\n model_weights.title as maybe_model_weights_title,\n model_weights.weights_type as `maybe_model_weights_type: enums::by_table::model_weights::weights_types::WeightsType`,\n model_weights.weights_category as `maybe_model_weights_category: enums::by_table::model_weights::weights_category::WeightsCategory`,\n\n model_weight_cover_image.public_bucket_directory_hash as maybe_model_cover_image_public_bucket_hash,\n model_weight_cover_image.maybe_public_bucket_prefix as maybe_model_cover_image_public_bucket_prefix,\n model_weight_cover_image.maybe_public_bucket_extension as maybe_model_cover_image_public_bucket_extension,\n\n model_weight_creator.token as `maybe_model_weight_creator_user_token: tokens::tokens::users::UserToken`,\n model_weight_creator.username as maybe_model_weight_creator_username,\n model_weight_creator.display_name as maybe_model_weight_creator_display_name,\n model_weight_creator.email_gravatar_hash as maybe_model_weight_creator_gravatar_hash,\n\n m.extra_file_modification_info,\n\n m.public_bucket_directory_hash,\n m.maybe_public_bucket_prefix,\n m.maybe_public_bucket_extension,\n\n entity_stats.ratings_positive_count as maybe_ratings_positive_count,\n entity_stats.ratings_negative_count as maybe_ratings_negative_count,\n entity_stats.bookmark_count as maybe_bookmark_count,\n\n featured_items.entity_token IS NOT NULL AS is_featured,\n\n m.created_at,\n m.updated_at\n\nFROM media_files AS m\nLEFT OUTER JOIN users\n ON m.maybe_creator_user_token = users.token\nLEFT OUTER JOIN model_weights\n ON m.maybe_origin_model_token = model_weights.token\nLEFT OUTER JOIN media_files as media_file_cover_image\n ON media_file_cover_image.token = m.maybe_cover_image_media_file_token\nLEFT OUTER JOIN media_files as model_weight_cover_image\n ON model_weight_cover_image.token = model_weights.maybe_cover_image_media_file_token\nLEFT OUTER JOIN users as model_weight_creator\n ON model_weight_creator.token = model_weights.creator_user_token\nLEFT OUTER JOIN entity_stats\n ON entity_stats.entity_type = \"media_file\"\n AND entity_stats.entity_token = m.token\nLEFT OUTER JOIN prompts\n ON prompts.token = m.maybe_prompt_token\nLEFT OUTER JOIN featured_items\n ON featured_items.entity_type = 'media_file'\n AND featured_items.entity_token = m.token\n AND featured_items.deleted_at IS NULL\nWHERE\n m.token = ?\n AND m.user_deleted_at IS NULL\n AND m.mod_deleted_at IS NULL\n ",
"describe": {
"columns": [
{
@@ -255,6 +255,26 @@
},
{
"ordinal": 25,
"name": "is_user_upload",
"type_info": {
"type": "Tiny",
"flags": "NOT_NULL | MULTIPLE_KEY",
"char_set": 63,
"max_size": 1
}
},
{
"ordinal": 26,
"name": "is_intermediate_system_file",
"type_info": {
"type": "Tiny",
"flags": "NOT_NULL | MULTIPLE_KEY",
"char_set": 63,
"max_size": 1
}
},
{
"ordinal": 27,
"name": "maybe_model_weights_token: tokens::tokens::model_weights::ModelWeightToken",
"type_info": {
"type": "VarString",
@@ -264,7 +284,7 @@
}
},
{
"ordinal": 26,
"ordinal": 28,
"name": "maybe_model_weights_title",
"type_info": {
"type": "VarString",
@@ -274,7 +294,7 @@
}
},
{
"ordinal": 27,
"ordinal": 29,
"name": "maybe_model_weights_type: enums::by_table::model_weights::weights_types::WeightsType",
"type_info": {
"type": "VarString",
@@ -284,7 +304,7 @@
}
},
{
"ordinal": 28,
"ordinal": 30,
"name": "maybe_model_weights_category: enums::by_table::model_weights::weights_category::WeightsCategory",
"type_info": {
"type": "VarString",
@@ -294,7 +314,7 @@
}
},
{
"ordinal": 29,
"ordinal": 31,
"name": "maybe_model_cover_image_public_bucket_hash",
"type_info": {
"type": "VarString",
@@ -304,7 +324,7 @@
}
},
{
"ordinal": 30,
"ordinal": 32,
"name": "maybe_model_cover_image_public_bucket_prefix",
"type_info": {
"type": "VarString",
@@ -314,7 +334,7 @@
}
},
{
"ordinal": 31,
"ordinal": 33,
"name": "maybe_model_cover_image_public_bucket_extension",
"type_info": {
"type": "VarString",
@@ -324,7 +344,7 @@
}
},
{
"ordinal": 32,
"ordinal": 34,
"name": "maybe_model_weight_creator_user_token: tokens::tokens::users::UserToken",
"type_info": {
"type": "VarString",
@@ -334,7 +354,7 @@
}
},
{
"ordinal": 33,
"ordinal": 35,
"name": "maybe_model_weight_creator_username",
"type_info": {
"type": "VarString",
@@ -344,7 +364,7 @@
}
},
{
"ordinal": 34,
"ordinal": 36,
"name": "maybe_model_weight_creator_display_name",
"type_info": {
"type": "VarString",
@@ -354,7 +374,7 @@
}
},
{
"ordinal": 35,
"ordinal": 37,
"name": "maybe_model_weight_creator_gravatar_hash",
"type_info": {
"type": "String",
@@ -364,7 +384,17 @@
}
},
{
"ordinal": 36,
"ordinal": 38,
"name": "extra_file_modification_info",
"type_info": {
"type": "Blob",
"flags": "BLOB | BINARY",
"char_set": 224,
"max_size": 262140
}
},
{
"ordinal": 39,
"name": "public_bucket_directory_hash",
"type_info": {
"type": "VarString",
@@ -374,7 +404,7 @@
}
},
{
"ordinal": 37,
"ordinal": 40,
"name": "maybe_public_bucket_prefix",
"type_info": {
"type": "VarString",
@@ -384,7 +414,7 @@
}
},
{
"ordinal": 38,
"ordinal": 41,
"name": "maybe_public_bucket_extension",
"type_info": {
"type": "VarString",
@@ -394,7 +424,7 @@
}
},
{
"ordinal": 39,
"ordinal": 42,
"name": "maybe_ratings_positive_count",
"type_info": {
"type": "Long",
@@ -404,7 +434,7 @@
}
},
{
"ordinal": 40,
"ordinal": 43,
"name": "maybe_ratings_negative_count",
"type_info": {
"type": "Long",
@@ -414,7 +444,7 @@
}
},
{
"ordinal": 41,
"ordinal": 44,
"name": "maybe_bookmark_count",
"type_info": {
"type": "Long",
@@ -424,7 +454,7 @@
}
},
{
"ordinal": 42,
"ordinal": 45,
"name": "is_featured",
"type_info": {
"type": "LongLong",
@@ -434,21 +464,21 @@
}
},
{
"ordinal": 43,
"ordinal": 46,
"name": "created_at",
"type_info": {
"type": "Timestamp",
"flags": "NOT_NULL | BINARY | TIMESTAMP",
"flags": "NOT_NULL | MULTIPLE_KEY | BINARY | TIMESTAMP",
"char_set": 63,
"max_size": 19
}
},
{
"ordinal": 44,
"ordinal": 47,
"name": "updated_at",
"type_info": {
"type": "Timestamp",
"flags": "NOT_NULL | BINARY | TIMESTAMP | ON_UPDATE_NOW",
"flags": "NOT_NULL | MULTIPLE_KEY | BINARY | TIMESTAMP | ON_UPDATE_NOW",
"char_set": 63,
"max_size": 19
}
@@ -483,6 +513,9 @@
true,
true,
false,
false,
false,
true,
true,
true,
true,
@@ -505,5 +538,5 @@
false
]
},
"hash": "58cb3fd03fb215b1d323f6aa6a5fd713900b9d931700c4226a1d9713b5e469c7"
"hash": "57fa22e6cd4e82b801605c96eac21babd78df3df361b3be566993b78a46efef2"
}
@@ -0,0 +1,25 @@
{
"db_name": "MySQL",
"query": "\nSELECT\n sum(usage_count) as total_usage_count\nFROM\n model_weight_usage_counts\nWHERE\n token = ?\nGROUP BY token\nLIMIT 1\n ",
"describe": {
"columns": [
{
"ordinal": 0,
"name": "total_usage_count",
"type_info": {
"type": "NewDecimal",
"flags": "BINARY",
"char_set": 63,
"max_size": 33
}
}
],
"parameters": {
"Right": 1
},
"nullable": [
true
]
},
"hash": "5c95ce504e15853d238e8133753efe45180c9ee57f9f5431be9c1e88a77e4824"
}
@@ -1,6 +1,6 @@
{
"db_name": "MySQL",
"query": "\n SELECT\n wt.token as `token: tokens::tokens::model_weights::ModelWeightToken`,\n wt.title,\n wt.weights_type as `weights_type: enums::by_table::model_weights::weights_types::WeightsType`,\n wt.weights_category as `weights_category: enums::by_table::model_weights::weights_category::WeightsCategory`,\n wt.maybe_description_markdown,\n wt.maybe_description_rendered_html,\n\n wt.creator_user_token as `creator_user_token: tokens::tokens::users::UserToken`,\n users.username as creator_username,\n users.display_name as creator_display_name,\n users.email_gravatar_hash AS creator_gravatar_hash,\n\n wt.creator_ip_address,\n wt.creator_set_visibility as `creator_set_visibility: enums::common::visibility::Visibility`,\n wt.maybe_last_update_user_token as `maybe_last_update_user_token: tokens::tokens::users::UserToken`,\n wt.original_download_url,\n wt.original_filename,\n wt.file_size_bytes,\n wt.file_checksum_sha2,\n\n wt.public_bucket_hash,\n wt.maybe_public_bucket_prefix,\n wt.maybe_public_bucket_extension,\n\n cover_image.public_bucket_directory_hash as maybe_cover_image_public_bucket_hash,\n cover_image.maybe_public_bucket_prefix as maybe_cover_image_public_bucket_prefix,\n cover_image.maybe_public_bucket_extension as maybe_cover_image_public_bucket_extension,\n\n entity_stats.ratings_positive_count as maybe_ratings_positive_count,\n entity_stats.ratings_negative_count as maybe_ratings_negative_count,\n entity_stats.bookmark_count as maybe_bookmark_count,\n\n wt.version,\n wt.created_at,\n wt.updated_at,\n wt.user_deleted_at,\n wt.mod_deleted_at\n FROM model_weights as wt\n JOIN users\n ON users.token = wt.creator_user_token\n LEFT OUTER JOIN media_files as cover_image\n ON cover_image.token = wt.maybe_cover_image_media_file_token\n LEFT OUTER JOIN entity_stats\n ON entity_stats.entity_type = \"model_weight\"\n AND entity_stats.entity_token = wt.token\n WHERE\n wt.token = ?\n ",
"query": "\n SELECT\n wt.token as `token: tokens::tokens::model_weights::ModelWeightToken`,\n wt.title,\n wt.weights_type as `weights_type: enums::by_table::model_weights::weights_types::WeightsType`,\n wt.weights_category as `weights_category: enums::by_table::model_weights::weights_category::WeightsCategory`,\n wt.maybe_description_markdown,\n wt.maybe_description_rendered_html,\n\n wt.creator_user_token as `creator_user_token: tokens::tokens::users::UserToken`,\n users.username as creator_username,\n users.display_name as creator_display_name,\n users.email_gravatar_hash AS creator_gravatar_hash,\n\n wt.creator_ip_address,\n wt.creator_set_visibility as `creator_set_visibility: enums::common::visibility::Visibility`,\n wt.maybe_last_update_user_token as `maybe_last_update_user_token: tokens::tokens::users::UserToken`,\n wt.original_download_url,\n wt.original_filename,\n wt.file_size_bytes,\n wt.file_checksum_sha2,\n\n wt.public_bucket_hash,\n wt.maybe_public_bucket_prefix,\n wt.maybe_public_bucket_extension,\n\n cover_image.public_bucket_directory_hash as maybe_cover_image_public_bucket_hash,\n cover_image.maybe_public_bucket_prefix as maybe_cover_image_public_bucket_prefix,\n cover_image.maybe_public_bucket_extension as maybe_cover_image_public_bucket_extension,\n\n entity_stats.ratings_positive_count as maybe_ratings_positive_count,\n entity_stats.ratings_negative_count as maybe_ratings_negative_count,\n entity_stats.bookmark_count as maybe_bookmark_count,\n wt.cached_usage_count,\n\n featured_items.entity_token IS NOT NULL AS is_featured,\n\n wt.version,\n wt.created_at,\n wt.updated_at,\n wt.user_deleted_at,\n wt.mod_deleted_at\n\n FROM model_weights as wt\n JOIN users\n ON users.token = wt.creator_user_token\n LEFT OUTER JOIN media_files as cover_image\n ON cover_image.token = wt.maybe_cover_image_media_file_token\n LEFT OUTER JOIN entity_stats\n ON entity_stats.entity_type = \"model_weight\"\n AND entity_stats.entity_token = wt.token\n LEFT OUTER JOIN featured_items\n ON featured_items.entity_type = \"model_weight\"\n AND featured_items.entity_token = wt.token\n AND featured_items.deleted_at IS NULL\n WHERE\n wt.token = ?\n ",
"describe": {
"columns": [
{
@@ -265,6 +265,26 @@
},
{
"ordinal": 26,
"name": "cached_usage_count",
"type_info": {
"type": "LongLong",
"flags": "NOT_NULL | UNSIGNED",
"char_set": 63,
"max_size": 20
}
},
{
"ordinal": 27,
"name": "is_featured",
"type_info": {
"type": "LongLong",
"flags": "NOT_NULL | BINARY",
"char_set": 63,
"max_size": 1
}
},
{
"ordinal": 28,
"name": "version",
"type_info": {
"type": "Long",
@@ -274,7 +294,7 @@
}
},
{
"ordinal": 27,
"ordinal": 29,
"name": "created_at",
"type_info": {
"type": "Timestamp",
@@ -284,7 +304,7 @@
}
},
{
"ordinal": 28,
"ordinal": 30,
"name": "updated_at",
"type_info": {
"type": "Timestamp",
@@ -294,7 +314,7 @@
}
},
{
"ordinal": 29,
"ordinal": 31,
"name": "user_deleted_at",
"type_info": {
"type": "Timestamp",
@@ -304,7 +324,7 @@
}
},
{
"ordinal": 30,
"ordinal": 32,
"name": "mod_deleted_at",
"type_info": {
"type": "Timestamp",
@@ -347,9 +367,11 @@
false,
false,
false,
false,
false,
true,
true
]
},
"hash": "e32645b06d20a0037c3ca3d514b56af2dba8396f11a4c2a93ee4fab9b4579fc3"
"hash": "5e953a6ad7bcaaed0918109593652b03c7ab497cc65b59bbb6add011de6401f0"
}
@@ -0,0 +1,36 @@
{
"db_name": "MySQL",
"query": "\n SELECT\n token as `token: tokens::tokens::model_weights::ModelWeightToken`,\n cached_usage_count\n FROM model_weights\n ",
"describe": {
"columns": [
{
"ordinal": 0,
"name": "token: tokens::tokens::model_weights::ModelWeightToken",
"type_info": {
"type": "VarString",
"flags": "NOT_NULL | UNIQUE_KEY | BINARY | NO_DEFAULT_VALUE",
"char_set": 224,
"max_size": 128
}
},
{
"ordinal": 1,
"name": "cached_usage_count",
"type_info": {
"type": "LongLong",
"flags": "NOT_NULL | UNSIGNED",
"char_set": 63,
"max_size": 20
}
}
],
"parameters": {
"Right": 0
},
"nullable": [
false,
false
]
},
"hash": "5f24dfda13a53f434f87e9826a3a943bf29f58d85a6efb35c1b9ea9e94785ec9"
}
@@ -0,0 +1,47 @@
{
"db_name": "MySQL",
"query": "\nSELECT\n job_type as queue_type,\n count(*) as pending_job_count,\n NOW() as present_time\n FROM (\n SELECT\n token,\n job_type\n FROM generic_inference_jobs\n WHERE status IN (\"pending\", \"attempt_failed\")\n AND job_type IS NOT NULL\n UNION\n SELECT\n token,\n job_type\n FROM generic_inference_jobs\n WHERE status IN (\"started\")\n AND created_at > (CURDATE() - INTERVAL 15 MINUTE)\n AND job_type IS NOT NULL\n) as generic_inner\nGROUP BY queue_type\n ",
"describe": {
"columns": [
{
"ordinal": 0,
"name": "queue_type",
"type_info": {
"type": "VarString",
"flags": "BINARY",
"char_set": 224,
"max_size": 128
}
},
{
"ordinal": 1,
"name": "pending_job_count",
"type_info": {
"type": "LongLong",
"flags": "NOT_NULL | BINARY",
"char_set": 63,
"max_size": 21
}
},
{
"ordinal": 2,
"name": "present_time",
"type_info": {
"type": "Datetime",
"flags": "NOT_NULL | BINARY",
"char_set": 63,
"max_size": 19
}
}
],
"parameters": {
"Right": 0
},
"nullable": [
true,
false,
false
]
},
"hash": "73dc054488b2fa3efc923d3a90914a1450b73e99a377562484a0498ccce1676f"
}
@@ -0,0 +1,399 @@
{
"db_name": "MySQL",
"query": "\n SELECT\n wt.token as `token: tokens::tokens::model_weights::ModelWeightToken`,\n wt.title,\n wt.weights_type as `weights_type: enums::by_table::model_weights::weights_types::WeightsType`,\n wt.weights_category as `weights_category: enums::by_table::model_weights::weights_category::WeightsCategory`,\n wt.maybe_description_markdown,\n wt.maybe_description_rendered_html,\n\n wt.creator_user_token as `creator_user_token: tokens::tokens::users::UserToken`,\n users.username as creator_username,\n users.display_name as creator_display_name,\n users.email_gravatar_hash AS creator_gravatar_hash,\n\n wt.creator_ip_address,\n wt.creator_set_visibility as `creator_set_visibility: enums::common::visibility::Visibility`,\n wt.maybe_last_update_user_token as `maybe_last_update_user_token: tokens::tokens::users::UserToken`,\n wt.original_download_url,\n wt.original_filename,\n wt.file_size_bytes,\n wt.file_checksum_sha2,\n\n wt.public_bucket_hash,\n wt.maybe_public_bucket_prefix,\n wt.maybe_public_bucket_extension,\n\n cover_image.public_bucket_directory_hash as maybe_cover_image_public_bucket_hash,\n cover_image.maybe_public_bucket_prefix as maybe_cover_image_public_bucket_prefix,\n cover_image.maybe_public_bucket_extension as maybe_cover_image_public_bucket_extension,\n\n entity_stats.ratings_positive_count as maybe_ratings_positive_count,\n entity_stats.ratings_negative_count as maybe_ratings_negative_count,\n entity_stats.bookmark_count as maybe_bookmark_count,\n\n w_extension.ietf_language_tag as maybe_ietf_language_tag,\n w_extension.ietf_primary_language_subtag as maybe_ietf_primary_language_subtag,\n w_extension.maybe_default_pretrained_vocoder as `maybe_default_pretrained_vocoder: crate::column_types::vocoder_type::VocoderType`,\n w_extension.text_pipeline_type as maybe_text_pipeline_type,\n\n wt.version,\n wt.created_at,\n wt.updated_at,\n wt.user_deleted_at,\n wt.mod_deleted_at\n\n FROM model_weights as wt\n JOIN users\n ON users.token = wt.creator_user_token\n LEFT OUTER JOIN media_files as cover_image\n ON cover_image.token = wt.maybe_cover_image_media_file_token\n LEFT OUTER JOIN entity_stats\n ON entity_stats.entity_type = \"model_weight\"\n AND entity_stats.entity_token = wt.token\n\n LEFT OUTER JOIN model_weights_extension_tts_details as w_extension\n ON w_extension.model_weights_token = wt.token\n\n WHERE\n wt.maybe_migration_old_model_token = ?\n ",
"describe": {
"columns": [
{
"ordinal": 0,
"name": "token: tokens::tokens::model_weights::ModelWeightToken",
"type_info": {
"type": "VarString",
"flags": "NOT_NULL | UNIQUE_KEY | BINARY | NO_DEFAULT_VALUE",
"char_set": 224,
"max_size": 128
}
},
{
"ordinal": 1,
"name": "title",
"type_info": {
"type": "VarString",
"flags": "NOT_NULL | BINARY | NO_DEFAULT_VALUE",
"char_set": 224,
"max_size": 1020
}
},
{
"ordinal": 2,
"name": "weights_type: enums::by_table::model_weights::weights_types::WeightsType",
"type_info": {
"type": "VarString",
"flags": "NOT_NULL | MULTIPLE_KEY | BINARY | NO_DEFAULT_VALUE",
"char_set": 224,
"max_size": 128
}
},
{
"ordinal": 3,
"name": "weights_category: enums::by_table::model_weights::weights_category::WeightsCategory",
"type_info": {
"type": "VarString",
"flags": "NOT_NULL | MULTIPLE_KEY | BINARY | NO_DEFAULT_VALUE",
"char_set": 224,
"max_size": 128
}
},
{
"ordinal": 4,
"name": "maybe_description_markdown",
"type_info": {
"type": "Blob",
"flags": "BLOB | BINARY",
"char_set": 224,
"max_size": 262140
}
},
{
"ordinal": 5,
"name": "maybe_description_rendered_html",
"type_info": {
"type": "Blob",
"flags": "BLOB | BINARY",
"char_set": 224,
"max_size": 262140
}
},
{
"ordinal": 6,
"name": "creator_user_token: tokens::tokens::users::UserToken",
"type_info": {
"type": "VarString",
"flags": "NOT_NULL | MULTIPLE_KEY | BINARY | NO_DEFAULT_VALUE",
"char_set": 224,
"max_size": 128
}
},
{
"ordinal": 7,
"name": "creator_username",
"type_info": {
"type": "VarString",
"flags": "NOT_NULL | UNIQUE_KEY | BINARY | NO_DEFAULT_VALUE",
"char_set": 224,
"max_size": 80
}
},
{
"ordinal": 8,
"name": "creator_display_name",
"type_info": {
"type": "VarString",
"flags": "NOT_NULL | BINARY | NO_DEFAULT_VALUE",
"char_set": 224,
"max_size": 80
}
},
{
"ordinal": 9,
"name": "creator_gravatar_hash",
"type_info": {
"type": "String",
"flags": "NOT_NULL | BINARY | NO_DEFAULT_VALUE",
"char_set": 224,
"max_size": 128
}
},
{
"ordinal": 10,
"name": "creator_ip_address",
"type_info": {
"type": "VarString",
"flags": "NOT_NULL | BINARY | NO_DEFAULT_VALUE",
"char_set": 224,
"max_size": 160
}
},
{
"ordinal": 11,
"name": "creator_set_visibility: enums::common::visibility::Visibility",
"type_info": {
"type": "String",
"flags": "NOT_NULL | MULTIPLE_KEY | BINARY | ENUM",
"char_set": 224,
"max_size": 28
}
},
{
"ordinal": 12,
"name": "maybe_last_update_user_token: tokens::tokens::users::UserToken",
"type_info": {
"type": "VarString",
"flags": "BINARY",
"char_set": 224,
"max_size": 128
}
},
{
"ordinal": 13,
"name": "original_download_url",
"type_info": {
"type": "VarString",
"flags": "BINARY",
"char_set": 224,
"max_size": 2048
}
},
{
"ordinal": 14,
"name": "original_filename",
"type_info": {
"type": "VarString",
"flags": "BINARY",
"char_set": 224,
"max_size": 1020
}
},
{
"ordinal": 15,
"name": "file_size_bytes",
"type_info": {
"type": "LongLong",
"flags": "NOT_NULL",
"char_set": 63,
"max_size": 10
}
},
{
"ordinal": 16,
"name": "file_checksum_sha2",
"type_info": {
"type": "String",
"flags": "NOT_NULL | BINARY | NO_DEFAULT_VALUE",
"char_set": 224,
"max_size": 256
}
},
{
"ordinal": 17,
"name": "public_bucket_hash",
"type_info": {
"type": "VarString",
"flags": "NOT_NULL | BINARY | NO_DEFAULT_VALUE",
"char_set": 224,
"max_size": 128
}
},
{
"ordinal": 18,
"name": "maybe_public_bucket_prefix",
"type_info": {
"type": "VarString",
"flags": "BINARY",
"char_set": 224,
"max_size": 64
}
},
{
"ordinal": 19,
"name": "maybe_public_bucket_extension",
"type_info": {
"type": "VarString",
"flags": "BINARY",
"char_set": 224,
"max_size": 64
}
},
{
"ordinal": 20,
"name": "maybe_cover_image_public_bucket_hash",
"type_info": {
"type": "VarString",
"flags": "BINARY | NO_DEFAULT_VALUE",
"char_set": 224,
"max_size": 128
}
},
{
"ordinal": 21,
"name": "maybe_cover_image_public_bucket_prefix",
"type_info": {
"type": "VarString",
"flags": "BINARY",
"char_set": 224,
"max_size": 64
}
},
{
"ordinal": 22,
"name": "maybe_cover_image_public_bucket_extension",
"type_info": {
"type": "VarString",
"flags": "BINARY",
"char_set": 224,
"max_size": 64
}
},
{
"ordinal": 23,
"name": "maybe_ratings_positive_count",
"type_info": {
"type": "Long",
"flags": "UNSIGNED",
"char_set": 63,
"max_size": 10
}
},
{
"ordinal": 24,
"name": "maybe_ratings_negative_count",
"type_info": {
"type": "Long",
"flags": "UNSIGNED",
"char_set": 63,
"max_size": 10
}
},
{
"ordinal": 25,
"name": "maybe_bookmark_count",
"type_info": {
"type": "Long",
"flags": "UNSIGNED",
"char_set": 63,
"max_size": 10
}
},
{
"ordinal": 26,
"name": "maybe_ietf_language_tag",
"type_info": {
"type": "VarString",
"flags": "BINARY",
"char_set": 224,
"max_size": 256
}
},
{
"ordinal": 27,
"name": "maybe_ietf_primary_language_subtag",
"type_info": {
"type": "VarString",
"flags": "BINARY",
"char_set": 224,
"max_size": 48
}
},
{
"ordinal": 28,
"name": "maybe_default_pretrained_vocoder: crate::column_types::vocoder_type::VocoderType",
"type_info": {
"type": "VarString",
"flags": "BINARY",
"char_set": 224,
"max_size": 256
}
},
{
"ordinal": 29,
"name": "maybe_text_pipeline_type",
"type_info": {
"type": "VarString",
"flags": "BINARY",
"char_set": 224,
"max_size": 256
}
},
{
"ordinal": 30,
"name": "version",
"type_info": {
"type": "Long",
"flags": "NOT_NULL",
"char_set": 63,
"max_size": 11
}
},
{
"ordinal": 31,
"name": "created_at",
"type_info": {
"type": "Timestamp",
"flags": "NOT_NULL | BINARY | TIMESTAMP",
"char_set": 63,
"max_size": 19
}
},
{
"ordinal": 32,
"name": "updated_at",
"type_info": {
"type": "Timestamp",
"flags": "NOT_NULL | MULTIPLE_KEY | BINARY | TIMESTAMP | ON_UPDATE_NOW",
"char_set": 63,
"max_size": 19
}
},
{
"ordinal": 33,
"name": "user_deleted_at",
"type_info": {
"type": "Timestamp",
"flags": "MULTIPLE_KEY | BINARY",
"char_set": 63,
"max_size": 19
}
},
{
"ordinal": 34,
"name": "mod_deleted_at",
"type_info": {
"type": "Timestamp",
"flags": "MULTIPLE_KEY | BINARY",
"char_set": 63,
"max_size": 19
}
}
],
"parameters": {
"Right": 1
},
"nullable": [
false,
false,
false,
false,
true,
true,
false,
false,
false,
false,
false,
false,
true,
true,
true,
false,
false,
false,
true,
true,
true,
true,
true,
true,
true,
true,
true,
true,
true,
true,
false,
false,
false,
true,
true
]
},
"hash": "7fe0ebaab55fdbfd4ab447e872e95a4def5888a0bb9f237d8a13bac8336a534b"
}
@@ -1,12 +0,0 @@
{
"db_name": "MySQL",
"query": "\n INSERT INTO media_files\n SET\n token = ?,\n\n media_class = ?,\n media_type = ?,\n\n origin_category = ?, \n origin_product_category = ?, \n maybe_origin_model_type = ?, \n maybe_origin_model_token = ?, \n maybe_origin_filename = ?,\n\n is_batch_generated = ?,\n maybe_batch_token = ?,\n\n maybe_mime_type = ?,\n file_size_bytes = ?,\n maybe_duration_millis = ?,\n maybe_audio_encoding = ?, \n maybe_video_encoding = ?, \n maybe_frame_width = ?, \n maybe_frame_height = ?,\n maybe_prompt_token = ?,\n checksum_sha2 = ?,\n\n public_bucket_directory_hash = ?, \n maybe_public_bucket_prefix = ?, \n maybe_public_bucket_extension = ?, \n extra_file_modification_info = ?, \n\n maybe_creator_user_token = ?, \n maybe_creator_anonymous_visitor_token = ?, \n\n creator_ip_address = ?, \n creator_set_visibility = ?, \n\n maybe_creator_file_synthetic_id = ?, \n maybe_creator_category_synthetic_id = ?,\n\n maybe_mod_user_token = ?, \n is_generated_on_prem = ?, \n generated_by_worker = ?, \n generated_by_cluster = ?\n ",
"describe": {
"columns": [],
"parameters": {
"Right": 33
},
"nullable": []
},
"hash": "870ce367da8e3beb53578c6e3d44ff686ef9a23932f4d90c9083acd702127960"
}
@@ -1,6 +1,6 @@
{
"db_name": "MySQL",
"query": "\nSELECT\n token as `token: tokens::tokens::users::UserToken`,\n username,\n email_address,\n password_hash as `password_hash: crate::queries::users::user::lookup_user_for_login_result::VecBytes`,\n password_version,\n is_banned\nFROM users\nWHERE username = ?\nLIMIT 1\n ",
"query": "\nSELECT\n token as `token: tokens::tokens::users::UserToken`,\n username,\n email_address,\n password_hash as `password_hash: crate::queries::users::user::lookup_user_for_login_result::VecBytes`,\n password_version,\n is_banned,\n maybe_feature_flags\nFROM users\nWHERE username = ?\nLIMIT 1\n ",
"describe": {
"columns": [
{
@@ -62,6 +62,16 @@
"char_set": 63,
"max_size": 1
}
},
{
"ordinal": 6,
"name": "maybe_feature_flags",
"type_info": {
"type": "VarString",
"flags": "BINARY",
"char_set": 224,
"max_size": 1020
}
}
],
"parameters": {
@@ -73,8 +83,9 @@
false,
false,
false,
false
false,
true
]
},
"hash": "5795b8579a458706077b1fa95e4627b90eac6606bde543b6406233d081fd0eb5"
"hash": "8e577db7abde571a0f29fc9d678891349918f0882136d9f7a39b338f66270f11"
}
@@ -1,6 +1,6 @@
{
"db_name": "MySQL",
"query": "\nSELECT\n jobs.token as `job_token: tokens::tokens::generic_inference_jobs::InferenceJobToken`,\n\n jobs.status as `status: enums::common::job_status_plus::JobStatusPlus`,\n jobs.attempt_count,\n\n jobs.maybe_creator_user_token as `maybe_creator_user_token: tokens::tokens::users::UserToken`,\n jobs.maybe_creator_anonymous_visitor_token as `maybe_creator_anonymous_visitor_token: tokens::tokens::anonymous_visitor_tracking::AnonymousVisitorTrackingToken`,\n jobs.creator_ip_address,\n\n jobs.inference_category as `inference_category: enums::by_table::generic_inference_jobs::inference_category::InferenceCategory`,\n jobs.maybe_model_type,\n jobs.maybe_model_token,\n jobs.maybe_raw_inference_text,\n jobs.maybe_inference_args,\n\n jobs.frontend_failure_category as `maybe_frontend_failure_category: enums::by_table::generic_inference_jobs::frontend_failure_category::FrontendFailureCategory`,\n\n jobs.on_success_result_entity_type as maybe_result_entity_type,\n jobs.on_success_result_entity_token as maybe_result_entity_token,\n\n model_weights.title as maybe_model_weights_title,\n tts_models.title as maybe_tts_model_title,\n voice_conversion_models.title as maybe_voice_conversion_model_title,\n\n tts_results.public_bucket_wav_audio_path as maybe_tts_public_bucket_path,\n voice_conversion_results.public_bucket_hash as maybe_voice_conversion_public_bucket_hash,\n\n media_files.public_bucket_directory_hash as maybe_media_file_public_bucket_directory_hash,\n media_files.maybe_public_bucket_prefix as maybe_media_file_public_bucket_prefix,\n media_files.maybe_public_bucket_extension as maybe_media_file_public_bucket_extension,\n\n jobs.assigned_worker as maybe_assigned_worker,\n jobs.assigned_cluster as maybe_assigned_cluster,\n\n jobs.is_keepalive_required,\n\n jobs.created_at,\n jobs.updated_at,\n\n jobs.first_started_at as maybe_first_started_at,\n jobs.successfully_completed_at as maybe_successfully_completed_at,\n\n NOW() as database_clock\n\nFROM generic_inference_jobs as jobs\n\nLEFT OUTER JOIN model_weights ON jobs.maybe_model_token = model_weights.token\nLEFT OUTER JOIN tts_models ON jobs.maybe_model_token = tts_models.token\nLEFT OUTER JOIN voice_conversion_models ON jobs.maybe_model_token = voice_conversion_models.token\n\nLEFT OUTER JOIN tts_results ON jobs.on_success_result_entity_token = tts_results.token\nLEFT OUTER JOIN voice_conversion_results ON jobs.on_success_result_entity_token = voice_conversion_results.token\nLEFT OUTER JOIN media_files ON jobs.on_success_result_entity_token = media_files.token\n\nWHERE jobs.token = ?\n ",
"query": "\nSELECT\n jobs.token as `job_token: tokens::tokens::generic_inference_jobs::InferenceJobToken`,\n\n jobs.status as `status: enums::common::job_status_plus::JobStatusPlus`,\n jobs.attempt_count,\n\n jobs.maybe_creator_user_token as `maybe_creator_user_token: tokens::tokens::users::UserToken`,\n jobs.maybe_creator_anonymous_visitor_token as `maybe_creator_anonymous_visitor_token: tokens::tokens::anonymous_visitor_tracking::AnonymousVisitorTrackingToken`,\n jobs.creator_ip_address,\n\n jobs.product_category as `product_category: enums::by_table::generic_inference_jobs::inference_job_product_category::InferenceJobProductCategory`,\n jobs.inference_category as `inference_category: enums::by_table::generic_inference_jobs::inference_category::InferenceCategory`,\n jobs.maybe_model_type,\n jobs.maybe_model_token,\n jobs.maybe_raw_inference_text,\n jobs.maybe_inference_args,\n\n jobs.frontend_failure_category as `maybe_frontend_failure_category: enums::by_table::generic_inference_jobs::frontend_failure_category::FrontendFailureCategory`,\n\n jobs.on_success_result_entity_type as maybe_result_entity_type,\n jobs.on_success_result_entity_token as maybe_result_entity_token,\n\n model_weights.title as maybe_model_weights_title,\n tts_models.title as maybe_tts_model_title,\n voice_conversion_models.title as maybe_voice_conversion_model_title,\n\n tts_results.public_bucket_wav_audio_path as maybe_tts_public_bucket_path,\n voice_conversion_results.public_bucket_hash as maybe_voice_conversion_public_bucket_hash,\n\n media_files.public_bucket_directory_hash as maybe_media_file_public_bucket_directory_hash,\n media_files.maybe_public_bucket_prefix as maybe_media_file_public_bucket_prefix,\n media_files.maybe_public_bucket_extension as maybe_media_file_public_bucket_extension,\n\n jobs.assigned_worker as maybe_assigned_worker,\n jobs.assigned_cluster as maybe_assigned_cluster,\n\n jobs.is_keepalive_required,\n\n jobs.created_at,\n jobs.updated_at,\n\n jobs.first_started_at as maybe_first_started_at,\n jobs.successfully_completed_at as maybe_successfully_completed_at,\n\n NOW() as database_clock\n\nFROM generic_inference_jobs as jobs\n\nLEFT OUTER JOIN model_weights ON jobs.maybe_model_token = model_weights.token\nLEFT OUTER JOIN tts_models ON jobs.maybe_model_token = tts_models.token\nLEFT OUTER JOIN voice_conversion_models ON jobs.maybe_model_token = voice_conversion_models.token\n\nLEFT OUTER JOIN tts_results ON jobs.on_success_result_entity_token = tts_results.token\nLEFT OUTER JOIN voice_conversion_results ON jobs.on_success_result_entity_token = voice_conversion_results.token\nLEFT OUTER JOIN media_files ON jobs.on_success_result_entity_token = media_files.token\n\nWHERE jobs.token = ?\n ",
"describe": {
"columns": [
{
@@ -65,6 +65,16 @@
},
{
"ordinal": 6,
"name": "product_category: enums::by_table::generic_inference_jobs::inference_job_product_category::InferenceJobProductCategory",
"type_info": {
"type": "VarString",
"flags": "MULTIPLE_KEY | BINARY",
"char_set": 224,
"max_size": 128
}
},
{
"ordinal": 7,
"name": "inference_category: enums::by_table::generic_inference_jobs::inference_category::InferenceCategory",
"type_info": {
"type": "VarString",
@@ -74,7 +84,7 @@
}
},
{
"ordinal": 7,
"ordinal": 8,
"name": "maybe_model_type",
"type_info": {
"type": "VarString",
@@ -84,7 +94,7 @@
}
},
{
"ordinal": 8,
"ordinal": 9,
"name": "maybe_model_token",
"type_info": {
"type": "VarString",
@@ -94,7 +104,7 @@
}
},
{
"ordinal": 9,
"ordinal": 10,
"name": "maybe_raw_inference_text",
"type_info": {
"type": "Blob",
@@ -104,7 +114,7 @@
}
},
{
"ordinal": 10,
"ordinal": 11,
"name": "maybe_inference_args",
"type_info": {
"type": "Blob",
@@ -114,7 +124,7 @@
}
},
{
"ordinal": 11,
"ordinal": 12,
"name": "maybe_frontend_failure_category: enums::by_table::generic_inference_jobs::frontend_failure_category::FrontendFailureCategory",
"type_info": {
"type": "VarString",
@@ -124,7 +134,7 @@
}
},
{
"ordinal": 12,
"ordinal": 13,
"name": "maybe_result_entity_type",
"type_info": {
"type": "VarString",
@@ -134,7 +144,7 @@
}
},
{
"ordinal": 13,
"ordinal": 14,
"name": "maybe_result_entity_token",
"type_info": {
"type": "VarString",
@@ -144,7 +154,7 @@
}
},
{
"ordinal": 14,
"ordinal": 15,
"name": "maybe_model_weights_title",
"type_info": {
"type": "VarString",
@@ -154,7 +164,7 @@
}
},
{
"ordinal": 15,
"ordinal": 16,
"name": "maybe_tts_model_title",
"type_info": {
"type": "VarString",
@@ -164,7 +174,7 @@
}
},
{
"ordinal": 16,
"ordinal": 17,
"name": "maybe_voice_conversion_model_title",
"type_info": {
"type": "VarString",
@@ -174,7 +184,7 @@
}
},
{
"ordinal": 17,
"ordinal": 18,
"name": "maybe_tts_public_bucket_path",
"type_info": {
"type": "VarString",
@@ -184,7 +194,7 @@
}
},
{
"ordinal": 18,
"ordinal": 19,
"name": "maybe_voice_conversion_public_bucket_hash",
"type_info": {
"type": "VarString",
@@ -194,7 +204,7 @@
}
},
{
"ordinal": 19,
"ordinal": 20,
"name": "maybe_media_file_public_bucket_directory_hash",
"type_info": {
"type": "VarString",
@@ -204,7 +214,7 @@
}
},
{
"ordinal": 20,
"ordinal": 21,
"name": "maybe_media_file_public_bucket_prefix",
"type_info": {
"type": "VarString",
@@ -214,7 +224,7 @@
}
},
{
"ordinal": 21,
"ordinal": 22,
"name": "maybe_media_file_public_bucket_extension",
"type_info": {
"type": "VarString",
@@ -224,7 +234,7 @@
}
},
{
"ordinal": 22,
"ordinal": 23,
"name": "maybe_assigned_worker",
"type_info": {
"type": "VarString",
@@ -234,7 +244,7 @@
}
},
{
"ordinal": 23,
"ordinal": 24,
"name": "maybe_assigned_cluster",
"type_info": {
"type": "VarString",
@@ -244,7 +254,7 @@
}
},
{
"ordinal": 24,
"ordinal": 25,
"name": "is_keepalive_required",
"type_info": {
"type": "Tiny",
@@ -254,17 +264,17 @@
}
},
{
"ordinal": 25,
"ordinal": 26,
"name": "created_at",
"type_info": {
"type": "Timestamp",
"flags": "NOT_NULL | BINARY | TIMESTAMP",
"flags": "NOT_NULL | MULTIPLE_KEY | BINARY | TIMESTAMP",
"char_set": 63,
"max_size": 19
}
},
{
"ordinal": 26,
"ordinal": 27,
"name": "updated_at",
"type_info": {
"type": "Timestamp",
@@ -274,7 +284,7 @@
}
},
{
"ordinal": 27,
"ordinal": 28,
"name": "maybe_first_started_at",
"type_info": {
"type": "Timestamp",
@@ -284,7 +294,7 @@
}
},
{
"ordinal": 28,
"ordinal": 29,
"name": "maybe_successfully_completed_at",
"type_info": {
"type": "Timestamp",
@@ -294,7 +304,7 @@
}
},
{
"ordinal": 29,
"ordinal": 30,
"name": "database_clock",
"type_info": {
"type": "Datetime",
@@ -314,6 +324,7 @@
true,
true,
false,
true,
false,
true,
true,
@@ -340,5 +351,5 @@
false
]
},
"hash": "e5121d132d93ec43e48197e00b19040a50ff2942224dc70b0faa0ec988aee7cf"
"hash": "90366e1705a0343bdfe4fc472d701b8e1dbd3a2dabedaadb633ac3542de72fa7"
}
@@ -0,0 +1,12 @@
{
"db_name": "MySQL",
"query": "\nINSERT INTO model_weight_usage_counts\nSET\n token = ?,\n on_date = ?,\n usage_count = ?\n\n\nON DUPLICATE KEY UPDATE\n usage_count = ?\n ",
"describe": {
"columns": [],
"parameters": {
"Right": 4
},
"nullable": []
},
"hash": "99e69537a33dd54d4c4433f24863e1749f544152578d503fc86d0503a425ae8d"
}
@@ -1,12 +0,0 @@
{
"db_name": "MySQL",
"query": "\nINSERT INTO generic_inference_jobs\nSET\n token = ?,\n uuid_idempotency_token = ?,\n\n job_type = ?,\n\n inference_category = ?,\n maybe_model_type = ?,\n maybe_model_token = ?,\n\n maybe_input_source_token = ?,\n maybe_input_source_token_type = ?,\n\n maybe_download_url = ?,\n maybe_cover_image_media_file_token = ?,\n\n maybe_raw_inference_text = ?,\n\n maybe_inference_args = ?,\n\n maybe_creator_user_token = ?,\n maybe_creator_anonymous_visitor_token = ?,\n creator_ip_address = ?,\n\n creator_set_visibility = ?,\n\n priority_level = ?,\n is_keepalive_required = ?,\n max_duration_seconds = ?,\n\n is_debug_request = ?,\n maybe_routing_tag = ?,\n\n status = \"pending\"\n ",
"describe": {
"columns": [],
"parameters": {
"Right": 21
},
"nullable": []
},
"hash": "9b4c6f0d0db1c92e4d3eed8d572fa92c885bad4adcc053ae490b3a76c6c116d4"
}
@@ -0,0 +1,47 @@
{
"db_name": "MySQL",
"query": "\nSELECT\n distinct coalesce(w.token, w_old.token) as token,\n mwuc.usage_count as maybe_previously_cached_model_use_count,\n COUNT(*) as usage_count\nFROM\n media_files as f\nLEFT OUTER JOIN model_weights as w\n ON f.maybe_origin_model_token = w.token\nLEFT OUTER JOIN model_weights as w_old\n ON f.maybe_origin_model_token = w_old.maybe_migration_old_model_token\nLEFT OUTER JOIN model_weight_usage_counts as mwuc\n ON coalesce(w.token, w_old.token) = mwuc.token\n AND mwuc.on_date = ?\nWHERE f.maybe_origin_model_token IS NOT NULL\n AND f.created_at >= ?\n AND f.created_at < ? + INTERVAL 1 DAY\nGROUP BY coalesce(w.token, w_old.token), mwuc.usage_count\nORDER BY usage_count DESC\n ",
"describe": {
"columns": [
{
"ordinal": 0,
"name": "token",
"type_info": {
"type": "VarString",
"flags": "BINARY",
"char_set": 224,
"max_size": 128
}
},
{
"ordinal": 1,
"name": "maybe_previously_cached_model_use_count",
"type_info": {
"type": "Long",
"flags": "MULTIPLE_KEY | UNSIGNED",
"char_set": 63,
"max_size": 10
}
},
{
"ordinal": 2,
"name": "usage_count",
"type_info": {
"type": "LongLong",
"flags": "NOT_NULL | BINARY",
"char_set": 63,
"max_size": 21
}
}
],
"parameters": {
"Right": 3
},
"nullable": [
true,
true,
false
]
},
"hash": "9e99e21963271f4ab229a9efba566340ce1a33375762cc140f941885f2772cfb"
}
@@ -0,0 +1,12 @@
{
"db_name": "MySQL",
"query": "\nINSERT INTO generic_inference_jobs\nSET\n token = ?,\n uuid_idempotency_token = ?,\n\n job_type = ?,\n\n product_category = ?,\n\n inference_category = ?,\n maybe_model_type = ?,\n maybe_model_token = ?,\n\n maybe_input_source_token = ?,\n maybe_input_source_token_type = ?,\n\n maybe_download_url = ?,\n maybe_cover_image_media_file_token = ?,\n\n maybe_raw_inference_text = ?,\n\n maybe_inference_args = ?,\n\n maybe_creator_user_token = ?,\n maybe_creator_anonymous_visitor_token = ?,\n creator_ip_address = ?,\n\n creator_set_visibility = ?,\n\n priority_level = ?,\n is_keepalive_required = ?,\n max_duration_seconds = ?,\n\n is_debug_request = ?,\n maybe_routing_tag = ?,\n\n status = \"pending\"\n ",
"describe": {
"columns": [],
"parameters": {
"Right": 22
},
"nullable": []
},
"hash": "b48e80845d80a6c07099918807d0495b8d70dca339cb1332e05bb3943fbb24c4"
}
@@ -0,0 +1,399 @@
{
"db_name": "MySQL",
"query": "\n SELECT\n wt.token as `token: tokens::tokens::model_weights::ModelWeightToken`,\n wt.title,\n wt.weights_type as `weights_type: enums::by_table::model_weights::weights_types::WeightsType`,\n wt.weights_category as `weights_category: enums::by_table::model_weights::weights_category::WeightsCategory`,\n wt.maybe_description_markdown,\n wt.maybe_description_rendered_html,\n wt.creator_ip_address,\n wt.creator_set_visibility as `creator_set_visibility: enums::common::visibility::Visibility`,\n\n wt.creator_user_token as `creator_user_token: tokens::tokens::users::UserToken`,\n users.username as creator_username,\n users.display_name as creator_display_name,\n users.email_gravatar_hash AS creator_gravatar_hash,\n\n wt.maybe_last_update_user_token as `maybe_last_update_user_token: tokens::tokens::users::UserToken`,\n wt.original_download_url,\n wt.original_filename,\n wt.file_size_bytes,\n wt.file_checksum_sha2,\n wt.public_bucket_hash,\n wt.maybe_public_bucket_prefix,\n wt.maybe_public_bucket_extension,\n\n cover_image.public_bucket_directory_hash as maybe_cover_image_public_bucket_hash,\n cover_image.maybe_public_bucket_prefix as maybe_cover_image_public_bucket_prefix,\n cover_image.maybe_public_bucket_extension as maybe_cover_image_public_bucket_extension,\n\n entity_stats.ratings_positive_count as maybe_ratings_positive_count,\n entity_stats.ratings_negative_count as maybe_ratings_negative_count,\n entity_stats.bookmark_count as maybe_bookmark_count,\n\n w_extension.ietf_language_tag as maybe_ietf_language_tag,\n w_extension.ietf_primary_language_subtag as maybe_ietf_primary_language_subtag,\n w_extension.maybe_default_pretrained_vocoder as `maybe_default_pretrained_vocoder: crate::column_types::vocoder_type::VocoderType`,\n w_extension.text_pipeline_type as maybe_text_pipeline_type,\n\n wt.version,\n wt.created_at,\n wt.updated_at,\n wt.user_deleted_at,\n wt.mod_deleted_at\n\n FROM model_weights as wt\n JOIN users\n ON users.token = wt.creator_user_token\n LEFT OUTER JOIN media_files as cover_image\n ON cover_image.token = wt.maybe_cover_image_media_file_token\n LEFT OUTER JOIN entity_stats\n ON entity_stats.entity_type = \"model_weight\"\n AND entity_stats.entity_token = wt.token\n\n LEFT OUTER JOIN model_weights_extension_tts_details as w_extension\n ON w_extension.model_weights_token = wt.token\n\n WHERE\n wt.maybe_migration_old_model_token = ?\n AND wt.user_deleted_at IS NULL\n AND wt.mod_deleted_at IS NULL\n ",
"describe": {
"columns": [
{
"ordinal": 0,
"name": "token: tokens::tokens::model_weights::ModelWeightToken",
"type_info": {
"type": "VarString",
"flags": "NOT_NULL | UNIQUE_KEY | BINARY | NO_DEFAULT_VALUE",
"char_set": 224,
"max_size": 128
}
},
{
"ordinal": 1,
"name": "title",
"type_info": {
"type": "VarString",
"flags": "NOT_NULL | BINARY | NO_DEFAULT_VALUE",
"char_set": 224,
"max_size": 1020
}
},
{
"ordinal": 2,
"name": "weights_type: enums::by_table::model_weights::weights_types::WeightsType",
"type_info": {
"type": "VarString",
"flags": "NOT_NULL | MULTIPLE_KEY | BINARY | NO_DEFAULT_VALUE",
"char_set": 224,
"max_size": 128
}
},
{
"ordinal": 3,
"name": "weights_category: enums::by_table::model_weights::weights_category::WeightsCategory",
"type_info": {
"type": "VarString",
"flags": "NOT_NULL | MULTIPLE_KEY | BINARY | NO_DEFAULT_VALUE",
"char_set": 224,
"max_size": 128
}
},
{
"ordinal": 4,
"name": "maybe_description_markdown",
"type_info": {
"type": "Blob",
"flags": "BLOB | BINARY",
"char_set": 224,
"max_size": 262140
}
},
{
"ordinal": 5,
"name": "maybe_description_rendered_html",
"type_info": {
"type": "Blob",
"flags": "BLOB | BINARY",
"char_set": 224,
"max_size": 262140
}
},
{
"ordinal": 6,
"name": "creator_ip_address",
"type_info": {
"type": "VarString",
"flags": "NOT_NULL | BINARY | NO_DEFAULT_VALUE",
"char_set": 224,
"max_size": 160
}
},
{
"ordinal": 7,
"name": "creator_set_visibility: enums::common::visibility::Visibility",
"type_info": {
"type": "String",
"flags": "NOT_NULL | MULTIPLE_KEY | BINARY | ENUM",
"char_set": 224,
"max_size": 28
}
},
{
"ordinal": 8,
"name": "creator_user_token: tokens::tokens::users::UserToken",
"type_info": {
"type": "VarString",
"flags": "NOT_NULL | MULTIPLE_KEY | BINARY | NO_DEFAULT_VALUE",
"char_set": 224,
"max_size": 128
}
},
{
"ordinal": 9,
"name": "creator_username",
"type_info": {
"type": "VarString",
"flags": "NOT_NULL | UNIQUE_KEY | BINARY | NO_DEFAULT_VALUE",
"char_set": 224,
"max_size": 80
}
},
{
"ordinal": 10,
"name": "creator_display_name",
"type_info": {
"type": "VarString",
"flags": "NOT_NULL | BINARY | NO_DEFAULT_VALUE",
"char_set": 224,
"max_size": 80
}
},
{
"ordinal": 11,
"name": "creator_gravatar_hash",
"type_info": {
"type": "String",
"flags": "NOT_NULL | BINARY | NO_DEFAULT_VALUE",
"char_set": 224,
"max_size": 128
}
},
{
"ordinal": 12,
"name": "maybe_last_update_user_token: tokens::tokens::users::UserToken",
"type_info": {
"type": "VarString",
"flags": "BINARY",
"char_set": 224,
"max_size": 128
}
},
{
"ordinal": 13,
"name": "original_download_url",
"type_info": {
"type": "VarString",
"flags": "BINARY",
"char_set": 224,
"max_size": 2048
}
},
{
"ordinal": 14,
"name": "original_filename",
"type_info": {
"type": "VarString",
"flags": "BINARY",
"char_set": 224,
"max_size": 1020
}
},
{
"ordinal": 15,
"name": "file_size_bytes",
"type_info": {
"type": "LongLong",
"flags": "NOT_NULL",
"char_set": 63,
"max_size": 10
}
},
{
"ordinal": 16,
"name": "file_checksum_sha2",
"type_info": {
"type": "String",
"flags": "NOT_NULL | BINARY | NO_DEFAULT_VALUE",
"char_set": 224,
"max_size": 256
}
},
{
"ordinal": 17,
"name": "public_bucket_hash",
"type_info": {
"type": "VarString",
"flags": "NOT_NULL | BINARY | NO_DEFAULT_VALUE",
"char_set": 224,
"max_size": 128
}
},
{
"ordinal": 18,
"name": "maybe_public_bucket_prefix",
"type_info": {
"type": "VarString",
"flags": "BINARY",
"char_set": 224,
"max_size": 64
}
},
{
"ordinal": 19,
"name": "maybe_public_bucket_extension",
"type_info": {
"type": "VarString",
"flags": "BINARY",
"char_set": 224,
"max_size": 64
}
},
{
"ordinal": 20,
"name": "maybe_cover_image_public_bucket_hash",
"type_info": {
"type": "VarString",
"flags": "BINARY | NO_DEFAULT_VALUE",
"char_set": 224,
"max_size": 128
}
},
{
"ordinal": 21,
"name": "maybe_cover_image_public_bucket_prefix",
"type_info": {
"type": "VarString",
"flags": "BINARY",
"char_set": 224,
"max_size": 64
}
},
{
"ordinal": 22,
"name": "maybe_cover_image_public_bucket_extension",
"type_info": {
"type": "VarString",
"flags": "BINARY",
"char_set": 224,
"max_size": 64
}
},
{
"ordinal": 23,
"name": "maybe_ratings_positive_count",
"type_info": {
"type": "Long",
"flags": "UNSIGNED",
"char_set": 63,
"max_size": 10
}
},
{
"ordinal": 24,
"name": "maybe_ratings_negative_count",
"type_info": {
"type": "Long",
"flags": "UNSIGNED",
"char_set": 63,
"max_size": 10
}
},
{
"ordinal": 25,
"name": "maybe_bookmark_count",
"type_info": {
"type": "Long",
"flags": "UNSIGNED",
"char_set": 63,
"max_size": 10
}
},
{
"ordinal": 26,
"name": "maybe_ietf_language_tag",
"type_info": {
"type": "VarString",
"flags": "BINARY",
"char_set": 224,
"max_size": 256
}
},
{
"ordinal": 27,
"name": "maybe_ietf_primary_language_subtag",
"type_info": {
"type": "VarString",
"flags": "BINARY",
"char_set": 224,
"max_size": 48
}
},
{
"ordinal": 28,
"name": "maybe_default_pretrained_vocoder: crate::column_types::vocoder_type::VocoderType",
"type_info": {
"type": "VarString",
"flags": "BINARY",
"char_set": 224,
"max_size": 256
}
},
{
"ordinal": 29,
"name": "maybe_text_pipeline_type",
"type_info": {
"type": "VarString",
"flags": "BINARY",
"char_set": 224,
"max_size": 256
}
},
{
"ordinal": 30,
"name": "version",
"type_info": {
"type": "Long",
"flags": "NOT_NULL",
"char_set": 63,
"max_size": 11
}
},
{
"ordinal": 31,
"name": "created_at",
"type_info": {
"type": "Timestamp",
"flags": "NOT_NULL | BINARY | TIMESTAMP",
"char_set": 63,
"max_size": 19
}
},
{
"ordinal": 32,
"name": "updated_at",
"type_info": {
"type": "Timestamp",
"flags": "NOT_NULL | MULTIPLE_KEY | BINARY | TIMESTAMP | ON_UPDATE_NOW",
"char_set": 63,
"max_size": 19
}
},
{
"ordinal": 33,
"name": "user_deleted_at",
"type_info": {
"type": "Timestamp",
"flags": "MULTIPLE_KEY | BINARY",
"char_set": 63,
"max_size": 19
}
},
{
"ordinal": 34,
"name": "mod_deleted_at",
"type_info": {
"type": "Timestamp",
"flags": "MULTIPLE_KEY | BINARY",
"char_set": 63,
"max_size": 19
}
}
],
"parameters": {
"Right": 1
},
"nullable": [
false,
false,
false,
false,
true,
true,
false,
false,
false,
false,
false,
false,
true,
true,
true,
false,
false,
false,
true,
true,
true,
true,
true,
true,
true,
true,
true,
true,
true,
true,
false,
false,
false,
true,
true
]
},
"hash": "bde5d2fed3508fb2c289fe583f35b0d6e6bb38d15da0271aaed761cbc342dac3"
}
@@ -0,0 +1,36 @@
{
"db_name": "MySQL",
"query": "\nSELECT\n distinct coalesce(w.token, w_new.token) as token,\n COUNT(*) as usage_count\nFROM\n tts_results as r\nLEFT OUTER JOIN model_weights as w\n ON r.model_token = w.maybe_migration_old_model_token\nLEFT OUTER JOIN model_weights as w_new\n ON r.model_token = w_new.token\nWHERE r.created_at >= ?\n AND r.created_at < ? + INTERVAL 1 DAY\nGROUP BY coalesce(w.token, w_new.token)\nORDER BY usage_count DESC\n ",
"describe": {
"columns": [
{
"ordinal": 0,
"name": "token",
"type_info": {
"type": "VarString",
"flags": "BINARY",
"char_set": 224,
"max_size": 128
}
},
{
"ordinal": 1,
"name": "usage_count",
"type_info": {
"type": "LongLong",
"flags": "NOT_NULL | BINARY",
"char_set": 63,
"max_size": 21
}
}
],
"parameters": {
"Right": 2
},
"nullable": [
true,
false
]
},
"hash": "bf1345a4d296a2696588203f10527f6ad8a9c5d08528017729421a7b3ab776ff"
}
@@ -0,0 +1,12 @@
{
"db_name": "MySQL",
"query": "\n INSERT INTO media_files\n SET\n token = ?,\n\n media_class = ?,\n media_type = ?,\n\n is_user_upload = ?,\n is_intermediate_system_file = ?,\n\n origin_category = ?, \n origin_product_category = ?, \n maybe_origin_model_type = ?, \n maybe_origin_model_token = ?, \n maybe_origin_filename = ?,\n\n is_batch_generated = ?,\n maybe_batch_token = ?,\n\n maybe_mime_type = ?,\n file_size_bytes = ?,\n maybe_duration_millis = ?,\n maybe_audio_encoding = ?, \n maybe_video_encoding = ?, \n maybe_frame_width = ?, \n maybe_frame_height = ?,\n maybe_prompt_token = ?,\n checksum_sha2 = ?,\n\n maybe_title = ?,\n maybe_text_transcript = ?,\n\n maybe_scene_source_media_file_token = ?,\n\n public_bucket_directory_hash = ?, \n maybe_public_bucket_prefix = ?, \n maybe_public_bucket_extension = ?, \n\n maybe_creator_user_token = ?, \n maybe_creator_anonymous_visitor_token = ?, \n\n creator_ip_address = ?, \n creator_set_visibility = ?, \n\n maybe_creator_file_synthetic_id = ?, \n maybe_creator_category_synthetic_id = ?,\n\n extra_file_modification_info = ?,\n\n maybe_mod_user_token = ?, \n is_generated_on_prem = ?, \n generated_by_worker = ?, \n generated_by_cluster = ?\n ",
"describe": {
"columns": [],
"parameters": {
"Right": 38
},
"nullable": []
},
"hash": "c58f414b5e4d0f0420d1894e2f40311e5613919f49f3ac91f81f5fc2bef1bea8"
}
@@ -1,6 +1,6 @@
{
"db_name": "MySQL",
"query": "\nSELECT\n tts.token as model_token,\n tts.tts_model_type as `tts_model_type: enums::by_table::tts_models::tts_model_type::TtsModelType`,\n tts.text_pipeline_type,\n tts.text_preprocessing_algorithm,\n tts.maybe_default_pretrained_vocoder,\n\n tts.use_default_mel_multiply_factor,\n tts.maybe_custom_mel_multiply_factor,\n\n tts.creator_user_token,\n users.username as creator_username,\n users.display_name as creator_display_name,\n users.email_gravatar_hash as creator_gravatar_hash,\n users.is_banned as creator_is_banned,\n\n tts.title,\n tts.description_markdown,\n tts.description_rendered_html,\n\n tts.ietf_language_tag,\n tts.ietf_primary_language_subtag,\n\n tts.is_front_page_featured,\n tts.is_twitch_featured,\n\n tts.maybe_suggested_unique_bot_command,\n\n tts.user_ratings_positive_count,\n tts.user_ratings_negative_count,\n tts.user_ratings_total_count,\n\n tts.creator_set_visibility,\n\n tts.is_locked_from_use,\n tts.is_locked_from_user_modification,\n\n tts.maybe_custom_vocoder_token,\n vocoder.title as maybe_custom_vocoder_title,\n vocoder_user.token as maybe_custom_vocoder_creator_user_token,\n vocoder_user.username as maybe_custom_vocoder_creator_username,\n vocoder_user.display_name as maybe_custom_vocoder_creator_display_name,\n vocoder_user.email_gravatar_hash as maybe_custom_vocoder_creator_gravatar_hash,\n\n tts.created_at,\n tts.updated_at,\n\n tts.creator_ip_address_creation,\n tts.creator_ip_address_last_update,\n tts.mod_deleted_at,\n tts.user_deleted_at\n\nFROM tts_models as tts\nJOIN users\n ON users.token = tts.creator_user_token\n\nLEFT OUTER JOIN vocoder_models AS vocoder\n ON vocoder.token = tts.maybe_custom_vocoder_token\nLEFT OUTER JOIN users AS vocoder_user\n ON vocoder_user.token = vocoder.creator_user_token\n\nWHERE\n tts.token = ?\n AND tts.user_deleted_at IS NULL\n AND tts.mod_deleted_at IS NULL\n ",
"query": "\nSELECT\n tts.token as model_token,\n tts.tts_model_type as `tts_model_type: enums::by_table::tts_models::tts_model_type::TtsModelType`,\n tts.text_pipeline_type,\n tts.text_preprocessing_algorithm,\n tts.maybe_default_pretrained_vocoder,\n\n tts.use_default_mel_multiply_factor,\n tts.maybe_custom_mel_multiply_factor,\n\n tts.creator_user_token,\n users.username as creator_username,\n users.display_name as creator_display_name,\n users.email_gravatar_hash as creator_gravatar_hash,\n users.is_banned as creator_is_banned,\n\n tts.title,\n tts.description_markdown,\n tts.description_rendered_html,\n\n tts.ietf_language_tag,\n tts.ietf_primary_language_subtag,\n\n tts.is_front_page_featured,\n tts.is_twitch_featured,\n\n tts.maybe_suggested_unique_bot_command,\n\n tts.user_ratings_positive_count,\n tts.user_ratings_negative_count,\n tts.user_ratings_total_count,\n\n tts.creator_set_visibility,\n\n tts.is_locked_from_use,\n tts.is_locked_from_user_modification,\n\n tts.maybe_migration_new_model_weights_token,\n\n tts.maybe_custom_vocoder_token,\n vocoder.title as maybe_custom_vocoder_title,\n vocoder_user.token as maybe_custom_vocoder_creator_user_token,\n vocoder_user.username as maybe_custom_vocoder_creator_username,\n vocoder_user.display_name as maybe_custom_vocoder_creator_display_name,\n vocoder_user.email_gravatar_hash as maybe_custom_vocoder_creator_gravatar_hash,\n\n tts.created_at,\n tts.updated_at,\n\n tts.creator_ip_address_creation,\n tts.creator_ip_address_last_update,\n tts.mod_deleted_at,\n tts.user_deleted_at\n\nFROM tts_models as tts\nJOIN users\n ON users.token = tts.creator_user_token\n\nLEFT OUTER JOIN vocoder_models AS vocoder\n ON vocoder.token = tts.maybe_custom_vocoder_token\nLEFT OUTER JOIN users AS vocoder_user\n ON vocoder_user.token = vocoder.creator_user_token\n\nWHERE tts.token = ?\n ",
"describe": {
"columns": [
{
@@ -265,6 +265,16 @@
},
{
"ordinal": 26,
"name": "maybe_migration_new_model_weights_token",
"type_info": {
"type": "VarString",
"flags": "UNIQUE_KEY | BINARY",
"char_set": 224,
"max_size": 128
}
},
{
"ordinal": 27,
"name": "maybe_custom_vocoder_token",
"type_info": {
"type": "VarString",
@@ -274,7 +284,7 @@
}
},
{
"ordinal": 27,
"ordinal": 28,
"name": "maybe_custom_vocoder_title",
"type_info": {
"type": "VarString",
@@ -284,7 +294,7 @@
}
},
{
"ordinal": 28,
"ordinal": 29,
"name": "maybe_custom_vocoder_creator_user_token",
"type_info": {
"type": "VarString",
@@ -294,7 +304,7 @@
}
},
{
"ordinal": 29,
"ordinal": 30,
"name": "maybe_custom_vocoder_creator_username",
"type_info": {
"type": "VarString",
@@ -304,7 +314,7 @@
}
},
{
"ordinal": 30,
"ordinal": 31,
"name": "maybe_custom_vocoder_creator_display_name",
"type_info": {
"type": "VarString",
@@ -314,7 +324,7 @@
}
},
{
"ordinal": 31,
"ordinal": 32,
"name": "maybe_custom_vocoder_creator_gravatar_hash",
"type_info": {
"type": "String",
@@ -324,7 +334,7 @@
}
},
{
"ordinal": 32,
"ordinal": 33,
"name": "created_at",
"type_info": {
"type": "Timestamp",
@@ -334,7 +344,7 @@
}
},
{
"ordinal": 33,
"ordinal": 34,
"name": "updated_at",
"type_info": {
"type": "Timestamp",
@@ -344,7 +354,7 @@
}
},
{
"ordinal": 34,
"ordinal": 35,
"name": "creator_ip_address_creation",
"type_info": {
"type": "VarString",
@@ -354,7 +364,7 @@
}
},
{
"ordinal": 35,
"ordinal": 36,
"name": "creator_ip_address_last_update",
"type_info": {
"type": "VarString",
@@ -364,7 +374,7 @@
}
},
{
"ordinal": 36,
"ordinal": 37,
"name": "mod_deleted_at",
"type_info": {
"type": "Timestamp",
@@ -374,7 +384,7 @@
}
},
{
"ordinal": 37,
"ordinal": 38,
"name": "user_deleted_at",
"type_info": {
"type": "Timestamp",
@@ -420,6 +430,7 @@
true,
true,
true,
true,
false,
false,
false,
@@ -428,5 +439,5 @@
true
]
},
"hash": "0049a4b3dd3770564c3a466ade7479f0a11508bd4a48b2344b28ff0a20e0b9ca"
"hash": "d2d05678aa1c4c3b2d95bbb2ed563c2fc8b587c0480354a42f11409d9671afbe"
}
@@ -1,12 +0,0 @@
{
"db_name": "MySQL",
"query": "\nINSERT INTO media_files\nSET\n token = ?,\n\n media_class = ?,\n media_type = ?,\n\n origin_category = ?,\n origin_product_category = ?,\n\n maybe_engine_category = ?,\n maybe_animation_type = ?,\n\n maybe_media_subtype = ?,\n maybe_mime_type = ?,\n file_size_bytes = ?,\n\n checksum_sha2 = ?,\n\n public_bucket_directory_hash = ?,\n maybe_public_bucket_prefix = ?,\n maybe_public_bucket_extension = ?,\n\n maybe_creator_user_token = ?,\n maybe_creator_anonymous_visitor_token = ?,\n creator_ip_address = ?,\n\n creator_set_visibility = ?,\n\n maybe_creator_file_synthetic_id = ?,\n maybe_creator_category_synthetic_id = ?,\n\n maybe_origin_model_type = NULL,\n maybe_origin_model_token = NULL\n\nON DUPLICATE KEY UPDATE\n\n media_class = ?,\n media_type = ?,\n\n origin_category = ?,\n origin_product_category = ?,\n\n maybe_engine_category = ?,\n maybe_animation_type = ?,\n\n maybe_media_subtype = ?,\n maybe_mime_type = ?,\n file_size_bytes = ?,\n\n checksum_sha2 = ?,\n\n public_bucket_directory_hash = ?,\n maybe_public_bucket_prefix = ?,\n maybe_public_bucket_extension = ?,\n\n maybe_creator_user_token = ?,\n maybe_creator_anonymous_visitor_token = ?,\n creator_ip_address = ?,\n\n creator_set_visibility = ?,\n\n maybe_creator_file_synthetic_id = ?,\n maybe_creator_category_synthetic_id = ?,\n\n maybe_origin_model_type = NULL,\n maybe_origin_model_token = NULL\n ",
"describe": {
"columns": [],
"parameters": {
"Right": 39
},
"nullable": []
},
"hash": "e670551074f3beeccb217e1b88d5ca5da7b2fe152466ff3ae526855ba5791e60"
}
@@ -0,0 +1,58 @@
{
"db_name": "MySQL",
"query": "\n SELECT\n token as `token: tokens::tokens::model_weights::ModelWeightToken`,\n weights_type as `weights_type: enums::by_table::model_weights::weights_types::WeightsType`,\n created_at,\n updated_at\n FROM model_weights\n WHERE\n updated_at > ?\n ",
"describe": {
"columns": [
{
"ordinal": 0,
"name": "token: tokens::tokens::model_weights::ModelWeightToken",
"type_info": {
"type": "VarString",
"flags": "NOT_NULL | UNIQUE_KEY | BINARY | NO_DEFAULT_VALUE",
"char_set": 224,
"max_size": 128
}
},
{
"ordinal": 1,
"name": "weights_type: enums::by_table::model_weights::weights_types::WeightsType",
"type_info": {
"type": "VarString",
"flags": "NOT_NULL | MULTIPLE_KEY | BINARY | NO_DEFAULT_VALUE",
"char_set": 224,
"max_size": 128
}
},
{
"ordinal": 2,
"name": "created_at",
"type_info": {
"type": "Timestamp",
"flags": "NOT_NULL | BINARY | TIMESTAMP",
"char_set": 63,
"max_size": 19
}
},
{
"ordinal": 3,
"name": "updated_at",
"type_info": {
"type": "Timestamp",
"flags": "NOT_NULL | MULTIPLE_KEY | BINARY | TIMESTAMP | ON_UPDATE_NOW",
"char_set": 63,
"max_size": 19
}
}
],
"parameters": {
"Right": 1
},
"nullable": [
false,
false,
false,
false
]
},
"hash": "f68d01ee1339c0a1ea8301fcc74359e981c20abebd7024844bea6e1b9486b458"
}
@@ -1,6 +1,6 @@
{
"db_name": "MySQL",
"query": "\nSELECT\n m.token as `token: tokens::tokens::media_files::MediaFileToken`,\n\n m.media_class as `media_class: enums::by_table::media_files::media_file_class::MediaFileClass`,\n m.media_type as `media_type: enums::by_table::media_files::media_file_type::MediaFileType`,\n\n m.maybe_engine_category as `maybe_engine_category: enums::by_table::media_files::media_file_engine_category::MediaFileEngineCategory`,\n m.maybe_animation_type as `maybe_animation_type: enums::by_table::media_files::media_file_animation_type::MediaFileAnimationType`,\n\n m.maybe_media_subtype as `maybe_media_subtype: enums::by_table::media_files::media_file_subtype::MediaFileSubtype`,\n\n m.maybe_mime_type,\n\n users.token as `maybe_creator_user_token: tokens::tokens::users::UserToken`,\n users.username as maybe_creator_username,\n users.display_name as maybe_creator_display_name,\n users.email_gravatar_hash as maybe_creator_gravatar_hash,\n\n m.maybe_creator_anonymous_visitor_token as `maybe_creator_anonymous_visitor_token: tokens::tokens::anonymous_visitor_tracking::AnonymousVisitorTrackingToken`,\n\n m.maybe_batch_token as `maybe_batch_token: tokens::tokens::batch_generations::BatchGenerationToken`,\n\n m.maybe_style_transfer_source_media_file_token as `maybe_style_transfer_source_media_file_token: tokens::tokens::media_files::MediaFileToken`,\n m.maybe_scene_source_media_file_token as `maybe_scene_source_media_file_token: tokens::tokens::media_files::MediaFileToken`,\n\n m.maybe_title,\n m.maybe_text_transcript,\n\n m.maybe_origin_filename,\n\n m.maybe_duration_millis,\n\n m.maybe_prompt_token as `maybe_prompt_token: tokens::tokens::prompts::PromptToken`,\n prompts.maybe_other_args as maybe_other_prompt_args,\n\n media_file_cover_image.public_bucket_directory_hash as maybe_file_cover_image_public_bucket_hash,\n media_file_cover_image.maybe_public_bucket_prefix as maybe_file_cover_image_public_bucket_prefix,\n media_file_cover_image.maybe_public_bucket_extension as maybe_file_cover_image_public_bucket_extension,\n\n m.creator_set_visibility as `creator_set_visibility: enums::common::visibility::Visibility`,\n\n model_weights.token as `maybe_model_weights_token: tokens::tokens::model_weights::ModelWeightToken`,\n model_weights.title as maybe_model_weights_title,\n model_weights.weights_type as `maybe_model_weights_type: enums::by_table::model_weights::weights_types::WeightsType`,\n model_weights.weights_category as `maybe_model_weights_category: enums::by_table::model_weights::weights_category::WeightsCategory`,\n\n model_weight_cover_image.public_bucket_directory_hash as maybe_model_cover_image_public_bucket_hash,\n model_weight_cover_image.maybe_public_bucket_prefix as maybe_model_cover_image_public_bucket_prefix,\n model_weight_cover_image.maybe_public_bucket_extension as maybe_model_cover_image_public_bucket_extension,\n\n model_weight_creator.token as `maybe_model_weight_creator_user_token: tokens::tokens::users::UserToken`,\n model_weight_creator.username as maybe_model_weight_creator_username,\n model_weight_creator.display_name as maybe_model_weight_creator_display_name,\n model_weight_creator.email_gravatar_hash as maybe_model_weight_creator_gravatar_hash,\n\n m.public_bucket_directory_hash,\n m.maybe_public_bucket_prefix,\n m.maybe_public_bucket_extension,\n\n entity_stats.ratings_positive_count as maybe_ratings_positive_count,\n entity_stats.ratings_negative_count as maybe_ratings_negative_count,\n entity_stats.bookmark_count as maybe_bookmark_count,\n\n featured_items.entity_token IS NOT NULL AS is_featured,\n\n m.created_at,\n m.updated_at\n\nFROM media_files AS m\nLEFT OUTER JOIN users\n ON m.maybe_creator_user_token = users.token\nLEFT OUTER JOIN model_weights\n ON m.maybe_origin_model_token = model_weights.token\nLEFT OUTER JOIN media_files as media_file_cover_image\n ON media_file_cover_image.token = m.maybe_cover_image_media_file_token\nLEFT OUTER JOIN media_files as model_weight_cover_image\n ON model_weight_cover_image.token = model_weights.maybe_cover_image_media_file_token\nLEFT OUTER JOIN users as model_weight_creator\n ON model_weight_creator.token = model_weights.creator_user_token\nLEFT OUTER JOIN entity_stats\n ON entity_stats.entity_type = \"media_file\"\n AND entity_stats.entity_token = m.token\nLEFT OUTER JOIN prompts\n ON prompts.token = m.maybe_prompt_token\nLEFT OUTER JOIN featured_items\n ON featured_items.entity_type = 'media_file'\n AND featured_items.entity_token = m.token\n AND featured_items.deleted_at IS NULL\nWHERE\n m.token = ?\n ",
"query": "\nSELECT\n m.token as `token: tokens::tokens::media_files::MediaFileToken`,\n\n m.media_class as `media_class: enums::by_table::media_files::media_file_class::MediaFileClass`,\n m.media_type as `media_type: enums::by_table::media_files::media_file_type::MediaFileType`,\n\n m.maybe_engine_category as `maybe_engine_category: enums::by_table::media_files::media_file_engine_category::MediaFileEngineCategory`,\n m.maybe_animation_type as `maybe_animation_type: enums::by_table::media_files::media_file_animation_type::MediaFileAnimationType`,\n\n m.maybe_media_subtype as `maybe_media_subtype: enums::by_table::media_files::media_file_subtype::MediaFileSubtype`,\n\n m.maybe_mime_type,\n\n users.token as `maybe_creator_user_token: tokens::tokens::users::UserToken`,\n users.username as maybe_creator_username,\n users.display_name as maybe_creator_display_name,\n users.email_gravatar_hash as maybe_creator_gravatar_hash,\n\n m.maybe_creator_anonymous_visitor_token as `maybe_creator_anonymous_visitor_token: tokens::tokens::anonymous_visitor_tracking::AnonymousVisitorTrackingToken`,\n\n m.maybe_batch_token as `maybe_batch_token: tokens::tokens::batch_generations::BatchGenerationToken`,\n\n m.maybe_style_transfer_source_media_file_token as `maybe_style_transfer_source_media_file_token: tokens::tokens::media_files::MediaFileToken`,\n m.maybe_scene_source_media_file_token as `maybe_scene_source_media_file_token: tokens::tokens::media_files::MediaFileToken`,\n\n m.maybe_title,\n m.maybe_text_transcript,\n\n m.maybe_origin_filename,\n\n m.maybe_duration_millis,\n\n m.maybe_prompt_token as `maybe_prompt_token: tokens::tokens::prompts::PromptToken`,\n prompts.maybe_other_args as maybe_other_prompt_args,\n\n media_file_cover_image.public_bucket_directory_hash as maybe_file_cover_image_public_bucket_hash,\n media_file_cover_image.maybe_public_bucket_prefix as maybe_file_cover_image_public_bucket_prefix,\n media_file_cover_image.maybe_public_bucket_extension as maybe_file_cover_image_public_bucket_extension,\n\n m.creator_set_visibility as `creator_set_visibility: enums::common::visibility::Visibility`,\n\n m.is_user_upload,\n m.is_intermediate_system_file,\n\n model_weights.token as `maybe_model_weights_token: tokens::tokens::model_weights::ModelWeightToken`,\n model_weights.title as maybe_model_weights_title,\n model_weights.weights_type as `maybe_model_weights_type: enums::by_table::model_weights::weights_types::WeightsType`,\n model_weights.weights_category as `maybe_model_weights_category: enums::by_table::model_weights::weights_category::WeightsCategory`,\n\n model_weight_cover_image.public_bucket_directory_hash as maybe_model_cover_image_public_bucket_hash,\n model_weight_cover_image.maybe_public_bucket_prefix as maybe_model_cover_image_public_bucket_prefix,\n model_weight_cover_image.maybe_public_bucket_extension as maybe_model_cover_image_public_bucket_extension,\n\n model_weight_creator.token as `maybe_model_weight_creator_user_token: tokens::tokens::users::UserToken`,\n model_weight_creator.username as maybe_model_weight_creator_username,\n model_weight_creator.display_name as maybe_model_weight_creator_display_name,\n model_weight_creator.email_gravatar_hash as maybe_model_weight_creator_gravatar_hash,\n\n m.extra_file_modification_info,\n\n m.public_bucket_directory_hash,\n m.maybe_public_bucket_prefix,\n m.maybe_public_bucket_extension,\n\n entity_stats.ratings_positive_count as maybe_ratings_positive_count,\n entity_stats.ratings_negative_count as maybe_ratings_negative_count,\n entity_stats.bookmark_count as maybe_bookmark_count,\n\n featured_items.entity_token IS NOT NULL AS is_featured,\n\n m.created_at,\n m.updated_at\n\nFROM media_files AS m\nLEFT OUTER JOIN users\n ON m.maybe_creator_user_token = users.token\nLEFT OUTER JOIN model_weights\n ON m.maybe_origin_model_token = model_weights.token\nLEFT OUTER JOIN media_files as media_file_cover_image\n ON media_file_cover_image.token = m.maybe_cover_image_media_file_token\nLEFT OUTER JOIN media_files as model_weight_cover_image\n ON model_weight_cover_image.token = model_weights.maybe_cover_image_media_file_token\nLEFT OUTER JOIN users as model_weight_creator\n ON model_weight_creator.token = model_weights.creator_user_token\nLEFT OUTER JOIN entity_stats\n ON entity_stats.entity_type = \"media_file\"\n AND entity_stats.entity_token = m.token\nLEFT OUTER JOIN prompts\n ON prompts.token = m.maybe_prompt_token\nLEFT OUTER JOIN featured_items\n ON featured_items.entity_type = 'media_file'\n AND featured_items.entity_token = m.token\n AND featured_items.deleted_at IS NULL\nWHERE\n m.token = ?\n ",
"describe": {
"columns": [
{
@@ -255,6 +255,26 @@
},
{
"ordinal": 25,
"name": "is_user_upload",
"type_info": {
"type": "Tiny",
"flags": "NOT_NULL | MULTIPLE_KEY",
"char_set": 63,
"max_size": 1
}
},
{
"ordinal": 26,
"name": "is_intermediate_system_file",
"type_info": {
"type": "Tiny",
"flags": "NOT_NULL | MULTIPLE_KEY",
"char_set": 63,
"max_size": 1
}
},
{
"ordinal": 27,
"name": "maybe_model_weights_token: tokens::tokens::model_weights::ModelWeightToken",
"type_info": {
"type": "VarString",
@@ -264,7 +284,7 @@
}
},
{
"ordinal": 26,
"ordinal": 28,
"name": "maybe_model_weights_title",
"type_info": {
"type": "VarString",
@@ -274,7 +294,7 @@
}
},
{
"ordinal": 27,
"ordinal": 29,
"name": "maybe_model_weights_type: enums::by_table::model_weights::weights_types::WeightsType",
"type_info": {
"type": "VarString",
@@ -284,7 +304,7 @@
}
},
{
"ordinal": 28,
"ordinal": 30,
"name": "maybe_model_weights_category: enums::by_table::model_weights::weights_category::WeightsCategory",
"type_info": {
"type": "VarString",
@@ -294,7 +314,7 @@
}
},
{
"ordinal": 29,
"ordinal": 31,
"name": "maybe_model_cover_image_public_bucket_hash",
"type_info": {
"type": "VarString",
@@ -304,7 +324,7 @@
}
},
{
"ordinal": 30,
"ordinal": 32,
"name": "maybe_model_cover_image_public_bucket_prefix",
"type_info": {
"type": "VarString",
@@ -314,7 +334,7 @@
}
},
{
"ordinal": 31,
"ordinal": 33,
"name": "maybe_model_cover_image_public_bucket_extension",
"type_info": {
"type": "VarString",
@@ -324,7 +344,7 @@
}
},
{
"ordinal": 32,
"ordinal": 34,
"name": "maybe_model_weight_creator_user_token: tokens::tokens::users::UserToken",
"type_info": {
"type": "VarString",
@@ -334,7 +354,7 @@
}
},
{
"ordinal": 33,
"ordinal": 35,
"name": "maybe_model_weight_creator_username",
"type_info": {
"type": "VarString",
@@ -344,7 +364,7 @@
}
},
{
"ordinal": 34,
"ordinal": 36,
"name": "maybe_model_weight_creator_display_name",
"type_info": {
"type": "VarString",
@@ -354,7 +374,7 @@
}
},
{
"ordinal": 35,
"ordinal": 37,
"name": "maybe_model_weight_creator_gravatar_hash",
"type_info": {
"type": "String",
@@ -364,7 +384,17 @@
}
},
{
"ordinal": 36,
"ordinal": 38,
"name": "extra_file_modification_info",
"type_info": {
"type": "Blob",
"flags": "BLOB | BINARY",
"char_set": 224,
"max_size": 262140
}
},
{
"ordinal": 39,
"name": "public_bucket_directory_hash",
"type_info": {
"type": "VarString",
@@ -374,7 +404,7 @@
}
},
{
"ordinal": 37,
"ordinal": 40,
"name": "maybe_public_bucket_prefix",
"type_info": {
"type": "VarString",
@@ -384,7 +414,7 @@
}
},
{
"ordinal": 38,
"ordinal": 41,
"name": "maybe_public_bucket_extension",
"type_info": {
"type": "VarString",
@@ -394,7 +424,7 @@
}
},
{
"ordinal": 39,
"ordinal": 42,
"name": "maybe_ratings_positive_count",
"type_info": {
"type": "Long",
@@ -404,7 +434,7 @@
}
},
{
"ordinal": 40,
"ordinal": 43,
"name": "maybe_ratings_negative_count",
"type_info": {
"type": "Long",
@@ -414,7 +444,7 @@
}
},
{
"ordinal": 41,
"ordinal": 44,
"name": "maybe_bookmark_count",
"type_info": {
"type": "Long",
@@ -424,7 +454,7 @@
}
},
{
"ordinal": 42,
"ordinal": 45,
"name": "is_featured",
"type_info": {
"type": "LongLong",
@@ -434,21 +464,21 @@
}
},
{
"ordinal": 43,
"ordinal": 46,
"name": "created_at",
"type_info": {
"type": "Timestamp",
"flags": "NOT_NULL | BINARY | TIMESTAMP",
"flags": "NOT_NULL | MULTIPLE_KEY | BINARY | TIMESTAMP",
"char_set": 63,
"max_size": 19
}
},
{
"ordinal": 44,
"ordinal": 47,
"name": "updated_at",
"type_info": {
"type": "Timestamp",
"flags": "NOT_NULL | BINARY | TIMESTAMP | ON_UPDATE_NOW",
"flags": "NOT_NULL | MULTIPLE_KEY | BINARY | TIMESTAMP | ON_UPDATE_NOW",
"char_set": 63,
"max_size": 19
}
@@ -483,6 +513,9 @@
true,
true,
false,
false,
false,
true,
true,
true,
true,
@@ -505,5 +538,5 @@
false
]
},
"hash": "f1861dc84015b5c753cb5c31313c747386bce56983108fd6a01815d02d429630"
"hash": "f6c37066ab3e508050e81cf3bea38cc708b05c5c59ba1c322dcfb775e4b9e7a6"
}
Generated
+1296 -1128
View File
File diff suppressed because it is too large Load Diff
+4 -1
View File
@@ -7,6 +7,7 @@ members = [
"crates/_types/buckets",
"crates/_types/composite_identifiers",
"crates/_types/enums",
"crates/_types/enums_public",
"crates/_types/reusable_types", # TODO(bt, 2022-12-21): Deprecate
"crates/_types/tokens",
@@ -14,6 +15,7 @@ members = [
"crates/cli/devenv/dev-database-seed",
"crates/cli/devenv/dev-upload-media-file",
"crates/cli/devenv/scrape-test",
"crates/cli/production/db-backfill",
"crates/cli/production/db-backup",
"crates/cli/production/db-cleanup",
"crates/cli/production/elasticsearch-cli",
@@ -37,8 +39,8 @@ members = [
"crates/lib/data/datetimes",
"crates/lib/data/primitives",
"crates/lib/deprecated/config", # TODO(bt, 2023-02-13): Deprecate or repurpose
"crates/lib/deprecated/container_common", # TODO(bt, 2023-02-13): Pull apart and rehome pieces
"crates/lib/deprecated/http_server_common", # TODO(bt, 2023-03-20): Move useful pieces to actix_helpers
"crates/lib/dimensions",
"crates/lib/easyenv", # NB: Vendored version of https://github.com/echelon/easyenv.rs that we'll improve.
"crates/lib/elasticsearch_schema",
"crates/lib/email_sender",
@@ -59,6 +61,7 @@ members = [
"crates/lib/password",
"crates/lib/prompt_engineering",
"crates/lib/redis_common",
"crates/lib/redis_schema",
"crates/lib/server_environment",
"crates/lib/sqlx_mysql_helpers",
"crates/lib/storyteller_root",
+56
View File
@@ -0,0 +1,56 @@
# -*- mode: Python -*-
if k8s_context() != 'black1':
fail("failing early to avoid overwriting prod")
local_resource('storyteller-web-binary',
cmd='SQLX_OFFLINE=true cargo build --release --bin storyteller-web --target=x86_64-unknown-linux-musl',
)
local_resource('inference-job-binary',
cmd='SQLX_OFFLINE=true cargo build --release --bin inference-job --target=x86_64-unknown-linux-musl',
)
allow_k8s_contexts('black1')
sync_src_crates = sync('./crates', '/storyteller-rust/source/crates')
sync_src_sql = sync('./_sql', '/storyteller-rust/source/_sql')
sync_src_cargo_lock = sync('./Cargo.lock', '/storyteller-rust/source/Cargo.lock')
sync_src_cargo = sync('./Cargo.toml', '/storyteller-rust/source/Cargo.toml')
sync_src_env = sync('./.env', '/storyteller-rust/source/.env')
sync_src_startup = sync('./_develop/localdev/startup.sh', '/storyteller-rust/_develop/localdev/startup.sh')
sync_src_storyteller_binary = sync('./target/x86_64-unknown-linux-musl/release/storyteller-web', '/storyteller-rust/target/x86_64-unknown-linux-musl/release/storyteller-web')
sync_src_inference_job_binary = sync('./target/x86_64-unknown-linux-musl/release/inference-job', '/application-dir/inference-job')
docker_build('storyteller-web',
'.',
dockerfile='_develop/localdev/Dockerfile',
platform='linux/amd64',
only=[
'./target/x86_64-unknown-linux-musl/release/storyteller-web',
'./target/x86_64-unknown-linux-musl/release/inference-job',
'_develop/localdev/Dockerfile',
'./_develop/localdev/startup.sh',
'crates/service/web/storyteller_web/config/storyteller-web.development.env',
'_sql', 'diesel.toml', '.env'],
live_update = [
sync_src_crates,
sync_src_sql,
sync_src_cargo_lock,
sync_src_cargo,
sync_src_env,
sync_src_startup,
sync_src_storyteller_binary,
sync_src_inference_job_binary,
run('date > /restart.txt')
],
)
k8s_yaml('_develop/localdev/kubernetes.yml',
)
k8s_resource(
objects=['ssd-hostpath:storageclass', 'test-pvc:persistentvolumeclaim', 'ml-support-pvc:persistentvolumeclaim'],
new_name='storyteller-web-pvc',
trigger_mode=TRIGGER_MODE_MANUAL,
)
k8s_resource('mysql', port_forwards='3307:3306')
k8s_resource('storyteller-web', port_forwards=12345)
+12 -1
View File
@@ -6,9 +6,20 @@ RUN apt-get update && \
apt-get install -y \
mariadb-client \
imagemagick \
python3-pip \
libmariadb-dev \
&& rm -rf /var/lib/apt/lists/*
RUN cd /tmp && \
wget -O entr.zip https://github.com/eradman/entr/archive/refs/tags/5.6.zip && \
unzip entr.zip && \
cd entr-5.6 && \
./configure && \
make test && \
make install \
&& rm -rf /tmp/entr-5.6
RUN cargo install diesel_cli --features mysql && \
cargo install sqlx-cli --features mysql
@@ -19,5 +30,5 @@ ARG GIT_SHA
RUN echo -n ${GIT_SHA} > /GIT_SHA
CMD ["/storyteller-rust/localdev/startup.sh"]
CMD ["/storyteller-rust/_develop/localdev/startup.sh"]
+108 -15
View File
@@ -27,6 +27,51 @@ spec:
ports:
- containerPort: 3306
---
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: ssd-hostpath
provisioner: microk8s.io/hostpath
reclaimPolicy: Retain
volumeBindingMode: WaitForFirstConsumer
parameters:
pvDir: /home/kasisnu/microk8s/hostpath-provisioner
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: test-pvc
spec:
storageClassName: ssd-hostpath
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 10Gi
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: ml-support-pvc
spec:
storageClassName: ssd-hostpath
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 100Gi
---
apiVersion: v1
kind: ConfigMap
metadata:
name: storyteller-config
data:
buckets.vocodes_bucket_region: us-east1
buckets.vocodes_private_bucket_name: kasisnu-test-area-private
buckets.vocodes_public_bucket_name: kasisnu-test-area-public
buckets.vocodes_ephemeral_bucket_name: kasisnu-test-area-ephemeral-public
---
apiVersion: apps/v1
@@ -57,6 +102,11 @@ metadata:
name: storyteller-web
spec:
replicas: 1
strategy:
rollingUpdate:
maxSurge: 5
maxUnavailable: 2
type: RollingUpdate
selector:
matchLabels:
app: storyteller-web
@@ -65,29 +115,65 @@ spec:
labels:
app: storyteller-web
spec:
runtimeClassName: nvidia
containers:
- name: gpt-sovitsdir
# image: localhost:32000/some-gpt-sovits:latest
image: localhost:32000/some-comfy:latest
imagePullPolicy: Always
command: ["sleep", "infinity"]
resources:
limits:
nvidia.com/gpu: "1"
requests:
nvidia.com/gpu: "1"
volumeMounts:
- mountPath: /application-dir
name: application-dir
- mountPath: /ml-support
name: ml-support-dir
- name: storyteller-web
image: storyteller-web:latest
imagePullPolicy: Never
imagePullPolicy: Always
env:
- name: MYSQL_URL
value: mysql://storyteller:password@mysql.default/storyteller
value: mysql://storyteller:password@mysql/storyteller
- name: REDIS_0_URL
value: redis://redisd@redis.default/0
value: redis://redisd@redis/0
- name: REDIS_1_URL
value: redis://redisd@redis.default/1
value: redis://redisd@redis/1
- name: ACCESS_KEY
value: garbage
valueFrom:
secretKeyRef:
name: bucket-secrets
key: access-key
- name: SECRET_KEY
value: garbage
valueFrom:
secretKeyRef:
name: bucket-secrets
key: secret-key
- name: REGION_NAME
value: garbage
valueFrom:
configMapKeyRef:
name: storyteller-config
key: buckets.vocodes_bucket_region
- name: GC_ENABLED_PUBLIC_BUCKET_NAME
valueFrom:
configMapKeyRef:
name: storyteller-config
key: buckets.vocodes_ephemeral_bucket_name
- name: W2L_PRIVATE_DOWNLOAD_BUCKET_NAME
value: garbage
valueFrom:
configMapKeyRef:
name: storyteller-config
key: buckets.vocodes_private_bucket_name
- name: W2L_PUBLIC_DOWNLOAD_BUCKET_NAME
value: garbage
valueFrom:
configMapKeyRef:
name: storyteller-config
key: buckets.vocodes_public_bucket_name
- name: AUDIO_UPLOADS_BUCKET_ROOT
value: garbage
value: /user_uploaded_w2l_audio
- name: TWITCH_USERNAME
value: garbage
- name: TWITCH_STREAM_KEY
@@ -101,10 +187,17 @@ spec:
volumeMounts:
- mountPath: /storyteller-rust
name: storyteller-rust-folder
- mountPath: /application-dir
name: application-dir
volumes:
- name: storyteller-rust-folder
hostPath:
path: /storyteller-rust
persistentVolumeClaim:
claimName: test-pvc
- name: application-dir
emptyDir: {}
- name: ml-support-dir
persistentVolumeClaim:
claimName: ml-support-pvc
---
apiVersion: v1
@@ -116,7 +209,7 @@ spec:
ports:
- name: mysql
port: 3306
nodePort: 3306
nodePort: 32206
selector:
app: mysql
@@ -131,7 +224,7 @@ spec:
ports:
- name: redis
port: 6379
nodePort: 6379
nodePort: 32379
selector:
app: redis
@@ -146,7 +239,7 @@ spec:
ports:
- name: storyteller-web
port: 12345
nodePort: 12345
nodePort: 32345
selector:
app: storyteller-web
+5 -2
View File
@@ -2,5 +2,8 @@
set +e +o pipefail
diesel migration run --database-url="${MYSQL_URL}"
set -e -o pipefail
./target/x86_64-unknown-linux-musl/release/storyteller-web
echo 'hello world in startup.sh'
#sleep infinity
date > /restart.txt
echo /restart.txt | entr -nrz /storyteller-rust/target/x86_64-unknown-linux-musl/release/storyteller-web
#/storyteller-rust/target/x86_64-unknown-linux-musl/release/storyteller-web
@@ -39,11 +39,23 @@
"user_deleted_at" : { "type" : "date" },
"mod_deleted_at" : { "type" : "date" },
"database_read_time" : { "type" : "date" },
"is_featured" : {
"type": "boolean",
"index": true
},
"is_user_upload" : {
"type": "boolean",
"index": true
},
"is_intermediate_system_file" : {
"type": "boolean",
"index": true
},
"is_deleted" : {
"type": "boolean",
"index": true
@@ -29,14 +29,26 @@
"ratings_negative_count" : { "type" : "unsigned_long" },
"bookmark_count" : { "type" : "unsigned_long" },
"cached_usage_count" : {
"type": "integer",
"index": true
},
"maybe_ietf_language_tag" : { "type" : "keyword" },
"maybe_ietf_primary_language_subtag" : { "type" : "keyword" },
"is_featured" : {
"type": "boolean",
"index": true
},
"created_at" : { "type" : "date" },
"updated_at" : { "type" : "date" },
"user_deleted_at" : { "type" : "date" },
"mod_deleted_at" : { "type" : "date" },
"database_read_time" : { "type" : "date" },
"is_deleted" : {
"type": "boolean",
"index": true
@@ -4,6 +4,13 @@
"must": [
{
"bool": {
"must" : [
{
"term": {
"is_deleted": false
}
}
],
"should": [
{
"fuzzy": {
@@ -0,0 +1,285 @@
--- Analyze records
SELECT
job_type,
product_category,
inference_category,
maybe_model_type,
created_at
FROM generic_inference_jobs
WHERE product_category IS NULL
AND created_at >= '2024-07-31'
ORDER BY ID DESC;
-- AND job_type NOT IN ('stable_diffusion', 'so_vits_svc', 'comfy_ui')
-- Update studio jobs (distinguished from VST jobs)
UPDATE generic_inference_jobs
SET product_category = 'studio'
WHERE job_type = 'comfy_ui'
AND product_category IN ('vst', 'studio', NULL)
AND token IN (
SELECT
job.token
FROM media_files as m
JOIN (
SELECT
token,
job_type,
product_category,
inference_category,
maybe_model_type,
created_at,
JSON_UNQUOTE(JSON_EXTRACT(maybe_inference_args, '$.args.Cu.in')) as input_token
FROM generic_inference_jobs
WHERE job_type = 'comfy_ui'
AND product_category IN ('vst', 'studio', NULL)
AND created_at >= '2024-05-01'
ORDER BY ID DESC
) as job
ON m.token = job.input_token
WHERE m.created_at >= '2024-05-01'
AND m.maybe_scene_source_media_file_token IS NOT NULL
);
-- Update VST jobs (distinguished from studio jobs)
UPDATE generic_inference_jobs
SET product_category = 'vst'
WHERE job_type = 'comfy_ui'
AND product_category IN ('vst', 'studio', NULL)
AND token IN (
SELECT
job.token
FROM media_files as m
JOIN (
SELECT
token,
job_type,
product_category,
inference_category,
maybe_model_type,
created_at,
JSON_UNQUOTE(JSON_EXTRACT(maybe_inference_args, '$.args.Cu.in')) as input_token
FROM generic_inference_jobs
WHERE job_type = 'comfy_ui'
AND product_category IN ('vst', 'studio', NULL)
AND created_at >= '2024-03-01'
ORDER BY ID DESC
) as job
ON m.token = job.input_token
WHERE m.created_at >= '2024-03-01'
AND m.maybe_scene_source_media_file_token IS NULL
);
-- Update final remaining VST jobs (distinguished from studio jobs)
UPDATE generic_inference_jobs
SET product_category = 'vst'
WHERE job_type = 'comfy_ui'
AND product_category IS NULL
AND token NOT IN (
SELECT
job.token
FROM media_files as m
JOIN (
SELECT
token,
job_type,
product_category,
inference_category,
maybe_model_type,
created_at,
JSON_UNQUOTE(JSON_EXTRACT(maybe_inference_args, '$.args.Cu.in')) as input_token
FROM generic_inference_jobs
WHERE job_type = 'comfy_ui'
AND product_category IN ('vst', 'studio', NULL)
AND created_at >= '2024-03-01'
) as job
ON m.token = job.input_token
WHERE m.created_at >= '2024-03-01'
);
-- Distinguish between VST and Studio
SELECT
job_type,
product_category,
inference_category,
maybe_model_type,
created_at,
maybe_inference_args,
JSON_EXTRACT(maybe_inference_args, '$.args.Cu.in') as input_token
FROM generic_inference_jobs
WHERE job_type = 'comfy_ui'
AND product_category IS NULL
AND created_at >= '2024-07-31'
ORDER BY ID DESC
LIMIT 359;
--- Update tacotron2 jobs
UPDATE generic_inference_jobs
SET product_category = 'tts_tacotron2'
WHERE job_type = 'tacotron2'
AND inference_category = 'text_to_speech'
AND maybe_model_type = 'tacotron2'
AND product_category IS NULL
AND created_at >= '2024-07-30'
AND created_at <= '2024-08-30'
LIMIT 100000;
--- Update GptSoVits (#1)
UPDATE generic_inference_jobs
SET product_category = 'tts_gpt_so_vits'
WHERE job_type = 'gpt_sovits'
AND inference_category = 'text_to_speech'
AND maybe_model_type IS NULL
AND product_category IS NULL
AND created_at >= '2024-08-14'
AND created_at <= '2024-08-30'
LIMIT 100000;
--- Update GptSoVits (#2: we changed the inference_category)
UPDATE generic_inference_jobs
SET product_category = 'tts_gpt_so_vits'
WHERE job_type = 'gpt_sovits'
AND inference_category = 'deprecated_field'
AND maybe_model_type IS NULL
AND product_category IS NULL
AND created_at >= '2024-07-15'
AND created_at <= '2024-08-30'
LIMIT 100000;
-- Update GptSoVits Download Jobs
UPDATE generic_inference_jobs
SET product_category = 'download_gpt_so_vits'
WHERE job_type = 'gpt_sovits'
AND maybe_download_url IS NOT NULL
LIMIT 10000;
--- TODO: Not working
--- Update RVCv2 VC jobs
UPDATE generic_inference_jobs
SET product_category = 'vc_rvc2'
WHERE job_type = 'rvc_v2'
AND inference_category = 'voice_conversion'
AND maybe_model_type = 'rvc_v2'
AND product_category IS NULL
AND created_at >= '2024-07-31'
AND created_at <= '2024-08-30'
LIMIT 100000;
--- Update SVC VC jobs
UPDATE generic_inference_jobs
SET product_category = 'vc_svc'
WHERE job_type = 'so_vits_svc'
AND product_category IS NULL
AND created_at >= '2024-07-25'
AND created_at <= '2024-08-30'
LIMIT 10000;
--- Update StyleTTS2 jobs
UPDATE generic_inference_jobs
SET product_category = 'tts_style_tts2'
WHERE job_type = 'styletts2'
AND inference_category = 'text_to_speech'
AND maybe_model_type = 'styletts2'
AND product_category IS NULL
AND created_at >= '2024-08-15'
AND created_at <= '2024-08-30'
LIMIT 1000;
--- Update Live Portrait jobs (#1)
UPDATE generic_inference_jobs
SET product_category = 'live_portrait'
WHERE job_type = 'live_portrait'
AND inference_category = 'live_portrait'
AND maybe_model_type IS NULL
AND product_category IS NULL
AND created_at >= '2024-07-25'
LIMIT 10000;
--- Update Live Portrait jobs (#2)
UPDATE generic_inference_jobs
SET product_category = 'live_portrait'
WHERE job_type = 'live_portrait'
AND inference_category = 'deprecated_field'
AND maybe_model_type IS NULL
AND product_category IS NULL
AND created_at >= '2024-07-25'
LIMIT 10000;
--- Update SadTalker jobs
UPDATE generic_inference_jobs
SET product_category = 'lipsync_sad_talker'
WHERE maybe_model_type = 'sad_talker'
AND inference_category = 'lipsync_animation'
AND product_category IS NULL
AND created_at >= '2024-07-25'
LIMIT 100;
--- Update "stable diffusion" jobs (how are people still enqueueing these?)
UPDATE generic_inference_jobs
SET product_category = 'stable_diffusion'
WHERE job_type = 'stable_diffusion'
AND inference_category = 'image_generation'
AND maybe_model_type = 'stable_diffusion'
AND product_category IS NULL
AND created_at >= '2024-07-25'
AND created_at <= '2024-09-30'
LIMIT 100;
-- Change Product Category: vst -> vid_style_transfer
UPDATE generic_inference_jobs
SET product_category = 'vid_style_transfer'
WHERE product_category = 'vst'
AND created_at >= '2024-07-30'
AND created_at <= '2024-09-30'
LIMIT 10;
-- Change Product Category: studio -> vid_studio
UPDATE generic_inference_jobs
SET product_category = 'vid_studio'
WHERE product_category = 'studio'
AND created_at >= '2024-07-30'
AND created_at <= '2024-09-30'
LIMIT 10;
-- Change Product Category: vid_face_fusion -> vid_lipsync_face_fusion
UPDATE generic_inference_jobs
SET product_category = 'vid_lipsync_face_fusion'
WHERE product_category = 'vid_face_fusion'
AND created_at >= '2024-07-30'
AND created_at <= '2024-09-30'
LIMIT 10;
-- Change Product Category: lipsync_sad_talker -> vid_lipsync_sad_talker
UPDATE generic_inference_jobs
SET product_category = 'vid_lipsync_sad_talker'
WHERE product_category = 'lipsync_sad_talker'
AND created_at >= '2024-07-30'
AND created_at <= '2024-09-30'
LIMIT 10;
-- Change Product Category: live_portrait -> vid_live_portrait
UPDATE generic_inference_jobs
SET product_category = 'vid_live_portrait'
WHERE product_category = 'live_portrait'
AND created_at >= '2024-07-30'
AND created_at <= '2024-09-30'
LIMIT 10;
-- Change Product Category: live_portrait_webcam -> vid_live_portrait_webcam
UPDATE generic_inference_jobs
SET product_category = 'vid_live_portrait_webcam'
WHERE product_category = 'live_portrait_webcam'
AND created_at >= '2024-07-30'
AND created_at <= '2024-09-30'
LIMIT 10;
@@ -0,0 +1,14 @@
-- noinspection SqlDialectInspectionForFile
-- noinspection SqlNoDataSourceInspectionForFile
-- noinspection SqlResolveForFile
UPDATE media_files
SET is_user_upload = TRUE
WHERE origin_category IN ('upload', 'device_api')
AND is_user_upload = FALSE
LIMIT 10000;
SELECT COUNT(*)
FROM media_files
WHERE origin_category IN ('upload', 'device_api')
AND is_user_upload = FALSE;
@@ -0,0 +1,171 @@
-- Doc: https://docs.google.com/document/d/14AyEV_0PYwa71a5W8xRRZ8vbI0uZHQF4ycqi539qmAc/edit
-- backspace23: Twitch robot user? "Hello streamer! You look amazing today! Keep on being pog!." + usernames
-- blastbeng: Italian AI streamer? Only uses 23 voices, all Italian
-- bluemo69: (confirmed, abandoned) AI SpongeBob
-- dzth: AI streamer - 144,653 media files (all audio, mostly SpongeBob, using old tokens) in August 2024
-- idkman01: *likely* AI streamer for Sonic - 77,741 media files in August 2024, Sonic voices, some SpongeBob
-- johnloberger: (confirmed) AI South Park
-- peepostream: Twitch API tool (??), but long tail of voices
-- powerchat: Twitch API tool
-- rewritten_code: (confirmed) AI Breaking Bad
-- robertmctague: Definitely robot, but strange. Bimodal character set, auto-censor, bitcoin
-- thevisitorx: Only uses 32 voices. Very weird set of voices.
UPDATE users
SET is_api_user = TRUE
WHERE username IN (
'backspace23',
'blastbeng',
'bluemo69',
'dzth',
'idkman01',
'johnloberger',
'leon_says',
'peepostream',
'powerchat',
'rewritten_code',
'robertmctague',
'thevisitorx'
);
-- Ripping off our API (???):
-- We won't filter these from organic analysis because their usage is likely organic even if they're hijacking us
-- devproject2023 - lots of different voices used, in different languages
-- leon_says: 101soundboards again, lots of different voices used, in different languages
-- thebigo - not API hacker, but not paying us, using us at volume, making bad content??
-- yigithan - lots of different voices used, in different languages
-- Top August users:
+--------------------+-----------------+-------------+---------------------+
| user_token | username | usage_count | created_at |
+--------------------+-----------------+-------------+---------------------+
| user_aw7m4d07fjzrv | robertmctague | 286029 | 2024-03-18 21:51:42 | -- Strange. Bimodal character set, auto-censor, bitcoin
| U:03HG1NRMDT7A6 | leon_says | 209682 | 2023-09-13 16:27:40 | -- 101soundboards - ripping off our API again
| U:Z477H1KNSY3B5 | dzth | 145174 | 2023-07-31 15:53:50 | AI SpongeBob
| user_vb7mch05njgnp | idkman01 | 77741 | 2024-06-29 03:33:34 | AI Sonic + a little AI SpongeBob
| U:8D706H5C7E5MF | yigithan | 41965 | 2023-05-03 07:35:43 | -- Ripping off our API (???)
| U:4Z8DK9T7K4170 | devproject2023 | 29530 | 2023-03-05 21:19:27 | -- Ripping off our API (???)
| U:5Z4ZMBVZT8FYP | blastbeng | 21126 | 2022-10-25 21:33:29 | -- Italian AI streamer? Only uses 23 voices, all Italian
| U:YX31ZJ517T40G | johnloberger | 18340 | 2023-06-14 21:34:52 | AI South Park
| U:6JJJRNN0B17CP | backspace23 | 16229 | 2023-10-15 07:57:08 | -- Twitch tool? "Hello streamer! You look amazing today! Keep on being pog!." + usernames
| U:89XRNEWENPCGX | thevisitorx | 15138 | 2022-12-16 09:44:37 | -- Only uses 32 voices. Very weird set of voices.
| U:QPEXYBZJ5TB9K | thebigo | 14141 | 2022-09-06 01:38:52 | -- 92 voices, almost exclusively female voices!
-- Top Users All Time
+------------------+--------------------+---------------------+-------------+
| username | token | created_at | generations |
+------------------+--------------------+---------------------+-------------+
| leon_says | U:03HG1NRMDT7A6 | 2023-09-13 16:27:40 | 1608442 |
| dzth | U:Z477H1KNSY3B5 | 2023-07-31 15:53:50 | 1287340 |
| robertmctague | user_aw7m4d07fjzrv | 2024-03-18 21:51:42 | 785684 |
| rewritten_code | U:TBM1Z40A46NXZ | 2023-07-18 00:46:12 | 633926 |
| devproject2023 | U:4Z8DK9T7K4170 | 2023-03-05 21:19:27 | 476896 |
| yigithan | U:8D706H5C7E5MF | 2023-05-03 07:35:43 | 368559 |
| johnloberger | U:YX31ZJ517T40G | 2023-06-14 21:34:52 | 354966 |
| blastbeng | U:5Z4ZMBVZT8FYP | 2022-10-25 21:33:29 | 226726 |
| backspace23 | U:6JJJRNN0B17CP | 2023-10-15 07:57:08 | 212895 |
| nhapcs | U:7HV0JNV82F85J | 2023-07-12 15:09:07 | 182513 |
| thevisitorx | U:89XRNEWENPCGX | 2022-12-16 09:44:37 | 160763 |
| evanschris | U:3T08BX8GFDGJ2 | 2023-08-30 07:14:44 | 130251 |
| idkman01 | user_vb7mch05njgnp | 2024-06-29 03:33:34 | 99008 |
| thebigo | U:QPEXYBZJ5TB9K | 2022-09-06 01:38:52 | 88822 |
| beatsolo | U:SVZRVJSP04JAE | 2023-09-08 03:21:51 | 88089 |
| banana12134 | user_xy3snt46r1edn | 2024-06-06 02:00:10 | 82637 |
| dwdwd | U:BY6920DKHNDBT | 2023-02-06 02:22:07 | 82488 |
| bluemo69 | U:4MFYA09TH7SD1 | 2023-06-19 22:12:11 | 76651 |
| catmem | user_q7dj0hj3xy31g | 2024-05-02 09:57:28 | 49235 |
| bfdi_ceo | user_hdav69agkm2mw | 2024-05-20 18:00:46 | 46563 |
| ahiman | user_vmdq5nq7bfckh | 2024-04-13 05:47:40 | 37340 |
| kamalmango | U:NFV8FYBZHZPP4 | 2023-07-31 19:12:30 | 35873 |
| brandon2000 | U:AF0K4PMS37JWN | 2023-07-26 03:36:14 | 24899 |
| powerchat | U:Y2Q8Q7C537G88 | 2023-01-23 23:51:37 | 24557 |
| storysonic17 | U:5W2X30KK6KNAP | 2023-03-16 01:10:18 | 23561 |
| hexzd | U:2H5SED9TD85AW | 2023-08-28 02:18:15 | 21521 |
| gdinwtfdyd66692 | U:3S8S9X3H9B6SA | 2022-10-12 16:50:25 | 20966 |
| thewildwolf | user_7yjk723jtfmj6 | 2023-11-13 12:32:58 | 20858 |
| uberwaffle | user_zgw9q4tz6506t | 2024-01-18 03:09:16 | 20856 |
| peepostream | U:SYW8H845YZJBW | 2023-07-12 20:37:26 | 20417 |
| cangqu | user_x990jyt3ne4br | 2024-04-09 14:00:47 | 20260 |
| mostafa88t | U:N0VXP0H0E36WT | 2023-04-30 04:51:39 | 20107 |
| nicktea | user_4c2qcpbq6twv7 | 2024-04-22 22:09:05 | 19322 |
| freddyj | U:5WTDZVMX23WC1 | 2023-03-10 13:02:09 | 18084 |
| mikpas | U:KEXZ6BBGH75AX | 2023-08-07 23:32:30 | 16747 |
| cinnamonmick | user_23jmwykxjjrm4 | 2024-01-26 18:27:56 | 14632 |
| jammythegranny | user_bz76arxrmr0vj | 2023-12-30 15:21:04 | 14580 |
| colerw2001 | U:WJJT9AHJHGJS5 | 2023-07-25 01:56:49 | 14478 |
| saidulrifat | U:GJJKBHK15C9W0 | 2023-10-01 15:41:29 | 14446 |
| cmboy | U:E4TSGYT5DX19C | 2022-06-19 23:33:33 | 14116 |
| drunkrussian | U:ESVW6NHE6GHP8 | 2023-03-08 03:09:08 | 14037 |
| trag | U:WHXJK1RSYM5WD | 2023-06-15 16:54:33 | 13369 |
| coleroywarren | U:3MQB45NCHSNH9 | 2022-12-25 00:17:22 | 13171 |
| havewelost | U:2TEZS9T6AK6CY | 2023-06-08 16:35:16 | 12953 |
| wawoul | user_gv0a0vec80540 | 2024-01-15 16:19:10 | 12617 |
| nininoni3333 | user_bkypxftv69675 | 2024-02-16 01:26:30 | 12227 |
| bellacraft | user_9rjpehtnpd6tb | 2024-03-19 08:41:13 | 12068 |
| knightrider0 | U:H2KWH2QPNHDRB | 2023-08-31 17:37:48 | 11965 |
| itzultrascout | U:EW15EA1XNGFVB | 2022-05-12 17:12:48 | 11950 |
| citruskat | user_qcnpkvw9fnhyr | 2024-04-04 03:57:18 | 11067 |
| rannyphant | user_y1b4ag72ezh65 | 2024-01-29 23:59:00 | 10928 |
| xkendy | user_cewjs06e36hfq | 2023-11-10 19:44:59 | 10790 |
| alexcharles | U:19WD4DHDR8XDH | 2023-09-18 18:45:02 | 10705 |
| jtoddd | U:0BJT98T611SZC | 2023-10-06 04:15:53 | 10420 |
| davisher | U:T3EE4GCA5Q4ZJ | 2022-11-22 20:39:40 | 10243 |
| moon1201 | U:211ZHWM8J1F8B | 2023-10-05 07:43:03 | 10187 |
-- Continued (>5k to <10k):
| porkai | U:RBH6ZHBDDVH3Q | 2023-06-15 02:34:39 | 9703 |
| twitchguru | U:GSQGDX7HCQ9DK | 2023-08-03 14:47:40 | 9634 |
| ricardo73 | U:T7T6XH9540GVV | 2023-04-24 06:25:31 | 9563 |
| inspired17 | user_as01gf1gfc8ny | 2024-03-02 04:03:28 | 9185 |
| july1337 | user_wb4592qst8t48 | 2024-04-05 15:58:28 | 8961 |
| ren51 | U:XWA2SDNQBYMXD | 2023-09-07 14:40:00 | 8847 |
| hillbilly | U:7N1GDKHSSSZNJ | 2022-11-28 12:56:26 | 8645 |
| xdliverblx | user_kqfdj8rdhkpnv | 2023-12-30 20:17:46 | 8608 |
| chocolateimage | U:WHB70A279YBPJ | 2023-07-21 15:53:52 | 8227 |
| nothingster | U:A9HWW4VAE6XJ5 | 2022-12-20 02:51:05 | 8182 |
| bigboyduelist | U:QYGQSZ0232EXP | 2022-08-22 16:29:21 | 7962 |
| ibrasal | U:MBNYW84PRT7BB | 2023-08-16 20:25:34 | 7501 |
| nathanjackson | user_dppfbvwjq2963 | 2023-11-17 21:37:48 | 7472 |
| tcw | user_2xes0wjhfmybb | 2023-11-07 03:42:35 | 7416 |
| jpb1976 | U:P6W06DB29G9SZ | 2023-02-04 15:10:08 | 7403 |
| mezayt | U:0T2NJR5VJRT8Z | 2022-12-28 05:12:49 | 7389 |
| jctdaswfmnqaee8 | user_mhzm8s7q9jt6h | 2023-12-31 00:17:41 | 7328 |
| icerogue | user_73k9zn3jxvcxs | 2024-02-22 14:53:57 | 7258 |
| thelooneygirl | user_e9fwd2xfn2ajv | 2023-11-30 17:15:53 | 7163 |
| not_popee | U:WA1Q15SB6Q1VJ | 2023-04-11 09:18:52 | 7068 |
| altazio | U:6SCFF1NBHARQA | 2022-09-08 09:39:59 | 6967 |
| virtualsignal | user_y5q4s4he1snq9 | 2024-02-06 06:53:17 | 6867 |
| gioboss | U:PM36EZDVKCMW3 | 2023-05-23 19:17:38 | 6759 |
| lucasday | U:2RAPWS9K5HEYZ | 2022-11-03 05:15:53 | 6754 |
| nickviv | user_at41z2z9zafdz | 2024-07-08 17:52:51 | 6706 |
| novicain | U:DG228ZACF1NAN | 2022-12-28 01:49:00 | 6429 |
| n8kasper | U:VW9XKV9NWV6WS | 2022-05-31 21:25:56 | 6373 |
| garrett65536 | U:9T28V6PKPB7EM | 2023-08-28 19:16:21 | 6366 |
| oklahomadoss | U:WPF17KR1HB4YV | 2023-01-23 01:31:37 | 6364 |
| rqguy2022 | U:JV591Y7HGVKMR | 2022-09-08 22:35:59 | 6363 |
| jack314k | U:FYNFQA4D40PH4 | 2023-06-10 02:29:41 | 6286 |
| michael-studios | U:5P0BDXD18ST8C | 2023-07-29 20:46:32 | 6276 |
| ill-greed | U:YASA2RC19EHGY | 2023-07-22 06:06:22 | 6170 |
| jamescozart2245 | U:V7VA6DS24T2VE | 2023-07-25 01:17:30 | 6063 |
| avaljml | U:F1DXEJZ7HS137 | 2023-08-22 02:51:09 | 6012 |
| 24ratcma | U:NBNCMS81965ZS | 2022-11-28 01:10:53 | 5957 |
| solitaryvirus | user_wm3tzh0v91gnv | 2024-06-28 16:35:50 | 5942 |
| username64 | U:R2MATFEE7223X | 2023-07-25 02:06:41 | 5879 |
| tellstories | user_5eq7hj7vnmqqc | 2024-03-28 18:57:57 | 5824 |
| mallerie7 | U:7WAD25W85TYHM | 2022-12-16 19:22:18 | 5777 |
| unknown123 | U:1S4G4YY0EW2X6 | 2022-03-08 02:03:25 | 5736 |
| truebuck86 | U:RAE3M212X65W6 | 2023-09-13 21:47:28 | 5689 |
| g4bdou1 | U:FVFZ0TN0Y0N4F | 2023-04-30 23:40:31 | 5581 |
| hspillerga | user_8h8ffwmgphmq9 | 2023-11-19 16:07:20 | 5562 |
| garflied17 | user_a7nef57s5ypgm | 2023-12-09 18:14:16 | 5432 |
| botwoon | U:DX55CFAPANPK3 | 2023-03-12 05:23:03 | 5403 |
| jeromec22 | U:WG9S2GHDW8MA0 | 2023-07-21 23:54:37 | 5390 |
| forrealuseless | U:VVFERXHKNT4KN | 2023-05-07 23:13:07 | 5324 |
| xc3jo | U:246RSQQGZE7F7 | 2022-09-12 03:48:02 | 5211 |
| codebullet | U:9QH9CFSXE5EY8 | 2023-07-27 06:12:20 | 5184 |
| ziad1818 | U:XACATP3C7NG5D | 2023-07-23 20:45:02 | 5158 |
| weslleycebr | U:QJ9PGBCJR2101 | 2023-07-10 16:35:02 | 5143 |
| cristianarbey | U:36910S9YX5M7S | 2022-12-13 16:52:07 | 5128 |
| thiccslayer | U:70C2DNQ8NAPE2 | 2022-07-21 04:29:47 | 5071 |
@@ -0,0 +1,196 @@
-- TODO: TOP maybe_creator_user_token
-- TODO: maybe_style_transfer_source_media_file_token (original videos)
-- TODO: Later: media_type = (mp4, video)
-- origin_product_category
select distinct origin_category,
count(*)
from media_files
group by origin_category;
-- +-----------------+----------+
-- | origin_category | count(*) |
-- +-----------------+----------+
-- | inference | 40933502 |
-- | processed | 365 |
-- | story_engine | 688 |
-- | studio | 148 |
-- | upload | 796516 |
-- +-----------------+----------+
-- 5 rows in set (54.69 sec) -- TODO [QUERY DONE]: Get origin_category = `story_engine`, `studio`, and `processed` (???)
-- origin_product_category
select distinct origin_product_category,
count(*)
from media_files
group by origin_product_category;
-- +-------------------------+----------+
-- | origin_product_category | count(*) |
-- +-------------------------+----------+
-- | face_animator | 145770 |
-- | face_fusion | 1524 |
-- | face_mirror | 12743 |
-- | image_gen | 450196 |
-- | mocap | 436 |
-- | studio | 148 |
-- | tts | 33757597 |
-- | unknown | 94182 |
-- | voice_conversion | 6664633 |
-- | workflow | 46011 |
-- | zs_voice | 558212 |
-- +-------------------------+----------+
-- 11 rows in set (45.88 sec)
-- TODO [QUERIES DONE(2)]: Get origin_product_category = `mocap`, `studio`, `workflow`, `face_mirror`, `face_fusion`
-- maybe_origin_model_type (+token)
select distinct maybe_origin_model_type,
count(*)
from media_files
group by maybe_origin_model_type;
-- +-------------------------+----------+
-- | maybe_origin_model_type | count(*) |
-- +-------------------------+----------+
-- | NULL | 347531 |
-- | comfy_ui | 46013 |
-- | face_fusion | 1524 |
-- | gpt_sovits | 304046 |
-- | live_portrait | 12743 |
-- | mocap_net | 71 |
-- | rvc_v2 | 6107295 |
-- | sad_talker | 156308 |
-- | so_vits_svc | 557377 |
-- | stable_diffusion_1_5 | 450196 |
-- | styletts2 | 263575 |
-- | tacotron2 | 33453882 |
-- | vall_e_x | 31188 |
-- +-------------------------+----------+
-- 13 rows in set (51.98 sec)
-- TODO [DONEx2]: maybe_origin_model_type = comfy_ui, mocap_net, face_fusion, live_portrait
-- media_type
select distinct media_type,
count(*)
from media_files
group by media_type;
-- +------------+----------+
-- | media_type | count(*) |
-- +------------+----------+
-- | audio | 40676557 |
-- | bvh | 107 |
-- | fbx | 325 |
-- | gif | 7 |
-- | glb | 3100 |
-- | gltf | 45 |
-- | image | 481274 |
-- | jpg | 91 |
-- | mp4 | 13280 |
-- | pmd | 11 |
-- | pmx | 239 |
-- | png | 208 |
-- | scene_json | 4562 |
-- | scene_ron | 688 |
-- | video | 247391 |
-- | vmd | 168 |
-- | wav | 303996 |
-- +------------+----------+
-- 17 rows in set (43.68 sec)
-- TODO [DONE WITH QUERY]: media_type = bvh, fbx, gif, glb, gltf, jpg, png, pmx, pmd, scene_json, scene_ron, vmd
-- TODO: Later: media_type = (mp4, video)
-- media_class
select distinct media_class,
count(*)
from media_files
group by media_class;
-- +-------------+----------+
-- | media_class | count(*) |
-- +-------------+----------+
-- | audio | 40786861 |
-- | dimensional | 7846 |
-- | image | 30446 |
-- | unknown | 653032 |
-- | video | 254270 |
-- +-------------+----------+
-- 5 rows in set (46.78 sec)
-- TODO [QUERY DONE]: media_class = dimensional
-- maybe_media_subtype
select distinct maybe_media_subtype,
count(*)
from media_files
group by maybe_media_subtype;
-- +---------------------+----------+
-- | maybe_media_subtype | count(*) |
-- +---------------------+----------+
-- | NULL | 41730497 |
-- | mixamo | 950 |
-- | storyteller_scene | 766 |
-- | scene_import | 385 |
-- | mocap_net | 2 |
-- | animation_only | 15 |
-- | object | 1 |
-- +---------------------+----------+
-- 7 rows in set (25.48 sec)
-- TODO [QUERY DONE]: maybe_media_subtype IS NOT NULL
-- maybe_animation_type
select distinct maybe_animation_type,
count(*)
from media_files
group by maybe_animation_type;
-- +----------------------+----------+
-- | maybe_animation_type | count(*) |
-- +----------------------+----------+
-- | NULL | 41732552 |
-- | mixamo | 360 |
-- | mocap_net_ar_kit | 1 |
-- | ar_kit | 41 |
-- | move_ai | 46 |
-- | move_ai_ar_kit | 7 |
-- | rigify | 7 |
-- | mixamo_ar_kit | 114 |
-- | miku_miku_dance | 290 |
-- | mocap_net | 2 |
-- +----------------------+----------+
-- 10 rows in set (27.46 sec)
-- TODO [QUERY DONE]: maybe_animation_type IS NOT NULL
-- maybe_engine_category
select distinct maybe_engine_category,
count(*)
from media_files
group by maybe_engine_category;
-- +-----------------------+----------+
-- | maybe_engine_category | count(*) |
-- +-----------------------+----------+
-- | NULL | 41729660 |
-- | animation | 344 |
-- | character | 707 |
-- | creature | 71 |
-- | expression | 45 |
-- | image_plane | 306 |
-- | location | 105 |
-- | object | 694 |
-- | scene | 4493 |
-- | set_dressing | 44 |
-- | skybox | 1 |
-- | video_plane | 77 |
-- +-----------------------+----------+
-- 12 rows in set (36.41 sec)
-- TODO [QUERY DONE]: maybe_engine_category IS NOT NULL
@@ -0,0 +1,12 @@
-- Media file cover images
select distinct maybe_cover_image_media_file_token
from media_files
where maybe_cover_image_media_file_token is not null
group by maybe_cover_image_media_file_token
-- Model weights cover images
select distinct maybe_cover_image_media_file_token
from model_weights
where maybe_cover_image_media_file_token is not null
group by maybe_cover_image_media_file_token
@@ -0,0 +1,59 @@
-- STUDIO_maybe_media_subtype_not_null.csv
select token
from media_files
where maybe_media_subtype IS NOT NULL;
-- STUDIO_dimensional_media_class.csv
select token
from media_files
where media_class = 'dimensional';
-- STUDIO_maybe_animation_type_not_null.csv
select token
from media_files
where maybe_animation_type IS NOT NULL;
-- STUDIO_IMPORTANT_maybe_engine_category_not_null.csv
select token
from media_files
where maybe_engine_category IS NOT NULL;
-- STUDIO_IMPORTANT_scene_source_token_not_null.csv
select distinct maybe_scene_source_media_file_token
from media_files
where maybe_scene_source_media_file_token IS NOT NULL
group by maybe_scene_source_media_file_token;
-- STUDIO_media_file_origin_categories.csv
select token
from media_files
where origin_category IN ('processed', 'studio', 'story_engine');
-- STUDIO_media_file_studio_asset_product_category.csv
select token
from media_files
where origin_product_category IN ('mocap', 'studio', 'workflow');
-- VIDEO_media_file_video_product_category.csv
select token
from media_files
where origin_product_category IN ('face_mirror', 'face_fusion');
-- VIDEO_media_file_video_origin_model_type.csv
select token
from media_files
where maybe_origin_model_type IN ('comfy_ui', 'face_fusion', 'live_portrait');
-- STUDIO_media_file_mocap_model_type.csv
select token
from media_files
where maybe_origin_model_type IN ('mocap_net');
select token
from media_files
where media_type IN ('bvh', 'fbx', 'gif', 'glb', 'gltf', 'jpg', 'pmd', 'pmx', 'png', 'scene_json', 'scene_ron', 'vmd');
select token
from media_files
where media_type IN ('mp4', 'video');
@@ -0,0 +1,4 @@
select token
from media_files
where is_intermediate_system_file IS TRUE
@@ -0,0 +1,34 @@
-- noinspection SqlDialectInspectionForFile
-- noinspection SqlNoDataSourceInspectionForFile
-- noinspection SqlResolveForFile
-- Generations by account recency histogram
select
created_date,
case when user_account_age_days <= 1 then 'today'
when user_account_age_days <= 30 then '<1 month'
when user_account_age_days <= 60 then '<2 month'
when user_account_age_days <= 90 then '<3 month'
when user_account_age_days <= 365 then '<1 year'
else '1+ years' end as user_account_age,
count(*) as generations
FROM (
SELECT
DATE(gij.created_at) as created_date,
-- Account age at time of media generation
DATEDIFF(gij.created_at, u.created_at) as user_account_age_days
from
generic_inference_jobs as gij
join
users as u
on
gij.maybe_creator_user_token = u.token
where
gij.created_at >= (CURDATE() - INTERVAL 30 DAY)
and gij.status = 'complete_success'
and gij.id > 40839206
order by gij.created_at asc
) as x
group by created_date, user_account_age
order by created_date asc, user_account_age asc;
@@ -0,0 +1,35 @@
-- noinspection SqlDialectInspectionForFile
-- noinspection SqlNoDataSourceInspectionForFile
-- noinspection SqlResolveForFile
-- Generations by account recency histogram
select
created_date,
case when user_account_age_days <= 1 then 'today'
when user_account_age_days <= 30 then '<1 month'
when user_account_age_days <= 60 then '<2 month'
when user_account_age_days <= 90 then '<3 month'
when user_account_age_days <= 365 then '<1 year'
else '1+ years' end as user_account_age,
count(distinct user_token) as dau_count
FROM (
SELECT
DATE(gij.created_at) as created_date,
-- Account age at time of media generation
DATEDIFF(gij.created_at, u.created_at) as user_account_age_days,
u.token as user_token
from
generic_inference_jobs as gij
join
users as u
on
gij.maybe_creator_user_token = u.token
where
gij.created_at >= (CURDATE() - INTERVAL 30 DAY)
and gij.status = 'complete_success'
and gij.id > 40839206
order by gij.created_at asc
) as x
group by created_date, user_account_age
order by created_date asc, user_account_age asc;
@@ -0,0 +1,7 @@
SELECT
DATE(gij.created_at) as created_date,
product_category,
count(*) as job_count
FROM generic_inference_jobs as gij
WHERE gij.created_at >= (CURDATE() - INTERVAL 30 DAY)
GROUP BY created_date, product_category;
@@ -0,0 +1,16 @@
-- Find vcm_* tokens that are still in use
select
job_token,
model_token,
user_token
from (
select token as job_token,
maybe_model_token as model_token,
maybe_creator_user_token as user_token
from generic_inference_jobs
order by id
desc limit 1000000
) as x
where model_token NOT LIKE "TM:%"
and model_token NOT LIKE "weight_%"
limit 50;
@@ -12,7 +12,7 @@ SELECT
maybe_creator_user_token,
users.username as maybe_creator_username,
creator_ip_address,
count(*) as attempts
count(*) as total_job_count
FROM (
SELECT
maybe_creator_user_token,
@@ -22,15 +22,16 @@ FROM (
creator_ip_address,
created_at
FROM generic_inference_jobs
where status = 'pending'
ORDER BY id DESC
LIMIT 10000
LIMIT 50000
) as j
WHERE j.created_at > NOW() - INTERVAL 30 MINUTE
) as jobs
LEFT OUTER JOIN users
ON users.token = jobs.maybe_creator_user_token
group by maybe_creator_user_token, maybe_creator_username, creator_ip_address
order by attempts desc;
order by total_job_count desc;
-- Bin histogram by creator user (including logged out)
@@ -38,7 +39,7 @@ order by attempts desc;
SELECT
users.username as maybe_creator_username,
maybe_creator_user_token,
count(*) as attempts
count(*) as total_job_count
FROM (
SELECT
maybe_creator_user_token,
@@ -56,7 +57,7 @@ FROM (
LEFT OUTER JOIN users
ON users.token = jobs.maybe_creator_user_token
group by maybe_creator_user_token, maybe_creator_username
order by attempts desc;
order by total_job_count desc;
-- Bin histogram by IP (logged in and non-logged in)
@@ -2,7 +2,19 @@
-- noinspection SqlNoDataSourceInspectionForFile
-- noinspection SqlResolveForFile
-- Histogram by type
-- Pending jobs
select
count(*),
job_type
from generic_inference_jobs
where status in ('pending', 'started', 'attempt_failed')
group by job_type;
update generic_inference_jobs
set status = 'dead'
where status in ('pending', 'started', 'attempt_failed')
-- Histogram by type over last 50,000 jobs
-- NB: no index on ip, hence subquery
select
job_type,
@@ -20,7 +32,7 @@ FROM (
) as j
group by job_type, inference_category, maybe_model_type;
-- Histogram by type (still processing)
-- Histogram by type over last 50,000 jobs that are "still processing"
-- NB: no index on ip, hence subquery
select
job_type,
@@ -2,31 +2,35 @@
-- noinspection SqlNoDataSourceInspectionForFile
-- noinspection SqlResolveForFile
-- Kill routed jobs
update generic_inference_jobs set status = 'dead' where maybe_routing_tag IS NOT NULL limit 100;
-- Get pending job count
select count(*)
from generic_inference_jobs
where status = 'pending';
-- Get pending jobs
select count(*) from generic_inference_jobs where status = 'pending';
-- Kill outstanding jobs
-- Kill *ALL* pending / outstanding jobs of any type
update generic_inference_jobs
set status = 'dead'
where status IN ('pending', 'started', 'attempt_failed');
-- Kill outstanding jobs of type
-- Kill all routed jobs
update generic_inference_jobs
set status = 'dead'
where status IN ('pending', 'started', 'attempt_failed')
and maybe_model_type IN ('sad_talker', 'so_vits_svc');
where maybe_routing_tag IS NOT NULL;
-- Tacotron 2 TTS
-- Kill all Tacotron TTS jobs
update generic_inference_jobs
set status = 'dead'
where status IN ('pending', 'started', 'attempt_failed')
and maybe_model_type IN ('tacotron2');
-- Sad Talker Face Animation
-- Kill all Sad Talker Face Animation jobs
update generic_inference_jobs
set status = 'dead'
where status IN ('pending', 'started', 'attempt_failed')
and maybe_model_type IN ('sad_talker');
-- Kill all jobs of several types
update generic_inference_jobs
set status = 'dead'
where status IN ('pending', 'started', 'attempt_failed')
and maybe_model_type IN ('sad_talker', 'so_vits_svc');
@@ -0,0 +1,8 @@
-- noinspection SqlDialectInspectionForFile
-- noinspection SqlNoDataSourceInspectionForFile
-- noinspection SqlResolveForFile
-- Get pending job count
select count(*)
from generic_inference_jobs
where status = 'pending';
@@ -0,0 +1,46 @@
-- Total usage
select
count(*) as use_count
from generic_inference_jobs as gij
where gij.product_category = 'vid_face_fusion'
and gij.created_at >= (CURDATE() - INTERVAL 5 DAY)
-- Usage by user
select
u.token,
u.username,
count(*) as use_count
from generic_inference_jobs as gij
left outer join users as u
on u.token = gij.maybe_creator_user_token
where gij.product_category = 'vid_face_fusion'
and gij.created_at >= (CURDATE() - INTERVAL 2 DAY)
group by u.token, u.username
order by use_count desc
-- TTS vs Face Fusion side by side statistics
select
x.user_token,
x.username,
x.face_fusion_count,
count(*) as tts_count
from (
select
u.token as user_token,
u.username,
count(*) as face_fusion_count
from generic_inference_jobs as gij
left outer join users as u
on u.token = gij.maybe_creator_user_token
where gij.product_category = 'vid_face_fusion'
and gij.created_at >= (CURDATE() - INTERVAL 1 DAY)
group by u.token, u.username
) as x
left outer join generic_inference_jobs as gij
on x.user_token = gij.maybe_creator_user_token
where gij.product_category = 'tts_tacotron2'
and gij.created_at >= (CURDATE() - INTERVAL 1 DAY)
group by x.user_token, x.username
order by face_fusion_count desc
@@ -0,0 +1,10 @@
SELECT
m.media_type,
COUNT(*)
FROM media_files as m
JOIN users as u
ON m.maybe_creator_user_token = u.token
WHERE u.username = lower('dzth')
GROUP BY m.media_type
@@ -0,0 +1,35 @@
-- Top users in a time period
select
u.username,
u.token,
u.created_at,
count(*) as generations
from
media_files as m
join users as u
on m.maybe_creator_user_token = u.token
where
m.created_at >= (CURDATE() - INTERVAL 5 DAY)
group by
u.username, u.token, u.created_at
order by
generations desc
limit 50;
-- Top users all time
select
u.username,
u.token,
u.created_at,
count(*) as generations
from
media_files as m
join users as u
on m.maybe_creator_user_token = u.token
group by
u.username, u.token, u.created_at
order by
generations desc
limit 500;
@@ -0,0 +1,22 @@
| Field | Type | Null | Key | Default | Extra |
+-------------+------------------+------+-----+---------+----------------+
| id | bigint(20) | NO | PRI | NULL | auto_increment |
| token | varchar(32) | NO | MUL | NULL | |
| on_date | date | NO | MUL | NULL | |
| usage_count | int(10) unsigned | NO | MUL | 0 | |
+-------------+------------------+------+-----+---------+----------------+
--- Top models after date
select
w.token,
substring(w.title, 1, 100) as title,
sum(usage_count) as usage_count
from model_weight_usage_counts as uc
join model_weights as w
on uc.token = w.token
where on_date >= '2024-09-01'
group by w.token
order by usage_count desc
limit 150;
@@ -0,0 +1,47 @@
-- noinspection SqlDialectInspectionForFile
-- noinspection SqlNoDataSourceInspectionForFile
-- noinspection SqlResolveForFile
-- Inventory non-deleted
select
m.id,
m.token,
SUBSTRING(m.title, 1, 35) as title,
u.username,
SUBSTRING(m.original_download_url, 1, 35) as url,
m.updated_at
from model_weights as m
left join users AS u on
u.token = m.creator_user_token
where
m.user_deleted_at IS NULL
and m.mod_deleted_at IS NULL
order by m.title asc;
-- Top models within time period
-- NB: id threshold is to avoid a full table scan
select
mw.token,
mw.title,
mw.weights_type,
mw.weights_category,
u.username as creator_username,
r.use_count,
mw.created_at,
mw.user_deleted_at,
mw.mod_deleted_at
from (
select maybe_model_token, count(*) as use_count
from generic_inference_jobs
where maybe_model_token IS NOT NULL
and created_at > NOW() - INTERVAL 7 DAY
and id > 40000000
group by maybe_model_token
) as r
join model_weights as mw
on mw.token = r.maybe_model_token
join users as u
on u.token = mw.creator_user_token
order by r.use_count desc
limit 100;
@@ -0,0 +1,65 @@
-- This query works!
-- Here we get a histogram of model usages on a particular day.
-- This fetches counts of all jobs that were submitted using either
-- a modern model_weights token or a legacy tts_model token and sums
-- them together when the two correspond to the same model_weight
-- record.
SELECT
distinct coalesce(w.token, w_old.token) as token,
COUNT(*) as usage_count
FROM
media_files as f
LEFT OUTER JOIN model_weights as w
ON f.maybe_origin_model_token = w.token
LEFT OUTER JOIN model_weights as w_old
ON f.maybe_origin_model_token = w_old.maybe_migration_old_model_token
WHERE f.maybe_origin_model_token IS NOT NULL
AND f.created_at >= '2024-09-01'
AND f.created_at < '2024-09-01' + INTERVAL 1 DAY
GROUP BY coalesce(w.token, w_old.token)
ORDER BY usage_count DESC
LIMIT 10;
-- TESTING: Above query, but only modern model_weights tokens
SELECT
distinct w.token,
COUNT(*) as usage_count
FROM
media_files as f
JOIN model_weights as w
ON f.maybe_origin_model_token = w.token
WHERE f.maybe_origin_model_token IS NOT NULL
AND f.created_at >= '2024-09-01'
AND f.created_at < '2024-09-01' + INTERVAL 1 DAY
GROUP BY w.token
ORDER BY usage_count DESC
LIMIT 10;
-- TESTING: Above query, but only legacy tts_models tokens
SELECT
distinct w_old.token,
COUNT(*) as usage_count
FROM
media_files as f
LEFT OUTER JOIN model_weights as w_old
ON f.maybe_origin_model_token = w_old.maybe_migration_old_model_token
WHERE f.maybe_origin_model_token IS NOT NULL
AND f.created_at >= '2024-09-01'
AND f.created_at < '2024-09-01' + INTERVAL 1 DAY
GROUP BY w_old.token
ORDER BY usage_count DESC
LIMIT 10;
-- TESTING: Testing that the math works without joining
SELECT
distinct f.maybe_origin_model_token,
COUNT(*) as usage_count
FROM
media_files as f
WHERE f.maybe_origin_model_token IS NOT NULL
AND f.created_at >= '2024-09-01'
AND f.created_at < '2024-09-01' + INTERVAL 1 DAY
GROUP BY f.maybe_origin_model_token
ORDER BY usage_count DESC
LIMIT 10;
@@ -1,21 +0,0 @@
-- noinspection SqlDialectInspectionForFile
-- noinspection SqlNoDataSourceInspectionForFile
-- noinspection SqlResolveForFile
-- Inventory non-deleted
select
m.id,
m.token,
SUBSTRING(m.title, 1, 35) as title,
u.username,
SUBSTRING(m.original_download_url, 1, 35) as url,
m.updated_at
from model_weights as m
left join users AS u on
u.token = m.creator_user_token
where
m.user_deleted_at IS NULL
and m.mod_deleted_at IS NULL
order by m.title asc;
@@ -0,0 +1,265 @@
-- Find top model weights by usage.
-- Remove "AI Streamers" and top users
-- This supports old-format TTS tokens.
-- This is a very expensive query that takes forever to run:
-- 1000 rows in set (7 hours 6 min 8.98 sec)
SELECT
mw.token,
mw.weights_type,
mw.title,
mw.created_at,
mw.user_deleted_at,
mw.mod_deleted_at,
count(*) as use_count
FROM model_weights as mw
JOIN (
-- First subquery: media_files records that reference model_weights or migrated model_weights
select
coalesce(w.token, w_migrated.token) as token
from media_files as f
left outer join model_weights as w
on f.maybe_origin_model_token = w.token
left outer join model_weights as w_migrated
on f.maybe_origin_model_token = w_migrated.maybe_migration_old_model_token
where
f.maybe_creator_user_token NOT IN (
"U:03HG1NRMDT7A6", "U:0BJT98T611SZC", "U:0T2NJR5VJRT8Z", "U:19WD4DHDR8XDH", "U:1S4G4YY0EW2X6", "U:211ZHWM8J1F8B",
"U:246RSQQGZE7F7", "U:2H5SED9TD85AW", "U:2RAPWS9K5HEYZ", "U:2TEZS9T6AK6CY", "U:36910S9YX5M7S", "U:3MQB45NCHSNH9",
"U:3S8S9X3H9B6SA", "U:3T08BX8GFDGJ2", "U:4MFYA09TH7SD1", "U:4Z8DK9T7K4170", "U:5P0BDXD18ST8C", "U:5W2X30KK6KNAP",
"U:5WTDZVMX23WC1", "U:5Z4ZMBVZT8FYP", "U:6JJJRNN0B17CP", "U:6SCFF1NBHARQA", "U:70C2DNQ8NAPE2", "U:7HV0JNV82F85J",
"U:7N1GDKHSSSZNJ", "U:7WAD25W85TYHM", "U:89XRNEWENPCGX", "U:8D706H5C7E5MF", "U:9QH9CFSXE5EY8", "U:9T28V6PKPB7EM",
"U:A9HWW4VAE6XJ5", "U:AF0K4PMS37JWN", "U:BY6920DKHNDBT", "U:DG228ZACF1NAN", "U:DX55CFAPANPK3", "U:E4TSGYT5DX19C",
"U:ESVW6NHE6GHP8", "U:EW15EA1XNGFVB", "U:F1DXEJZ7HS137", "U:FVFZ0TN0Y0N4F", "U:FYNFQA4D40PH4", "U:GJJKBHK15C9W0",
"U:GSQGDX7HCQ9DK", "U:H2KWH2QPNHDRB", "U:JV591Y7HGVKMR", "U:KEXZ6BBGH75AX", "U:MBNYW84PRT7BB", "U:N0VXP0H0E36WT",
"U:NBNCMS81965ZS", "U:NFV8FYBZHZPP4", "U:P6W06DB29G9SZ", "U:PM36EZDVKCMW3", "U:QJ9PGBCJR2101", "U:QPEXYBZJ5TB9K",
"U:QYGQSZ0232EXP", "U:R2MATFEE7223X", "U:RAE3M212X65W6", "U:RBH6ZHBDDVH3Q", "U:SVZRVJSP04JAE", "U:SYW8H845YZJBW",
"U:T3EE4GCA5Q4ZJ", "U:T7T6XH9540GVV", "U:TBM1Z40A46NXZ", "U:V7VA6DS24T2VE", "U:VVFERXHKNT4KN", "U:VW9XKV9NWV6WS",
"U:WA1Q15SB6Q1VJ", "U:WG9S2GHDW8MA0", "U:WHB70A279YBPJ", "U:WHXJK1RSYM5WD", "U:WJJT9AHJHGJS5", "U:WPF17KR1HB4YV",
"U:XACATP3C7NG5D", "U:XWA2SDNQBYMXD", "U:Y2Q8Q7C537G88", "U:YASA2RC19EHGY", "U:YX31ZJ517T40G", "U:Z477H1KNSY3B5",
"user_23jmwykxjjrm4", "user_2xes0wjhfmybb", "user_4c2qcpbq6twv7", "user_5eq7hj7vnmqqc", "user_73k9zn3jxvcxs",
"user_7yjk723jtfmj6", "user_8h8ffwmgphmq9", "user_9rjpehtnpd6tb", "user_a7nef57s5ypgm", "user_as01gf1gfc8ny",
"user_at41z2z9zafdz", "user_aw7m4d07fjzrv", "user_bkypxftv69675", "user_bz76arxrmr0vj", "user_cewjs06e36hfq",
"user_dppfbvwjq2963", "user_e9fwd2xfn2ajv", "user_gv0a0vec80540", "user_hdav69agkm2mw", "user_kqfdj8rdhkpnv",
"user_mhzm8s7q9jt6h", "user_q7dj0hj3xy31g", "user_qcnpkvw9fnhyr", "user_vb7mch05njgnp", "user_vmdq5nq7bfckh",
"user_wb4592qst8t48", "user_wm3tzh0v91gnv", "user_x990jyt3ne4br", "user_xy3snt46r1edn", "user_y1b4ag72ezh65",
"user_y5q4s4he1snq9", "user_zgw9q4tz6506t"
)
and (w.token IS NOT NULL OR w_migrated.token IS NOT NULL)
UNION ALL
-- Second subquery: tts_results that reference tts_models (which we have migrated to model_weights)
select
w_migrated_2.token as token
from tts_results as tr
left outer join model_weights as w_migrated_2
on tr.model_token = w_migrated_2.maybe_migration_old_model_token
where
tr.maybe_creator_user_token NOT IN (
"U:03HG1NRMDT7A6", "U:0BJT98T611SZC", "U:0T2NJR5VJRT8Z", "U:19WD4DHDR8XDH", "U:1S4G4YY0EW2X6", "U:211ZHWM8J1F8B",
"U:246RSQQGZE7F7", "U:2H5SED9TD85AW", "U:2RAPWS9K5HEYZ", "U:2TEZS9T6AK6CY", "U:36910S9YX5M7S", "U:3MQB45NCHSNH9",
"U:3S8S9X3H9B6SA", "U:3T08BX8GFDGJ2", "U:4MFYA09TH7SD1", "U:4Z8DK9T7K4170", "U:5P0BDXD18ST8C", "U:5W2X30KK6KNAP",
"U:5WTDZVMX23WC1", "U:5Z4ZMBVZT8FYP", "U:6JJJRNN0B17CP", "U:6SCFF1NBHARQA", "U:70C2DNQ8NAPE2", "U:7HV0JNV82F85J",
"U:7N1GDKHSSSZNJ", "U:7WAD25W85TYHM", "U:89XRNEWENPCGX", "U:8D706H5C7E5MF", "U:9QH9CFSXE5EY8", "U:9T28V6PKPB7EM",
"U:A9HWW4VAE6XJ5", "U:AF0K4PMS37JWN", "U:BY6920DKHNDBT", "U:DG228ZACF1NAN", "U:DX55CFAPANPK3", "U:E4TSGYT5DX19C",
"U:ESVW6NHE6GHP8", "U:EW15EA1XNGFVB", "U:F1DXEJZ7HS137", "U:FVFZ0TN0Y0N4F", "U:FYNFQA4D40PH4", "U:GJJKBHK15C9W0",
"U:GSQGDX7HCQ9DK", "U:H2KWH2QPNHDRB", "U:JV591Y7HGVKMR", "U:KEXZ6BBGH75AX", "U:MBNYW84PRT7BB", "U:N0VXP0H0E36WT",
"U:NBNCMS81965ZS", "U:NFV8FYBZHZPP4", "U:P6W06DB29G9SZ", "U:PM36EZDVKCMW3", "U:QJ9PGBCJR2101", "U:QPEXYBZJ5TB9K",
"U:QYGQSZ0232EXP", "U:R2MATFEE7223X", "U:RAE3M212X65W6", "U:RBH6ZHBDDVH3Q", "U:SVZRVJSP04JAE", "U:SYW8H845YZJBW",
"U:T3EE4GCA5Q4ZJ", "U:T7T6XH9540GVV", "U:TBM1Z40A46NXZ", "U:V7VA6DS24T2VE", "U:VVFERXHKNT4KN", "U:VW9XKV9NWV6WS",
"U:WA1Q15SB6Q1VJ", "U:WG9S2GHDW8MA0", "U:WHB70A279YBPJ", "U:WHXJK1RSYM5WD", "U:WJJT9AHJHGJS5", "U:WPF17KR1HB4YV",
"U:XACATP3C7NG5D", "U:XWA2SDNQBYMXD", "U:Y2Q8Q7C537G88", "U:YASA2RC19EHGY", "U:YX31ZJ517T40G", "U:Z477H1KNSY3B5",
"user_23jmwykxjjrm4", "user_2xes0wjhfmybb", "user_4c2qcpbq6twv7", "user_5eq7hj7vnmqqc", "user_73k9zn3jxvcxs",
"user_7yjk723jtfmj6", "user_8h8ffwmgphmq9", "user_9rjpehtnpd6tb", "user_a7nef57s5ypgm", "user_as01gf1gfc8ny",
"user_at41z2z9zafdz", "user_aw7m4d07fjzrv", "user_bkypxftv69675", "user_bz76arxrmr0vj", "user_cewjs06e36hfq",
"user_dppfbvwjq2963", "user_e9fwd2xfn2ajv", "user_gv0a0vec80540", "user_hdav69agkm2mw", "user_kqfdj8rdhkpnv",
"user_mhzm8s7q9jt6h", "user_q7dj0hj3xy31g", "user_qcnpkvw9fnhyr", "user_vb7mch05njgnp", "user_vmdq5nq7bfckh",
"user_wb4592qst8t48", "user_wm3tzh0v91gnv", "user_x990jyt3ne4br", "user_xy3snt46r1edn", "user_y1b4ag72ezh65",
"user_y5q4s4he1snq9", "user_zgw9q4tz6506t"
)
) as x
on mw.token = x.token
group by
mw.token,
mw.weights_type,
mw.title,
mw.created_at,
mw.user_deleted_at,
mw.mod_deleted_at
order by use_count desc
limit 1000;
-------- Only media_files version of the query -------
-- Find top model weights by usage.
-- Remove "AI Streamers" and top users
-- This supports old-format TTS tokens.
-- This only queries the media_files table and runs in just 8 minutes.
SELECT
mw.token,
mw.weights_type,
mw.title,
mw.created_at,
mw.user_deleted_at,
mw.mod_deleted_at,
count(*) as use_count
FROM model_weights as mw
JOIN (
select
coalesce(w.token, w_migrated.token) as token
from media_files as f
left outer join model_weights as w
on f.maybe_origin_model_token = w.token
left outer join model_weights as w_migrated
on f.maybe_origin_model_token = w_migrated.maybe_migration_old_model_token
and f.maybe_creator_user_token NOT IN (
"U:03HG1NRMDT7A6", "U:0BJT98T611SZC", "U:0T2NJR5VJRT8Z", "U:19WD4DHDR8XDH", "U:1S4G4YY0EW2X6", "U:211ZHWM8J1F8B",
"U:246RSQQGZE7F7", "U:2H5SED9TD85AW", "U:2RAPWS9K5HEYZ", "U:2TEZS9T6AK6CY", "U:36910S9YX5M7S", "U:3MQB45NCHSNH9",
"U:3S8S9X3H9B6SA", "U:3T08BX8GFDGJ2", "U:4MFYA09TH7SD1", "U:4Z8DK9T7K4170", "U:5P0BDXD18ST8C", "U:5W2X30KK6KNAP",
"U:5WTDZVMX23WC1", "U:5Z4ZMBVZT8FYP", "U:6JJJRNN0B17CP", "U:6SCFF1NBHARQA", "U:70C2DNQ8NAPE2", "U:7HV0JNV82F85J",
"U:7N1GDKHSSSZNJ", "U:7WAD25W85TYHM", "U:89XRNEWENPCGX", "U:8D706H5C7E5MF", "U:9QH9CFSXE5EY8", "U:9T28V6PKPB7EM",
"U:A9HWW4VAE6XJ5", "U:AF0K4PMS37JWN", "U:BY6920DKHNDBT", "U:DG228ZACF1NAN", "U:DX55CFAPANPK3", "U:E4TSGYT5DX19C",
"U:ESVW6NHE6GHP8", "U:EW15EA1XNGFVB", "U:F1DXEJZ7HS137", "U:FVFZ0TN0Y0N4F", "U:FYNFQA4D40PH4", "U:GJJKBHK15C9W0",
"U:GSQGDX7HCQ9DK", "U:H2KWH2QPNHDRB", "U:JV591Y7HGVKMR", "U:KEXZ6BBGH75AX", "U:MBNYW84PRT7BB", "U:N0VXP0H0E36WT",
"U:NBNCMS81965ZS", "U:NFV8FYBZHZPP4", "U:P6W06DB29G9SZ", "U:PM36EZDVKCMW3", "U:QJ9PGBCJR2101", "U:QPEXYBZJ5TB9K",
"U:QYGQSZ0232EXP", "U:R2MATFEE7223X", "U:RAE3M212X65W6", "U:RBH6ZHBDDVH3Q", "U:SVZRVJSP04JAE", "U:SYW8H845YZJBW",
"U:T3EE4GCA5Q4ZJ", "U:T7T6XH9540GVV", "U:TBM1Z40A46NXZ", "U:V7VA6DS24T2VE", "U:VVFERXHKNT4KN", "U:VW9XKV9NWV6WS",
"U:WA1Q15SB6Q1VJ", "U:WG9S2GHDW8MA0", "U:WHB70A279YBPJ", "U:WHXJK1RSYM5WD", "U:WJJT9AHJHGJS5", "U:WPF17KR1HB4YV",
"U:XACATP3C7NG5D", "U:XWA2SDNQBYMXD", "U:Y2Q8Q7C537G88", "U:YASA2RC19EHGY", "U:YX31ZJ517T40G", "U:Z477H1KNSY3B5",
"user_23jmwykxjjrm4", "user_2xes0wjhfmybb", "user_4c2qcpbq6twv7", "user_5eq7hj7vnmqqc", "user_73k9zn3jxvcxs",
"user_7yjk723jtfmj6", "user_8h8ffwmgphmq9", "user_9rjpehtnpd6tb", "user_a7nef57s5ypgm", "user_as01gf1gfc8ny",
"user_at41z2z9zafdz", "user_aw7m4d07fjzrv", "user_bkypxftv69675", "user_bz76arxrmr0vj", "user_cewjs06e36hfq",
"user_dppfbvwjq2963", "user_e9fwd2xfn2ajv", "user_gv0a0vec80540", "user_hdav69agkm2mw", "user_kqfdj8rdhkpnv",
"user_mhzm8s7q9jt6h", "user_q7dj0hj3xy31g", "user_qcnpkvw9fnhyr", "user_vb7mch05njgnp", "user_vmdq5nq7bfckh",
"user_wb4592qst8t48", "user_wm3tzh0v91gnv", "user_x990jyt3ne4br", "user_xy3snt46r1edn", "user_y1b4ag72ezh65",
"user_y5q4s4he1snq9", "user_zgw9q4tz6506t"
)
) as x
on mw.token = x.token
group by
mw.token,
mw.weights_type,
mw.title,
mw.created_at,
mw.user_deleted_at,
mw.mod_deleted_at
order by use_count desc
limit 100;
+----------------------------------+--------------+----------------------------------------------------------------------------------------------------------------+---------------------+---------------------+----------------+-----------+
| token | weights_type | title | created_at | user_deleted_at | mod_deleted_at | use_count |
+----------------------------------+--------------+----------------------------------------------------------------------------------------------------------------+---------------------+---------------------+----------------+-----------+
| weight_0f762jdzgsy1dhpb86qxy4ssm | tt2 | Rick Sanchez (Version 2.0) | 2023-05-14 05:26:03 | NULL | NULL | 846105 |
| weight_sfyjyr67ag1647xs0r7gmvkks | tt2 | Deleted Model | 2023-09-27 15:06:37 | NULL | NULL | 702990 |
| weight_kwmxssf6k6ha92h3b55mh3w9q | tt2 | Waldemaro Martínez. (Locutor de DJ, Latin American Spanish.) | 2022-12-22 02:59:57 | NULL | NULL | 426417 |
| weight_ahxbf2104ngsgyegncaefyy6j | tt2 | Plankton v2 (Doug Lawrence) | 2022-08-11 06:19:56 | NULL | NULL | 401748 |
| weight_rhfg4chgrp42bnha8kqfrtmcq | tt2 | Mariano Closs (full version) | 2022-04-28 20:57:04 | NULL | NULL | 377601 |
| weight_34vt3stah9xyts72zrya85vc9 | tt2 | "Arthur C. Clarke" (901ep) | 2022-04-15 08:34:03 | NULL | NULL | 297574 |
| weight_hehgvegadf08mfp5rzd69dmh4 | tt2 | Angry Male Yelling | 2023-10-20 11:30:46 | NULL | NULL | 291089 |
| weight_hz7g8f1j4psrsw2sv67e4y61q | tt2 | Mariano Closs (Relator de fútbol Argentino) | 2022-04-11 01:45:01 | NULL | NULL | 264792 |
| weight_83bv8pnva9vewht8zpye1x060 | tt2 | Dragonball Z Narrador (Latin, Version 1.0) | 2022-07-28 05:05:33 | NULL | NULL | 261753 |
| weight_txvtzmcd7jw0rg192284r1g3w | tt2 | Son Goku. (IMITADOR Remasterizado.) (Dragon Ball, Latin American Spanish.) | 2023-10-07 20:10:36 | NULL | NULL | 252080 |
| weight_b8rncypy7gw6nb0wthnwe2kk4 | tt2 | Zelda (Breath of the Wild) | 2023-05-17 00:30:49 | NULL | NULL | 247036 |
| weight_h8ebh6fyjyrr1vsjregw6yz8y | tt2 | Eric Cartman (Angry) | 2023-08-18 22:17:34 | NULL | NULL | 220012 |
| weight_mbcr352wfb1eq76tpy3ef3kx1 | tt2 | Lionel Messi | 2022-09-08 22:50:12 | NULL | NULL | 193128 |
| weight_31ewdsvev9bttgb4eg7zy7mj5 | tt2 | Morgan Freeman (New) | 2023-09-08 05:20:34 | NULL | NULL | 189755 |
| weight_t7a4br08b76btnnwkb32tsh7q | tt2 | Cristiano Ronaldo. (Español) Versión 2. | 2023-10-05 15:12:04 | NULL | NULL | 180499 |
| weight_fte9rq3em7vv9rqex0f8cvwdx | tt2 | Mariano Closs Tono Alto (Relator Fox Sports, Espn) | 2022-07-16 02:09:31 | NULL | NULL | 177236 |
| weight_kksrk14y802808as3d6mphedm | tt2 | Wednesday Addams (Jenna Ortega) | 2023-03-06 21:22:52 | NULL | NULL | 161520 |
| weight_zyadhwrc3bspetkxcma5300gs | tt2 | Peter Griffin (Classic, Version 2.0) | 2023-01-26 05:24:39 | NULL | NULL | 150694 |
| weight_r95f5pvvstgps0ychfqrzpfs3 | tt2 | Dragonball Z Narrador (Latin, Versión 2.0) | 2023-02-04 11:21:06 | NULL | NULL | 146141 |
| weight_3k28fws0v6r1ke3p0w0vw48gm | tt2 | Eric Cartman (New) | 2023-08-18 22:18:12 | NULL | NULL | 144175 |
| weight_0cg1294gaf52c7rh0vz7a2ger | tt2 | Stan Lee | 2021-08-17 10:56:25 | NULL | NULL | 133422 |
| weight_81waz0re2yzgw2fnmj0ah94zc | tt2 | Leonel Messi (Español) | 2022-06-05 13:31:20 | NULL | NULL | 129950 |
| weight_jzs5qmvtbvk934680ghfp48cf | tt2 | Homero Simpson (Homer Simpson Latin American Spanish) | 2022-12-25 14:52:16 | NULL | NULL | 129133 |
| weight_35ts2r0y8zkxzka82qh2jtr9h | sd_1.5 | Clarity 3 (Best Base Model) | 2024-02-18 22:28:46 | NULL | NULL | 122394 |
| weight_0bsxzrwp6p77t67s8dcn607wf | tt2 | Walter White (New) | 2022-12-13 07:35:03 | NULL | NULL | 118258 |
| weight_47hcjvnyfff60g4vty4thp400 | tt2 | Bob Esponja (SpongeBob SquarePants, Latin American Spanish) | 2022-02-13 01:55:52 | NULL | NULL | 115011 |
| weight_9409hbznp60n6w7ey9f6qw5bh | tt2 | Jar Jar Binks | 2023-05-26 22:08:02 | NULL | NULL | 105357 |
| weight_tq6pwerrbr4mvbjmtyhbsqe6t | tt2 | Spongebob SquarePants (New) | 2023-04-01 10:47:13 | NULL | NULL | 98595 |
| weight_x6r5w2tsxgcrrsgweva6dkrqj | tt2 | Donald Trump (Angry) | 2022-08-29 11:49:46 | NULL | NULL | 92875 |
| weight_62nh7prayvcnevbg2hq5qp1r8 | tt2 | Jesse Pinkman (New) | 2023-09-27 20:34:33 | NULL | NULL | 92259 |
| weight_f4av238kbadw9h258v1cq1mxw | tt2 | Saul Goodman | 2022-09-10 13:30:24 | NULL | NULL | 84818 |
| weight_ren3ng1bvpktsvg58gcrv2s52 | tt2 | Cristiano Ronaldo | 2023-02-18 17:16:22 | NULL | NULL | 83957 |
| weight_qnn4ns4r2a8x5abgb6fdg7tyz | tt2 | Homer Simpson (New) | 2023-12-04 20:58:48 | NULL | NULL | 75059 |
| weight_nzmwdhg42r8m6raap258mb55p | tt2 | Meg Griffin (Mila Kunis) | 2021-12-12 21:05:49 | NULL | NULL | 73956 |
| weight_79nve5ntc03rd2k5532je1rf6 | tt2 | Fluttershy. (Remasterizada) (Latin American Spanish, My Little Pony.) | 2023-10-23 23:43:11 | NULL | NULL | 73700 |
| weight_ms1kzt5m09cfw1yn666cxhy88 | tt2 | Gerry Scotti | 2022-09-29 22:14:26 | NULL | NULL | 72964 |
| weight_s0zjjkmht28dp4gm83e6xvjdk | tt2 | Auronplay (época de YouTube) | 2022-06-14 15:59:00 | NULL | NULL | 72813 |
| weight_vbz0wq7wkv80casj3vfptrrpg | sd_1.5 | Aniverse V15 Pruned | 2024-02-29 19:49:52 | NULL | NULL | 69564 |
| weight_1f7xnr358bkrhtx8y0v9cbfr6 | tt2 | Lionel Messi. (Español 2020 - 2023.) | 2023-09-28 20:02:33 | NULL | NULL | 69112 |
| weight_pttvmv1z6ppddypx37z1e8ptj | tt2 | Mike Ehrmantraut (New) | 2023-08-13 03:35:16 | NULL | NULL | 68980 |
| weight_79mn6535kkfey17bgpg9xty23 | tt2 | Doc Tops (Dr. Luca Merlini) | 2022-04-08 00:22:00 | NULL | NULL | 68632 |
| weight_vcvr8zmz7sa6byzsze7rbqfh6 | rvc_v2 | "Aquamarine" Aqua Hoshino (Oshi No Ko) | 2023-12-18 13:26:55 | NULL | NULL | 68581 |
| weight_3dnyrwny7d4585pcfjdrghxsq | tt2 | Gustavo Fring (Giancarlo Esposito) | 2022-10-14 21:20:08 | NULL | NULL | 68175 |
| weight_abe03ym9bztnzvx462kkc3fak | tt2 | Merlina Addams | 2023-01-30 01:20:47 | NULL | NULL | 67616 |
| weight_wzp5nb29078wdnadg2aep4m8k | rvc_v2 | "Android No.21" [JPN - DBFZ] | 2023-10-23 04:25:53 | 2024-02-16 17:56:39 | NULL | 65153 |
| weight_vrx7j407cxk45jenkrd769h9b | tt2 | Donald Trump (Casual Speech) | 2022-09-05 01:56:36 | NULL | NULL | 63223 |
| weight_y9arhnd7wjamezhqd27ksvmaz | tt2 | Squidward Tentacles | 2021-10-30 15:21:53 | NULL | NULL | 63061 |
| weight_s4bmmamst4a7ca2pg7tc52zwx | tt2 | Goku (Jose Antonio Gavira) (Castillian Spanish) | 2022-09-18 15:09:32 | NULL | NULL | 61928 |
| weight_bc0tjv6fs7c1ccrtw8mbwxay5 | tt2 | Sir David Attenborough (Version 2.0) | 2023-07-05 13:43:53 | NULL | NULL | 61261 |
| weight_jephx9sjmwzc7t4x29jsw88jg | tt2 | Mike Rome | 2023-08-19 08:55:25 | NULL | NULL | 59687 |
| weight_154man2fzg19nrtc15drner7t | tt2 | Patrick Star | 2021-09-21 18:30:52 | NULL | NULL | 59674 |
| weight_cg6heneq0rmkas3qj7ccz0t0r | tt2 | Donald Trump (Version 3.0) | 2023-09-12 05:09:33 | NULL | NULL | 55991 |
| weight_yqexh77ntqyawzgh9fzash798 | sd_1.5 | Flat2D Animerge v3 | 2024-02-28 21:00:43 | NULL | NULL | 54861 |
| weight_ytna28rq62as8t5zb0qtpf3p6 | tt2 | Homero Simpson Español Latino (Clasico) | 2023-01-20 23:43:12 | NULL | NULL | 54697 |
| weight_x59j84hsy4zf8zj1rta0f2c0a | tt2 | Toretto (Fast and Furious, Latin American Spanish) | 2022-02-13 14:38:55 | NULL | NULL | 53181 |
| weight_m7ns3pee2hze7r5hs3c1c5ew3 | tt2 | Fernanfloo. (Modelo más expresivo.) (Latin American Spanish.) | 2023-01-02 00:16:04 | NULL | NULL | 51191 |
| weight_7nkrya6jq2gdmhvzvhwe6565a | tt2 | Baldi (Baldi Basics Education And Learning) | 2022-10-07 13:37:12 | NULL | NULL | 49977 |
| weight_kfc9kqm18k4jc3q2j3acdzj1a | tt2 | Waldemaro Martienez (Locutor) | 2022-12-08 15:59:55 | NULL | NULL | 49856 |
| weight_828jq9waqx5g9dzp7gr6a2a1p | tt2 | Kanye West (V4) | 2022-10-09 00:18:56 | NULL | NULL | 48616 |
-- (WIP) Find top model weights by usage. This supports old-format TTS tokens.
SELECT
mw.token,
mw.weights_type,
mw.title,
mw.created_at,
mw.user_deleted_at,
mw.mod_deleted_at,
count(*) as use_count
FROM model_weights as mw
JOIN (
select
coalesce(w.token, w_migrated.token) as token
from media_files as f
left outer join model_weights as w
on f.maybe_origin_model_token = w.token
left outer join model_weights as w_migrated
on f.maybe_origin_model_token = w_migrated.maybe_migration_old_model_token
where f.created_at > NOW() - INTERVAL 3 DAY
) as x
on mw.token = x.token
group by
mw.token,
mw.weights_type,
mw.title,
mw.created_at,
mw.user_deleted_at,
mw.mod_deleted_at
order by use_count desc
limit 100;
mysql> select count(*) from tts_results;
+-----------+
| count(*) |
+-----------+
| 192830507 | -- 192,830,507
+-----------+
1 row in set (8 min 47.22 sec)
mysql> select count(*) from media_files;
+----------+
| count(*) |
+----------+
| 40057845 | -- 40,057,845 (sept 1st, 2024)
+----------+
1 row in set (36.59 sec)
File diff suppressed because it is too large Load Diff
@@ -13,3 +13,17 @@ and status NOT IN (
order by id desc
limit 5\G
-- List started jobs
select *
from generic_inference_jobs
where job_type = 'comfy_ui'
and status IN ('started')
order by id desc
limit 50\G
update generic_inference_jobs
set inference_category = 'convert_bvh_to_workflow'
where inference_category = 'deprecated_field'
limit 5;
[2024-07-16T22:53:07Z ERROR inference_job::job::job_loop::main_loop] Error querying jobs: error: ""
@@ -16,3 +16,57 @@ and m.is_intermediate_system_file = false
and m.media_class = 'video'
group by u.token
order by video_count desc;
-- Without internal users
select
u.username,
count(*) as video_count,
u.maybe_source,
u.created_at
from media_files as m
join users as u
on m.maybe_creator_user_token = u.token
where u.maybe_feature_flags LIKE '%studio%'
and m.created_at > (CURDATE() - INTERVAL 1 DAY)
and m.is_intermediate_system_file = false
and m.media_class = 'video'
and u.username NOT IN (
'bflat', 'candyfoxxx', 'crossproduct1', 'echelon',
'endtimes', 'heart_ribbon', 'kasisnu', 'mechacosm',
'moonchamp', 'olivicmic', 'printrman', 'vegito1089',
'wilwong', 'yae_ph'
)
group by u.token
order by created_at desc;
-- See videos generated
-- and m.is_intermediate_system_file IS TRUE
-- where u.maybe_feature_flags LIKE '%studio%'
select
u.username,
u.maybe_source,
m.token,
m.is_intermediate_system_file as sys_file,
m.created_at
from media_files as m
join users as u
on m.maybe_creator_user_token = u.token
WHERE m.created_at > (CURDATE() - INTERVAL 1 DAY)
and m.media_class = 'video'
and u.username NOT IN (
'bflat',
'candyfoxxx',
'crossproduct1',
'echelon',
'endtimes',
'heart_ribbon',
'kasisnu',
'mechacosm',
'moonchamp',
'olivicmic',
'printrman',
'vegito1089',
'wilwong',
'yae_ph'
)
order by m.created_at desc;
@@ -0,0 +1,12 @@
-- noinspection SqlDialectInspectionForFile
-- noinspection SqlNoDataSourceInspectionForFile
-- noinspection SqlResolveForFile
-- List GptSoVits model downloads for user (Vegito)
select *
from generic_inference_jobs
where maybe_creator_user_token = 'U:E00D2RD3ZNZ7P'
and job_type = 'gpt_sovits'
and maybe_download_url IS NOT NULL
order by id desc
limit 100\G
@@ -0,0 +1,33 @@
-- Select popular models without streamer usage distorting the totals
select
mw.token,
mw.title,
count(*) as use_count
from generic_inference_jobs as gij
left outer join model_weights as mw
on gij.maybe_model_token = mw.token
where gij.maybe_creator_user_token NOT IN (
-- This subquery returns streamers that generated over a certain threshold number of results
select
user_token
from (
select
u.token as user_token,
count(*) as generations
from generic_inference_jobs as gij
join users as u
on gij.maybe_creator_user_token = u.token
where gij.created_at >= (CURDATE() - INTERVAL 5 DAY)
and gij.maybe_creator_user_token is not null
group by user_token
order by generations desc
) as top_users
where top_users.generations > 1000
)
and gij.created_at >= (CURDATE() - INTERVAL 5 DAY)
group by mw.token, mw.title
order by use_count desc
limit 100;
@@ -0,0 +1,12 @@
select
u.username,
count(*) as generations
from generic_inference_jobs as gij
join users as u
on gij.maybe_creator_user_token = u.token
where gij.created_at >= (CURDATE() - INTERVAL 5 DAY)
and gij.maybe_creator_user_token is not null
group by u.username
order by generations desc
limit 10
@@ -0,0 +1,49 @@
-- Count the most-used tts models for a given user
-- This is a useful query to distinguish "AI Streamers" from API abusers
-- This query has old TTS model token support!
SELECT
mw.token,
mw.title,
count(*) as use_count
FROM model_weights as mw
JOIN (
select
coalesce(w.token, w_migrated.token) as token
from media_files as f
left outer join model_weights as w
on f.maybe_origin_model_token = w.token
left outer join model_weights as w_migrated
on f.maybe_origin_model_token = w_migrated.maybe_migration_old_model_token
join users as u
on f.maybe_creator_user_token = u.token
where u.username = lower('peepostream')
) as x
on mw.token = x.token
group by mw.token, mw.title
order by use_count desc
-- See a sample of tts results by user
-- This is a useful query to distinguish "AI Streamers" from API abusers
-- This includes old TTS model token support
select
f.token,
f.origin_product_category,
f.created_at,
w.token,
w.title,
w_migrated.token,
w_migrated.title,
SUBSTRING(TRIM(f.maybe_text_transcript), 1, 100) as transcript
from media_files as f
left outer join model_weights as w
on f.maybe_origin_model_token = w.token
left outer join model_weights as w_migrated
on f.maybe_origin_model_token = w_migrated.maybe_migration_old_model_token
join users as u
on f.maybe_creator_user_token = u.token
where u.username = lower('peepostream')
order by f.id desc
limit 100
@@ -0,0 +1,26 @@
-- Older user accounts that dropped off
select
username,
email_address
from
users
where token IN (
-- Users that used us long ago
select maybe_creator_user_token
from tts_results
where maybe_creator_user_token IS NOT NULL
and created_at < NOW() - INTERVAL 23 MONTH
and created_at > NOW() - INTERVAL 24 MONTH
group by maybe_creator_user_token
)
and token NOT IN (
-- Users that used us recently
select maybe_creator_user_token
from media_files
where maybe_creator_user_token IS NOT NULL
and created_at > NOW() - INTERVAL 3 MONTH
group by maybe_creator_user_token
)
and maybe_stripe_customer_id IS NULL
@@ -2,6 +2,23 @@
-- noinspection SqlNoDataSourceInspectionForFile
-- noinspection SqlResolveForFile
SELECT
m.maybe_creator_user_token as user_token,
u.username,
count(*) as usage_count,
u.created_at
FROM media_files as m
JOIN users as u
ON u.token = m.maybe_creator_user_token
WHERE m.maybe_creator_user_token IS NOT NULL
AND m.created_at > NOW() - INTERVAL 31 DAY
GROUP BY m.maybe_creator_user_token
ORDER BY usage_count DESC
LIMIT 50;
----- Older queries -----
SELECT
u.username as username,
j.token as token
@@ -11,18 +28,6 @@ ON u.token = j.maybe_creator_user_token
AND j.created_at > NOW() - INTERVAL 31 DAY
SELECT
t.maybe_creator_user_token as user_token,
u.username,
count(*) as usage_count,
u.created_at
FROM tts_results as t
JOIN users as u
ON u.token = t.maybe_creator_user_token
WHERE t.maybe_creator_user_token IS NOT NULL
GROUP BY t.maybe_creator_user_token
ORDER BY usage_count DESC
LIMIT 50000;
SELECT
@@ -0,0 +1,13 @@
-- Top w2l users
select
distinct maybe_creator_user_token,
count(*) as creations,
u.username,
u.email_address,
u.maybe_stripe_customer_id,
u.created_at
from w2l_inference_jobs w
left outer join users u
on u.token = w.maybe_creator_user_token
group by maybe_creator_user_token
order by creations desc
@@ -0,0 +1,6 @@
-- noinspection SqlDialectInspectionForFile
-- noinspection SqlNoDataSourceInspectionForFile
-- noinspection SqlResolveForFile
DROP INDEX `index_media_files_created_at`
ON `media_files`;
@@ -0,0 +1,7 @@
-- noinspection SqlDialectInspectionForFile
-- noinspection SqlNoDataSourceInspectionForFile
-- noinspection SqlResolveForFile
ALTER TABLE media_files
ADD INDEX index_media_files_created_at (created_at),
ALGORITHM=INPLACE, LOCK=NONE;
@@ -0,0 +1,6 @@
-- noinspection SqlDialectInspectionForFile
-- noinspection SqlNoDataSourceInspectionForFile
-- noinspection SqlResolveForFile
DROP INDEX `index_media_files_updated_at`
ON `media_files`;
@@ -0,0 +1,8 @@
-- noinspection SqlDialectInspectionForFile
-- noinspection SqlNoDataSourceInspectionForFile
-- noinspection SqlResolveForFile
ALTER TABLE media_files
ADD INDEX index_media_files_updated_at (updated_at),
ALGORITHM=INPLACE, LOCK=NONE;
@@ -0,0 +1,6 @@
-- noinspection SqlDialectInspectionForFile
-- noinspection SqlNoDataSourceInspectionForFile
-- noinspection SqlResolveForFile
DROP INDEX `index_generic_inference_jobs_created_at`
ON `generic_inference_jobs`;
@@ -0,0 +1,15 @@
-- noinspection SqlDialectInspectionForFile
-- noinspection SqlNoDataSourceInspectionForFile
-- noinspection SqlResolveForFile
ALTER TABLE generic_inference_jobs
ADD INDEX index_generic_inference_jobs_created_at (created_at),
ALGORITHM=INPLACE, LOCK=NONE;
-- Inserts into production database:
-- INSERT INTO __diesel_schema_migrations (version, run_on)
-- VALUES
-- ("20240822015101", "2024-08-22 23:20:31"),
-- ("20240822015117", "2024-08-22 23:20:32"),
-- ("20240822015156", "2024-08-22 23:20:32");
@@ -0,0 +1,5 @@
-- noinspection SqlDialectInspectionForFile
-- noinspection SqlNoDataSourceInspectionForFile
-- noinspection SqlResolveForFile
ALTER TABLE media_files DROP COLUMN is_user_upload;
@@ -0,0 +1,12 @@
-- noinspection SqlDialectInspectionForFile
-- noinspection SqlNoDataSourceInspectionForFile
-- noinspection SqlResolveForFile
ALTER TABLE media_files
ADD COLUMN is_user_upload BOOLEAN NOT NULL DEFAULT FALSE
AFTER maybe_batch_token;
ALTER TABLE media_files
ADD INDEX index_media_files_is_user_upload (is_user_upload),
ALGORITHM=INPLACE, LOCK=NONE;

Some files were not shown because too many files have changed in this diff Show More