mirror of
https://github.com/willmiao/ComfyUI-Lora-Manager.git
synced 2026-03-21 21:22:11 -03:00
96 lines
3.3 KiB
Python
96 lines
3.3 KiB
Python
import pytest
|
|
from py.recipes.merger import GenParamsMerger
|
|
|
|
def test_merge_priority():
|
|
request_params = {"prompt": "from request", "steps": 20}
|
|
civitai_meta = {"prompt": "from civitai", "cfg": 7.0}
|
|
embedded_metadata = {"gen_params": {"prompt": "from embedded", "seed": 123}}
|
|
|
|
merged = GenParamsMerger.merge(request_params, civitai_meta, embedded_metadata)
|
|
|
|
assert merged["prompt"] == "from request"
|
|
assert merged["steps"] == 20
|
|
assert merged["cfg"] == 7.0
|
|
assert merged["seed"] == 123
|
|
|
|
def test_merge_no_request_params():
|
|
civitai_meta = {"prompt": "from civitai", "cfg": 7.0}
|
|
embedded_metadata = {"gen_params": {"prompt": "from embedded", "seed": 123}}
|
|
|
|
merged = GenParamsMerger.merge(None, civitai_meta, embedded_metadata)
|
|
|
|
assert merged["prompt"] == "from civitai"
|
|
assert merged["cfg"] == 7.0
|
|
assert merged["seed"] == 123
|
|
|
|
def test_merge_only_embedded():
|
|
embedded_metadata = {"gen_params": {"prompt": "from embedded", "seed": 123}}
|
|
|
|
merged = GenParamsMerger.merge(None, None, embedded_metadata)
|
|
|
|
assert merged["prompt"] == "from embedded"
|
|
assert merged["seed"] == 123
|
|
|
|
def test_merge_raw_embedded():
|
|
# Test when embedded metadata is just the gen_params themselves
|
|
embedded_metadata = {"prompt": "from raw embedded", "seed": 456}
|
|
|
|
merged = GenParamsMerger.merge(None, None, embedded_metadata)
|
|
|
|
assert merged["prompt"] == "from raw embedded"
|
|
assert merged["seed"] == 456
|
|
|
|
def test_merge_none_values():
|
|
merged = GenParamsMerger.merge(None, None, None)
|
|
assert merged == {}
|
|
|
|
def test_merge_filters_blacklisted_keys():
|
|
request_params = {"prompt": "test", "id": "should-be-removed", "checkpoint": "should-not-be-here"}
|
|
civitai_meta = {"cfg": 7, "url": "remove-me"}
|
|
embedded_metadata = {"seed": 123, "hash": "remove-also"}
|
|
|
|
merged = GenParamsMerger.merge(request_params, civitai_meta, embedded_metadata)
|
|
|
|
assert "prompt" in merged
|
|
assert "cfg" in merged
|
|
assert "seed" in merged
|
|
assert "id" not in merged
|
|
assert "url" not in merged
|
|
assert "hash" not in merged
|
|
assert "checkpoint" not in merged
|
|
|
|
def test_merge_filters_meta_and_normalizes_keys():
|
|
civitai_meta = {
|
|
"prompt": "masterpiece",
|
|
"cfgScale": 5,
|
|
"clipSkip": 2,
|
|
"negativePrompt": "low quality",
|
|
"meta": {"irrelevant": "data"},
|
|
"Size": "1024x1024",
|
|
"draft": False,
|
|
"workflow": "txt2img",
|
|
"civitaiResources": [{"type": "checkpoint"}]
|
|
}
|
|
request_params = {
|
|
"cfg_scale": 5.0,
|
|
"clip_skip": "2",
|
|
"Steps": 30
|
|
}
|
|
|
|
merged = GenParamsMerger.merge(request_params, civitai_meta)
|
|
|
|
assert "meta" not in merged
|
|
assert "cfgScale" not in merged
|
|
assert "clipSkip" not in merged
|
|
assert "negativePrompt" not in merged
|
|
assert "Size" not in merged
|
|
assert "draft" not in merged
|
|
assert "workflow" not in merged
|
|
assert "civitaiResources" not in merged
|
|
|
|
assert merged["cfg_scale"] == 5.0 # From request_params
|
|
assert merged["clip_skip"] == "2" # From request_params
|
|
assert merged["negative_prompt"] == "low quality" # Normalized from civitai_meta
|
|
assert merged["size"] == "1024x1024" # Normalized from civitai_meta
|
|
assert merged["steps"] == 30 # Normalized from request_params
|