mirror of
https://github.com/comfyanonymous/ComfyUI.git
synced 2026-07-08 23:47:24 +08:00
The old file_path response field was a namespaced storage locator (models/checkpoints/foo.safetensors): not an absolute path, not unique identity, and not the value a loader consumes. Nothing needs that shape on the wire (hash/ID-based locating is the long-term direction), so it is dropped rather than renamed; the storage-root matching stays internal, powering display_name. What loaders DO need is the in-root loader path (category dropped: models/checkpoints/foo/bar.safetensors -> foo/bar.safetensors). Serve it as a first-class loader_path field, persisted on asset_references (migration 0006) and written by every ingest pipeline at insert, so responses read the column verbatim. Like the model_type tags, loader_path is a seed-time derivative of the model folder registry, maintained by the same scan lifecycle (new files seed fresh values, pruning retires rows whose bucket disappeared). Rows predating the column serve a null loader_path; databases from before this stack already need recreating for the base branch's tag changes. loader_path resolves every registered base including extra_model_paths entries; display_name only the canonical storage roots. A file can therefore be loadable with no display name (extra-path models) or the reverse (unregistered files under the models root), and loader_path is null exactly when no loader can resolve the file.
31 lines
892 B
Python
31 lines
892 B
Python
"""
|
|
Add loader_path column to asset_references.
|
|
|
|
Stores the in-root loader path (path relative to the storage root with the
|
|
top-level model category dropped) derived from file_path at scan/ingest time,
|
|
so the assets API can return it without re-resolving against every registered
|
|
model-folder base on every request.
|
|
|
|
Revision ID: 0006_add_loader_path
|
|
Revises: 0005_allow_case_sensitive_tags
|
|
Create Date: 2026-07-02
|
|
"""
|
|
|
|
from alembic import op
|
|
import sqlalchemy as sa
|
|
|
|
revision = "0006_add_loader_path"
|
|
down_revision = "0005_allow_case_sensitive_tags"
|
|
branch_labels = None
|
|
depends_on = None
|
|
|
|
|
|
def upgrade() -> None:
|
|
with op.batch_alter_table("asset_references") as batch_op:
|
|
batch_op.add_column(sa.Column("loader_path", sa.Text(), nullable=True))
|
|
|
|
|
|
def downgrade() -> None:
|
|
with op.batch_alter_table("asset_references") as batch_op:
|
|
batch_op.drop_column("loader_path")
|