LTX-2.3-Studio / patch.py
amisima's picture
Create patch.py
9784326 verified
Raw
History Blame Contribute Delete
2.31 kB
import re, pathlib, shutil
p = pathlib.Path("app.py")
src = p.read_text(encoding="utf-8")
shutil.copy2(p, "app.py.bak")
n = 0
# --- FIX 1: _make_prefix_subclass връща речник вместо клас ---
bad = " _prefix_cls_cache[base_cls] = _RefPrefixedTimestep\n return _prefix_cls_cache"
good = " _prefix_cls_cache[base_cls] = _RefPrefixedTimestep\n return _RefPrefixedTimestep"
if bad in src:
src = src.replace(bad, good, 1)
n += 1
print("fix1 ok")
else:
print("fix1 SKIP (вече е оправено или не съвпада)")
# --- FIX 2: UI компоненти за character face ---
anchor = 'image = gr.Image(label="🖼️ reference image", type="filepath", height=280)'
ui = anchor + '''
identity_image = gr.Image(
label="🔒 character face (същото лице във всички клипове)",
type="filepath",
height=200,
)
identity_prompt_lock = gr.Checkbox(
value=True,
label="добавяй identity lock към промпта автоматично",
)
gr.Markdown(
"чист портрет анфас. **Continue the scene не го пипа** — "
"сменя се само reference image. празно = старо поведение.",
elem_classes="consent-note",
)'''
if "identity_image = gr.Image(" not in src and anchor in src:
src = src.replace(anchor, ui, 1)
n += 1
print("fix2 ok")
else:
print("fix2 SKIP")
# --- FIX 3: добави ги в _GENERATE_INPUTS ---
tail = " profile_name,\n skip_refine,\n user_loras_text,\n ]"
tail_new = (" profile_name,\n skip_refine,\n user_loras_text,\n"
" identity_image,\n identity_prompt_lock,\n ]")
if "identity_image,\n identity_prompt_lock," not in src and tail in src:
src = src.replace(tail, tail_new, 1)
n += 1
print("fix3 ok")
else:
print("fix3 SKIP")
p.write_text(src, encoding="utf-8")
print(f"\nготово: {n}/3 промени. бекъп: app.py.bak")