Verify save token chips and preview counter
This commit is contained in:
+30
@@ -1,6 +1,7 @@
|
||||
from .dumas_image_nodes import (
|
||||
NODE_CLASS_MAPPINGS as IMAGE_NODE_CLASS_MAPPINGS,
|
||||
NODE_DISPLAY_NAME_MAPPINGS as IMAGE_NODE_DISPLAY_NAME_MAPPINGS,
|
||||
_next_counter,
|
||||
resolve_serve_token,
|
||||
)
|
||||
from .dumas_json_nodes import (
|
||||
@@ -84,6 +85,35 @@ try:
|
||||
return web.Response(status=404, text="unknown or expired preview token")
|
||||
return web.FileResponse(path)
|
||||
|
||||
@PromptServer.instance.routes.get("/dumas/api/save_image/next_counter")
|
||||
async def dumas_save_image_next_counter(request):
|
||||
folder_raw = str(request.query.get("folder", "") or "").strip()
|
||||
name = str(request.query.get("name", "") or "")
|
||||
try:
|
||||
digits = max(1, min(8, int(request.query.get("digits", "3"))))
|
||||
except Exception:
|
||||
digits = 3
|
||||
|
||||
def _scan():
|
||||
import folder_paths
|
||||
|
||||
output_dir = folder_paths.get_output_directory()
|
||||
base = os.path.abspath(folder_raw) if folder_raw else output_dir
|
||||
parts = [part for part in name.replace("\\", "/").split("/") if part]
|
||||
if not parts:
|
||||
return 1, ""
|
||||
frame_dir = os.path.join(base, *parts[:-1])
|
||||
counter = _next_counter(frame_dir, parts[-1])
|
||||
resolved_name = parts[-1].replace("%counter%", str(counter).zfill(digits))
|
||||
return counter, "/".join(parts[:-1] + [resolved_name])
|
||||
|
||||
try:
|
||||
loop = asyncio.get_running_loop()
|
||||
counter, resolved = await loop.run_in_executor(None, _scan)
|
||||
return web.json_response({"ok": True, "counter": counter, "resolved": resolved})
|
||||
except Exception as exc:
|
||||
return web.json_response({"ok": False, "message": str(exc), "counter": 1, "resolved": ""})
|
||||
|
||||
@PromptServer.instance.routes.get("/dumas/api/pick_directory")
|
||||
async def dumas_pick_directory(request):
|
||||
try:
|
||||
|
||||
Reference in New Issue
Block a user