Skip to content

Commit 0ad0a32

Browse files
authored
fix lfs pointer rejection problems for hub tests (#13733)
* fix lfs pointer rejection problems for hub tests * fix more * Delete .claude directory
1 parent 79de306 commit 0ad0a32

2 files changed

Lines changed: 48 additions & 38 deletions

File tree

tests/models/test_modeling_common.py

Lines changed: 24 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -2042,19 +2042,20 @@ def test_push_to_hub(self):
20422042
for p1, p2 in zip(model.parameters(), new_model.parameters()):
20432043
self.assertTrue(torch.equal(p1, p2))
20442044

2045-
# Reset repo
2046-
delete_repo(token=TOKEN, repo_id=self.repo_id)
2047-
2048-
# Push to hub via save_pretrained
2045+
# Push to hub via save_pretrained to a separate repo. Reusing `self.repo_id` after
2046+
# deleting it makes the staging server's LFS GC reject the next commit with
2047+
# "LFS pointer pointed to a file that does not exist" when the model bytes are identical.
2048+
save_repo_id = f"{self.repo_id}-saved"
20492049
with tempfile.TemporaryDirectory() as tmp_dir:
2050-
model.save_pretrained(tmp_dir, repo_id=self.repo_id, push_to_hub=True, token=TOKEN)
2050+
model.save_pretrained(tmp_dir, repo_id=save_repo_id, push_to_hub=True, token=TOKEN)
20512051

2052-
new_model = UNet2DConditionModel.from_pretrained(f"{USER}/{self.repo_id}")
2052+
new_model = UNet2DConditionModel.from_pretrained(f"{USER}/{save_repo_id}")
20532053
for p1, p2 in zip(model.parameters(), new_model.parameters()):
20542054
self.assertTrue(torch.equal(p1, p2))
20552055

2056-
# Reset repo
2057-
delete_repo(self.repo_id, token=TOKEN)
2056+
# Reset repos
2057+
delete_repo(token=TOKEN, repo_id=self.repo_id)
2058+
delete_repo(save_repo_id, token=TOKEN)
20582059

20592060
def test_push_to_hub_in_organization(self):
20602061
model = UNet2DConditionModel(
@@ -2073,19 +2074,20 @@ def test_push_to_hub_in_organization(self):
20732074
for p1, p2 in zip(model.parameters(), new_model.parameters()):
20742075
self.assertTrue(torch.equal(p1, p2))
20752076

2076-
# Reset repo
2077-
delete_repo(token=TOKEN, repo_id=self.org_repo_id)
2078-
2079-
# Push to hub via save_pretrained
2077+
# Push to hub via save_pretrained to a separate repo. Reusing `self.org_repo_id` after
2078+
# deleting it makes the staging server's LFS GC reject the next commit with
2079+
# "LFS pointer pointed to a file that does not exist" when the model bytes are identical.
2080+
save_org_repo_id = f"{self.org_repo_id}-saved"
20802081
with tempfile.TemporaryDirectory() as tmp_dir:
2081-
model.save_pretrained(tmp_dir, push_to_hub=True, token=TOKEN, repo_id=self.org_repo_id)
2082+
model.save_pretrained(tmp_dir, push_to_hub=True, token=TOKEN, repo_id=save_org_repo_id)
20822083

2083-
new_model = UNet2DConditionModel.from_pretrained(self.org_repo_id)
2084+
new_model = UNet2DConditionModel.from_pretrained(save_org_repo_id)
20842085
for p1, p2 in zip(model.parameters(), new_model.parameters()):
20852086
self.assertTrue(torch.equal(p1, p2))
20862087

2087-
# Reset repo
2088-
delete_repo(self.org_repo_id, token=TOKEN)
2088+
# Reset repos
2089+
delete_repo(token=TOKEN, repo_id=self.org_repo_id)
2090+
delete_repo(save_org_repo_id, token=TOKEN)
20892091

20902092
@unittest.skipIf(
20912093
not is_jinja_available(),
@@ -2102,13 +2104,16 @@ def test_push_to_hub_library_name(self):
21022104
up_block_types=("CrossAttnUpBlock2D", "UpBlock2D"),
21032105
cross_attention_dim=32,
21042106
)
2105-
model.push_to_hub(self.repo_id, token=TOKEN)
2107+
# Use a method-unique repo to avoid recycling a name that `test_push_to_hub` just deleted,
2108+
# which the staging server rejects with an LFS pointer error.
2109+
repo_id = f"test-model-library-name-{uuid.uuid4()}"
2110+
model.push_to_hub(repo_id, token=TOKEN)
21062111

2107-
model_card = ModelCard.load(f"{USER}/{self.repo_id}", token=TOKEN).data
2112+
model_card = ModelCard.load(f"{USER}/{repo_id}", token=TOKEN).data
21082113
assert model_card.library_name == "diffusers"
21092114

21102115
# Reset repo
2111-
delete_repo(self.repo_id, token=TOKEN)
2116+
delete_repo(repo_id, token=TOKEN)
21122117

21132118

21142119
@require_torch_accelerator

tests/pipelines/test_pipelines_common.py

Lines changed: 24 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -2583,19 +2583,20 @@ def test_push_to_hub(self):
25832583
for p1, p2 in zip(unet.parameters(), new_model.parameters()):
25842584
self.assertTrue(torch.equal(p1, p2))
25852585

2586-
# Reset repo
2587-
delete_repo(token=TOKEN, repo_id=self.repo_id)
2588-
2589-
# Push to hub via save_pretrained
2586+
# Push to hub via save_pretrained to a separate repo. Reusing `self.repo_id` after
2587+
# deleting it makes the staging server's LFS GC reject the next commit with
2588+
# "LFS pointer pointed to a file that does not exist" when the model bytes are identical.
2589+
save_repo_id = f"{self.repo_id}-saved"
25902590
with tempfile.TemporaryDirectory() as tmp_dir:
2591-
pipeline.save_pretrained(tmp_dir, repo_id=self.repo_id, push_to_hub=True, token=TOKEN)
2591+
pipeline.save_pretrained(tmp_dir, repo_id=save_repo_id, push_to_hub=True, token=TOKEN)
25922592

2593-
new_model = UNet2DConditionModel.from_pretrained(f"{USER}/{self.repo_id}", subfolder="unet")
2593+
new_model = UNet2DConditionModel.from_pretrained(f"{USER}/{save_repo_id}", subfolder="unet")
25942594
for p1, p2 in zip(unet.parameters(), new_model.parameters()):
25952595
self.assertTrue(torch.equal(p1, p2))
25962596

2597-
# Reset repo
2598-
delete_repo(self.repo_id, token=TOKEN)
2597+
# Reset repos
2598+
delete_repo(token=TOKEN, repo_id=self.repo_id)
2599+
delete_repo(save_repo_id, token=TOKEN)
25992600

26002601
def test_push_to_hub_in_organization(self):
26012602
components = self.get_pipeline_components()
@@ -2607,19 +2608,20 @@ def test_push_to_hub_in_organization(self):
26072608
for p1, p2 in zip(unet.parameters(), new_model.parameters()):
26082609
self.assertTrue(torch.equal(p1, p2))
26092610

2610-
# Reset repo
2611-
delete_repo(token=TOKEN, repo_id=self.org_repo_id)
2612-
2613-
# Push to hub via save_pretrained
2611+
# Push to hub via save_pretrained to a separate repo. Reusing `self.org_repo_id` after
2612+
# deleting it makes the staging server's LFS GC reject the next commit with
2613+
# "LFS pointer pointed to a file that does not exist" when the model bytes are identical.
2614+
save_org_repo_id = f"{self.org_repo_id}-saved"
26142615
with tempfile.TemporaryDirectory() as tmp_dir:
2615-
pipeline.save_pretrained(tmp_dir, push_to_hub=True, token=TOKEN, repo_id=self.org_repo_id)
2616+
pipeline.save_pretrained(tmp_dir, push_to_hub=True, token=TOKEN, repo_id=save_org_repo_id)
26162617

2617-
new_model = UNet2DConditionModel.from_pretrained(self.org_repo_id, subfolder="unet")
2618+
new_model = UNet2DConditionModel.from_pretrained(save_org_repo_id, subfolder="unet")
26182619
for p1, p2 in zip(unet.parameters(), new_model.parameters()):
26192620
self.assertTrue(torch.equal(p1, p2))
26202621

2621-
# Reset repo
2622-
delete_repo(self.org_repo_id, token=TOKEN)
2622+
# Reset repos
2623+
delete_repo(token=TOKEN, repo_id=self.org_repo_id)
2624+
delete_repo(save_org_repo_id, token=TOKEN)
26232625

26242626
@unittest.skipIf(
26252627
not is_jinja_available(),
@@ -2628,13 +2630,16 @@ def test_push_to_hub_in_organization(self):
26282630
def test_push_to_hub_library_name(self):
26292631
components = self.get_pipeline_components()
26302632
pipeline = StableDiffusionPipeline(**components)
2631-
pipeline.push_to_hub(self.repo_id, token=TOKEN)
2633+
# Use a method-unique repo to avoid recycling a name that `test_push_to_hub` just deleted,
2634+
# which the staging server rejects with an LFS pointer error.
2635+
repo_id = f"test-pipeline-library-name-{uuid.uuid4()}"
2636+
pipeline.push_to_hub(repo_id, token=TOKEN)
26322637

2633-
model_card = ModelCard.load(f"{USER}/{self.repo_id}", token=TOKEN).data
2638+
model_card = ModelCard.load(f"{USER}/{repo_id}", token=TOKEN).data
26342639
assert model_card.library_name == "diffusers"
26352640

26362641
# Reset repo
2637-
delete_repo(self.repo_id, token=TOKEN)
2642+
delete_repo(repo_id, token=TOKEN)
26382643

26392644

26402645
class PyramidAttentionBroadcastTesterMixin:

0 commit comments

Comments
 (0)