mirror of
https://github.com/comfyanonymous/ComfyUI.git
synced 2026-02-18 22:20:03 +00:00
Phase 1 (FAST): Creates stub records with filesystem metadata only - path, size, mtime - no file content reading - Populates asset database quickly on startup Phase 2 (ENRICH): Extracts metadata and computes hashes - Safetensors header parsing, MIME types - Optional blake3 hash computation - Updates existing stub records Changes: - Add ScanPhase enum (FAST, ENRICH, FULL) - Add enrichment_level column to AssetCacheState (0=stub, 1=metadata, 2=hashed) - Add build_stub_specs() for fast scanning without metadata extraction - Add get_unenriched_cache_states(), enrich_asset(), enrich_assets_batch() - Add start_fast(), start_enrich() convenience methods to AssetSeeder - Update start() to accept phase parameter (defaults to FULL) - Split _run_scan() into _run_fast_phase() and _run_enrich_phase() - Add migration 0003_add_enrichment_level.py - Update tests for new architecture Amp-Thread-ID: https://ampcode.com/threads/T-019c4eef-1568-778f-aede-38254728f848 Co-authored-by: Amp <amp@ampcode.com>
114 lines
3.3 KiB
Python
114 lines
3.3 KiB
Python
from app.assets.database.queries.asset import (
|
|
asset_exists_by_hash,
|
|
bulk_insert_assets,
|
|
get_asset_by_hash,
|
|
get_existing_asset_ids,
|
|
upsert_asset,
|
|
)
|
|
from app.assets.database.queries.asset_info import (
|
|
asset_info_exists_for_asset_id,
|
|
bulk_insert_asset_infos_ignore_conflicts,
|
|
delete_asset_info_by_id,
|
|
fetch_asset_info_and_asset,
|
|
fetch_asset_info_asset_and_tags,
|
|
get_asset_info_by_id,
|
|
get_asset_info_ids_by_ids,
|
|
get_or_create_asset_info,
|
|
insert_asset_info,
|
|
list_asset_infos_page,
|
|
set_asset_info_metadata,
|
|
set_asset_info_preview,
|
|
update_asset_info_access_time,
|
|
update_asset_info_name,
|
|
update_asset_info_timestamps,
|
|
update_asset_info_updated_at,
|
|
)
|
|
from app.assets.database.queries.cache_state import (
|
|
CacheStateRow,
|
|
UnenrichedAssetRow,
|
|
bulk_insert_cache_states_ignore_conflicts,
|
|
bulk_update_enrichment_level,
|
|
bulk_update_is_missing,
|
|
bulk_update_needs_verify,
|
|
delete_assets_by_ids,
|
|
delete_cache_states_by_ids,
|
|
delete_orphaned_seed_asset,
|
|
get_cache_states_by_paths_and_asset_ids,
|
|
get_cache_states_for_prefixes,
|
|
get_unenriched_cache_states,
|
|
get_unreferenced_unhashed_asset_ids,
|
|
list_cache_states_by_asset_id,
|
|
mark_cache_states_missing_outside_prefixes,
|
|
restore_cache_states_by_paths,
|
|
update_enrichment_level,
|
|
upsert_cache_state,
|
|
)
|
|
from app.assets.database.queries.tags import (
|
|
AddTagsDict,
|
|
RemoveTagsDict,
|
|
SetTagsDict,
|
|
add_missing_tag_for_asset_id,
|
|
add_tags_to_asset_info,
|
|
bulk_insert_tags_and_meta,
|
|
ensure_tags_exist,
|
|
get_asset_tags,
|
|
list_tags_with_usage,
|
|
remove_missing_tag_for_asset_id,
|
|
remove_tags_from_asset_info,
|
|
set_asset_info_tags,
|
|
)
|
|
|
|
__all__ = [
|
|
"AddTagsDict",
|
|
"CacheStateRow",
|
|
"RemoveTagsDict",
|
|
"SetTagsDict",
|
|
"UnenrichedAssetRow",
|
|
"add_missing_tag_for_asset_id",
|
|
"add_tags_to_asset_info",
|
|
"asset_exists_by_hash",
|
|
"asset_info_exists_for_asset_id",
|
|
"bulk_insert_asset_infos_ignore_conflicts",
|
|
"bulk_insert_assets",
|
|
"bulk_insert_cache_states_ignore_conflicts",
|
|
"bulk_insert_tags_and_meta",
|
|
"bulk_update_enrichment_level",
|
|
"bulk_update_is_missing",
|
|
"bulk_update_needs_verify",
|
|
"delete_asset_info_by_id",
|
|
"delete_assets_by_ids",
|
|
"delete_cache_states_by_ids",
|
|
"delete_orphaned_seed_asset",
|
|
"ensure_tags_exist",
|
|
"fetch_asset_info_and_asset",
|
|
"fetch_asset_info_asset_and_tags",
|
|
"get_asset_by_hash",
|
|
"get_existing_asset_ids",
|
|
"get_asset_info_by_id",
|
|
"get_asset_info_ids_by_ids",
|
|
"get_asset_tags",
|
|
"get_cache_states_by_paths_and_asset_ids",
|
|
"get_cache_states_for_prefixes",
|
|
"get_or_create_asset_info",
|
|
"get_unenriched_cache_states",
|
|
"get_unreferenced_unhashed_asset_ids",
|
|
"insert_asset_info",
|
|
"list_asset_infos_page",
|
|
"list_cache_states_by_asset_id",
|
|
"list_tags_with_usage",
|
|
"mark_cache_states_missing_outside_prefixes",
|
|
"remove_missing_tag_for_asset_id",
|
|
"remove_tags_from_asset_info",
|
|
"restore_cache_states_by_paths",
|
|
"set_asset_info_metadata",
|
|
"set_asset_info_preview",
|
|
"set_asset_info_tags",
|
|
"update_asset_info_access_time",
|
|
"update_asset_info_name",
|
|
"update_asset_info_timestamps",
|
|
"update_asset_info_updated_at",
|
|
"update_enrichment_level",
|
|
"upsert_asset",
|
|
"upsert_cache_state",
|
|
]
|