mirror of
https://github.com/Comfy-Org/ComfyUI.git
synced 2026-08-23 09:39:17 +08:00
preview_url was assembled from a /api/view link whose type was chosen by matching the asset's tags against "input" then "output". Anything written anywhere else - temp above all, where preview nodes put their images - fell off the end of that chain and came back with no preview at all. Tags are user-editable, so removing one also silently destroyed the URL. Derive the URL from where the file actually sits instead. That covers every root /api/view serves, temp included, and no longer depends on tags or on a filename in user_metadata. A file outside those roots, or content no client can render from its own bytes, gets no preview URL rather than one that cannot work. Nominated previews are resolved a page at a time rather than per row, so a list costs one extra query however long it is. A preview that is soft-deleted or not visible to the caller drops out of that lookup and is no longer advertised. Co-authored-by: guill <jacob.e.segal@gmail.com>
94 lines
2.1 KiB
Python
94 lines
2.1 KiB
Python
from app.assets.services.asset_management import (
|
|
asset_exists,
|
|
delete_asset_reference,
|
|
get_asset_by_hash,
|
|
get_asset_detail,
|
|
list_assets_page,
|
|
get_preview_file_paths,
|
|
resolve_asset_for_download,
|
|
set_asset_preview,
|
|
update_asset_metadata,
|
|
)
|
|
from app.assets.services.bulk_ingest import (
|
|
BulkInsertResult,
|
|
batch_insert_seed_assets,
|
|
cleanup_unreferenced_assets,
|
|
)
|
|
from app.assets.services.file_utils import (
|
|
get_mtime_ns,
|
|
get_size_and_mtime_ns,
|
|
list_files_recursively,
|
|
verify_file_unchanged,
|
|
)
|
|
from app.assets.services.ingest import (
|
|
DependencyMissingError,
|
|
HashMismatchError,
|
|
create_from_hash,
|
|
ingest_existing_file,
|
|
register_output_files,
|
|
upload_from_temp_path,
|
|
)
|
|
from app.assets.database.queries import (
|
|
AddTagsResult,
|
|
RemoveTagsResult,
|
|
)
|
|
from app.assets.services.schemas import (
|
|
AssetData,
|
|
AssetDetailResult,
|
|
AssetSummaryData,
|
|
DownloadResolutionResult,
|
|
IngestResult,
|
|
ListAssetsResult,
|
|
ReferenceData,
|
|
RegisterAssetResult,
|
|
TagUsage,
|
|
UploadResult,
|
|
UserMetadata,
|
|
)
|
|
from app.assets.services.tagging import (
|
|
apply_tags,
|
|
list_tags,
|
|
remove_tags,
|
|
)
|
|
|
|
__all__ = [
|
|
"AddTagsResult",
|
|
"AssetData",
|
|
"AssetDetailResult",
|
|
"AssetSummaryData",
|
|
"ReferenceData",
|
|
"BulkInsertResult",
|
|
"DependencyMissingError",
|
|
"DownloadResolutionResult",
|
|
"HashMismatchError",
|
|
"IngestResult",
|
|
"ListAssetsResult",
|
|
"RegisterAssetResult",
|
|
"RemoveTagsResult",
|
|
"TagUsage",
|
|
"UploadResult",
|
|
"UserMetadata",
|
|
"apply_tags",
|
|
"asset_exists",
|
|
"batch_insert_seed_assets",
|
|
"create_from_hash",
|
|
"delete_asset_reference",
|
|
"get_asset_by_hash",
|
|
"get_asset_detail",
|
|
"ingest_existing_file",
|
|
"register_output_files",
|
|
"get_mtime_ns",
|
|
"get_size_and_mtime_ns",
|
|
"list_assets_page",
|
|
"list_files_recursively",
|
|
"list_tags",
|
|
"cleanup_unreferenced_assets",
|
|
"remove_tags",
|
|
"get_preview_file_paths",
|
|
"resolve_asset_for_download",
|
|
"set_asset_preview",
|
|
"update_asset_metadata",
|
|
"upload_from_temp_path",
|
|
"verify_file_unchanged",
|
|
]
|