The response has been limited to 50k tokens of the smallest files in the repo. You can remove this limitation by removing the max tokens filter.
├── .devcontainer
    ├── internal
    │   ├── devcontainer.json
    │   └── docker-compose.yml
    └── public
    │   ├── devcontainer.json
    │   └── docker-compose.yml
├── .dockerignore
├── .editorconfig
├── .env-example
├── .eslintignore
├── .eslintrc.js
├── .gitattributes
├── .github
    ├── ISSUE_TEMPLATE
    │   ├── bug_report.yml
    │   └── config.yml
    └── workflows
    │   ├── deploy-branch.yml
    │   ├── deploy-release.yml
    │   └── deploy-stage.yml
├── .gitignore
├── .husky
    ├── pre-commit
    └── pre-push
├── .nvmrc
├── .prettierrc
├── .vscode
    ├── keybindings.json
    ├── launch.json
    ├── mantine-migration.md
    ├── rules
    │   ├── global.md
    │   ├── mantine-migration.md
    │   ├── migrate-createStyles.md
    │   └── nextjs.md
    ├── settings.json
    └── snippets.code-snippets
├── Dockerfile
├── LICENSE
├── Makefile
├── README.md
├── containers
    ├── clickhouse
    │   ├── Dockerfile
    │   └── docker-init
    │   │   └── init.sh
    ├── db
    │   ├── Dockerfile
    │   └── docker-init
    │   │   ├── 00_init_db.sql
    │   │   ├── 01_pg_analyze.sql
    │   │   └── 02_all_dll.sql
    ├── image-stub
    │   ├── Dockerfile
    │   ├── images
    │   │   ├── 1.jpg
    │   │   └── 2.jpg
    │   ├── index.mjs
    │   ├── package-lock.json
    │   └── package.json
    ├── ngrok
    │   └── docker-init
    │   │   └── config.yaml
    └── notification-db
    │   ├── Dockerfile
    │   └── docker-init
    │       └── 01_all_ddl.sql
├── docker-compose.base.yml
├── docker-compose.yml
├── media
    └── logo.png
├── next-boost.js
├── next-env.d.ts
├── next-sitemap.config.js
├── next.config.mjs
├── package-lock.json
├── package.json
├── playwright.config.ts
├── postcss.config.js
├── prisma
    ├── migrations
    │   ├── 20221011220133_init
    │   │   └── migration.sql
    │   ├── 20221013171533_add_nsfw
    │   │   └── migration.sql
    │   ├── 20221013194408_int_keys
    │   │   └── migration.sql
    │   ├── 20221013203441_cascades
    │   │   └── migration.sql
    │   ├── 20221013221254_no_optional_user_id
    │   │   └── migration.sql
    │   ├── 20221013224243_numeric_image_dimensions
    │   │   └── migration.sql
    │   ├── 20221014182803_metrics_and_saves
    │   │   └── migration.sql
    │   ├── 20221014212220_add_image_index
    │   │   └── migration.sql
    │   ├── 20221018202627_add_kv_store
    │   │   └── migration.sql
    │   ├── 20221018213100_split_model_metrics
    │   │   └── migration.sql
    │   ├── 20221018215322_optional_model_desc
    │   │   └── migration.sql
    │   ├── 20221019000757_model_ranks
    │   │   └── migration.sql
    │   ├── 20221019192339_remove_images_from_model
    │   │   └── migration.sql
    │   ├── 20221020230242_rating_to_float
    │   │   └── migration.sql
    │   ├── 20221025225635_user_account_props
    │   │   └── migration.sql
    │   ├── 20221027230516_username_unique_case_insensitive
    │   │   └── migration.sql
    │   ├── 20221031222816_image_cascade_on_delete
    │   │   └── migration.sql
    │   ├── 20221101202142_anonymous_user_activities
    │   │   └── migration.sql
    │   ├── 20221101230538_add_training_data_download_tracking
    │   │   └── migration.sql
    │   ├── 20221103193819_add_tos_violation
    │   │   └── migration.sql
    │   ├── 20221103200953_model_review_reporting
    │   │   └── migration.sql
    │   ├── 20221103205440_add_moderator
    │   │   └── migration.sql
    │   ├── 20221103221020_user_tos
    │   │   └── migration.sql
    │   ├── 20221108145701_cascade_delete_version_metrics_reviews
    │   │   └── migration.sql
    │   ├── 20221108160217_update_sizekb_tyoe_int_to_float
    │   │   └── migration.sql
    │   ├── 20221108215007_rank_fix
    │   │   └── migration.sql
    │   ├── 20221109183328_rank_fix_2
    │   │   └── migration.sql
    │   ├── 20221109192749_rank_fix_3
    │   │   └── migration.sql
    │   ├── 20221110180604_trained_words_on_version
    │   │   └── migration.sql
    │   ├── 20221110222142_temp_verified_model
    │   │   └── migration.sql
    │   ├── 20221111185845_model_files
    │   │   └── migration.sql
    │   ├── 20221112015716_scan_request_time
    │   │   └── migration.sql
    │   ├── 20221112190714_handle_bad_uploads
    │   │   └── migration.sql
    │   ├── 20221114043025_add_importing
    │   │   └── migration.sql
    │   ├── 20221114213528_image_meta
    │   │   └── migration.sql
    │   ├── 20221115210524_add_uniqueness_to_reactions
    │   │   └── migration.sql
    │   ├── 20221116143356_import_children
    │   │   └── migration.sql
    │   ├── 20221118203334_add_apikey_table
    │   │   └── migration.sql
    │   ├── 20221128223635_add_favorite_model_table
    │   │   └── migration.sql
    │   ├── 20221129184259_favorite_model_metric
    │   │   └── migration.sql
    │   ├── 20221129201529_update_rank_for_favorites
    │   │   └── migration.sql
    │   ├── 20221202170057_model_file_format
    │   │   └── migration.sql
    │   ├── 20221202191101_model_version_index
    │   │   └── migration.sql
    │   ├── 20221202204857_add_comment_tables
    │   │   └── migration.sql
    │   ├── 20221202220635_user_link
    │   │   └── migration.sql
    │   ├── 20221202230223_user_link_index
    │   │   └── migration.sql
    │   ├── 20221202230448_user_rank
    │   │   └── migration.sql
    │   ├── 20221203005905_remove_user_link_index
    │   │   └── migration.sql
    │   ├── 20221205213338_comment_table_update
    │   │   └── migration.sql
    │   ├── 20221205232721_user_created_date
    │   │   └── migration.sql
    │   ├── 20221207040459_add_logging
    │   │   └── migration.sql
    │   ├── 20221207202442_support_inaccurate_report
    │   │   └── migration.sql
    │   ├── 20221207235134_add_notification_table
    │   │   └── migration.sql
    │   ├── 20221208022641_run_v1
    │   │   └── migration.sql
    │   ├── 20221208032821_comment_metrics
    │   │   └── migration.sql
    │   ├── 20221209162539_add_person_of_interest_toggle
    │   │   └── migration.sql
    │   ├── 20221209174938_add_unique_constraint_user_notifications
    │   │   └── migration.sql
    │   ├── 20221209190209_partner_tokens
    │   │   └── migration.sql
    │   ├── 20221209210146_update_model_file_type
    │   │   └── migration.sql
    │   ├── 20221212033336_add_model_hash
    │   │   └── migration.sql
    │   ├── 20221212045320_model_hash_report_support
    │   │   └── migration.sql
    │   ├── 20221213232706_add_lora
    │   │   └── migration.sql
    │   ├── 20221214181035_add_modelfile_id
    │   │   └── migration.sql
    │   ├── 20221214181207_add_model_file_unique
    │   │   └── migration.sql
    │   ├── 20221215050908_add_webhooks
    │   │   └── migration.sql
    │   ├── 20221215052358_published_at
    │   │   └── migration.sql
    │   ├── 20221216163900_last_version_at
    │   │   └── migration.sql
    │   ├── 20221216173428_report
    │   │   └── migration.sql
    │   ├── 20221216191451_additional_report_reasons
    │   │   └── migration.sql
    │   ├── 20221216195329_add_user_engagement
    │   │   └── migration.sql
    │   ├── 20221216211622_model_report_count
    │   │   └── migration.sql
    │   ├── 20221219234321_report_manys
    │   │   └── migration.sql
    │   ├── 20221220044202_add_trending
    │   │   └── migration.sql
    │   ├── 20221220204300_ranks_as_materialized_views
    │   │   └── migration.sql
    │   ├── 20221220211549_current_mviews
    │   │   └── migration.sql
    │   ├── 20221221002209_add_base_model
    │   │   └── migration.sql
    │   ├── 20221222223841_file_types_as_string
    │   │   └── migration.sql
    │   ├── 20221223175226_model_type_default
    │   │   └── migration.sql
    │   ├── 20221223180254_add_tag_target
    │   │   └── migration.sql
    │   ├── 20221223182642_tag_unique_with_target
    │   │   └── migration.sql
    │   ├── 20221226174634_question_answers
    │   │   └── migration.sql
    │   ├── 20221226195245_optional_answer_vote_vote
    │   │   └── migration.sql
    │   ├── 20221226201249_add_download_history
    │   │   └── migration.sql
    │   ├── 20221228193154_report_cascading
    │   │   └── migration.sql
    │   ├── 20221230223422_hash_on_files
    │   │   └── migration.sql
    │   ├── 20221230234742_review_exclusion
    │   │   └── migration.sql
    │   ├── 20221231002954_prep_on_demand_partners
    │   │   └── migration.sql
    │   ├── 20221231224306_break_out_user_rank
    │   │   └── migration.sql
    │   ├── 20230103185824_display_name
    │   │   └── migration.sql
    │   ├── 20230105043946_run_strategy_cascades
    │   │   └── migration.sql
    │   ├── 20230105174251_add_user_preferred_download
    │   │   └── migration.sql
    │   ├── 20230105180003_revise_rating_rank
    │   │   └── migration.sql
    │   ├── 20230105194139_remove_model_file_primary_field
    │   │   └── migration.sql
    │   ├── 20230106181738_defined_commercial_uses
    │   │   └── migration.sql
    │   ├── 20230106210644_mark_images_nsfw
    │   │   └── migration.sql
    │   ├── 20230106223259_leaderboard_rank
    │   │   └── migration.sql
    │   ├── 20230110213544_add_tag_engagment
    │   │   └── migration.sql
    │   ├── 20230110235012_image_analysis
    │   │   └── migration.sql
    │   ├── 20230111032437_model_licenses
    │   │   └── migration.sql
    │   ├── 20230111224629_cascade_model_hash
    │   │   └── migration.sql
    │   ├── 20230112001351_unique_image_constraint
    │   │   └── migration.sql
    │   ├── 20230112193222_tag_metrics
    │   │   └── migration.sql
    │   ├── 20230112234519_unlistable_tags
    │   │   └── migration.sql
    │   ├── 20230113232730_user_answer_stats
    │   │   └── migration.sql
    │   ├── 20230117162526_model_engagement
    │   │   └── migration.sql
    │   ├── 20230117190149_fix_user_cascades
    │   │   └── migration.sql
    │   ├── 20230118020152_remove_favorites
    │   │   └── migration.sql
    │   ├── 20230118154709_add_model_early_access_timeframe
    │   │   └── migration.sql
    │   ├── 20230118195800_add_model_version_early_access_timeframe
    │   │   └── migration.sql
    │   ├── 20230119185541_add_model_version_engagement
    │   │   └── migration.sql
    │   ├── 20230120050134_adjust_scanning_enums
    │   │   └── migration.sql
    │   ├── 20230124192503_soft_delete_model
    │   │   └── migration.sql
    │   ├── 20230124204854_add_deleted_model_status
    │   │   └── migration.sql
    │   ├── 20230125214723_model_checkpoint_type
    │   │   └── migration.sql
    │   ├── 20230125230024_session_invalidation
    │   │   └── migration.sql
    │   ├── 20230126222352_image_first_class
    │   │   └── migration.sql
    │   ├── 20230127004457_image_metrics
    │   │   └── migration.sql
    │   ├── 20230127171929_image_comment_metrics
    │   │   └── migration.sql
    │   ├── 20230127232300_metric_update_queue
    │   │   └── migration.sql
    │   ├── 20230130192853_on_demand_types
    │   │   └── migration.sql
    │   ├── 20230130211031_announcements
    │   │   └── migration.sql
    │   ├── 20230130224954_comment_lock
    │   │   └── migration.sql
    │   ├── 20230130231226_adjust_review_cascades
    │   │   └── migration.sql
    │   ├── 20230131150221_review_lock
    │   │   └── migration.sql
    │   ├── 20230201143158_mute_users
    │   │   └── migration.sql
    │   ├── 20230201205224_ban_user
    │   │   └── migration.sql
    │   ├── 20230202153952_user_cosmetics
    │   │   └── migration.sql
    │   ├── 20230203224140_stripe
    │   │   └── migration.sql
    │   ├── 20230207225516_cosmetic_delivery
    │   │   └── migration.sql
    │   ├── 20230207230114_cosmetic_default_id_fix
    │   │   └── migration.sql
    │   ├── 20230208211232_report_internal_message
    │   │   └── migration.sql
    │   ├── 20230209171946_add_model_locked
    │   │   └── migration.sql
    │   ├── 20230209203015_report_limiting
    │   │   └── migration.sql
    │   ├── 20230209225221_rename_inaction_unaction
    │   │   └── migration.sql
    │   ├── 20230210200501_add_iscategory_tag
    │   │   └── migration.sql
    │   ├── 20230210222835_model_hash_view
    │   │   └── migration.sql
    │   ├── 20230211012925_subscription_update_date
    │   │   └── migration.sql
    │   ├── 20230212204953_api_key_tweaks
    │   │   └── migration.sql
    │   ├── 20230213223732_update_model_new_rank
    │   │   └── migration.sql
    │   ├── 20230214004943_comment_threads
    │   │   └── migration.sql
    │   ├── 20230214144643_multiple_tag_target
    │   │   └── migration.sql
    │   ├── 20230216003413_image_gen_process
    │   │   └── migration.sql
    │   ├── 20230216033353_image_feature_at
    │   │   └── migration.sql
    │   ├── 20230217033101_unfeatured_categories
    │   │   └── migration.sql
    │   ├── 20230217213122_image_needs_review
    │   │   └── migration.sql
    │   ├── 20230217220241_tag_unique_name
    │   │   └── migration.sql
    │   ├── 20230220220914_user_activity_index
    │   │   └── migration.sql
    │   ├── 20230221151809_view_pef_tweaks
    │   │   └── migration.sql
    │   ├── 20230221230819_user_setting_autoplay_gifs
    │   │   └── migration.sql
    │   ├── 20230223225028_add_new_types
    │   │   └── migration.sql
    │   ├── 20230227220233_prep_for_mod_tags
    │   │   └── migration.sql
    │   ├── 20230303201656_leaderboard_exclude_deleted
    │   │   └── migration.sql
    │   ├── 20230305040226_account_metadata
    │   │   └── migration.sql
    │   ├── 20230306181918_model_delete_tracking
    │   │   └── migration.sql
    │   ├── 20230306211459_model_hash_file_type
    │   │   └── migration.sql
    │   ├── 20230308010444_posts
    │   │   └── migration.sql
    │   ├── 20230308161211_post_helper
    │   │   └── migration.sql
    │   ├── 20230309201953_enhanced_moderation
    │   │   └── migration.sql
    │   ├── 20230309235349_model_files_preferences
    │   │   └── migration.sql
    │   ├── 20230310005918_image_size
    │   │   └── migration.sql
    │   ├── 20230311174603_locon
    │   │   └── migration.sql
    │   ├── 20230312182841_wildcards
    │   │   └── migration.sql
    │   ├── 20230313221818_commentv2_reporting
    │   │   └── migration.sql
    │   ├── 20230315025401_other_type
    │   │   └── migration.sql
    │   ├── 20230315182114_posts_continued
    │   │   └── migration.sql
    │   ├── 20230316201031_resource_helpers
    │   │   └── migration.sql
    │   ├── 20230317181458_user_tagging
    │   │   └── migration.sql
    │   ├── 20230321212209_optimizations
    │   │   └── migration.sql
    │   ├── 20230321232309_post_tags
    │   │   └── migration.sql
    │   ├── 20230322230044_discussion_items
    │   │   └── migration.sql
    │   ├── 20230323084001_tags_on_tags
    │   │   └── migration.sql
    │   ├── 20230330165149_top_level_comment_thread
    │   │   └── migration.sql
    │   ├── 20230405222519_model_status_unpublished_violation
    │   │   └── migration.sql
    │   ├── 20230407001434_model_version_published_at
    │   │   └── migration.sql
    │   ├── 20230410221344_resource_review_reports
    │   │   └── migration.sql
    │   ├── 20230411234137_model_early_access_deadline
    │   │   └── migration.sql
    │   ├── 20230414200229_model_modifier
    │   │   └── migration.sql
    │   ├── 20230418020950_model_metrics_daily
    │   │   └── migration.sql
    │   ├── 20230425180849_nsfw_levels
    │   │   └── migration.sql
    │   ├── 20230425215834_tag_nsfw_level
    │   │   └── migration.sql
    │   ├── 20230428002410_mat_views_to_tables
    │   │   └── migration.sql
    │   ├── 20230511223534_articles
    │   │   └── migration.sql
    │   ├── 20230511230904_associated_resources
    │   │   └── migration.sql
    │   ├── 20230515231112_admin_tags
    │   │   └── migration.sql
    │   ├── 20230517192001_article_attachments
    │   │   └── migration.sql
    │   ├── 20230517201204_article_engagement
    │   │   └── migration.sql
    │   ├── 20230517204144_article_metrics
    │   │   └── migration.sql
    │   ├── 20230518224652_leaderboard_v2
    │   │   └── migration.sql
    │   ├── 20230522192516_model_type_vae_upscaler
    │   │   └── migration.sql
    │   ├── 20230522223742_mod_activity
    │   │   └── migration.sql
    │   ├── 20230605211505_post_report
    │   │   └── migration.sql
    │   ├── 20230607213943_model_version_exploration
    │   │   └── migration.sql
    │   ├── 20230608213212_report_user
    │   │   └── migration.sql
    │   ├── 20230609155557_user_leaderboard_showcase
    │   │   └── migration.sql
    │   ├── 20230613205927_model_article_association
    │   │   └── migration.sql
    │   ├── 20230616212538_model_association_nullable
    │   │   └── migration.sql
    │   ├── 20230619185959_cascade_delete_associations
    │   │   └── migration.sql
    │   ├── 20230619222230_scheduled_publish
    │   │   └── migration.sql
    │   ├── 20230620163537_hidden_comments
    │   │   └── migration.sql
    │   ├── 20230620203240_image_ingestion_status
    │   │   └── migration.sql
    │   ├── 20230622200840_image_moderation_level
    │   │   └── migration.sql
    │   ├── 20230622213253_image_engagement
    │   │   └── migration.sql
    │   ├── 20230623160539_generation_coverage_1
    │   │   └── migration.sql
    │   ├── 20230626231430_not_null_base_model
    │   │   └── migration.sql
    │   ├── 20230630171915_model_version_clip_skip
    │   │   └── migration.sql
    │   ├── 20230704185357_create_search_index_update_queue_table
    │   │   └── migration.sql
    │   ├── 20230706162241_add_search_index_update_queue_action
    │   │   └── migration.sql
    │   ├── 20230706163005_add_search_index_update_queue_action_enum
    │   │   └── migration.sql
    │   ├── 20230712182936_create_collection_related_models
    │   │   └── migration.sql
    │   ├── 20230712191329_fix_ids_on_collection_tables
    │   │   └── migration.sql
    │   ├── 20230712203205_add_home_block_type
    │   │   └── migration.sql
    │   ├── 20230712204937_unlisted_read_config
    │   │   └── migration.sql
    │   ├── 20230714202551_recommended_vae
    │   │   └── migration.sql
    │   ├── 20230717203328_add_metadata_to_announcements
    │   │   └── migration.sql
    │   ├── 20230718193348_add_collection_type
    │   │   └── migration.sql
    │   ├── 20230719152210_setup_for_collection_review_items
    │   │   └── migration.sql
    │   ├── 20230719182634_add_collection_write_configuration_review
    │   │   └── migration.sql
    │   ├── 20230721184738_post_collection_relation
    │   │   └── migration.sql
    │   ├── 20230726205546_drop_reviews
    │   │   └── migration.sql
    │   ├── 20230727150451_add_source_to_home_blocks
    │   │   └── migration.sql
    │   ├── 20230727165302_collection_image
    │   │   └── migration.sql
    │   ├── 20230728063536_collection_model_metrics
    │   │   └── migration.sql
    │   ├── 20230728170432_image_type
    │   │   └── migration.sql
    │   ├── 20230809032747_model_purpose
    │   │   └── migration.sql
    │   ├── 20230809234333_generation_coverage
    │   │   └── migration.sql
    │   ├── 20230811054020_nsfw_level_blocked
    │   │   └── migration.sql
    │   ├── 20230811173920_download_history
    │   │   └── migration.sql
    │   ├── 20230813154457_adding_training_data
    │   │   └── migration.sql
    │   ├── 20230818173920_add_workflows
    │   │   └── migration.sql
    │   ├── 20230824160203_collection_metrics
    │   │   └── migration.sql
    │   ├── 20230828183133_image_post_collected_count_metrics
    │   │   └── migration.sql
    │   ├── 20230829142201_add_model_version_monetization_table
    │   │   └── migration.sql
    │   ├── 20230901221543_rent_civit
    │   │   └── migration.sql
    │   ├── 20230902054355_paid_generation_option
    │   │   └── migration.sql
    │   ├── 20230904155529_add_bounty_schema
    │   │   └── migration.sql
    │   ├── 20230904212207_update_generation_coverage_view
    │   │   └── migration.sql
    │   ├── 20230904215223_generation_covergae_view_rentcivit
    │   │   └── migration.sql
    │   ├── 20230906215932_tag_source
    │   │   └── migration.sql
    │   ├── 20230908201330_computed_tag_source
    │   │   └── migration.sql
    │   ├── 20230912004157_motion_module
    │   │   └── migration.sql
    │   ├── 20230912153043_add_bounty_complete
    │   │   └── migration.sql
    │   ├── 20230912205241_add_bounty_metrics
    │   │   └── migration.sql
    │   ├── 20230912220022_add_bounty_rank_views
    │   │   └── migration.sql
    │   ├── 20230913054542_social_homeblock
    │   │   └── migration.sql
    │   ├── 20230913162225_add_bounty_metric_comment_count
    │   │   └── migration.sql
    │   ├── 20230914165121_bounty_report
    │   │   └── migration.sql
    │   ├── 20230914200233_bounty_poi
    │   │   └── migration.sql
    │   ├── 20230918202805_add_user_referrals
    │   │   └── migration.sql
    │   ├── 20230918222033_make_user_referral_code_unqye
    │   │   └── migration.sql
    │   ├── 20230920153125_crate_buzz_tip_table
    │   │   └── migration.sql
    │   ├── 20230920200843_update_bounty_indexes
    │   │   └── migration.sql
    │   ├── 20230920211650_add_deleted_at_user_referral_code
    │   │   └── migration.sql
    │   ├── 20230921142409_add_user_id_index_user_referrals
    │   │   └── migration.sql
    │   ├── 20230921160043_add_created_updated_at_buzz_tip
    │   │   └── migration.sql
    │   ├── 20230921161619_add_tipped_amount_on_articles
    │   │   └── migration.sql
    │   ├── 20230921204323_bounty_entry_description
    │   │   └── migration.sql
    │   ├── 20230925155218_add_buzz_tip_on_bounty_entry
    │   │   └── migration.sql
    │   ├── 20230927151024_collection_mode_support
    │   │   └── migration.sql
    │   ├── 20230928151649_collection_item_random_id
    │   │   └── migration.sql
    │   ├── 20230928163847_add_datapurged_to_modelfile
    │   │   └── migration.sql
    │   ├── 20230929145153_collection_item_collection_id_index
    │   │   └── migration.sql
    │   ├── 20231005123051_bounty_expires_at_starts_at_date_only
    │   │   └── migration.sql
    │   ├── 20231006205635_comment_v2_hidden
    │   │   └── migration.sql
    │   ├── 20231013203903_user_onboarding_step
    │   │   └── migration.sql
    │   ├── 20231019210147_model_version_monetization_buzz_currency
    │   │   └── migration.sql
    │   ├── 20231024143326_user_referral_code_crated_at
    │   │   └── migration.sql
    │   ├── 20231025204142_image_scan_job
    │   │   └── migration.sql
    │   ├── 20231026192053_add_user_profile_schema
    │   │   └── migration.sql
    │   ├── 20231027024129_require_auth_option
    │   │   └── migration.sql
    │   ├── 20231027035952_run_partner_base_model
    │   │   └── migration.sql
    │   ├── 20231027221218_image_view_count
    │   │   └── migration.sql
    │   ├── 20231031195932_update_user_profile_schema
    │   │   └── migration.sql
    │   ├── 20231103152012_recommended_resources
    │   │   └── migration.sql
    │   ├── 20231109061817_model_file_header_data
    │   │   └── migration.sql
    │   ├── 20231110192419_add_landing_page_to_user_referral
    │   │   └── migration.sql
    │   ├── 20231110203035_add_login_redirect_reason_to_user_referral
    │   │   └── migration.sql
    │   ├── 20231110210854_claimable_cosmetics
    │   │   └── migration.sql
    │   ├── 20231115072331_press_mention
    │   │   └── migration.sql
    │   ├── 20231118201935_collection_item_reviewed_by
    │   │   └── migration.sql
    │   ├── 20231121050854_holiday_cosmetics
    │   │   └── migration.sql
    │   ├── 20231122151806_add_club_related_tables
    │   │   └── migration.sql
    │   ├── 20231123201130_update_club_entity_table
    │   │   └── migration.sql
    │   ├── 20231127231440_remove_club_entity_improve_entity_access
    │   │   └── migration.sql
    │   ├── 20231128212202_add_club_post_cover_image
    │   │   └── migration.sql
    │   ├── 20231130141155_add_club_membershi_id
    │   │   └── migration.sql
    │   ├── 20231130143354_remove_buzz_account_id
    │   │   └── migration.sql
    │   ├── 20231201094437_event_homeblock_type
    │   │   └── migration.sql
    │   ├── 20231203043804_generation_metrics
    │   │   └── migration.sql
    │   ├── 20231207201510_add_club_post_thread
    │   │   └── migration.sql
    │   ├── 20231207204618_user_profile_picture
    │   │   └── migration.sql
    │   ├── 20231213152614_model_gallery_settings
    │   │   └── migration.sql
    │   ├── 20231213153118_add_club_admin_support
    │   │   └── migration.sql
    │   ├── 20231213153829_add_club_tier_member_limit
    │   │   └── migration.sql
    │   ├── 20231213182603_csam_report
    │   │   └── migration.sql
    │   ├── 20231218152300_add_unlisted_availability_to_post_entity_id_club_post
    │   │   └── migration.sql
    │   ├── 20231222015820_notification_split
    │   │   └── migration.sql
    │   ├── 20231222180336_optional_club_post_title_description
    │   │   └── migration.sql
    │   ├── 20231223004700_report_type_csam
    │   │   └── migration.sql
    │   ├── 20240102150617_add_club_post_reactions
    │   │   └── migration.sql
    │   ├── 20240102154255_add_club_post_metrics
    │   │   └── migration.sql
    │   ├── 20240102183528_add_club_metrics
    │   │   └── migration.sql
    │   ├── 20240102211435_add_club_ranks
    │   │   └── migration.sql
    │   ├── 20240105204334_add_one_time_fee_on_club_tier
    │   │   └── migration.sql
    │   ├── 20240110183909_add_dm_tables
    │   │   └── migration.sql
    │   ├── 20240110202344_dm_user_relationship
    │   │   └── migration.sql
    │   ├── 20240111143445_dm_chat_owner
    │   │   └── migration.sql
    │   ├── 20240111144730_dm_chat_edited_optional
    │   │   └── migration.sql
    │   ├── 20240112151626_user_settings
    │   │   └── migration.sql
    │   ├── 20240113023932_email_citext
    │   │   └── migration.sql
    │   ├── 20240114174922_add_parent_thread_id_root_thread_id_on_threads
    │   │   └── migration.sql
    │   ├── 20240117150305_add_ignored_to_chat_enum
    │   │   └── migration.sql
    │   ├── 20240118213143_tags_on_tags_type
    │   │   └── migration.sql
    │   ├── 20240118214315_muted_at
    │   │   └── migration.sql
    │   ├── 20240119175458_buzz_claim
    │   │   └── migration.sql
    │   ├── 20240119204734_muted_at_trigger
    │   │   └── migration.sql
    │   ├── 20240121232802_buzz_claim_details
    │   │   └── migration.sql
    │   ├── 20240123173456_article_cover_id
    │   │   └── migration.sql
    │   ├── 20240125153716_add_user_stripe_connect_status
    │   │   └── migration.sql
    │   ├── 20240125182002_add_unique_on_conected_account_id
    │   │   └── migration.sql
    │   ├── 20240126153602_add_chat_report
    │   │   └── migration.sql
    │   ├── 20240129152539_add_buzz_withdrawal_requeests_tables
    │   │   └── migration.sql
    │   ├── 20240129203835_add_model_availability
    │   │   └── migration.sql
    │   ├── 20240206222015_nsfw_level_2
    │   │   └── migration.sql
    │   ├── 20240207190207_notification_category
    │   │   └── migration.sql
    │   ├── 20240207200350_tags_on_image_vote_applied
    │   │   └── migration.sql
    │   ├── 20240208212306_user_updates
    │   │   └── migration.sql
    │   ├── 20240209213025_build_guide
    │   │   └── migration.sql
    │   ├── 20240212151513_add_buzz_withdrawal_status_externally_resolved
    │   │   └── migration.sql
    │   ├── 20240213195536_additional_notification_categories
    │   │   └── migration.sql
    │   ├── 20240213205914_nsfw_levels
    │   │   └── migration.sql
    │   ├── 20240217005100_partner_tier
    │   │   └── migration.sql
    │   ├── 20240219150315_collection_data_structure_improvements
    │   │   └── migration.sql
    │   ├── 20240220184546_partner_logo
    │   │   └── migration.sql
    │   ├── 20240220204643_resource_review_recommended_system
    │   │   └── migration.sql
    │   ├── 20240221203954_model_commercial_user_array
    │   │   └── migration.sql
    │   ├── 20240221204751_add_purchasable_rewards_schema
    │   │   └── migration.sql
    │   ├── 20240227203510_add_vault_schema
    │   │   └── migration.sql
    │   ├── 20240229155733_vault_item_update_field
    │   │   └── migration.sql
    │   ├── 20240305191909_vault_item_improvement_schema_changes
    │   │   └── migration.sql
    │   ├── 20240307231126_nsfw_level_update_queue
    │   │   └── migration.sql
    │   ├── 20240308194924_vault_item_meta_field
    │   │   └── migration.sql
    │   ├── 20240312143533_vault_item_files_as_json
    │   │   └── migration.sql
    │   ├── 20240312210710_vault_item_indexes
    │   │   └── migration.sql
    │   ├── 20240313071941_metric_updated_at
    │   │   └── migration.sql
    │   ├── 20240321152907_image_resource_strength
    │   │   └── migration.sql
    │   ├── 20240325234311_image_rating_request
    │   │   └── migration.sql
    │   ├── 20240326201017_cosmetic_shop_tables
    │   │   └── migration.sql
    │   ├── 20240327194537_redeemable_code
    │   │   └── migration.sql
    │   ├── 20240329072855_add_dora
    │   │   └── migration.sql
    │   ├── 20240403142806_add_cosmetic_type_profile_decoration
    │   │   └── migration.sql
    │   ├── 20240405133543_dms_add_more_content_type
    │   │   └── migration.sql
    │   ├── 20240409152606_add_cosmetic_reference_to_item
    │   │   └── migration.sql
    │   ├── 20240409202625_add_shop_item_unit_amount
    │   │   └── migration.sql
    │   ├── 20240411155123_make_image_optional
    │   │   └── migration.sql
    │   ├── 20240411185822_add_cosmetic_type_profile_background
    │   │   └── migration.sql
    │   ├── 20240418202619_add_for_id_user_cosmetic
    │   │   └── migration.sql
    │   ├── 20240419174913_image_tools
    │   │   └── migration.sql
    │   ├── 20240423150723_add_user_public_settings
    │   │   └── migration.sql
    │   ├── 20240430033247_user_metric_reactions
    │   │   └── migration.sql
    │   ├── 20240504220623_file_override_name
    │   │   └── migration.sql
    │   ├── 20240508215105_image_techniques
    │   │   └── migration.sql
    │   ├── 20240509145855_add_domain_to_tool
    │   │   └── migration.sql
    │   ├── 20240516171837_add_editor_to_tooltype
    │   │   └── migration.sql
    │   ├── 20240520214941_early_access_v2
    │   │   └── migration.sql
    │   ├── 20240524211244_add_training_statuses
    │   │   └── migration.sql
    │   ├── 20240528185514_early_access_v2_nits
    │   │   └── migration.sql
    │   ├── 20240528212836_muted_confirmed
    │   │   └── migration.sql
    │   ├── 20240528220022_exclude_from_leaderboards
    │   │   └── migration.sql
    │   ├── 20240603200922_tool_priority
    │   │   └── migration.sql
    │   ├── 20240604172025_api_key_type
    │   │   └── migration.sql
    │   ├── 20240606185927_tool_description
    │   │   └── migration.sql
    │   ├── 20240610185726_add_minor_field
    │   │   └── migration.sql
    │   ├── 20240613183520_csam_report_type
    │   │   └── migration.sql
    │   ├── 20240613215736_collection_item_tag_id
    │   │   └── migration.sql
    │   ├── 20240617215459_entity_collaborator
    │   │   └── migration.sql
    │   ├── 20240619092115_reward_eligibility
    │   │   └── migration.sql
    │   ├── 20240619152041_entity_collaborator_last_message_sent_at
    │   │   └── migration.sql
    │   ├── 20240619181506_add_video_url
    │   │   └── migration.sql
    │   ├── 20240619185235_add_video_url_to_cosmetic_shop_item
    │   │   └── migration.sql
    │   ├── 20240620155119_user_engagement_type_block
    │   │   └── migration.sql
    │   ├── 20240620165739_rollback_add_video_url_cosmetic_shop_item
    │   │   └── migration.sql
    │   ├── 20240624134110_tool_metadata
    │   │   └── migration.sql
    │   ├── 20240719172747_add_published_to_image_and_trigger
    │   │   └── migration.sql
    │   ├── 20240724182718_add_entity_metrics
    │   │   └── migration.sql
    │   ├── 20240725040405_simplify_run_strat
    │   │   └── migration.sql
    │   ├── 20240729233040_image_block
    │   │   └── migration.sql
    │   ├── 20240808220734_ad_token_table
    │   │   └── migration.sql
    │   ├── 20240809155038_add_paddle_customer_id
    │   │   └── migration.sql
    │   ├── 20240809230424_tag_source_image_hash
    │   │   └── migration.sql
    │   ├── 20240812183927_hamming_distance_function
    │   │   └── migration.sql
    │   ├── 20240815210353_add_payment_providers
    │   │   └── migration.sql
    │   ├── 20240830173458_add_upload_type_to_mv
    │   │   └── migration.sql
    │   ├── 20240911095200_query_improvements
    │   │   └── migration.sql
    │   ├── 20240915215614_image_flag
    │   │   └── migration.sql
    │   ├── 20240926213438_model_scanned_at_column
    │   │   └── migration.sql
    │   ├── 20240930191432_add_cosmetic_shop_home_block_type
    │   │   └── migration.sql
    │   ├── 20240930192521_model_flag_details_column
    │   │   └── migration.sql
    │   ├── 20241002204701_add_user_payment_configuration
    │   │   └── migration.sql
    │   ├── 20241002210652_update_buzz_withdrawal_request
    │   │   └── migration.sql
    │   ├── 20241002212355_resupport_stripe_connect_on_payment_configuration
    │   │   └── migration.sql
    │   ├── 20241003192438_model_flag_poi_name_column
    │   │   └── migration.sql
    │   ├── 20241012021355_add_buzz_claim_account_type
    │   │   └── migration.sql
    │   ├── 20241012023023_add_buzz_use_multiplier
    │   │   └── migration.sql
    │   ├── 20241014234054_image_rating_request_cascade_on_delete
    │   │   └── migration.sql
    │   ├── 20241015005553_image_rating_request_weight
    │   │   └── migration.sql
    │   ├── 20241016175736_announncement_enabled
    │   │   └── migration.sql
    │   ├── 20241016185054_announcement_disabled
    │   │   └── migration.sql
    │   ├── 20241018200359_blocklist
    │   │   └── migration.sql
    │   ├── 20241024204631_article_status_column
    │   │   └── migration.sql
    │   ├── 20241106162157_tool_supported_column
    │   │   └── migration.sql
    │   ├── 20241115184321_collection_item_score
    │   │   └── migration.sql
    │   ├── 20241119204932_add_pending_manual_ingestion_enum_value
    │   │   └── migration.sql
    │   ├── 20241119210536_tool_company_column
    │   │   └── migration.sql
    │   ├── 20241126224738_add_filterable_only_to_collection_tags
    │   │   └── migration.sql
    │   ├── 20241204163054_appeal_model
    │   │   └── migration.sql
    │   ├── 20241204170604_disable_partners
    │   │   └── migration.sql
    │   ├── 20241206101500_update_image_resource_helper
    │   │   └── migration.sql
    │   ├── 20241206194713_tool_unlisted_column
    │   │   └── migration.sql
    │   ├── 20241210165550_add_tag_source
    │   │   └── migration.sql
    │   ├── 20241211191542_image_minor_field
    │   │   └── migration.sql
    │   ├── 20241220035102_buzz_claim_limit
    │   │   └── migration.sql
    │   ├── 20241220050455_minor_detection_tag_source
    │   │   └── migration.sql
    │   ├── 20250114185408_add_tool_type_llm
    │   │   └── migration.sql
    │   ├── 20250120222939_model_type_detection
    │   │   └── migration.sql
    │   ├── 20250122210402_model_usage_control
    │   │   └── migration.sql
    │   ├── 20250123000929_hive_demographics
    │   │   └── migration.sql
    │   ├── 20250124000257_tool_alias
    │   │   └── migration.sql
    │   ├── 20250131152943_many_to_many_table_relation
    │   │   └── migration.sql
    │   ├── 20250131232938_comment_v2_pinned_at
    │   │   └── migration.sql
    │   ├── 20250219162201_add_auction_tables
    │   │   └── migration.sql
    │   ├── 20250219183115_user_index_deleted_at
    │   │   └── migration.sql
    │   ├── 20250219193308_add_auction_tables_extra
    │   │   └── migration.sql
    │   ├── 20250219221820_add_auction_slug_active
    │   │   └── migration.sql
    │   ├── 20250219230130_post_metric_age_group
    │   │   └── migration.sql
    │   ├── 20250219230130_post_metric_index_age_group
    │   │   └── migration.sql
    │   ├── 20250221023627_creators_program_v2
    │   │   └── migration.sql
    │   ├── 20250221044718_add_tipalti_withdrawal_method
    │   │   └── migration.sql
    │   ├── 20250225151414_add_transaction_to_bid
    │   │   └── migration.sql
    │   ├── 20250227184003_add_featured_mv
    │   │   └── migration.sql
    │   ├── 20250227204740_make_created_at_updated_at_nullable
    │   │   └── migration.sql
    │   ├── 20250228013729_normalize
    │   │   └── migration.sql
    │   ├── 20250228191502_generation_coverage_all
    │   │   └── migration.sql
    │   ├── 20250301002731_remove_image_metric_indexes
    │   │   └── migration.sql
    │   ├── 20250303170613_tags_on_image_new
    │   │   └── migration.sql
    │   ├── 20250310194038_moderation_rules
    │   │   └── migration.sql
    │   ├── 20250313162509_drop_log
    │   │   └── migration.sql
    │   ├── 20250314203912_drop_tags_on_image
    │   │   └── migration.sql
    │   ├── 20250318165942_moderation_rules_created_by
    │   │   └── migration.sql
    │   ├── 20250319124141_add_dates_to_auction_base
    │   │   └── migration.sql
    │   ├── 20250319210024_image_resource_new
    │   │   └── migration.sql
    │   ├── 20250320124141_remove_checkpoint_details
    │   │   └── migration.sql
    │   ├── 20250324192007_add_image_poi
    │   │   └── migration.sql
    │   ├── 20250326094141_covered_checkpoint
    │   │   └── migration.sql
    │   ├── 20250401212050_knights_new_order_tables
    │   │   └── migration.sql
    │   ├── 20250407094141_model_metrics_earned_amount
    │   │   └── migration.sql
    │   ├── 20250414192734_tag_type
    │   │   └── migration.sql
    │   ├── 20250415094141_add_misc_auction
    │   │   └── migration.sql
    │   ├── 20250416221729_shadow_tags_on_image
    │   │   └── migration.sql
    │   ├── 20250417190811_add_image_acceptable_minor
    │   │   └── migration.sql
    │   ├── 20250424220929_generation_base_model
    │   │   └── migration.sql
    │   ├── 20250425193919_add_model_sfw_only
    │   │   └── migration.sql
    │   ├── 20250425195241_image_needs_review_index
    │   │   └── migration.sql
    │   ├── 20250425225502_add_model_flag_sfw_only
    │   │   └── migration.sql
    │   ├── 20250508113400_add_changelog
    │   │   └── migration.sql
    │   ├── 20250508191050_new_order_rank_icon_column
    │   │   └── migration.sql
    │   ├── 20250513094141_add_sticky_to_changelog
    │   │   └── migration.sql
    │   ├── 20250513144141_add_incident_type
    │   │   └── migration.sql
    │   ├── 20250521094141_add_clavata_moderation
    │   │   └── migration.sql
    │   ├── 20250606180813_image_review
    │   │   └── migration.sql
    │   ├── 20250606212859_add_crypto_tables
    │   │   └── migration.sql
    │   ├── 20250614053144_remove_article_cover_id_fkey
    │   │   └── migration.sql
    │   ├── 20250702102300_basemodeltype_default
    │   │   └── migration.sql
    │   └── migration_lock.toml
    ├── programmability
    │   ├── IIF.sql
    │   ├── blocked_model_hashes_matview.sql
    │   ├── early_access_trigger.sql
    │   ├── get_image_resources.sql
    │   ├── image_delete_triggers.sql
    │   ├── image_post_triggers.sql
    │   ├── insert_image_resource.sql
    │   ├── is_new_user.sql
    │   ├── metrics_trigger.sql
    │   ├── model_availability_trigger.sql
    │   ├── model_triggers.sql
    │   ├── months_between.sql
    │   ├── muted_at_trigger.sql
    │   ├── nsfw_level_update_triggers.sql
    │   ├── publish_post_metrics_trigger.sql
    │   ├── update_image_poi_trigger.sql
    │   ├── update_model_rank.sql
    │   ├── update_nsfw_level.sql
    │   └── update_post_nsfw_level.sql
    ├── schema.prisma
    └── seed.ts
├── public
    ├── favicon-blue.ico
    ├── favicon-green.ico
    ├── favicon.ico
    ├── fonts
    │   ├── Montserrat-Bold.ttf
    │   └── Montserrat-Regular.ttf
    ├── images
    │   ├── android-chrome-192x192.png
    │   ├── android-chrome-512x512.png
    │   ├── apple-touch-icon.png
    │   ├── base-badge.png
    │   ├── become-a-member
    │   │   ├── 120x600.jpg
    │   │   ├── 300x100.jpg
    │   │   ├── 300x250.jpg
    │   │   ├── 300x600.jpg
    │   │   ├── 728x90.jpg
    │   │   ├── 970x250.jpg
    │   │   └── 970x90.jpg
    │   ├── civ-c.png
    │   ├── civbot-judge.png
    │   ├── civitai-default-account-bg.png
    │   ├── civitai_chopped_dark.png
    │   ├── daily-challenge-hero.png
    │   ├── event
    │   │   └── holiday2024
    │   │   │   └── ahh_logo.png
    │   ├── favicon-16x16.png
    │   ├── favicon-32x32.png
    │   ├── favicon-green.png
    │   ├── games
    │   │   ├── new-order-animated-bg.webp
    │   │   └── new-order-title.png
    │   ├── holiday
    │   │   ├── deer-glow.png
    │   │   ├── deer-nose.png
    │   │   ├── deer.png
    │   │   ├── ghost.png
    │   │   ├── happy-holidays-robot.png
    │   │   ├── partners
    │   │   │   └── rundiffusion.png
    │   │   ├── santa-hat.png
    │   │   └── wreath.png
    │   ├── imrs.webp
    │   ├── link
    │   │   ├── activity.png
    │   │   ├── download.png
    │   │   ├── glance.png
    │   │   └── pair.png
    │   ├── logo_dark_mode.png
    │   ├── logo_light_mode.png
    │   ├── media
    │   │   ├── cover.png
    │   │   └── whoops.jpg
    │   ├── newsletter-banner.png
    │   ├── product
    │   │   └── vault
    │   │   │   └── lp-main.png
    │   ├── shop
    │   │   ├── civitai-air
    │   │   │   ├── anne-horel-banner.png
    │   │   │   ├── anne-horel-mobile.png
    │   │   │   ├── digital-feline-i-alt.png
    │   │   │   ├── digital-feline-i.png
    │   │   │   ├── digital-feline-ii-alt.png
    │   │   │   ├── digital-feline-ii.png
    │   │   │   ├── digital-feline-iii-alt.png
    │   │   │   ├── digital-feline-iii.png
    │   │   │   ├── digital-feline-iv-alt.png
    │   │   │   └── digital-feline-iv.png
    │   │   ├── civitai-merch
    │   │   │   ├── 1girl-bubble-free-stickers.webp
    │   │   │   ├── 1girl-clear-case-for-iphone.webp
    │   │   │   ├── 1girl-clear-case-for-samsung.webp
    │   │   │   ├── 1girl-holographic-stickers.webp
    │   │   │   ├── 1girl-sans-civitai-bubble-free-stickers.webp
    │   │   │   ├── 1girl-sans-civitai-holographic-stickers.webp
    │   │   │   ├── 1girl-unisex-hoodie.webp
    │   │   │   ├── all-the-stickers-sticker-sheet.webp
    │   │   │   ├── bubble-free-stickers-3.webp
    │   │   │   ├── catz-bubble-free-stickers.webp
    │   │   │   ├── catz-holographic-stickers.webp
    │   │   │   ├── civitai-merch-banner.png
    │   │   │   ├── clear-case-for-samsung.webp
    │   │   │   ├── disco-elips-ium-bubble-free-stickers.webp
    │   │   │   ├── disco-elips-ium-holographic-stickers.webp
    │   │   │   ├── edgy-civitai-bubble-free-stickers.webp
    │   │   │   ├── edgy-civitai-holographic-stickers.webp
    │   │   │   ├── edgy-white-glossy-mug.webp
    │   │   │   ├── mouse-pad.webp
    │   │   │   ├── robo-skull-holographic-stickers.webp
    │   │   │   ├── short-sleeve-unisex-t-shirt.webp
    │   │   │   ├── space-bunny-badge-bubble-free-stickers.webp
    │   │   │   └── space-bunny-badge-holographic-stickers.webp
    │   │   └── project-odyssey
    │   │   │   ├── adidas-fleece-hoodie-black-front.webp
    │   │   │   ├── adidas-fleece-hoodie-black-left.webp
    │   │   │   ├── all-over-print-tote-bag-black.jpg
    │   │   │   ├── classic-dad-hat-black-front.webp
    │   │   │   ├── classic-dad-hat-black-left-side.webp
    │   │   │   ├── kiss-cut-holographic-stickers.webp
    │   │   │   ├── project-odyssey-banner.png
    │   │   │   ├── tie-dye-hat-cotton-candy-front.webp
    │   │   │   └── tie-dye-hat-sky-left-front.webp
    │   ├── splash
    │   │   ├── apple-splash-1125-2436.jpg
    │   │   ├── apple-splash-1136-640.jpg
    │   │   ├── apple-splash-1170-2532.jpg
    │   │   ├── apple-splash-1179-2556.jpg
    │   │   ├── apple-splash-1242-2208.jpg
    │   │   ├── apple-splash-1242-2688.jpg
    │   │   ├── apple-splash-1284-2778.jpg
    │   │   ├── apple-splash-1290-2796.jpg
    │   │   ├── apple-splash-1334-750.jpg
    │   │   ├── apple-splash-1536-2048.jpg
    │   │   ├── apple-splash-1620-2160.jpg
    │   │   ├── apple-splash-1668-2224.jpg
    │   │   ├── apple-splash-1668-2388.jpg
    │   │   ├── apple-splash-1792-828.jpg
    │   │   ├── apple-splash-2048-1536.jpg
    │   │   ├── apple-splash-2048-2732.jpg
    │   │   ├── apple-splash-2160-1620.jpg
    │   │   ├── apple-splash-2208-1242.jpg
    │   │   ├── apple-splash-2224-1668.jpg
    │   │   ├── apple-splash-2388-1668.jpg
    │   │   ├── apple-splash-2436-1125.jpg
    │   │   ├── apple-splash-2532-1170.jpg
    │   │   ├── apple-splash-2556-1179.jpg
    │   │   ├── apple-splash-2688-1242.jpg
    │   │   ├── apple-splash-2732-2048.jpg
    │   │   ├── apple-splash-2778-1284.jpg
    │   │   ├── apple-splash-2796-1290.jpg
    │   │   ├── apple-splash-640-1136.jpg
    │   │   ├── apple-splash-750-1334.jpg
    │   │   ├── apple-splash-828-1792.jpg
    │   │   ├── apple-splash-dark-1125-2436.jpg
    │   │   ├── apple-splash-dark-1136-640.jpg
    │   │   ├── apple-splash-dark-1170-2532.jpg
    │   │   ├── apple-splash-dark-1179-2556.jpg
    │   │   ├── apple-splash-dark-1242-2208.jpg
    │   │   ├── apple-splash-dark-1242-2688.jpg
    │   │   ├── apple-splash-dark-1284-2778.jpg
    │   │   ├── apple-splash-dark-1290-2796.jpg
    │   │   ├── apple-splash-dark-1334-750.jpg
    │   │   ├── apple-splash-dark-1536-2048.jpg
    │   │   ├── apple-splash-dark-1620-2160.jpg
    │   │   ├── apple-splash-dark-1668-2224.jpg
    │   │   ├── apple-splash-dark-1668-2388.jpg
    │   │   ├── apple-splash-dark-1792-828.jpg
    │   │   ├── apple-splash-dark-2048-1536.jpg
    │   │   ├── apple-splash-dark-2048-2732.jpg
    │   │   ├── apple-splash-dark-2160-1620.jpg
    │   │   ├── apple-splash-dark-2208-1242.jpg
    │   │   ├── apple-splash-dark-2224-1668.jpg
    │   │   ├── apple-splash-dark-2388-1668.jpg
    │   │   ├── apple-splash-dark-2436-1125.jpg
    │   │   ├── apple-splash-dark-2532-1170.jpg
    │   │   ├── apple-splash-dark-2556-1179.jpg
    │   │   ├── apple-splash-dark-2688-1242.jpg
    │   │   ├── apple-splash-dark-2732-2048.jpg
    │   │   ├── apple-splash-dark-2778-1284.jpg
    │   │   ├── apple-splash-dark-2796-1290.jpg
    │   │   ├── apple-splash-dark-640-1136.jpg
    │   │   ├── apple-splash-dark-750-1334.jpg
    │   │   └── apple-splash-dark-828-1792.jpg
    │   └── support-us
    │   │   ├── 120x600.jpg
    │   │   ├── 300x100.jpg
    │   │   ├── 300x250.jpg
    │   │   ├── 300x600.jpg
    │   │   ├── 320x100.jpg
    │   │   ├── 320x50.jpg
    │   │   ├── 728x90.jpg
    │   │   ├── 970x250.jpg
    │   │   └── 970x90.jpg
    ├── reset.html
    ├── site.webmanifest
    └── sounds
    │   ├── game.mp3
    │   ├── message.mp3
    │   ├── message2.mp3
    │   ├── messageu.mp3
    │   └── point.mp3
├── scripts
    ├── local-dev
    │   ├── bootstrap-metrics-search.ts
    │   ├── gen_seed.ts
    │   ├── run_migrations.ts
    │   └── utils.ts
    ├── oneoffs
    │   ├── meilisearch-migration.ts
    │   └── parse_header.ts
    ├── prisma-enum-generator.mjs
    ├── prisma-mark-migration-applied.mjs
    ├── prisma-migrate-with-views-workaround.mjs
    └── prisma-prepare-programmability.mjs
├── src
    ├── app
    │   └── layout.tsx
    ├── client-utils
    │   ├── cf-images-utils.ts
    │   └── file-hashing.ts
    ├── components
    │   ├── Access
    │   │   └── ResourceAccessWrap.tsx
    │   ├── Account
    │   │   ├── AccountsCard.tsx
    │   │   ├── AdContent.tsx
    │   │   ├── ApiKeyModal.tsx
    │   │   ├── ApiKeysCard.tsx
    │   │   ├── ContentControls.tsx
    │   │   ├── ContentControlsCard.tsx
    │   │   ├── CryptoTransactions.tsx
    │   │   ├── DeleteCard.tsx
    │   │   ├── GenerationSettingsCard.tsx
    │   │   ├── HiddenTagsSection.tsx
    │   │   ├── HiddenUsersSection.tsx
    │   │   ├── MatureContentSettings.tsx
    │   │   ├── ModerationCard.tsx
    │   │   ├── NewsletterToggle.tsx
    │   │   ├── NotificationsCard.tsx
    │   │   ├── PaymentMethodsCard.tsx
    │   │   ├── ProfileCard.tsx
    │   │   ├── RefreshSessionCard.tsx
    │   │   ├── RemoveAccountCard.tsx
    │   │   ├── SettingsCard.tsx
    │   │   ├── SocialLink.tsx
    │   │   ├── SocialLinkModal.tsx
    │   │   ├── SocialProfileCard.tsx
    │   │   ├── SubscriptionCard.tsx
    │   │   ├── UserPaymentConfigurationCard.tsx
    │   │   └── UserReferralCodesCard.tsx
    │   ├── ActionIconInput.tsx
    │   │   └── ActionIconInput.tsx
    │   ├── ActionIconSelect
    │   │   └── ActionIconSelect.tsx
    │   ├── Ads
    │   │   ├── AdUnit.tsx
    │   │   ├── AdUnitFactory.tsx
    │   │   ├── AdUnitOutstream.tsx
    │   │   ├── AdUnitRenderable.tsx
    │   │   ├── AdhesiveAd.tsx
    │   │   ├── AdsProvider.tsx
    │   │   ├── Kontext
    │   │   │   ├── KontextAd.tsx
    │   │   │   ├── KontextProvider.tsx
    │   │   │   ├── kontext-ads.d.ts
    │   │   │   └── kontext-ads.types.ts
    │   │   ├── Old
    │   │   │   ├── AdUnit.tsx
    │   │   │   ├── AdsProvider.tsx
    │   │   │   ├── ads.utils.ts
    │   │   │   └── types.ts
    │   │   ├── adUnit.store.ts
    │   │   ├── ads.module.scss
    │   │   ├── ads.module.scss.d.ts
    │   │   ├── ads.utils.ts
    │   │   └── useAdUnitImpressionTracked.ts
    │   ├── AlertWithIcon
    │   │   └── AlertWithIcon.tsx
    │   ├── AnchorNoTravel
    │   │   └── AnchorNoTravel.tsx
    │   ├── Animations
    │   │   ├── LevelAnimation.tsx
    │   │   ├── LinkAnimation.tsx
    │   │   └── SuccessAnimation.tsx
    │   ├── Announcements
    │   │   ├── Announcement.tsx
    │   │   ├── AnnouncementEditModal.tsx
    │   │   ├── Announcements.tsx
    │   │   ├── AnnouncementsList.tsx
    │   │   └── announcements.utils.ts
    │   ├── AppLayout
    │   │   ├── AppFooter.tsx
    │   │   ├── AppHeader
    │   │   │   ├── AppHeader.tsx
    │   │   │   ├── CreateMenu.tsx
    │   │   │   ├── UserMenu.tsx
    │   │   │   └── hooks.tsx
    │   │   ├── AppLayout.tsx
    │   │   ├── BaseLayout.tsx
    │   │   ├── FeatureLayout.tsx
    │   │   ├── FeedLayout.tsx
    │   │   ├── NotFound.module.scss
    │   │   ├── NotFound.module.scss.d.ts
    │   │   ├── NotFound.tsx
    │   │   ├── Page.tsx
    │   │   └── SubNav.tsx
    │   ├── Article
    │   │   ├── ArticleContextMenu.tsx
    │   │   ├── ArticleUpsertForm.tsx
    │   │   ├── Detail
    │   │   │   ├── ArticleDetailComments.tsx
    │   │   │   ├── AttachmentCard.tsx
    │   │   │   ├── Sidebar.tsx
    │   │   │   └── TableOfContent.tsx
    │   │   ├── Infinite
    │   │   │   ├── ArticleAltCard.module.scss
    │   │   │   ├── ArticleAltCard.module.scss.d.ts
    │   │   │   ├── ArticleAltCard.tsx
    │   │   │   ├── ArticleCategories.tsx
    │   │   │   ├── ArticleFiltersDropdown.tsx
    │   │   │   └── ArticlesInfinite.tsx
    │   │   ├── ToggleArticleEngagement.tsx
    │   │   ├── UserDraftArticles.module.scss
    │   │   ├── UserDraftArticles.module.scss.d.ts
    │   │   ├── UserDraftArticles.tsx
    │   │   └── article.utils.ts
    │   ├── Assistant
    │   │   ├── AssistantButton.tsx
    │   │   └── AssistantChat.tsx
    │   ├── AssociatedModels
    │   │   ├── AssociateModels.tsx
    │   │   ├── AssociatedModels.tsx
    │   │   └── recommender.utils.ts
    │   ├── Auction
    │   │   ├── AuctionFiltersDropdown.module.scss
    │   │   ├── AuctionFiltersDropdown.module.scss.d.ts
    │   │   ├── AuctionFiltersDropdown.tsx
    │   │   ├── AuctionInfo.tsx
    │   │   ├── AuctionMyBids.tsx
    │   │   ├── AuctionPlacementCard.tsx
    │   │   ├── AuctionProvider.tsx
    │   │   ├── AuctionUtils.tsx
    │   │   └── auction.utils.ts
    │   ├── AutocompleteSearch
    │   │   ├── AutocompleteSearch.module.scss
    │   │   ├── AutocompleteSearch.module.scss.d.ts
    │   │   ├── AutocompleteSearch.tsx
    │   │   └── renderItems
    │   │   │   ├── articles.tsx
    │   │   │   ├── bounties.tsx
    │   │   │   ├── collections.tsx
    │   │   │   ├── common.module.scss
    │   │   │   ├── common.module.scss.d.ts
    │   │   │   ├── common.tsx
    │   │   │   ├── images.tsx
    │   │   │   ├── models.tsx
    │   │   │   ├── tools.tsx
    │   │   │   └── users.tsx
    │   ├── BackButton
    │   │   └── BackButton.tsx
    │   ├── Bounty
    │   │   ├── AwardBountyAction.tsx
    │   │   ├── BountyContextMenu.tsx
    │   │   ├── BountyCreateForm.module.scss
    │   │   ├── BountyCreateForm.module.scss.d.ts
    │   │   ├── BountyCreateForm.tsx
    │   │   ├── BountyDiscussion.tsx
    │   │   ├── BountyEditForm.module.scss
    │   │   ├── BountyEditForm.module.scss.d.ts
    │   │   ├── BountyEditForm.tsx
    │   │   ├── BountyEntryDiscussion.tsx
    │   │   ├── BountyEntryFilesModal.tsx
    │   │   ├── BountyEntryUpsertForm.tsx
    │   │   ├── BountyUpsertForm.module.scss
    │   │   ├── BountyUpsertForm.module.scss.d.ts
    │   │   ├── BountyUpsertForm.tsx
    │   │   ├── ImageCarousel.tsx
    │   │   ├── Infinite
    │   │   │   ├── BountiesInfinite.tsx
    │   │   │   └── BountyFiltersDropdown.tsx
    │   │   └── bounty.utils.ts
    │   ├── BrowserRouter
    │   │   └── BrowserRouterProvider.tsx
    │   ├── BrowsingLevel
    │   │   ├── BrowsingLevelGuide.tsx
    │   │   ├── BrowsingLevelInput.module.scss
    │   │   ├── BrowsingLevelInput.module.scss.d.ts
    │   │   ├── BrowsingLevelInput.tsx
    │   │   ├── BrowsingLevelProvider.tsx
    │   │   ├── BrowsingLevelsGrouped.module.scss
    │   │   ├── BrowsingLevelsGrouped.module.scss.d.ts
    │   │   ├── BrowsingLevelsGrouped.tsx
    │   │   ├── BrowsingLevelsStacked.tsx
    │   │   ├── SetBrowsingLevelModal.module.scss
    │   │   ├── SetBrowsingLevelModal.module.scss.d.ts
    │   │   └── SetBrowsingLevelModal.tsx
    │   ├── BrowsingMode
    │   │   ├── BrowsingCategories.tsx
    │   │   └── BrowsingMode.tsx
    │   ├── Burger
    │   │   ├── Burger.module.scss
    │   │   ├── Burger.module.scss.d.ts
    │   │   └── Burger.tsx
    │   ├── Buttons
    │   │   └── FilterButton.tsx
    │   ├── Buzz
    │   │   ├── AvailableBuzzBadge.tsx
    │   │   ├── BuzzCoinbaseButton.tsx
    │   │   ├── BuzzCoinbaseOnrampButton.tsx
    │   │   ├── BuzzNowPaymentsButton.tsx
    │   │   ├── BuzzPaypalButton.tsx
    │   │   ├── BuzzPurchase.tsx
    │   │   ├── BuzzTransactionButton.tsx
    │   │   ├── CreatorProgramV2
    │   │   │   ├── CreatorProgram.util.ts
    │   │   │   ├── CreatorProgramV2.modals.tsx
    │   │   │   └── CreatorProgramV2.tsx
    │   │   ├── Dashboard
    │   │   │   └── BuzzDashboardOverview.tsx
    │   │   ├── FeatureCards
    │   │   │   ├── FeatureCards.module.scss
    │   │   │   ├── FeatureCards.module.scss.d.ts
    │   │   │   └── FeatureCards.tsx
    │   │   ├── InteractiveTipBuzzButton.module.scss
    │   │   ├── InteractiveTipBuzzButton.module.scss.d.ts
    │   │   ├── InteractiveTipBuzzButton.tsx
    │   │   ├── Rewards
    │   │   │   ├── DailyBoostRewardClaim.tsx
    │   │   │   ├── DailyCreatorCompReward.tsx
    │   │   │   ├── EarlyAccessRewards.tsx
    │   │   │   └── GeneratedImagesRewards.tsx
    │   │   ├── TipBuzzButton.tsx
    │   │   ├── WithdrawalRequest
    │   │   │   ├── BuzzWithdrawalRequestFiltersDropdown.module.scss
    │   │   │   ├── BuzzWithdrawalRequestFiltersDropdown.module.scss.d.ts
    │   │   │   ├── BuzzWithdrawalRequestFiltersDropdown.tsx
    │   │   │   ├── BuzzWithdrawalRequestHistory.tsx
    │   │   │   ├── CreateWithdrawalRequest.tsx
    │   │   │   ├── OwnedBuzzWithdrawalRequestsPaged.tsx
    │   │   │   └── buzzWithdrawalRequest.util.ts
    │   │   ├── buzz.module.scss
    │   │   ├── buzz.module.scss.d.ts
    │   │   ├── buzz.styles.tsx
    │   │   ├── buzz.utils.ts
    │   │   ├── useBuzz.ts
    │   │   ├── useStripePaymentMethodSetup.ts
    │   │   └── useStripeTransaction.ts
    │   ├── CardTemplates
    │   │   ├── AspectRatioImageCard.module.scss
    │   │   ├── AspectRatioImageCard.module.scss.d.ts
    │   │   ├── AspectRatioImageCard.tsx
    │   │   └── CosmeticCard.tsx
    │   ├── Cards
    │   │   ├── ArticleCard.tsx
    │   │   ├── BountyCard.tsx
    │   │   ├── BountyEntryCard.module.scss
    │   │   ├── BountyEntryCard.module.scss.d.ts
    │   │   ├── BountyEntryCard.tsx
    │   │   ├── Cards.module.css
    │   │   ├── CollectionCard.tsx
    │   │   ├── FeedCard.tsx
    │   │   ├── GenericImageCard.tsx
    │   │   ├── ImageCard.tsx
    │   │   ├── ModelCard.tsx
    │   │   ├── ModelCardContext.tsx
    │   │   ├── ModelCardContextMenu.tsx
    │   │   ├── PostCard.tsx
    │   │   ├── ToolCard.tsx
    │   │   └── components
    │   │   │   ├── ActionIconDotsVertical.tsx
    │   │   │   ├── CosmeticLights.module.scss
    │   │   │   ├── CosmeticLights.module.scss.d.ts
    │   │   │   ├── CosmeticLights.tsx
    │   │   │   ├── HoverActionButton.module.scss
    │   │   │   ├── HoverActionButton.module.scss.d.ts
    │   │   │   ├── HoverActionButton.tsx
    │   │   │   └── RemixButton.tsx
    │   ├── Carousel
    │   │   └── CarouselIndicators.tsx
    │   ├── CategoryTags
    │   │   └── CategoryTags.tsx
    │   ├── ChadGPT
    │   │   └── ChadGPT.tsx
    │   ├── Challenges
    │   │   ├── ChallengeHero.tsx
    │   │   ├── ChallengeIndicator.tsx
    │   │   ├── ChallengeInvitation.tsx
    │   │   └── challenge.utils.ts
    │   ├── Changelog
    │   │   ├── ChangelogFiltersDropdown.tsx
    │   │   └── Changelogs.tsx
    │   ├── Chat
    │   │   ├── ChatActions.tsx
    │   │   ├── ChatButton.tsx
    │   │   ├── ChatList.module.css
    │   │   ├── ChatList.tsx
    │   │   ├── ChatProvider.tsx
    │   │   ├── ChatShareModal.tsx
    │   │   ├── ChatSignals.ts
    │   │   ├── ChatUserButton.tsx
    │   │   ├── ChatWindow.tsx
    │   │   ├── ExistingChat.module.scss
    │   │   ├── ExistingChat.module.scss.d.ts
    │   │   ├── ExistingChat.tsx
    │   │   ├── NewChat.tsx
    │   │   └── util.tsx
    │   ├── Chopped
    │   │   ├── chopped.components.tsx
    │   │   ├── chopped.connection.ts
    │   │   ├── chopped.shared-types.ts
    │   │   ├── chopped.utils.ts
    │   │   └── states
    │   │   │   ├── complete.tsx
    │   │   │   ├── joining.tsx
    │   │   │   ├── landing.tsx
    │   │   │   ├── playing.tsx
    │   │   │   └── setup.tsx
    │   ├── CivitaiLink
    │   │   ├── CivitaiLinkDownloadButton.tsx
    │   │   ├── CivitaiLinkManageButton.tsx
    │   │   ├── CivitaiLinkPopover.module.scss
    │   │   ├── CivitaiLinkPopover.module.scss.d.ts
    │   │   ├── CivitaiLinkPopover.tsx
    │   │   ├── CivitaiLinkProvider.tsx
    │   │   ├── CivitaiLinkResourceManager.tsx
    │   │   ├── CivitaiLinkSuccessModal.tsx
    │   │   ├── CivitaiLinkSvg.tsx
    │   │   ├── CivitaiLinkWizard.tsx
    │   │   ├── civitai-link-api.ts
    │   │   └── shared-types.ts
    │   ├── CivitaiWrapped
    │   │   ├── AccountProvider.tsx
    │   │   ├── ButtonTooltip.tsx
    │   │   ├── CivitaiSessionProvider.tsx
    │   │   ├── CivitaiTabs.tsx
    │   │   └── CivitaiTooltip.tsx
    │   ├── ClearableAutoComplete
    │   │   └── ClearableAutoComplete.tsx
    │   ├── ClearableAutoCompleteV2
    │   │   └── ClearableAutoCompleteV2.tsx
    │   ├── ClearableTextInput
    │   │   └── ClearableTextInput.tsx
    │   ├── Club
    │   │   ├── AddResourceToClubModal.tsx
    │   │   ├── AddToClubMenuItem.tsx
    │   │   ├── ClubAddContent.tsx
    │   │   ├── ClubAdminInviteUpsertForm.tsx
    │   │   ├── ClubAdminUpsertForm.tsx
    │   │   ├── ClubCard.tsx
    │   │   ├── ClubDepositFunds.tsx
    │   │   ├── ClubFeedNavigation.tsx
    │   │   ├── ClubManagementNavigation.tsx
    │   │   ├── ClubMemberships
    │   │   │   └── ManageClubMembershipModal.tsx
    │   │   ├── ClubPost
    │   │   │   ├── ClubFeed.module.scss
    │   │   │   ├── ClubFeed.module.scss.d.ts
    │   │   │   ├── ClubFeed.tsx
    │   │   │   ├── ClubPostDiscussion.tsx
    │   │   │   └── ClubPostUpsertForm.tsx
    │   │   ├── ClubPostFromResourceMenuItem.tsx
    │   │   ├── ClubRequirementNotice.tsx
    │   │   ├── ClubResourceManagementInput.tsx
    │   │   ├── ClubResourcePagedUpdateForm.tsx
    │   │   ├── ClubTierItem.tsx
    │   │   ├── ClubTierManageItem.tsx
    │   │   ├── ClubTierUpsertForm.tsx
    │   │   ├── ClubUpsertForm.tsx
    │   │   ├── ClubWithdrawFunds.tsx
    │   │   ├── Infinite
    │   │   │   ├── ClubAdminInvitesPaged.tsx
    │   │   │   ├── ClubAdminsPaged.tsx
    │   │   │   ├── ClubResourcesPaged.tsx
    │   │   │   ├── ClubsInfinite.tsx
    │   │   │   └── ClubsMembershipInfinite.tsx
    │   │   └── club.utils.ts
    │   ├── Coinbase
    │   │   └── util.ts
    │   ├── Collection
    │   │   └── Collection.tsx
    │   ├── CollectionSelectModal
    │   │   └── CollectionSelectModal.tsx
    │   ├── Collections
    │   │   ├── AddToCollectionModal.module.scss
    │   │   ├── AddToCollectionModal.module.scss.d.ts
    │   │   ├── AddToCollectionModal.tsx
    │   │   ├── AddUserContentModal.tsx
    │   │   ├── Collection.module.scss
    │   │   ├── Collection.tsx
    │   │   ├── CollectionEditModal.tsx
    │   │   ├── CollectionsLanding.tsx
    │   │   ├── CollectionsLayout.module.scss
    │   │   ├── CollectionsLayout.module.scss.d.ts
    │   │   ├── CollectionsLayout.tsx
    │   │   ├── Infinite
    │   │   │   └── CollectionsInfinite.tsx
    │   │   ├── MyCollections.tsx
    │   │   ├── collection.utils.ts
    │   │   └── components
    │   │   │   ├── CollectionCategorySelect.tsx
    │   │   │   ├── CollectionContextMenu.tsx
    │   │   │   ├── CollectionFollow.tsx
    │   │   │   ├── CollectionUploadSettingsWrapper.tsx
    │   │   │   └── ContestCollections
    │   │   │       ├── CollectionItemNSFWLevelSelector.tsx
    │   │   │       └── ContestCollectionItemScorer.tsx
    │   ├── ColorSchemeToggle
    │   │   └── ColorSchemeToggle.tsx
    │   ├── Combobox
    │   │   ├── AlwaysOpenComboBox.tsx
    │   │   ├── AlwaysOpenCombobox.module.scss
    │   │   └── combobox.types.ts
    │   ├── ComingSoon
    │   │   └── ComingSoon.tsx
    │   ├── CommentSection
    │   │   ├── CommentSection.module.css
    │   │   ├── CommentSection.tsx
    │   │   └── CommentSectionItem.tsx
    │   ├── CommentsV2
    │   │   ├── Comment
    │   │   │   ├── Comment.module.css
    │   │   │   ├── Comment.tsx
    │   │   │   ├── CommentBadge.tsx
    │   │   │   ├── CommentForm.module.scss
    │   │   │   ├── CommentForm.module.scss.d.ts
    │   │   │   ├── CommentForm.tsx
    │   │   │   ├── CommentProvider.tsx
    │   │   │   ├── CommentReactions.tsx
    │   │   │   ├── CreateComment.tsx
    │   │   │   └── DeleteComment.tsx
    │   │   ├── CommentsProvider.tsx
    │   │   ├── HiddenCommentsModal.tsx
    │   │   ├── ReturnToRootThread.tsx
    │   │   ├── ToggleLockComments.tsx
    │   │   └── commentv2.utils.ts
    │   ├── ConfirmButton
    │   │   └── ConfirmButton.tsx
    │   ├── ContainerGrid
    │   │   ├── ContainerCol.module.scss
    │   │   ├── ContainerCol.module.scss.d.ts
    │   │   ├── ContainerCol.styles.ts
    │   │   ├── ContainerCol.tsx
    │   │   ├── ContainerGrid.context.ts
    │   │   ├── ContainerGrid.module.scss
    │   │   ├── ContainerGrid.module.scss.d.ts
    │   │   ├── ContainerGrid.styles.ts
    │   │   └── ContainerGrid.tsx
    │   ├── ContainerProvider
    │   │   ├── ContainerProvider.tsx
    │   │   ├── useContainerLargerThan.ts
    │   │   ├── useContainerQuery.ts
    │   │   └── useContainerSmallerThan.ts
    │   ├── ContentClamp
    │   │   └── ContentClamp.tsx
    │   ├── ContentPolicyLink
    │   │   └── ContentPolicyLink.tsx
    │   ├── CopyButton
    │   │   └── CopyButton.tsx
    │   ├── CosmeticShop
    │   │   ├── CosmeticShopItemPreviewModal.tsx
    │   │   ├── CosmeticShopItemUpsertForm.tsx
    │   │   ├── CosmeticShopSectionUpsertForm.tsx
    │   │   ├── CosmeticsFiltersDropdown.module.scss
    │   │   ├── CosmeticsFiltersDropdown.module.scss.d.ts
    │   │   ├── CosmeticsFiltersDropdown.tsx
    │   │   ├── SectionItemsInput.tsx
    │   │   ├── ShopFiltersDropdown.module.scss
    │   │   ├── ShopFiltersDropdown.module.scss.d.ts
    │   │   ├── ShopFiltersDropdown.tsx
    │   │   └── cosmetic-shop.util.ts
    │   ├── Cosmetics
    │   │   ├── CosmeticsFiltersDropdown.module.scss
    │   │   ├── CosmeticsFiltersDropdown.module.scss.d.ts
    │   │   ├── CosmeticsFiltersDropdown.tsx
    │   │   └── cosmetics.util.ts
    │   ├── Countdown
    │   │   └── Countdown.tsx
    │   ├── CreatorCard
    │   │   ├── CreatorCard.module.css
    │   │   └── CreatorCard.tsx
    │   ├── Csam
    │   │   ├── CsamDetailsForm.tsx
    │   │   ├── CsamImageSelection.tsx
    │   │   ├── CsamProvider.tsx
    │   │   └── useCsamImageSelect.store.ts
    │   ├── Currency
    │   │   ├── CurrencyBadge.module.scss
    │   │   ├── CurrencyBadge.module.scss.d.ts
    │   │   ├── CurrencyBadge.tsx
    │   │   └── CurrencyIcon.tsx
    │   ├── Dates
    │   │   └── DaysFromNow.tsx
    │   ├── Decorations
    │   │   ├── AddArtFrameMenuItem.tsx
    │   │   ├── HolidayFrame.module.scss
    │   │   ├── HolidayFrame.module.scss.d.ts
    │   │   ├── HolidayFrame.tsx
    │   │   └── Lightbulb.tsx
    │   ├── DescriptionTable
    │   │   └── DescriptionTable.tsx
    │   ├── Dialog
    │   │   ├── Common
    │   │   │   ├── AlertDialog.tsx
    │   │   │   ├── AppealDialog.tsx
    │   │   │   └── ConfirmDialog.tsx
    │   │   ├── DialogProvider.tsx
    │   │   ├── RoutedDialogProvider.tsx
    │   │   ├── Templates
    │   │   │   └── PageModal.tsx
    │   │   ├── dialog-registry.ts
    │   │   ├── dialog-registry2.ts
    │   │   ├── dialogStore.ts
    │   │   └── routed-dialog-registry.ts
    │   ├── DismissibleAlert
    │   │   └── DismissibleAlert.tsx
    │   ├── DomainIcon
    │   │   └── DomainIcon.tsx
    │   ├── DonationGoal
    │   │   └── donation-goal.util.ts
    │   ├── Downloads
    │   │   └── DownloadList.tsx
    │   ├── DurationBadge
    │   │   └── DurationBadge.tsx
    │   ├── EdgeMedia
    │   │   ├── EdgeImage.module.scss
    │   │   ├── EdgeImage.module.scss.d.ts
    │   │   ├── EdgeImage.tsx
    │   │   ├── EdgeMedia.module.scss
    │   │   ├── EdgeMedia.module.scss.d.ts
    │   │   ├── EdgeMedia.tsx
    │   │   ├── EdgeMedia.util.ts
    │   │   ├── EdgeMedia2.tsx
    │   │   ├── EdgeVideo.module.scss
    │   │   ├── EdgeVideo.module.scss.d.ts
    │   │   ├── EdgeVideo.tsx
    │   │   ├── EdgeVideoBase.tsx
    │   │   └── EdgeVideoWithControls.tsx
    │   ├── EmailLogin
    │   │   └── EmailLogin.tsx
    │   ├── EmblaCarousel
    │   │   ├── EmblaCarousel.tsx
    │   │   └── EmblaCarouselProvider.tsx
    │   ├── EndOfFeed
    │   │   └── EndOfFeed.tsx
    │   ├── EntityCollaborator
    │   │   ├── EntityCollaboratorList.tsx
    │   │   └── entityCollaborator.util.ts
    │   ├── ErrorBoundary
    │   │   ├── ContentErrorBoundary.tsx
    │   │   ├── ErrorBoundary.tsx
    │   │   └── UserErrorBoundary.tsx
    │   ├── EventButton
    │   │   ├── EventButton.module.scss
    │   │   ├── EventButton.module.scss.d.ts
    │   │   └── EventButton.tsx
    │   ├── Events
    │   │   ├── EventContributors.tsx
    │   │   ├── EventRewards.tsx
    │   │   ├── SectionCard.tsx
    │   │   ├── WelcomeCard.tsx
    │   │   └── events.utils.ts
    │   ├── FeatureIntroduction
    │   │   └── FeatureIntroduction.tsx
    │   ├── Featurebase
    │   │   └── FeaturebaseWidget.tsx
    │   ├── Feed
    │   │   └── FeedWrapper.tsx
    │   ├── FeedContentToggle
    │   │   ├── FeedContentToggle.module.scss
    │   │   ├── FeedContentToggle.module.scss.d.ts
    │   │   └── FeedContentToggle.tsx
    │   ├── FileInfo
    │   │   └── FileInfo.tsx
    │   ├── FileInputUpload
    │   │   ├── FileInputUpload.module.scss
    │   │   ├── FileInputUpload.module.scss.d.ts
    │   │   └── FileInputUpload.tsx
    │   ├── FileUpload
    │   │   └── FileUploadProvider.tsx
    │   ├── Filters
    │   │   ├── AdaptiveFiltersDropdown.module.scss
    │   │   ├── AdaptiveFiltersDropdown.module.scss.d.ts
    │   │   ├── AdaptiveFiltersDropdown.tsx
    │   │   ├── FeedFilters
    │   │   │   ├── ArticleFeedFilters.tsx
    │   │   │   ├── BountyFeedFilters.tsx
    │   │   │   ├── FeedFilters.module.scss
    │   │   │   ├── FeedFilters.module.scss.d.ts
    │   │   │   ├── ImageFeedFilters.tsx
    │   │   │   ├── ModelFeedFilters.tsx
    │   │   │   ├── PostFeedFilters.tsx
    │   │   │   ├── ToolFeedFilters.tsx
    │   │   │   ├── ToolImageFeedFilters.tsx
    │   │   │   └── VideoFeedFilters.tsx
    │   │   ├── FilterChip.module.scss
    │   │   ├── FilterChip.module.scss.d.ts
    │   │   ├── FilterChip.tsx
    │   │   ├── FiltersDropdown.tsx
    │   │   ├── FiltersDropdown2.tsx
    │   │   ├── FollowedFilter.tsx
    │   │   ├── PeriodFilter.tsx
    │   │   ├── PeriodModeToggle.tsx
    │   │   ├── SortFilter.tsx
    │   │   └── index.ts
    │   ├── FollowUserButton
    │   │   └── FollowUserButton.tsx
    │   ├── Freeze
    │   │   └── Freeze.tsx
    │   ├── Gallery
    │   │   └── ReportImageButton.tsx
    │   ├── Games
    │   │   ├── GameErrorBoundary.tsx
    │   │   ├── KnightsNewOrder.utils.ts
    │   │   ├── LevelProgress
    │   │   │   ├── LevelProgress.module.scss
    │   │   │   ├── LevelProgress.module.scss.d.ts
    │   │   │   ├── LevelProgress.tsx
    │   │   │   ├── LevelUp.tsx
    │   │   │   └── RankUp.tsx
    │   │   ├── NewOrder
    │   │   │   ├── JudgmentHistory.tsx
    │   │   │   ├── NewOrderBetaBanner.tsx
    │   │   │   ├── NewOrderImageRater.tsx
    │   │   │   ├── NewOrderImageRatings.tsx
    │   │   │   ├── NewOrderJoin.tsx
    │   │   │   ├── NewOrderRatingGuideModal.tsx
    │   │   │   ├── NewOrderRulesModal.tsx
    │   │   │   ├── NewOrderSidebar.tsx
    │   │   │   └── PlayersDirectoryModal.tsx
    │   │   └── PlayerCard.tsx
    │   ├── Generate
    │   │   ├── GenerationForm.tsx
    │   │   └── Input
    │   │   │   ├── InputAspectRatioColonDelimited.tsx
    │   │   │   └── InputPrompt.tsx
    │   ├── Generation
    │   │   ├── Alerts
    │   │   │   └── WhatIfAlert.tsx
    │   │   ├── Error
    │   │   │   └── ErrorBoundary.tsx
    │   │   ├── Form
    │   │   │   └── GenForm.tsx
    │   │   ├── GenerationSettings.tsx
    │   │   ├── Input
    │   │   │   ├── AspectRatioInput.tsx
    │   │   │   ├── ImageCropModal.tsx
    │   │   │   ├── RequestPriority.tsx
    │   │   │   ├── SourceImageUpload.tsx
    │   │   │   ├── SourceImageUpscale.tsx
    │   │   │   └── VideoProcess.tsx
    │   │   ├── Video
    │   │   │   ├── HaiperFormInput.tsx
    │   │   │   ├── HunyuanFormInput.tsx
    │   │   │   ├── KlingFormInput.tsx
    │   │   │   ├── LightricksFormInput.tsx
    │   │   │   ├── MinimaxFormInput.tsx
    │   │   │   ├── MochiFormInput.tsx
    │   │   │   ├── Veo3FormInput.tsx
    │   │   │   ├── VideoGenerationForm.tsx
    │   │   │   ├── VideoGenerationFormWrapper.tsx
    │   │   │   ├── VideoGenerationProvider.tsx
    │   │   │   ├── ViduFormInput.tsx
    │   │   │   └── WanFormInput.tsx
    │   │   └── stores
    │   │   │   └── generated-item.store.ts
    │   ├── HelpButton
    │   │   └── HelpButton.tsx
    │   ├── HeroCard
    │   │   ├── HeroCard.module.scss
    │   │   ├── HeroCard.module.scss.d.ts
    │   │   └── HeroCard.tsx
    │   ├── HiddenPreferences
    │   │   ├── HiddenPreferencesProvider.tsx
    │   │   └── useApplyHiddenPreferences.ts
    │   ├── HideImageButton
    │   │   └── HideImageButton.tsx
    │   ├── HideModelButton
    │   │   └── HideModelButton.tsx
    │   ├── HideUserButton
    │   │   ├── BlockUserButton.tsx
    │   │   └── HideUserButton.tsx
    │   ├── HomeBlocks
    │   │   ├── CollectionHomeBlock.tsx
    │   │   ├── CosmeticShopSectionHomeBlock.tsx
    │   │   ├── EventHomeBlock.tsx
    │   │   ├── FeaturedModelVersionHomeBlock.tsx
    │   │   ├── HomeBlock.Styles.ts
    │   │   ├── HomeBlock.module.scss
    │   │   ├── HomeBlock.module.scss.d.ts
    │   │   ├── HomeBlockWrapper.tsx
    │   │   ├── LeaderboardsHomeBlock.module.css
    │   │   ├── LeaderboardsHomeBlock.tsx
    │   │   ├── ManageHomeBlocksModal.module.scss
    │   │   ├── ManageHomeBlocksModal.module.scss.d.ts
    │   │   ├── ManageHomeBlocksModal.tsx
    │   │   ├── ManageHomepageButton.tsx
    │   │   ├── SocialHomeBlock.module.css
    │   │   ├── SocialHomeBlock.tsx
    │   │   └── components
    │   │   │   ├── AnnouncementHomeBlockAnnouncementItem.module.scss
    │   │   │   ├── AnnouncementHomeBlockAnnouncementItem.module.scss.d.ts
    │   │   │   ├── AnnouncementHomeBlockAnnouncementItem.tsx
    │   │   │   ├── HomeBlockHeaderMeta.tsx
    │   │   │   ├── LeaderboardHomeBlockCreatorItem.tsx
    │   │   │   ├── SocialBlock.module.scss
    │   │   │   ├── SocialBlock.module.scss.d.ts
    │   │   │   └── SocialBlock.tsx
    │   ├── HomeContentToggle
    │   │   ├── HomeContentToggle.module.css
    │   │   ├── HomeContentToggle.tsx
    │   │   ├── HomeStyleSegmentedControl.module.css
    │   │   └── HomeStyleSegmentedControl.tsx
    │   ├── IconBadge
    │   │   └── IconBadge.tsx
    │   ├── Image
    │   │   ├── AsPosts
    │   │   │   ├── GalleryModerationModal.module.scss
    │   │   │   ├── GalleryModerationModal.module.scss.d.ts
    │   │   │   ├── GalleryModerationModal.tsx
    │   │   │   ├── ImagesAsPostsCard.module.css
    │   │   │   ├── ImagesAsPostsCard.tsx
    │   │   │   ├── ImagesAsPostsCardContextMenu.tsx
    │   │   │   ├── ImagesAsPostsInfinite.tsx
    │   │   │   ├── ImagesAsPostsInfiniteProvider.tsx
    │   │   │   └── gallery.utils.ts
    │   │   ├── ById
    │   │   │   └── ImageById.tsx
    │   │   ├── ContextMenu
    │   │   │   └── ImageContextMenu.tsx
    │   │   ├── DeleteImage
    │   │   │   └── DeleteImage.tsx
    │   │   ├── Detail
    │   │   │   ├── ImageDetailByProps.module.scss
    │   │   │   ├── ImageDetailByProps.module.scss.d.ts
    │   │   │   ├── ImageDetailByProps.tsx
    │   │   │   ├── ImageDetailComments.tsx
    │   │   │   ├── ImageDetailModal.tsx
    │   │   │   ├── ImageDetailProvider.tsx
    │   │   │   ├── ImageResources.module.scss
    │   │   │   ├── ImageResources.module.scss.d.ts
    │   │   │   └── ImageResources.tsx
    │   │   ├── DetailV2
    │   │   │   ├── ImageContestCollectionDetails.tsx
    │   │   │   ├── ImageDetail2.tsx
    │   │   │   ├── ImageDetailCarousel.tsx
    │   │   │   ├── ImageExternalMeta.tsx
    │   │   │   ├── ImageGenerationData.tsx
    │   │   │   ├── ImageMeta.tsx
    │   │   │   ├── ImageProcess.tsx
    │   │   │   ├── ImageRemixOfDetails.tsx
    │   │   │   ├── ImageRemixesDetails.tsx
    │   │   │   └── ImageResources.tsx
    │   │   ├── DownloadImage.tsx
    │   │   ├── ExplainHiddenImages
    │   │   │   └── ExplainHiddenImages.tsx
    │   │   ├── Filters
    │   │   │   ├── ImageCategories.tsx
    │   │   │   └── MediaFiltersDropdown.tsx
    │   │   ├── ImageAnalysis
    │   │   │   └── ImageAnalysis.tsx
    │   │   ├── ImageDropzone
    │   │   │   ├── ImageDropzone.tsx
    │   │   │   └── MediaDropzone.tsx
    │   │   ├── Indicators
    │   │   │   ├── OnsiteIndicator.tsx
    │   │   │   ├── OnsiteIndicatore.module.scss
    │   │   │   └── OnsiteIndicatore.module.scss.d.ts
    │   │   ├── Infinite
    │   │   │   ├── ImagesCard.module.scss
    │   │   │   ├── ImagesCard.module.scss.d.ts
    │   │   │   ├── ImagesCard.tsx
    │   │   │   ├── ImagesInfinite.tsx
    │   │   │   ├── UserMediaInfinite.module.css
    │   │   │   └── UserMediaInfinite.tsx
    │   │   ├── Meta
    │   │   │   ├── ImageMetaPopover.tsx
    │   │   │   └── ImageMetaPopoverLazy.tsx
    │   │   ├── PromptHighlight
    │   │   │   └── PromptHighlight.tsx
    │   │   ├── Providers
    │   │   │   └── ImagesProvider.tsx
    │   │   ├── RefreshImageResources
    │   │   │   └── RefreshImageResources.tsx
    │   │   ├── UnblockImage
    │   │   │   └── UnblockImage.tsx
    │   │   ├── hooks
    │   │   │   ├── useDeleteImage.ts
    │   │   │   ├── useReportTosViolation.ts
    │   │   │   ├── useRescanImage.ts
    │   │   │   ├── useToggleImageFlag.ts
    │   │   │   └── useUpdateCollectionCoverImage.ts
    │   │   └── image.utils.ts
    │   ├── ImageGeneration
    │   │   ├── CreateVariantsModal.tsx
    │   │   ├── Feed.module.scss
    │   │   ├── Feed.module.scss.d.ts
    │   │   ├── Feed.tsx
    │   │   ├── GeneratedImage.module.css
    │   │   ├── GeneratedImage.tsx
    │   │   ├── GeneratedImageActions.module.scss
    │   │   ├── GeneratedImageActions.module.scss.d.ts
    │   │   ├── GeneratedImageActions.tsx
    │   │   ├── GenerationDetails.tsx
    │   │   ├── GenerationForm
    │   │   │   ├── GenerationCostPopover.module.scss
    │   │   │   ├── GenerationCostPopover.module.scss.d.ts
    │   │   │   ├── GenerationCostPopover.tsx
    │   │   │   ├── GenerationForm2.module.scss
    │   │   │   ├── GenerationForm2.module.scss.d.ts
    │   │   │   ├── GenerationForm2.tsx
    │   │   │   ├── GenerationFormProvider.tsx
    │   │   │   ├── HaiperAspectRatio.tsx
    │   │   │   ├── InputQuantity.tsx
    │   │   │   ├── InputSeed.tsx
    │   │   │   ├── ResourceSelect.tsx
    │   │   │   ├── ResourceSelectCard.tsx
    │   │   │   ├── ResourceSelectFilters.module.scss
    │   │   │   ├── ResourceSelectFilters.module.scss.d.ts
    │   │   │   ├── ResourceSelectFilters.tsx
    │   │   │   ├── ResourceSelectModal2.tsx
    │   │   │   ├── ResourceSelectMultiple.tsx
    │   │   │   ├── ResourceSelectMultipleStandalone.module.scss
    │   │   │   ├── ResourceSelectMultipleStandalone.module.scss.d.ts
    │   │   │   ├── ResourceSelectMultipleStandalone.tsx
    │   │   │   ├── ResourceSelectProvider.tsx
    │   │   │   ├── TextToImageWhatIfProvider.tsx
    │   │   │   ├── TransactionsPopover.tsx
    │   │   │   ├── generation.utils.ts
    │   │   │   └── resource-select.types.ts
    │   │   ├── GenerationProvider.tsx
    │   │   ├── GenerationProvider2.tsx
    │   │   ├── GenerationSidebar.tsx
    │   │   ├── GenerationStatusBadge.tsx
    │   │   ├── GenerationTabs.tsx
    │   │   ├── MarkerFiltersDropdown.tsx
    │   │   ├── Queue.tsx
    │   │   ├── QueueItem.module.scss
    │   │   ├── QueueItem.module.scss.d.ts
    │   │   ├── QueueItem.tsx
    │   │   ├── QueueSnackbar.module.scss
    │   │   ├── QueueSnackbar.module.scss.d.ts
    │   │   ├── QueueSnackbar.tsx
    │   │   ├── SlateEditor
    │   │   │   ├── Editor.tsx
    │   │   │   ├── SlateEditor.tsx
    │   │   │   └── index.ts
    │   │   └── utils
    │   │   │   ├── generationImage.select.ts
    │   │   │   └── generationRequestHooks.ts
    │   ├── ImageGuard
    │   │   ├── ImageGuard.module.css
    │   │   └── ImageGuard2.tsx
    │   ├── ImageHash
    │   │   └── ImageHash.tsx
    │   ├── ImageMeta
    │   │   └── ImageMeta.tsx
    │   ├── ImagePreview
    │   │   └── ImagePreview.tsx
    │   ├── ImageUpload
    │   │   ├── ImageUpload.module.css
    │   │   ├── ImageUpload.tsx
    │   │   ├── ImageUploadPreview.module.css
    │   │   ├── ImageUploadPreview.tsx
    │   │   └── SortableItem.tsx
    │   ├── ImageViewer
    │   │   └── ImageViewer.tsx
    │   ├── InView
    │   │   └── InViewLoader.tsx
    │   ├── InfoPopover
    │   │   └── InfoPopover.tsx
    │   ├── IntersectionObserver
    │   │   └── IntersectionObserverProvider.tsx
    │   ├── IsClient
    │   │   └── IsClient.tsx
    │   ├── JoinPopover
    │   │   └── JoinPopover.tsx
    │   ├── Leaderboard
    │   │   ├── CreatorCard.module.scss
    │   │   ├── CreatorCard.module.scss.d.ts
    │   │   ├── CreatorCard.tsx
    │   │   ├── CreatorList.tsx
    │   │   ├── LeaderboardMetrics.tsx
    │   │   └── RankBadge.tsx
    │   ├── LegacyActionIcon
    │   │   └── LegacyActionIcon.tsx
    │   ├── LineClamp
    │   │   └── LineClamp.tsx
    │   ├── Login
    │   │   ├── LoginContent.tsx
    │   │   ├── LoginModal.tsx
    │   │   └── requireLogin.ts
    │   ├── LoginPopover
    │   │   └── LoginPopover.tsx
    │   ├── LoginRedirect
    │   │   └── LoginRedirect.tsx
    │   ├── Logo
    │   │   ├── BreakthroughT1DLogo.tsx
    │   │   ├── JdrfLogo.tsx
    │   │   ├── Logo.module.scss
    │   │   ├── Logo.module.scss.d.ts
    │   │   ├── Logo.tsx
    │   │   └── LogoBadge.tsx
    │   ├── Markdown
    │   │   └── CustomMarkdown.tsx
    │   ├── MasonryColumns
    │   │   ├── MasonryCarousel.tsx
    │   │   ├── MasonryColumns.tsx
    │   │   ├── MasonryContainer.module.scss
    │   │   ├── MasonryContainer.module.scss.d.ts
    │   │   ├── MasonryContainer.tsx
    │   │   ├── MasonryGrid.module.scss
    │   │   ├── MasonryGrid.module.scss.d.ts
    │   │   ├── MasonryGrid.tsx
    │   │   ├── MasonryProvider.tsx
    │   │   ├── UniformGrid.module.scss
    │   │   ├── UniformGrid.module.scss.d.ts
    │   │   ├── UniformGrid.tsx
    │   │   ├── masonry.types.ts
    │   │   └── masonry.utils.ts
    │   ├── MasonryGrid
    │   │   ├── BasicMasonryGrid.tsx
    │   │   ├── MasonryCard.tsx
    │   │   └── MasonryGrid2.tsx
    │   ├── MediaUploadSettings
    │   │   └── MediaUploadSettingsProvider.tsx
    │   ├── MenuItems
    │   │   ├── AddToCollectionMenuItem.tsx
    │   │   ├── RemoveFromCollectionMenuItem.tsx
    │   │   ├── ReportMenuItem.tsx
    │   │   └── ToggleSearchableMenuItem.tsx
    │   ├── Meta
    │   │   ├── Meta.tsx
    │   │   └── MetaPWA.tsx
    │   ├── Modals
    │   │   ├── AssociateModelsModal.tsx
    │   │   ├── BlockModelTagsModal.tsx
    │   │   ├── BuyBuzzModal.tsx
    │   │   ├── CardDecorationModal.module.scss
    │   │   ├── CardDecorationModal.module.scss.d.ts
    │   │   ├── CardDecorationModal.tsx
    │   │   ├── GenerationQualityFeedbackModal.module.scss
    │   │   ├── GenerationQualityFeedbackModal.module.scss.d.ts
    │   │   ├── GenerationQualityFeedbackModal.tsx
    │   │   ├── ReadOnlyModal.tsx
    │   │   ├── ReorderVersionsModal.tsx
    │   │   ├── ReportModal.tsx
    │   │   ├── RunStrategyModal.tsx
    │   │   ├── SendTipModal.module.scss
    │   │   ├── SendTipModal.module.scss.d.ts
    │   │   ├── SendTipModal.tsx
    │   │   ├── StripePaymentMethodSetupModal.tsx
    │   │   ├── UnpublishModal.tsx
    │   │   └── UserProfileEditModal.tsx
    │   ├── Model
    │   │   ├── Actions
    │   │   │   ├── MigrateModelToCollection.tsx
    │   │   │   ├── ModelCardContextMenu.tsx
    │   │   │   ├── ToggleLockModel.tsx
    │   │   │   ├── ToggleLockModelComments.tsx
    │   │   │   └── ToggleModelNotification.tsx
    │   │   ├── Categories
    │   │   │   ├── ModelCategoryCard.module.css
    │   │   │   └── ModelCategoryCard.tsx
    │   │   ├── CollectionShowcase
    │   │   │   └── CollectionShowcase.tsx
    │   │   ├── Discussion
    │   │   │   ├── CommentThreadModal.tsx
    │   │   │   ├── ModelDiscussionComments.tsx
    │   │   │   └── ModelDiscussionContextMenu.tsx
    │   │   ├── EarlyAccessAlert
    │   │   │   └── EarlyAccessAlert.tsx
    │   │   ├── EarlyAccessHighlight
    │   │   │   └── EarlyAccessHighlight.tsx
    │   │   ├── Generation
    │   │   │   ├── GenerationPromptModal.tsx
    │   │   │   ├── ModelGenerationCard.module.scss
    │   │   │   ├── ModelGenerationCard.module.scss.d.ts
    │   │   │   └── ModelGenerationCard.tsx
    │   │   ├── HowToUseModel
    │   │   │   └── HowToUseModel.tsx
    │   │   ├── Infinite
    │   │   │   ├── ModelFiltersDropdown.tsx
    │   │   │   └── ModelsInfinite.tsx
    │   │   ├── ModelAvailabilityUpdate
    │   │   │   └── ModelAvailabilityUpdate.tsx
    │   │   ├── ModelCarousel
    │   │   │   ├── ModelCarousel.module.css
    │   │   │   └── ModelCarousel.tsx
    │   │   ├── ModelDiscussion
    │   │   │   ├── CommentDiscussionItem.tsx
    │   │   │   ├── CommentDiscussionMenu.tsx
    │   │   │   ├── CommentEditModal.tsx
    │   │   │   └── ModelDiscussionV2.tsx
    │   │   ├── ModelFileAlert
    │   │   │   └── ModelFileAlert.tsx
    │   │   ├── ModelHash
    │   │   │   └── ModelHash.tsx
    │   │   ├── ModelTypeBadge
    │   │   │   └── ModelTypeBadge.tsx
    │   │   ├── ModelURN
    │   │   │   ├── ModelURN.module.scss
    │   │   │   ├── ModelURN.module.scss.d.ts
    │   │   │   └── ModelURN.tsx
    │   │   ├── ModelVersionList
    │   │   │   ├── ModelVersionList.module.scss
    │   │   │   ├── ModelVersionList.module.scss.d.ts
    │   │   │   └── ModelVersionList.tsx
    │   │   ├── ModelVersions
    │   │   │   ├── DownloadButton.tsx
    │   │   │   ├── ModelVersionDetails.module.scss
    │   │   │   ├── ModelVersionDetails.module.scss.d.ts
    │   │   │   ├── ModelVersionDetails.tsx
    │   │   │   ├── ModelVersionDonationGoals.tsx
    │   │   │   ├── ModelVersionEarlyAccessPurchase.tsx
    │   │   │   ├── ModelVersionMenu.tsx
    │   │   │   ├── ModelVersionPopularity.tsx
    │   │   │   ├── ModelVersionReview.tsx
    │   │   │   └── model-version.utils.ts
    │   │   ├── ScheduleModal
    │   │   │   └── ScheduleModal.tsx
    │   │   └── model.utils.ts
    │   ├── ModelRating
    │   │   └── ModelRating.tsx
    │   ├── Moderation
    │   │   ├── FlaggedModelsList.tsx
    │   │   ├── ImpersonateButton.tsx
    │   │   ├── ModerationNav.tsx
    │   │   └── RuleDefinitionPopover.tsx
    │   ├── MultiActionButton
    │   │   └── MultiActionButton.tsx
    │   ├── NewsletterDialog
    │   │   ├── NewsletterDialog.module.scss
    │   │   ├── NewsletterDialog.module.scss.d.ts
    │   │   └── NewsletterDialog.tsx
    │   ├── Newsroom
    │   │   ├── Assets
    │   │   │   ├── Badge.tsx
    │   │   │   └── Logo.tsx
    │   │   ├── FeaturedArticle.module.scss
    │   │   ├── FeaturedArticle.module.scss.d.ts
    │   │   ├── FeaturedArticle.tsx
    │   │   ├── MediaKit.module.scss
    │   │   ├── MediaKit.module.scss.d.ts
    │   │   ├── MediaKit.tsx
    │   │   ├── News.module.css
    │   │   ├── News.tsx
    │   │   ├── PressMentions.module.scss
    │   │   ├── PressMentions.module.scss.d.ts
    │   │   └── PressMentions.tsx
    │   ├── NextLink
    │   │   └── NextLink.tsx
    │   ├── NoContent
    │   │   └── NoContent.tsx
    │   ├── Notifications
    │   │   ├── NotificationBell.tsx
    │   │   ├── NotificationList.module.css
    │   │   ├── NotificationList.tsx
    │   │   ├── NotificationTabs.module.scss
    │   │   ├── NotificationTabs.tsx
    │   │   ├── NotificationToggle.tsx
    │   │   ├── NotificationsComposed.tsx
    │   │   ├── NotificationsDrawer.module.scss
    │   │   ├── NotificationsDrawer.module.scss.d.ts
    │   │   ├── NotificationsDrawer.tsx
    │   │   └── notifications.utils.ts
    │   ├── NowPayments
    │   │   └── util.ts
    │   ├── Onboarding
    │   │   ├── OnboardingAbortButton.tsx
    │   │   ├── OnboardingBuzz.tsx
    │   │   ├── OnboardingContentExperience.module.scss
    │   │   ├── OnboardingContentExperience.module.scss.d.ts
    │   │   ├── OnboardingContentExperience.tsx
    │   │   ├── OnboardingProfile.tsx
    │   │   ├── OnboardingProvider.tsx
    │   │   ├── OnboardingRedTos.tsx
    │   │   ├── OnboardingTos.tsx
    │   │   ├── OnboardingWizard.module.scss
    │   │   ├── OnboardingWizard.module.scss.d.ts
    │   │   ├── OnboardingWizard.tsx
    │   │   └── onboarding.utils.ts
    │   ├── Orchestrator
    │   │   └── components
    │   │   │   ├── BackgroundRemovalModal.tsx
    │   │   │   ├── EnhanceVideoModal.tsx
    │   │   │   ├── GenerateButton.tsx
    │   │   │   ├── UpscaleEnhancementModal.tsx
    │   │   │   └── UpscaleImageModal.tsx
    │   ├── Paddle
    │   │   ├── PaddleTransacionModal.tsx
    │   │   ├── usePaddleCheckout.ts
    │   │   └── util.ts
    │   ├── PageLoader
    │   │   └── PageLoader.tsx
    │   ├── Payments
    │   │   └── usePaymentProvider.ts
    │   ├── PermissionIndicator
    │   │   └── PermissionIndicator.tsx
    │   ├── PersistentAccordion
    │   │   └── PersistantAccordion.tsx
    │   ├── PoiAlert
    │   │   └── PoiAlert.tsx
    │   ├── PopConfirm
    │   │   └── PopConfirm.tsx
    │   ├── Post
    │   │   ├── DeletePostButton.tsx
    │   │   ├── Detail
    │   │   │   ├── PostComments.tsx
    │   │   │   ├── PostContestCollectionInfoAlert.tsx
    │   │   │   ├── PostControls.tsx
    │   │   │   ├── PostDetail.tsx
    │   │   │   ├── PostDetailModal.tsx
    │   │   │   ├── PostImages.module.css
    │   │   │   └── PostImages.tsx
    │   │   ├── EditV2
    │   │   │   ├── Collaborators
    │   │   │   │   └── PostCollaborators.tsx
    │   │   │   ├── Collections
    │   │   │   │   └── CollectionSelectDropdown.tsx
    │   │   │   ├── EditPostReviews.tsx
    │   │   │   ├── EditPostTags.module.scss
    │   │   │   ├── EditPostTags.module.scss.d.ts
    │   │   │   ├── EditPostTags.tsx
    │   │   │   ├── ImageMetaModal.tsx
    │   │   │   ├── PostEdit.tsx
    │   │   │   ├── PostEditForm.tsx
    │   │   │   ├── PostEditLayout.tsx
    │   │   │   ├── PostEditProvider.tsx
    │   │   │   ├── PostEditSidebar.tsx
    │   │   │   ├── PostImageCards
    │   │   │   │   ├── AddedImage.tsx
    │   │   │   │   ├── BlockedImage.tsx
    │   │   │   │   ├── CustomCard.tsx
    │   │   │   │   ├── ErrorImage.tsx
    │   │   │   │   ├── PendingImage.tsx
    │   │   │   │   └── PostImageCards.tsx
    │   │   │   ├── PostImageDropzone.tsx
    │   │   │   ├── PostReorderImages.tsx
    │   │   │   ├── SchedulePostModal.tsx
    │   │   │   ├── Techniques
    │   │   │   │   ├── PostImageTechnique.tsx
    │   │   │   │   └── PostImageTechniquesPopover.tsx
    │   │   │   ├── Thumbnail
    │   │   │   │   └── PostImageThumbnailSelect.tsx
    │   │   │   └── Tools
    │   │   │   │   ├── PostImageTool.tsx
    │   │   │   │   └── PostImageToolsPopover.tsx
    │   │   ├── Infinite
    │   │   │   ├── PostCategories.tsx
    │   │   │   ├── PostFiltersDropdown.tsx
    │   │   │   ├── PostsCard.module.css
    │   │   │   ├── PostsCard.tsx
    │   │   │   └── PostsInfinite.tsx
    │   │   └── post.utils.ts
    │   ├── Profile
    │   │   ├── AddToShowcaseMenuItem.tsx
    │   │   ├── ImageCSSAspectRatioWrap.module.scss
    │   │   ├── ImageCSSAspectRatioWrap.module.scss.d.ts
    │   │   ├── ImageCSSAspectRatioWrap.tsx
    │   │   ├── InlineSocialLinkInput.tsx
    │   │   ├── ProfileHeader.module.scss
    │   │   ├── ProfileHeader.module.scss.d.ts
    │   │   ├── ProfileHeader.tsx
    │   │   ├── ProfileLayout.module.scss
    │   │   ├── ProfileLayout.module.scss.d.ts
    │   │   ├── ProfileLayout.tsx
    │   │   ├── ProfileLayout2.tsx
    │   │   ├── ProfileNavigation.tsx
    │   │   ├── ProfileSection.module.css
    │   │   ├── ProfileSection.tsx
    │   │   ├── ProfileSectionsSettingsInput.tsx
    │   │   ├── ProfileSidebar.tsx
    │   │   ├── Sections
    │   │   │   ├── MyImagesSection.tsx
    │   │   │   ├── MyModelsSection.tsx
    │   │   │   ├── PopularArticlesSection.tsx
    │   │   │   ├── PopularModelsSection.tsx
    │   │   │   ├── RecentReviewsSection.module.scss
    │   │   │   ├── RecentReviewsSection.module.scss.d.ts
    │   │   │   ├── RecentReviewsSection.tsx
    │   │   │   ├── ShowcaseGrid.module.scss
    │   │   │   ├── ShowcaseGrid.module.scss.d.ts
    │   │   │   ├── ShowcaseGrid.tsx
    │   │   │   └── ShowcaseSection.tsx
    │   │   ├── ShowcaseItemsInput.module.scss
    │   │   ├── ShowcaseItemsInput.module.scss.d.ts
    │   │   ├── ShowcaseItemsInput.tsx
    │   │   ├── UserBanModal.tsx
    │   │   ├── UserContextMenu.tsx
    │   │   ├── UserStats.tsx
    │   │   └── profile.utils.ts
    │   ├── ProfileImageUpload
    │   │   └── ProfileImageUpload.tsx
    │   ├── PurchasableRewards
    │   │   ├── PurchasableRewardUpsertForm.tsx
    │   │   ├── PurchasableRewards.module.scss
    │   │   ├── PurchasableRewards.module.scss.d.ts
    │   │   ├── PurchasableRewards.tsx
    │   │   ├── PurchasableRewardsModeratorFiltersDropdown.module.scss
    │   │   ├── PurchasableRewardsModeratorFiltersDropdown.module.scss.d.ts
    │   │   ├── PurchasableRewardsModeratorFiltersDropdown.tsx
    │   │   └── purchasableRewards.util.ts
    │   ├── Questions
    │   │   ├── AnswerDetail.tsx
    │   │   ├── AnswerForm.tsx
    │   │   ├── AnswerVotes.tsx
    │   │   ├── DeleteAnswer.tsx
    │   │   ├── DeleteQuestion.tsx
    │   │   ├── FavoriteBadge.tsx
    │   │   ├── QuestionAnswerComments.module.scss
    │   │   ├── QuestionAnswerComments.module.scss.d.ts
    │   │   ├── QuestionAnswerComments.tsx
    │   │   ├── QuestionDetails.tsx
    │   │   ├── QuestionForm.tsx
    │   │   ├── Questions.Provider.module.scss
    │   │   ├── Questions.Provider.module.scss.d.ts
    │   │   ├── Questions.Provider.tsx
    │   │   └── ReactionBadge.tsx
    │   ├── Reaction
    │   │   ├── ReactionButton.tsx
    │   │   ├── ReactionSettingsProvider.tsx
    │   │   ├── Reactions.module.css
    │   │   └── Reactions.tsx
    │   ├── ReactionPicker
    │   │   └── ReactionPicker.tsx
    │   ├── ReadOnlyAlert
    │   │   └── ReadOnlyAlert.tsx
    │   ├── ReadOnlyNotice
    │   │   └── ReadOnlyNotice.tsx
    │   ├── Recaptcha
    │   │   ├── RecaptchaWidget.tsx
    │   │   └── useReptchaToken.ts
    │   ├── RedeemableCode
    │   │   ├── RedeemCodeModal.module.scss
    │   │   ├── RedeemCodeModal.module.scss.d.ts
    │   │   └── RedeemCodeModal.tsx
    │   ├── Redirect
    │   │   └── Redirect.tsx
    │   ├── Referrals
    │   │   └── ReferralsProvider.tsx
    │   ├── RefreshSessionButton
    │   │   └── RefreshSessionButton.tsx
    │   ├── RenderHtml
    │   │   ├── RenderHtml.module.scss
    │   │   ├── RenderHtml.module.scss.d.ts
    │   │   └── RenderHtml.tsx
    │   ├── Report
    │   │   ├── AdminAttentionForm.tsx
    │   │   ├── ClaimForm.tsx
    │   │   ├── NsfwForm.tsx
    │   │   ├── OwnershipForm.tsx
    │   │   ├── TosViolationForm.tsx
    │   │   ├── create-report-form.tsx
    │   │   └── report.utils.ts
    │   ├── RequireMembership
    │   │   └── RequireMembership.tsx
    │   ├── Resizable
    │   │   ├── ResizableSidebar.tsx
    │   │   ├── ResizeableSidebar.module.scss
    │   │   ├── ResizeableSidebar.module.scss.d.ts
    │   │   └── useResize.ts
    │   ├── Resource
    │   │   ├── Files.module.scss
    │   │   ├── Files.module.scss.d.ts
    │   │   ├── Files.tsx
    │   │   ├── FilesEditModal.tsx
    │   │   ├── FilesProvider.tsx
    │   │   ├── Forms
    │   │   │   ├── ModelUpsertForm.module.scss
    │   │   │   ├── ModelUpsertForm.module.scss.d.ts
    │   │   │   ├── ModelUpsertForm.tsx
    │   │   │   ├── ModelVersionUpsertForm.tsx
    │   │   │   ├── PostUpsertForm2.tsx
    │   │   │   ├── TrainingSelectFile.module.css
    │   │   │   └── TrainingSelectFile.tsx
    │   │   ├── UploadTracker.tsx
    │   │   └── Wizard
    │   │   │   ├── ModelVersionWizard.tsx
    │   │   │   ├── ModelWizard.tsx
    │   │   │   ├── TemplateSelect.tsx
    │   │   │   └── Wizard.tsx
    │   ├── ResourceReview
    │   │   ├── EditResourceReview.module.scss
    │   │   ├── EditResourceReview.tsx
    │   │   ├── EditResourceReviewModal.tsx
    │   │   ├── EditUserResourceReview.module.scss
    │   │   ├── EditUserResourceReview.module.scss.d.ts
    │   │   ├── EditUserResourceReview.tsx
    │   │   ├── ResourceReviewCard.tsx
    │   │   ├── ResourceReviewCarousel.module.css
    │   │   ├── ResourceReviewCarousel.tsx
    │   │   ├── ResourceReviewComments.tsx
    │   │   ├── ResourceReviewDetail.tsx
    │   │   ├── ResourceReviewForm.tsx
    │   │   ├── ResourceReviewMenu.tsx
    │   │   ├── ResourceReviewModal.tsx
    │   │   ├── ResourceReviewThumbActions.module.scss
    │   │   ├── ResourceReviewThumbActions.module.scss.d.ts
    │   │   ├── ResourceReviewThumbActions.tsx
    │   │   ├── ResourceReviewsGrid.tsx
    │   │   ├── Summary
    │   │   │   ├── ResourceReviewSummary.module.scss
    │   │   │   ├── ResourceReviewSummary.module.scss.d.ts
    │   │   │   └── ResourceReviewSummary.tsx
    │   │   └── resourceReview.utils.ts
    │   ├── RichTextEditor
    │   │   ├── InsertImageControl.tsx
    │   │   ├── InsertInstagramEmbedControl.tsx
    │   │   ├── InsertStrawPollControl.tsx
    │   │   ├── InsertYoutubeVideoControl.tsx
    │   │   ├── MentionList.tsx
    │   │   ├── RichTextEditor.tsx
    │   │   ├── RichTextEditorComponent.module.scss
    │   │   ├── RichTextEditorComponent.module.scss.d.ts
    │   │   ├── RichTextEditorComponent.tsx
    │   │   └── suggestion.ts
    │   ├── RouterTransition
    │   │   └── RouterTransition.tsx
    │   ├── RunStrategy
    │   │   ├── GenerateButton.tsx
    │   │   ├── RunButton.tsx
    │   │   ├── RunPartners.module.scss
    │   │   ├── RunPartners.module.scss.d.ts
    │   │   └── RunPartners.tsx
    │   ├── SVG
    │   │   ├── IconCivitai.tsx
    │   │   ├── IconHuggingFace.tsx
    │   │   └── IconNose.tsx
    │   ├── ScrollArea
    │   │   ├── ScrollArea.tsx
    │   │   └── ScrollAreaContext.ts
    │   ├── Search
    │   │   ├── CustomSearchComponents.module.scss
    │   │   ├── CustomSearchComponents.module.scss.d.ts
    │   │   ├── CustomSearchComponents.tsx
    │   │   ├── QuickSearchDropdown.module.scss
    │   │   ├── QuickSearchDropdown.module.scss.d.ts
    │   │   ├── QuickSearchDropdown.tsx
    │   │   ├── SearchHeader.module.scss
    │   │   ├── SearchHeader.module.scss.d.ts
    │   │   ├── SearchHeader.tsx
    │   │   ├── SearchLayout.module.scss
    │   │   ├── SearchLayout.module.scss.d.ts
    │   │   ├── SearchLayout.tsx
    │   │   ├── TimeoutLoader.tsx
    │   │   ├── parsers
    │   │   │   ├── article.parser.ts
    │   │   │   ├── base.ts
    │   │   │   ├── bounties.parser.ts
    │   │   │   ├── collection.parser.ts
    │   │   │   ├── image.parser.ts
    │   │   │   ├── model.parser.ts
    │   │   │   ├── tool.parser.ts
    │   │   │   └── user.parser.ts
    │   │   ├── search.client.ts
    │   │   ├── search.types.ts
    │   │   ├── search.utils.ts
    │   │   ├── search.utils2.ts
    │   │   └── useSearchState.ts
    │   ├── SelectMenu
    │   │   ├── SelectMenu.module.scss
    │   │   ├── SelectMenu.module.scss.d.ts
    │   │   └── SelectMenu.tsx
    │   ├── SensitiveShield
    │   │   └── SensitiveShield.tsx
    │   ├── ShareButton
    │   │   ├── Icons
    │   │   │   ├── SocialIconChat.tsx
    │   │   │   ├── SocialIconCollect.tsx
    │   │   │   ├── SocialIconCopy.tsx
    │   │   │   ├── SocialIconOther.tsx
    │   │   │   └── SocialIconReddit.tsx
    │   │   └── ShareButton.tsx
    │   ├── Shop
    │   │   ├── CosmeticSample.tsx
    │   │   ├── ShopItem.module.scss
    │   │   ├── ShopItem.module.scss.d.ts
    │   │   ├── ShopItem.tsx
    │   │   ├── ShopSection.module.scss
    │   │   ├── ShopSection.module.scss.d.ts
    │   │   └── ShopSection.tsx
    │   ├── SignInError
    │   │   └── SignInError.tsx
    │   ├── Signals
    │   │   ├── SignalsNotifications.tsx
    │   │   ├── SignalsProvider.tsx
    │   │   ├── SignalsProviderStack.tsx
    │   │   └── SignalsRegistrar.tsx
    │   ├── SkeletonSwitch
    │   │   └── SkeletonSwitch.tsx
    │   ├── Social
    │   │   ├── LiveNow.module.scss
    │   │   ├── LiveNow.module.scss.d.ts
    │   │   ├── LiveNow.tsx
    │   │   ├── Social.module.css
    │   │   ├── Social.tsx
    │   │   ├── SocialButton.tsx
    │   │   └── SocialLabel.tsx
    │   ├── SocialLinks
    │   │   └── SocialLinks.tsx
    │   ├── SortableGrid
    │   │   └── SortableGrid.tsx
    │   ├── StartRating
    │   │   ├── StarRating.module.scss
    │   │   ├── StarRating.module.scss.d.ts
    │   │   └── StarRating.tsx
    │   ├── Stepper
    │   │   ├── Stepper.tsx
    │   │   └── StepperTitle.tsx
    │   ├── Stripe
    │   │   ├── DonateButton.tsx
    │   │   ├── ManageSubscriptionButton.tsx
    │   │   ├── MembershipChangePrevention.tsx
    │   │   ├── MembershipUpsell.module.scss
    │   │   ├── MembershipUpsell.module.scss.d.ts
    │   │   ├── MembershipUpsell.tsx
    │   │   ├── StripePaymentMethodSetup.tsx
    │   │   ├── SubscribeButton.tsx
    │   │   ├── memberships.util.ts
    │   │   └── stripe.utils.ts
    │   ├── Subscriptions
    │   │   ├── CancelMembershipAction.tsx
    │   │   ├── PlanBenefitList.tsx
    │   │   ├── PlanCard.tsx
    │   │   ├── SubscriptionFeature.tsx
    │   │   ├── SubscriptionRequiredBlock.module.scss
    │   │   ├── SubscriptionRequiredBlock.module.scss.d.ts
    │   │   ├── SubscriptionRequiredBlock.tsx
    │   │   └── getPlanDetails.tsx
    │   ├── Support
    │   │   ├── SupportContent.tsx
    │   │   └── SupportModal.tsx
    │   ├── SupportButton
    │   │   └── SupportButton.tsx
    │   ├── Tags
    │   │   ├── HiddenTagsModal.tsx
    │   │   ├── ReviewTagsInput.tsx
    │   │   ├── TagScroller.tsx
    │   │   ├── TagsInput.module.scss
    │   │   ├── TagsInput.module.scss.d.ts
    │   │   ├── TagsInput.tsx
    │   │   └── tag.utils.ts
    │   ├── Technique
    │   │   └── TechniqueMultiSelect.tsx
    │   ├── ThumbsIcon
    │   │   └── ThumbsIcon.tsx
    │   ├── ToSModal
    │   │   └── TosModal.tsx
    │   ├── ToggleList
    │   │   ├── ToggleList.module.scss
    │   │   ├── ToggleList.module.scss.d.ts
    │   │   └── ToggleList.tsx
    │   ├── Tool
    │   │   ├── ToolBanner.tsx
    │   │   ├── ToolFiltersDropdown.module.scss
    │   │   ├── ToolFiltersDropdown.module.scss.d.ts
    │   │   ├── ToolFiltersDropdown.tsx
    │   │   ├── ToolMultiSelect.tsx
    │   │   ├── ToolsInfinite.tsx
    │   │   └── tools.utils.ts
    │   ├── Tooltips
    │   │   └── StatTooltip.tsx
    │   ├── Tour
    │   │   └── TourPopover.tsx
    │   ├── Tours
    │   │   ├── LazyTours.tsx
    │   │   ├── ToursProvider.tsx
    │   │   └── tours
    │   │   │   ├── auction.tour.tsx
    │   │   │   ├── content-gen.tour.tsx
    │   │   │   ├── index.ts
    │   │   │   ├── model-page.tour.tsx
    │   │   │   └── post-image-gen.tour.tsx
    │   ├── TrackView
    │   │   ├── TrackPageView.tsx
    │   │   ├── TrackView.tsx
    │   │   └── track.utils.ts
    │   ├── TrainedWords
    │   │   └── TrainedWords.tsx
    │   ├── Training
    │   │   ├── Form
    │   │   │   ├── ImageSelectFilters.module.scss
    │   │   │   ├── ImageSelectFilters.module.scss.d.ts
    │   │   │   ├── ImageSelectFilters.tsx
    │   │   │   ├── ImageSelectModal.tsx
    │   │   │   ├── TrainingAutoLabelModal.tsx
    │   │   │   ├── TrainingBasicInfo.module.css
    │   │   │   ├── TrainingBasicInfo.tsx
    │   │   │   ├── TrainingCommon.ts
    │   │   │   ├── TrainingEditTagsModal.tsx
    │   │   │   ├── TrainingImages.module.scss
    │   │   │   ├── TrainingImages.module.scss.d.ts
    │   │   │   ├── TrainingImages.tsx
    │   │   │   ├── TrainingImagesCaptionViewer.module.scss
    │   │   │   ├── TrainingImagesCaptionViewer.module.scss.d.ts
    │   │   │   ├── TrainingImagesCaptionViewer.tsx
    │   │   │   ├── TrainingImagesTagViewer.module.css
    │   │   │   ├── TrainingImagesTagViewer.tsx
    │   │   │   ├── TrainingParams.tsx
    │   │   │   ├── TrainingSubmit.tsx
    │   │   │   ├── TrainingSubmitAdvancedSettings.tsx
    │   │   │   └── TrainingSubmitModelSelect.tsx
    │   │   ├── Wizard
    │   │   │   └── TrainWizard.tsx
    │   │   └── training.utils.ts
    │   ├── TurnstileWidget
    │   │   └── TurnstileWidget.tsx
    │   ├── TwCard
    │   │   └── TwCard.tsx
    │   ├── TwCosmeticWrapper
    │   │   ├── CosmeticWrapper.module.scss
    │   │   ├── CosmeticWrapper.module.scss.d.ts
    │   │   └── TwCosmeticWrapper.tsx
    │   ├── TwLoader
    │   │   └── TwLoader.tsx
    │   ├── TwScrollX
    │   │   └── TwScrollX.tsx
    │   ├── TypographyStylesWrapper
    │   │   ├── TypographyStylesWrapper.module.scss
    │   │   └── TypographyStylesWrapper.tsx
    │   ├── UpdateRequiredWatcher
    │   │   ├── UpdateRequiredModal.tsx
    │   │   └── UpdateRequiredWatcher.tsx
    │   ├── UploadNotice
    │   │   └── UploadNotice.tsx
    │   ├── User
    │   │   ├── ProfilePictureAlert.tsx
    │   │   ├── UserBanned.tsx
    │   │   ├── UserBuzz.tsx
    │   │   ├── UserDraftModels.tsx
    │   │   ├── UserLink.tsx
    │   │   ├── UserModelsTable.module.scss
    │   │   ├── UserModelsTable.module.scss.d.ts
    │   │   ├── UserTrainingModels.tsx
    │   │   └── Username.tsx
    │   ├── UserAvatar
    │   │   ├── UserAvatar.tsx
    │   │   ├── UserAvatarProfilePicture.tsx
    │   │   ├── UserAvatarSimple.module.scss
    │   │   ├── UserAvatarSimple.module.scss.d.ts
    │   │   └── UserAvatarSimple.tsx
    │   ├── UserPaymentConfiguration
    │   │   └── util.ts
    │   ├── UserSettings
    │   │   └── hooks.ts
    │   ├── UserStatBadges
    │   │   └── UserStatBadges.tsx
    │   ├── Vault
    │   │   ├── ToggleVaultButton.tsx
    │   │   ├── VaultItemsFiltersDropdown.module.scss
    │   │   ├── VaultItemsFiltersDropdown.module.scss.d.ts
    │   │   ├── VaultItemsFiltersDropdown.tsx
    │   │   └── vault.util.ts
    │   ├── VerifiedShield
    │   │   └── VerifiedShield.tsx
    │   ├── VerifiedText
    │   │   └── VerifiedText.tsx
    │   ├── VimeoEmbed
    │   │   ├── VimeoEmbed.module.scss
    │   │   ├── VimeoEmbed.module.scss.d.ts
    │   │   └── VimeoEmbed.tsx
    │   ├── VotableTags
    │   │   ├── VotableTag.module.scss
    │   │   ├── VotableTag.tsx
    │   │   ├── VotableTagAdd.tsx
    │   │   ├── VotableTagMature.tsx
    │   │   ├── VotableTags.tsx
    │   │   └── votableTag.utils.ts
    │   ├── WatchAdButton
    │   │   └── WatchAdButton.tsx
    │   └── YoutubeEmbed
    │   │   └── YoutubeEmbed.tsx
    ├── env
    │   ├── client.ts
    │   ├── other.ts
    │   ├── schema.ts
    │   └── server.ts
    ├── hooks
    │   ├── hidden-preferences
    │   │   ├── index.ts
    │   │   ├── useHiddenPreferences.ts
    │   │   └── useToggleHiddenPreferences.ts
    │   ├── trpcHelpers.ts
    │   ├── useAspectRatioFit.tsx
    │   ├── useCFImageUpload.tsx
    │   ├── useCarouselNavigation.ts
    │   ├── useCatchNavigation.tsx
    │   ├── useCreateStore.ts
    │   ├── useCurrentUser.ts
    │   ├── useDismissedAnnouncements.ts
    │   ├── useDomainColor.tsx
    │   ├── useDomainSync.tsx
    │   ├── useFileUpload.ts
    │   ├── useFileUploadEvents.ts
    │   ├── useFormStorage.ts
    │   ├── useGameSounds.tsx
    │   ├── useHeadingsData.ts
    │   ├── useInView.ts
    │   ├── useIsClient.ts
    │   ├── useIsLive.ts
    │   ├── useIsMobile.ts
    │   ├── useIsMounted.ts
    │   ├── useIsTabActive.ts
    │   ├── useIsomorphicLayoutEffect.ts
    │   ├── useLiveFeatureFlags.ts
    │   ├── useMediaUpload.ts
    │   ├── useModelFilters.ts
    │   ├── useResizeObserver.ts
    │   ├── useS3Upload.tsx
    │   ├── useScrollRestore.ts
    │   ├── useStepper.ts
    │   ├── useStorage.ts
    │   └── useZodRouteParams.ts
    ├── libs
    │   ├── animations.module.scss
    │   ├── animations.module.scss.d.ts
    │   ├── auth.ts
    │   ├── form
    │   │   ├── components
    │   │   │   ├── CollectionSelectInput.tsx
    │   │   │   ├── CosmeticSelect.module.scss
    │   │   │   ├── CosmeticSelect.module.scss.d.ts
    │   │   │   ├── CosmeticSelect.tsx
    │   │   │   ├── FieldArray.tsx
    │   │   │   ├── FlagInput.tsx
    │   │   │   ├── Form.tsx
    │   │   │   ├── MultiFileInputUpload.module.scss
    │   │   │   ├── MultiFileInputUpload.module.scss.d.ts
    │   │   │   ├── MultiFileInputUpload.tsx
    │   │   │   ├── MultiSelectWrapper.tsx
    │   │   │   ├── NumberInputWrapper.tsx
    │   │   │   ├── NumberSlider.tsx
    │   │   │   ├── PresetOptions.module.scss
    │   │   │   ├── PresetOptions.module.scss.d.ts
    │   │   │   ├── PresetOptions.tsx
    │   │   │   ├── RadioGroupWrapper.tsx
    │   │   │   ├── RatingWrapper.tsx
    │   │   │   ├── SegmentedControlWrapper.tsx
    │   │   │   ├── SelectWrapper.tsx
    │   │   │   ├── SimpleImageUpload.module.scss
    │   │   │   ├── SimpleImageUpload.module.scss.d.ts
    │   │   │   ├── SimpleImageUpload.tsx
    │   │   │   ├── TextInputWrapper.tsx
    │   │   │   ├── Watch.tsx
    │   │   │   └── index.ts
    │   │   ├── hoc
    │   │   │   ├── withController.tsx
    │   │   │   └── withWatcher.tsx
    │   │   ├── hooks
    │   │   │   ├── useForm.ts
    │   │   │   ├── useFormSubscribe.ts
    │   │   │   └── usePersistForm.ts
    │   │   └── index.ts
    │   ├── generation
    │   │   └── utils
    │   │   │   ├── AspectRatio.ts
    │   │   │   └── constants.ts
    │   ├── helpers.module.scss
    │   ├── helpers.module.scss.d.ts
    │   ├── moderation.ts
    │   ├── picfinder.ts
    │   ├── slots
    │   │   ├── create-slots.tsx
    │   │   ├── use-force-update.ts
    │   │   └── useIsomorphicLayoutEffect.ts
    │   ├── sx-helpers.ts
    │   ├── tags.ts
    │   └── tiptap
    │   │   └── extensions
    │   │       ├── CustomImage.ts
    │   │       ├── Instagram.ts
    │   │       └── StrawPoll.ts
    ├── middleware.ts
    ├── pages
    │   ├── 404.tsx
    │   ├── _app.tsx
    │   ├── _document.tsx
    │   ├── api
    │   │   ├── admin
    │   │   │   ├── add-manual-assignments.ts
    │   │   │   ├── bootstrap.ts
    │   │   │   ├── cache-check.ts
    │   │   │   ├── clean-up-old-notifications.ts
    │   │   │   ├── clear-cache-by-pattern.ts
    │   │   │   ├── creator-comp-payout.ts
    │   │   │   ├── delete-images.ts
    │   │   │   ├── exclude-user-download-history.ts
    │   │   │   ├── fetch-cache-by-pattern.ts
    │   │   │   ├── header-check.ts
    │   │   │   ├── migrate-likes-models.ts
    │   │   │   ├── migrate-likes.ts
    │   │   │   ├── migrate-metrics.ts
    │   │   │   ├── migrate-model-metrics.ts
    │   │   │   ├── orchestrator
    │   │   │   │   ├── index.ts
    │   │   │   │   └── timings.ts
    │   │   │   ├── pay-daily-challenge-users.ts
    │   │   │   ├── permission.ts
    │   │   │   ├── purge-cache-tag.ts
    │   │   │   ├── refresh-sessions.ts
    │   │   │   ├── rescan-images.ts
    │   │   │   ├── send-discount.ts
    │   │   │   ├── temp
    │   │   │   │   ├── delete-bad-posts.ts
    │   │   │   │   ├── delete-deleted-users.ts
    │   │   │   │   ├── holiday-2024-redeliver-notifications.ts
    │   │   │   │   ├── migrate-file-metadata.ts
    │   │   │   │   ├── migrate-image-flags.ts
    │   │   │   │   ├── migrate-image-resources-new.ts
    │   │   │   │   ├── migrate-imageSortAt.ts
    │   │   │   │   ├── migrate-img-metrics.ts
    │   │   │   │   ├── migrate-model-flags.ts
    │   │   │   │   ├── migrate-nsfwLevels.ts
    │   │   │   │   ├── migrate-remove-image-metrics.ts
    │   │   │   │   ├── migrate-remove-post-metrics.ts
    │   │   │   │   ├── migrate-tag-levels.ts
    │   │   │   │   ├── reset-training-model.ts
    │   │   │   │   └── update-bad-posts.ts
    │   │   │   └── test.ts
    │   │   ├── application-error.ts
    │   │   ├── auth
    │   │   │   ├── [...nextauth].ts
    │   │   │   ├── civ-token.ts
    │   │   │   ├── featurebase.ts
    │   │   │   ├── freshdesk.ts
    │   │   │   ├── impersonate.ts
    │   │   │   ├── sync.ts
    │   │   │   └── user-from-token.ts
    │   │   ├── download
    │   │   │   ├── [...key].ts
    │   │   │   ├── attachments
    │   │   │   │   └── [fileId].ts
    │   │   │   ├── models
    │   │   │   │   └── [modelVersionId].ts
    │   │   │   └── vault
    │   │   │   │   └── [vaultItemId].ts
    │   │   ├── generation
    │   │   │   ├── data.ts
    │   │   │   └── history
    │   │   │   │   ├── callback.ts
    │   │   │   │   └── index.ts
    │   │   ├── health.ts
    │   │   ├── image
    │   │   │   ├── [entityType]
    │   │   │   │   └── [entityId].ts
    │   │   │   ├── ingest.ts
    │   │   │   └── ingestion-results.ts
    │   │   ├── import.ts
    │   │   ├── internal
    │   │   │   ├── activity.ts
    │   │   │   ├── add-missing-phash.ts
    │   │   │   ├── assess-image.ts
    │   │   │   ├── essential-objects.ts
    │   │   │   ├── freshdesk-service-tier-refresh.ts
    │   │   │   ├── get-jobs.ts
    │   │   │   ├── get-presigned-url.ts
    │   │   │   ├── heap-dump.ts
    │   │   │   ├── image-delivery
    │   │   │   │   └── [id].ts
    │   │   │   ├── longest-running-query.ts
    │   │   │   ├── redis-sys-usage.ts
    │   │   │   ├── redis-usage.ts
    │   │   │   └── restore-models.ts
    │   │   ├── metrics.ts
    │   │   ├── mod
    │   │   │   ├── action-report.ts
    │   │   │   ├── adjust-tag-level.ts
    │   │   │   ├── ban-user.ts
    │   │   │   ├── clavata-image-process.ts
    │   │   │   ├── clean-up.ts
    │   │   │   ├── compute-tags.ts
    │   │   │   ├── custom-challenge.ts
    │   │   │   ├── daily-challenge
    │   │   │   │   └── cycle.ts
    │   │   │   ├── enable-stripe-connect.ts
    │   │   │   ├── enable-tipalti.ts
    │   │   │   ├── flip-phases.ts
    │   │   │   ├── mark-poi-images-search.ts
    │   │   │   ├── mod-rules.ts
    │   │   │   ├── remove-all-content.ts
    │   │   │   ├── remove-images.ts
    │   │   │   ├── reprocess-buzz-purchases.ts
    │   │   │   ├── reprocess-order.ts
    │   │   │   ├── reprocess-scan.ts
    │   │   │   ├── reset-bank.ts
    │   │   │   ├── reset-vault.ts
    │   │   │   ├── resource-training-v2.ts
    │   │   │   ├── restore-images.ts
    │   │   │   ├── scan-images.ts
    │   │   │   ├── search
    │   │   │   │   ├── articles-update.ts
    │   │   │   │   ├── image-metrics-update.ts
    │   │   │   │   ├── images-update.ts
    │   │   │   │   └── models-update.ts
    │   │   │   ├── send-mod-notification.ts
    │   │   │   ├── set-image-nsfw-level.ts
    │   │   │   ├── set-rewards-eligibility.ts
    │   │   │   ├── unequip-event-cosmetics.ts
    │   │   │   ├── update-image-flag.ts
    │   │   │   ├── update-index.ts
    │   │   │   └── withdraw-from-bank.ts
    │   │   ├── notification
    │   │   │   └── getDetails.ts
    │   │   ├── page-view.ts
    │   │   ├── restricted.ts
    │   │   ├── run
    │   │   │   └── [modelVersionId].ts
    │   │   ├── signal-server
    │   │   │   └── get-token.ts
    │   │   ├── test.ts
    │   │   ├── testing
    │   │   │   ├── daily-challenge.ts
    │   │   │   ├── email
    │   │   │   │   └── [template].ts
    │   │   │   └── new-order.ts
    │   │   ├── trpc
    │   │   │   └── [trpc].ts
    │   │   ├── upload
    │   │   │   ├── abort.ts
    │   │   │   ├── complete.ts
    │   │   │   └── index.ts
    │   │   ├── user
    │   │   │   ├── getHiddenPreferences.ts
    │   │   │   └── settings.ts
    │   │   ├── v1
    │   │   │   ├── content
    │   │   │   │   └── [[...slug]].ts
    │   │   │   ├── creators.ts
    │   │   │   ├── enums.ts
    │   │   │   ├── image-upload
    │   │   │   │   ├── index.ts
    │   │   │   │   └── multipart
    │   │   │   │   │   └── index.ts
    │   │   │   ├── images
    │   │   │   │   └── index.ts
    │   │   │   ├── me.ts
    │   │   │   ├── model-versions
    │   │   │   │   ├── [id].ts
    │   │   │   │   ├── by-hash
    │   │   │   │   │   ├── [hash].ts
    │   │   │   │   │   ├── ids.ts
    │   │   │   │   │   └── index.ts
    │   │   │   │   └── mini
    │   │   │   │   │   └── [id].ts
    │   │   │   ├── models
    │   │   │   │   ├── [id].ts
    │   │   │   │   └── index.ts
    │   │   │   ├── partners
    │   │   │   │   ├── generate-token.ts
    │   │   │   │   └── supported-models.ts
    │   │   │   ├── permissions
    │   │   │   │   └── check.ts
    │   │   │   ├── tags.ts
    │   │   │   ├── users
    │   │   │   │   └── index.ts
    │   │   │   └── vault
    │   │   │   │   ├── all.tsx
    │   │   │   │   ├── check-vault.tsx
    │   │   │   │   ├── get.tsx
    │   │   │   │   └── toggle-version.tsx
    │   │   └── webhooks
    │   │   │   ├── coinbase-onramp.ts
    │   │   │   ├── coinbase.ts
    │   │   │   ├── image-scan-result.ts
    │   │   │   ├── model-scan-result.ts
    │   │   │   ├── nowpayments.ts
    │   │   │   ├── paddle.ts
    │   │   │   ├── resource-training-v2
    │   │   │       └── [modelVersionId].ts
    │   │   │   ├── resource-training.ts
    │   │   │   ├── run-jobs
    │   │   │       └── [[...run]].ts
    │   │   │   ├── scan-result.ts
    │   │   │   ├── stripe-connect.ts
    │   │   │   ├── stripe.ts
    │   │   │   ├── tipalti.ts
    │   │   │   ├── twitch.ts
    │   │   │   └── youtube-upload.ts
    │   ├── articles
    │   │   ├── [id]
    │   │   │   ├── [[...slug]].module.scss
    │   │   │   ├── [[...slug]].tsx
    │   │   │   └── edit.tsx
    │   │   ├── create.tsx
    │   │   └── index.tsx
    │   ├── auctions
    │   │   └── [[...slug]].tsx
    │   ├── bounties
    │   │   ├── [id]
    │   │   │   ├── [[...slug]].module.scss
    │   │   │   ├── [[...slug]].tsx
    │   │   │   ├── edit.tsx
    │   │   │   └── entries
    │   │   │   │   ├── [entryId]
    │   │   │   │       ├── edit.tsx
    │   │   │   │       ├── index.module.scss
    │   │   │   │       └── index.tsx
    │   │   │   │   └── create.tsx
    │   │   ├── create.tsx
    │   │   ├── entries
    │   │   │   └── [entryId].tsx
    │   │   ├── index.module.css
    │   │   └── index.tsx
    │   ├── builds
    │   │   ├── index.module.css
    │   │   └── index.tsx
    │   ├── challenges
    │   │   └── index.tsx
    │   ├── changelog
    │   │   └── index.tsx
    │   ├── claim
    │   │   ├── buzz
    │   │   │   └── [id].tsx
    │   │   └── cosmetic
    │   │   │   └── [id].tsx
    │   ├── clubs
    │   │   ├── [id]
    │   │   │   ├── articles.tsx
    │   │   │   ├── index.tsx
    │   │   │   ├── models.tsx
    │   │   │   ├── posts.tsx
    │   │   │   └── posts
    │   │   │   │   └── [postId]
    │   │   │   │       └── edit.tsx
    │   │   ├── create.tsx
    │   │   ├── index.module.css
    │   │   ├── index.tsx
    │   │   ├── invites
    │   │   │   └── [clubAdminInviteId].tsx
    │   │   └── manage
    │   │   │   └── [id]
    │   │   │       ├── admins.tsx
    │   │   │       ├── index.tsx
    │   │   │       ├── members.tsx
    │   │   │       ├── resources.tsx
    │   │   │       ├── revenue.tsx
    │   │   │       └── tiers.tsx
    │   ├── collections
    │   │   ├── [collectionId]
    │   │   │   ├── index.tsx
    │   │   │   ├── join.tsx
    │   │   │   └── review.tsx
    │   │   ├── index.tsx
    │   │   └── youtube
    │   │   │   └── auth.tsx
    │   ├── comments
    │   │   └── v2
    │   │   │   └── [id].tsx
    │   ├── content
    │   │   └── [[...slug]].tsx
    │   ├── creator-program
    │   │   ├── index.module.scss
    │   │   └── index.tsx
    │   ├── discord
    │   │   └── link-role.tsx
    │   ├── events
    │   │   ├── [slug].module.scss
    │   │   ├── [slug].tsx
    │   │   └── index.tsx
    │   ├── games
    │   │   ├── chopped.tsx
    │   │   └── knights-of-new-order.tsx
    │   ├── generate
    │   │   └── index.tsx
    │   ├── home
    │   │   ├── index.module.css
    │   │   └── index.tsx
    │   ├── images
    │   │   ├── [imageId].tsx
    │   │   └── index.tsx
    │   ├── index.tsx
    │   ├── intent
    │   │   ├── avatar.tsx
    │   │   └── post.tsx
    │   ├── leaderboard
    │   │   ├── [id].module.css
    │   │   └── [id].tsx
    │   ├── login
    │   │   ├── index.tsx
    │   │   └── token.tsx
    │   ├── model-versions
    │   │   └── [id].tsx
    │   ├── models
    │   │   ├── [id]
    │   │   │   ├── [[...slug]].module.scss
    │   │   │   ├── [[...slug]].tsx
    │   │   │   ├── edit.tsx
    │   │   │   ├── model-versions
    │   │   │   │   ├── [versionId]
    │   │   │   │   │   ├── edit.tsx
    │   │   │   │   │   └── wizard.tsx
    │   │   │   │   └── create.tsx
    │   │   │   ├── review.module.scss
    │   │   │   ├── reviews.tsx
    │   │   │   └── wizard.tsx
    │   │   ├── create.tsx
    │   │   ├── index.tsx
    │   │   ├── license
    │   │   │   └── [versionId].tsx
    │   │   └── train.tsx
    │   ├── moderator
    │   │   ├── announcements.tsx
    │   │   ├── aspect-ratio-explorer.tsx
    │   │   ├── auditor.tsx
    │   │   ├── blocklists.tsx
    │   │   ├── buzz-withdrawal-requests.tsx
    │   │   ├── contests
    │   │   │   ├── bans.tsx
    │   │   │   └── index.tsx
    │   │   ├── cosmetic-store
    │   │   │   ├── cosmetics
    │   │   │   │   └── index.tsx
    │   │   │   ├── index.tsx
    │   │   │   ├── products
    │   │   │   │   ├── [id]
    │   │   │   │   │   └── edit.tsx
    │   │   │   │   ├── create.tsx
    │   │   │   │   └── index.tsx
    │   │   │   └── sections
    │   │   │   │   ├── [id]
    │   │   │   │       └── edit.tsx
    │   │   │   │   ├── create.tsx
    │   │   │   │   └── index.tsx
    │   │   ├── csam
    │   │   │   ├── [userId].tsx
    │   │   │   └── index.tsx
    │   │   ├── duplicate-hashes.tsx
    │   │   ├── generation.tsx
    │   │   ├── image-rating-review.tsx
    │   │   ├── image-tags.tsx
    │   │   ├── images.tsx
    │   │   ├── images
    │   │   │   └── to-ingest.tsx
    │   │   ├── link-demo.tsx
    │   │   ├── models
    │   │   │   └── index.tsx
    │   │   ├── paddle
    │   │   │   ├── adjustments.tsx
    │   │   │   └── customer
    │   │   │   │   └── [paddleCustomerId].tsx
    │   │   ├── reports.tsx
    │   │   ├── research
    │   │   │   └── rater-sanity.tsx
    │   │   ├── review
    │   │   │   └── training-data
    │   │   │   │   ├── [versionId].tsx
    │   │   │   │   └── index.tsx
    │   │   ├── rewards
    │   │   │   ├── create.tsx
    │   │   │   ├── index.tsx
    │   │   │   └── update
    │   │   │   │   └── [id].tsx
    │   │   ├── tags.tsx
    │   │   └── test.tsx
    │   ├── newsroom
    │   │   ├── index.module.scss
    │   │   └── index.tsx
    │   ├── payment
    │   │   ├── coinbase.tsx
    │   │   ├── nowpayments.tsx
    │   │   ├── paddle.tsx
    │   │   ├── product
    │   │   │   └── [...productId].tsx
    │   │   └── success.tsx
    │   ├── posts
    │   │   ├── [postId]
    │   │   │   ├── [[...postSlug]].tsx
    │   │   │   └── edit.tsx
    │   │   ├── create.tsx
    │   │   └── index.tsx
    │   ├── pricing
    │   │   ├── index.module.scss
    │   │   └── index.tsx
    │   ├── product
    │   │   ├── link.tsx
    │   │   ├── odor.tsx
    │   │   └── vault.tsx
    │   ├── purchase
    │   │   └── buzz.tsx
    │   ├── questions
    │   │   ├── [questionId]
    │   │   │   └── [[...questionDetailSlug]].tsx
    │   │   ├── create.tsx
    │   │   └── index.tsx
    │   ├── redirect.tsx
    │   ├── research
    │   │   └── rater.tsx
    │   ├── reviews
    │   │   └── [reviewId].tsx
    │   ├── safety
    │   │   ├── index.module.scss
    │   │   └── index.tsx
    │   ├── search
    │   │   ├── articles.tsx
    │   │   ├── bounties.tsx
    │   │   ├── collections.tsx
    │   │   ├── images.tsx
    │   │   ├── models.tsx
    │   │   ├── tools.tsx
    │   │   └── users.tsx
    │   ├── shop
    │   │   └── index.tsx
    │   ├── sitemap-articles.xml
    │   │   └── index.tsx
    │   ├── sitemap-models.xml
    │   │   └── index.tsx
    │   ├── sitemap-questions.xml
    │   │   └── index.tsx
    │   ├── sitemap-tools.xml
    │   │   └── index.tsx
    │   ├── studio
    │   │   └── confirm.tsx
    │   ├── subscribe
    │   │   └── [plan].tsx
    │   ├── support
    │   │   └── index.tsx
    │   ├── tag
    │   │   ├── [tagname].module.scss
    │   │   └── [tagname].tsx
    │   ├── testing
    │   │   ├── clavata-test.tsx
    │   │   ├── demo.tsx
    │   │   ├── metadata-test.tsx
    │   │   └── testing-login.tsx
    │   ├── tipalti
    │   │   └── setup.tsx
    │   ├── tools
    │   │   ├── [slug].tsx
    │   │   └── index.tsx
    │   ├── user
    │   │   ├── [username]
    │   │   │   ├── [list].module.scss
    │   │   │   ├── [list].tsx
    │   │   │   ├── articles.tsx
    │   │   │   ├── collections.tsx
    │   │   │   ├── images.tsx
    │   │   │   ├── index.tsx
    │   │   │   ├── manage-categories.module.scss
    │   │   │   ├── manage-categories.tsx
    │   │   │   ├── models.module.scss
    │   │   │   ├── models.tsx
    │   │   │   ├── posts.tsx
    │   │   │   └── videos.tsx
    │   │   ├── account.tsx
    │   │   ├── buzz-dashboard.tsx
    │   │   ├── downloads.tsx
    │   │   ├── earn-potential.tsx
    │   │   ├── membership.module.css
    │   │   ├── membership.tsx
    │   │   ├── notifications.tsx
    │   │   ├── pool-estimate.tsx
    │   │   ├── stripe-connect
    │   │   │   └── onboard.tsx
    │   │   ├── transactions.tsx
    │   │   ├── vault.module.scss
    │   │   └── vault.tsx
    │   └── videos
    │   │   └── index.tsx
    ├── providers
    │   ├── ActivityReportingProvider.tsx
    │   ├── AppProvider.tsx
    │   ├── BrowserSettingsProvider.tsx
    │   ├── BrowsingSettingsAddonsProvider.tsx
    │   ├── CookiesProvider.tsx
    │   ├── CustomModalsProvider.tsx
    │   ├── FeatureFlagsProvider.tsx
    │   ├── FiltersProvider.tsx
    │   ├── GoogleAnalytics.tsx
    │   ├── IsClientProvider.tsx
    │   ├── PaddleProvider.tsx
    │   ├── PaypalProvider.tsx
    │   ├── StripeProvider.tsx
    │   └── ThemeProvider.tsx
    ├── server
    │   ├── clickhouse
    │   │   └── client.ts
    │   ├── cloudflare
    │   │   └── client.ts
    │   ├── coinbase
    │   │   ├── coinbase-api.ts
    │   │   ├── coinbase.ts
    │   │   └── onramp.ts
    │   ├── common
    │   │   ├── constants.ts
    │   │   ├── enums.ts
    │   │   ├── model-helpers.ts
    │   │   ├── moderation-helpers.ts
    │   │   └── user-helpers.ts
    │   ├── controllers
    │   │   ├── account.controller.ts
    │   │   ├── announcement.controller.ts
    │   │   ├── answer.controller.ts
    │   │   ├── api-key.controller.ts
    │   │   ├── article.controller.ts
    │   │   ├── bounty.controller.ts
    │   │   ├── bountyEntry.controller.ts
    │   │   ├── buzz-withdrawal-request.controller.ts
    │   │   ├── buzz.controller.ts
    │   │   ├── chat.controller.ts
    │   │   ├── club.controller.ts
    │   │   ├── clubAdmin.controller.ts
    │   │   ├── clubMembership.controller.ts
    │   │   ├── clubPost.controller.ts
    │   │   ├── coinbase.controller.ts
    │   │   ├── collection.controller.ts
    │   │   ├── comment.controller.ts
    │   │   ├── commentv2.controller.ts
    │   │   ├── common.controller.ts
    │   │   ├── csam.controller.ts
    │   │   ├── download.controller.ts
    │   │   ├── home-block.controller.ts
    │   │   ├── image.controller.ts
    │   │   ├── model-file.controller.ts
    │   │   ├── model-version.controller.ts
    │   │   ├── model.controller.ts
    │   │   ├── notification.controller.ts
    │   │   ├── nowpayments.controller.ts
    │   │   ├── orchestrator.controller.ts
    │   │   ├── paddle.controller.ts
    │   │   ├── paypal.controller.ts
    │   │   ├── post.controller.ts
    │   │   ├── question.controller.ts
    │   │   ├── reaction.controller.ts
    │   │   ├── recommenders.controller.ts
    │   │   ├── report.controller.ts
    │   │   ├── resourceReview.controller.ts
    │   │   ├── signals.controller.ts
    │   │   ├── stripe.controller.ts
    │   │   ├── subscriptions.controller.ts
    │   │   ├── tag.controller.ts
    │   │   ├── training.controller.ts
    │   │   ├── user-link.controller.ts
    │   │   ├── user-payment-configuration.controller.ts
    │   │   ├── user-profile.controller.ts
    │   │   ├── user-referral-code.controller.ts
    │   │   └── user.controller.ts
    │   ├── createContext.ts
    │   ├── db
    │   │   ├── client.ts
    │   │   ├── db-helpers.ts
    │   │   ├── db-lag-helpers.ts
    │   │   ├── notifDb.ts
    │   │   └── pgDb.ts
    │   ├── email
    │   │   ├── client.ts
    │   │   └── templates
    │   │   │   ├── base.email.ts
    │   │   │   ├── bounties
    │   │   │       ├── bountyAutomaticallyAwarded.email.ts
    │   │   │       ├── bountyExpired.email.ts
    │   │   │       ├── bountyExpiredReminder.email.ts
    │   │   │       └── bountyRefunded.email.ts
    │   │   │   ├── index.ts
    │   │   │   ├── paddleCancellation.email.ts
    │   │   │   ├── subscriptionRenewalReminder.email.ts
    │   │   │   ├── trainingComplete.email.ts
    │   │   │   ├── trainingFail.email.ts
    │   │   │   ├── util.ts
    │   │   │   └── verification.email.ts
    │   ├── events
    │   │   ├── base.event.ts
    │   │   ├── holiday2023.event.ts
    │   │   ├── holiday2024.event.ts
    │   │   └── index.ts
    │   ├── games
    │   │   ├── daily-challenge
    │   │   │   ├── daily-challenge.utils.ts
    │   │   │   └── generative-content.ts
    │   │   └── new-order
    │   │   │   └── utils.ts
    │   ├── http
    │   │   ├── coinbase
    │   │   │   ├── coinbase.caller.ts
    │   │   │   └── coinbase.schema.ts
    │   │   ├── httpCaller.ts
    │   │   ├── ncmec
    │   │   │   ├── ncmec.caller.ts
    │   │   │   └── ncmec.schema.ts
    │   │   ├── nowpayments
    │   │   │   ├── nowpayments.caller.ts
    │   │   │   └── nowpayments.schema.ts
    │   │   ├── orchestrator
    │   │   │   ├── orchestrator.caller.ts
    │   │   │   └── orchestrator.types.ts
    │   │   ├── recommenders
    │   │   │   └── recommenders.caller.ts
    │   │   └── tipalti
    │   │   │   ├── tipalti.caller.ts
    │   │   │   └── tipalti.schema.ts
    │   ├── importers
    │   │   ├── huggingFaceAuthor.ts
    │   │   ├── huggingFaceModel.ts
    │   │   ├── importRouter.ts
    │   │   └── importer.ts
    │   ├── integrations
    │   │   ├── beehiiv.ts
    │   │   ├── clavata.ts
    │   │   ├── discord.ts
    │   │   ├── featurebase.ts
    │   │   ├── freshdesk.ts
    │   │   ├── integration-token.ts
    │   │   └── moderation.ts
    │   ├── jobs
    │   │   ├── add-on-demand-run-strategies.ts
    │   │   ├── apply-contest-tags.ts
    │   │   ├── apply-discord-roles.ts
    │   │   ├── apply-nsfw-baseline.ts
    │   │   ├── apply-tag-rules.ts
    │   │   ├── apply-voted-tags.ts
    │   │   ├── cache-cleanup.ts
    │   │   ├── check-processing-resource-training-v2.ts
    │   │   ├── clean-image-resources.ts
    │   │   ├── clear-vault-items.ts
    │   │   ├── collection-contest-vimeo-upload.ts
    │   │   ├── collection-contest-youtube-upload.ts
    │   │   ├── collection-game-processing.ts
    │   │   ├── collection-item-random-id.ts
    │   │   ├── collection-mode-end.ts
    │   │   ├── confirm-image-existence.ts
    │   │   ├── confirm-mutes.ts
    │   │   ├── count-review-images.ts
    │   │   ├── creators-program-jobs.ts
    │   │   ├── crypto.ts
    │   │   ├── daily-challenge-processing.ts
    │   │   ├── delete-old-training-data.ts
    │   │   ├── deliver-annual-sub-buzz.ts
    │   │   ├── deliver-creator-compensation.ts
    │   │   ├── deliver-leaderboard-cosmetics.ts
    │   │   ├── deliver-purchased-cosmetics.ts
    │   │   ├── dummy-job.ts
    │   │   ├── entity-moderation.ts
    │   │   ├── event-engine-work.ts
    │   │   ├── full-image-existence.ts
    │   │   ├── handle-auctions.ts
    │   │   ├── image-ingestion.ts
    │   │   ├── images-created-events.ts
    │   │   ├── job-queue.ts
    │   │   ├── job.ts
    │   │   ├── new-order-jobs.ts
    │   │   ├── next-auth-cleanup.ts
    │   │   ├── prepare-bounties.ts
    │   │   ├── prepare-leaderboard.ts
    │   │   ├── process-club-membership-recurring-payments.ts
    │   │   ├── process-creator-program-image-generation-rewards.ts
    │   │   ├── process-csam.ts
    │   │   ├── process-ending-early-access.ts
    │   │   ├── process-imports.ts
    │   │   ├── process-rewards.ts
    │   │   ├── process-scheduled-publishing.ts
    │   │   ├── process-subscriptions-requiring-renewal.ts
    │   │   ├── process-vault-items.ts
    │   │   ├── push-discord-metadata.ts
    │   │   ├── refresh-auction-cache.ts
    │   │   ├── remove-old-drafts.ts
    │   │   ├── reset-image-view-counts.ts
    │   │   ├── reset-to-draft-without-requirements.ts
    │   │   ├── resource-generation-availability.ts
    │   │   ├── retroactive-hash-blocking.ts
    │   │   ├── rewards-abuse-prevention.ts
    │   │   ├── rewards-ad-impressions.ts
    │   │   ├── scan-files.ts
    │   │   ├── search-index-sync.ts
    │   │   ├── send-collection-notifications.ts
    │   │   ├── send-notifications.ts
    │   │   ├── send-webhooks.ts
    │   │   ├── temp-set-missing-nsfw-level.ts
    │   │   ├── update-metrics.ts
    │   │   ├── update-model-version-nsfw-levels.ts
    │   │   ├── update-user-score.ts
    │   │   └── user-deleted-cleanup.ts
    │   ├── logging
    │   │   └── client.ts
    │   ├── meilisearch
    │   │   ├── client.ts
    │   │   └── util.ts
    │   ├── metrics
    │   │   ├── answer.metrics.ts
    │   │   ├── article.metrics.ts
    │   │   ├── base.metrics.ts
    │   │   ├── bounty.metrics.ts
    │   │   ├── bountyEntry.metrics.ts
    │   │   ├── club.metrics.ts
    │   │   ├── clubPost.metrics.ts
    │   │   ├── collection.metrics.ts
    │   │   ├── image.metrics.ts
    │   │   ├── index.ts
    │   │   ├── metric-helpers.ts
    │   │   ├── model.metrics.ts
    │   │   ├── post.metrics.ts
    │   │   ├── question.metrics.ts
    │   │   ├── tag.metrics.ts
    │   │   └── user.metrics.ts
    │   ├── middleware.trpc.ts
    │   ├── middleware
    │   │   ├── api-cache.middleware.ts
    │   │   ├── index.ts
    │   │   ├── middleware-utils.ts
    │   │   ├── redirects.middleware.ts
    │   │   └── route-guards.middleware.ts
    │   ├── notifications
    │   │   ├── article.notifications.ts
    │   │   ├── auction.notifications.ts
    │   │   ├── base.notifications.ts
    │   │   ├── bounty.notifications.ts
    │   │   ├── buzz.notifications.ts
    │   │   ├── challenge.notifications.ts
    │   │   ├── club.notifications.ts
    │   │   ├── collection.notifications.ts
    │   │   ├── comment.notifications.ts
    │   │   ├── cosmetic-shop.notifications.ts
    │   │   ├── creators-program.notifications.ts
    │   │   ├── detail-fetchers
    │   │   │   ├── article.detail-fetcher.ts
    │   │   │   ├── base.detail-fetcher.ts
    │   │   │   ├── buzz.detail-fetcher.ts
    │   │   │   ├── comment.detail-fetcher.ts
    │   │   │   ├── follow.detail-fetcher.ts
    │   │   │   ├── index.ts
    │   │   │   ├── model.detail-fetcher.ts
    │   │   │   └── review.detail-fetcher.ts
    │   │   ├── featured.notifications.ts
    │   │   ├── follow.notifications.ts
    │   │   ├── image.notifications.ts
    │   │   ├── mention.notifications.ts
    │   │   ├── model.notifications.ts
    │   │   ├── new-order.notifications.ts
    │   │   ├── notification-cache.ts
    │   │   ├── reaction.notifications.ts
    │   │   ├── report.notifications.ts
    │   │   ├── review.notifications.ts
    │   │   ├── system.notifications.ts
    │   │   ├── unpublish.notifications.ts
    │   │   ├── user-journey.notifications.ts
    │   │   └── utils.notifications.ts
    │   ├── orchestrator
    │   │   ├── generation
    │   │   │   ├── generation.config.ts
    │   │   │   └── generation.schema.ts
    │   │   ├── haiper
    │   │   │   └── haiper.schema.ts
    │   │   ├── hunyuan
    │   │   │   └── hunyuan.schema.ts
    │   │   ├── infrastructure
    │   │   │   ├── GenerationConfig.ts
    │   │   │   ├── OrchestratorSchema.ts
    │   │   │   ├── base.enums.ts
    │   │   │   ├── base.schema.ts
    │   │   │   └── base.utils.ts
    │   │   ├── kling
    │   │   │   └── kling.schema.ts
    │   │   ├── lightricks
    │   │   │   └── lightricks.schema.ts
    │   │   ├── minimax
    │   │   │   └── minimax.schema.ts
    │   │   ├── mochi
    │   │   │   └── mochi.schema.ts
    │   │   ├── veo3
    │   │   │   └── veo3.schema.ts
    │   │   ├── video-enhancement
    │   │   │   ├── video-enhancement.schema.ts
    │   │   │   └── video-enhancement.ts
    │   │   ├── vidu
    │   │   │   └── vidu.schema.ts
    │   │   └── wan
    │   │   │   └── wan.schema.ts
    │   ├── paddle
    │   │   └── client.ts
    │   ├── prom
    │   │   └── client.ts
    │   ├── recaptcha
    │   │   └── client.ts
    │   ├── redis
    │   │   ├── caches.ts
    │   │   ├── client.ts
    │   │   └── queues.ts
    │   ├── rewards
    │   │   ├── active
    │   │   │   ├── adWatched.reward.ts
    │   │   │   ├── dailyBoost.reward.ts
    │   │   │   ├── encouragement.reward.ts
    │   │   │   ├── firstDailyFollow.reward.ts
    │   │   │   ├── firstDailyPost.reward.ts
    │   │   │   ├── generatorFeedback.reward.ts
    │   │   │   ├── refereeCreated.reward.ts
    │   │   │   └── userReferred.reward.ts
    │   │   ├── base.reward.ts
    │   │   ├── buzz-events-cache.ts
    │   │   ├── index.ts
    │   │   └── passive
    │   │   │   ├── collectedContent.reward.ts
    │   │   │   ├── goodContent.reward.ts
    │   │   │   ├── imagePostedToModel.reward.ts
    │   │   │   └── reportAccepted.reward.ts
    │   ├── routers
    │   │   ├── account.router.ts
    │   │   ├── announcement.router.ts
    │   │   ├── answer.router.ts
    │   │   ├── apiKey.router.ts
    │   │   ├── article.router.ts
    │   │   ├── auction.router.ts
    │   │   ├── auth.router.ts
    │   │   ├── base.router.ts
    │   │   ├── blocklist.router.ts
    │   │   ├── bounty.router.ts
    │   │   ├── bountyEntry.router.ts
    │   │   ├── build-guide.router.ts
    │   │   ├── buzz-withdrawal-request.router.ts
    │   │   ├── buzz.router.ts
    │   │   ├── changelog.router.ts
    │   │   ├── chat.router.ts
    │   │   ├── club.router.ts
    │   │   ├── clubAdmin.router.ts
    │   │   ├── clubMembership.router.ts
    │   │   ├── clubPost.router.ts
    │   │   ├── coinbase.router.ts
    │   │   ├── collection.router.ts
    │   │   ├── comment.router.ts
    │   │   ├── commentv2.router.ts
    │   │   ├── common.router.ts
    │   │   ├── content.router.ts
    │   │   ├── cosmetic-shop.router.ts
    │   │   ├── cosmetic.router.ts
    │   │   ├── creator-program.router.ts
    │   │   ├── csam.router.ts
    │   │   ├── daily-challenge.router.ts
    │   │   ├── donation-goal.router.ts
    │   │   ├── download.router.ts
    │   │   ├── entity-collaborator.router.ts
    │   │   ├── event.router.ts
    │   │   ├── games.router.ts
    │   │   ├── generation.router.ts
    │   │   ├── hidden-preferences.router.ts
    │   │   ├── home-block.router.ts
    │   │   ├── image.router.ts
    │   │   ├── index.ts
    │   │   ├── integration.router.ts
    │   │   ├── leaderboard.router.ts
    │   │   ├── model-file.router.ts
    │   │   ├── model-version.router.ts
    │   │   ├── model.router.ts
    │   │   ├── moderator
    │   │   │   └── index.ts
    │   │   ├── newsletter.router.ts
    │   │   ├── notification.router.ts
    │   │   ├── nowpayments.router.ts
    │   │   ├── orchestrator.router.ts
    │   │   ├── paddle.router.ts
    │   │   ├── partner.router.ts
    │   │   ├── paypal.router.ts
    │   │   ├── post.router.ts
    │   │   ├── purchasable-reward.router.ts
    │   │   ├── question.router.ts
    │   │   ├── reaction.router.ts
    │   │   ├── recommenders.router.ts
    │   │   ├── redeemableCode.router.ts
    │   │   ├── report.router.ts
    │   │   ├── research.router.ts
    │   │   ├── resourceReview.router.ts
    │   │   ├── signals.router.ts
    │   │   ├── stripe.router.ts
    │   │   ├── subscriptions.router.ts
    │   │   ├── system.router.ts
    │   │   ├── tag.router.ts
    │   │   ├── technique.router.ts
    │   │   ├── tool.router.ts
    │   │   ├── track.router.ts
    │   │   ├── training.router.ts
    │   │   ├── user-link.router.ts
    │   │   ├── user-payment-configuration.router.ts
    │   │   ├── user-profile.router.ts
    │   │   ├── user-referral-code.router.ts
    │   │   ├── user.router.ts
    │   │   ├── vault.router.ts
    │   │   └── vimeo.router.ts
    │   ├── schema
    │   │   ├── announcement.schema.ts
    │   │   ├── answer.schema.ts
    │   │   ├── api-key.schema.ts
    │   │   ├── article.schema.ts
    │   │   ├── auction.schema.ts
    │   │   ├── base.schema.ts
    │   │   ├── blocklist.schema.ts
    │   │   ├── bounty-entry.schema.ts
    │   │   ├── bounty.schema.ts
    │   │   ├── build-guide.schema.ts
    │   │   ├── buzz-withdrawal-request.schema.ts
    │   │   ├── buzz.schema.ts
    │   │   ├── changelog.schema.ts
    │   │   ├── chat.schema.ts
    │   │   ├── civToken.schema.ts
    │   │   ├── club.schema.ts
    │   │   ├── clubAdmin.schema.ts
    │   │   ├── clubMembership.schema.ts
    │   │   ├── coinbase.schema.ts
    │   │   ├── collection.schema.ts
    │   │   ├── comment.schema.ts
    │   │   ├── commentv2.schema.ts
    │   │   ├── cosmetic-shop.schema.ts
    │   │   ├── cosmetic.schema.ts
    │   │   ├── creator-program.schema.ts
    │   │   ├── csam.schema.ts
    │   │   ├── donation-goal.schema.ts
    │   │   ├── download.schema.ts
    │   │   ├── entity-collaborator.schema.ts
    │   │   ├── event.schema.ts
    │   │   ├── file.schema.ts
    │   │   ├── games
    │   │   │   └── new-order.schema.ts
    │   │   ├── generation.schema.ts
    │   │   ├── home-block.schema.ts
    │   │   ├── image.schema.ts
    │   │   ├── integration.schema.ts
    │   │   ├── leaderboard.schema.ts
    │   │   ├── media.schema.ts
    │   │   ├── model-file.schema.ts
    │   │   ├── model-flag.schema.ts
    │   │   ├── model-version.schema.ts
    │   │   ├── model.schema.ts
    │   │   ├── newsletter.schema.ts
    │   │   ├── notification.schema.ts
    │   │   ├── nowpayments.schema.ts
    │   │   ├── orchestrator
    │   │   │   ├── models.schema.ts
    │   │   │   ├── textToImage.schema.ts
    │   │   │   ├── training.schema.ts
    │   │   │   └── workflows.schema.ts
    │   │   ├── paddle.schema.ts
    │   │   ├── paypal.schema.ts
    │   │   ├── post.schema.ts
    │   │   ├── purchasable-reward.schema.ts
    │   │   ├── question.schema.ts
    │   │   ├── reaction.schema.ts
    │   │   ├── recommenders.schema.ts
    │   │   ├── redeemableCode.schema.ts
    │   │   ├── report.schema.ts
    │   │   ├── resourceReview.schema.ts
    │   │   ├── signals.schema.ts
    │   │   ├── stripe.schema.ts
    │   │   ├── subscriptions.schema.ts
    │   │   ├── tag.schema.ts
    │   │   ├── tool.schema.ts
    │   │   ├── track.schema.ts
    │   │   ├── training.schema.ts
    │   │   ├── user-link.schema.ts
    │   │   ├── user-payment-configuration.schema.ts
    │   │   ├── user-preferences.schema.ts
    │   │   ├── user-profile.schema.ts
    │   │   ├── user-referral-code.schema.ts
    │   │   ├── user.schema.ts
    │   │   ├── utils.schema.ts
    │   │   └── vault.schema.ts
    │   ├── search-index
    │   │   ├── SearchIndexUpdate.ts
    │   │   ├── articles.search-index.ts
    │   │   ├── base.search-index.ts
    │   │   ├── bounties.search-index.ts
    │   │   ├── collections.search-index.ts
    │   │   ├── images.search-index.ts
    │   │   ├── index.ts
    │   │   ├── metrics-images--update-metrics.search-index.ts
    │   │   ├── metrics-images.search-index.ts
    │   │   ├── models.search-index.ts
    │   │   ├── tools.search-index.ts
    │   │   ├── users.search-index.ts
    │   │   └── utils
    │   │   │   └── taskQueue.ts
    │   ├── selectors
    │   │   ├── article.selector.ts
    │   │   ├── bounty.selector.ts
    │   │   ├── buzzWithdrawalRequest.select.ts
    │   │   ├── chat.selector.ts
    │   │   ├── club.selector.ts
    │   │   ├── collection.selector.ts
    │   │   ├── comment.selector.ts
    │   │   ├── commentv2.selector.ts
    │   │   ├── cosmetic-shop.selector.ts
    │   │   ├── cosmetic.selector.ts
    │   │   ├── generation.selector.ts
    │   │   ├── image.selector.ts
    │   │   ├── imagev2.selector.ts
    │   │   ├── model.selector.ts
    │   │   ├── modelFile.selector.ts
    │   │   ├── modelHash.selector.ts
    │   │   ├── modelVersion.selector.ts
    │   │   ├── post.selector.ts
    │   │   ├── purchasableReward.selector.ts
    │   │   ├── reaction.selector.ts
    │   │   ├── resourceReview.selector.ts
    │   │   ├── tag.selector.ts
    │   │   └── user.selector.ts
    │   ├── services
    │   │   ├── account.service.ts
    │   │   ├── ai
    │   │   │   └── openai.ts
    │   │   ├── announcement.service.ts
    │   │   ├── answer.service.ts
    │   │   ├── api-key.service.ts
    │   │   ├── article.service.ts
    │   │   ├── auction.service.ts
    │   │   ├── blocklist.service.ts
    │   │   ├── bounty.service.ts
    │   │   ├── bountyBenefactor.service.ts
    │   │   ├── bountyEntry.service.ts
    │   │   ├── build-guide.services.ts
    │   │   ├── buzz-withdrawal-request.service.ts
    │   │   ├── buzz.service.ts
    │   │   ├── changelog.service.ts
    │   │   ├── chat.service.ts
    │   │   ├── club.service.ts
    │   │   ├── clubAdmin.service.ts
    │   │   ├── clubMembership.service.ts
    │   │   ├── clubPost.service.ts
    │   │   ├── coinbase.service.ts
    │   │   ├── collection.service.ts
    │   │   ├── comment.service.ts
    │   │   ├── commentsv2.service.ts
    │   │   ├── common.service.ts
    │   │   ├── content.service.ts
    │   │   ├── cosmetic-shop.service.ts
    │   │   ├── cosmetic.service.ts
    │   │   ├── creator-program.service.ts
    │   │   ├── csam.service.ts
    │   │   ├── daily-challenge.service.ts
    │   │   ├── donation-goal.service.ts
    │   │   ├── download.service.ts
    │   │   ├── entity-collaborator.service.ts
    │   │   ├── event.service.ts
    │   │   ├── feature-flags.service.ts
    │   │   ├── file.service.ts
    │   │   ├── games
    │   │   │   └── new-order.service.ts
    │   │   ├── generation
    │   │   │   ├── engines.ts
    │   │   │   └── generation.service.ts
    │   │   ├── home-block-cache.service.ts
    │   │   ├── home-block.service.ts
    │   │   ├── image-flag.service.ts
    │   │   ├── image-review.service.ts
    │   │   ├── image.service.ts
    │   │   ├── integration.service.ts
    │   │   ├── job-queue.service.ts
    │   │   ├── leaderboard.service.ts
    │   │   ├── model-file.service.ts
    │   │   ├── model-flag.service.ts
    │   │   ├── model-version.service.ts
    │   │   ├── model.service.ts
    │   │   ├── moderator.service.ts
    │   │   ├── newsletter.service.ts
    │   │   ├── notification.service.ts
    │   │   ├── nowpayments.service.ts
    │   │   ├── nsfwLevels.service.ts
    │   │   ├── orchestrator
    │   │   │   ├── blob.ts
    │   │   │   ├── comfy
    │   │   │   │   ├── comfy.ts
    │   │   │   │   ├── comfy.types.ts
    │   │   │   │   └── comfy.utils.ts
    │   │   │   ├── common.ts
    │   │   │   ├── experimental.ts
    │   │   │   ├── imageGen
    │   │   │   │   └── imageGen.ts
    │   │   │   ├── imageUpload.ts
    │   │   │   ├── index.ts
    │   │   │   ├── models.ts
    │   │   │   ├── orchestrator.schema.ts
    │   │   │   ├── orchestrator.service.ts
    │   │   │   ├── textToImage
    │   │   │   │   └── textToImage.ts
    │   │   │   ├── training
    │   │   │   │   └── training.orch.ts
    │   │   │   ├── types.ts
    │   │   │   ├── videoEnhancement.ts
    │   │   │   ├── workflowSteps.ts
    │   │   │   └── workflows.ts
    │   │   ├── paddle.service.ts
    │   │   ├── partner.service.ts
    │   │   ├── paypal.service.ts
    │   │   ├── post.service.ts
    │   │   ├── purchasable-reward.service.ts
    │   │   ├── question.service.ts
    │   │   ├── reaction.service.ts
    │   │   ├── recommenders.service.ts
    │   │   ├── redeemableCode.service.ts
    │   │   ├── report.service.ts
    │   │   ├── resource-override.service.ts
    │   │   ├── resourceReview.service.ts
    │   │   ├── signals.service.ts
    │   │   ├── stripe.service.ts
    │   │   ├── subscriptions.service.ts
    │   │   ├── system-cache.ts
    │   │   ├── tag.service.ts
    │   │   ├── tagsOnImageNew.service.ts
    │   │   ├── technique.service.ts
    │   │   ├── tool.service.ts
    │   │   ├── training.service.ts
    │   │   ├── user-cache.service.ts
    │   │   ├── user-link.service.ts
    │   │   ├── user-payment-configuration.service.ts
    │   │   ├── user-preferences.service.ts
    │   │   ├── user-profile.service.ts
    │   │   ├── user-referral-code.service.ts
    │   │   ├── user.service.ts
    │   │   ├── util.service.ts
    │   │   └── vault.service.ts
    │   ├── trpc.ts
    │   ├── utils
    │   │   ├── audio-utils.ts
    │   │   ├── buzz-helpers.ts
    │   │   ├── cache-helpers.ts
    │   │   ├── chat.ts
    │   │   ├── concurrency-helpers.ts
    │   │   ├── cookie-encryption.ts
    │   │   ├── creator-program.utils.ts
    │   │   ├── early-access-helpers.ts
    │   │   ├── email-domain-blocklist.json
    │   │   ├── endpoint-helpers.ts
    │   │   ├── enum-helpers.ts
    │   │   ├── errorHandling.ts
    │   │   ├── fingerprint.ts
    │   │   ├── game-helpers.ts
    │   │   ├── get-server-auth-session.ts
    │   │   ├── get-server-stripe.ts
    │   │   ├── key-generator.ts
    │   │   ├── link-blocklist.ts
    │   │   ├── metric-helpers.ts
    │   │   ├── mod-rules.ts
    │   │   ├── model-helpers.ts
    │   │   ├── pagination-helpers.ts
    │   │   ├── pdf-helpers.tsx
    │   │   ├── rate-limiting.ts
    │   │   ├── react-templates
    │   │   │   ├── ModelVersionDetailsPdfTemplate.tsx
    │   │   │   └── fonts
    │   │   │   │   ├── Montserrat-Bold.ttf
    │   │   │   │   └── Montserrat-Regular.ttf
    │   │   ├── request-helpers.ts
    │   │   ├── research-utils.ts
    │   │   ├── server-side-helpers.ts
    │   │   ├── session-helpers.ts
    │   │   ├── tag-rules.ts
    │   │   └── url-helpers.ts
    │   ├── vimeo
    │   │   └── client.ts
    │   ├── webhooks
    │   │   ├── article.webhooks.ts
    │   │   ├── base.webhooks.ts
    │   │   ├── bounty.webhooks.ts
    │   │   ├── daily-challenge.webhooks.ts
    │   │   ├── model.webooks.ts
    │   │   ├── moderator.webhooks.ts
    │   │   ├── research.webhooks.ts
    │   │   ├── training-moderation.webhooks.ts
    │   │   └── utils.webhooks.ts
    │   └── youtube
    │   │   └── client.ts
    ├── shared
    │   ├── constants
    │   │   ├── browsingLevel.constants.ts
    │   │   ├── creator-program.constants.ts
    │   │   ├── generation.constants.ts
    │   │   └── mime-types.ts
    │   ├── orchestrator
    │   │   ├── ImageGen
    │   │   │   ├── ImageGenConfig.ts
    │   │   │   ├── flux1-kontext.config.ts
    │   │   │   ├── google.config.ts
    │   │   │   ├── imageGen.config.ts
    │   │   │   └── openai.config.ts
    │   │   └── hidream.config.ts
    │   ├── types
    │   │   ├── generation.types.ts
    │   │   └── image.types.ts
    │   └── utils
    │   │   ├── cookies.ts
    │   │   ├── flags.ts
    │   │   ├── index.ts
    │   │   ├── md5.ts
    │   │   └── prisma
    │   │       ├── enums.ts
    │   │       └── models.ts
    ├── static-content
    │   ├── 2257.md
    │   ├── art-and-ai.md
    │   ├── buzz
    │   │   └── terms.md
    │   ├── careers.md
    │   ├── careers
    │   │   └── dev-ops.md
    │   ├── clubs.md
    │   ├── content-appeal.md
    │   ├── creator-program-v2-tos.md
    │   ├── creators-program-coc.md
    │   ├── dmca-counter-notice.md
    │   ├── dmca-notice.md
    │   ├── dmca.md
    │   ├── feature-introduction
    │   │   ├── article-create.md
    │   │   ├── bounty-create.md
    │   │   ├── bounty-submit-entry.md
    │   │   ├── clubs.md
    │   │   ├── image-generator.md
    │   │   ├── model-training.md
    │   │   ├── model-upload.md
    │   │   ├── post-images.md
    │   │   ├── stripe-connect.md
    │   │   └── welcome.md
    │   ├── guides
    │   │   ├── getting-started.md
    │   │   └── what-is-civitai.md
    │   ├── interviews
    │   │   ├── marcos-2022-12-22.md
    │   │   └── tyler-2023-01-12.md
    │   ├── licenses
    │   │   ├── CreativeML Open RAIL++-M.md
    │   │   └── CreativeML Open RAIL-M.md
    │   ├── likeness-claim-request.md
    │   ├── moderation.md
    │   ├── press-inquiry.md
    │   ├── privacy.md
    │   ├── prompt-image-review.md
    │   ├── rules
    │   │   ├── minors.md
    │   │   └── real-people.md
    │   ├── tos.md
    │   └── training
    │   │   ├── data-policy.md
    │   │   └── dataset-guidelines.md
    ├── store
    │   ├── ClientHistoryStore.tsx
    │   ├── catch-navigation.store.ts
    │   ├── cf-upload.store.ts
    │   ├── file-upload.store.ts
    │   ├── generation.store.ts
    │   ├── image.store.ts
    │   ├── model-version.store.ts
    │   ├── post-image-transmitter.store.ts
    │   ├── s3-upload.store.ts
    │   ├── scheduler-download.store.ts
    │   ├── select.store.ts
    │   ├── tip.store.ts
    │   └── training.store.ts
    ├── styles
    │   ├── globals.css
    │   ├── utils.module.scss
    │   └── utils.module.scss.d.ts
    ├── tailwind
    │   └── container-queries.ts
    ├── types
    │   ├── global.d.ts
    │   ├── next-auth.d.ts
    │   ├── router.ts
    │   ├── tour.ts
    │   └── type-guards.d.ts
    ├── utils
    │   ├── allowed-third-party-urls.json
    │   ├── array-helpers.ts
    │   ├── aspect-ratio-helpers.ts
    │   ├── blocklist-username.json
    │   ├── blurhash.ts
    │   ├── boolean-helpers.ts
    │   ├── buzz.ts
    │   ├── callback-helpers.ts
    │   ├── cf-images-utils.ts
    │   ├── clubs.ts
    │   ├── cookies-helpers.ts
    │   ├── create-safe-context.tsx
    │   ├── date-helpers.ts
    │   ├── debouncer.ts
    │   ├── deferred.ts
    │   ├── delivery-worker.ts
    │   ├── detect-os.ts
    │   ├── device-helpers.js
    │   ├── domain-link.ts
    │   ├── encoding-helpers.ts
    │   ├── errorHandling.ts
    │   ├── eventEmitter.ts
    │   ├── exponentialBackoff.ts
    │   ├── fetch-link-releases.ts
    │   ├── file-helpers.ts
    │   ├── file-upload
    │   │   ├── file-upload.ts
    │   │   └── multipartUpload.ts
    │   ├── file-utils.ts
    │   ├── fs-helpers.ts
    │   ├── get-client-stripe.ts
    │   ├── html-helpers.ts
    │   ├── humanizer.ts
    │   ├── image-utils.ts
    │   ├── join-helpers.ts
    │   ├── json-helpers.ts
    │   ├── lazy-motion.ts
    │   ├── lazy.ts
    │   ├── logging.ts
    │   ├── login-helpers.ts
    │   ├── lotties
    │   │   ├── level-up-animation.json
    │   │   ├── link-animation.json
    │   │   ├── rank-up-animation.json
    │   │   └── success-animation.json
    │   ├── mantine-css-helpers.ts
    │   ├── map-helpers.ts
    │   ├── markdown-helpers.ts
    │   ├── media-preprocessors
    │   │   ├── image.preprocessor.ts
    │   │   ├── index.ts
    │   │   └── video.preprocessor.ts
    │   ├── metadata
    │   │   ├── audit.ts
    │   │   ├── automatic.metadata.ts
    │   │   ├── base.metadata.ts
    │   │   ├── comfy.metadata.ts
    │   │   ├── index.ts
    │   │   ├── lists
    │   │   │   ├── blocklist-nsfw.json
    │   │   │   ├── blocklist.json
    │   │   │   ├── prompt-tags.json
    │   │   │   ├── words-nsfw-prompt.json
    │   │   │   ├── words-nsfw-soft.json
    │   │   │   ├── words-nsfw.json
    │   │   │   ├── words-paddle-nsfw.json
    │   │   │   ├── words-poi.json
    │   │   │   └── words-young.json
    │   │   ├── rfooocus.metadata.ts
    │   │   └── swarmui.metadata.ts
    │   ├── moderators
    │   │   └── moderator.util.ts
    │   ├── normalize-text.ts
    │   ├── notifications.tsx
    │   ├── number-helpers.ts
    │   ├── object-helpers.ts
    │   ├── prompt-helpers.ts
    │   ├── prompt-similarity.ts
    │   ├── qs.ts
    │   ├── query-string-helpers.ts
    │   ├── queue.ts
    │   ├── random.ts
    │   ├── s3-client.ts
    │   ├── s3-utils.ts
    │   ├── schema-helpers.ts
    │   ├── shop
    │   │   ├── civitai-merch-products.json
    │   │   └── project-odyssey-products.json
    │   ├── signal-client.ts
    │   ├── signals
    │   │   ├── types.ts
    │   │   ├── useSignalsWorker.ts
    │   │   ├── utils.ts
    │   │   └── worker.ts
    │   ├── string-helpers.ts
    │   ├── tailwind.ts
    │   ├── taskBatcher.ts
    │   ├── training.ts
    │   ├── trpc.ts
    │   ├── type-guards.ts
    │   ├── user-helpers.ts
    │   ├── vault.ts
    │   └── zod-helpers.ts
    └── workers
    │   ├── civitai-link-worker-types.ts
    │   └── civitai-link.worker.ts
├── tailwind.config.js
├── tests
    ├── auction.spec.ts
    ├── auth.setup.ts
    ├── auth
    │   └── data.ts
    ├── example.spec.ts
    ├── generation.spec.ts
    ├── readme.txt
    ├── responses
    │   ├── getImageWhatIf.ts
    │   └── queryGeneratedImages.ts
    └── utils.ts
└── tsconfig.json


/.dockerignore:
--------------------------------------------------------------------------------
 1 | Dockerfile
 2 | README.md
 3 | LICENSE
 4 | docker-compose.yml
 5 | node_modules
 6 | nginx
 7 | .git
 8 | .gitignore
 9 | .next
10 | .dockerignore


--------------------------------------------------------------------------------
/.editorconfig:
--------------------------------------------------------------------------------
 1 | root = true
 2 | 
 3 | [*]
 4 | indent_size = 2
 5 | indent_style = space
 6 | end_of_line = lf
 7 | insert_final_newline = true
 8 | 
 9 | [*.{md,txt}]
10 | indent_size = 4
11 | 
12 | [Makefile]
13 | indent_style = tab


--------------------------------------------------------------------------------
/.eslintignore:
--------------------------------------------------------------------------------
1 | *.js
2 | *.mjs
3 | /dist
4 | /node_modules
5 | /src/shared/utils/prisma
6 | 


--------------------------------------------------------------------------------
/.gitattributes:
--------------------------------------------------------------------------------
1 | * text=auto eol=lf


--------------------------------------------------------------------------------
/.husky/pre-commit:
--------------------------------------------------------------------------------
 1 | 
 2 | #branch="$(git rev-parse --abbrev-ref HEAD)"
 3 | #if [ "$branch" != "main" ]; then
 4 | #	exit 0
 5 | #fi
 6 | 
 7 | # NOTE: apparently tsc-files just doesn't work on windows. at all.
 8 | 
 9 | #echo "Running typecheck for staged files"
10 | #
11 | #npx lint-staged
12 | #
13 | #echo "Typecheck successful"
14 | 


--------------------------------------------------------------------------------
/.nvmrc:
--------------------------------------------------------------------------------
1 | 20.13
2 | 


--------------------------------------------------------------------------------
/.prettierrc:
--------------------------------------------------------------------------------
1 | {
2 |   "trailingComma": "es5",
3 |   "tabWidth": 2,
4 |   "printWidth": 100,
5 |   "singleQuote": true
6 | }


--------------------------------------------------------------------------------
/.vscode/keybindings.json:
--------------------------------------------------------------------------------
 1 | // Place your key bindings in this file to override the defaultsauto[]
 2 | [
 3 |   {
 4 |     "key": "shift+alt+ctrl+/",
 5 |     "command": "editor.action.insertSnippet",
 6 |     "when": "editorTextFocus",
 7 |     "args": {
 8 |       "name": "region_wrap"
 9 |     }
10 |   }
11 | ]
12 | 


--------------------------------------------------------------------------------
/.vscode/snippets.code-snippets:
--------------------------------------------------------------------------------
1 | {
2 |   "region_wrap": {
3 |     "scope": "javascript,typescript,html,typescriptreact,javascriptreact,react",
4 |     "prefix": "region",
5 |     "body": ["$LINE_COMMENT #region [${1}]", "$TM_SELECTED_TEXT", "$LINE_COMMENT #endregion", ""],
6 |     "description": "Wrap your selected block with a region"
7 |   }
8 | }
9 | 


--------------------------------------------------------------------------------
/containers/clickhouse/Dockerfile:
--------------------------------------------------------------------------------
1 | FROM clickhouse/clickhouse-server:24.8.4
2 | COPY ./docker-init/* /docker-entrypoint-initdb.d/
3 | RUN chmod a+r /docker-entrypoint-initdb.d/*
4 | 
5 | 


--------------------------------------------------------------------------------
/containers/db/Dockerfile:
--------------------------------------------------------------------------------
1 | FROM postgres:17
2 | COPY ./docker-init/*.sql /docker-entrypoint-initdb.d/
3 | RUN chmod a+r /docker-entrypoint-initdb.d/*
4 | 


--------------------------------------------------------------------------------
/containers/db/docker-init/01_pg_analyze.sql:
--------------------------------------------------------------------------------
1 | CREATE USER pganalyze WITH PASSWORD 'pganalyze' CONNECTION LIMIT 5;
2 | GRANT pg_monitor TO pganalyze;
3 | 
4 | CREATE SCHEMA pganalyze;
5 | GRANT USAGE ON SCHEMA pganalyze TO pganalyze;
6 | GRANT USAGE ON SCHEMA public TO pganalyze;


--------------------------------------------------------------------------------
/containers/image-stub/Dockerfile:
--------------------------------------------------------------------------------
 1 | FROM node:20-bookworm
 2 | 
 3 | # Set working directory
 4 | WORKDIR /usr/src/app
 5 | 
 6 | # Copy package.json and install dependencies
 7 | COPY package*.json ./
 8 | RUN npm install
 9 | 
10 | # Copy the rest of the application code
11 | COPY . .
12 | 
13 | # Expose the port the server will run on
14 | EXPOSE 3000
15 | 
16 | # Run the app
17 | CMD ["node", "index.mjs"]
18 | 


--------------------------------------------------------------------------------
/containers/image-stub/images/1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/containers/image-stub/images/1.jpg


--------------------------------------------------------------------------------
/containers/image-stub/images/2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/containers/image-stub/images/2.jpg


--------------------------------------------------------------------------------
/containers/image-stub/package.json:
--------------------------------------------------------------------------------
 1 | {
 2 |   "name": "image-stub",
 3 |   "version": "1.0.0",
 4 |   "main": "index.mjs",
 5 |   "author": "Civitai",
 6 |   "license": "ISC",
 7 |   "description": "",
 8 |   "dependencies": {
 9 |     "sharp": "^0.33.5"
10 |   }
11 | }
12 | 


--------------------------------------------------------------------------------
/containers/ngrok/docker-init/config.yaml:
--------------------------------------------------------------------------------
1 | version: 3
2 | agent:
3 |   authtoken:
4 | endpoints:
5 |   - name: civitai-app
6 |     upstream:
7 |       url: 8000
8 |       protocol: http2
9 | 


--------------------------------------------------------------------------------
/containers/notification-db/Dockerfile:
--------------------------------------------------------------------------------
1 | FROM postgres:15-bookworm
2 | COPY ./docker-init/*.sql /docker-entrypoint-initdb.d/
3 | RUN chmod a+r /docker-entrypoint-initdb.d/*
4 | 


--------------------------------------------------------------------------------
/media/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/media/logo.png


--------------------------------------------------------------------------------
/next-env.d.ts:
--------------------------------------------------------------------------------
1 | /// <reference types="next" />
2 | /// <reference types="next/image-types/global" />
3 | /// <reference types="next/navigation-types/compat/navigation" />
4 | 
5 | // NOTE: This file should not be edited
6 | // see https://nextjs.org/docs/app/building-your-application/configuring/typescript for more information.
7 | 


--------------------------------------------------------------------------------
/prisma/migrations/20221018215322_optional_model_desc/migration.sql:
--------------------------------------------------------------------------------
1 | -- AlterTable
2 | ALTER TABLE "Model" ALTER COLUMN "description" DROP NOT NULL;
3 | 


--------------------------------------------------------------------------------
/prisma/migrations/20221027230516_username_unique_case_insensitive/migration.sql:
--------------------------------------------------------------------------------
1 | CREATE EXTENSION IF NOT EXISTS citext;
2 | 
3 | -- AlterTable
4 | ALTER TABLE
5 |   "User"
6 | ALTER COLUMN
7 |   "username"
8 | SET
9 |   DATA TYPE CITEXT;


--------------------------------------------------------------------------------
/prisma/migrations/20221101202142_anonymous_user_activities/migration.sql:
--------------------------------------------------------------------------------
1 | -- AlterTable
2 | ALTER TABLE "UserActivity" ALTER COLUMN "userId" DROP NOT NULL;
3 | 


--------------------------------------------------------------------------------
/prisma/migrations/20221101230538_add_training_data_download_tracking/migration.sql:
--------------------------------------------------------------------------------
1 | -- AlterEnum
2 | ALTER TYPE "UserActivityType" ADD VALUE 'TrainingDataDownload';
3 | 


--------------------------------------------------------------------------------
/prisma/migrations/20221103205440_add_moderator/migration.sql:
--------------------------------------------------------------------------------
1 | -- AlterTable
2 | ALTER TABLE "User" ADD COLUMN     "isModerator" BOOLEAN DEFAULT false;
3 | 


--------------------------------------------------------------------------------
/prisma/migrations/20221103221020_user_tos/migration.sql:
--------------------------------------------------------------------------------
1 | -- AlterTable
2 | ALTER TABLE "User" ADD COLUMN     "tos" BOOLEAN DEFAULT false;
3 | 


--------------------------------------------------------------------------------
/prisma/migrations/20221108160217_update_sizekb_tyoe_int_to_float/migration.sql:
--------------------------------------------------------------------------------
1 | -- AlterTable
2 | ALTER TABLE "ModelVersion" ALTER COLUMN "sizeKB" SET DATA TYPE DOUBLE PRECISION;
3 | 


--------------------------------------------------------------------------------
/prisma/migrations/20221110180604_trained_words_on_version/migration.sql:
--------------------------------------------------------------------------------
 1 | -- AlterTable
 2 | ALTER TABLE "ModelVersion" ADD COLUMN     "trainedWords" TEXT[];
 3 | 
 4 | -- Add Model Trained Words
 5 | UPDATE "ModelVersion"
 6 | SET "trainedWords" = "Model"."trainedWords"
 7 | FROM "Model"
 8 | WHERE "Model".id = "ModelVersion"."modelId";
 9 | 
10 | -- AlterTable
11 | ALTER TABLE "Model" DROP COLUMN "trainedWords";
12 | 


--------------------------------------------------------------------------------
/prisma/migrations/20221110222142_temp_verified_model/migration.sql:
--------------------------------------------------------------------------------
1 | -- AlterTable
2 | ALTER TABLE "ModelVersion" ADD COLUMN     "verificationMessage" TEXT,
3 | ADD COLUMN     "verified" BOOLEAN NOT NULL DEFAULT false;
4 | 


--------------------------------------------------------------------------------
/prisma/migrations/20221112015716_scan_request_time/migration.sql:
--------------------------------------------------------------------------------
1 | -- AlterTable
2 | ALTER TABLE "ModelFile" ADD COLUMN     "scanRequestedAt" TIMESTAMP(3);
3 | 


--------------------------------------------------------------------------------
/prisma/migrations/20221114213528_image_meta/migration.sql:
--------------------------------------------------------------------------------
 1 | /*
 2 |   Warnings:
 3 | 
 4 |   - You are about to drop the column `prompt` on the `Image` table. All the data in the column will be lost.
 5 | 
 6 | */
 7 | -- AlterTable
 8 | ALTER TABLE "Image" DROP COLUMN "prompt",
 9 | ADD COLUMN     "meta" JSONB;
10 | 


--------------------------------------------------------------------------------
/prisma/migrations/20221115210524_add_uniqueness_to_reactions/migration.sql:
--------------------------------------------------------------------------------
1 | /*
2 |   Warnings:
3 | 
4 |   - A unique constraint covering the columns `[reviewId,userId,reaction]` on the table `ReviewReaction` will be added. If there are existing duplicate values, this will fail.
5 | 
6 | */
7 | -- CreateIndex
8 | CREATE UNIQUE INDEX "ReviewReaction_reviewId_userId_reaction_key" ON "ReviewReaction"("reviewId", "userId", "reaction");
9 | 


--------------------------------------------------------------------------------
/prisma/migrations/20221116143356_import_children/migration.sql:
--------------------------------------------------------------------------------
 1 | -- DropIndex
 2 | DROP INDEX "ModelVersion_fromImportId_key";
 3 | 
 4 | -- AlterTable
 5 | ALTER TABLE "Import" ADD COLUMN     "importId" INTEGER,
 6 | ADD COLUMN     "parentId" INTEGER;
 7 | 
 8 | -- AddForeignKey
 9 | ALTER TABLE "Import" ADD CONSTRAINT "Import_parentId_fkey" FOREIGN KEY ("parentId") REFERENCES "Import"("id") ON DELETE SET NULL ON UPDATE CASCADE;
10 | 


--------------------------------------------------------------------------------
/prisma/migrations/20221202170057_model_file_format/migration.sql:
--------------------------------------------------------------------------------
1 | -- CreateEnum
2 | CREATE TYPE "ModelFileFormat" AS ENUM ('PickleTensor', 'SafeTensor');
3 | 
4 | -- AlterTable
5 | ALTER TABLE "ModelFile" ADD COLUMN     "format" "ModelFileFormat";
6 | 
7 | UPDATE "ModelFile" SET "format" = 'PickleTensor' WHERE "type" = 'Model'


--------------------------------------------------------------------------------
/prisma/migrations/20221202230223_user_link_index/migration.sql:
--------------------------------------------------------------------------------
1 | /*
2 |   Warnings:
3 | 
4 |   - Added the required column `index` to the `UserLink` table without a default value. This is not possible if the table is not empty.
5 | 
6 | */
7 | -- AlterTable
8 | ALTER TABLE "UserLink" ADD COLUMN     "index" INTEGER NOT NULL;
9 | 


--------------------------------------------------------------------------------
/prisma/migrations/20221203005905_remove_user_link_index/migration.sql:
--------------------------------------------------------------------------------
1 | /*
2 |   Warnings:
3 | 
4 |   - You are about to drop the column `index` on the `UserLink` table. All the data in the column will be lost.
5 | 
6 | */
7 | -- AlterTable
8 | ALTER TABLE "UserLink" DROP COLUMN "index";
9 | 


--------------------------------------------------------------------------------
/prisma/migrations/20221205213338_comment_table_update/migration.sql:
--------------------------------------------------------------------------------
1 | /*
2 |   Warnings:
3 | 
4 |   - Made the column `modelId` on table `Comment` required. This step will fail if there are existing NULL values in that column.
5 | 
6 | */
7 | -- AlterTable
8 | ALTER TABLE "Comment" ALTER COLUMN "modelId" SET NOT NULL;
9 | 


--------------------------------------------------------------------------------
/prisma/migrations/20221207040459_add_logging/migration.sql:
--------------------------------------------------------------------------------
 1 | -- CreateTable
 2 | CREATE TABLE "Log" (
 3 |     "id" TEXT NOT NULL,
 4 |     "event" TEXT NOT NULL,
 5 |     "details" JSONB,
 6 |     "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
 7 | 
 8 |     CONSTRAINT "Log_pkey" PRIMARY KEY ("id")
 9 | );
10 | 


--------------------------------------------------------------------------------
/prisma/migrations/20221207202442_support_inaccurate_report/migration.sql:
--------------------------------------------------------------------------------
1 | -- AlterTable
2 | ALTER TABLE "ModelVersion" ADD COLUMN     "inaccurate" BOOLEAN NOT NULL DEFAULT false;
3 | 


--------------------------------------------------------------------------------
/prisma/migrations/20221209162539_add_person_of_interest_toggle/migration.sql:
--------------------------------------------------------------------------------
1 | -- AlterTable
2 | ALTER TABLE "Model" ADD COLUMN     "poi" BOOLEAN NOT NULL DEFAULT false;
3 | 


--------------------------------------------------------------------------------
/prisma/migrations/20221212045320_model_hash_report_support/migration.sql:
--------------------------------------------------------------------------------
1 | -- AlterEnum
2 | ALTER TYPE "UserActivityType" ADD VALUE 'HashReport';
3 | 
4 | -- AlterTable
5 | ALTER TABLE "Image" ADD COLUMN     "tosViolation" BOOLEAN NOT NULL DEFAULT false;
6 | 


--------------------------------------------------------------------------------
/prisma/migrations/20221220211549_current_mviews/migration.sql:
--------------------------------------------------------------------------------
1 | -- This is an empty migration.
2 | CREATE UNIQUE INDEX mrank_model_id ON "ModelRank" ("modelId");
3 | CREATE UNIQUE INDEX urank_user_id ON "UserRank" ("userId");


--------------------------------------------------------------------------------
/prisma/migrations/20221223175226_model_type_default/migration.sql:
--------------------------------------------------------------------------------
1 | -- AlterTable
2 | ALTER TABLE "ModelFile" ALTER COLUMN "type" SET DEFAULT 'Model';
3 | 


--------------------------------------------------------------------------------
/prisma/migrations/20221223182642_tag_unique_with_target/migration.sql:
--------------------------------------------------------------------------------
 1 | /*
 2 |   Warnings:
 3 | 
 4 |   - A unique constraint covering the columns `[name,target]` on the table `Tag` will be added. If there are existing duplicate values, this will fail.
 5 | 
 6 | */
 7 | -- DropIndex
 8 | DROP INDEX "Tag_name_key";
 9 | 
10 | -- CreateIndex
11 | CREATE UNIQUE INDEX "Tag_name_target_key" ON "Tag"("name", "target");
12 | 


--------------------------------------------------------------------------------
/prisma/migrations/20221226195245_optional_answer_vote_vote/migration.sql:
--------------------------------------------------------------------------------
1 | -- AlterTable
2 | ALTER TABLE "AnswerVote" ALTER COLUMN "vote" DROP NOT NULL;
3 | 


--------------------------------------------------------------------------------
/prisma/migrations/20221230234742_review_exclusion/migration.sql:
--------------------------------------------------------------------------------
1 | -- AlterTable
2 | ALTER TABLE "Review" ADD COLUMN     "exclude" BOOLEAN NOT NULL DEFAULT false;
3 | 


--------------------------------------------------------------------------------
/prisma/migrations/20230105194139_remove_model_file_primary_field/migration.sql:
--------------------------------------------------------------------------------
1 | /*
2 |   Warnings:
3 | 
4 |   - You are about to drop the column `primary` on the `ModelFile` table. All the data in the column will be lost.
5 | 
6 | */
7 | -- AlterTable
8 | ALTER TABLE "ModelFile" DROP COLUMN "primary";
9 | 


--------------------------------------------------------------------------------
/prisma/migrations/20230110235012_image_analysis/migration.sql:
--------------------------------------------------------------------------------
1 | -- AlterTable
2 | ALTER TABLE "Image" ADD COLUMN     "analysis" JSONB;
3 | 


--------------------------------------------------------------------------------
/prisma/migrations/20230111224629_cascade_model_hash/migration.sql:
--------------------------------------------------------------------------------
1 | -- DropForeignKey
2 | ALTER TABLE "ModelHash" DROP CONSTRAINT "ModelHash_fileId_fkey";
3 | 
4 | -- AddForeignKey
5 | ALTER TABLE "ModelHash" ADD CONSTRAINT "ModelHash_fileId_fkey" FOREIGN KEY ("fileId") REFERENCES "ModelFile"("id") ON DELETE CASCADE ON UPDATE CASCADE;
6 | 


--------------------------------------------------------------------------------
/prisma/migrations/20230112234519_unlistable_tags/migration.sql:
--------------------------------------------------------------------------------
1 | -- AlterTable
2 | ALTER TABLE "Tag" ADD COLUMN     "unlisted" BOOLEAN NOT NULL DEFAULT false;
3 | 


--------------------------------------------------------------------------------
/prisma/migrations/20230118154709_add_model_early_access_timeframe/migration.sql:
--------------------------------------------------------------------------------
1 | -- AlterTable
2 | ALTER TABLE "Model" ADD COLUMN     "earlyAccessTimeFrame" INTEGER NOT NULL DEFAULT 0;
3 | 


--------------------------------------------------------------------------------
/prisma/migrations/20230124192503_soft_delete_model/migration.sql:
--------------------------------------------------------------------------------
1 | -- AlterTable
2 | ALTER TABLE "Model" ADD COLUMN     "deletedAt" TIMESTAMP(3);
3 | 


--------------------------------------------------------------------------------
/prisma/migrations/20230124204854_add_deleted_model_status/migration.sql:
--------------------------------------------------------------------------------
1 | -- AlterEnum
2 | ALTER TYPE "ModelStatus" ADD VALUE 'Deleted';
3 | 


--------------------------------------------------------------------------------
/prisma/migrations/20230127232300_metric_update_queue/migration.sql:
--------------------------------------------------------------------------------
1 | -- CreateTable
2 | CREATE TABLE "MetricUpdateQueue" (
3 |     "type" TEXT NOT NULL,
4 |     "id" INTEGER NOT NULL,
5 |     "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
6 | 
7 |     CONSTRAINT "MetricUpdateQueue_pkey" PRIMARY KEY ("type","id")
8 | );
9 | 


--------------------------------------------------------------------------------
/prisma/migrations/20230130224954_comment_lock/migration.sql:
--------------------------------------------------------------------------------
1 | -- AlterTable
2 | ALTER TABLE "Comment" ADD COLUMN     "locked" BOOLEAN DEFAULT false;
3 | 
4 | -- AlterTable
5 | ALTER TABLE "CommentV2" ADD COLUMN     "locked" BOOLEAN DEFAULT false;
6 | 


--------------------------------------------------------------------------------
/prisma/migrations/20230131150221_review_lock/migration.sql:
--------------------------------------------------------------------------------
1 | -- AlterTable
2 | ALTER TABLE "Review" ADD COLUMN     "locked" BOOLEAN NOT NULL DEFAULT false;
3 | 


--------------------------------------------------------------------------------
/prisma/migrations/20230201143158_mute_users/migration.sql:
--------------------------------------------------------------------------------
1 | -- AlterTable
2 | ALTER TABLE "User" ADD COLUMN     "muted" BOOLEAN DEFAULT false;
3 | 


--------------------------------------------------------------------------------
/prisma/migrations/20230201205224_ban_user/migration.sql:
--------------------------------------------------------------------------------
1 | -- AlterTable
2 | ALTER TABLE "User" ADD COLUMN     "bannedAt" TIMESTAMP(3);
3 | 


--------------------------------------------------------------------------------
/prisma/migrations/20230207230114_cosmetic_default_id_fix/migration.sql:
--------------------------------------------------------------------------------
1 | -- AlterTable
2 | CREATE SEQUENCE cosmetic_id_seq;
3 | ALTER TABLE "Cosmetic" ALTER COLUMN "id" SET DEFAULT nextval('cosmetic_id_seq');
4 | ALTER SEQUENCE cosmetic_id_seq OWNED BY "Cosmetic"."id";
5 | 


--------------------------------------------------------------------------------
/prisma/migrations/20230209171946_add_model_locked/migration.sql:
--------------------------------------------------------------------------------
1 | -- AlterTable
2 | ALTER TABLE "Model" ADD COLUMN     "locked" BOOLEAN NOT NULL DEFAULT false;
3 | 


--------------------------------------------------------------------------------
/prisma/migrations/20230209203015_report_limiting/migration.sql:
--------------------------------------------------------------------------------
1 | -- AlterTable
2 | ALTER TABLE "Report" ADD COLUMN     "alsoReportedBy" INTEGER[] DEFAULT ARRAY[]::INTEGER[],
3 | ADD COLUMN     "previouslyReviewedCount" INTEGER NOT NULL DEFAULT 0;
4 | 


--------------------------------------------------------------------------------
/prisma/migrations/20230210200501_add_iscategory_tag/migration.sql:
--------------------------------------------------------------------------------
1 | -- AlterTable
2 | ALTER TABLE "Tag" ADD COLUMN     "isCategory" BOOLEAN NOT NULL DEFAULT false;
3 | 


--------------------------------------------------------------------------------
/prisma/migrations/20230211012925_subscription_update_date/migration.sql:
--------------------------------------------------------------------------------
1 | -- AlterTable
2 | ALTER TABLE "CustomerSubscription" ADD COLUMN     "updatedAt" TIMESTAMP(3);
3 | 


--------------------------------------------------------------------------------
/prisma/migrations/20230212204953_api_key_tweaks/migration.sql:
--------------------------------------------------------------------------------
1 | -- DropIndex
2 | DROP INDEX "ApiKey_key_userId_key";
3 | 
4 | -- AlterTable
5 | ALTER TABLE "ApiKey" ADD COLUMN     "id" SERIAL NOT NULL,
6 | ADD CONSTRAINT "ApiKey_pkey" PRIMARY KEY ("id");
7 | 


--------------------------------------------------------------------------------
/prisma/migrations/20230217213122_image_needs_review/migration.sql:
--------------------------------------------------------------------------------
1 | -- AlterTable
2 | ALTER TABLE "Image" ADD COLUMN     "needsReview" BOOLEAN NOT NULL DEFAULT false;
3 | 


--------------------------------------------------------------------------------
/prisma/migrations/20230217220241_tag_unique_name/migration.sql:
--------------------------------------------------------------------------------
 1 | /*
 2 |   Warnings:
 3 | 
 4 |   - A unique constraint covering the columns `[name]` on the table `Tag` will be added. If there are existing duplicate values, this will fail.
 5 | 
 6 | */
 7 | -- DropIndex
 8 | DROP INDEX "Tag_name_target_key";
 9 | 
10 | -- CreateIndex
11 | CREATE UNIQUE INDEX "Tag_name_key" ON "Tag"("name");
12 | 


--------------------------------------------------------------------------------
/prisma/migrations/20230220220914_user_activity_index/migration.sql:
--------------------------------------------------------------------------------
1 | -- CreateIndex
2 | CREATE INDEX "UserActivity_userId_createdAt_idx" ON "UserActivity"("userId", "createdAt");
3 | 


--------------------------------------------------------------------------------
/prisma/migrations/20230221230819_user_setting_autoplay_gifs/migration.sql:
--------------------------------------------------------------------------------
1 | -- AlterTable
2 | ALTER TABLE "User" ADD COLUMN     "autoplayGifs" BOOLEAN DEFAULT true;
3 | 
4 | UPDATE "User" SET "autoplayGifs" = true;
5 | 


--------------------------------------------------------------------------------
/prisma/migrations/20230227220233_prep_for_mod_tags/migration.sql:
--------------------------------------------------------------------------------
 1 | -- CreateEnum
 2 | CREATE TYPE "TagType" AS ENUM ('UserGenerated', 'Label', 'Moderation');
 3 | 
 4 | -- AlterTable
 5 | ALTER TABLE "Tag" ADD COLUMN     "type" "TagType" NOT NULL DEFAULT 'UserGenerated';
 6 | 
 7 | -- AlterTable
 8 | ALTER TABLE "TagsOnImage" ADD COLUMN     "automated" BOOLEAN NOT NULL DEFAULT false,
 9 | ADD COLUMN     "confidence" INTEGER;
10 | 


--------------------------------------------------------------------------------
/prisma/migrations/20230305040226_account_metadata/migration.sql:
--------------------------------------------------------------------------------
1 | -- AlterTable
2 | ALTER TABLE "Account" ADD COLUMN     "metadata" JSONB NOT NULL DEFAULT '{}';
3 | 


--------------------------------------------------------------------------------
/prisma/migrations/20230306181918_model_delete_tracking/migration.sql:
--------------------------------------------------------------------------------
1 | -- AlterTable
2 | ALTER TABLE "Model" ADD COLUMN     "deletedBy" INTEGER;
3 | 
4 | -- AddForeignKey
5 | ALTER TABLE "Model" ADD CONSTRAINT "Model_deletedBy_fkey" FOREIGN KEY ("deletedBy") REFERENCES "User"("id") ON DELETE SET NULL ON UPDATE CASCADE;
6 | 


--------------------------------------------------------------------------------
/prisma/migrations/20230308161211_post_helper/migration.sql:
--------------------------------------------------------------------------------
 1 | UPDATE "Tag" SET target = array_append(target, 'Post')
 2 | WHERE 'Image' = ANY(Target);
 3 | 
 4 | 
 5 | CREATE OR REPLACE VIEW "PostHelper" AS
 6 | SELECT
 7 |     "postId",
 8 |     bool_or("scannedAt" IS NOT NULL) AS scanned
 9 | FROM "Image"
10 | GROUP BY "postId";


--------------------------------------------------------------------------------
/prisma/migrations/20230310005918_image_size/migration.sql:
--------------------------------------------------------------------------------
1 | -- AlterTable
2 | ALTER TABLE "Image" ADD COLUMN     "sizeKB" INTEGER;
3 | 


--------------------------------------------------------------------------------
/prisma/migrations/20230312182841_wildcards/migration.sql:
--------------------------------------------------------------------------------
1 | -- AlterEnum
2 | ALTER TYPE "ModelType" ADD VALUE 'Wildcards';
3 | 


--------------------------------------------------------------------------------
/prisma/migrations/20230315025401_other_type/migration.sql:
--------------------------------------------------------------------------------
1 | -- AlterEnum
2 | ALTER TYPE "ModelType" ADD VALUE 'Other';
3 | 


--------------------------------------------------------------------------------
/prisma/migrations/20230405222519_model_status_unpublished_violation/migration.sql:
--------------------------------------------------------------------------------
1 | -- AlterEnum
2 | ALTER TYPE "ModelStatus" ADD VALUE 'UnpublishedViolation';
3 | 


--------------------------------------------------------------------------------
/prisma/migrations/20230407001434_model_version_published_at/migration.sql:
--------------------------------------------------------------------------------
1 | -- AlterTable
2 | ALTER TABLE "ModelVersion" ADD COLUMN     "publishedAt" TIMESTAMP(3);
3 | 


--------------------------------------------------------------------------------
/prisma/migrations/20230414200229_model_modifier/migration.sql:
--------------------------------------------------------------------------------
1 | -- CreateEnum
2 | CREATE TYPE "ModelModifier" AS ENUM ('Archived', 'TakenDown');
3 | 
4 | -- AlterTable
5 | ALTER TABLE "Model" ADD COLUMN     "mode" "ModelModifier";
6 | 


--------------------------------------------------------------------------------
/prisma/migrations/20230619222230_scheduled_publish/migration.sql:
--------------------------------------------------------------------------------
1 | ALTER TYPE "ModelStatus" ADD VALUE 'Scheduled';


--------------------------------------------------------------------------------
/prisma/migrations/20230620163537_hidden_comments/migration.sql:
--------------------------------------------------------------------------------
1 | -- AlterTable
2 | ALTER TABLE "Comment" ADD COLUMN     "hidden" BOOLEAN DEFAULT false;
3 | 


--------------------------------------------------------------------------------
/prisma/migrations/20230626231430_not_null_base_model/migration.sql:
--------------------------------------------------------------------------------
1 | 
2 | -- AlterTable
3 | ALTER TABLE "ModelVersion" ALTER COLUMN "baseModel" SET NOT NULL;


--------------------------------------------------------------------------------
/prisma/migrations/20230630171915_model_version_clip_skip/migration.sql:
--------------------------------------------------------------------------------
1 | -- AlterTable
2 | ALTER TABLE "ModelVersion" ADD COLUMN     "clipSkip" INTEGER;
3 | 


--------------------------------------------------------------------------------
/prisma/migrations/20230704185357_create_search_index_update_queue_table/migration.sql:
--------------------------------------------------------------------------------
1 | -- CreateTable
2 | CREATE TABLE "SearchIndexUpdateQueue" (
3 |     "type" TEXT NOT NULL,
4 |     "id" INTEGER NOT NULL,
5 |     "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
6 | 
7 |     CONSTRAINT "SearchIndexUpdateQueue_pkey" PRIMARY KEY ("type","id")
8 | );
9 | 


--------------------------------------------------------------------------------
/prisma/migrations/20230706162241_add_search_index_update_queue_action/migration.sql:
--------------------------------------------------------------------------------
1 | -- AlterTable
2 | ALTER TABLE "SearchIndexUpdateQueue" DROP CONSTRAINT "SearchIndexUpdateQueue_pkey",
3 | ADD COLUMN     "action" TEXT NOT NULL,
4 | ADD CONSTRAINT "SearchIndexUpdateQueue_pkey" PRIMARY KEY ("type", "id", "action");
5 | 


--------------------------------------------------------------------------------
/prisma/migrations/20230712203205_add_home_block_type/migration.sql:
--------------------------------------------------------------------------------
1 | -- CreateEnum
2 | CREATE TYPE "HomeBlockType" AS ENUM ('Collection', 'Announcement', 'Leaderboard');
3 | 
4 | -- AlterTable
5 | ALTER TABLE "HomeBlock" ADD COLUMN     "type" "HomeBlockType" NOT NULL;
6 | 


--------------------------------------------------------------------------------
/prisma/migrations/20230712204937_unlisted_read_config/migration.sql:
--------------------------------------------------------------------------------
1 | -- AlterEnum
2 | ALTER TYPE "CollectionReadConfiguration" ADD VALUE 'Unlisted';
3 | 


--------------------------------------------------------------------------------
/prisma/migrations/20230714202551_recommended_vae/migration.sql:
--------------------------------------------------------------------------------
1 | 
2 | -- AlterTable
3 | ALTER TABLE "ModelVersion" ADD COLUMN     "vaeId" INTEGER;
4 | 
5 | -- AddForeignKey
6 | ALTER TABLE "ModelVersion" ADD CONSTRAINT "ModelVersion_vaeId_fkey" FOREIGN KEY ("vaeId") REFERENCES "ModelVersion"("id") ON DELETE SET NULL ON UPDATE CASCADE;
7 | 


--------------------------------------------------------------------------------
/prisma/migrations/20230717203328_add_metadata_to_announcements/migration.sql:
--------------------------------------------------------------------------------
1 | ALTER TABLE "Announcement" ADD COLUMN     "metadata" JSONB;
2 | 


--------------------------------------------------------------------------------
/prisma/migrations/20230718193348_add_collection_type/migration.sql:
--------------------------------------------------------------------------------
1 | -- CreateEnum
2 | CREATE TYPE "CollectionType" AS ENUM ('Model', 'Article', 'Post', 'Image');
3 | 
4 | -- AlterTable
5 | ALTER TABLE "Collection" ADD COLUMN     "type" "CollectionType";
6 | 


--------------------------------------------------------------------------------
/prisma/migrations/20230719182634_add_collection_write_configuration_review/migration.sql:
--------------------------------------------------------------------------------
1 | -- AlterEnum
2 | ALTER TYPE "CollectionWriteConfiguration" ADD VALUE 'Review';
3 | 


--------------------------------------------------------------------------------
/prisma/migrations/20230721184738_post_collection_relation/migration.sql:
--------------------------------------------------------------------------------
1 | -- AlterTable
2 | ALTER TABLE "Post" ADD COLUMN     "collectionId" INTEGER;
3 | 
4 | -- AddForeignKey
5 | ALTER TABLE "Post" ADD CONSTRAINT "Post_collectionId_fkey" FOREIGN KEY ("collectionId") REFERENCES "Collection"("id") ON DELETE CASCADE ON UPDATE CASCADE;
6 | 


--------------------------------------------------------------------------------
/prisma/migrations/20230728170432_image_type/migration.sql:
--------------------------------------------------------------------------------
 1 | -- AlterTable
 2 | ALTER TABLE "Image" ADD COLUMN     "metadata" JSONB NOT NULL DEFAULT '{}',
 3 | ADD COLUMN     "type" "MediaType" NOT NULL DEFAULT 'image';
 4 | 
 5 | UPDATE "Image"
 6 | SET metadata = json_build_object('hash', hash, 'width', width, 'height', height);
 7 | 
 8 | UPDATE "Image"
 9 | SET type = 'video'
10 | WHERE "mimeType" = 'image/gif';
11 | 
12 | 


--------------------------------------------------------------------------------
/prisma/migrations/20230809032747_model_purpose/migration.sql:
--------------------------------------------------------------------------------
1 | -- AlterTable
2 | ALTER TABLE "ModelVersion" ADD COLUMN     "baseModelType" TEXT;
3 | 


--------------------------------------------------------------------------------
/prisma/migrations/20230818173920_add_workflows/migration.sql:
--------------------------------------------------------------------------------
1 | ALTER TYPE "ModelType" ADD VALUE 'Workflows';
2 | 


--------------------------------------------------------------------------------
/prisma/migrations/20230901221543_rent_civit/migration.sql:
--------------------------------------------------------------------------------
1 | -- AlterEnum
2 | ALTER TYPE "CommercialUse" ADD VALUE 'RentCivit';
3 | 


--------------------------------------------------------------------------------
/prisma/migrations/20230902054355_paid_generation_option/migration.sql:
--------------------------------------------------------------------------------
1 | -- AlterEnum
2 | ALTER TYPE "ModelVersionMonetizationType" ADD VALUE 'PaidGeneration';
3 | 


--------------------------------------------------------------------------------
/prisma/migrations/20230908201330_computed_tag_source/migration.sql:
--------------------------------------------------------------------------------
1 | -- AlterEnum
2 | ALTER TYPE "TagSource" ADD VALUE 'Computed';
3 | 


--------------------------------------------------------------------------------
/prisma/migrations/20230912004157_motion_module/migration.sql:
--------------------------------------------------------------------------------
1 | -- AlterEnum
2 | ALTER TYPE "ModelType" ADD VALUE 'MotionModule';
3 | 


--------------------------------------------------------------------------------
/prisma/migrations/20230912153043_add_bounty_complete/migration.sql:
--------------------------------------------------------------------------------
1 | -- AlterTable
2 | ALTER TABLE "Bounty" ADD COLUMN     "complete" BOOLEAN NOT NULL DEFAULT false;
3 | 
4 | 


--------------------------------------------------------------------------------
/prisma/migrations/20230913054542_social_homeblock/migration.sql:
--------------------------------------------------------------------------------
1 | -- AlterEnum
2 | ALTER TYPE "HomeBlockType" ADD VALUE 'Social';
3 | 


--------------------------------------------------------------------------------
/prisma/migrations/20230914200233_bounty_poi/migration.sql:
--------------------------------------------------------------------------------
1 | -- AlterTable
2 | ALTER TABLE "Bounty" ADD COLUMN     "poi" BOOLEAN NOT NULL DEFAULT false;
3 | 


--------------------------------------------------------------------------------
/prisma/migrations/20230918222033_make_user_referral_code_unqye/migration.sql:
--------------------------------------------------------------------------------
1 | -- AlterTable
2 | ALTER TABLE "UserReferralCode" ALTER COLUMN "note" DROP NOT NULL;
3 | 
4 | -- CreateIndex
5 | CREATE UNIQUE INDEX "UserReferralCode_code_key" ON "UserReferralCode"("code");
6 | 


--------------------------------------------------------------------------------
/prisma/migrations/20230920211650_add_deleted_at_user_referral_code/migration.sql:
--------------------------------------------------------------------------------
1 |  -- AlterTable
2 | ALTER TABLE "UserReferralCode" ADD COLUMN     "deletedAt" TIMESTAMP(3);
3 | 
4 | 


--------------------------------------------------------------------------------
/prisma/migrations/20230921142409_add_user_id_index_user_referrals/migration.sql:
--------------------------------------------------------------------------------
1 | -- CreateIndex
2 | CREATE INDEX "UserReferralCode_userId_idx" ON "UserReferralCode" USING HASH ("userId");
3 | 


--------------------------------------------------------------------------------
/prisma/migrations/20230921160043_add_created_updated_at_buzz_tip/migration.sql:
--------------------------------------------------------------------------------
1 | -- AlterTable
2 | ALTER TABLE "BuzzTip" ADD COLUMN     "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
3 | ADD COLUMN     "updatedAt" TIMESTAMP(3) NOT NULL;
4 | 


--------------------------------------------------------------------------------
/prisma/migrations/20230921204323_bounty_entry_description/migration.sql:
--------------------------------------------------------------------------------
1 | -- AlterTable
2 | ALTER TABLE "BountyEntry" ADD COLUMN     "description" TEXT;
3 | 


--------------------------------------------------------------------------------
/prisma/migrations/20230927151024_collection_mode_support/migration.sql:
--------------------------------------------------------------------------------
1 | BEGIN;
2 | -- CreateEnum
3 | CREATE TYPE "CollectionMode" AS ENUM ('Contest');
4 | 
5 | -- AlterTable
6 | ALTER TABLE "Collection" ADD COLUMN     "mode" "CollectionMode";
7 | 
8 | COMMIT;
9 | 


--------------------------------------------------------------------------------
/prisma/migrations/20230928163847_add_datapurged_to_modelfile/migration.sql:
--------------------------------------------------------------------------------
1 | -- AlterTable
2 | ALTER TABLE "ModelFile" ADD COLUMN     "dataPurged" BOOLEAN NOT NULL DEFAULT false;
3 | 


--------------------------------------------------------------------------------
/prisma/migrations/20230929145153_collection_item_collection_id_index/migration.sql:
--------------------------------------------------------------------------------
1 | -- CreateIndex
2 | CREATE INDEX "CollectionItem_collectionId_idx" ON "CollectionItem" USING HASH ("collectionId");
3 | 


--------------------------------------------------------------------------------
/prisma/migrations/20231005123051_bounty_expires_at_starts_at_date_only/migration.sql:
--------------------------------------------------------------------------------
1 | -- AlterTable
2 | ALTER TABLE "Bounty" ALTER COLUMN "startsAt" SET DATA TYPE DATE,
3 | ALTER COLUMN "expiresAt" SET DATA TYPE DATE,
4 | ADD COLUMN "refunded" BOOLEAN NOT NULL DEFAULT false;
5 | 


--------------------------------------------------------------------------------
/prisma/migrations/20231006205635_comment_v2_hidden/migration.sql:
--------------------------------------------------------------------------------
1 | -- AlterTable
2 | ALTER TABLE "CommentV2" ADD COLUMN     "hidden" BOOLEAN DEFAULT false;
3 | 


--------------------------------------------------------------------------------
/prisma/migrations/20231024143326_user_referral_code_crated_at/migration.sql:
--------------------------------------------------------------------------------
1 | -- AlterTable
2 | ALTER TABLE "User" ALTER COLUMN "onboardingSteps" SET DEFAULT ARRAY['Moderation', 'Buzz']::"OnboardingStep"[];
3 | 
4 | -- AlterTable
5 | ALTER TABLE "UserReferralCode" ADD COLUMN     "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP;
6 | 


--------------------------------------------------------------------------------
/prisma/migrations/20231025204142_image_scan_job/migration.sql:
--------------------------------------------------------------------------------
1 | -- AlterTable
2 | ALTER TABLE "Image" ADD COLUMN     "scanJobs" JSONB;
3 | 


--------------------------------------------------------------------------------
/prisma/migrations/20231027024129_require_auth_option/migration.sql:
--------------------------------------------------------------------------------
1 | -- AlterTable
2 | ALTER TABLE "ModelVersion" ADD COLUMN     "requireAuth" BOOLEAN NOT NULL DEFAULT false;
3 | 


--------------------------------------------------------------------------------
/prisma/migrations/20231027035952_run_partner_base_model/migration.sql:
--------------------------------------------------------------------------------
1 | -- AlterTable
2 | ALTER TABLE "Partner" ADD COLUMN     "onDemandBaseModels" TEXT[] DEFAULT ARRAY[]::TEXT[];
3 | 


--------------------------------------------------------------------------------
/prisma/migrations/20231027221218_image_view_count/migration.sql:
--------------------------------------------------------------------------------
1 | -- AlterTable
2 | ALTER TABLE "ImageMetric" ADD COLUMN     "viewCount" INTEGER NOT NULL DEFAULT 0;
3 | 


--------------------------------------------------------------------------------
/prisma/migrations/20231109061817_model_file_header_data/migration.sql:
--------------------------------------------------------------------------------
1 | -- AlterEnum
2 | ALTER TYPE "ModelHashType" ADD VALUE 'AutoV3';
3 | 
4 | -- AlterTable
5 | ALTER TABLE "ModelFile" ADD COLUMN     "headerData" JSONB;
6 | 


--------------------------------------------------------------------------------
/prisma/migrations/20231110192419_add_landing_page_to_user_referral/migration.sql:
--------------------------------------------------------------------------------
1 | -- AlterTable
2 | ALTER TABLE "UserReferral" ADD COLUMN     "landingPage" TEXT;
3 | 


--------------------------------------------------------------------------------
/prisma/migrations/20231110203035_add_login_redirect_reason_to_user_referral/migration.sql:
--------------------------------------------------------------------------------
1 | -- AlterTable
2 | ALTER TABLE "UserReferral" ADD COLUMN     "loginRedirectReason" TEXT;
3 | 


--------------------------------------------------------------------------------
/prisma/migrations/20231110210854_claimable_cosmetics/migration.sql:
--------------------------------------------------------------------------------
1 | -- AlterEnum
2 | ALTER TYPE "CosmeticSource" ADD VALUE 'Claim';
3 | 


--------------------------------------------------------------------------------
/prisma/migrations/20231118201935_collection_item_reviewed_by/migration.sql:
--------------------------------------------------------------------------------
1 | -- AlterTable
2 | ALTER TABLE "CollectionItem" ADD COLUMN     "reviewedAt" TIMESTAMP(3),
3 | ADD COLUMN     "reviewedById" INTEGER;
4 | 
5 | -- AddForeignKey
6 | ALTER TABLE "CollectionItem" ADD CONSTRAINT "CollectionItem_reviewedById_fkey" FOREIGN KEY ("reviewedById") REFERENCES "User"("id") ON DELETE SET NULL ON UPDATE CASCADE;
7 | 


--------------------------------------------------------------------------------
/prisma/migrations/20231121050854_holiday_cosmetics/migration.sql:
--------------------------------------------------------------------------------
1 | -- AlterEnum
2 | ALTER TYPE "CosmeticType" ADD VALUE 'ContentDecoration';
3 | 
4 | -- AlterTable
5 | ALTER TABLE "Cosmetic" ADD COLUMN     "availableQuery" TEXT;
6 | 
7 | -- AlterTable
8 | ALTER TABLE "UserCosmetic" ADD COLUMN     "data" JSONB;
9 | 


--------------------------------------------------------------------------------
/prisma/migrations/20231128212202_add_club_post_cover_image/migration.sql:
--------------------------------------------------------------------------------
1 | BEGIN;
2 | -- AlterTable
3 | ALTER TABLE "ClubPost" ADD COLUMN     "coverImageId" INTEGER;
4 | 
5 | -- AddForeignKey
6 | ALTER TABLE "ClubPost" ADD CONSTRAINT "ClubPost_coverImageId_fkey" FOREIGN KEY ("coverImageId") REFERENCES "Image"("id") ON DELETE SET NULL ON UPDATE CASCADE;
7 | 
8 | COMMIT;
9 | 


--------------------------------------------------------------------------------
/prisma/migrations/20231130143354_remove_buzz_account_id/migration.sql:
--------------------------------------------------------------------------------
1 | BEGIN;
2 | -- AlterTable
3 | ALTER TABLE "Club" DROP COLUMN "buzzAccountId";
4 | 
5 | -- AlterTable
6 | ALTER TABLE "ClubMembership" ALTER COLUMN "expiresAt" DROP NOT NULL;
7 | COMMIT;
8 | 


--------------------------------------------------------------------------------
/prisma/migrations/20231201094437_event_homeblock_type/migration.sql:
--------------------------------------------------------------------------------
1 | -- AlterEnum
2 | ALTER TYPE "HomeBlockType" ADD VALUE 'Event';
3 | 


--------------------------------------------------------------------------------
/prisma/migrations/20231203043804_generation_metrics/migration.sql:
--------------------------------------------------------------------------------
1 | -- AlterTable
2 | ALTER TABLE "ModelMetric" ADD COLUMN     "generationCount" INTEGER NOT NULL DEFAULT 0;
3 | 
4 | -- AlterTable
5 | ALTER TABLE "ModelVersionMetric" ADD COLUMN     "generationCount" INTEGER NOT NULL DEFAULT 0;
6 | 


--------------------------------------------------------------------------------
/prisma/migrations/20231213152614_model_gallery_settings/migration.sql:
--------------------------------------------------------------------------------
1 | -- AlterTable
2 | ALTER TABLE "Model" ADD COLUMN     "gallerySettings" JSONB NOT NULL DEFAULT '{"users": [], "tags": [], "images": []}';
3 | 


--------------------------------------------------------------------------------
/prisma/migrations/20231213153829_add_club_tier_member_limit/migration.sql:
--------------------------------------------------------------------------------
1 | BEGIN;
2 | -- AlterTable
3 | ALTER TABLE "ClubTier" ADD COLUMN     "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
4 | ADD COLUMN     "memberLimit" INTEGER,
5 | ADD COLUMN     "updatedAt" TIMESTAMP(3);
6 | COMMIT;


--------------------------------------------------------------------------------
/prisma/migrations/20231218152300_add_unlisted_availability_to_post_entity_id_club_post/migration.sql:
--------------------------------------------------------------------------------
1 | -- AlterTable
2 | ALTER TABLE "ClubPost" ADD COLUMN     "entityId" INTEGER,
3 | ADD COLUMN     "entityType" TEXT;
4 | 
5 | -- AlterTable
6 | ALTER TABLE "Post" ADD COLUMN     "availability" "Availability" NOT NULL DEFAULT 'Public',
7 | ADD COLUMN     "unlisted" BOOLEAN NOT NULL DEFAULT false;
8 | 


--------------------------------------------------------------------------------
/prisma/migrations/20231222180336_optional_club_post_title_description/migration.sql:
--------------------------------------------------------------------------------
1 | -- AlterTable
2 | ALTER TABLE "ClubPost" ALTER COLUMN "title" DROP NOT NULL,
3 | ALTER COLUMN "description" DROP NOT NULL;


--------------------------------------------------------------------------------
/prisma/migrations/20231223004700_report_type_csam/migration.sql:
--------------------------------------------------------------------------------
1 | 
2 | -- AlterEnum
3 | ALTER TYPE "ReportReason" ADD VALUE 'CSAM';
4 | 


--------------------------------------------------------------------------------
/prisma/migrations/20240105204334_add_one_time_fee_on_club_tier/migration.sql:
--------------------------------------------------------------------------------
1 | -- AlterTable
2 | ALTER TABLE "ClubTier" ADD COLUMN     "oneTimeFee" BOOLEAN NOT NULL DEFAULT false; 


--------------------------------------------------------------------------------
/prisma/migrations/20240111143445_dm_chat_owner/migration.sql:
--------------------------------------------------------------------------------
1 | -- AlterTable
2 | ALTER TABLE "Chat" ADD COLUMN     "ownerId" INTEGER NOT NULL default -1;
3 | 
4 | -- AddForeignKey
5 | ALTER TABLE "Chat" ADD CONSTRAINT "Chat_ownerId_fkey" FOREIGN KEY ("ownerId") REFERENCES "User"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
6 | 


--------------------------------------------------------------------------------
/prisma/migrations/20240111144730_dm_chat_edited_optional/migration.sql:
--------------------------------------------------------------------------------
1 | -- AlterTable
2 | ALTER TABLE "Chat" ALTER COLUMN "ownerId" DROP DEFAULT;
3 | 
4 | -- AlterTable
5 | ALTER TABLE "ChatMessage" ALTER COLUMN "editedAt" DROP NOT NULL;
6 | 


--------------------------------------------------------------------------------
/prisma/migrations/20240112151626_user_settings/migration.sql:
--------------------------------------------------------------------------------
1 | -- AlterTable
2 | ALTER TABLE "User" ADD COLUMN     "settings" JSONB DEFAULT '{}';
3 | 


--------------------------------------------------------------------------------
/prisma/migrations/20240113023932_email_citext/migration.sql:
--------------------------------------------------------------------------------
1 | -- AlterTable
2 | ALTER TABLE "User" ALTER COLUMN "email" SET DATA TYPE CITEXT;
3 | 


--------------------------------------------------------------------------------
/prisma/migrations/20240118213143_tags_on_tags_type/migration.sql:
--------------------------------------------------------------------------------
1 | -- CreateEnum
2 | CREATE TYPE "TagsOnTagsType" AS ENUM ('Parent', 'Replace', 'Append');
3 | 
4 | -- AlterTable
5 | ALTER TABLE "TagsOnTags" ADD COLUMN     "type" "TagsOnTagsType" NOT NULL DEFAULT 'Parent';
6 | 


--------------------------------------------------------------------------------
/prisma/migrations/20240119175458_buzz_claim/migration.sql:
--------------------------------------------------------------------------------
 1 | -- CreateTable
 2 | CREATE TABLE "BuzzClaim" (
 3 |     "key" TEXT NOT NULL,
 4 |     "transactionIdQuery" TEXT NOT NULL,
 5 |     "amount" INTEGER NOT NULL,
 6 |     "availableStart" TIMESTAMP(3),
 7 |     "availableEnd" TIMESTAMP(3),
 8 | 
 9 |     CONSTRAINT "BuzzClaim_pkey" PRIMARY KEY ("key")
10 | );
11 | 


--------------------------------------------------------------------------------
/prisma/migrations/20240121232802_buzz_claim_details/migration.sql:
--------------------------------------------------------------------------------
1 | -- AlterTable
2 | ALTER TABLE "BuzzClaim" ADD COLUMN     "description" TEXT NOT NULL,
3 | ADD COLUMN     "title" TEXT NOT NULL;
4 | 


--------------------------------------------------------------------------------
/prisma/migrations/20240123173456_article_cover_id/migration.sql:
--------------------------------------------------------------------------------
1 | 
2 | 
3 | -- AlterTable
4 | ALTER TABLE "Article" ADD COLUMN IF NOT EXISTS     "coverId" INTEGER;
5 | ALTER TABLE "Article" ALTER COLUMN cover DROP NOT NULL;
6 | 
7 | delete from "Article" where cover like 'blob%'
8 | 


--------------------------------------------------------------------------------
/prisma/migrations/20240125182002_add_unique_on_conected_account_id/migration.sql:
--------------------------------------------------------------------------------
1 | -- CreateIndex
2 | CREATE UNIQUE INDEX "UserStripeConnect_connectedAccountId_key" ON "UserStripeConnect"("connectedAccountId");
3 | 


--------------------------------------------------------------------------------
/prisma/migrations/20240207190207_notification_category/migration.sql:
--------------------------------------------------------------------------------
1 | -- CreateEnum
2 | CREATE TYPE "NotificationCategory" AS ENUM ('Comment', 'Update', 'Milestone', 'Bounty', 'Other');
3 | 
4 | -- AlterTable
5 | ALTER TABLE "Notification" ADD COLUMN     "category" "NotificationCategory" NOT NULL DEFAULT 'Other';
6 | 


--------------------------------------------------------------------------------
/prisma/migrations/20240207200350_tags_on_image_vote_applied/migration.sql:
--------------------------------------------------------------------------------
1 | -- AlterTable
2 | ALTER TABLE "TagsOnImageVote" ADD COLUMN     "applied" BOOLEAN NOT NULL DEFAULT false;
3 | 


--------------------------------------------------------------------------------
/prisma/migrations/20240212151513_add_buzz_withdrawal_status_externally_resolved/migration.sql:
--------------------------------------------------------------------------------
1 | -- AlterEnum
2 | ALTER TYPE "BuzzWithdrawalRequestStatus" ADD VALUE 'ExternallyResolved';
3 |  


--------------------------------------------------------------------------------
/prisma/migrations/20240213195536_additional_notification_categories/migration.sql:
--------------------------------------------------------------------------------
1 | ALTER TYPE "NotificationCategory" ADD VALUE 'Buzz';
2 | ALTER TYPE "NotificationCategory" ADD VALUE 'System';
3 | 


--------------------------------------------------------------------------------
/prisma/migrations/20240217005100_partner_tier/migration.sql:
--------------------------------------------------------------------------------
1 | -- AlterTable
2 | ALTER TABLE "Partner" ADD COLUMN     "tier" INTEGER NOT NULL DEFAULT 0;
3 | 


--------------------------------------------------------------------------------
/prisma/migrations/20240220184546_partner_logo/migration.sql:
--------------------------------------------------------------------------------
1 | -- AlterTable
2 | ALTER TABLE "Partner" ADD COLUMN     "logo" TEXT;
3 | 


--------------------------------------------------------------------------------
/prisma/migrations/20240229155733_vault_item_update_field/migration.sql:
--------------------------------------------------------------------------------
1 | ALTER TABLE "VaultItem" DROP COLUMN "detailsSizeKB",
2 | DROP COLUMN "imagesSizeKB",
3 | DROP COLUMN "modelSizeKB",
4 | ADD COLUMN     "detailsSizeKb" INTEGER NOT NULL,
5 | ADD COLUMN     "imagesSizeKb" INTEGER NOT NULL,
6 | ADD COLUMN     "modelSizeKb" INTEGER NOT NULL;


--------------------------------------------------------------------------------
/prisma/migrations/20240308194924_vault_item_meta_field/migration.sql:
--------------------------------------------------------------------------------
1 | -- AlterTable
2 | ALTER TABLE "VaultItem" ADD COLUMN     "meta" JSONB NOT NULL DEFAULT '{}';
3 | 


--------------------------------------------------------------------------------
/prisma/migrations/20240312143533_vault_item_files_as_json/migration.sql:
--------------------------------------------------------------------------------
1 | -- AlterTable
2 | ALTER TABLE "VaultItem" DROP COLUMN "files",
3 | ADD COLUMN     "files" JSONB NOT NULL DEFAULT '[]';
4 | 


--------------------------------------------------------------------------------
/prisma/migrations/20240312210710_vault_item_indexes/migration.sql:
--------------------------------------------------------------------------------
1 | -- CreateIndex
2 | CREATE INDEX "VaultItem_vaultId_idx" ON "VaultItem" USING HASH ("vaultId");
3 | 
4 | -- CreateIndex
5 | CREATE INDEX "VaultItem_modelVersionId_idx" ON "VaultItem" USING HASH ("modelVersionId");
6 | 


--------------------------------------------------------------------------------
/prisma/migrations/20240321152907_image_resource_strength/migration.sql:
--------------------------------------------------------------------------------
1 | -- AlterTable
2 | ALTER TABLE "ImageResource" ADD COLUMN     "strength" INTEGER;
3 | 


--------------------------------------------------------------------------------
/prisma/migrations/20240329072855_add_dora/migration.sql:
--------------------------------------------------------------------------------
1 | -- AlterEnum
2 | ALTER TYPE "ModelType" ADD VALUE 'DoRA';
3 | 


--------------------------------------------------------------------------------
/prisma/migrations/20240403142806_add_cosmetic_type_profile_decoration/migration.sql:
--------------------------------------------------------------------------------
1 | ALTER TYPE "CosmeticType" ADD VALUE 'ProfileDecoration';
2 | 


--------------------------------------------------------------------------------
/prisma/migrations/20240405133543_dms_add_more_content_type/migration.sql:
--------------------------------------------------------------------------------
1 | ALTER TYPE "ChatMessageType" ADD VALUE 'Image';
2 | ALTER TYPE "ChatMessageType" ADD VALUE 'Video';
3 | ALTER TYPE "ChatMessageType" ADD VALUE 'Audio';
4 | ALTER TYPE "ChatMessageType" ADD VALUE 'Embed';
5 | 


--------------------------------------------------------------------------------
/prisma/migrations/20240409152606_add_cosmetic_reference_to_item/migration.sql:
--------------------------------------------------------------------------------
1 | -- AddForeignKey
2 | ALTER TABLE "CosmeticShopItem" ADD CONSTRAINT "CosmeticShopItem_cosmeticId_fkey" FOREIGN KEY ("cosmeticId") REFERENCES "Cosmetic"("id") ON DELETE CASCADE ON UPDATE CASCADE;


--------------------------------------------------------------------------------
/prisma/migrations/20240409202625_add_shop_item_unit_amount/migration.sql:
--------------------------------------------------------------------------------
1 | -- AlterTable
2 | ALTER TABLE "CosmeticShopItem" DROP COLUMN "unitValue",
3 | ADD COLUMN     "unitAmount" INTEGER NOT NULL;
4 | 
5 | -- AlterTable
6 | ALTER TABLE "UserCosmeticShopPurchases" DROP COLUMN "unitValue",
7 | ADD COLUMN     "unitAmount" INTEGER NOT NULL;


--------------------------------------------------------------------------------
/prisma/migrations/20240411155123_make_image_optional/migration.sql:
--------------------------------------------------------------------------------
1 | -- AlterTable
2 | ALTER TABLE "CosmeticShopSection" ALTER COLUMN "placement" SET DEFAULT 0,
3 | ALTER COLUMN "imageId" DROP NOT NULL;
4 | 


--------------------------------------------------------------------------------
/prisma/migrations/20240411185822_add_cosmetic_type_profile_background/migration.sql:
--------------------------------------------------------------------------------
1 | -- AlterEnum
2 | ALTER TYPE "CosmeticType" ADD VALUE 'ProfileBackground';
3 | 


--------------------------------------------------------------------------------
/prisma/migrations/20240418202619_add_for_id_user_cosmetic/migration.sql:
--------------------------------------------------------------------------------
1 | -- AlterTable
2 | ALTER TABLE "CosmeticShopSection" ADD COLUMN     "published" BOOLEAN NOT NULL DEFAULT true;
3 | 
4 | -- AlterTable
5 | ALTER TABLE "UserCosmetic" ADD COLUMN     "forId" INTEGER,
6 | ADD COLUMN     "forType" "CosmeticEntity";
7 | 


--------------------------------------------------------------------------------
/prisma/migrations/20240423150723_add_user_public_settings/migration.sql:
--------------------------------------------------------------------------------
1 | -- AlterTable
2 | ALTER TABLE "User" ADD COLUMN     "publicSettings" JSONB DEFAULT '{}';
3 | 


--------------------------------------------------------------------------------
/prisma/migrations/20240504220623_file_override_name/migration.sql:
--------------------------------------------------------------------------------
1 | -- AlterTable
2 | ALTER TABLE "ModelFile" ADD COLUMN     "overrideName" TEXT;
3 | 


--------------------------------------------------------------------------------
/prisma/migrations/20240509145855_add_domain_to_tool/migration.sql:
--------------------------------------------------------------------------------
1 | -- AlterTable
2 | ALTER TABLE "Tool"
3 |   ADD COLUMN "domain" TEXT;
4 | 


--------------------------------------------------------------------------------
/prisma/migrations/20240516171837_add_editor_to_tooltype/migration.sql:
--------------------------------------------------------------------------------
1 | ALTER TYPE "ToolType" ADD VALUE 'Editor';
2 | 


--------------------------------------------------------------------------------
/prisma/migrations/20240524211244_add_training_statuses/migration.sql:
--------------------------------------------------------------------------------
1 | ALTER TYPE "TrainingStatus" ADD VALUE 'Paused';
2 | ALTER TYPE "TrainingStatus" ADD VALUE 'Denied';
3 | 


--------------------------------------------------------------------------------
/prisma/migrations/20240528185514_early_access_v2_nits/migration.sql:
--------------------------------------------------------------------------------
1 | 
2 | -- AlterTable
3 | ALTER TABLE "ModelVersion" ALTER COLUMN "earlyAccessConfig" DROP NOT NULL,
4 | ALTER COLUMN "earlyAccessConfig" DROP DEFAULT;
5 | 


--------------------------------------------------------------------------------
/prisma/migrations/20240528212836_muted_confirmed/migration.sql:
--------------------------------------------------------------------------------
1 | -- AlterTable
2 | ALTER TABLE "User" ADD COLUMN     "muteConfirmedAt" TIMESTAMP(3);
3 | 


--------------------------------------------------------------------------------
/prisma/migrations/20240528220022_exclude_from_leaderboards/migration.sql:
--------------------------------------------------------------------------------
1 | -- AlterTable
2 | ALTER TABLE "User"
3 | ADD COLUMN     "excludeFromLeaderboards" BOOLEAN NOT NULL DEFAULT false;
4 | 


--------------------------------------------------------------------------------
/prisma/migrations/20240603200922_tool_priority/migration.sql:
--------------------------------------------------------------------------------
1 | 
2 | -- AlterTable
3 | ALTER TABLE "Tool" ADD COLUMN     "priority" INTEGER;
4 | 


--------------------------------------------------------------------------------
/prisma/migrations/20240604172025_api_key_type/migration.sql:
--------------------------------------------------------------------------------
 1 | 
 2 | -- CreateEnum
 3 | CREATE TYPE "ApiKeyType" AS ENUM ('System', 'User');
 4 | 
 5 | ALTER TYPE "KeyScope" ADD VALUE 'Generate';
 6 | 
 7 | -- AlterTable
 8 | ALTER TABLE "ApiKey" ADD COLUMN     "expiresAt" TIMESTAMP(3),
 9 | ADD COLUMN     "type" "ApiKeyType" NOT NULL DEFAULT 'User';
10 | 


--------------------------------------------------------------------------------
/prisma/migrations/20240606185927_tool_description/migration.sql:
--------------------------------------------------------------------------------
1 | -- AlterTable
2 | ALTER TABLE "Tool" ADD COLUMN     "description" TEXT;
3 | 


--------------------------------------------------------------------------------
/prisma/migrations/20240610185726_add_minor_field/migration.sql:
--------------------------------------------------------------------------------
1 | -- AlterTable
2 | ALTER TABLE "Model" ADD COLUMN "minor" BOOLEAN NOT NULL DEFAULT false;


--------------------------------------------------------------------------------
/prisma/migrations/20240613183520_csam_report_type/migration.sql:
--------------------------------------------------------------------------------
1 | 
2 | -- CreateEnum
3 | CREATE TYPE "CsamReportType" AS ENUM ('Image', 'TrainingData');
4 | 
5 | -- AlterTable
6 | ALTER TABLE "CsamReport" ADD COLUMN     "type" "CsamReportType" NOT NULL DEFAULT 'Image';
7 | 


--------------------------------------------------------------------------------
/prisma/migrations/20240613215736_collection_item_tag_id/migration.sql:
--------------------------------------------------------------------------------
1 | -- AlterTable
2 | ALTER TABLE "CollectionItem" ADD COLUMN     "tagId" INTEGER;
3 |  
4 | -- AddForeignKey
5 | ALTER TABLE "CollectionItem" ADD CONSTRAINT "CollectionItem_tagId_fkey" FOREIGN KEY ("tagId") REFERENCES "Tag"("id") ON DELETE SET NULL ON UPDATE CASCADE;
6 | 
7 | ALTER TYPE "TagTarget" ADD VALUE 'Collection';
8 | 


--------------------------------------------------------------------------------
/prisma/migrations/20240619092115_reward_eligibility/migration.sql:
--------------------------------------------------------------------------------
1 | -- CreateEnum
2 | CREATE TYPE "RewardsEligibility" AS ENUM ('Eligible', 'Ineligible', 'Protected');
3 | 
4 | -- AlterTable
5 | ALTER TABLE "User"
6 | ADD COLUMN     "eligibilityChangedAt" TIMESTAMP(3),
7 | ADD COLUMN     "rewardsEligibility" "RewardsEligibility" NOT NULL DEFAULT 'Eligible';
8 | 


--------------------------------------------------------------------------------
/prisma/migrations/20240619152041_entity_collaborator_last_message_sent_at/migration.sql:
--------------------------------------------------------------------------------
1 | -- AlterTable
2 | ALTER TABLE "EntityCollaborator" ADD COLUMN     "lastMessageSentAt" TIMESTAMP(3);
3 |  


--------------------------------------------------------------------------------
/prisma/migrations/20240619181506_add_video_url/migration.sql:
--------------------------------------------------------------------------------
1 | ALTER TABLE "Cosmetic" ADD COLUMN "videoUrl" TEXT;
2 | 


--------------------------------------------------------------------------------
/prisma/migrations/20240619185235_add_video_url_to_cosmetic_shop_item/migration.sql:
--------------------------------------------------------------------------------
1 | -- AlterTable
2 | ALTER TABLE "CosmeticShopItem" ADD COLUMN "videoUrl" TEXT;
3 | 


--------------------------------------------------------------------------------
/prisma/migrations/20240620155119_user_engagement_type_block/migration.sql:
--------------------------------------------------------------------------------
1 | -- AlterEnum
2 | ALTER TYPE "UserEngagementType" ADD VALUE 'Block';
3 | 


--------------------------------------------------------------------------------
/prisma/migrations/20240620165739_rollback_add_video_url_cosmetic_shop_item/migration.sql:
--------------------------------------------------------------------------------
1 | -- AlterTable
2 | ALTER TABLE "CosmeticShopItem" DROP COLUMN "videoUrl";


--------------------------------------------------------------------------------
/prisma/migrations/20240624134110_tool_metadata/migration.sql:
--------------------------------------------------------------------------------
1 | -- AlterTable
2 | ALTER TABLE "Tool" ADD COLUMN     "metadata" JSONB NOT NULL DEFAULT '{}';
3 | 


--------------------------------------------------------------------------------
/prisma/migrations/20240725040405_simplify_run_strat/migration.sql:
--------------------------------------------------------------------------------
1 | ALTER TABLE "RunStrategy" DROP CONSTRAINT "RunStrategy_pkey",
2 | DROP COLUMN "id",
3 | ADD CONSTRAINT "RunStrategy_pkey" PRIMARY KEY ("modelVersionId", "partnerId");
4 | 


--------------------------------------------------------------------------------
/prisma/migrations/20240809155038_add_paddle_customer_id/migration.sql:
--------------------------------------------------------------------------------
1 | -- AlterTable
2 | ALTER TABLE "User" ADD COLUMN     "paddleCustomerId" TEXT;
3 | -- CreateIndex
4 | CREATE UNIQUE INDEX "User_paddleCustomerId_key" ON "User"("paddleCustomerId");
5 |  


--------------------------------------------------------------------------------
/prisma/migrations/20240809230424_tag_source_image_hash/migration.sql:
--------------------------------------------------------------------------------
1 | -- AlterEnum
2 | ALTER TYPE "TagSource" ADD VALUE 'ImageHash';
3 | 


--------------------------------------------------------------------------------
/prisma/migrations/20240830173458_add_upload_type_to_mv/migration.sql:
--------------------------------------------------------------------------------
1 | ALTER TABLE "ModelVersion" ADD COLUMN "uploadType" "ModelUploadType" NOT NULL DEFAULT 'Created';
2 | 
3 | UPDATE "ModelVersion" mv
4 | SET "uploadType" = m."uploadType"
5 | FROM "Model" m
6 | WHERE m.id = mv."modelId";
7 | 
8 | -- rerun the above after push
9 | 


--------------------------------------------------------------------------------
/prisma/migrations/20240930191432_add_cosmetic_shop_home_block_type/migration.sql:
--------------------------------------------------------------------------------
1 | -- AlterEnum
2 | ALTER TYPE "HomeBlockType" ADD VALUE 'CosmeticShop';
3 |  


--------------------------------------------------------------------------------
/prisma/migrations/20240930192521_model_flag_details_column/migration.sql:
--------------------------------------------------------------------------------
1 | -- AlterTable
2 | ALTER TABLE "ModelFlag" ADD COLUMN     "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
3 | ADD COLUMN     "details" JSONB;
4 | 


--------------------------------------------------------------------------------
/prisma/migrations/20241003192438_model_flag_poi_name_column/migration.sql:
--------------------------------------------------------------------------------
1 | -- AlterTable
2 | ALTER TABLE "ModelFlag" DROP COLUMN "nameNsfw",
3 | ADD COLUMN     "poiName" BOOLEAN NOT NULL DEFAULT false;
4 | 
5 | -- CreateIndex
6 | CREATE INDEX "ModelFlag_status_idx" ON "ModelFlag"("status");
7 | 


--------------------------------------------------------------------------------
/prisma/migrations/20241012021355_add_buzz_claim_account_type/migration.sql:
--------------------------------------------------------------------------------
1 | 
2 | -- CreateEnum
3 | CREATE TYPE "BuzzAccountType" AS ENUM ('user', 'generation', 'club');
4 | 
5 | -- AlterTable
6 | ALTER TABLE "BuzzClaim" ADD COLUMN     "accountType" "BuzzAccountType" NOT NULL DEFAULT 'user';


--------------------------------------------------------------------------------
/prisma/migrations/20241012023023_add_buzz_use_multiplier/migration.sql:
--------------------------------------------------------------------------------
1 | -- AlterTable
2 | ALTER TABLE "BuzzClaim" ADD COLUMN     "useMultiplier" BOOLEAN NOT NULL DEFAULT false;
3 | 


--------------------------------------------------------------------------------
/prisma/migrations/20241015005553_image_rating_request_weight/migration.sql:
--------------------------------------------------------------------------------
1 | -- AlterTable
2 | ALTER TABLE "ImageRatingRequest" ADD COLUMN     "weight" INTEGER NOT NULL DEFAULT 1;
3 | 


--------------------------------------------------------------------------------
/prisma/migrations/20241016175736_announncement_enabled/migration.sql:
--------------------------------------------------------------------------------
1 | -- AlterTable
2 | ALTER TABLE "Announcement" ADD COLUMN     "enabled" BOOLEAN NOT NULL DEFAULT false;
3 | 


--------------------------------------------------------------------------------
/prisma/migrations/20241016185054_announcement_disabled/migration.sql:
--------------------------------------------------------------------------------
 1 | /*
 2 |   Warnings:
 3 | 
 4 |   - You are about to drop the column `enabled` on the `Announcement` table. All the data in the column will be lost.
 5 | 
 6 | */
 7 | -- AlterTable
 8 | ALTER TABLE "Announcement" DROP COLUMN "enabled",
 9 | ADD COLUMN     "disabled" BOOLEAN NOT NULL DEFAULT false;
10 | 


--------------------------------------------------------------------------------
/prisma/migrations/20241018200359_blocklist/migration.sql:
--------------------------------------------------------------------------------
 1 | -- CreateTable
 2 | CREATE TABLE "Blocklist" (
 3 |     "id" SERIAL NOT NULL,
 4 |     "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
 5 |     "updatedAt" TIMESTAMP(3) NOT NULL,
 6 |     "type" TEXT NOT NULL,
 7 |     "data" TEXT[],
 8 | 
 9 |     CONSTRAINT "Blocklist_pkey" PRIMARY KEY ("id")
10 | );
11 | 


--------------------------------------------------------------------------------
/prisma/migrations/20241106162157_tool_supported_column/migration.sql:
--------------------------------------------------------------------------------
1 | -- AlterTable
2 | ALTER TABLE "Tool" ADD COLUMN     "supported" BOOLEAN NOT NULL DEFAULT false;
3 | 


--------------------------------------------------------------------------------
/prisma/migrations/20241119204932_add_pending_manual_ingestion_enum_value/migration.sql:
--------------------------------------------------------------------------------
1 | ALTER TYPE "ImageIngestionStatus" ADD VALUE 'PendingManualAssignment';


--------------------------------------------------------------------------------
/prisma/migrations/20241119210536_tool_company_column/migration.sql:
--------------------------------------------------------------------------------
1 | -- AlterTable
2 | ALTER TABLE "Tool" ADD COLUMN     "company" TEXT;
3 | 


--------------------------------------------------------------------------------
/prisma/migrations/20241126224738_add_filterable_only_to_collection_tags/migration.sql:
--------------------------------------------------------------------------------
1 | ALTER TABLE "TagsOnCollection" ADD COLUMN     "filterableOnly" BOOLEAN NOT NULL DEFAULT false;


--------------------------------------------------------------------------------
/prisma/migrations/20241204170604_disable_partners/migration.sql:
--------------------------------------------------------------------------------
1 | -- AlterTable
2 | ALTER TABLE "Partner" ADD COLUMN     "disabled" BOOLEAN NOT NULL DEFAULT false;
3 | 


--------------------------------------------------------------------------------
/prisma/migrations/20241206194713_tool_unlisted_column/migration.sql:
--------------------------------------------------------------------------------
1 | -- AlterTable
2 | ALTER TABLE "Tool" ADD COLUMN     "unlisted" BOOLEAN NOT NULL DEFAULT false;
3 | 


--------------------------------------------------------------------------------
/prisma/migrations/20241210165550_add_tag_source/migration.sql:
--------------------------------------------------------------------------------
1 | 
2 | -- AlterEnum
3 | ALTER TYPE "TagSource" ADD VALUE 'Hive';
4 | 


--------------------------------------------------------------------------------
/prisma/migrations/20241211191542_image_minor_field/migration.sql:
--------------------------------------------------------------------------------
1 | -- AlterTable
2 | ALTER TABLE "Image" ADD COLUMN     "minor" BOOLEAN NOT NULL DEFAULT false;
3 | 


--------------------------------------------------------------------------------
/prisma/migrations/20241220035102_buzz_claim_limit/migration.sql:
--------------------------------------------------------------------------------
1 | -- AlterTable
2 | ALTER TABLE "BuzzClaim"
3 | ADD COLUMN     "claimed" INTEGER NOT NULL DEFAULT 0,
4 | ADD COLUMN     "limit" INTEGER;
5 | 


--------------------------------------------------------------------------------
/prisma/migrations/20241220050455_minor_detection_tag_source/migration.sql:
--------------------------------------------------------------------------------
1 | ALTER TYPE "TagSource" ADD VALUE 'MinorDetection';
2 | 


--------------------------------------------------------------------------------
/prisma/migrations/20250114185408_add_tool_type_llm/migration.sql:
--------------------------------------------------------------------------------
1 | -- AlterEnum
2 | ALTER TYPE "ToolType" ADD VALUE 'LLM';
3 | 


--------------------------------------------------------------------------------
/prisma/migrations/20250120222939_model_type_detection/migration.sql:
--------------------------------------------------------------------------------
1 | -- AlterEnum
2 | ALTER TYPE "ModelType" ADD VALUE 'Detection';
3 | 


--------------------------------------------------------------------------------
/prisma/migrations/20250122210402_model_usage_control/migration.sql:
--------------------------------------------------------------------------------
1 | -- CreateEnum
2 | CREATE TYPE "ModelUsageControl" AS ENUM ('Download', 'Generation', 'InternalGeneration');
3 | 
4 | -- AlterTable
5 | ALTER TABLE "ModelVersion" ADD COLUMN     "usageControl" "ModelUsageControl" NOT NULL DEFAULT 'Download';
6 |  


--------------------------------------------------------------------------------
/prisma/migrations/20250123000929_hive_demographics/migration.sql:
--------------------------------------------------------------------------------
1 | -- AlterEnum
2 | ALTER TYPE "TagSource" ADD VALUE 'HiveDemographics';
3 | 


--------------------------------------------------------------------------------
/prisma/migrations/20250124000257_tool_alias/migration.sql:
--------------------------------------------------------------------------------
1 | -- AlterTable
2 | ALTER TABLE "Tool" ADD COLUMN     "alias" TEXT;
3 | 


--------------------------------------------------------------------------------
/prisma/migrations/20250131152943_many_to_many_table_relation/migration.sql:
--------------------------------------------------------------------------------
1 | -- DropIndex
2 | DROP INDEX "_LicenseToModel_AB_unique";
3 | DROP INDEX "_LicenseToModel_B_index";
4 | 


--------------------------------------------------------------------------------
/prisma/migrations/20250131232938_comment_v2_pinned_at/migration.sql:
--------------------------------------------------------------------------------
1 | 
2 | -- AlterTable
3 | ALTER TABLE "CommentV2" ADD COLUMN     "pinnedAt" TIMESTAMP(3);
4 | 
5 | -- CreateIndex
6 | CREATE INDEX "Thread_rootThreadId_idx" ON "Thread" USING HASH ("rootThreadId");
7 | 


--------------------------------------------------------------------------------
/prisma/migrations/20250219183115_user_index_deleted_at/migration.sql:
--------------------------------------------------------------------------------
1 | CREATE INDEX user_deletedAt_idx ON "User" ("deletedAt");
2 | 
3 | CREATE INDEX UserEngagement_type_userId ON "UserEngagement" (type, "userId");
4 | 


--------------------------------------------------------------------------------
/prisma/migrations/20250219221820_add_auction_slug_active/migration.sql:
--------------------------------------------------------------------------------
1 | ALTER TABLE "AuctionBase" ADD COLUMN     "active" BOOLEAN NOT NULL DEFAULT true,
2 | ADD COLUMN     "slug" TEXT NOT NULL;
3 | 
4 | CREATE UNIQUE INDEX "AuctionBase_slug_key" ON "AuctionBase"("slug");
5 | 


--------------------------------------------------------------------------------
/prisma/migrations/20250219230130_post_metric_age_group/migration.sql:
--------------------------------------------------------------------------------
1 | 
2 | ALTER TABLE "PostMetric"
3 | ADD COLUMN IF NOT EXISTS "ageGroup" public."MetricTimeframe" DEFAULT 'Day'::public."MetricTimeframe" NOT NULL;
4 | 


--------------------------------------------------------------------------------
/prisma/migrations/20250219230130_post_metric_index_age_group/migration.sql:
--------------------------------------------------------------------------------
1 | CREATE INDEX CONCURRENTLY "PostMetric_postId_ageGroup" ON "PostMetric" ("postId", "ageGroup");


--------------------------------------------------------------------------------
/prisma/migrations/20250221044718_add_tipalti_withdrawal_method/migration.sql:
--------------------------------------------------------------------------------
1 | 
2 | -- AlterTable
3 | ALTER TABLE "UserPaymentConfiguration" ADD COLUMN     "tipaltiWithdrawalMethod" "CashWithdrawalMethod";
4 |  


--------------------------------------------------------------------------------
/prisma/migrations/20250227204740_make_created_at_updated_at_nullable/migration.sql:
--------------------------------------------------------------------------------
1 | -- AlterTable
2 | ALTER TABLE "CashWithdrawal" ALTER COLUMN "createdAt" DROP NOT NULL,
3 | ALTER COLUMN "updatedAt" DROP NOT NULL;
4 |  


--------------------------------------------------------------------------------
/prisma/migrations/20250313162509_drop_log/migration.sql:
--------------------------------------------------------------------------------
1 | -- DropTable
2 | DROP TABLE "Log";
3 | 


--------------------------------------------------------------------------------
/prisma/migrations/20250318165942_moderation_rules_created_by/migration.sql:
--------------------------------------------------------------------------------
1 | -- AlterTable
2 | ALTER TABLE "ModerationRule" ADD COLUMN     "createdById" INTEGER NOT NULL;
3 | 
4 | -- AddForeignKey
5 | ALTER TABLE "ModerationRule" ADD CONSTRAINT "ModerationRule_createdById_fkey" FOREIGN KEY ("createdById") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE;
6 | 


--------------------------------------------------------------------------------
/prisma/migrations/20250319124141_add_dates_to_auction_base/migration.sql:
--------------------------------------------------------------------------------
1 | ALTER TABLE "AuctionBase"
2 |   ADD COLUMN "runForDays"   INTEGER NOT NULL DEFAULT 1,
3 |   ADD COLUMN "validForDays" INTEGER NOT NULL DEFAULT 1;
4 | 


--------------------------------------------------------------------------------
/prisma/migrations/20250324192007_add_image_poi/migration.sql:
--------------------------------------------------------------------------------
1 | -- AlterTable
2 | ALTER TABLE "Image" ADD COLUMN     "poi" BOOLEAN NOT NULL DEFAULT false;
3 | 


--------------------------------------------------------------------------------
/prisma/migrations/20250407094141_model_metrics_earned_amount/migration.sql:
--------------------------------------------------------------------------------
1 | ALTER TABLE "ModelVersionMetric" ADD COLUMN "earnedAmount" INT DEFAULT 0 NOT NULL;
2 | ALTER TABLE "ModelMetric" ADD COLUMN "earnedAmount" INT DEFAULT 0 NOT NULL;
3 | 


--------------------------------------------------------------------------------
/prisma/migrations/20250417190811_add_image_acceptable_minor/migration.sql:
--------------------------------------------------------------------------------
1 | -- AlterTable
2 | ALTER TABLE "Image" ADD COLUMN     "acceptableMinor" BOOLEAN NOT NULL DEFAULT false;
3 |  


--------------------------------------------------------------------------------
/prisma/migrations/20250425193919_add_model_sfw_only/migration.sql:
--------------------------------------------------------------------------------
1 | 
2 | -- AlterTable
3 | ALTER TABLE "Model" ADD COLUMN     "sfwOnly" BOOLEAN NOT NULL DEFAULT false;


--------------------------------------------------------------------------------
/prisma/migrations/20250425195241_image_needs_review_index/migration.sql:
--------------------------------------------------------------------------------
1 | DROP INDEX IF EXISTS "Image_nsfw";
2 | 
3 | DROP INDEX IF EXISTS "Image_needsReview_index";
4 | 
5 | CREATE INDEX "Image_needsReview_index" ON "Image"("needsReview") WHERE "needsReview" IS NOT NULL;


--------------------------------------------------------------------------------
/prisma/migrations/20250425225502_add_model_flag_sfw_only/migration.sql:
--------------------------------------------------------------------------------
1 |  -- AlterTable
2 | ALTER TABLE "ModelFlag" ADD COLUMN     "sfwOnly" BOOLEAN NOT NULL DEFAULT false;
3 |  


--------------------------------------------------------------------------------
/prisma/migrations/20250508191050_new_order_rank_icon_column/migration.sql:
--------------------------------------------------------------------------------
1 | -- AlterTable
2 | ALTER TABLE "NewOrderRank" ADD COLUMN     "iconUrl" TEXT;
3 | 


--------------------------------------------------------------------------------
/prisma/migrations/20250513094141_add_sticky_to_changelog/migration.sql:
--------------------------------------------------------------------------------
1 | ALTER TABLE "Changelog" ADD COLUMN "sticky" boolean NOT NULL DEFAULT false;
2 | 


--------------------------------------------------------------------------------
/prisma/migrations/20250513144141_add_incident_type/migration.sql:
--------------------------------------------------------------------------------
1 | ALTER TYPE "ChangelogType" ADD VALUE 'Incident';
2 | 


--------------------------------------------------------------------------------
/prisma/migrations/20250614053144_remove_article_cover_id_fkey/migration.sql:
--------------------------------------------------------------------------------
1 | BEGIN;
2 | CREATE INDEX "Image_blocked_idx" ON "Image" ("ingestion", "blockedFor") WHERE "ingestion" = 'Blocked' AND "blockedFor" != 'AiNotVerified';
3 | COMMIT;
4 | 
5 | BEGIN;
6 | -- DropForeignKey
7 | ALTER TABLE "Article" DROP CONSTRAINT "Article_coverId_fkey";
8 | COMMIT;
9 | 


--------------------------------------------------------------------------------
/prisma/migrations/20250702102300_basemodeltype_default/migration.sql:
--------------------------------------------------------------------------------
1 | ALTER TABLE "ModelVersion" ALTER COLUMN "baseModelType" SET DEFAULT 'Standard';
2 | 
3 | UPDATE "ModelVersion"
4 | SET "baseModelType" = 'Standard'
5 | WHERE "baseModelType" IS NULL;
6 | 
7 | ALTER TABLE "ModelVersion" ALTER COLUMN "baseModelType" SET NOT NULL;
8 | 


--------------------------------------------------------------------------------
/prisma/migrations/migration_lock.toml:
--------------------------------------------------------------------------------
1 | # Please do not edit this file manually
2 | # It should be added in your version-control system (e.g., Git)
3 | provider = "postgresql"


--------------------------------------------------------------------------------
/prisma/programmability/IIF.sql:
--------------------------------------------------------------------------------
1 | CREATE OR REPLACE function iif(condition boolean, true_result anyelement, false_result anyelement) returns anyelement
2 | immutable
3 | language sql as
4 | $
5 | SELECT CASE WHEN condition THEN true_result ELSE false_result END
6 | $;


--------------------------------------------------------------------------------
/prisma/programmability/is_new_user.sql:
--------------------------------------------------------------------------------
 1 | CREATE OR REPLACE FUNCTION is_new_user(userId INT)
 2 | RETURNS BOOLEAN AS $
 3 | DECLARE
 4 |     isNew BOOLEAN;
 5 | BEGIN
 6 |     SELECT "createdAt" > now() - interval '2 hours'
 7 |     INTO isNew
 8 |     FROM "User"
 9 |     WHERE id = userId;
10 | 
11 |     RETURN isNew;
12 | END;
13 | $ LANGUAGE plpgsql;
14 | 


--------------------------------------------------------------------------------
/prisma/programmability/months_between.sql:
--------------------------------------------------------------------------------
1 | CREATE OR REPLACE FUNCTION months_between(
2 |   from_date TIMESTAMP,
3 |   to_date TIMESTAMP
4 | ) RETURNS INTEGER AS $
5 | BEGIN
6 |   RETURN CEIL(EXTRACT(YEAR FROM AGE(to_date, from_date)) * 12 + EXTRACT(MONTH FROM AGE(to_date, from_date)));
7 | END;
8 | $ LANGUAGE plpgsql;


--------------------------------------------------------------------------------
/public/favicon-blue.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/favicon-blue.ico


--------------------------------------------------------------------------------
/public/favicon-green.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/favicon-green.ico


--------------------------------------------------------------------------------
/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/favicon.ico


--------------------------------------------------------------------------------
/public/fonts/Montserrat-Bold.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/fonts/Montserrat-Bold.ttf


--------------------------------------------------------------------------------
/public/fonts/Montserrat-Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/fonts/Montserrat-Regular.ttf


--------------------------------------------------------------------------------
/public/images/android-chrome-192x192.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/android-chrome-192x192.png


--------------------------------------------------------------------------------
/public/images/android-chrome-512x512.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/android-chrome-512x512.png


--------------------------------------------------------------------------------
/public/images/apple-touch-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/apple-touch-icon.png


--------------------------------------------------------------------------------
/public/images/base-badge.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/base-badge.png


--------------------------------------------------------------------------------
/public/images/become-a-member/120x600.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/become-a-member/120x600.jpg


--------------------------------------------------------------------------------
/public/images/become-a-member/300x100.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/become-a-member/300x100.jpg


--------------------------------------------------------------------------------
/public/images/become-a-member/300x250.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/become-a-member/300x250.jpg


--------------------------------------------------------------------------------
/public/images/become-a-member/300x600.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/become-a-member/300x600.jpg


--------------------------------------------------------------------------------
/public/images/become-a-member/728x90.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/become-a-member/728x90.jpg


--------------------------------------------------------------------------------
/public/images/become-a-member/970x250.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/become-a-member/970x250.jpg


--------------------------------------------------------------------------------
/public/images/become-a-member/970x90.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/become-a-member/970x90.jpg


--------------------------------------------------------------------------------
/public/images/civ-c.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/civ-c.png


--------------------------------------------------------------------------------
/public/images/civbot-judge.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/civbot-judge.png


--------------------------------------------------------------------------------
/public/images/civitai-default-account-bg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/civitai-default-account-bg.png


--------------------------------------------------------------------------------
/public/images/civitai_chopped_dark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/civitai_chopped_dark.png


--------------------------------------------------------------------------------
/public/images/daily-challenge-hero.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/daily-challenge-hero.png


--------------------------------------------------------------------------------
/public/images/event/holiday2024/ahh_logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/event/holiday2024/ahh_logo.png


--------------------------------------------------------------------------------
/public/images/favicon-16x16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/favicon-16x16.png


--------------------------------------------------------------------------------
/public/images/favicon-32x32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/favicon-32x32.png


--------------------------------------------------------------------------------
/public/images/favicon-green.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/favicon-green.png


--------------------------------------------------------------------------------
/public/images/games/new-order-animated-bg.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/games/new-order-animated-bg.webp


--------------------------------------------------------------------------------
/public/images/games/new-order-title.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/games/new-order-title.png


--------------------------------------------------------------------------------
/public/images/holiday/deer-glow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/holiday/deer-glow.png


--------------------------------------------------------------------------------
/public/images/holiday/deer-nose.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/holiday/deer-nose.png


--------------------------------------------------------------------------------
/public/images/holiday/deer.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/holiday/deer.png


--------------------------------------------------------------------------------
/public/images/holiday/ghost.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/holiday/ghost.png


--------------------------------------------------------------------------------
/public/images/holiday/happy-holidays-robot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/holiday/happy-holidays-robot.png


--------------------------------------------------------------------------------
/public/images/holiday/partners/rundiffusion.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/holiday/partners/rundiffusion.png


--------------------------------------------------------------------------------
/public/images/holiday/santa-hat.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/holiday/santa-hat.png


--------------------------------------------------------------------------------
/public/images/holiday/wreath.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/holiday/wreath.png


--------------------------------------------------------------------------------
/public/images/imrs.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/imrs.webp


--------------------------------------------------------------------------------
/public/images/link/activity.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/link/activity.png


--------------------------------------------------------------------------------
/public/images/link/download.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/link/download.png


--------------------------------------------------------------------------------
/public/images/link/glance.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/link/glance.png


--------------------------------------------------------------------------------
/public/images/link/pair.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/link/pair.png


--------------------------------------------------------------------------------
/public/images/logo_dark_mode.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/logo_dark_mode.png


--------------------------------------------------------------------------------
/public/images/logo_light_mode.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/logo_light_mode.png


--------------------------------------------------------------------------------
/public/images/media/cover.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/media/cover.png


--------------------------------------------------------------------------------
/public/images/media/whoops.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/media/whoops.jpg


--------------------------------------------------------------------------------
/public/images/newsletter-banner.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/newsletter-banner.png


--------------------------------------------------------------------------------
/public/images/product/vault/lp-main.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/product/vault/lp-main.png


--------------------------------------------------------------------------------
/public/images/shop/civitai-air/anne-horel-banner.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/shop/civitai-air/anne-horel-banner.png


--------------------------------------------------------------------------------
/public/images/shop/civitai-air/anne-horel-mobile.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/shop/civitai-air/anne-horel-mobile.png


--------------------------------------------------------------------------------
/public/images/shop/civitai-air/digital-feline-i-alt.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/shop/civitai-air/digital-feline-i-alt.png


--------------------------------------------------------------------------------
/public/images/shop/civitai-air/digital-feline-i.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/shop/civitai-air/digital-feline-i.png


--------------------------------------------------------------------------------
/public/images/shop/civitai-air/digital-feline-ii-alt.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/shop/civitai-air/digital-feline-ii-alt.png


--------------------------------------------------------------------------------
/public/images/shop/civitai-air/digital-feline-ii.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/shop/civitai-air/digital-feline-ii.png


--------------------------------------------------------------------------------
/public/images/shop/civitai-air/digital-feline-iii-alt.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/shop/civitai-air/digital-feline-iii-alt.png


--------------------------------------------------------------------------------
/public/images/shop/civitai-air/digital-feline-iii.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/shop/civitai-air/digital-feline-iii.png


--------------------------------------------------------------------------------
/public/images/shop/civitai-air/digital-feline-iv-alt.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/shop/civitai-air/digital-feline-iv-alt.png


--------------------------------------------------------------------------------
/public/images/shop/civitai-air/digital-feline-iv.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/shop/civitai-air/digital-feline-iv.png


--------------------------------------------------------------------------------
/public/images/shop/civitai-merch/1girl-bubble-free-stickers.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/shop/civitai-merch/1girl-bubble-free-stickers.webp


--------------------------------------------------------------------------------
/public/images/shop/civitai-merch/1girl-clear-case-for-iphone.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/shop/civitai-merch/1girl-clear-case-for-iphone.webp


--------------------------------------------------------------------------------
/public/images/shop/civitai-merch/1girl-clear-case-for-samsung.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/shop/civitai-merch/1girl-clear-case-for-samsung.webp


--------------------------------------------------------------------------------
/public/images/shop/civitai-merch/1girl-holographic-stickers.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/shop/civitai-merch/1girl-holographic-stickers.webp


--------------------------------------------------------------------------------
/public/images/shop/civitai-merch/1girl-sans-civitai-bubble-free-stickers.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/shop/civitai-merch/1girl-sans-civitai-bubble-free-stickers.webp


--------------------------------------------------------------------------------
/public/images/shop/civitai-merch/1girl-sans-civitai-holographic-stickers.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/shop/civitai-merch/1girl-sans-civitai-holographic-stickers.webp


--------------------------------------------------------------------------------
/public/images/shop/civitai-merch/1girl-unisex-hoodie.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/shop/civitai-merch/1girl-unisex-hoodie.webp


--------------------------------------------------------------------------------
/public/images/shop/civitai-merch/all-the-stickers-sticker-sheet.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/shop/civitai-merch/all-the-stickers-sticker-sheet.webp


--------------------------------------------------------------------------------
/public/images/shop/civitai-merch/bubble-free-stickers-3.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/shop/civitai-merch/bubble-free-stickers-3.webp


--------------------------------------------------------------------------------
/public/images/shop/civitai-merch/catz-bubble-free-stickers.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/shop/civitai-merch/catz-bubble-free-stickers.webp


--------------------------------------------------------------------------------
/public/images/shop/civitai-merch/catz-holographic-stickers.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/shop/civitai-merch/catz-holographic-stickers.webp


--------------------------------------------------------------------------------
/public/images/shop/civitai-merch/civitai-merch-banner.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/shop/civitai-merch/civitai-merch-banner.png


--------------------------------------------------------------------------------
/public/images/shop/civitai-merch/clear-case-for-samsung.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/shop/civitai-merch/clear-case-for-samsung.webp


--------------------------------------------------------------------------------
/public/images/shop/civitai-merch/disco-elips-ium-bubble-free-stickers.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/shop/civitai-merch/disco-elips-ium-bubble-free-stickers.webp


--------------------------------------------------------------------------------
/public/images/shop/civitai-merch/disco-elips-ium-holographic-stickers.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/shop/civitai-merch/disco-elips-ium-holographic-stickers.webp


--------------------------------------------------------------------------------
/public/images/shop/civitai-merch/edgy-civitai-bubble-free-stickers.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/shop/civitai-merch/edgy-civitai-bubble-free-stickers.webp


--------------------------------------------------------------------------------
/public/images/shop/civitai-merch/edgy-civitai-holographic-stickers.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/shop/civitai-merch/edgy-civitai-holographic-stickers.webp


--------------------------------------------------------------------------------
/public/images/shop/civitai-merch/edgy-white-glossy-mug.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/shop/civitai-merch/edgy-white-glossy-mug.webp


--------------------------------------------------------------------------------
/public/images/shop/civitai-merch/mouse-pad.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/shop/civitai-merch/mouse-pad.webp


--------------------------------------------------------------------------------
/public/images/shop/civitai-merch/robo-skull-holographic-stickers.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/shop/civitai-merch/robo-skull-holographic-stickers.webp


--------------------------------------------------------------------------------
/public/images/shop/civitai-merch/short-sleeve-unisex-t-shirt.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/shop/civitai-merch/short-sleeve-unisex-t-shirt.webp


--------------------------------------------------------------------------------
/public/images/shop/civitai-merch/space-bunny-badge-bubble-free-stickers.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/shop/civitai-merch/space-bunny-badge-bubble-free-stickers.webp


--------------------------------------------------------------------------------
/public/images/shop/civitai-merch/space-bunny-badge-holographic-stickers.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/shop/civitai-merch/space-bunny-badge-holographic-stickers.webp


--------------------------------------------------------------------------------
/public/images/shop/project-odyssey/adidas-fleece-hoodie-black-front.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/shop/project-odyssey/adidas-fleece-hoodie-black-front.webp


--------------------------------------------------------------------------------
/public/images/shop/project-odyssey/adidas-fleece-hoodie-black-left.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/shop/project-odyssey/adidas-fleece-hoodie-black-left.webp


--------------------------------------------------------------------------------
/public/images/shop/project-odyssey/all-over-print-tote-bag-black.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/shop/project-odyssey/all-over-print-tote-bag-black.jpg


--------------------------------------------------------------------------------
/public/images/shop/project-odyssey/classic-dad-hat-black-front.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/shop/project-odyssey/classic-dad-hat-black-front.webp


--------------------------------------------------------------------------------
/public/images/shop/project-odyssey/classic-dad-hat-black-left-side.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/shop/project-odyssey/classic-dad-hat-black-left-side.webp


--------------------------------------------------------------------------------
/public/images/shop/project-odyssey/kiss-cut-holographic-stickers.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/shop/project-odyssey/kiss-cut-holographic-stickers.webp


--------------------------------------------------------------------------------
/public/images/shop/project-odyssey/project-odyssey-banner.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/shop/project-odyssey/project-odyssey-banner.png


--------------------------------------------------------------------------------
/public/images/shop/project-odyssey/tie-dye-hat-cotton-candy-front.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/shop/project-odyssey/tie-dye-hat-cotton-candy-front.webp


--------------------------------------------------------------------------------
/public/images/shop/project-odyssey/tie-dye-hat-sky-left-front.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/shop/project-odyssey/tie-dye-hat-sky-left-front.webp


--------------------------------------------------------------------------------
/public/images/splash/apple-splash-1125-2436.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/splash/apple-splash-1125-2436.jpg


--------------------------------------------------------------------------------
/public/images/splash/apple-splash-1136-640.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/splash/apple-splash-1136-640.jpg


--------------------------------------------------------------------------------
/public/images/splash/apple-splash-1170-2532.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/splash/apple-splash-1170-2532.jpg


--------------------------------------------------------------------------------
/public/images/splash/apple-splash-1179-2556.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/splash/apple-splash-1179-2556.jpg


--------------------------------------------------------------------------------
/public/images/splash/apple-splash-1242-2208.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/splash/apple-splash-1242-2208.jpg


--------------------------------------------------------------------------------
/public/images/splash/apple-splash-1242-2688.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/splash/apple-splash-1242-2688.jpg


--------------------------------------------------------------------------------
/public/images/splash/apple-splash-1284-2778.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/splash/apple-splash-1284-2778.jpg


--------------------------------------------------------------------------------
/public/images/splash/apple-splash-1290-2796.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/splash/apple-splash-1290-2796.jpg


--------------------------------------------------------------------------------
/public/images/splash/apple-splash-1334-750.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/splash/apple-splash-1334-750.jpg


--------------------------------------------------------------------------------
/public/images/splash/apple-splash-1536-2048.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/splash/apple-splash-1536-2048.jpg


--------------------------------------------------------------------------------
/public/images/splash/apple-splash-1620-2160.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/splash/apple-splash-1620-2160.jpg


--------------------------------------------------------------------------------
/public/images/splash/apple-splash-1668-2224.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/splash/apple-splash-1668-2224.jpg


--------------------------------------------------------------------------------
/public/images/splash/apple-splash-1668-2388.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/splash/apple-splash-1668-2388.jpg


--------------------------------------------------------------------------------
/public/images/splash/apple-splash-1792-828.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/splash/apple-splash-1792-828.jpg


--------------------------------------------------------------------------------
/public/images/splash/apple-splash-2048-1536.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/splash/apple-splash-2048-1536.jpg


--------------------------------------------------------------------------------
/public/images/splash/apple-splash-2048-2732.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/splash/apple-splash-2048-2732.jpg


--------------------------------------------------------------------------------
/public/images/splash/apple-splash-2160-1620.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/splash/apple-splash-2160-1620.jpg


--------------------------------------------------------------------------------
/public/images/splash/apple-splash-2208-1242.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/splash/apple-splash-2208-1242.jpg


--------------------------------------------------------------------------------
/public/images/splash/apple-splash-2224-1668.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/splash/apple-splash-2224-1668.jpg


--------------------------------------------------------------------------------
/public/images/splash/apple-splash-2388-1668.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/splash/apple-splash-2388-1668.jpg


--------------------------------------------------------------------------------
/public/images/splash/apple-splash-2436-1125.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/splash/apple-splash-2436-1125.jpg


--------------------------------------------------------------------------------
/public/images/splash/apple-splash-2532-1170.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/splash/apple-splash-2532-1170.jpg


--------------------------------------------------------------------------------
/public/images/splash/apple-splash-2556-1179.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/splash/apple-splash-2556-1179.jpg


--------------------------------------------------------------------------------
/public/images/splash/apple-splash-2688-1242.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/splash/apple-splash-2688-1242.jpg


--------------------------------------------------------------------------------
/public/images/splash/apple-splash-2732-2048.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/splash/apple-splash-2732-2048.jpg


--------------------------------------------------------------------------------
/public/images/splash/apple-splash-2778-1284.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/splash/apple-splash-2778-1284.jpg


--------------------------------------------------------------------------------
/public/images/splash/apple-splash-2796-1290.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/splash/apple-splash-2796-1290.jpg


--------------------------------------------------------------------------------
/public/images/splash/apple-splash-640-1136.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/splash/apple-splash-640-1136.jpg


--------------------------------------------------------------------------------
/public/images/splash/apple-splash-750-1334.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/splash/apple-splash-750-1334.jpg


--------------------------------------------------------------------------------
/public/images/splash/apple-splash-828-1792.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/splash/apple-splash-828-1792.jpg


--------------------------------------------------------------------------------
/public/images/splash/apple-splash-dark-1125-2436.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/splash/apple-splash-dark-1125-2436.jpg


--------------------------------------------------------------------------------
/public/images/splash/apple-splash-dark-1136-640.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/splash/apple-splash-dark-1136-640.jpg


--------------------------------------------------------------------------------
/public/images/splash/apple-splash-dark-1170-2532.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/splash/apple-splash-dark-1170-2532.jpg


--------------------------------------------------------------------------------
/public/images/splash/apple-splash-dark-1179-2556.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/splash/apple-splash-dark-1179-2556.jpg


--------------------------------------------------------------------------------
/public/images/splash/apple-splash-dark-1242-2208.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/splash/apple-splash-dark-1242-2208.jpg


--------------------------------------------------------------------------------
/public/images/splash/apple-splash-dark-1242-2688.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/splash/apple-splash-dark-1242-2688.jpg


--------------------------------------------------------------------------------
/public/images/splash/apple-splash-dark-1284-2778.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/splash/apple-splash-dark-1284-2778.jpg


--------------------------------------------------------------------------------
/public/images/splash/apple-splash-dark-1290-2796.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/splash/apple-splash-dark-1290-2796.jpg


--------------------------------------------------------------------------------
/public/images/splash/apple-splash-dark-1334-750.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/splash/apple-splash-dark-1334-750.jpg


--------------------------------------------------------------------------------
/public/images/splash/apple-splash-dark-1536-2048.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/splash/apple-splash-dark-1536-2048.jpg


--------------------------------------------------------------------------------
/public/images/splash/apple-splash-dark-1620-2160.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/splash/apple-splash-dark-1620-2160.jpg


--------------------------------------------------------------------------------
/public/images/splash/apple-splash-dark-1668-2224.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/splash/apple-splash-dark-1668-2224.jpg


--------------------------------------------------------------------------------
/public/images/splash/apple-splash-dark-1668-2388.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/splash/apple-splash-dark-1668-2388.jpg


--------------------------------------------------------------------------------
/public/images/splash/apple-splash-dark-1792-828.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/splash/apple-splash-dark-1792-828.jpg


--------------------------------------------------------------------------------
/public/images/splash/apple-splash-dark-2048-1536.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/splash/apple-splash-dark-2048-1536.jpg


--------------------------------------------------------------------------------
/public/images/splash/apple-splash-dark-2048-2732.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/splash/apple-splash-dark-2048-2732.jpg


--------------------------------------------------------------------------------
/public/images/splash/apple-splash-dark-2160-1620.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/splash/apple-splash-dark-2160-1620.jpg


--------------------------------------------------------------------------------
/public/images/splash/apple-splash-dark-2208-1242.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/splash/apple-splash-dark-2208-1242.jpg


--------------------------------------------------------------------------------
/public/images/splash/apple-splash-dark-2224-1668.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/splash/apple-splash-dark-2224-1668.jpg


--------------------------------------------------------------------------------
/public/images/splash/apple-splash-dark-2388-1668.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/splash/apple-splash-dark-2388-1668.jpg


--------------------------------------------------------------------------------
/public/images/splash/apple-splash-dark-2436-1125.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/splash/apple-splash-dark-2436-1125.jpg


--------------------------------------------------------------------------------
/public/images/splash/apple-splash-dark-2532-1170.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/splash/apple-splash-dark-2532-1170.jpg


--------------------------------------------------------------------------------
/public/images/splash/apple-splash-dark-2556-1179.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/splash/apple-splash-dark-2556-1179.jpg


--------------------------------------------------------------------------------
/public/images/splash/apple-splash-dark-2688-1242.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/splash/apple-splash-dark-2688-1242.jpg


--------------------------------------------------------------------------------
/public/images/splash/apple-splash-dark-2732-2048.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/splash/apple-splash-dark-2732-2048.jpg


--------------------------------------------------------------------------------
/public/images/splash/apple-splash-dark-2778-1284.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/splash/apple-splash-dark-2778-1284.jpg


--------------------------------------------------------------------------------
/public/images/splash/apple-splash-dark-2796-1290.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/splash/apple-splash-dark-2796-1290.jpg


--------------------------------------------------------------------------------
/public/images/splash/apple-splash-dark-640-1136.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/splash/apple-splash-dark-640-1136.jpg


--------------------------------------------------------------------------------
/public/images/splash/apple-splash-dark-750-1334.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/splash/apple-splash-dark-750-1334.jpg


--------------------------------------------------------------------------------
/public/images/splash/apple-splash-dark-828-1792.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/splash/apple-splash-dark-828-1792.jpg


--------------------------------------------------------------------------------
/public/images/support-us/120x600.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/support-us/120x600.jpg


--------------------------------------------------------------------------------
/public/images/support-us/300x100.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/support-us/300x100.jpg


--------------------------------------------------------------------------------
/public/images/support-us/300x250.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/support-us/300x250.jpg


--------------------------------------------------------------------------------
/public/images/support-us/300x600.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/support-us/300x600.jpg


--------------------------------------------------------------------------------
/public/images/support-us/320x100.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/support-us/320x100.jpg


--------------------------------------------------------------------------------
/public/images/support-us/320x50.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/support-us/320x50.jpg


--------------------------------------------------------------------------------
/public/images/support-us/728x90.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/support-us/728x90.jpg


--------------------------------------------------------------------------------
/public/images/support-us/970x250.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/support-us/970x250.jpg


--------------------------------------------------------------------------------
/public/images/support-us/970x90.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/images/support-us/970x90.jpg


--------------------------------------------------------------------------------
/public/sounds/game.mp3:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/sounds/game.mp3


--------------------------------------------------------------------------------
/public/sounds/message.mp3:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/sounds/message.mp3


--------------------------------------------------------------------------------
/public/sounds/message2.mp3:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/sounds/message2.mp3


--------------------------------------------------------------------------------
/public/sounds/messageu.mp3:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/sounds/messageu.mp3


--------------------------------------------------------------------------------
/public/sounds/point.mp3:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/public/sounds/point.mp3


--------------------------------------------------------------------------------
/src/app/layout.tsx:
--------------------------------------------------------------------------------
 1 | export default function RootLayout({ children }: { children: React.ReactNode }) {
 2 |   return (
 3 |     <html lang="en">
 4 |       <body>
 5 |         {/* Layout UI */}
 6 |         <main>{children}</main>
 7 |       </body>
 8 |     </html>
 9 |   );
10 | }
11 | 


--------------------------------------------------------------------------------
/src/components/Account/GenerationSettingsCard.tsx:
--------------------------------------------------------------------------------
 1 | import { Card, Title } from '@mantine/core';
 2 | import { GenerationSettings } from '~/components/Generation/GenerationSettings';
 3 | 
 4 | export function GenerationSettingsCard() {
 5 |   return (
 6 |     <Card className="flex flex-col gap-3">
 7 |       <Title order={2}>Generation Settings</Title>
 8 |       <GenerationSettings />
 9 |     </Card>
10 |   );
11 | }
12 | 


--------------------------------------------------------------------------------
/src/components/Ads/Kontext/kontext-ads.d.ts:
--------------------------------------------------------------------------------
1 | import type { KontextAdOptions, KontextAdParams } from '~/components/Ads/Kontext/kontext-ads.types';
2 | 
3 | declare global {
4 |   interface Window {
5 |     fetchKontextAd: (params: KontextAdParams, options?: KontextAdOptions) => void;
6 |   }
7 | }
8 | 


--------------------------------------------------------------------------------
/src/components/Ads/Old/types.ts:
--------------------------------------------------------------------------------
 1 | export {};
 2 | 
 3 | declare global {
 4 |   namespace JSX {
 5 |     interface IntrinsicElements {
 6 |       ['pgs-ad']: React.HTMLAttributes<HTMLDivElement>;
 7 |     }
 8 |   }
 9 | }
10 | 


--------------------------------------------------------------------------------
/src/components/Ads/ads.module.scss.d.ts:
--------------------------------------------------------------------------------
1 | export declare const adWrapper: string;
2 | 


--------------------------------------------------------------------------------
/src/components/AppLayout/NotFound.module.scss:
--------------------------------------------------------------------------------
 1 | .imageContainer {
 2 |   height: 400px;
 3 |   display: flex;
 4 | 
 5 |   img {
 6 |     margin: 0 auto;
 7 |     height: 100%;
 8 |     width: auto;
 9 |     border-radius: var(--mantine-radius-sm);
10 |     box-shadow: var(--mantine-shadow-md);
11 |   }
12 | }


--------------------------------------------------------------------------------
/src/components/AppLayout/NotFound.module.scss.d.ts:
--------------------------------------------------------------------------------
1 | export declare const imageContainer: string;
2 | 


--------------------------------------------------------------------------------
/src/components/Article/Infinite/ArticleAltCard.module.scss.d.ts:
--------------------------------------------------------------------------------
1 | export declare const content: string;
2 | export declare const image: string;
3 | export declare const info: string;
4 | export declare const statBadge: string;
5 | export declare const userAvatar: string;
6 | 


--------------------------------------------------------------------------------
/src/components/Article/UserDraftArticles.module.scss.d.ts:
--------------------------------------------------------------------------------
1 | export declare const header: string;
2 | export declare const scrolled: string;
3 | 


--------------------------------------------------------------------------------
/src/components/Auction/AuctionFiltersDropdown.module.scss.d.ts:
--------------------------------------------------------------------------------
1 | export declare const body: string;
2 | export declare const close: string;
3 | export declare const content: string;
4 | export declare const header: string;
5 | 


--------------------------------------------------------------------------------
/src/components/AutocompleteSearch/renderItems/common.module.scss:
--------------------------------------------------------------------------------
1 | .highlighted {
2 |   background: light-dark(
3 |     var(--mantine-color-yellow-2),
4 |     var(--mantine-color-yellow-5)
5 |   );
6 | }


--------------------------------------------------------------------------------
/src/components/AutocompleteSearch/renderItems/common.module.scss.d.ts:
--------------------------------------------------------------------------------
1 | export declare const highlighted: string;
2 | 


--------------------------------------------------------------------------------
/src/components/Bounty/BountyEditForm.module.scss:
--------------------------------------------------------------------------------
 1 | .title {
 2 |   @container (max-width: theme('screens.sm')) {
 3 |     font-size: 24px;
 4 |   }
 5 | }
 6 | 
 7 | .fluid {
 8 |   max-width: 100% !important;
 9 | }
10 | 


--------------------------------------------------------------------------------
/src/components/Bounty/BountyEditForm.module.scss.d.ts:
--------------------------------------------------------------------------------
1 | export declare const fluid: string;
2 | export declare const title: string;
3 | 


--------------------------------------------------------------------------------
/src/components/BrowsingLevel/BrowsingLevelInput.module.scss.d.ts:
--------------------------------------------------------------------------------
1 | export declare const iconWrapper: string;
2 | export declare const label: string;
3 | export declare const root: string;
4 | 


--------------------------------------------------------------------------------
/src/components/BrowsingLevel/BrowsingLevelsGrouped.module.scss.d.ts:
--------------------------------------------------------------------------------
1 | export declare const iconWrapper: string;
2 | export declare const label: string;
3 | export declare const root: string;
4 | 


--------------------------------------------------------------------------------
/src/components/BrowsingLevel/SetBrowsingLevelModal.module.scss.d.ts:
--------------------------------------------------------------------------------
1 | export declare const active: string;
2 | export declare const root: string;
3 | 


--------------------------------------------------------------------------------
/src/components/Burger/Burger.module.scss.d.ts:
--------------------------------------------------------------------------------
1 | export declare const burger: string;
2 | export declare const root: string;
3 | 


--------------------------------------------------------------------------------
/src/components/Buzz/FeatureCards/FeatureCards.module.scss:
--------------------------------------------------------------------------------
1 | .featureCard {
2 |   background-color: light-dark( var(--mantine-color-gray-0), var(--mantine-color-dark-5));
3 | }
4 | 


--------------------------------------------------------------------------------
/src/components/Buzz/FeatureCards/FeatureCards.module.scss.d.ts:
--------------------------------------------------------------------------------
1 | export declare const featureCard: string;
2 | 


--------------------------------------------------------------------------------
/src/components/Buzz/InteractiveTipBuzzButton.module.scss.d.ts:
--------------------------------------------------------------------------------
1 | export declare const confirming: string;
2 | export declare const fillEffect: string;
3 | export declare const popoverContent: string;
4 | export declare const tipAmount: string;
5 | 


--------------------------------------------------------------------------------
/src/components/Buzz/WithdrawalRequest/BuzzWithdrawalRequestFiltersDropdown.module.scss.d.ts:
--------------------------------------------------------------------------------
1 | export declare const actionButton: string;
2 | export declare const indicatorIndicator: string;
3 | export declare const indicatorRoot: string;
4 | export declare const label: string;
5 | export declare const opened: string;
6 | 


--------------------------------------------------------------------------------
/src/components/Cards/BountyEntryCard.module.scss.d.ts:
--------------------------------------------------------------------------------
1 | export declare const awardedBanner: string;
2 | export declare const moveBackground: string;
3 | 


--------------------------------------------------------------------------------
/src/components/Cards/components/HoverActionButton.module.scss.d.ts:
--------------------------------------------------------------------------------
1 | export declare const hover: string;
2 | export declare const icon: string;
3 | export declare const label: string;
4 | export declare const white: string;
5 | export declare const wrapper: string;
6 | 


--------------------------------------------------------------------------------
/src/components/Chat/ExistingChat.module.scss.d.ts:
--------------------------------------------------------------------------------
1 | export declare const chatInput: string;
2 | export declare const chatMessage: string;
3 | export declare const highlightRow: string;
4 | export declare const isTypingBox: string;
5 | export declare const myDetails: string;
6 | export declare const myMessage: string;
7 | export declare const otherMessage: string;
8 | export declare const replyMessage: string;
9 | 


--------------------------------------------------------------------------------
/src/components/CivitaiLink/CivitaiLinkPopover.module.scss:
--------------------------------------------------------------------------------
1 | .listItem {
2 |   &:nth-of-type(2n + 1) {
3 |     background-color: light-dark(
4 |       var(--mantine-color-gray-0),
5 |       var(--mantine-color-dark-6)
6 |     );
7 |   }
8 | }
9 | 


--------------------------------------------------------------------------------
/src/components/CivitaiLink/CivitaiLinkPopover.module.scss.d.ts:
--------------------------------------------------------------------------------
1 | export declare const listItem: string;
2 | 


--------------------------------------------------------------------------------
/src/components/Club/ClubPost/ClubFeed.module.scss.d.ts:
--------------------------------------------------------------------------------
1 | export declare const clubPost: string;
2 | export declare const feedContainer: string;
3 | export declare const feedContainerWithCover: string;
4 | export declare const title: string;
5 | 


--------------------------------------------------------------------------------
/src/components/Collections/AddToCollectionModal.module.scss:
--------------------------------------------------------------------------------
 1 | .body {
 2 |   align-items: center;
 3 | }
 4 | 
 5 | .labelWrapper {
 6 |   flex: 1;
 7 | }
 8 | 
 9 | .contentWrap {
10 |   padding-top: var(--mantine-spacing-xs, 8px);
11 |   padding-bottom: var(--mantine-spacing-xs, 8px);
12 | }


--------------------------------------------------------------------------------
/src/components/Collections/AddToCollectionModal.module.scss.d.ts:
--------------------------------------------------------------------------------
1 | export declare const body: string;
2 | export declare const contentWrap: string;
3 | export declare const labelWrapper: string;
4 | 


--------------------------------------------------------------------------------
/src/components/Collections/Collection.module.scss:
--------------------------------------------------------------------------------
 1 | .title {
 2 |   font-size: 28px;
 3 |   
 4 |   @container (min-width: theme('screens.sm')) {
 5 |     font-size: 32px;
 6 |   }
 7 | 
 8 |   @container (min-width: theme('screens.md')) {
 9 |     font-size: 34px;
10 |   }
11 | }
12 | 


--------------------------------------------------------------------------------
/src/components/Collections/CollectionsLayout.module.scss.d.ts:
--------------------------------------------------------------------------------
1 | export declare const container: string;
2 | export declare const content: string;
3 | export declare const drawerButton: string;
4 | export declare const drawerHeader: string;
5 | export declare const sidebar: string;
6 | export declare const sidebarToggle: string;
7 | export declare const filterContainer: string;
8 | 


--------------------------------------------------------------------------------
/src/components/Combobox/AlwaysOpenCombobox.module.scss:
--------------------------------------------------------------------------------
 1 | .scrollbar {
 2 |   &[data-orientation="horizontal"] {
 3 |     display: none;
 4 |   }
 5 | }
 6 | 
 7 | .viewport {
 8 |   padding: 0;
 9 | }
10 | 


--------------------------------------------------------------------------------
/src/components/Combobox/combobox.types.ts:
--------------------------------------------------------------------------------
1 | import type { Key } from 'react';
2 | 
3 | export type ComboboxOption = {
4 |   group?: string;
5 |   disabled?: boolean;
6 |   label: string;
7 |   value: Key;
8 | };
9 | 


--------------------------------------------------------------------------------
/src/components/CommentSection/CommentSection.module.css:
--------------------------------------------------------------------------------
1 | .highlightedComment {
2 |   background: alpha(var(--mantine-color-blue-5), 0.2);
3 |   margin: calc(-1 * var(--mantine-spacing-xs));
4 |   padding: var(--mantine-spacing-xs);
5 | }
6 | 


--------------------------------------------------------------------------------
/src/components/CommentsV2/Comment/CommentForm.module.scss:
--------------------------------------------------------------------------------
 1 | .content {
 2 |   padding: 0;
 3 |   font-size: 14px;
 4 |   background-color: light-dark(var(--mantine-color-gray-0), var(--mantine-color-dark-7));
 5 | 
 6 |   :global .ProseMirror {
 7 |     padding: 8px 12px;
 8 |     min-height: 38px;
 9 |     cursor: text;
10 |   }
11 | }
12 | 


--------------------------------------------------------------------------------
/src/components/CommentsV2/Comment/CommentForm.module.scss.d.ts:
--------------------------------------------------------------------------------
1 | export declare const content: string;
2 | export declare const proseMirror: string;
3 | 


--------------------------------------------------------------------------------
/src/components/ContainerGrid/ContainerCol.module.scss.d.ts:
--------------------------------------------------------------------------------
1 | export declare const col: string;
2 | export declare const containerGrid: string;
3 | 


--------------------------------------------------------------------------------
/src/components/ContainerGrid/ContainerGrid.module.scss.d.ts:
--------------------------------------------------------------------------------
1 | export declare const grid: string;
2 | 


--------------------------------------------------------------------------------
/src/components/ContainerProvider/useContainerLargerThan.ts:
--------------------------------------------------------------------------------
1 | import type { MantineSpacing } from '@mantine/core';
2 | import { useContainerQuery } from '~/components/ContainerProvider/useContainerQuery';
3 | 
4 | export const useContainerLargerThan = (width: MantineSpacing) =>
5 |   useContainerQuery({ type: 'min-width', width });
6 | 


--------------------------------------------------------------------------------
/src/components/ContainerProvider/useContainerSmallerThan.ts:
--------------------------------------------------------------------------------
1 | import type { MantineSpacing } from '@mantine/core';
2 | import { useContainerQuery } from '~/components/ContainerProvider/useContainerQuery';
3 | 
4 | export const useContainerSmallerThan = (width: MantineSpacing) =>
5 |   useContainerQuery({ type: 'max-width', width });
6 | 


--------------------------------------------------------------------------------
/src/components/CosmeticShop/CosmeticsFiltersDropdown.module.scss.d.ts:
--------------------------------------------------------------------------------
1 | export declare const actionButton: string;
2 | export declare const indicatorIndicator: string;
3 | export declare const indicatorRoot: string;
4 | export declare const label: string;
5 | export declare const opened: string;
6 | 


--------------------------------------------------------------------------------
/src/components/CosmeticShop/ShopFiltersDropdown.module.scss.d.ts:
--------------------------------------------------------------------------------
1 | export declare const actionButton: string;
2 | export declare const indicatorIndicator: string;
3 | export declare const indicatorRoot: string;
4 | export declare const label: string;
5 | export declare const opened: string;
6 | 


--------------------------------------------------------------------------------
/src/components/Cosmetics/CosmeticsFiltersDropdown.module.scss.d.ts:
--------------------------------------------------------------------------------
1 | export declare const actionButton: string;
2 | export declare const indicatorIndicator: string;
3 | export declare const indicatorRoot: string;
4 | export declare const label: string;
5 | export declare const opened: string;
6 | 


--------------------------------------------------------------------------------
/src/components/Currency/CurrencyBadge.module.scss:
--------------------------------------------------------------------------------
 1 | .badgeWithDistrib {
 2 |   &::after {
 3 |     content: '';
 4 |     position: absolute;
 5 |     pointer-events: none;
 6 |     inset: 1px;
 7 |     border: 1px solid var(--mantine-color-yellow-7);
 8 |     border-radius: 50%;
 9 |     border-image: var(--border-image);
10 |     clip-path: inset(0% round 1px);
11 |   }
12 | }
13 | 


--------------------------------------------------------------------------------
/src/components/Currency/CurrencyBadge.module.scss.d.ts:
--------------------------------------------------------------------------------
1 | export declare const badgeWithDistrib: string;
2 | 


--------------------------------------------------------------------------------
/src/components/Decorations/HolidayFrame.module.scss.d.ts:
--------------------------------------------------------------------------------
1 | export declare const decoration: string;
2 | export declare const light: string;
3 | export declare const lights: string;
4 | export declare const root: string;
5 | export declare const upgradedLight: string;
6 | export declare const wrapper: string;
7 | 


--------------------------------------------------------------------------------
/src/components/EdgeMedia/EdgeImage.module.scss:
--------------------------------------------------------------------------------
 1 | .image {
 2 |   width: 100%;
 3 |   height: auto;
 4 | }
 5 | 
 6 | .loadError {
 7 |   opacity: 1;
 8 |   background: rgba(255, 00, 00, 0.35);
 9 | }
10 | 
11 | .fadeIn {
12 |   opacity: 0;
13 |   transition: transform 400ms ease;
14 | }
15 | 


--------------------------------------------------------------------------------
/src/components/EdgeMedia/EdgeImage.module.scss.d.ts:
--------------------------------------------------------------------------------
1 | export declare const fadeIn: string;
2 | export declare const image: string;
3 | export declare const loadError: string;
4 | 


--------------------------------------------------------------------------------
/src/components/EdgeMedia/EdgeMedia.module.scss.d.ts:
--------------------------------------------------------------------------------
1 | export declare const fadeIn: string;
2 | export declare const playButton: string;
3 | export declare const responsive: string;
4 | export declare const videoThumbRoot: string;
5 | 


--------------------------------------------------------------------------------
/src/components/EdgeMedia/EdgeVideo.module.scss.d.ts:
--------------------------------------------------------------------------------
1 | export declare const controls: string;
2 | export declare const fadeInOut: string;
3 | export declare const iosScroll: string;
4 | export declare const playButton: string;
5 | export declare const playIndicator: string;
6 | export declare const volumeControl: string;
7 | export declare const volumeSlider: string;
8 | 


--------------------------------------------------------------------------------
/src/components/ErrorBoundary/ErrorBoundary.tsx:
--------------------------------------------------------------------------------
1 | import UserErrorBoundary from '~/components/ErrorBoundary/UserErrorBoundary';
2 | import { useFeatureFlags } from '~/providers/FeatureFlagsProvider';
3 | 
4 | export function ErrorBoundary({ children }: { children: React.ReactNode }) {
5 |   const features = useFeatureFlags();
6 | 
7 |   return <UserErrorBoundary features={features}>{children}</UserErrorBoundary>;
8 | }
9 | 


--------------------------------------------------------------------------------
/src/components/EventButton/EventButton.module.scss:
--------------------------------------------------------------------------------
 1 | .root {
 2 |   height: 36px;
 3 |   margin-left: -8px;
 4 |   cursor: pointer;
 5 |   position: relative;
 6 |   z-index: 3;
 7 | }
 8 | 
 9 | .svg {
10 |   height: 36px;
11 |   transform: translateZ(0);
12 |   stroke: var(--mantine-color-green-4);
13 | 
14 |   &:hover {
15 |     animation: wiggle 750ms ease-in-out infinite;
16 |   }
17 | }


--------------------------------------------------------------------------------
/src/components/EventButton/EventButton.module.scss.d.ts:
--------------------------------------------------------------------------------
1 | export declare const root: string;
2 | export declare const svg: string;
3 | export declare const wiggle: string;
4 | 


--------------------------------------------------------------------------------
/src/components/FeedContentToggle/FeedContentToggle.module.scss:
--------------------------------------------------------------------------------
1 | .feedContentToggle {
2 |   @container (max-width: theme('screens.sm')) {
3 |     width: '100%',
4 |   }
5 | }
6 | 


--------------------------------------------------------------------------------
/src/components/FeedContentToggle/FeedContentToggle.module.scss.d.ts:
--------------------------------------------------------------------------------
1 | export declare const feedContentToggle: string;
2 | 


--------------------------------------------------------------------------------
/src/components/FileInputUpload/FileInputUpload.module.scss.d.ts:
--------------------------------------------------------------------------------
1 | export declare const grow: string;
2 | export declare const stackedProgress: string;
3 | export declare const stackedProgressBar: string;
4 | export declare const stackedProgressProgress: string;
5 | export declare const stackedProgressStatus: string;
6 | export declare const stackedProgressStatusText: string;
7 | 


--------------------------------------------------------------------------------
/src/components/Filters/AdaptiveFiltersDropdown.module.scss.d.ts:
--------------------------------------------------------------------------------
1 | export declare const actionButton: string;
2 | export declare const indicatorIndicator: string;
3 | export declare const indicatorRoot: string;
4 | export declare const label: string;
5 | export declare const opened: string;
6 | 


--------------------------------------------------------------------------------
/src/components/Filters/FeedFilters/FeedFilters.module.scss:
--------------------------------------------------------------------------------
 1 | .filtersWrapper {
 2 |   @container (max-width: theme('screens.sm')) {
 3 |     width: 100%;
 4 | 
 5 |     >* {
 6 |       flex-grow: 1;
 7 |     }
 8 |   }
 9 | }
10 | 


--------------------------------------------------------------------------------
/src/components/Filters/FeedFilters/FeedFilters.module.scss.d.ts:
--------------------------------------------------------------------------------
1 | export declare const filtersWrapper: string;
2 | 


--------------------------------------------------------------------------------
/src/components/Filters/FilterChip.module.scss:
--------------------------------------------------------------------------------
 1 | .label {
 2 |   font-size: 12px;
 3 |   font-weight: 600;
 4 | 
 5 |   &[data-checked] {
 6 |     &,
 7 |     &:hover {
 8 |       color: var(--mantine-color-white);
 9 |       border: 1px solid var(--mantine-color-primary);
10 |     }
11 | 
12 |     &[data-variant="filled"] {
13 |       background-color: transparent;
14 |     }
15 |   }
16 | }
17 | 


--------------------------------------------------------------------------------
/src/components/Filters/FilterChip.module.scss.d.ts:
--------------------------------------------------------------------------------
1 | export declare const label: string;
2 | 


--------------------------------------------------------------------------------
/src/components/Filters/FilterChip.tsx:
--------------------------------------------------------------------------------
 1 | import type { ChipProps } from '@mantine/core';
 2 | import { Chip } from '@mantine/core';
 3 | import classes from './FilterChip.module.scss';
 4 | 
 5 | export function FilterChip({ children, ...props }: ChipProps) {
 6 |   return (
 7 |     <Chip classNames={classes} size="sm" radius="xl" variant="filled" {...props}>
 8 |       {children}
 9 |     </Chip>
10 |   );
11 | }
12 | 


--------------------------------------------------------------------------------
/src/components/Filters/index.ts:
--------------------------------------------------------------------------------
1 | // All components in this bucket should be accessing state from FiltersProvider
2 | export * from './SortFilter';
3 | export * from './PeriodFilter';
4 | 


--------------------------------------------------------------------------------
/src/components/Games/LevelProgress/LevelProgress.module.scss.d.ts:
--------------------------------------------------------------------------------
1 | export declare const levelUp: string;
2 | export declare const raterBadge: string;
3 | 


--------------------------------------------------------------------------------
/src/components/HeroCard/HeroCard.module.scss.d.ts:
--------------------------------------------------------------------------------
1 | export declare const card: string;
2 | export declare const figure: string;
3 | export declare const imageWrapper: string;
4 | export declare const root: string;
5 | export declare const section: string;
6 | export declare const title: string;
7 | 


--------------------------------------------------------------------------------
/src/components/HomeBlocks/HomeBlock.module.scss.d.ts:
--------------------------------------------------------------------------------
1 | export declare const expandButton: string;
2 | export declare const grid: string;
3 | export declare const gridCarousel: string;
4 | export declare const gridMeta: string;
5 | export declare const gridRow: string;
6 | export declare const header: string;
7 | export declare const meta: string;
8 | export declare const title: string;
9 | 


--------------------------------------------------------------------------------
/src/components/HomeBlocks/ManageHomeBlocksModal.module.scss:
--------------------------------------------------------------------------------
1 | .sectionHeader {
2 |   height: 30px;
3 |   font-size: var(--mantine-font-size-sm, 14px);
4 |   text-transform: capitalize;
5 |   font-weight: 500;
6 | }


--------------------------------------------------------------------------------
/src/components/HomeBlocks/ManageHomeBlocksModal.module.scss.d.ts:
--------------------------------------------------------------------------------
1 | export declare const sectionHeader: string;
2 | 


--------------------------------------------------------------------------------
/src/components/HomeBlocks/components/SocialBlock.module.scss.d.ts:
--------------------------------------------------------------------------------
1 | export declare const card: string;
2 | export declare const igPost: string;
3 | export declare const igReel: string;
4 | export declare const playButton: string;
5 | export declare const twitch: string;
6 | export declare const videoPlayholderRoot: string;
7 | export declare const ytLong: string;
8 | export declare const ytShort: string;
9 | 


--------------------------------------------------------------------------------
/src/components/Image/AsPosts/GalleryModerationModal.module.scss.d.ts:
--------------------------------------------------------------------------------
1 | export declare const active: string;
2 | export declare const root: string;
3 | 


--------------------------------------------------------------------------------
/src/components/Image/AsPosts/ImagesAsPostsCardContextMenu.tsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/src/components/Image/AsPosts/ImagesAsPostsCardContextMenu.tsx


--------------------------------------------------------------------------------
/src/components/Image/Detail/ImageResources.module.scss:
--------------------------------------------------------------------------------
1 | .statBadge {
2 |   background: rgba(212, 212, 212, 0.2);
3 |   color: white;
4 | }


--------------------------------------------------------------------------------
/src/components/Image/Detail/ImageResources.module.scss.d.ts:
--------------------------------------------------------------------------------
1 | export declare const statBadge: string;
2 | 


--------------------------------------------------------------------------------
/src/components/Image/Indicators/OnsiteIndicatore.module.scss.d.ts:
--------------------------------------------------------------------------------
1 | export declare const indicator: string;
2 | export declare const remix: string;
3 | 


--------------------------------------------------------------------------------
/src/components/Image/Infinite/ImagesCard.module.scss.d.ts:
--------------------------------------------------------------------------------
1 | export declare const footer: string;
2 | 


--------------------------------------------------------------------------------
/src/components/ImageGeneration/Feed.module.scss.d.ts:
--------------------------------------------------------------------------------
1 | export declare const grid: string;
2 | 


--------------------------------------------------------------------------------
/src/components/ImageGeneration/GeneratedImageActions.module.scss:
--------------------------------------------------------------------------------
1 | .buttonPost {
2 |   &[data-disabled] {
3 |     background: var(--mantine-color-blue-6);
4 |     color: white;
5 |     opacity: 0.5;
6 |   }
7 | }


--------------------------------------------------------------------------------
/src/components/ImageGeneration/GeneratedImageActions.module.scss.d.ts:
--------------------------------------------------------------------------------
1 | export declare const buttonPost: string;
2 | 


--------------------------------------------------------------------------------
/src/components/ImageGeneration/GenerationForm/GenerationCostPopover.module.scss:
--------------------------------------------------------------------------------
 1 | .tableCell {
 2 |   height: 50px;
 3 |   background-color: light-dark(
 4 |     var(--mantine-color-white),
 5 |     var(--mantine-color-dark-6)
 6 |   );
 7 | }
 8 | 
 9 | .baseCostCell {
10 |   background-color: light-dark(
11 |     var(--mantine-color-gray-1),
12 |     var(--mantine-color-dark-4)
13 |   );
14 | }
15 | 


--------------------------------------------------------------------------------
/src/components/ImageGeneration/GenerationForm/GenerationCostPopover.module.scss.d.ts:
--------------------------------------------------------------------------------
1 | export declare const baseCostCell: string;
2 | export declare const tableCell: string;
3 | 


--------------------------------------------------------------------------------
/src/components/ImageGeneration/GenerationForm/ResourceSelectFilters.module.scss.d.ts:
--------------------------------------------------------------------------------
1 | export declare const actionButton: string;
2 | export declare const indicatorIndicator: string;
3 | export declare const indicatorRoot: string;
4 | export declare const label: string;
5 | export declare const opened: string;
6 | 


--------------------------------------------------------------------------------
/src/components/ImageGeneration/GenerationForm/ResourceSelectMultipleStandalone.module.scss.d.ts:
--------------------------------------------------------------------------------
1 | export declare const accordionContent: string;
2 | export declare const accordionControl: string;
3 | export declare const accordionItem: string;
4 | 


--------------------------------------------------------------------------------
/src/components/ImageGeneration/QueueItem.module.scss.d.ts:
--------------------------------------------------------------------------------
1 | export declare const asSidebar: string;
2 | export declare const grid: string;
3 | export declare const stopped: string;
4 | 


--------------------------------------------------------------------------------
/src/components/ImageGeneration/QueueSnackbar.module.scss:
--------------------------------------------------------------------------------
 1 | .card {
 2 |   box-shadow: inset 0 2px light-dark(var(--mantine-color-gray-2), var(--mantine-color-dark-4));
 3 |   // &:hover {
 4 |   //   background-color: light-dark(var(--mantine-color-dark-4), var(--mantine-color-gray-0));
 5 |   // }
 6 | }
 7 | 
 8 | .label {
 9 |   width: 100%;
10 | }
11 | 


--------------------------------------------------------------------------------
/src/components/ImageGeneration/QueueSnackbar.module.scss.d.ts:
--------------------------------------------------------------------------------
1 | export declare const card: string;
2 | export declare const label: string;
3 | 


--------------------------------------------------------------------------------
/src/components/IsClient/IsClient.tsx:
--------------------------------------------------------------------------------
1 | import type { ReactNode } from 'react';
2 | import useIsClient from '~/hooks/useIsClient';
3 | 
4 | export function IsClient({ children }: { children: ReactNode }) {
5 |   const isClient = useIsClient();
6 |   return isClient ? <>{children}</> : null;
7 | }
8 | 


--------------------------------------------------------------------------------
/src/components/Leaderboard/CreatorCard.module.scss.d.ts:
--------------------------------------------------------------------------------
1 | export declare const active: string;
2 | export declare const creatorCard: string;
3 | export declare const crown: string;
4 | export declare const delta: string;
5 | export declare const wrapper: string;
6 | 


--------------------------------------------------------------------------------
/src/components/LegacyActionIcon/LegacyActionIcon.tsx:
--------------------------------------------------------------------------------
1 | import { ActionIcon } from '@mantine/core';
2 | 
3 | export const LegacyActionIcon = ActionIcon.withProps({ color: 'gray', variant: 'subtle' });
4 | 


--------------------------------------------------------------------------------
/src/components/MasonryColumns/MasonryContainer.module.scss:
--------------------------------------------------------------------------------
 1 | $columns: 7;
 2 | $width: 320;
 3 | $gap: 16;
 4 | 
 5 | .queries {
 6 |   margin: 0 auto;
 7 |   box-sizing: content-box;
 8 |   width: 100%;
 9 | 
10 |   @for $i from 2 through $columns {
11 |     @container (min-width: #{$width * $i + ($gap * ($i - 1))}px) {
12 |       width: #{$width * $i + ($gap * ($i - 1))}px;
13 |     }
14 |   }
15 | }
16 | 


--------------------------------------------------------------------------------
/src/components/MasonryColumns/MasonryContainer.module.scss.d.ts:
--------------------------------------------------------------------------------
1 | export declare const queries: string;
2 | 


--------------------------------------------------------------------------------
/src/components/MasonryColumns/MasonryGrid.module.scss:
--------------------------------------------------------------------------------
 1 | .empty {
 2 |   // The height will be set inline via style={{ height: columnWidth }}
 3 | }
 4 | 
 5 | .grid {
 6 |   display: grid;
 7 |   justify-content: center;
 8 |   /* The following will be set inline via style:
 9 |      grid-template-columns,
10 |      column-gap,
11 |      row-gap
12 |   */
13 | }


--------------------------------------------------------------------------------
/src/components/MasonryColumns/MasonryGrid.module.scss.d.ts:
--------------------------------------------------------------------------------
1 | export declare const grid: string;
2 | 


--------------------------------------------------------------------------------
/src/components/MasonryColumns/UniformGrid.module.scss.d.ts:
--------------------------------------------------------------------------------
1 | export declare const empty: string;
2 | export declare const grid: string;
3 | export declare const gridItem: string;
4 | 


--------------------------------------------------------------------------------
/src/components/Modals/CardDecorationModal.module.scss.d.ts:
--------------------------------------------------------------------------------
1 | export declare const decorations: string;
2 | export declare const hideMobile: string;
3 | export declare const preview: string;
4 | export declare const showMobile: string;
5 | 


--------------------------------------------------------------------------------
/src/components/Modals/GenerationQualityFeedbackModal.module.scss.d.ts:
--------------------------------------------------------------------------------
1 | export declare const actions: string;
2 | export declare const submitButton: string;
3 | 


--------------------------------------------------------------------------------
/src/components/Modals/SendTipModal.module.scss.d.ts:
--------------------------------------------------------------------------------
1 | export declare const actions: string;
2 | export declare const cancelButton: string;
3 | export declare const chipGroup: string;
4 | export declare const iconWrapper: string;
5 | export declare const label: string;
6 | export declare const presetCard: string;
7 | export declare const sendIcon: string;
8 | export declare const submitButton: string;
9 | 


--------------------------------------------------------------------------------
/src/components/Model/Generation/ModelGenerationCard.module.scss.d.ts:
--------------------------------------------------------------------------------
1 | export declare const iconWrapper: string;
2 | export declare const label: string;
3 | export declare const nextButton: string;
4 | export declare const root: string;
5 | 


--------------------------------------------------------------------------------
/src/components/Model/ModelURN/ModelURN.module.scss:
--------------------------------------------------------------------------------
1 | .code {
2 |   border-radius: 0;
3 |   line-height: 1.2;
4 |   padding-left: 4px;
5 |   padding-right: 4px;
6 |   cursor: pointer;
7 | }


--------------------------------------------------------------------------------
/src/components/Model/ModelURN/ModelURN.module.scss.d.ts:
--------------------------------------------------------------------------------
1 | export declare const code: string;
2 | 


--------------------------------------------------------------------------------
/src/components/Model/ModelVersionList/ModelVersionList.module.scss.d.ts:
--------------------------------------------------------------------------------
1 | export declare const arrowButton: string;
2 | export declare const hidden: string;
3 | export declare const leftArrow: string;
4 | export declare const rightArrow: string;
5 | export declare const scrollContainer: string;
6 | export declare const viewport: string;
7 | 


--------------------------------------------------------------------------------
/src/components/Model/ModelVersions/ModelVersionDetails.module.scss.d.ts:
--------------------------------------------------------------------------------
1 | export declare const ctaContainer: string;
2 | export declare const mainSection: string;
3 | 


--------------------------------------------------------------------------------
/src/components/NewsletterDialog/NewsletterDialog.module.scss.d.ts:
--------------------------------------------------------------------------------
1 | export declare const bannerFigure: string;
2 | export declare const bannerImageWrapper: string;
3 | export declare const bannerRoot: string;
4 | export declare const dialogRoot: string;
5 | 


--------------------------------------------------------------------------------
/src/components/Newsroom/FeaturedArticle.module.scss.d.ts:
--------------------------------------------------------------------------------
1 | export declare const action: string;
2 | export declare const card: string;
3 | export declare const imageContainer: string;
4 | export declare const stack: string;
5 | export declare const text: string;
6 | export declare const title: string;
7 | 


--------------------------------------------------------------------------------
/src/components/Newsroom/MediaKit.module.scss.d.ts:
--------------------------------------------------------------------------------
1 | export declare const description: string;
2 | export declare const descriptionButton: string;
3 | export declare const descriptionText: string;
4 | export declare const descriptionTitle: string;
5 | export declare const kit: string;
6 | export declare const media: string;
7 | export declare const mediaRow: string;
8 | 


--------------------------------------------------------------------------------
/src/components/Newsroom/PressMentions.module.scss.d.ts:
--------------------------------------------------------------------------------
1 | export declare const articles: string;
2 | export declare const card: string;
3 | export declare const publishDate: string;
4 | export declare const source: string;
5 | export declare const title: string;
6 | 


--------------------------------------------------------------------------------
/src/components/Notifications/NotificationTabs.module.scss:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/src/components/Notifications/NotificationTabs.module.scss


--------------------------------------------------------------------------------
/src/components/Notifications/NotificationsDrawer.module.scss:
--------------------------------------------------------------------------------
 1 | .inner {
 2 |   @media (min-width: theme('screens.xs')) {
 3 |     top: var(--header-height);
 4 |     height: calc(100% - var(--header-height));
 5 |   }
 6 | }
 7 | 
 8 | .body {
 9 |   height: 100%;
10 |   padding: 0;
11 | }
12 | 


--------------------------------------------------------------------------------
/src/components/Notifications/NotificationsDrawer.module.scss.d.ts:
--------------------------------------------------------------------------------
1 | export declare const body: string;
2 | export declare const inner: string;
3 | 


--------------------------------------------------------------------------------
/src/components/Onboarding/OnboardingContentExperience.module.scss.d.ts:
--------------------------------------------------------------------------------
1 | export declare const glowing: string;
2 | export declare const newsletterBot: string;
3 | export declare const newsletterCard: string;
4 | 


--------------------------------------------------------------------------------
/src/components/Onboarding/OnboardingWizard.module.scss.d.ts:
--------------------------------------------------------------------------------
1 | export declare const separator: string;
2 | export declare const step: string;
3 | export declare const stepBody: string;
4 | export declare const stepCompletedIcon: string;
5 | export declare const stepDescription: string;
6 | export declare const stepIcon: string;
7 | export declare const steps: string;
8 | 


--------------------------------------------------------------------------------
/src/components/Post/EditV2/EditPostTags.module.scss:
--------------------------------------------------------------------------------
 1 | .active {
 2 |   background: light-dark(var(--mantine-color-gray-0), var(--mantine-color-dark-7));
 3 |   cursor: pointer;
 4 | }
 5 | 
 6 | .categoryIcon {
 7 |   stroke-width: 0;
 8 |   fill: var(--mantine-color-blue-6);
 9 |   margin-top: 1px;
10 | }
11 | 


--------------------------------------------------------------------------------
/src/components/Post/EditV2/EditPostTags.module.scss.d.ts:
--------------------------------------------------------------------------------
1 | export declare const active: string;
2 | export declare const categoryIcon: string;
3 | 


--------------------------------------------------------------------------------
/src/components/Profile/ImageCSSAspectRatioWrap.module.scss.d.ts:
--------------------------------------------------------------------------------
1 | export declare const actions: string;
2 | export declare const cover: string;
3 | export declare const wrap: string;
4 | 


--------------------------------------------------------------------------------
/src/components/Profile/ProfileHeader.module.scss.d.ts:
--------------------------------------------------------------------------------
1 | export declare const coverImage: string;
2 | export declare const coverImageNsfwActions: string;
3 | export declare const coverImageWrapper: string;
4 | export declare const message: string;
5 | export declare const profileSection: string;
6 | export declare const profileSectionWithCoverImage: string;
7 | 


--------------------------------------------------------------------------------
/src/components/Profile/ProfileLayout.module.scss:
--------------------------------------------------------------------------------
 1 | .sidebar {
 2 |   width: 320px;
 3 |   height: 100%;
 4 |   background: light-dark(
 5 |     var(--mantine-color-gray-0),
 6 |     var(--mantine-color-dark-6)
 7 |   );
 8 | 
 9 |   @container (max-width: theme('screens.sm')) {
10 |     display: none;
11 |   }
12 | }
13 | 
14 | .root {
15 |   display: flex;
16 |   flex: 1;
17 |   height: 100%;
18 | }
19 | 


--------------------------------------------------------------------------------
/src/components/Profile/ProfileLayout.module.scss.d.ts:
--------------------------------------------------------------------------------
1 | export declare const root: string;
2 | export declare const sidebar: string;
3 | 


--------------------------------------------------------------------------------
/src/components/Profile/Sections/RecentReviewsSection.module.scss:
--------------------------------------------------------------------------------
 1 | .title {
 2 |   @container (max-width: theme('screens.sm')) {
 3 |     font-size: 24px;
 4 |   }
 5 | }
 6 | 
 7 | .ContainerGrid {
 8 |   @container (max-width: theme('screens.sm')) {
 9 |     flex-direction: column-reverse;
10 |   }
11 | }
12 | 


--------------------------------------------------------------------------------
/src/components/Profile/Sections/RecentReviewsSection.module.scss.d.ts:
--------------------------------------------------------------------------------
1 | export declare const containerGrid: string;
2 | export declare const title: string;
3 | 


--------------------------------------------------------------------------------
/src/components/Profile/Sections/ShowcaseGrid.module.scss.d.ts:
--------------------------------------------------------------------------------
1 | export declare const container: string;
2 | export declare const grid: string;
3 | export declare const gridCarousel: string;
4 | export declare const scrollArea: string;
5 | 


--------------------------------------------------------------------------------
/src/components/Profile/ShowcaseItemsInput.module.scss.d.ts:
--------------------------------------------------------------------------------
1 | export declare const selectedItemRemove: string;
2 | export declare const selectedItemsGrid: string;
3 | 


--------------------------------------------------------------------------------
/src/components/PurchasableRewards/PurchasableRewards.module.scss.d.ts:
--------------------------------------------------------------------------------
1 | export declare const renderHtmlYoutube: string;
2 | export declare const rewardCard: string;
3 | 


--------------------------------------------------------------------------------
/src/components/PurchasableRewards/PurchasableRewardsModeratorFiltersDropdown.module.scss.d.ts:
--------------------------------------------------------------------------------
1 | export declare const actionButton: string;
2 | export declare const indicatorIndicator: string;
3 | export declare const indicatorRoot: string;
4 | export declare const label: string;
5 | export declare const opened: string;
6 | 


--------------------------------------------------------------------------------
/src/components/Questions/QuestionAnswerComments.module.scss:
--------------------------------------------------------------------------------
1 | .list {
2 |   border-top: 1px solid light-dark(var(--mantine-color-dark-4), var(--mantine-color-gray-3));
3 | }
4 | 
5 | .listItem {
6 |   padding: var(--mantine-spacing-sm);
7 |   border-bottom: 1px solid light-dark(var(--mantine-color-dark-4), var(--mantine-color-gray-3));
8 | }


--------------------------------------------------------------------------------
/src/components/Questions/QuestionAnswerComments.module.scss.d.ts:
--------------------------------------------------------------------------------
1 | export declare const list: string;
2 | export declare const listItem: string;
3 | 


--------------------------------------------------------------------------------
/src/components/Questions/Questions.Provider.module.scss:
--------------------------------------------------------------------------------
1 | .title {
2 |   overflow-wrap: break-word;
3 | 
4 |   @container (max-width: theme('screens.sm')) {
5 |     font-size: 16px;
6 |   }
7 | }
8 | 


--------------------------------------------------------------------------------
/src/components/Questions/Questions.Provider.module.scss.d.ts:
--------------------------------------------------------------------------------
1 | export declare const title: string;
2 | 


--------------------------------------------------------------------------------
/src/components/RedeemableCode/RedeemCodeModal.module.scss:
--------------------------------------------------------------------------------
 1 | .cancelButton {
 2 |   @container (max-width: var(--mantine-breakpoint-sm, 768px)) {
 3 |     width: 100%;
 4 |     order: 2;
 5 |   }
 6 | }
 7 | 
 8 | .submitButton {
 9 |   @container (max-width: var(--mantine-breakpoint-sm, 768px)) {
10 |     width: 100%;
11 |     order: 1;
12 |   }
13 | }


--------------------------------------------------------------------------------
/src/components/RedeemableCode/RedeemCodeModal.module.scss.d.ts:
--------------------------------------------------------------------------------
1 | export declare const cancelButton: string;
2 | export declare const submitButton: string;
3 | 


--------------------------------------------------------------------------------
/src/components/RenderHtml/RenderHtml.module.scss.d.ts:
--------------------------------------------------------------------------------
1 | export declare const htmlRenderer: string;
2 | 


--------------------------------------------------------------------------------
/src/components/Resizable/ResizeableSidebar.module.scss.d.ts:
--------------------------------------------------------------------------------
1 | export declare const content: string;
2 | export declare const left: string;
3 | export declare const resizer: string;
4 | export declare const right: string;
5 | export declare const sidebar: string;
6 | 


--------------------------------------------------------------------------------
/src/components/Resource/Files.module.scss:
--------------------------------------------------------------------------------
1 | .dropzoneReject {
2 |   &[data-reject] {
3 |     background: var(--mantine-color-dark-5);
4 |     border-color: var(--mantine-color-dark-4);
5 |   }
6 | }


--------------------------------------------------------------------------------
/src/components/Resource/Files.module.scss.d.ts:
--------------------------------------------------------------------------------
1 | export declare const dropzoneReject: string;
2 | 


--------------------------------------------------------------------------------
/src/components/Resource/Forms/ModelUpsertForm.module.scss:
--------------------------------------------------------------------------------
 1 |  .availabilityChip { 
 2 |   height: auto;
 3 |   overflow: hidden;
 4 |   
 5 |   > label {
 6 |     width: 100%;
 7 |     height: auto;
 8 |     padding: 16px 0;
 9 | 
10 |     &[data-checked] {
11 |       border: 2px solid;
12 |       border-color: theme('colors.blue.5');
13 |     }
14 |   }
15 | } 
16 | 


--------------------------------------------------------------------------------
/src/components/Resource/Forms/ModelUpsertForm.module.scss.d.ts:
--------------------------------------------------------------------------------
1 | export declare const availabilityChip: string;
2 | 


--------------------------------------------------------------------------------
/src/components/ResourceReview/EditResourceReview.module.scss:
--------------------------------------------------------------------------------
 1 | .richTextEditorContent {
 2 |   min-height: 50px;
 3 |   max-height: 500px;
 4 |   padding: 0;
 5 |   font-size: 12px;
 6 | 
 7 |   :global .ProseMirror {
 8 |     padding: 6px 10px;
 9 |     min-height: 22px;
10 |     cursor: text;
11 | 
12 |     :global p.is-editor-empty:first-of-type::before {
13 |       font-size: 12px;
14 |     }
15 |   }
16 | }
17 | 


--------------------------------------------------------------------------------
/src/components/ResourceReview/EditUserResourceReview.module.scss:
--------------------------------------------------------------------------------
1 | .opened {
2 |   transform: rotate(180deg);
3 |   transition: transform 200ms ease;
4 | }


--------------------------------------------------------------------------------
/src/components/ResourceReview/EditUserResourceReview.module.scss.d.ts:
--------------------------------------------------------------------------------
1 | export declare const opened: string;
2 | 


--------------------------------------------------------------------------------
/src/components/ResourceReview/ResourceReviewThumbActions.module.scss.d.ts:
--------------------------------------------------------------------------------
1 | export declare const button: string;
2 | export declare const mantineButtonLeftIcon: string;
3 | 


--------------------------------------------------------------------------------
/src/components/ResourceReview/Summary/ResourceReviewSummary.module.scss.d.ts:
--------------------------------------------------------------------------------
1 | export declare const badgeText: string;
2 | export declare const grid: string;
3 | 


--------------------------------------------------------------------------------
/src/components/RunStrategy/RunPartners.module.scss:
--------------------------------------------------------------------------------
1 | .premiumPartner {
2 |   .mantine-Badge-root {
3 |     padding: 2px 8px;
4 |   }
5 | }


--------------------------------------------------------------------------------
/src/components/RunStrategy/RunPartners.module.scss.d.ts:
--------------------------------------------------------------------------------
1 | export declare const mantineBadgeRoot: string;
2 | export declare const premiumPartner: string;
3 | 


--------------------------------------------------------------------------------
/src/components/Search/CustomSearchComponents.module.scss.d.ts:
--------------------------------------------------------------------------------
1 | export declare const divider: string;
2 | export declare const input: string;
3 | export declare const root: string;
4 | export declare const wrapper: string;
5 | 


--------------------------------------------------------------------------------
/src/components/Search/SearchHeader.module.scss.d.ts:
--------------------------------------------------------------------------------
1 | export declare const control: string;
2 | export declare const indicator: string;
3 | export declare const label: string;
4 | export declare const root: string;
5 | export declare const wrapper: string;
6 | 


--------------------------------------------------------------------------------
/src/components/Search/SearchLayout.module.scss.d.ts:
--------------------------------------------------------------------------------
1 | export declare const active: string;
2 | export declare const filterButton: string;
3 | export declare const grid: string;
4 | export declare const root: string;
5 | export declare const scrollable: string;
6 | export declare const sidebar: string;
7 | 


--------------------------------------------------------------------------------
/src/components/SelectMenu/SelectMenu.module.scss:
--------------------------------------------------------------------------------
 1 | .root {
 2 |   z-index: 400;
 3 | }
 4 | 
 5 | .body {
 6 |   padding: 0 16px 16px 16px;
 7 |   overflow: auto;
 8 | }
 9 | 
10 | .content {
11 |   // height: auto;
12 | }
13 | 
14 | .header {
15 |   padding: 4px 8px;
16 | }
17 | 
18 | .close {
19 |   height: 32px;
20 |   width: 32px;
21 | 
22 |   & > svg {
23 |     width: 24px;
24 |     height: 24px;
25 |   }
26 | }
27 | 


--------------------------------------------------------------------------------
/src/components/SelectMenu/SelectMenu.module.scss.d.ts:
--------------------------------------------------------------------------------
1 | export declare const body: string;
2 | export declare const close: string;
3 | export declare const content: string;
4 | export declare const header: string;
5 | export declare const root: string;
6 | 


--------------------------------------------------------------------------------
/src/components/Shop/ShopSection.module.scss.d.ts:
--------------------------------------------------------------------------------
1 | export declare const backgroundImage: string;
2 | export declare const section: string;
3 | export declare const sectionDescription: string;
4 | export declare const sectionHeaderContainer: string;
5 | export declare const sectionHeaderContainerWithBackground: string;
6 | export declare const sectionHeaderContentWrap: string;
7 | export declare const sectionTitle: string;
8 | 


--------------------------------------------------------------------------------
/src/components/SkeletonSwitch/SkeletonSwitch.tsx:
--------------------------------------------------------------------------------
 1 | import type { SwitchProps } from '@mantine/core';
 2 | import { Skeleton, Switch } from '@mantine/core';
 3 | 
 4 | export const SkeletonSwitch = ({ loading, ...props }: { loading: boolean } & SwitchProps) => {
 5 |   return (
 6 |     <Skeleton height={20} width={40} radius="lg" visible={loading}>
 7 |       <Switch {...props} />
 8 |     </Skeleton>
 9 |   );
10 | };
11 | 


--------------------------------------------------------------------------------
/src/components/Social/LiveNow.module.scss:
--------------------------------------------------------------------------------
1 | .liveNow {
2 |   cursor: pointer;
3 | 
4 |   &::before {
5 |     animation: blink 2s linear infinite;
6 |   }
7 | }
8 | 


--------------------------------------------------------------------------------
/src/components/Social/LiveNow.module.scss.d.ts:
--------------------------------------------------------------------------------
1 | export declare const blink: string;
2 | export declare const liveNow: string;
3 | 


--------------------------------------------------------------------------------
/src/components/StartRating/StarRating.module.scss.d.ts:
--------------------------------------------------------------------------------
1 | export declare const gauge: string;
2 | 


--------------------------------------------------------------------------------
/src/components/Stripe/MembershipUpsell.module.scss.d.ts:
--------------------------------------------------------------------------------
1 | export declare const card: string;
2 | export declare const listItem: string;
3 | export declare const mantineTextRoot: string;
4 | export declare const subtitle: string;
5 | export declare const title: string;
6 | 


--------------------------------------------------------------------------------
/src/components/Subscriptions/SubscriptionRequiredBlock.module.scss:
--------------------------------------------------------------------------------
 1 | .guardedContent { 
 2 |   position: relative;
 3 |    
 4 |   &::after {
 5 |     content: '';
 6 |     position: absolute;
 7 |     top: 0;
 8 |     left: 0;
 9 |     width: 100%;
10 |     height: 100%;
11 |     background: transparent;
12 |     z-index: 1;
13 |     cursor: pointer;
14 |    }
15 | }
16 |  


--------------------------------------------------------------------------------
/src/components/Subscriptions/SubscriptionRequiredBlock.module.scss.d.ts:
--------------------------------------------------------------------------------
1 | export declare const guardedContent: string;
2 | 


--------------------------------------------------------------------------------
/src/components/Tags/TagsInput.module.scss.d.ts:
--------------------------------------------------------------------------------
1 | export declare const badge: string;
2 | export declare const createOption: string;
3 | export declare const dropdown: string;
4 | export declare const inner: string;
5 | 


--------------------------------------------------------------------------------
/src/components/ToggleList/ToggleList.module.scss.d.ts:
--------------------------------------------------------------------------------
1 | export declare const active: string;
2 | export declare const item: string;
3 | 


--------------------------------------------------------------------------------
/src/components/Tool/ToolFiltersDropdown.module.scss.d.ts:
--------------------------------------------------------------------------------
1 | export declare const body: string;
2 | export declare const close: string;
3 | export declare const content: string;
4 | export declare const header: string;
5 | 


--------------------------------------------------------------------------------
/src/components/Training/Form/ImageSelectFilters.module.scss.d.ts:
--------------------------------------------------------------------------------
1 | export declare const body: string;
2 | export declare const close: string;
3 | export declare const content: string;
4 | export declare const header: string;
5 | export declare const indicatorIndicator: string;
6 | export declare const indicatorRoot: string;
7 | export declare const opened: string;
8 | export declare const root: string;
9 | 


--------------------------------------------------------------------------------
/src/components/Training/Form/TrainingImages.module.scss.d.ts:
--------------------------------------------------------------------------------
1 | export declare const badLabel: string;
2 | export declare const imgOverlay: string;
3 | export declare const source: string;
4 | export declare const trash: string;
5 | export declare const trashIcon: string;
6 | 


--------------------------------------------------------------------------------
/src/components/Training/Form/TrainingImagesCaptionViewer.module.scss:
--------------------------------------------------------------------------------
1 | .hiText {
2 |   :global .DraftEditor-root {
3 |     height: 100px;
4 |     scrollbar-width: thin;
5 |     overflow-y: auto;
6 |   }
7 | }
8 | 


--------------------------------------------------------------------------------
/src/components/Training/Form/TrainingImagesCaptionViewer.module.scss.d.ts:
--------------------------------------------------------------------------------
1 | export declare const draftEditorRoot: string;
2 | export declare const hiText: string;
3 | 


--------------------------------------------------------------------------------
/src/components/TwCosmeticWrapper/CosmeticWrapper.module.scss.d.ts:
--------------------------------------------------------------------------------
1 | export declare const border: string;
2 | export declare const cssFrame: string;
3 | export declare const glow: string;
4 | export declare const texture: string;
5 | export declare const wrapper: string;
6 | 


--------------------------------------------------------------------------------
/src/components/User/UserModelsTable.module.scss.d.ts:
--------------------------------------------------------------------------------
1 | export declare const header: string;
2 | export declare const scrolled: string;
3 | 


--------------------------------------------------------------------------------
/src/components/UserAvatar/UserAvatarSimple.module.scss:
--------------------------------------------------------------------------------
 1 | .username {
 2 |   vertical-align: middle;
 3 |   filter: drop-shadow(1px 1px 1px rgba(0, 0, 0, 0.2));
 4 | }
 5 | 
 6 | :global([data-mantine-color-scheme="dark"]) {
 7 |   .username {
 8 |     filter: drop-shadow(1px 1px 1px rgba(0, 0, 0, 0.8));
 9 |   }
10 | }
11 | 


--------------------------------------------------------------------------------
/src/components/UserAvatar/UserAvatarSimple.module.scss.d.ts:
--------------------------------------------------------------------------------
1 | export declare const username: string;
2 | 


--------------------------------------------------------------------------------
/src/components/Vault/VaultItemsFiltersDropdown.module.scss.d.ts:
--------------------------------------------------------------------------------
1 | export declare const body: string;
2 | export declare const close: string;
3 | export declare const content: string;
4 | export declare const header: string;
5 | 


--------------------------------------------------------------------------------
/src/components/VimeoEmbed/VimeoEmbed.module.scss:
--------------------------------------------------------------------------------
 1 | .vimeoWrapper {
 2 |   position: relative;
 3 |   overflow: hidden;
 4 |   background: #000;
 5 | 
 6 |   & iframe {
 7 |       position: absolute;
 8 |       top: 0;
 9 |       left: 0;
10 |       width: 100%;
11 |       height: 100%;
12 |       & body {
13 |         background: #000;
14 |       }
15 |   }
16 | }
17 | 


--------------------------------------------------------------------------------
/src/components/VimeoEmbed/VimeoEmbed.module.scss.d.ts:
--------------------------------------------------------------------------------
1 | export declare const vimeoWrapper: string;
2 | 


--------------------------------------------------------------------------------
/src/env/other.ts:
--------------------------------------------------------------------------------
1 | export const isDev = process.env.NODE_ENV === 'development';
2 | export const isProd = process.env.NODE_ENV === 'production';
3 | export const isTest = process.env.NODE_ENV === 'test';
4 | 


--------------------------------------------------------------------------------
/src/hooks/hidden-preferences/index.ts:
--------------------------------------------------------------------------------
1 | export * from './useHiddenPreferences';
2 | export * from './useToggleHiddenPreferences';
3 | 


--------------------------------------------------------------------------------
/src/hooks/useCreateStore.ts:
--------------------------------------------------------------------------------
1 | import { useState } from 'react';
2 | import { createStore } from 'zustand';
3 | 
4 | export function useCreateStore<TStore extends Record<string, unknown>>(defaultValues: TStore) {
5 |   const [store] = useState(() => createStore<TStore>(() => ({ ...defaultValues })));
6 | 
7 |   return store;
8 | }
9 | 


--------------------------------------------------------------------------------
/src/hooks/useIsClient.ts:
--------------------------------------------------------------------------------
1 | import { useIsClient } from '~/providers/IsClientProvider';
2 | 
3 | export default useIsClient;
4 | 


--------------------------------------------------------------------------------
/src/hooks/useIsomorphicLayoutEffect.ts:
--------------------------------------------------------------------------------
1 | import { useLayoutEffect, useEffect } from 'react';
2 | 
3 | export const useIsomorphicLayoutEffect =
4 |   typeof window !== 'undefined' ? useLayoutEffect : useEffect;
5 | 


--------------------------------------------------------------------------------
/src/libs/auth.ts:
--------------------------------------------------------------------------------
1 | import { env } from '~/env/client';
2 | 
3 | export const useSecureCookies = env.NEXT_PUBLIC_BASE_URL?.startsWith('https://');
4 | const cookiePrefix = useSecureCookies ? '__Secure-' : '';
5 | 
6 | export const civitaiTokenCookieName = `${cookiePrefix}civitai-token`;
7 | export const callbackCookieName = `${cookiePrefix}next-auth.callback-url`;
8 | 


--------------------------------------------------------------------------------
/src/libs/form/components/CosmeticSelect.module.scss.d.ts:
--------------------------------------------------------------------------------
1 | export declare const decoration: string;
2 | export declare const noContent: string;
3 | export declare const noContentNoUrl: string;
4 | export declare const selected: string;
5 | 


--------------------------------------------------------------------------------
/src/libs/form/components/MultiFileInputUpload.module.scss:
--------------------------------------------------------------------------------
1 | .dropzone {
2 |   &[data-reject], &[data-reject]:hover, &[data-accept], &[data-accept]:hover {
3 |     background-color: var(--mantine-color-dark-5);
4 |     border-color: var(--mantine-color-dark-4);
5 |   }
6 | }
7 | 


--------------------------------------------------------------------------------
/src/libs/form/components/MultiFileInputUpload.module.scss.d.ts:
--------------------------------------------------------------------------------
1 | export declare const dropzone: string;
2 | 


--------------------------------------------------------------------------------
/src/libs/form/components/PresetOptions.module.scss.d.ts:
--------------------------------------------------------------------------------
1 | export declare const iconWrapper: string;
2 | export declare const label: string;
3 | 


--------------------------------------------------------------------------------
/src/libs/form/components/SimpleImageUpload.module.scss.d.ts:
--------------------------------------------------------------------------------
1 | export declare const imageContainer: string;
2 | export declare const imageContainerAspectRatio: string;
3 | 


--------------------------------------------------------------------------------
/src/libs/form/index.ts:
--------------------------------------------------------------------------------
1 | export * from './components';
2 | export * from './hooks/useForm';
3 | 


--------------------------------------------------------------------------------
/src/libs/generation/utils/constants.ts:
--------------------------------------------------------------------------------
1 | export const maxResolution = 3840;
2 | export const minResolution = 200;
3 | 


--------------------------------------------------------------------------------
/src/libs/helpers.module.scss:
--------------------------------------------------------------------------------
 1 | .hideMobile {
 2 |   @media (max-width: calc(theme('screens.xs') - 1px)) {
 3 |     display: none;
 4 |   }
 5 | }
 6 | 
 7 | .showMobile {
 8 |   @media (min-width: theme('screens.xs')) {
 9 |     display: none;
10 |   }
11 | }
12 | 


--------------------------------------------------------------------------------
/src/libs/helpers.module.scss.d.ts:
--------------------------------------------------------------------------------
1 | export declare const hideMobile: string;
2 | export declare const showMobile: string;
3 | 


--------------------------------------------------------------------------------
/src/libs/slots/use-force-update.ts:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | 
3 | export const useForceUpdate = () => {
4 |   const [, rerender] = React.useState({});
5 |   return React.useCallback(() => rerender({}), []);
6 | };
7 | 


--------------------------------------------------------------------------------
/src/libs/slots/useIsomorphicLayoutEffect.ts:
--------------------------------------------------------------------------------
 1 | import { useEffect, useLayoutEffect } from 'react';
 2 | 
 3 | const useIsomorphicLayoutEffect =
 4 |   typeof window !== 'undefined' &&
 5 |   typeof window.document !== 'undefined' &&
 6 |   typeof window.document.createElement !== 'undefined'
 7 |     ? useLayoutEffect
 8 |     : useEffect;
 9 | 
10 | export default useIsomorphicLayoutEffect;
11 | 


--------------------------------------------------------------------------------
/src/pages/404.tsx:
--------------------------------------------------------------------------------
 1 | import type { NextPage } from 'next';
 2 | import React from 'react';
 3 | import { NotFound } from '~/components/AppLayout/NotFound';
 4 | 
 5 | const FourOhFour: NextPage = () => {
 6 |   return <NotFound />;
 7 | };
 8 | 
 9 | export default FourOhFour;
10 | 


--------------------------------------------------------------------------------
/src/pages/api/admin/header-check.ts:
--------------------------------------------------------------------------------
 1 | import type { NextApiRequest, NextApiResponse } from 'next';
 2 | import { WebhookEndpoint } from '~/server/utils/endpoint-helpers';
 3 | 
 4 | const handler = WebhookEndpoint(async (req: NextApiRequest, res: NextApiResponse) => {
 5 |   return res.status(200).json({
 6 |     headers: req.headers,
 7 |   });
 8 | });
 9 | 
10 | export default handler;
11 | 


--------------------------------------------------------------------------------
/src/pages/api/internal/get-jobs.ts:
--------------------------------------------------------------------------------
1 | import type { NextApiRequest, NextApiResponse } from 'next';
2 | import { JobEndpoint } from '~/server/utils/endpoint-helpers';
3 | import { jobs } from '~/pages/api/webhooks/run-jobs/[[...run]]';
4 | 
5 | export default JobEndpoint(async function getJobs(req: NextApiRequest, res: NextApiResponse) {
6 |   return res.status(200).json(Array.from(jobs));
7 | });
8 | 


--------------------------------------------------------------------------------
/src/pages/bounties/[id]/entries/[entryId]/index.module.scss:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/src/pages/bounties/[id]/entries/[entryId]/index.module.scss


--------------------------------------------------------------------------------
/src/pages/home/index.module.css:
--------------------------------------------------------------------------------
 1 | .container {
 2 |   margin-top: -12px;
 3 |   
 4 |   & > *:nth-of-type(even) {
 5 |     background: light-dark(
 6 |       darken(var(--mantine-color-gray-0), 0.01),
 7 |       var(--mantine-color-dark-8)
 8 |     )
 9 |   }
10 | }
11 | 


--------------------------------------------------------------------------------
/src/pages/testing/demo.tsx:
--------------------------------------------------------------------------------
 1 | import { Container } from '@mantine/core';
 2 | import { RunPartners } from '~/components/RunStrategy/RunPartners';
 3 | 
 4 | export default function Demo() {
 5 |   return (
 6 |     <Container size="xs">
 7 |       <RunPartners modelVersionId={1144} />
 8 |     </Container>
 9 |   );
10 | }
11 | 


--------------------------------------------------------------------------------
/src/pages/user/[username]/[list].module.scss:
--------------------------------------------------------------------------------
 1 | .striped {
 2 |   li {
 3 |     display: flex;
 4 |     padding: calc(var(--mantine-spacing-xs) * 0.8); // 8px
 5 | 
 6 |     &:nth-of-type(2n) {
 7 |       background: light-dark(
 8 |         var(--mantine-color-gray-0),
 9 |         var(--mantine-color-dark-8)
10 |       );
11 |     }
12 |   }
13 | }


--------------------------------------------------------------------------------
/src/pages/user/[username]/models.module.scss:
--------------------------------------------------------------------------------
 1 | .filtersWrapper {
 2 |   @container (max-width: theme('screens.sm')) {
 3 |     width: 100%;
 4 | 
 5 |     >* {
 6 |       flex-grow: 1;
 7 |     }
 8 |   }
 9 | }
10 | 


--------------------------------------------------------------------------------
/src/pages/user/membership.module.css:
--------------------------------------------------------------------------------
 1 | .card {
 2 |   height: '100%';
 3 |   background: light-dark(
 4 |     var(--mantine-color-gray-0),
 5 |     var(--mantine-color-dark-8)
 6 |   );
 7 |   border-radius: var(--mantine-radius-md);
 8 |   padding: var(--mantine-spacing-lg);
 9 |     
10 | } 
11 | 
12 | .price {
13 |   font-size: rem(48px);
14 |   font-weight: 700;
15 | }
16 | 


--------------------------------------------------------------------------------
/src/server/controllers/announcement.controller.ts:
--------------------------------------------------------------------------------
1 | import { Context } from '~/server/createContext';
2 | import { throwDbError } from '~/server/utils/errorHandling';
3 | 


--------------------------------------------------------------------------------
/src/server/jobs/dummy-job.ts:
--------------------------------------------------------------------------------
1 | import { sleep } from '~/server/utils/concurrency-helpers';
2 | import { createJob, UNRUNNABLE_JOB_CRON } from './job';
3 | 
4 | export const dummyJob = createJob('dummy', UNRUNNABLE_JOB_CRON, async () => {
5 |   await sleep(10000);
6 | });
7 | 


--------------------------------------------------------------------------------
/src/server/jobs/next-auth-cleanup.ts:
--------------------------------------------------------------------------------
 1 | import { createJob } from './job';
 2 | import { dbWrite } from '~/server/db/client';
 3 | 
 4 | export const nextauthCleanup = createJob('next-auth-cleanup', '0 0 * * *', async () => {
 5 |   // Clean verification tokens
 6 |   dbWrite.verificationToken.deleteMany({
 7 |     where: {
 8 |       expires: {
 9 |         lt: new Date(),
10 |       },
11 |     },
12 |   });
13 | });
14 | 


--------------------------------------------------------------------------------
/src/server/notifications/detail-fetchers/base.detail-fetcher.ts:
--------------------------------------------------------------------------------
 1 | import type { PrismaClient } from '@prisma/client';
 2 | import type { BareNotification } from '~/server/notifications/base.notifications';
 3 | 
 4 | export function createDetailFetcher(fetcher: {
 5 |   types: string[];
 6 |   fetcher: (notifications: BareNotification[], ctx: { db: PrismaClient }) => Promise<void>;
 7 | }) {
 8 |   return fetcher;
 9 | }
10 | 


--------------------------------------------------------------------------------
/src/server/orchestrator/infrastructure/base.enums.ts:
--------------------------------------------------------------------------------
 1 | export type GenerationType = keyof typeof GenerationType;
 2 | export const GenerationType = {
 3 |   txt2img: 'txt2img',
 4 |   img2img: 'img2img',
 5 |   txt2vid: 'txt2vid',
 6 |   img2vid: 'img2vid',
 7 | } as const;
 8 | 
 9 | export const GenerationPriorityLevelMap = {
10 |   high: 10,
11 |   normal: 20,
12 |   low: 30,
13 | };
14 | 


--------------------------------------------------------------------------------
/src/server/orchestrator/infrastructure/base.utils.ts:
--------------------------------------------------------------------------------
1 | export function unsupportedGenerationType(type: string) {
2 |   return new Error(`unsupported ${type} enhancement type`);
3 | }
4 | 


--------------------------------------------------------------------------------
/src/server/orchestrator/video-enhancement/video-enhancement.schema.ts:
--------------------------------------------------------------------------------
 1 | import z from 'zod';
 2 | 
 3 | export type VideoEnhancementSchema = z.infer<typeof videoEnhancementSchema>;
 4 | export const videoEnhancementSchema = z.object({
 5 |   sourceUrl: z.string(),
 6 |   width: z.number(),
 7 |   height: z.number(),
 8 |   multiplier: z.number().optional(),
 9 |   params: z.record(z.any()),
10 | });
11 | 


--------------------------------------------------------------------------------
/src/server/routers/build-guide.router.ts:
--------------------------------------------------------------------------------
1 | import { publicProcedure, router } from '~/server/trpc';
2 | import { getBuildGuides } from '~/server/services/build-guide.services';
3 | 
4 | export const buildGuideRouter = router({
5 |   getAll: publicProcedure.query(() => getBuildGuides()),
6 | });
7 | 


--------------------------------------------------------------------------------
/src/server/routers/partner.router.ts:
--------------------------------------------------------------------------------
1 | import { router, publicProcedure } from '~/server/trpc';
2 | import { getAllPartners } from '~/server/services/partner.service';
3 | 
4 | export const partnerRouter = router({
5 |   getAll: publicProcedure.query(() => getAllPartners()),
6 | });
7 | 


--------------------------------------------------------------------------------
/src/server/routers/reaction.router.ts:
--------------------------------------------------------------------------------
1 | import { toggleReactionHandler } from './../controllers/reaction.controller';
2 | import { toggleReactionSchema } from './../schema/reaction.schema';
3 | import { router, guardedProcedure } from '~/server/trpc';
4 | 
5 | export const reactionRouter = router({
6 |   toggle: guardedProcedure.input(toggleReactionSchema).mutation(toggleReactionHandler),
7 | });
8 | 


--------------------------------------------------------------------------------
/src/server/routers/signals.router.ts:
--------------------------------------------------------------------------------
1 | import { getUserAccountHandler } from '~/server/controllers/signals.controller';
2 | import { protectedProcedure, router } from '~/server/trpc';
3 | 
4 | export const signalsRouter = router({
5 |   getToken: protectedProcedure.query(getUserAccountHandler),
6 | });
7 | 


--------------------------------------------------------------------------------
/src/server/schema/civToken.schema.ts:
--------------------------------------------------------------------------------
 1 | import { z } from 'zod';
 2 | 
 3 | export const civTokenEndpoint = '/api/auth/civ-token';
 4 | export const impersonateEndpoint = '/api/auth/impersonate';
 5 | 
 6 | export const encryptedDataSchema = z.object({
 7 |   iv: z.string(),
 8 |   data: z.string(),
 9 |   signedAt: z.string(),
10 | });
11 | export type EncryptedDataSchema = z.infer<typeof encryptedDataSchema>;
12 | 


--------------------------------------------------------------------------------
/src/server/schema/donation-goal.schema.ts:
--------------------------------------------------------------------------------
1 | import { z } from 'zod';
2 | 
3 | export type DonateToGoalInput = z.infer<typeof donateToGoalInput>;
4 | export const donateToGoalInput = z.object({
5 |   amount: z.number(),
6 |   donationGoalId: z.number(),
7 | });
8 | 


--------------------------------------------------------------------------------
/src/server/schema/integration.schema.ts:
--------------------------------------------------------------------------------
1 | import { z } from 'zod';
2 | 
3 | export const airConfirmSchema = z.object({
4 |   email: z.string().email(),
5 | });
6 | 


--------------------------------------------------------------------------------
/src/server/schema/newsletter.schema.ts:
--------------------------------------------------------------------------------
1 | import { z } from 'zod';
2 | 
3 | export type UpdateSubscriptionSchema = z.infer<typeof updateSubscriptionSchema>;
4 | export const updateSubscriptionSchema = z.object({
5 |   subscribed: z.boolean(),
6 |   email: z.string().trim().email().optional(),
7 | });
8 | 


--------------------------------------------------------------------------------
/src/server/schema/orchestrator/models.schema.ts:
--------------------------------------------------------------------------------
1 | import { z } from 'zod';
2 | 
3 | export const getModelByAirSchema = z.object({
4 |   air: z.string(),
5 | });
6 | 


--------------------------------------------------------------------------------
/src/server/schema/paypal.schema.ts:
--------------------------------------------------------------------------------
 1 | import { z } from 'zod';
 2 | 
 3 | export type PaypalPurchaseBuzzSchema = z.infer<typeof paypalPurchaseBuzzSchema>;
 4 | export const paypalPurchaseBuzzSchema = z.object({
 5 |   amount: z.number(),
 6 | });
 7 | 
 8 | export type PaypalOrderSchema = z.infer<typeof paypalOrderSchema>;
 9 | export const paypalOrderSchema = z.object({
10 |   orderId: z.string(),
11 | });
12 | 


--------------------------------------------------------------------------------
/src/server/schema/user-payment-configuration.schema.ts:
--------------------------------------------------------------------------------
1 | import { z } from 'zod';
2 | 
3 | export const getTipaltiDashbordUrlSchema = z.object({
4 |   type: z.enum(['setup', 'paymentHistory']).default('setup'),
5 | });
6 | export type GetTipaltiDashbordUrlSchema = z.infer<typeof getTipaltiDashbordUrlSchema>;
7 | 


--------------------------------------------------------------------------------
/src/server/selectors/modelHash.selector.ts:
--------------------------------------------------------------------------------
 1 | import { Prisma } from '@prisma/client';
 2 | 
 3 | export const modelHashSelect = Prisma.validator<Prisma.ModelHashSelect>()({
 4 |   hash: true,
 5 | });
 6 | 
 7 | const modelHash = Prisma.validator<Prisma.ModelHashFindManyArgs>()({
 8 |   select: modelHashSelect,
 9 | });
10 | export type ModelHashModel = Prisma.ModelHashGetPayload<typeof modelHash>;
11 | 


--------------------------------------------------------------------------------
/src/server/utils/chat.ts:
--------------------------------------------------------------------------------
 1 | import { uniq } from 'lodash-es';
 2 | 
 3 | export const getChatHash = (userIds: number[]) => {
 4 |   return uniq(userIds)
 5 |     .sort((a, b) => a - b)
 6 |     .join('-');
 7 | };
 8 | 
 9 | export const getUsersFromHash = (hash: string) => {
10 |   return hash.split('-').map((id) => parseInt(id, 10));
11 | };
12 | 


--------------------------------------------------------------------------------
/src/server/utils/react-templates/fonts/Montserrat-Bold.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/src/server/utils/react-templates/fonts/Montserrat-Bold.ttf


--------------------------------------------------------------------------------
/src/server/utils/react-templates/fonts/Montserrat-Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/civitai/civitai/5387825ff3f93ef4dfd1e438ed214e6198c17ca5/src/server/utils/react-templates/fonts/Montserrat-Regular.ttf


--------------------------------------------------------------------------------
/src/shared/types/generation.types.ts:
--------------------------------------------------------------------------------
 1 | import { z } from 'zod';
 2 | 
 3 | type NodeRef = [string, number];
 4 | export type ComfyNode = {
 5 |   inputs: Record<string, number | string | NodeRef>;
 6 |   class_type: string;
 7 |   _meta?: Record<string, string>;
 8 |   _children?: { node: ComfyNode; inputKey: string }[];
 9 | };
10 | 


--------------------------------------------------------------------------------
/src/shared/types/image.types.ts:
--------------------------------------------------------------------------------
 1 | import type { ImageMetaProps } from '~/server/schema/image.schema';
 2 | 
 3 | export type ImageModel = {
 4 |   id: number;
 5 |   url: string;
 6 |   name: string | null;
 7 |   meta?: ImageMetaProps | null;
 8 |   createdAt: Date | null;
 9 | };
10 | 


--------------------------------------------------------------------------------
/src/shared/utils/index.ts:
--------------------------------------------------------------------------------
1 | export * from './flags';
2 | export * from './cookies';
3 | 


--------------------------------------------------------------------------------
/src/static-content/feature-introduction/article-create.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: How to Write Articles
3 | ---
4 | 
5 | [How to a create an article](https://www.youtube.com/embed/UtSYryt1tm8?si=_ob0qha3rRM6G5CA)
6 | 


--------------------------------------------------------------------------------
/src/static-content/feature-introduction/bounty-create.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: How to Create a Bounty
3 | ---
4 | 
5 | [How to a create a bounty](https://www.youtube.com/embed/uxaM_Oneqb0?si=DP90DZr_diWN_KpR)
6 | 


--------------------------------------------------------------------------------
/src/static-content/feature-introduction/bounty-submit-entry.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: How to Submit a Bounty Entry
3 | ---
4 | 
5 | [How to submit a bounty entry](https://www.youtube.com/embed/uxaM_Oneqb0?si=ZZJwfkCRx5dtxUda&amp;start=185)
6 | 


--------------------------------------------------------------------------------
/src/static-content/feature-introduction/image-generator.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: How to Use the On-site Image Generator
3 | ---
4 | 
5 | [How to use the on-site image generator](https://www.youtube.com/embed/KXBvHa0Fg-I?si=qRntq94FVD8AwOci)
6 | 


--------------------------------------------------------------------------------
/src/static-content/feature-introduction/model-training.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: 'How to Use the On-site LoRA Trainer'
3 | ---
4 | 
5 | [How to use the on-site LoRA trainer](https://www.youtube.com/embed/F1V8EyHez70?si=ttG0uSf5mmHHROEb)
6 | 


--------------------------------------------------------------------------------
/src/static-content/feature-introduction/model-upload.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: How to Upload a Model
3 | ---
4 | 
5 | [How to upload a model](https://www.youtube.com/embed/mX56glbORAQ?si=5GQJOZIKvcrKXTP8)
6 | 


--------------------------------------------------------------------------------
/src/static-content/feature-introduction/post-images.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: 'How to Post Images and Videos'
3 | ---
4 | 
5 | [How to post images](https://www.youtube.com/embed/ZM3P0TZofo8?si=ii05kp619RlP-57l)
6 | 


--------------------------------------------------------------------------------
/src/static-content/feature-introduction/stripe-connect.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: How to setup stripe connect
3 | ---
4 | 
5 | [How to setup stripe connect](https://drive.google.com/file/d/1Jq542oE2ine6XNEwTxmoLTHxyyxppxHJ/preview)
6 | 


--------------------------------------------------------------------------------
/src/static-content/feature-introduction/welcome.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Welcome to Civitai!
3 | ---
4 | 
5 | [Welcome to Civitai](https://www.youtube.com/embed/q9SAalOFwkg?si=ikR_dgOL0T55u9_a)
6 | 


--------------------------------------------------------------------------------
/src/store/tip.store.ts:
--------------------------------------------------------------------------------
1 | import { create } from 'zustand';
2 | import { persist } from 'zustand/middleware';
3 | 
4 | export const useTipStore = create<{ civitaiTip: number; creatorTip: number }>()(
5 |   persist(() => ({ civitaiTip: 0, creatorTip: 0.25 }), { name: 'tips' })
6 | );
7 | 


--------------------------------------------------------------------------------
/src/styles/utils.module.scss.d.ts:
--------------------------------------------------------------------------------
1 | export declare const gradientBox: string;
2 | export declare const gradientContainer: string;
3 | export declare const heading: string;
4 | export declare const heading3: string;
5 | export declare const heading4: string;
6 | export declare const heroContainer: string;
7 | export declare const heroText: string;
8 | export declare const heroTitle: string;
9 | 


--------------------------------------------------------------------------------
/src/types/tour.ts:
--------------------------------------------------------------------------------
 1 | import type { Step } from 'react-joyride';
 2 | 
 3 | export interface StepData {
 4 |   onNext?: () => Promise<void>;
 5 |   onPrev?: () => Promise<void>;
 6 |   onBeforeStart?: () => Promise<void>;
 7 | }
 8 | 
 9 | export type StepWithData = Step & { data?: StepData };
10 | 


--------------------------------------------------------------------------------
/src/types/type-guards.d.ts:
--------------------------------------------------------------------------------
 1 | export {};
 2 | 
 3 | declare global {
 4 |   type Prettify<T> = {
 5 |     [K in keyof T]: T[K];
 6 |   } & NonNullable<unknown>;
 7 | 
 8 |   type MakeUndefinedOptional<T> = Prettify<
 9 |     {
10 |       [K in keyof T as undefined extends T[K] ? never : K]: T[K];
11 |     } & {
12 |       [K in keyof T as undefined extends T[K] ? K : never]?: T[K];
13 |     }
14 |   >;
15 | }
16 | 


--------------------------------------------------------------------------------
/src/utils/deferred.ts:
--------------------------------------------------------------------------------
 1 | export class Deferred<T = void, E = unknown> {
 2 |   promise: Promise<T>;
 3 |   resolve: (value: T | PromiseLike<T>) => void = () => null;
 4 |   reject: (reason?: E) => void = () => null;
 5 | 
 6 |   constructor() {
 7 |     this.promise = new Promise((resolve, reject) => {
 8 |       this.resolve = resolve;
 9 |       this.reject = reject;
10 |     });
11 |   }
12 | }
13 | 


--------------------------------------------------------------------------------
/src/utils/device-helpers.js:
--------------------------------------------------------------------------------
1 | export const isTouchDevice = () => typeof document !== 'undefined' && 'ontouchstart' in document.documentElement
2 | 


--------------------------------------------------------------------------------
/src/utils/get-client-stripe.ts:
--------------------------------------------------------------------------------
 1 | import { env } from '~/env/client';
 2 | 
 3 | export const getClientStripe = async () => {
 4 |   if (!env.NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY) return null;
 5 | 
 6 |   return import('@stripe/stripe-js').then(({ loadStripe }) =>
 7 |     loadStripe(env.NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY!)
 8 |   );
 9 | };
10 | 


--------------------------------------------------------------------------------
/src/utils/lazy-motion.ts:
--------------------------------------------------------------------------------
1 | import { domAnimation } from 'motion/react';
2 | 
3 | export default domAnimation;
4 | 


--------------------------------------------------------------------------------
/src/utils/lazy.ts:
--------------------------------------------------------------------------------
1 | export async function getJSZip() {
2 |   const JSZip = (await import('jszip')).default;
3 |   return new JSZip();
4 | }
5 | 


--------------------------------------------------------------------------------
/src/utils/map-helpers.ts:
--------------------------------------------------------------------------------
1 | export function findKeyForValue<K, V>(m: Map<K, V[]>, v: V): K | undefined {
2 |   for (const [k, vs] of m) {
3 |     if (vs.includes(v)) return k;
4 |   }
5 |   return undefined;
6 | }
7 | 


--------------------------------------------------------------------------------
/src/utils/tailwind.ts:
--------------------------------------------------------------------------------
1 | export const breakpoints = {
2 |   xs: '480px',
3 |   sm: '768px',
4 |   md: '1024px',
5 |   lg: '1184px',
6 |   xl: '1440px',
7 | };
8 | 


--------------------------------------------------------------------------------
/tests/utils.ts:
--------------------------------------------------------------------------------
 1 | import { Request } from 'playwright';
 2 | 
 3 | export const apiResp = (d: any, meta?: any) => {
 4 |   return {
 5 |     result: {
 6 |       data: {
 7 |         json: d,
 8 |         meta: meta ?? {},
 9 |       },
10 |     },
11 |   };
12 | };
13 | 
14 | export const parseRequestParams = (request: Request) => {
15 |   return JSON.parse(request.postData() ?? '{}').json?.params ?? {};
16 | };
17 | 


--------------------------------------------------------------------------------