import subprocess,json def run(*a):return subprocess.check_output(a,text=True,stderr=subprocess.STDOUT) for name in ('h3-caption-gpu3-canary-8a5f','huobao-comfy-gpu1'): try:d=json.loads(run('docker','inspect',name))[0] except subprocess.CalledProcessError:continue print(name,d['State']['Status']) r=subprocess.run(['docker','logs','--tail','100',name],capture_output=True,text=True) lines=(r.stdout+r.stderr).replace('\r','\n').splitlines() for l in lines: if any(s in l for s in ('Traceback','Error','VDN','history restored','Cannot import','To see the GUI','Starting server','SelfLift','Total VRAM')):print(l[:700]) code='''import asyncio,httpx,json,app async def main(): async with httpx.AsyncClient(timeout=15) as c: for p in app.providers().values(): try: r=await c.get(p.base_url+'/object_info/ApplyVDNH3',headers=app.provider_headers(p));d=r.json() print(p.id,'VDN ready',r.status_code==200 and 'ApplyVDNH3' in d) except Exception as e:print(p.id,type(e).__name__) asyncio.run(main()) ''' print(run('docker','exec','huobao-vdn-normalizer','python','-c',code))