/Users/manta/Documents/Projects/TheRoad-I1/backend/app/api/v1/prompts.py:19: UserWarning: Field name "schema_json" in "PromptCreate" shadows an attribute in parent "BaseModel" class PromptCreate(BaseModel): /Users/manta/Documents/Projects/TheRoad-I1/backend/app/api/v1/prompts.py:27: UserWarning: Field name "schema_json" in "PromptUpdate" shadows an attribute in parent "BaseModel" class PromptUpdate(BaseModel): INFO: Started server process [6541] INFO: Waiting for application startup. {"timestamp": "2026-08-06T15:24:38.672239+00:00", "level": "WARNING", "logger": "app.main", "message": "SECURITY: insecure default credentials in use — DEFAULT_ADMIN_PASSWORD, DEFAULT_CREATOR_PASSWORD. Override via env vars before exposing this server."} INFO: Application startup complete. INFO: Uvicorn running on http://0.0.0.0:8000 (Press CTRL+C to quit) INFO: 127.0.0.1:56880 - "POST /api/v1/auth/login HTTP/1.1" 200 OK {"timestamp": "2026-08-06T15:25:30.541802+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:e716bafb-24bb-42b7-aea0-fdb383844ee8:d6a9aa85-b75e-400c-980c-4ee7e876a15b:scene_director (Step scene_director for d6a9aa85-b75e-400c-980c-4ee7e876a15b)"} INFO: 127.0.0.1:56882 - "POST /api/v1/projects/e716bafb-24bb-42b7-aea0-fdb383844ee8/episodes/d6a9aa85-b75e-400c-980c-4ee7e876a15b/steps/scene_director?mode=force HTTP/1.1" 200 OK {"timestamp": "2026-08-06T15:25:30.617391+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 106 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-08-06T15:25:30.764086+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced 977 scene_stills (shot-based) to DB"} {"timestamp": "2026-08-06T15:25:30.846976+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced scene_summary from checkpoint"} {"timestamp": "2026-08-06T15:25:30.873525+00:00", "level": "WARNING", "logger": "app.core.name_matcher", "message": "name_index collision: key='검은한복' kept existing entry, skipped new from raw='검은한복'"} {"timestamp": "2026-08-06T15:25:30.876091+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 35 outlooks + 39 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-08-06T15:25:30.903963+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 51 total short_ids found"} {"timestamp": "2026-08-06T15:25:30.911955+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode d6a9aa85, step=-, repaired=0)"} {"timestamp": "2026-08-06T15:25:30.973455+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Invalidated 55 downstream steps from scene_director (delete_cp=True): ['background_chain_planning', 'background_chain_render', 'background_classify', 'background_master_plan', 'background_planner', 'background_prompt', 'background_render', 'background_share_plan', 'base_location_dossier', 'bg_space_partition', 'character_state_variant', 'composite_image_gen', 'dwelling_zone_map', 'episode_reference_policy', 'floor_plan_geometry_readback', 'floor_plan_light_sidecar', 'floor_plan_overlay_payload', 'floor_plan_prompt', 'floor_plan_render', 'floor_plan_semantic_readback', 'location_floor_plan', 'outdoor_frame_mode', 'outdoor_lane_plan', 'outdoor_place_canon', 'outdoor_place_spec', 'outdoor_shot_grounding', 'outdoor_site_layout', 'outdoor_structure_form_reference', 'outdoor_structure_seed', 'outlook_dedup', 'outlook_extraction', 'outlook_phase1', 'outlook_phase2', 'outlook_phase3', 'scene_camera_flow', 'scene_cinematography', 'scene_consistency', 'scene_dependency', 'scene_detail', 'scene_image_pipeline', 'scene_verify', 'shot_aware_bg_render_plan', 'shot_cinematography', 'shot_conti_light', 'shot_dependency', 'shot_dependency_t2i', 'shot_director', 'shot_projection_card', 'shot_ref_classify', 'shot_staging', 'space_set_bg', 't2i_review', 'visual_continuity_anchor', 'world_guide', 'zoom_continuity_anchor']"} {"timestamp": "2026-08-06T15:25:30.975337+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step scene_director started (run_id=adaa1a29-51fe-430b-8d0f-1f7f87583ba7, model=gemini-pro)"} {"timestamp": "2026-08-06T15:25:30.979709+00:00", "level": "WARNING", "logger": "app.core.name_matcher", "message": "name_index collision: key='검은한복' kept existing entry, skipped new from raw='검은한복'"} {"timestamp": "2026-08-06T15:25:30.979760+00:00", "level": "INFO", "logger": "app.core.steps.director_steps", "message": "Injected 0 short_ids from DB"} {"timestamp": "2026-08-06T15:25:30.988777+00:00", "level": "INFO", "logger": "app.modules.llm.llm_client", "message": "Opik callback enabled (project: theroad-scene-lab)"} 00:25:31 - LiteLLM Router:INFO: router.py:812 - Routing strategy: simple-shuffle {"timestamp": "2026-08-06T15:25:31.005004+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "Routing strategy: simple-shuffle"} {"timestamp": "2026-08-06T15:25:31.005263+00:00", "level": "INFO", "logger": "app.modules.llm.llm_client", "message": "LiteLLM Router initialized: 12 deployments (1 Gemini keys, OpenAI=True slot=primary/2)"} 00:25:31 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-06T15:25:31.017339+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 00:35:31 - LiteLLM Router:INFO: router.py:1570 - litellm.completion(model=gemini/gemini-3.1-pro-preview) Exception litellm.Timeout: Connection timed out after None seconds. {"timestamp": "2026-08-06T15:35:31.239591+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[31m Exception litellm.Timeout: Connection timed out after None seconds.\u001b[0m"} 00:35:36 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-06T15:35:36.849001+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 00:35:40 - LiteLLM Router:INFO: router.py:1570 - litellm.completion(model=gemini/gemini-3.1-pro-preview) Exception litellm.BadRequestError: GeminiException BadRequestError - { "error": { "code": 400, "message": "Request contains an invalid argument.", "status": "INVALID_ARGUMENT" } }  {"timestamp": "2026-08-06T15:35:40.713992+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[31m Exception litellm.BadRequestError: GeminiException BadRequestError - {\n \"error\": {\n \"code\": 400,\n \"message\": \"Request contains an invalid argument.\",\n \"status\": \"INVALID_ARGUMENT\"\n }\n}\n\u001b[0m"} 00:35:40 - LiteLLM Router:INFO: router.py:5437 - Trying to fallback b/w models {"timestamp": "2026-08-06T15:35:40.722842+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "Trying to fallback b/w models"} {"timestamp": "2026-08-06T15:35:40.735284+00:00", "level": "ERROR", "logger": "app.core.step_runner", "message": "Step scene_director _execute_and_finalize crashed: litellm.BadRequestError: GeminiException BadRequestError - {\n \"error\": {\n \"code\": 400,\n \"message\": \"Request contains an invalid argument.\",\n \"status\": \"INVALID_ARGUMENT\"\n }\n}\n. Received Model Group=gemini-pro\nAvailable Model Group Fallbacks=None\nTraceback (most recent call last):\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/litellm/litellm_core_utils/asyncify.py\", line 107, in run_async_function\n _ = asyncio.get_running_loop()\n ^^^^^^^^^^^^^^^^^^^^^^^^^^\nRuntimeError: no running event loop\n\nDuring handling of the above exception, another exception occurred:\n\nTraceback (most recent call last):\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/app/core/step_runner.py\", line 1236, in _execute_and_finalize\n result = self._execute(mode=execute_mode)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/app/core/steps/director_steps.py\", line 160, in _execute\n result = direct_scenes(\n ^^^^^^^^^^^^^^\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/app/modules/pipeline/scene_director_v2.py\", line 159, in direct_scenes\n result = call_structured(\n ^^^^^^^^^^^^^^^^\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/app/modules/llm/llm_client.py\", line 831, in call_structured\n result = _do_call(system_prompt, user_prompt, project_config)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/app/modules/llm/llm_client.py\", line 808, in _do_call\n response = _completion(binding, model, kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/app/modules/llm/llm_client.py\", line 237, in _completion\n return binding.router.completion(**kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/litellm/router.py\", line 1475, in completion\n raise e\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/litellm/router.py\", line 1472, in completion\n response = self.function_with_fallbacks(**kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/litellm/router.py\", line 6020, in function_with_fallbacks\n return run_async_function(self.async_function_with_fallbacks, *args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/litellm/litellm_core_utils/asyncify.py\", line 116, in run_async_function\n return run_in_new_loop()\n ^^^^^^^^^^^^^^^^^\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/litellm/litellm_core_utils/asyncify.py\", line 100, in run_in_new_loop\n return new_loop.run_until_complete(async_function(*args, **kwargs))\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/homebrew/Cellar/python@3.12/3.12.13/Frameworks/Python.framework/Versions/3.12/lib/python3.12/asyncio/base_events.py\", line 691, in run_until_complete\n return future.result()\n ^^^^^^^^^^^^^^^\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/litellm/router.py\", line 5634, in async_function_with_fallbacks\n return await self.async_function_with_fallbacks_common_utils(\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/litellm/router.py\", line 5591, in async_function_with_fallbacks_common_utils\n raise original_exception\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/litellm/router.py\", line 5625, in async_function_with_fallbacks\n response = await self.async_function_with_retries(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/litellm/router.py\", line 5865, in async_function_with_retries\n raise e\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/litellm/router.py\", line 5856, in async_function_with_retries\n self.should_retry_this_error(\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/litellm/router.py\", line 5984, in should_retry_this_error\n raise error\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/litellm/router.py\", line 5817, in async_function_with_retries\n response = await self.make_call(original_function, *args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/litellm/router.py\", line 5895, in make_call\n response = original_function(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/litellm/router.py\", line 1576, in _completion\n raise e\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/litellm/router.py\", line 1542, in _completion\n response = litellm.completion(**input_kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/litellm/utils.py\", line 1772, in wrapper\n raise e\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/litellm/utils.py\", line 1593, in wrapper\n result = original_function(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/litellm/main.py\", line 4420, in completion\n raise exception_type(\n ^^^^^^^^^^^^^^^\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/litellm/litellm_core_utils/exception_mapping_utils.py\", line 2456, in exception_type\n raise e\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/litellm/litellm_core_utils/exception_mapping_utils.py\", line 1416, in exception_type\n raise BadRequestError(\nlitellm.exceptions.BadRequestError: litellm.BadRequestError: GeminiException BadRequestError - {\n \"error\": {\n \"code\": 400,\n \"message\": \"Request contains an invalid argument.\",\n \"status\": \"INVALID_ARGUMENT\"\n }\n}\n. Received Model Group=gemini-pro\nAvailable Model Group Fallbacks=None\n"} {"timestamp": "2026-08-06T15:35:40.735400+00:00", "level": "ERROR", "logger": "app.services.step_execution_service", "message": "Step scene_director failed: litellm.BadRequestError: GeminiException BadRequestError - {\n \"error\": {\n \"code\": 400,\n \"message\": \"Request contains an invalid argument.\",\n \"status\": \"INVALID_ARGUMENT\"\n }\n}\n. Received Model Group=gemini-pro\nAvailable Model Group Fallbacks=None"} {"timestamp": "2026-08-06T15:39:54.115377+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:e716bafb-24bb-42b7-aea0-fdb383844ee8:d6a9aa85-b75e-400c-980c-4ee7e876a15b:scene_director (Step scene_director for d6a9aa85-b75e-400c-980c-4ee7e876a15b)"} INFO: 127.0.0.1:57139 - "POST /api/v1/projects/e716bafb-24bb-42b7-aea0-fdb383844ee8/episodes/d6a9aa85-b75e-400c-980c-4ee7e876a15b/steps/scene_director?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-08-06T15:39:54.176125+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 106 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-08-06T15:39:54.263442+00:00", "level": "ERROR", "logger": "asyncio", "message": "Task was destroyed but it is pending!\ntask: wait_for=>"} {"timestamp": "2026-08-06T15:39:54.270037+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_sync_service", "message": "Skipping scene_still sync: scene_detail 데이터 없음 (cascade or pre-analysis). Existing rows preserved."} {"timestamp": "2026-08-06T15:39:54.295566+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 51 total short_ids found"} {"timestamp": "2026-08-06T15:39:54.301092+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode d6a9aa85-b75e-400c-980c-4ee7e876a15b status NOT advanced — incomplete steps: ['scene_director', 'shot_director', 'scene_camera_flow', 'shot_dependency', 'outlook_phase1', 'outlook_phase2', 'outlook_phase3', 'shot_staging', 'scene_consistency', 'scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_site_layout', 'outdoor_place_spec', 'outdoor_lane_plan', 'shot_ref_classify', 'background_share_plan', 'background_classify', 'background_master_plan', 'floor_plan_prompt', 'floor_plan_overlay_payload', 'base_location_dossier', 'floor_plan_geometry_readback', 'floor_plan_semantic_readback', 'shot_projection_card', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-08-06T15:39:54.302189+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode d6a9aa85, step=-, repaired=0)"} {"timestamp": "2026-08-06T15:39:54.304978+00:00", "level": "WARNING", "logger": "app.core.step_runner", "message": "[RECOVERY] step=scene_director status=running → force-like"} {"timestamp": "2026-08-06T15:39:54.305688+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step scene_director started (run_id=b53aeb4e-b1f3-4095-8336-1131484c168d, model=gemini-pro)"} {"timestamp": "2026-08-06T15:39:54.309671+00:00", "level": "WARNING", "logger": "app.core.name_matcher", "message": "name_index collision: key='검은한복' kept existing entry, skipped new from raw='검은한복'"} {"timestamp": "2026-08-06T15:39:54.309712+00:00", "level": "INFO", "logger": "app.core.steps.director_steps", "message": "Injected 0 short_ids from DB"} 00:39:54 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-06T15:39:54.316670+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 00:39:56 - LiteLLM Router:INFO: router.py:1570 - litellm.completion(model=gemini/gemini-3.1-pro-preview) Exception litellm.BadRequestError: GeminiException BadRequestError - { "error": { "code": 400, "message": "Request contains an invalid argument.", "status": "INVALID_ARGUMENT" } }  {"timestamp": "2026-08-06T15:39:56.341507+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[31m Exception litellm.BadRequestError: GeminiException BadRequestError - {\n \"error\": {\n \"code\": 400,\n \"message\": \"Request contains an invalid argument.\",\n \"status\": \"INVALID_ARGUMENT\"\n }\n}\n\u001b[0m"} 00:39:56 - LiteLLM Router:INFO: router.py:5437 - Trying to fallback b/w models {"timestamp": "2026-08-06T15:39:56.345985+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "Trying to fallback b/w models"} {"timestamp": "2026-08-06T15:39:56.354088+00:00", "level": "ERROR", "logger": "app.core.step_runner", "message": "Step scene_director _execute_and_finalize crashed: litellm.BadRequestError: GeminiException BadRequestError - {\n \"error\": {\n \"code\": 400,\n \"message\": \"Request contains an invalid argument.\",\n \"status\": \"INVALID_ARGUMENT\"\n }\n}\n. Received Model Group=gemini-pro\nAvailable Model Group Fallbacks=None\nTraceback (most recent call last):\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/litellm/litellm_core_utils/asyncify.py\", line 107, in run_async_function\n _ = asyncio.get_running_loop()\n ^^^^^^^^^^^^^^^^^^^^^^^^^^\nRuntimeError: no running event loop\n\nDuring handling of the above exception, another exception occurred:\n\nTraceback (most recent call last):\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/app/core/step_runner.py\", line 1236, in _execute_and_finalize\n result = self._execute(mode=execute_mode)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/app/core/steps/director_steps.py\", line 160, in _execute\n result = direct_scenes(\n ^^^^^^^^^^^^^^\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/app/modules/pipeline/scene_director_v2.py\", line 159, in direct_scenes\n return True\n ^^^^^^\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/app/modules/llm/llm_client.py\", line 831, in call_structured\n result = _do_call(system_prompt, user_prompt, project_config)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/app/modules/llm/llm_client.py\", line 808, in _do_call\n response = _completion(binding, model, kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/app/modules/llm/llm_client.py\", line 237, in _completion\n return binding.router.completion(**kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/litellm/router.py\", line 1475, in completion\n raise e\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/litellm/router.py\", line 1472, in completion\n response = self.function_with_fallbacks(**kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/litellm/router.py\", line 6020, in function_with_fallbacks\n return run_async_function(self.async_function_with_fallbacks, *args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/litellm/litellm_core_utils/asyncify.py\", line 116, in run_async_function\n return run_in_new_loop()\n ^^^^^^^^^^^^^^^^^\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/litellm/litellm_core_utils/asyncify.py\", line 100, in run_in_new_loop\n return new_loop.run_until_complete(async_function(*args, **kwargs))\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/homebrew/Cellar/python@3.12/3.12.13/Frameworks/Python.framework/Versions/3.12/lib/python3.12/asyncio/base_events.py\", line 691, in run_until_complete\n return future.result()\n ^^^^^^^^^^^^^^^\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/litellm/router.py\", line 5634, in async_function_with_fallbacks\n return await self.async_function_with_fallbacks_common_utils(\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/litellm/router.py\", line 5591, in async_function_with_fallbacks_common_utils\n raise original_exception\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/litellm/router.py\", line 5625, in async_function_with_fallbacks\n response = await self.async_function_with_retries(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/litellm/router.py\", line 5780, in async_function_with_retries\n self.should_retry_this_error(\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/litellm/router.py\", line 5984, in should_retry_this_error\n raise error\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/litellm/router.py\", line 5731, in async_function_with_retries\n response = await self.make_call(original_function, *args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/litellm/router.py\", line 5895, in make_call\n response = original_function(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/litellm/router.py\", line 1576, in _completion\n raise e\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/litellm/router.py\", line 1542, in _completion\n response = litellm.completion(**input_kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/litellm/utils.py\", line 1772, in wrapper\n raise e\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/litellm/utils.py\", line 1593, in wrapper\n result = original_function(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/litellm/main.py\", line 4420, in completion\n raise exception_type(\n ^^^^^^^^^^^^^^^\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/litellm/litellm_core_utils/exception_mapping_utils.py\", line 2456, in exception_type\n raise e\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/litellm/litellm_core_utils/exception_mapping_utils.py\", line 1416, in exception_type\n raise BadRequestError(\nlitellm.exceptions.BadRequestError: litellm.BadRequestError: GeminiException BadRequestError - {\n \"error\": {\n \"code\": 400,\n \"message\": \"Request contains an invalid argument.\",\n \"status\": \"INVALID_ARGUMENT\"\n }\n}\n. Received Model Group=gemini-pro\nAvailable Model Group Fallbacks=None\n"} {"timestamp": "2026-08-06T15:39:56.354187+00:00", "level": "ERROR", "logger": "app.services.step_execution_service", "message": "Step scene_director failed: litellm.BadRequestError: GeminiException BadRequestError - {\n \"error\": {\n \"code\": 400,\n \"message\": \"Request contains an invalid argument.\",\n \"status\": \"INVALID_ARGUMENT\"\n }\n}\n. Received Model Group=gemini-pro\nAvailable Model Group Fallbacks=None"} INFO: Shutting down INFO: Waiting for application shutdown. INFO: Application shutdown complete. INFO: Finished server process [6541] /Users/manta/Documents/Projects/TheRoad-I1/backend/app/api/v1/prompts.py:19: UserWarning: Field name "schema_json" in "PromptCreate" shadows an attribute in parent "BaseModel" class PromptCreate(BaseModel): /Users/manta/Documents/Projects/TheRoad-I1/backend/app/api/v1/prompts.py:27: UserWarning: Field name "schema_json" in "PromptUpdate" shadows an attribute in parent "BaseModel" class PromptUpdate(BaseModel): INFO: Started server process [10218] INFO: Waiting for application startup. {"timestamp": "2026-08-06T15:42:00.513545+00:00", "level": "WARNING", "logger": "app.main", "message": "SECURITY: insecure default credentials in use — DEFAULT_ADMIN_PASSWORD, DEFAULT_CREATOR_PASSWORD. Override via env vars before exposing this server."} INFO: Application startup complete. INFO: Uvicorn running on http://0.0.0.0:8000 (Press CTRL+C to quit) INFO: 127.0.0.1:57185 - "POST /api/v1/auth/login HTTP/1.1" 200 OK {"timestamp": "2026-08-06T15:42:18.703629+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:e716bafb-24bb-42b7-aea0-fdb383844ee8:d6a9aa85-b75e-400c-980c-4ee7e876a15b:scene_director (Step scene_director for d6a9aa85-b75e-400c-980c-4ee7e876a15b)"} INFO: 127.0.0.1:57187 - "POST /api/v1/projects/e716bafb-24bb-42b7-aea0-fdb383844ee8/episodes/d6a9aa85-b75e-400c-980c-4ee7e876a15b/steps/scene_director?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-08-06T15:42:18.775762+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 106 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-08-06T15:42:18.782683+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_sync_service", "message": "Skipping scene_still sync: scene_detail 데이터 없음 (cascade or pre-analysis). Existing rows preserved."} {"timestamp": "2026-08-06T15:42:18.811040+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 51 total short_ids found"} {"timestamp": "2026-08-06T15:42:18.816295+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode d6a9aa85-b75e-400c-980c-4ee7e876a15b status NOT advanced — incomplete steps: ['scene_director', 'shot_director', 'scene_camera_flow', 'shot_dependency', 'outlook_phase1', 'outlook_phase2', 'outlook_phase3', 'shot_staging', 'scene_consistency', 'scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_site_layout', 'outdoor_place_spec', 'outdoor_lane_plan', 'shot_ref_classify', 'background_share_plan', 'background_classify', 'background_master_plan', 'floor_plan_prompt', 'floor_plan_overlay_payload', 'base_location_dossier', 'floor_plan_geometry_readback', 'floor_plan_semantic_readback', 'shot_projection_card', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-08-06T15:42:18.817365+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode d6a9aa85, step=-, repaired=0)"} {"timestamp": "2026-08-06T15:42:18.820171+00:00", "level": "WARNING", "logger": "app.core.step_runner", "message": "[RECOVERY] step=scene_director status=running → force-like"} {"timestamp": "2026-08-06T15:42:18.820983+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step scene_director started (run_id=b0428139-5d47-4484-959a-15df1a3c01be, model=gemini-pro)"} {"timestamp": "2026-08-06T15:42:18.824874+00:00", "level": "WARNING", "logger": "app.core.name_matcher", "message": "name_index collision: key='검은한복' kept existing entry, skipped new from raw='검은한복'"} {"timestamp": "2026-08-06T15:42:18.824924+00:00", "level": "INFO", "logger": "app.core.steps.director_steps", "message": "Injected 0 short_ids from DB"} {"timestamp": "2026-08-06T15:42:18.832416+00:00", "level": "INFO", "logger": "app.modules.llm.llm_client", "message": "Opik callback enabled (project: theroad-scene-lab)"} 00:42:18 - LiteLLM Router:INFO: router.py:812 - Routing strategy: simple-shuffle {"timestamp": "2026-08-06T15:42:18.848498+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "Routing strategy: simple-shuffle"} {"timestamp": "2026-08-06T15:42:18.848733+00:00", "level": "INFO", "logger": "app.modules.llm.llm_client", "message": "LiteLLM Router initialized: 12 deployments (1 Gemini keys, OpenAI=True slot=primary/2)"} 00:42:18 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-06T15:42:18.860614+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 00:44:38 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T15:44:38.694305+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} OPIK: Started logging traces to the "theroad-scene-lab" project at https://www.comet.com/opik/api/v1/session/redirect/projects/?trace_id=06a74abe-6b28-75a9-8000-fe53349e3e14&path=aHR0cHM6Ly93d3cuY29tZXQuY29tL29waWsvYXBpLw==. 00:44:38 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-06T15:44:38.703025+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-06T15:44:38.725569+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step scene_director completed (completed=113/113, failed=0)"} {"timestamp": "2026-08-06T15:44:38.727436+00:00", "level": "ERROR", "logger": "asyncio", "message": "Task was destroyed but it is pending!\ntask: wait_for=>"} {"timestamp": "2026-08-06T15:44:38.780128+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 106 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-08-06T15:44:38.786747+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_sync_service", "message": "Skipping scene_still sync: scene_detail 데이터 없음 (cascade or pre-analysis). Existing rows preserved."} {"timestamp": "2026-08-06T15:44:38.815039+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 51 total short_ids found"} {"timestamp": "2026-08-06T15:44:38.818784+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode d6a9aa85-b75e-400c-980c-4ee7e876a15b status NOT advanced — incomplete steps: ['shot_director', 'scene_camera_flow', 'shot_dependency', 'outlook_phase1', 'outlook_phase2', 'outlook_phase3', 'shot_staging', 'scene_consistency', 'scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_site_layout', 'outdoor_place_spec', 'outdoor_lane_plan', 'shot_ref_classify', 'background_share_plan', 'background_classify', 'background_master_plan', 'floor_plan_prompt', 'floor_plan_overlay_payload', 'base_location_dossier', 'floor_plan_geometry_readback', 'floor_plan_semantic_readback', 'shot_projection_card', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-08-06T15:44:38.820023+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode d6a9aa85, step=scene_director, repaired=0)"} {"timestamp": "2026-08-06T15:45:07.825249+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:e716bafb-24bb-42b7-aea0-fdb383844ee8:d6a9aa85-b75e-400c-980c-4ee7e876a15b:shot_director (Step shot_director for d6a9aa85-b75e-400c-980c-4ee7e876a15b)"} INFO: 127.0.0.1:57242 - "POST /api/v1/projects/e716bafb-24bb-42b7-aea0-fdb383844ee8/episodes/d6a9aa85-b75e-400c-980c-4ee7e876a15b/steps/shot_director?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-08-06T15:45:07.831854+00:00", "level": "WARNING", "logger": "app.core.step_runner", "message": "[RECOVERY] step=shot_director status=running → force-like"} {"timestamp": "2026-08-06T15:45:07.832794+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step shot_director started (run_id=a7015c25-637a-4709-b1f8-7a0795995799, model=gpt)"} 00:45:07 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-06T15:45:07.844736+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 00:45:08 - LiteLLM Router:INFO: router.py:1570 - litellm.completion(model=openai/gpt-5.6-sol) Exception litellm.RateLimitError: RateLimitError: OpenAIException - You have no credits remaining. Add credits to continue using the API at https://platform.openai.com/settings/organization/billing/. {"timestamp": "2026-08-06T15:45:08.666232+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[31m Exception litellm.RateLimitError: RateLimitError: OpenAIException - You have no credits remaining. Add credits to continue using the API at https://platform.openai.com/settings/organization/billing/.\u001b[0m"} 00:45:14 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-06T15:45:14.015926+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 00:45:14 - LiteLLM Router:INFO: router.py:1570 - litellm.completion(model=openai/gpt-5.6-sol) Exception litellm.RateLimitError: RateLimitError: OpenAIException - You have no credits remaining. Add credits to continue using the API at https://platform.openai.com/settings/organization/billing/. {"timestamp": "2026-08-06T15:45:14.233501+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[31m Exception litellm.RateLimitError: RateLimitError: OpenAIException - You have no credits remaining. Add credits to continue using the API at https://platform.openai.com/settings/organization/billing/.\u001b[0m"} 00:45:19 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-06T15:45:19.857005+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 00:45:20 - LiteLLM Router:INFO: router.py:1570 - litellm.completion(model=openai/gpt-5.6-sol) Exception litellm.RateLimitError: RateLimitError: OpenAIException - You have no credits remaining. Add credits to continue using the API at https://platform.openai.com/settings/organization/billing/. {"timestamp": "2026-08-06T15:45:20.255514+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[31m Exception litellm.RateLimitError: RateLimitError: OpenAIException - You have no credits remaining. Add credits to continue using the API at https://platform.openai.com/settings/organization/billing/.\u001b[0m"} 00:45:25 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-06T15:45:25.862666+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 00:45:26 - LiteLLM Router:INFO: router.py:1570 - litellm.completion(model=openai/gpt-5.6-sol) Exception litellm.RateLimitError: RateLimitError: OpenAIException - You have no credits remaining. Add credits to continue using the API at https://platform.openai.com/settings/organization/billing/. {"timestamp": "2026-08-06T15:45:26.343730+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[31m Exception litellm.RateLimitError: RateLimitError: OpenAIException - You have no credits remaining. Add credits to continue using the API at https://platform.openai.com/settings/organization/billing/.\u001b[0m"} 00:45:31 - LiteLLM Router:INFO: router.py:5437 - Trying to fallback b/w models {"timestamp": "2026-08-06T15:45:31.917986+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "Trying to fallback b/w models"} {"timestamp": "2026-08-06T15:45:31.918568+00:00", "level": "WARNING", "logger": "app.core.openai_keys", "message": "OpenAI 키 전환: primary → secondary (사유=429 · 지점=router.completion[gpt]). 이 프로세스는 이후 secondary 슬롯을 쓴다."} {"timestamp": "2026-08-06T15:45:31.918666+00:00", "level": "INFO", "logger": "app.modules.llm.llm_client", "message": "LiteLLM Router 무효화 — OpenAI 키 슬롯 전환 반영"} 00:45:31 - LiteLLM Router:INFO: router.py:812 - Routing strategy: simple-shuffle {"timestamp": "2026-08-06T15:45:31.932729+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "Routing strategy: simple-shuffle"} {"timestamp": "2026-08-06T15:45:31.933573+00:00", "level": "INFO", "logger": "app.modules.llm.llm_client", "message": "LiteLLM Router initialized: 12 deployments (1 Gemini keys, OpenAI=True slot=secondary/2)"} 00:45:31 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-06T15:45:31.935728+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 00:45:37 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T15:45:37.384995+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 00:45:37 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-06T15:45:37.386552+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 00:45:37 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-06T15:45:37.393668+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 00:45:42 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T15:45:42.481057+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 00:45:42 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-06T15:45:42.485544+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 00:45:42 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-06T15:45:42.498448+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 00:45:48 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T15:45:48.442158+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 00:45:48 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-06T15:45:48.443638+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 00:45:48 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-06T15:45:48.458505+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 00:45:53 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T15:45:53.375871+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 00:45:53 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-06T15:45:53.377490+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 00:45:53 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-06T15:45:53.387837+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 00:46:02 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T15:46:02.073684+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 00:46:02 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-06T15:46:02.075406+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 00:46:02 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-06T15:46:02.084087+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 00:46:06 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T15:46:06.608090+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 00:46:06 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-06T15:46:06.609799+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 00:46:06 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-06T15:46:06.617748+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 00:46:13 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T15:46:13.188776+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 00:46:13 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-06T15:46:13.189660+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 00:46:13 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-06T15:46:13.194557+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 00:46:17 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T15:46:17.349416+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 00:46:17 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-06T15:46:17.351823+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 00:46:17 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-06T15:46:17.368010+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 00:46:22 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T15:46:22.395755+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 00:46:22 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-06T15:46:22.397657+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 00:46:22 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-06T15:46:22.413410+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 00:46:28 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T15:46:28.466447+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 00:46:28 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-06T15:46:28.468847+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 00:46:28 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-06T15:46:28.483272+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 00:46:41 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T15:46:41.365273+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 00:46:41 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-06T15:46:41.365707+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 00:46:41 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-06T15:46:41.369063+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 00:46:47 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T15:46:47.892056+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 00:46:47 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-06T15:46:47.894762+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 00:46:47 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-06T15:46:47.907826+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 00:46:52 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T15:46:52.578127+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 00:46:52 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-06T15:46:52.579013+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 00:46:52 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-06T15:46:52.585768+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 00:46:59 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T15:46:59.863769+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 00:46:59 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-06T15:46:59.866426+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 00:46:59 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-06T15:46:59.881074+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 00:47:09 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T15:47:09.415192+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 00:47:09 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-06T15:47:09.416548+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 00:47:09 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-06T15:47:09.428977+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 00:47:14 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T15:47:14.169997+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 00:47:14 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-06T15:47:14.172983+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 00:47:14 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-06T15:47:14.189620+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 00:47:18 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T15:47:18.962916+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 00:47:18 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-06T15:47:18.966769+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 00:47:18 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-06T15:47:18.982270+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 00:47:22 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T15:47:22.453189+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 00:47:22 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-06T15:47:22.454357+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 00:47:22 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-06T15:47:22.463421+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 00:47:39 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T15:47:39.654274+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 00:47:39 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-06T15:47:39.655159+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 00:47:39 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-06T15:47:39.661320+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 00:47:46 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T15:47:46.749059+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 00:47:46 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-06T15:47:46.750326+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 00:47:46 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-06T15:47:46.761487+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 00:47:53 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T15:47:53.788595+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 00:47:53 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-06T15:47:53.792313+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 00:47:53 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-06T15:47:53.806289+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 00:47:55 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T15:47:55.149419+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 00:47:55 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-06T15:47:55.150839+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 00:47:55 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-06T15:47:55.158264+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 00:47:56 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T15:47:56.971674+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 00:47:56 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-06T15:47:56.972494+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 00:47:56 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-06T15:47:56.978375+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 00:48:00 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T15:48:00.342996+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 00:48:00 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-06T15:48:00.345089+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 00:48:00 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-06T15:48:00.360297+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 00:48:02 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T15:48:02.085231+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 00:48:02 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-06T15:48:02.086331+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 00:48:02 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-06T15:48:02.093315+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 00:48:09 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T15:48:09.982293+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 00:48:09 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-06T15:48:09.983802+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 00:48:09 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-06T15:48:09.997492+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 00:48:14 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T15:48:14.572004+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 00:48:14 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-06T15:48:14.573459+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 00:48:14 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-06T15:48:14.582256+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 00:48:16 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T15:48:16.689636+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 00:48:16 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-06T15:48:16.693065+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 00:48:16 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-06T15:48:16.714392+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 00:48:23 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T15:48:23.367308+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 00:48:23 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-06T15:48:23.370164+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 00:48:23 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-06T15:48:23.385055+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 00:48:27 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T15:48:27.584409+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 00:48:27 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-06T15:48:27.587828+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 00:48:27 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-06T15:48:27.600848+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 00:48:33 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T15:48:33.570507+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 00:48:33 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-06T15:48:33.572883+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 00:48:33 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-06T15:48:33.582446+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 00:48:38 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T15:48:38.288093+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 00:48:38 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-06T15:48:38.289618+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 00:48:38 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-06T15:48:38.302593+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 00:48:44 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T15:48:44.103918+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 00:48:44 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-06T15:48:44.105923+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 00:48:44 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-06T15:48:44.122041+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 00:48:47 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T15:48:47.715564+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 00:48:47 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-06T15:48:47.717428+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 00:48:47 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-06T15:48:47.727017+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 00:48:59 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T15:48:59.489486+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 00:48:59 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-06T15:48:59.491262+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 00:48:59 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-06T15:48:59.508145+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 00:49:04 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T15:49:04.816743+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 00:49:04 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-06T15:49:04.818334+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 00:49:04 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-06T15:49:04.827877+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 00:49:14 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T15:49:14.523399+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 00:49:14 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-06T15:49:14.524425+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 00:49:14 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-06T15:49:14.532967+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 00:49:20 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T15:49:20.763980+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 00:49:20 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-06T15:49:20.766751+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 00:49:20 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-06T15:49:20.779330+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 00:49:26 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T15:49:26.512383+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 00:49:26 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-06T15:49:26.515506+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 00:49:26 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-06T15:49:26.530416+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 00:49:30 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T15:49:30.577447+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 00:49:30 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-06T15:49:30.579186+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 00:49:30 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-06T15:49:30.588407+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 00:49:35 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T15:49:35.978788+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 00:49:35 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-06T15:49:35.979670+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 00:49:35 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-06T15:49:35.985561+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 00:49:38 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T15:49:38.897300+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 00:49:38 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-06T15:49:38.899885+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 00:49:38 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-06T15:49:38.916126+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 00:49:43 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T15:49:43.002530+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 00:49:43 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-06T15:49:43.006558+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 00:49:43 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-06T15:49:43.020935+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 00:49:51 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T15:49:51.542879+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 00:49:51 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-06T15:49:51.545347+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 00:49:51 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-06T15:49:51.559846+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 00:49:59 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T15:49:59.602759+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 00:49:59 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-06T15:49:59.605620+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 00:49:59 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-06T15:49:59.620650+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 00:50:10 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T15:50:10.171218+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 00:50:10 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-06T15:50:10.173026+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 00:50:10 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-06T15:50:10.185621+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 00:50:15 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T15:50:15.818285+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 00:50:15 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-06T15:50:15.819531+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 00:50:15 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-06T15:50:15.827737+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 00:50:20 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T15:50:20.907299+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 00:50:20 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-06T15:50:20.909780+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 00:50:20 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-06T15:50:20.923341+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 00:50:27 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T15:50:27.519492+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 00:50:27 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-06T15:50:27.522729+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 00:50:27 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-06T15:50:27.537524+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 00:50:36 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T15:50:36.906839+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 00:50:36 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-06T15:50:36.909380+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 00:50:36 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-06T15:50:36.923995+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 00:50:43 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T15:50:43.443000+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 00:50:43 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-06T15:50:43.445085+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 00:50:43 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-06T15:50:43.460024+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 00:50:48 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T15:50:48.307626+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 00:50:48 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-06T15:50:48.310187+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 00:50:48 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-06T15:50:48.326318+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 00:51:01 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T15:51:01.307658+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 00:51:01 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-06T15:51:01.310568+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 00:51:01 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-06T15:51:01.324789+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 00:51:06 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T15:51:06.054195+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 00:51:06 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-06T15:51:06.057026+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 00:51:06 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-06T15:51:06.072494+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 00:51:16 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T15:51:16.758955+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 00:51:16 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-06T15:51:16.761956+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 00:51:16 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-06T15:51:16.776410+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 00:51:25 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T15:51:25.108623+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 00:51:25 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-06T15:51:25.110640+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 00:51:25 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-06T15:51:25.125210+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 00:51:30 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T15:51:30.734628+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 00:51:30 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-06T15:51:30.737328+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 00:51:30 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-06T15:51:30.749618+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 00:51:32 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T15:51:32.502633+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 00:51:32 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-06T15:51:32.506136+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 00:51:32 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-06T15:51:32.520290+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 00:51:39 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T15:51:39.539233+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 00:51:39 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-06T15:51:39.541770+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 00:51:39 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-06T15:51:39.556453+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 00:51:47 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T15:51:47.327365+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 00:51:47 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-06T15:51:47.329106+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 00:51:47 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-06T15:51:47.343455+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 00:51:57 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T15:51:57.255216+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 00:51:57 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-06T15:51:57.256965+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 00:51:57 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-06T15:51:57.267837+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 00:52:02 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T15:52:02.186671+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 00:52:02 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-06T15:52:02.189222+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 00:52:02 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-06T15:52:02.204579+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 00:52:07 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T15:52:07.044569+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 00:52:07 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-06T15:52:07.045913+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 00:52:07 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-06T15:52:07.061114+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 00:52:10 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T15:52:10.047431+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 00:52:10 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-06T15:52:10.049560+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 00:52:10 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-06T15:52:10.066550+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 00:52:14 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T15:52:14.217433+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 00:52:14 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-06T15:52:14.220382+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 00:52:14 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-06T15:52:14.232241+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 00:52:17 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T15:52:17.303190+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 00:52:17 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-06T15:52:17.306465+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 00:52:17 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-06T15:52:17.320641+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 00:52:22 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T15:52:22.037120+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 00:52:22 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-06T15:52:22.038710+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 00:52:22 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-06T15:52:22.054500+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 00:52:28 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T15:52:28.092226+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 00:52:28 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-06T15:52:28.095411+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 00:52:28 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-06T15:52:28.109032+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 00:52:34 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T15:52:34.959850+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 00:52:34 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-06T15:52:34.961989+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 00:52:34 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-06T15:52:34.974969+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 00:52:40 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T15:52:40.390284+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 00:52:40 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-06T15:52:40.393711+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 00:52:40 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-06T15:52:40.407356+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 00:52:47 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T15:52:47.598152+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 00:52:47 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-06T15:52:47.601003+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 00:52:47 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-06T15:52:47.615652+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 00:53:04 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T15:53:04.258140+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 00:53:04 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-06T15:53:04.259918+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 00:53:04 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-06T15:53:04.275261+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 00:53:09 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T15:53:09.881136+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 00:53:09 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-06T15:53:09.883707+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 00:53:09 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-06T15:53:09.898604+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 00:53:13 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T15:53:13.465442+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 00:53:13 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-06T15:53:13.468769+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 00:53:13 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-06T15:53:13.480423+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 00:53:15 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T15:53:15.112522+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 00:53:15 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-06T15:53:15.113985+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 00:53:15 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-06T15:53:15.122170+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 00:53:18 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T15:53:18.656792+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 00:53:18 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-06T15:53:18.659686+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 00:53:18 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-06T15:53:18.674081+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 00:53:23 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T15:53:23.133531+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 00:53:23 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-06T15:53:23.136543+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 00:53:23 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-06T15:53:23.150976+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 00:53:28 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T15:53:28.550305+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 00:53:28 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-06T15:53:28.552992+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 00:53:28 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-06T15:53:28.565646+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 00:53:31 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T15:53:31.861544+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 00:53:31 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-06T15:53:31.864035+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 00:53:31 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-06T15:53:31.878400+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 00:53:40 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T15:53:40.247859+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 00:53:40 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-06T15:53:40.249361+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 00:53:40 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-06T15:53:40.259966+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 00:53:45 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T15:53:45.686977+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 00:53:45 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-06T15:53:45.690613+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 00:53:45 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-06T15:53:45.704371+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 00:53:47 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T15:53:47.786300+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 00:53:47 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-06T15:53:47.788616+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 00:53:47 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-06T15:53:47.803787+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 00:53:52 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T15:53:52.845929+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 00:53:52 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-06T15:53:52.847180+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 00:53:52 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-06T15:53:52.856441+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 00:53:59 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T15:53:59.779124+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 00:53:59 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-06T15:53:59.781865+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 00:53:59 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-06T15:53:59.803275+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 00:54:05 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T15:54:05.345876+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 00:54:05 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-06T15:54:05.348152+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 00:54:05 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-06T15:54:05.364225+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 00:54:09 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T15:54:09.426516+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 00:54:09 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-06T15:54:09.429937+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 00:54:09 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-06T15:54:09.443701+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 00:54:22 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T15:54:22.862172+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 00:54:22 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-06T15:54:22.867000+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 00:54:22 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-06T15:54:22.879078+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 00:54:28 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T15:54:28.597691+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 00:54:28 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-06T15:54:28.600280+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 00:54:28 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-06T15:54:28.616278+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 00:54:30 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T15:54:30.434752+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 00:54:30 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-06T15:54:30.438114+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 00:54:30 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-06T15:54:30.452222+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 00:54:32 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T15:54:32.873633+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 00:54:32 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-06T15:54:32.877258+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 00:54:32 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-06T15:54:32.889335+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 00:54:35 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T15:54:35.468135+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 00:54:35 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-06T15:54:35.470219+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 00:54:35 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-06T15:54:35.486227+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 00:54:36 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T15:54:36.949777+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 00:54:36 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-06T15:54:36.952620+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 00:54:36 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-06T15:54:36.965521+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 00:54:41 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T15:54:41.263799+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 00:54:41 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-06T15:54:41.266331+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 00:54:41 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-06T15:54:41.280385+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 00:54:45 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T15:54:45.338841+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 00:54:45 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-06T15:54:45.341526+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 00:54:45 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-06T15:54:45.354773+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 00:54:50 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T15:54:50.353316+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 00:54:50 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-06T15:54:50.355837+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 00:54:50 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-06T15:54:50.370279+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 00:54:54 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T15:54:54.234673+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 00:54:54 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-06T15:54:54.237994+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 00:54:54 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-06T15:54:54.251425+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 00:54:58 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T15:54:58.575003+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 00:54:58 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-06T15:54:58.577896+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 00:54:58 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-06T15:54:58.591038+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 00:55:01 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T15:55:01.973940+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 00:55:01 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-06T15:55:01.976814+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 00:55:01 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-06T15:55:01.994255+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 00:55:07 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T15:55:07.207369+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 00:55:07 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-06T15:55:07.210397+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 00:55:07 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-06T15:55:07.225950+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 00:55:11 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T15:55:11.560205+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 00:55:11 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-06T15:55:11.562319+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 00:55:11 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-06T15:55:11.575226+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 00:55:15 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T15:55:15.547280+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 00:55:15 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-06T15:55:15.550956+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 00:55:15 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-06T15:55:15.567057+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 00:55:22 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T15:55:22.779665+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 00:55:22 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-06T15:55:22.780950+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 00:55:22 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-06T15:55:22.789273+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 00:55:25 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T15:55:25.781294+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 00:55:25 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-06T15:55:25.783455+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 00:55:25 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-06T15:55:25.792161+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 00:55:33 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T15:55:33.943332+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 00:55:33 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-06T15:55:33.946466+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 00:55:33 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-06T15:55:33.958971+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 00:55:40 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T15:55:40.052002+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 00:55:40 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-06T15:55:40.054655+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 00:55:40 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-06T15:55:40.069314+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 00:55:43 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T15:55:43.838393+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 00:55:43 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-06T15:55:43.840578+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 00:55:43 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-06T15:55:43.853601+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 00:55:48 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T15:55:48.215642+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 00:55:48 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-06T15:55:48.218247+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 00:55:48 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-06T15:55:48.233256+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 00:55:52 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T15:55:52.486462+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 00:55:52 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-06T15:55:52.488609+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 00:55:52 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-06T15:55:52.502170+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 00:55:54 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T15:55:54.394330+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 00:55:54 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-06T15:55:54.397340+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 00:55:54 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-06T15:55:54.413932+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 00:56:03 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T15:56:03.059045+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 00:56:03 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-06T15:56:03.061893+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 00:56:03 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-06T15:56:03.077150+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 00:56:16 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T15:56:16.372707+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 00:56:16 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-06T15:56:16.375359+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 00:56:16 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-06T15:56:16.388526+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 00:56:25 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T15:56:25.423866+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 00:56:25 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-06T15:56:25.427486+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 00:56:25 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-06T15:56:25.443007+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 00:56:29 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T15:56:29.199375+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 00:56:29 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-06T15:56:29.201716+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-06T15:56:29.210592+00:00", "level": "INFO", "logger": "app.modules.pipeline.shot_director", "message": "shot_director: 113 scenes (113 LLM, 0 skipped), 255 total shots"} {"timestamp": "2026-08-06T15:56:29.232406+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step shot_director completed (completed=113/113, failed=0)"} {"timestamp": "2026-08-06T15:56:29.339687+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 106 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-08-06T15:56:29.556816+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced 977 scene_stills (shot-based) to DB"} {"timestamp": "2026-08-06T15:56:29.636490+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced scene_summary from checkpoint"} {"timestamp": "2026-08-06T15:56:29.662795+00:00", "level": "WARNING", "logger": "app.core.name_matcher", "message": "name_index collision: key='검은한복' kept existing entry, skipped new from raw='검은한복'"} {"timestamp": "2026-08-06T15:56:29.664809+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 35 outlooks + 39 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-08-06T15:56:29.694751+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 51 total short_ids found"} {"timestamp": "2026-08-06T15:56:29.698495+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode d6a9aa85-b75e-400c-980c-4ee7e876a15b status NOT advanced — incomplete steps: ['scene_camera_flow', 'shot_dependency', 'outlook_phase1', 'outlook_phase2', 'outlook_phase3', 'shot_staging', 'scene_consistency', 'scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_site_layout', 'outdoor_place_spec', 'outdoor_lane_plan', 'shot_ref_classify', 'background_share_plan', 'background_classify', 'background_master_plan', 'floor_plan_prompt', 'floor_plan_overlay_payload', 'base_location_dossier', 'floor_plan_geometry_readback', 'floor_plan_semantic_readback', 'shot_projection_card', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-08-06T15:56:29.699756+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode d6a9aa85, step=shot_director, repaired=0)"} {"timestamp": "2026-08-06T15:58:12.681792+00:00", "level": "WARNING", "logger": "app.core.steps.scene_context_loader", "message": "scene_detail: shot_dependency_t2i checkpoint is STALE — 이전 scene_detail 기반 ref_usage를 사용 중. drift 방지를 위해 scene_detail 완료 후 shot_dependency_t2i도 force 재실행 권장."} {"timestamp": "2026-08-06T15:58:12.686835+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "scene_detail: 255 shot_staging entries loaded"} {"timestamp": "2026-08-06T15:58:12.688590+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "scene_detail: 94 scenes with fixed elements loaded"} {"timestamp": "2026-08-06T15:58:12.701696+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "_load_chain_bg_guide_by_shot: 150 shot guides loaded (0 skipped warnings)"} {"timestamp": "2026-08-06T15:58:12.705468+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "_load_chain_bg_camera_meta_by_shot: 68 shots with camera meta loaded (0 skipped warnings)"} {"timestamp": "2026-08-06T15:58:12.707907+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "_load_chain_bg_owned_by_shot: 150 shots mapped from 71 backgrounds"} {"timestamp": "2026-08-06T15:58:12.709632+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "_load_chain_bg_id_by_shot: 150 shots mapped to bg_id from 71 backgrounds"} {"timestamp": "2026-08-06T15:58:12.714611+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "scene_detail: 21 prop term maps loaded for Task 14 namespace reconciliation"} {"timestamp": "2026-08-06T15:58:12.722482+00:00", "level": "INFO", "logger": "app.services.scene_detail_redo_service", "message": "scene_detail redo-shot: project=e716bafb-24bb-42b7-aea0-fdb383844ee8 episode=d6a9aa85-b75e-400c-980c-4ee7e876a15b S11_Shot3 (mode=force)"} 00:58:12 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-06T15:58:12.730616+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 00:59:05 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T15:59:05.286041+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 00:59:05 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-06T15:59:05.287749+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-06T15:59:05.301565+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "Scene 11: 제거할 ID: C03O00 — retry"} 00:59:05 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-06T15:59:05.303025+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 01:09:05 - LiteLLM Router:INFO: router.py:1570 - litellm.completion(model=gemini/gemini-3.1-pro-preview) Exception litellm.Timeout: Connection timed out after None seconds. {"timestamp": "2026-08-06T16:09:05.430634+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[31m Exception litellm.Timeout: Connection timed out after None seconds.\u001b[0m"} 01:09:10 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-06T16:09:10.868801+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 01:10:08 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T16:10:08.208965+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 01:10:08 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-06T16:10:08.211618+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-06T16:10:08.235166+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "씬 11: C03 아웃룩 없음 — t2i_prompt에서 bare ID 유지"} 01:10:08 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-08-06T16:10:08.248182+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 01:10:15 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T16:10:15.130459+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 01:10:15 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-08-06T16:10:15.132956+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} INFO: 127.0.0.1:57481 - "POST /api/v1/projects/e716bafb-24bb-42b7-aea0-fdb383844ee8/episodes/d6a9aa85-b75e-400c-980c-4ee7e876a15b/steps/scene-detail/redo-shot?scene_index=11&shot_index=3&mode=force HTTP/1.1" 400 Bad Request {"timestamp": "2026-08-06T22:47:41.762003+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:e716bafb-24bb-42b7-aea0-fdb383844ee8:d6a9aa85-b75e-400c-980c-4ee7e876a15b:outlook_phase1 (Step outlook_phase1 for d6a9aa85-b75e-400c-980c-4ee7e876a15b)"} INFO: 127.0.0.1:63034 - "POST /api/v1/projects/e716bafb-24bb-42b7-aea0-fdb383844ee8/episodes/d6a9aa85-b75e-400c-980c-4ee7e876a15b/steps/outlook_phase1?mode=force HTTP/1.1" 200 OK {"timestamp": "2026-08-06T22:47:41.833204+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 106 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-08-06T22:47:41.995813+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced 977 scene_stills (shot-based) to DB"} {"timestamp": "2026-08-06T22:47:42.098875+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced scene_summary from checkpoint"} {"timestamp": "2026-08-06T22:47:42.131981+00:00", "level": "WARNING", "logger": "app.core.name_matcher", "message": "name_index collision: key='검은한복' kept existing entry, skipped new from raw='검은한복'"} {"timestamp": "2026-08-06T22:47:42.134898+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 35 outlooks + 39 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-08-06T22:47:42.162706+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 51 total short_ids found"} {"timestamp": "2026-08-06T22:47:42.168526+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode d6a9aa85-b75e-400c-980c-4ee7e876a15b status NOT advanced — incomplete steps: ['scene_camera_flow', 'shot_dependency', 'outlook_phase1', 'outlook_phase2', 'outlook_phase3', 'shot_staging', 'scene_consistency', 'scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_site_layout', 'outdoor_place_spec', 'outdoor_lane_plan', 'shot_ref_classify', 'background_share_plan', 'background_classify', 'background_master_plan', 'floor_plan_prompt', 'floor_plan_overlay_payload', 'base_location_dossier', 'floor_plan_geometry_readback', 'floor_plan_semantic_readback', 'shot_projection_card', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-08-06T22:47:42.169698+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode d6a9aa85, step=-, repaired=0)"} {"timestamp": "2026-08-06T22:47:42.191273+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Invalidated 14 downstream steps from outlook_phase1 (delete_cp=True): ['character_state_variant', 'composite_image_gen', 'outdoor_site_layout', 'outlook_dedup', 'outlook_phase2', 'outlook_phase3', 'scene_detail', 'scene_image_pipeline', 'scene_verify', 'shot_dependency_t2i', 'space_set_bg', 't2i_review', 'world_guide', 'zoom_continuity_anchor']"} {"timestamp": "2026-08-06T22:47:42.193077+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step outlook_phase1 started (run_id=e3f93741-f9b6-4fcb-bf3a-89fb08156d23, model=gemini-pro)"} {"timestamp": "2026-08-06T22:47:42.196799+00:00", "level": "INFO", "logger": "app.core.steps.outlook_steps", "message": "Outlook phase1: 113 scenes, 35 characters"} 07:47:42 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-06T22:47:42.198312+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:63057 - "POST /api/v1/auth/login HTTP/1.1" 200 OK {"timestamp": "2026-08-06T22:49:05.046576+00:00", "level": "WARNING", "logger": "app.core.job_manager", "message": "Job 'step:e716bafb-24bb-42b7-aea0-fdb383844ee8:d6a9aa85-b75e-400c-980c-4ee7e876a15b:outlook_phase1' is already running, skipping"} INFO: 127.0.0.1:63059 - "POST /api/v1/projects/e716bafb-24bb-42b7-aea0-fdb383844ee8/episodes/d6a9aa85-b75e-400c-980c-4ee7e876a15b/steps/outlook_phase1?mode=resume HTTP/1.1" 409 Conflict 07:49:06 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T22:49:06.765167+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 07:49:06 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-06T22:49:06.766458+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-06T22:49:06.775050+00:00", "level": "INFO", "logger": "app.core.steps.outlook_steps", "message": "Outlook phase1 complete: 36 outlooks (O01~O36)"} {"timestamp": "2026-08-06T22:49:06.775235+00:00", "level": "WARNING", "logger": "app.core.steps.outlook_steps", "message": "Outlook phase1 retry 1/2: 6 orphan characters — ['C05(강민숙(홍은미) (꿈속 변형 상태))', 'C16(그분(검은 연기 형체))', 'C17(그분(버스 창문 반사 형상))', 'C27(수리영을 공격한 대형 검은 염소)', 'C28(검은 염소)', 'C32(포댓자루 속 정체불명 형체)']"} 07:49:06 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-06T22:49:06.777505+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 07:49:37 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T22:49:37.680283+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 07:49:37 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-06T22:49:37.682301+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-06T22:49:37.692467+00:00", "level": "INFO", "logger": "app.core.steps.outlook_steps", "message": "Outlook phase1 retry 1: +1 outlooks (total 37)"} {"timestamp": "2026-08-06T22:49:37.692666+00:00", "level": "WARNING", "logger": "app.core.steps.outlook_steps", "message": "Outlook phase1 retry 2/2: 5 orphan characters — ['C16(그분(검은 연기 형체))', 'C17(그분(버스 창문 반사 형상))', 'C27(수리영을 공격한 대형 검은 염소)', 'C28(검은 염소)', 'C32(포댓자루 속 정체불명 형체)']"} 07:49:37 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-06T22:49:37.696622+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} INFO: 127.0.0.1:63069 - "POST /api/v1/auth/login HTTP/1.1" 200 OK {"timestamp": "2026-08-06T22:49:42.641650+00:00", "level": "WARNING", "logger": "app.core.job_manager", "message": "Job 'step:e716bafb-24bb-42b7-aea0-fdb383844ee8:d6a9aa85-b75e-400c-980c-4ee7e876a15b:outlook_phase1' is already running, skipping"} INFO: 127.0.0.1:63071 - "POST /api/v1/projects/e716bafb-24bb-42b7-aea0-fdb383844ee8/episodes/d6a9aa85-b75e-400c-980c-4ee7e876a15b/steps/outlook_phase1?mode=resume HTTP/1.1" 409 Conflict 07:49:54 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T22:49:54.671101+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 07:49:54 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-06T22:49:54.673885+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-06T22:49:54.683551+00:00", "level": "INFO", "logger": "app.core.steps.outlook_steps", "message": "Outlook phase1 retry 2: +2 outlooks (total 39)"} {"timestamp": "2026-08-06T22:49:54.684856+00:00", "level": "INFO", "logger": "app.core.steps.outlook_steps", "message": "O00: removed LLM-assigned outlooks for non-human chars: ['O37', 'O38', 'O39']"} {"timestamp": "2026-08-06T22:49:54.684993+00:00", "level": "INFO", "logger": "app.core.steps.outlook_steps", "message": "O00 (Null Outlook) assigned to 6 characters: ['C05', 'C16', 'C17', 'C27', 'C28', 'C32']"} {"timestamp": "2026-08-06T22:49:54.691551+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step outlook_phase1 completed (completed=37/35, failed=0)"} {"timestamp": "2026-08-06T22:49:54.747687+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 106 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-08-06T22:49:54.757647+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_sync_service", "message": "Skipping scene_still sync: scene_detail 데이터 없음 (cascade or pre-analysis). Existing rows preserved."} {"timestamp": "2026-08-06T22:49:54.785379+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 51 total short_ids found"} {"timestamp": "2026-08-06T22:49:54.790497+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode d6a9aa85-b75e-400c-980c-4ee7e876a15b status NOT advanced — incomplete steps: ['scene_camera_flow', 'shot_dependency', 'outlook_phase2', 'outlook_phase3', 'shot_staging', 'scene_consistency', 'scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_site_layout', 'outdoor_place_spec', 'outdoor_lane_plan', 'shot_ref_classify', 'background_share_plan', 'background_classify', 'background_master_plan', 'floor_plan_prompt', 'floor_plan_overlay_payload', 'base_location_dossier', 'floor_plan_geometry_readback', 'floor_plan_semantic_readback', 'shot_projection_card', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-08-06T22:49:54.791408+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode d6a9aa85, step=outlook_phase1, repaired=0)"} {"timestamp": "2026-08-06T22:50:02.664053+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:e716bafb-24bb-42b7-aea0-fdb383844ee8:d6a9aa85-b75e-400c-980c-4ee7e876a15b:outlook_phase2 (Step outlook_phase2 for d6a9aa85-b75e-400c-980c-4ee7e876a15b)"} INFO: 127.0.0.1:63078 - "POST /api/v1/projects/e716bafb-24bb-42b7-aea0-fdb383844ee8/episodes/d6a9aa85-b75e-400c-980c-4ee7e876a15b/steps/outlook_phase2?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-08-06T22:50:02.727321+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 106 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-08-06T22:50:02.734738+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_sync_service", "message": "Skipping scene_still sync: scene_detail 데이터 없음 (cascade or pre-analysis). Existing rows preserved."} {"timestamp": "2026-08-06T22:50:02.759553+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 51 total short_ids found"} {"timestamp": "2026-08-06T22:50:02.763479+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode d6a9aa85-b75e-400c-980c-4ee7e876a15b status NOT advanced — incomplete steps: ['scene_camera_flow', 'shot_dependency', 'outlook_phase2', 'outlook_phase3', 'shot_staging', 'scene_consistency', 'scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_site_layout', 'outdoor_place_spec', 'outdoor_lane_plan', 'shot_ref_classify', 'background_share_plan', 'background_classify', 'background_master_plan', 'floor_plan_prompt', 'floor_plan_overlay_payload', 'base_location_dossier', 'floor_plan_geometry_readback', 'floor_plan_semantic_readback', 'shot_projection_card', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-08-06T22:50:02.764385+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode d6a9aa85, step=-, repaired=0)"} {"timestamp": "2026-08-06T22:50:02.767015+00:00", "level": "WARNING", "logger": "app.core.step_runner", "message": "[RECOVERY] step=outlook_phase2 status=running → force-like"} {"timestamp": "2026-08-06T22:50:02.767754+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step outlook_phase2 started (run_id=c9222a67-1466-40ea-ad5c-588685ba791c, model=gemini-pro)"} {"timestamp": "2026-08-06T22:50:02.770412+00:00", "level": "INFO", "logger": "app.core.steps.outlook_steps", "message": "Outlook phase2: mapping 36 outlooks to 113 scenes (O00: 6 chars excluded)"} 07:50:02 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-06T22:50:02.771797+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 07:52:53 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T22:52:53.552474+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 07:52:53 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-06T22:52:53.555987+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-06T22:52:53.576086+00:00", "level": "INFO", "logger": "app.core.steps.outlook_steps", "message": "Outlook phase2 complete: 110 scene assignments"} {"timestamp": "2026-08-06T22:52:53.576381+00:00", "level": "WARNING", "logger": "app.core.steps.outlook_steps", "message": "Outlook phase2 retry 1/3: 12씬 누락"} 07:52:53 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-06T22:52:53.578087+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 07:54:36 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T22:54:36.488436+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 07:54:36 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-06T22:54:36.491223+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-06T22:54:36.503348+00:00", "level": "INFO", "logger": "app.core.steps.outlook_steps", "message": "Outlook phase2 retry 1: 12/12 복구"} {"timestamp": "2026-08-06T22:54:36.504166+00:00", "level": "INFO", "logger": "app.core.steps.outlook_steps", "message": "O00 injected into 13 scene-character slots"} {"timestamp": "2026-08-06T22:54:36.520438+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step outlook_phase2 completed (completed=111/113, failed=0)"} {"timestamp": "2026-08-06T22:54:36.619890+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 106 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-08-06T22:54:36.639003+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_sync_service", "message": "Skipping scene_still sync: scene_detail 데이터 없음 (cascade or pre-analysis). Existing rows preserved."} {"timestamp": "2026-08-06T22:54:36.677611+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 51 total short_ids found"} {"timestamp": "2026-08-06T22:54:36.684812+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode d6a9aa85-b75e-400c-980c-4ee7e876a15b status NOT advanced — incomplete steps: ['scene_camera_flow', 'shot_dependency', 'outlook_phase3', 'shot_staging', 'scene_consistency', 'scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_site_layout', 'outdoor_place_spec', 'outdoor_lane_plan', 'shot_ref_classify', 'background_share_plan', 'background_classify', 'background_master_plan', 'floor_plan_prompt', 'floor_plan_overlay_payload', 'base_location_dossier', 'floor_plan_geometry_readback', 'floor_plan_semantic_readback', 'shot_projection_card', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-08-06T22:54:36.686543+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode d6a9aa85, step=outlook_phase2, repaired=0)"} {"timestamp": "2026-08-06T22:54:42.759509+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:e716bafb-24bb-42b7-aea0-fdb383844ee8:d6a9aa85-b75e-400c-980c-4ee7e876a15b:outlook_phase3 (Step outlook_phase3 for d6a9aa85-b75e-400c-980c-4ee7e876a15b)"} INFO: 127.0.0.1:63152 - "POST /api/v1/projects/e716bafb-24bb-42b7-aea0-fdb383844ee8/episodes/d6a9aa85-b75e-400c-980c-4ee7e876a15b/steps/outlook_phase3?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-08-06T22:54:42.868081+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 106 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-08-06T22:54:42.884642+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_sync_service", "message": "Skipping scene_still sync: scene_detail 데이터 없음 (cascade or pre-analysis). Existing rows preserved."} {"timestamp": "2026-08-06T22:54:42.926545+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 51 total short_ids found"} {"timestamp": "2026-08-06T22:54:42.932223+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode d6a9aa85-b75e-400c-980c-4ee7e876a15b status NOT advanced — incomplete steps: ['scene_camera_flow', 'shot_dependency', 'outlook_phase3', 'shot_staging', 'scene_consistency', 'scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_site_layout', 'outdoor_place_spec', 'outdoor_lane_plan', 'shot_ref_classify', 'background_share_plan', 'background_classify', 'background_master_plan', 'floor_plan_prompt', 'floor_plan_overlay_payload', 'base_location_dossier', 'floor_plan_geometry_readback', 'floor_plan_semantic_readback', 'shot_projection_card', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-08-06T22:54:42.933787+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode d6a9aa85, step=-, repaired=0)"} {"timestamp": "2026-08-06T22:54:42.937409+00:00", "level": "WARNING", "logger": "app.core.step_runner", "message": "[RECOVERY] step=outlook_phase3 status=running → force-like"} {"timestamp": "2026-08-06T22:54:42.938500+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step outlook_phase3 started (run_id=c0588949-62ed-47a0-908a-fd086ce4f15b, model=gemini-pro)"} {"timestamp": "2026-08-06T22:54:42.942006+00:00", "level": "INFO", "logger": "app.core.steps.outlook_steps", "message": "Outlook phase3: cleaning 36 outlooks, 111 assignments (O00 protected)"} 07:54:42 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-06T22:54:42.944141+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 07:54:51 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T22:54:51.532608+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 07:54:51 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-06T22:54:51.536380+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-06T22:54:51.543471+00:00", "level": "INFO", "logger": "app.modules.pipeline.outlook_extractor_v2", "message": "Phase3 code cleanup: 36→28 outlooks (removed 8, merged 0)"} {"timestamp": "2026-08-06T22:54:51.543647+00:00", "level": "INFO", "logger": "app.core.steps.outlook_steps", "message": "O00 (Null Outlook) preserved in phase3 result"} {"timestamp": "2026-08-06T22:54:51.543723+00:00", "level": "INFO", "logger": "app.core.steps.outlook_steps", "message": "Outlook phase3 complete: 29 outlooks (removed 8)"} {"timestamp": "2026-08-06T22:54:51.561502+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step outlook_phase3 completed (completed=29/1, failed=0)"} {"timestamp": "2026-08-06T22:54:51.671080+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 106 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-08-06T22:54:51.689098+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_sync_service", "message": "Skipping scene_still sync: scene_detail 데이터 없음 (cascade or pre-analysis). Existing rows preserved."} {"timestamp": "2026-08-06T22:54:51.748292+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 29 outlooks + 35 character-outlook links (Δ +30 / -26)"} {"timestamp": "2026-08-06T22:54:51.793957+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 51 total short_ids found"} {"timestamp": "2026-08-06T22:54:51.800012+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode d6a9aa85-b75e-400c-980c-4ee7e876a15b status NOT advanced — incomplete steps: ['scene_camera_flow', 'shot_dependency', 'shot_staging', 'scene_consistency', 'scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_site_layout', 'outdoor_place_spec', 'outdoor_lane_plan', 'shot_ref_classify', 'background_share_plan', 'background_classify', 'background_master_plan', 'floor_plan_prompt', 'floor_plan_overlay_payload', 'base_location_dossier', 'floor_plan_geometry_readback', 'floor_plan_semantic_readback', 'shot_projection_card', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-08-06T22:54:51.802310+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode d6a9aa85, step=outlook_phase3, repaired=0)"} INFO: 127.0.0.1:63169 - "POST /api/v1/auth/login HTTP/1.1" 200 OK {"timestamp": "2026-08-06T22:55:54.098222+00:00", "level": "WARNING", "logger": "app.core.steps.scene_context_loader", "message": "scene_detail: shot_dependency_t2i checkpoint is STALE — 이전 scene_detail 기반 ref_usage를 사용 중. drift 방지를 위해 scene_detail 완료 후 shot_dependency_t2i도 force 재실행 권장."} {"timestamp": "2026-08-06T22:55:54.103640+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "scene_detail: 255 shot_staging entries loaded"} {"timestamp": "2026-08-06T22:55:54.105320+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "scene_detail: 94 scenes with fixed elements loaded"} {"timestamp": "2026-08-06T22:55:54.123674+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "_load_chain_bg_guide_by_shot: 150 shot guides loaded (0 skipped warnings)"} {"timestamp": "2026-08-06T22:55:54.127992+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "_load_chain_bg_camera_meta_by_shot: 68 shots with camera meta loaded (0 skipped warnings)"} {"timestamp": "2026-08-06T22:55:54.130186+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "_load_chain_bg_owned_by_shot: 150 shots mapped from 71 backgrounds"} {"timestamp": "2026-08-06T22:55:54.131791+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "_load_chain_bg_id_by_shot: 150 shots mapped to bg_id from 71 backgrounds"} {"timestamp": "2026-08-06T22:55:54.140500+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "scene_detail: 21 prop term maps loaded for Task 14 namespace reconciliation"} {"timestamp": "2026-08-06T22:55:54.147787+00:00", "level": "INFO", "logger": "app.services.scene_detail_redo_service", "message": "scene_detail redo-shot: project=e716bafb-24bb-42b7-aea0-fdb383844ee8 episode=d6a9aa85-b75e-400c-980c-4ee7e876a15b S11_Shot3 (mode=force)"} 07:55:54 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-06T22:55:54.153104+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 07:56:31 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T22:56:31.399719+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 07:56:31 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-06T22:56:31.402888+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-06T22:56:31.423734+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "Scene 11: 제거할 ID: C03O00 — retry"} 07:56:31 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-06T22:56:31.426138+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 07:57:13 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T22:57:13.031428+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 07:57:13 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-06T22:57:13.034565+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-06T22:57:13.056879+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "씬 11: C03 아웃룩 없음 — 할당 제거"} {"timestamp": "2026-08-06T22:57:13.057148+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "씬 11: C03 아웃룩 없음 — t2i_prompt에서 bare ID 유지"} 07:57:13 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-08-06T22:57:13.069049+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 07:57:21 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T22:57:21.418048+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 07:57:21 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-08-06T22:57:21.420545+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} INFO: 127.0.0.1:63171 - "POST /api/v1/projects/e716bafb-24bb-42b7-aea0-fdb383844ee8/episodes/d6a9aa85-b75e-400c-980c-4ee7e876a15b/steps/scene-detail/redo-shot?scene_index=11&shot_index=3&mode=force HTTP/1.1" 400 Bad Request {"timestamp": "2026-08-06T22:57:21.457239+00:00", "level": "WARNING", "logger": "app.core.steps.scene_context_loader", "message": "scene_detail: shot_dependency_t2i checkpoint is STALE — 이전 scene_detail 기반 ref_usage를 사용 중. drift 방지를 위해 scene_detail 완료 후 shot_dependency_t2i도 force 재실행 권장."} {"timestamp": "2026-08-06T22:57:21.468943+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "scene_detail: 255 shot_staging entries loaded"} {"timestamp": "2026-08-06T22:57:21.472116+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "scene_detail: 94 scenes with fixed elements loaded"} {"timestamp": "2026-08-06T22:57:21.621794+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "_load_chain_bg_guide_by_shot: 150 shot guides loaded (0 skipped warnings)"} {"timestamp": "2026-08-06T22:57:21.626058+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "_load_chain_bg_camera_meta_by_shot: 68 shots with camera meta loaded (0 skipped warnings)"} {"timestamp": "2026-08-06T22:57:21.628305+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "_load_chain_bg_owned_by_shot: 150 shots mapped from 71 backgrounds"} {"timestamp": "2026-08-06T22:57:21.629883+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "_load_chain_bg_id_by_shot: 150 shots mapped to bg_id from 71 backgrounds"} {"timestamp": "2026-08-06T22:57:21.637807+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "scene_detail: 21 prop term maps loaded for Task 14 namespace reconciliation"} {"timestamp": "2026-08-06T22:57:21.644871+00:00", "level": "INFO", "logger": "app.services.scene_detail_redo_service", "message": "scene_detail redo-shot: project=e716bafb-24bb-42b7-aea0-fdb383844ee8 episode=d6a9aa85-b75e-400c-980c-4ee7e876a15b S15_Shot5 (mode=force)"} {"timestamp": "2026-08-06T22:57:21.645187+00:00", "level": "WARNING", "logger": "app.core.frame_spatial_contract", "message": "frame_spatial_contract: dropping constraint for non-shot-visible character target C01 (visible=['C08'])"} 07:57:21 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-06T22:57:21.650006+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 07:58:03 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T22:58:03.974474+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 07:58:03 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-06T22:58:03.977237+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-06T22:58:04.002034+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "Scene 15: 제거할 ID: L01 — retry"} 07:58:04 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-06T22:58:04.004568+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 07:59:33 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T22:59:33.596259+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 07:59:33 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-06T22:59:33.598187+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-06T22:59:33.619716+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "Scene 15: retry 후에도 위반 {'L11'} — 강제 제거"} {"timestamp": "2026-08-06T22:59:33.619991+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "scene_detail S15 shot5 variation var_1 frame_spatial_contract phrase diagnostic: {'constraint_id': 'fsc_001', 'label_missing': True, 'zone_missing': False, 'depth_missing': False}"} {"timestamp": "2026-08-06T22:59:33.620333+00:00", "level": "WARNING", "logger": "app.core.frame_spatial_contract", "message": "frame_spatial_contract: dropping constraint for non-shot-visible character target C01 (visible=['C08'])"} {"timestamp": "2026-08-06T22:59:33.764020+00:00", "level": "INFO", "logger": "app.services.scene_detail_redo_service", "message": "scene_detail redo-shot: manifest replaced (S15_Shot5, total=255, dirty=0, manifest_status=completed)"} {"timestamp": "2026-08-06T22:59:33.854675+00:00", "level": "INFO", "logger": "app.services.scene_persistence_service", "message": "delete_orphan_entity_assets: removed 8 orphan rows (project=e716bafb-24bb-42b7-aea0-fdb383844ee8)"} {"timestamp": "2026-08-06T22:59:33.854762+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "entity sync: cleaned 8 orphan reference/composite asset row(s) (unexpected — investigate parent entity removal source)"} {"timestamp": "2026-08-06T22:59:33.854795+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 106 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-08-06T22:59:34.000588+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced 977 scene_stills (shot-based) to DB"} {"timestamp": "2026-08-06T22:59:34.082402+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced scene_summary from checkpoint"} {"timestamp": "2026-08-06T22:59:34.111479+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 29 outlooks + 35 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-08-06T22:59:34.137343+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 3 entities updated, 51 total short_ids found"} {"timestamp": "2026-08-06T22:59:34.144052+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode d6a9aa85-b75e-400c-980c-4ee7e876a15b status NOT advanced — incomplete steps: ['scene_camera_flow', 'shot_dependency', 'shot_staging', 'scene_consistency', 'scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_site_layout', 'outdoor_place_spec', 'outdoor_lane_plan', 'shot_ref_classify', 'background_share_plan', 'background_classify', 'background_master_plan', 'floor_plan_prompt', 'floor_plan_overlay_payload', 'base_location_dossier', 'floor_plan_geometry_readback', 'floor_plan_semantic_readback', 'shot_projection_card', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-08-06T22:59:34.145201+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode d6a9aa85, step=scene_detail, repaired=0)"} {"timestamp": "2026-08-06T22:59:34.150528+00:00", "level": "INFO", "logger": "app.services.scene_detail_redo_service", "message": "scene_detail redo-shot: step_run promoted to status='completed' (completed=255, failed=0) project=e716bafb-24bb-42b7-aea0-fdb383844ee8 episode=d6a9aa85-b75e-400c-980c-4ee7e876a15b"} INFO: 127.0.0.1:63201 - "POST /api/v1/projects/e716bafb-24bb-42b7-aea0-fdb383844ee8/episodes/d6a9aa85-b75e-400c-980c-4ee7e876a15b/steps/scene-detail/redo-shot?scene_index=15&shot_index=5&mode=force HTTP/1.1" 200 OK INFO: 127.0.0.1:63233 - "POST /api/v1/projects/e716bafb-24bb-42b7-aea0-fdb383844ee8/episodes/d6a9aa85-b75e-400c-980c-4ee7e876a15b/stills/761355ad-2242-4634-8312-661f7791f1e2/generate-image HTTP/1.1" 404 Not Found {"timestamp": "2026-08-06T22:59:34.162211+00:00", "level": "WARNING", "logger": "app.core.steps.scene_context_loader", "message": "scene_detail: shot_dependency_t2i checkpoint is STALE — 이전 scene_detail 기반 ref_usage를 사용 중. drift 방지를 위해 scene_detail 완료 후 shot_dependency_t2i도 force 재실행 권장."} {"timestamp": "2026-08-06T22:59:34.167225+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "scene_detail: 255 shot_staging entries loaded"} {"timestamp": "2026-08-06T22:59:34.169168+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "scene_detail: 94 scenes with fixed elements loaded"} {"timestamp": "2026-08-06T22:59:34.183951+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "_load_chain_bg_guide_by_shot: 150 shot guides loaded (0 skipped warnings)"} {"timestamp": "2026-08-06T22:59:34.188021+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "_load_chain_bg_camera_meta_by_shot: 68 shots with camera meta loaded (0 skipped warnings)"} {"timestamp": "2026-08-06T22:59:34.190247+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "_load_chain_bg_owned_by_shot: 150 shots mapped from 71 backgrounds"} {"timestamp": "2026-08-06T22:59:34.191905+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "_load_chain_bg_id_by_shot: 150 shots mapped to bg_id from 71 backgrounds"} {"timestamp": "2026-08-06T22:59:34.195550+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "scene_detail: 21 prop term maps loaded for Task 14 namespace reconciliation"} {"timestamp": "2026-08-06T22:59:34.202813+00:00", "level": "INFO", "logger": "app.services.scene_detail_redo_service", "message": "scene_detail redo-shot: project=e716bafb-24bb-42b7-aea0-fdb383844ee8 episode=d6a9aa85-b75e-400c-980c-4ee7e876a15b S88_Shot6 (mode=force)"} 07:59:34 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-06T22:59:34.207820+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 08:00:11 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T23:00:11.335986+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 08:00:11 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-06T23:00:11.339052+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-06T23:00:11.360078+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "Scene 88: 제거할 ID: C15O00 — retry"} 08:00:11 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-06T23:00:11.360967+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 08:00:45 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T23:00:45.534013+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 08:00:45 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-06T23:00:45.536870+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-06T23:00:45.561000+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "씬 88: C15 아웃룩 없음 — t2i_prompt에서 bare ID 유지"} INFO: 127.0.0.1:63235 - "POST /api/v1/projects/e716bafb-24bb-42b7-aea0-fdb383844ee8/episodes/d6a9aa85-b75e-400c-980c-4ee7e876a15b/steps/scene-detail/redo-shot?scene_index=88&shot_index=6&mode=force HTTP/1.1" 400 Bad Request {"timestamp": "2026-08-06T23:00:45.573760+00:00", "level": "WARNING", "logger": "app.core.steps.scene_context_loader", "message": "scene_detail: shot_dependency_t2i checkpoint is STALE — 이전 scene_detail 기반 ref_usage를 사용 중. drift 방지를 위해 scene_detail 완료 후 shot_dependency_t2i도 force 재실행 권장."} {"timestamp": "2026-08-06T23:00:45.578054+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "scene_detail: 255 shot_staging entries loaded"} {"timestamp": "2026-08-06T23:00:45.579429+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "scene_detail: 94 scenes with fixed elements loaded"} {"timestamp": "2026-08-06T23:00:45.592087+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "_load_chain_bg_guide_by_shot: 150 shot guides loaded (0 skipped warnings)"} {"timestamp": "2026-08-06T23:00:45.595899+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "_load_chain_bg_camera_meta_by_shot: 68 shots with camera meta loaded (0 skipped warnings)"} {"timestamp": "2026-08-06T23:00:45.597786+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "_load_chain_bg_owned_by_shot: 150 shots mapped from 71 backgrounds"} {"timestamp": "2026-08-06T23:00:45.599364+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "_load_chain_bg_id_by_shot: 150 shots mapped to bg_id from 71 backgrounds"} {"timestamp": "2026-08-06T23:00:45.602820+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "scene_detail: 21 prop term maps loaded for Task 14 namespace reconciliation"} {"timestamp": "2026-08-06T23:00:45.609718+00:00", "level": "INFO", "logger": "app.services.scene_detail_redo_service", "message": "scene_detail redo-shot: project=e716bafb-24bb-42b7-aea0-fdb383844ee8 episode=d6a9aa85-b75e-400c-980c-4ee7e876a15b S7_Shot1 (mode=force)"} 08:00:45 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-06T23:00:45.614573+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 08:01:17 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T23:01:17.914639+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 08:01:17 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-06T23:01:17.918284+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-06T23:01:17.937440+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "Scene 7: 제거할 ID: C03O00, C04O00, L08 — retry"} 08:01:17 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-06T23:01:17.938445+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 08:02:06 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T23:02:06.505978+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 08:02:06 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-06T23:02:06.509093+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-06T23:02:06.531837+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "Scene 7: retry 후에도 위반 {'C04O01', 'C03O01'} — 강제 제거"} 08:02:06 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-08-06T23:02:06.537141+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 08:02:10 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T23:02:10.679212+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 08:02:10 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-08-06T23:02:10.681315+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} INFO: 127.0.0.1:63255 - "POST /api/v1/projects/e716bafb-24bb-42b7-aea0-fdb383844ee8/episodes/d6a9aa85-b75e-400c-980c-4ee7e876a15b/steps/scene-detail/redo-shot?scene_index=7&shot_index=1&mode=force HTTP/1.1" 400 Bad Request {"timestamp": "2026-08-06T23:02:10.713541+00:00", "level": "WARNING", "logger": "app.core.steps.scene_context_loader", "message": "scene_detail: shot_dependency_t2i checkpoint is STALE — 이전 scene_detail 기반 ref_usage를 사용 중. drift 방지를 위해 scene_detail 완료 후 shot_dependency_t2i도 force 재실행 권장."} {"timestamp": "2026-08-06T23:02:10.723040+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "scene_detail: 255 shot_staging entries loaded"} {"timestamp": "2026-08-06T23:02:10.726085+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "scene_detail: 94 scenes with fixed elements loaded"} {"timestamp": "2026-08-06T23:02:10.743432+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "_load_chain_bg_guide_by_shot: 150 shot guides loaded (0 skipped warnings)"} {"timestamp": "2026-08-06T23:02:10.747298+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "_load_chain_bg_camera_meta_by_shot: 68 shots with camera meta loaded (0 skipped warnings)"} {"timestamp": "2026-08-06T23:02:10.749207+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "_load_chain_bg_owned_by_shot: 150 shots mapped from 71 backgrounds"} {"timestamp": "2026-08-06T23:02:10.750793+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "_load_chain_bg_id_by_shot: 150 shots mapped to bg_id from 71 backgrounds"} {"timestamp": "2026-08-06T23:02:10.754165+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "scene_detail: 21 prop term maps loaded for Task 14 namespace reconciliation"} {"timestamp": "2026-08-06T23:02:10.761050+00:00", "level": "INFO", "logger": "app.services.scene_detail_redo_service", "message": "scene_detail redo-shot: project=e716bafb-24bb-42b7-aea0-fdb383844ee8 episode=d6a9aa85-b75e-400c-980c-4ee7e876a15b S8_Shot1 (mode=force)"} 08:02:10 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-06T23:02:10.766051+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 08:02:44 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T23:02:44.063596+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 08:02:44 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-06T23:02:44.067347+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-06T23:02:44.091490+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "Scene 8: 제거할 ID: C01O00, C03O00 — retry"} 08:02:44 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-06T23:02:44.094464+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 08:03:51 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T23:03:51.045859+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 08:03:51 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-06T23:03:51.050020+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-06T23:03:51.069827+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "Scene 8: retry 후에도 위반 {'C03O01', 'C01O01'} — 강제 제거"} {"timestamp": "2026-08-06T23:03:51.070093+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "scene_detail S8 shot1 variation var_1 frame_spatial_contract phrase diagnostic: {'constraint_id': 'fsc_001', 'label_missing': True, 'zone_missing': False, 'depth_missing': False}"} {"timestamp": "2026-08-06T23:03:51.070193+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "scene_detail S8 shot1 variation var_1 frame_spatial_contract phrase diagnostic: {'constraint_id': 'fsc_002', 'label_missing': True, 'zone_missing': False, 'depth_missing': False}"} 08:03:51 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-08-06T23:03:51.082920+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 08:03:59 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T23:03:59.328452+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 08:03:59 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-08-06T23:03:59.330162+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} INFO: 127.0.0.1:63283 - "POST /api/v1/projects/e716bafb-24bb-42b7-aea0-fdb383844ee8/episodes/d6a9aa85-b75e-400c-980c-4ee7e876a15b/steps/scene-detail/redo-shot?scene_index=8&shot_index=1&mode=force HTTP/1.1" 400 Bad Request {"timestamp": "2026-08-06T23:03:59.359717+00:00", "level": "WARNING", "logger": "app.core.steps.scene_context_loader", "message": "scene_detail: shot_dependency_t2i checkpoint is STALE — 이전 scene_detail 기반 ref_usage를 사용 중. drift 방지를 위해 scene_detail 완료 후 shot_dependency_t2i도 force 재실행 권장."} {"timestamp": "2026-08-06T23:03:59.370605+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "scene_detail: 255 shot_staging entries loaded"} {"timestamp": "2026-08-06T23:03:59.374781+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "scene_detail: 94 scenes with fixed elements loaded"} {"timestamp": "2026-08-06T23:03:59.396579+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "_load_chain_bg_guide_by_shot: 150 shot guides loaded (0 skipped warnings)"} {"timestamp": "2026-08-06T23:03:59.402177+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "_load_chain_bg_camera_meta_by_shot: 68 shots with camera meta loaded (0 skipped warnings)"} {"timestamp": "2026-08-06T23:03:59.405942+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "_load_chain_bg_owned_by_shot: 150 shots mapped from 71 backgrounds"} {"timestamp": "2026-08-06T23:03:59.408880+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "_load_chain_bg_id_by_shot: 150 shots mapped to bg_id from 71 backgrounds"} {"timestamp": "2026-08-06T23:03:59.418345+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "scene_detail: 21 prop term maps loaded for Task 14 namespace reconciliation"} {"timestamp": "2026-08-06T23:03:59.428714+00:00", "level": "INFO", "logger": "app.services.scene_detail_redo_service", "message": "scene_detail redo-shot: project=e716bafb-24bb-42b7-aea0-fdb383844ee8 episode=d6a9aa85-b75e-400c-980c-4ee7e876a15b S9_Shot6 (mode=force)"} 08:03:59 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-06T23:03:59.434615+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 08:05:17 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T23:05:17.222665+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 08:05:17 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-06T23:05:17.226783+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-06T23:05:17.252431+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "Scene 9: 제거할 ID: C04O00 — retry"} 08:05:17 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-06T23:05:17.255194+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 08:06:09 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T23:06:09.588517+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 08:06:09 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-06T23:06:09.590978+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-06T23:06:09.611654+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "scene_detail S9 shot6 variation var_1 frame_spatial_contract phrase diagnostic: {'constraint_id': 'fsc_002', 'label_missing': True, 'zone_missing': False, 'depth_missing': False}"} {"timestamp": "2026-08-06T23:06:09.611860+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "scene_detail S9 shot6 variation var_1 frame_spatial_contract phrase diagnostic: {'constraint_id': 'fsc_003', 'label_missing': True, 'zone_missing': False, 'depth_missing': False}"} {"timestamp": "2026-08-06T23:06:09.612015+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "씬 9: C04 아웃룩 없음 — t2i_prompt에서 bare ID 유지"} 08:06:09 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-08-06T23:06:09.619054+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 08:06:15 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T23:06:15.082928+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 08:06:15 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-08-06T23:06:15.084336+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} INFO: 127.0.0.1:63313 - "POST /api/v1/projects/e716bafb-24bb-42b7-aea0-fdb383844ee8/episodes/d6a9aa85-b75e-400c-980c-4ee7e876a15b/steps/scene-detail/redo-shot?scene_index=9&shot_index=6&mode=force HTTP/1.1" 400 Bad Request {"timestamp": "2026-08-06T23:06:15.116038+00:00", "level": "WARNING", "logger": "app.core.steps.scene_context_loader", "message": "scene_detail: shot_dependency_t2i checkpoint is STALE — 이전 scene_detail 기반 ref_usage를 사용 중. drift 방지를 위해 scene_detail 완료 후 shot_dependency_t2i도 force 재실행 권장."} {"timestamp": "2026-08-06T23:06:15.130050+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "scene_detail: 255 shot_staging entries loaded"} {"timestamp": "2026-08-06T23:06:15.133239+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "scene_detail: 94 scenes with fixed elements loaded"} {"timestamp": "2026-08-06T23:06:15.159709+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "_load_chain_bg_guide_by_shot: 150 shot guides loaded (0 skipped warnings)"} {"timestamp": "2026-08-06T23:06:15.165824+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "_load_chain_bg_camera_meta_by_shot: 68 shots with camera meta loaded (0 skipped warnings)"} {"timestamp": "2026-08-06T23:06:15.169158+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "_load_chain_bg_owned_by_shot: 150 shots mapped from 71 backgrounds"} {"timestamp": "2026-08-06T23:06:15.171639+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "_load_chain_bg_id_by_shot: 150 shots mapped to bg_id from 71 backgrounds"} {"timestamp": "2026-08-06T23:06:15.180869+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "scene_detail: 21 prop term maps loaded for Task 14 namespace reconciliation"} {"timestamp": "2026-08-06T23:06:15.191199+00:00", "level": "INFO", "logger": "app.services.scene_detail_redo_service", "message": "scene_detail redo-shot: project=e716bafb-24bb-42b7-aea0-fdb383844ee8 episode=d6a9aa85-b75e-400c-980c-4ee7e876a15b S12_Shot10 (mode=force)"} 08:06:15 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-06T23:06:15.197797+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 08:07:18 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T23:07:18.210135+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 08:07:18 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-06T23:07:18.211541+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-06T23:07:18.227367+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "Scene 12: 제거할 ID: C01O00, L01 — retry"} 08:07:18 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-06T23:07:18.229086+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 08:08:15 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T23:08:15.201629+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 08:08:15 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-06T23:08:15.204431+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-06T23:08:15.226984+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "Scene 12: retry 후에도 위반 {'L11'} — 강제 제거"} {"timestamp": "2026-08-06T23:08:15.227257+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "scene_detail S12 shot10 variation var_1 frame_spatial_contract phrase diagnostic: {'constraint_id': 'fsc_001', 'label_missing': True, 'zone_missing': False, 'depth_missing': False}"} {"timestamp": "2026-08-06T23:08:15.227374+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "scene_detail S12 shot10 variation var_1 frame_spatial_contract phrase diagnostic: {'constraint_id': 'fsc_002', 'label_missing': True, 'zone_missing': False, 'depth_missing': False}"} {"timestamp": "2026-08-06T23:08:15.227546+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "씬 12: C01 아웃룩 없음 — t2i_prompt에서 bare ID 유지"} INFO: 127.0.0.1:63345 - "POST /api/v1/projects/e716bafb-24bb-42b7-aea0-fdb383844ee8/episodes/d6a9aa85-b75e-400c-980c-4ee7e876a15b/steps/scene-detail/redo-shot?scene_index=12&shot_index=10&mode=force HTTP/1.1" 400 Bad Request {"timestamp": "2026-08-06T23:08:15.256004+00:00", "level": "WARNING", "logger": "app.core.steps.scene_context_loader", "message": "scene_detail: shot_dependency_t2i checkpoint is STALE — 이전 scene_detail 기반 ref_usage를 사용 중. drift 방지를 위해 scene_detail 완료 후 shot_dependency_t2i도 force 재실행 권장."} {"timestamp": "2026-08-06T23:08:15.266368+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "scene_detail: 255 shot_staging entries loaded"} {"timestamp": "2026-08-06T23:08:15.269964+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "scene_detail: 94 scenes with fixed elements loaded"} {"timestamp": "2026-08-06T23:08:15.291506+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "_load_chain_bg_guide_by_shot: 150 shot guides loaded (0 skipped warnings)"} {"timestamp": "2026-08-06T23:08:15.297098+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "_load_chain_bg_camera_meta_by_shot: 68 shots with camera meta loaded (0 skipped warnings)"} {"timestamp": "2026-08-06T23:08:15.299691+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "_load_chain_bg_owned_by_shot: 150 shots mapped from 71 backgrounds"} {"timestamp": "2026-08-06T23:08:15.301496+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "_load_chain_bg_id_by_shot: 150 shots mapped to bg_id from 71 backgrounds"} {"timestamp": "2026-08-06T23:08:15.310733+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "scene_detail: 21 prop term maps loaded for Task 14 namespace reconciliation"} {"timestamp": "2026-08-06T23:08:15.320171+00:00", "level": "INFO", "logger": "app.services.scene_detail_redo_service", "message": "scene_detail redo-shot: project=e716bafb-24bb-42b7-aea0-fdb383844ee8 episode=d6a9aa85-b75e-400c-980c-4ee7e876a15b S17_Shot6 (mode=force)"} 08:08:15 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-06T23:08:15.326221+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 08:09:07 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T23:09:07.386720+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 08:09:07 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-06T23:09:07.389779+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-06T23:09:07.413537+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "Scene 17: 제거할 ID: C01O00, L14 — retry"} 08:09:07 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-06T23:09:07.416162+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 08:09:45 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T23:09:45.713125+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 08:09:45 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-06T23:09:45.716508+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-06T23:09:45.740411+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "scene_detail S17 shot6 variation var_1 frame_spatial_contract phrase diagnostic: {'constraint_id': 'fsc_002', 'label_missing': True, 'zone_missing': False, 'depth_missing': False}"} {"timestamp": "2026-08-06T23:09:45.740819+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "scene_detail S17 shot6 variation var_1 frame_spatial_contract phrase diagnostic: {'constraint_id': 'fsc_003', 'label_missing': True, 'zone_missing': False, 'depth_missing': False}"} {"timestamp": "2026-08-06T23:09:45.741096+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "씬 17: C01 아웃룩 없음 — t2i_prompt에서 bare ID 유지"} 08:09:45 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-08-06T23:09:45.752896+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 08:09:53 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T23:09:53.090105+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 08:09:53 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-08-06T23:09:53.092143+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} INFO: 127.0.0.1:63378 - "POST /api/v1/projects/e716bafb-24bb-42b7-aea0-fdb383844ee8/episodes/d6a9aa85-b75e-400c-980c-4ee7e876a15b/steps/scene-detail/redo-shot?scene_index=17&shot_index=6&mode=force HTTP/1.1" 400 Bad Request INFO: Shutting down INFO: Waiting for application shutdown. INFO: Application shutdown complete. INFO: Finished server process [10218] /Users/manta/Documents/Projects/TheRoad-I1/backend/app/api/v1/prompts.py:19: UserWarning: Field name "schema_json" in "PromptCreate" shadows an attribute in parent "BaseModel" class PromptCreate(BaseModel): /Users/manta/Documents/Projects/TheRoad-I1/backend/app/api/v1/prompts.py:27: UserWarning: Field name "schema_json" in "PromptUpdate" shadows an attribute in parent "BaseModel" class PromptUpdate(BaseModel): INFO: Started server process [88907] INFO: Waiting for application startup. {"timestamp": "2026-08-06T23:21:30.770688+00:00", "level": "WARNING", "logger": "app.main", "message": "SECURITY: insecure default credentials in use — DEFAULT_ADMIN_PASSWORD, DEFAULT_CREATOR_PASSWORD. Override via env vars before exposing this server."} INFO: Application startup complete. INFO: Uvicorn running on http://0.0.0.0:8000 (Press CTRL+C to quit) INFO: 127.0.0.1:63578 - "POST /api/v1/auth/login HTTP/1.1" 200 OK {"timestamp": "2026-08-06T23:21:55.768921+00:00", "level": "WARNING", "logger": "app.core.step_runner", "message": "Step outlook_phase2: manifest.json missing/empty/corrupt. Auto-restored from archive manifest_20260807_074742.json"} INFO: 127.0.0.1:63580 - "POST /api/v1/projects/e716bafb-24bb-42b7-aea0-fdb383844ee8/episodes/d6a9aa85-b75e-400c-980c-4ee7e876a15b/steps/outlook_phase2?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-08-06T23:21:55.781491+00:00", "level": "WARNING", "logger": "app.core.step_runner", "message": "Step outlook_phase3: manifest.json missing/empty/corrupt. Auto-restored from archive manifest_20260807_074742.json"} INFO: 127.0.0.1:63582 - "POST /api/v1/projects/e716bafb-24bb-42b7-aea0-fdb383844ee8/episodes/d6a9aa85-b75e-400c-980c-4ee7e876a15b/steps/outlook_phase3?mode=resume HTTP/1.1" 200 OK INFO: Shutting down INFO: Waiting for application shutdown. INFO: Application shutdown complete. INFO: Finished server process [88907] /Users/manta/Documents/Projects/TheRoad-I1/backend/app/api/v1/prompts.py:19: UserWarning: Field name "schema_json" in "PromptCreate" shadows an attribute in parent "BaseModel" class PromptCreate(BaseModel): /Users/manta/Documents/Projects/TheRoad-I1/backend/app/api/v1/prompts.py:27: UserWarning: Field name "schema_json" in "PromptUpdate" shadows an attribute in parent "BaseModel" class PromptUpdate(BaseModel): INFO: Started server process [90173] INFO: Waiting for application startup. {"timestamp": "2026-08-06T23:26:56.954083+00:00", "level": "WARNING", "logger": "app.main", "message": "SECURITY: insecure default credentials in use — DEFAULT_ADMIN_PASSWORD, DEFAULT_CREATOR_PASSWORD. Override via env vars before exposing this server."} INFO: Application startup complete. INFO: Uvicorn running on http://0.0.0.0:8000 (Press CTRL+C to quit) INFO: 127.0.0.1:63648 - "POST /api/v1/auth/login HTTP/1.1" 200 OK {"timestamp": "2026-08-06T23:27:11.684907+00:00", "level": "WARNING", "logger": "app.core.step_runner", "message": "Step outlook_phase2: manifest.json missing/empty/corrupt. Auto-restored from archive manifest_20260807_074742.json"} INFO: 127.0.0.1:63650 - "POST /api/v1/projects/e716bafb-24bb-42b7-aea0-fdb383844ee8/episodes/d6a9aa85-b75e-400c-980c-4ee7e876a15b/steps/outlook_phase2?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-08-06T23:27:11.697988+00:00", "level": "WARNING", "logger": "app.core.step_runner", "message": "Step outlook_phase3: manifest.json missing/empty/corrupt. Auto-restored from archive manifest_20260807_074742.json"} INFO: 127.0.0.1:63652 - "POST /api/v1/projects/e716bafb-24bb-42b7-aea0-fdb383844ee8/episodes/d6a9aa85-b75e-400c-980c-4ee7e876a15b/steps/outlook_phase3?mode=resume HTTP/1.1" 200 OK INFO: 127.0.0.1:63669 - "POST /api/v1/auth/login HTTP/1.1" 200 OK {"timestamp": "2026-08-06T23:29:18.860234+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:e716bafb-24bb-42b7-aea0-fdb383844ee8:d6a9aa85-b75e-400c-980c-4ee7e876a15b:outlook_phase2 (Step outlook_phase2 for d6a9aa85-b75e-400c-980c-4ee7e876a15b)"} INFO: 127.0.0.1:63671 - "POST /api/v1/projects/e716bafb-24bb-42b7-aea0-fdb383844ee8/episodes/d6a9aa85-b75e-400c-980c-4ee7e876a15b/steps/outlook_phase2?mode=force HTTP/1.1" 200 OK {"timestamp": "2026-08-06T23:29:18.921219+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 106 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-08-06T23:29:19.071896+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced 977 scene_stills (shot-based) to DB"} {"timestamp": "2026-08-06T23:29:19.159060+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced scene_summary from checkpoint"} {"timestamp": "2026-08-06T23:29:19.190379+00:00", "level": "WARNING", "logger": "app.core.name_matcher", "message": "name_index collision: key='검은한복' kept existing entry, skipped new from raw='검은한복'"} {"timestamp": "2026-08-06T23:29:19.206429+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 35 outlooks + 39 character-outlook links (Δ +34 / -28)"} {"timestamp": "2026-08-06T23:29:19.238769+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 5 entities updated, 51 total short_ids found"} {"timestamp": "2026-08-06T23:29:19.254543+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode d6a9aa85-b75e-400c-980c-4ee7e876a15b status NOT advanced — incomplete steps: ['scene_camera_flow', 'shot_dependency', 'shot_staging', 'scene_consistency', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_site_layout', 'outdoor_place_spec', 'outdoor_lane_plan', 'shot_ref_classify', 'background_share_plan', 'background_classify', 'background_master_plan', 'floor_plan_prompt', 'floor_plan_overlay_payload', 'base_location_dossier', 'floor_plan_geometry_readback', 'floor_plan_semantic_readback', 'shot_projection_card', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-08-06T23:29:19.256291+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode d6a9aa85, step=-, repaired=0)"} {"timestamp": "2026-08-06T23:29:19.276639+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Invalidated 13 downstream steps from outlook_phase2 (delete_cp=True): ['character_state_variant', 'composite_image_gen', 'outdoor_site_layout', 'outlook_dedup', 'outlook_phase3', 'scene_detail', 'scene_image_pipeline', 'scene_verify', 'shot_dependency_t2i', 'space_set_bg', 't2i_review', 'world_guide', 'zoom_continuity_anchor']"} {"timestamp": "2026-08-06T23:29:19.278485+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step outlook_phase2 started (run_id=aca06a62-407a-4ebc-a6e5-fb71cae1314e, model=gemini-pro)"} {"timestamp": "2026-08-06T23:29:19.282417+00:00", "level": "INFO", "logger": "app.core.steps.outlook_steps", "message": "Outlook phase2: mapping 36 outlooks to 113 scenes (O00: 6 chars excluded)"} {"timestamp": "2026-08-06T23:29:19.283302+00:00", "level": "INFO", "logger": "app.modules.llm.llm_client", "message": "Opik callback enabled (project: theroad-scene-lab)"} 08:29:19 - LiteLLM Router:INFO: router.py:812 - Routing strategy: simple-shuffle {"timestamp": "2026-08-06T23:29:19.303462+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "Routing strategy: simple-shuffle"} {"timestamp": "2026-08-06T23:29:19.303655+00:00", "level": "INFO", "logger": "app.modules.llm.llm_client", "message": "LiteLLM Router initialized: 12 deployments (1 Gemini keys, OpenAI=True slot=primary/2)"} 08:29:19 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-06T23:29:19.315922+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 08:33:33 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T23:33:33.607252+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 08:33:33 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK OPIK: Started logging traces to the "theroad-scene-lab" project at https://www.comet.com/opik/api/v1/session/redirect/projects/?trace_id=06a7519c-d9c4-7189-8000-2e3f79f05b6e&path=aHR0cHM6Ly93d3cuY29tZXQuY29tL29waWsvYXBpLw==. {"timestamp": "2026-08-06T23:33:33.612146+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-06T23:33:33.639460+00:00", "level": "INFO", "logger": "app.core.steps.outlook_steps", "message": "Outlook phase2 complete: 113 scene assignments"} {"timestamp": "2026-08-06T23:33:33.639761+00:00", "level": "WARNING", "logger": "app.core.steps.outlook_steps", "message": "Outlook phase2 retry 1/3: 12씬 누락"} 08:33:33 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-06T23:33:33.643492+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 08:34:52 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T23:34:52.753521+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 08:34:52 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-06T23:34:52.755955+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-06T23:34:52.772733+00:00", "level": "INFO", "logger": "app.core.steps.outlook_steps", "message": "Outlook phase2 retry 1: 12/12 복구"} {"timestamp": "2026-08-06T23:34:52.773400+00:00", "level": "WARNING", "logger": "app.core.steps.outlook_steps", "message": "Outlook phase2 retry 2/3: 8씬 누락"} 08:34:52 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-06T23:34:52.778005+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 08:35:59 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T23:35:59.223143+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 08:35:59 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-06T23:35:59.225974+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-06T23:35:59.238459+00:00", "level": "INFO", "logger": "app.core.steps.outlook_steps", "message": "Outlook phase2 retry 2: 7/8 복구"} {"timestamp": "2026-08-06T23:35:59.238864+00:00", "level": "WARNING", "logger": "app.core.steps.outlook_steps", "message": "Outlook phase2 retry 3/3: 6씬 누락"} 08:35:59 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-06T23:35:59.242159+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 08:36:48 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T23:36:48.076131+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 08:36:48 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-06T23:36:48.079388+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-06T23:36:48.091225+00:00", "level": "INFO", "logger": "app.core.steps.outlook_steps", "message": "Outlook phase2 retry 3: 6/6 복구"} {"timestamp": "2026-08-06T23:36:48.091627+00:00", "level": "INFO", "logger": "app.core.steps.outlook_steps", "message": "O00 injected into 13 scene-character slots"} {"timestamp": "2026-08-06T23:36:48.107826+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step outlook_phase2 completed (completed=113/113, failed=0)"} {"timestamp": "2026-08-06T23:36:48.216205+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 106 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-08-06T23:36:48.239586+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_sync_service", "message": "Skipping scene_still sync: scene_detail 데이터 없음 (cascade or pre-analysis). Existing rows preserved."} {"timestamp": "2026-08-06T23:36:48.278006+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 51 total short_ids found"} {"timestamp": "2026-08-06T23:36:48.285035+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode d6a9aa85-b75e-400c-980c-4ee7e876a15b status NOT advanced — incomplete steps: ['scene_camera_flow', 'shot_dependency', 'outlook_phase3', 'shot_staging', 'scene_consistency', 'scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_site_layout', 'outdoor_place_spec', 'outdoor_lane_plan', 'shot_ref_classify', 'background_share_plan', 'background_classify', 'background_master_plan', 'floor_plan_prompt', 'floor_plan_overlay_payload', 'base_location_dossier', 'floor_plan_geometry_readback', 'floor_plan_semantic_readback', 'shot_projection_card', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-08-06T23:36:48.291914+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode d6a9aa85, step=outlook_phase2, repaired=0)"} {"timestamp": "2026-08-06T23:36:59.039792+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:e716bafb-24bb-42b7-aea0-fdb383844ee8:d6a9aa85-b75e-400c-980c-4ee7e876a15b:outlook_phase3 (Step outlook_phase3 for d6a9aa85-b75e-400c-980c-4ee7e876a15b)"} INFO: 127.0.0.1:63793 - "POST /api/v1/projects/e716bafb-24bb-42b7-aea0-fdb383844ee8/episodes/d6a9aa85-b75e-400c-980c-4ee7e876a15b/steps/outlook_phase3?mode=force HTTP/1.1" 200 OK {"timestamp": "2026-08-06T23:36:59.162556+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 106 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-08-06T23:36:59.183374+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_sync_service", "message": "Skipping scene_still sync: scene_detail 데이터 없음 (cascade or pre-analysis). Existing rows preserved."} {"timestamp": "2026-08-06T23:36:59.222984+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 51 total short_ids found"} {"timestamp": "2026-08-06T23:36:59.228688+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode d6a9aa85-b75e-400c-980c-4ee7e876a15b status NOT advanced — incomplete steps: ['scene_camera_flow', 'shot_dependency', 'outlook_phase3', 'shot_staging', 'scene_consistency', 'scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_site_layout', 'outdoor_place_spec', 'outdoor_lane_plan', 'shot_ref_classify', 'background_share_plan', 'background_classify', 'background_master_plan', 'floor_plan_prompt', 'floor_plan_overlay_payload', 'base_location_dossier', 'floor_plan_geometry_readback', 'floor_plan_semantic_readback', 'shot_projection_card', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-08-06T23:36:59.230467+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode d6a9aa85, step=-, repaired=0)"} {"timestamp": "2026-08-06T23:36:59.237279+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Invalidated 12 downstream steps from outlook_phase3 (delete_cp=True): ['character_state_variant', 'composite_image_gen', 'outdoor_site_layout', 'outlook_dedup', 'scene_detail', 'scene_image_pipeline', 'scene_verify', 'shot_dependency_t2i', 'space_set_bg', 't2i_review', 'world_guide', 'zoom_continuity_anchor']"} {"timestamp": "2026-08-06T23:36:59.238888+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step outlook_phase3 started (run_id=07b1de26-2c62-4b52-bfbe-ed0b21bf590d, model=gemini-pro)"} {"timestamp": "2026-08-06T23:36:59.242171+00:00", "level": "INFO", "logger": "app.core.steps.outlook_steps", "message": "Outlook phase3: cleaning 36 outlooks, 113 assignments (O00 protected)"} 08:36:59 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-06T23:36:59.243803+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 08:37:10 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T23:37:10.596103+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 08:37:10 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-06T23:37:10.599382+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-06T23:37:10.607903+00:00", "level": "INFO", "logger": "app.modules.pipeline.outlook_extractor_v2", "message": "Phase3 code cleanup: 36→36 outlooks (removed 0, merged 0)"} {"timestamp": "2026-08-06T23:37:10.608150+00:00", "level": "INFO", "logger": "app.core.steps.outlook_steps", "message": "O00 (Null Outlook) preserved in phase3 result"} {"timestamp": "2026-08-06T23:37:10.608238+00:00", "level": "INFO", "logger": "app.core.steps.outlook_steps", "message": "Outlook phase3 complete: 37 outlooks (removed 0)"} {"timestamp": "2026-08-06T23:37:10.622406+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step outlook_phase3 completed (completed=37/1, failed=0)"} {"timestamp": "2026-08-06T23:37:10.683986+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 106 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-08-06T23:37:10.691753+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_sync_service", "message": "Skipping scene_still sync: scene_detail 데이터 없음 (cascade or pre-analysis). Existing rows preserved."} {"timestamp": "2026-08-06T23:37:10.726777+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 37 outlooks + 44 character-outlook links (Δ +37 / -32)"} {"timestamp": "2026-08-06T23:37:10.753483+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 51 total short_ids found"} {"timestamp": "2026-08-06T23:37:10.757314+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode d6a9aa85-b75e-400c-980c-4ee7e876a15b status NOT advanced — incomplete steps: ['scene_camera_flow', 'shot_dependency', 'shot_staging', 'scene_consistency', 'scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_site_layout', 'outdoor_place_spec', 'outdoor_lane_plan', 'shot_ref_classify', 'background_share_plan', 'background_classify', 'background_master_plan', 'floor_plan_prompt', 'floor_plan_overlay_payload', 'base_location_dossier', 'floor_plan_geometry_readback', 'floor_plan_semantic_readback', 'shot_projection_card', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-08-06T23:37:10.758881+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode d6a9aa85, step=outlook_phase3, repaired=0)"} INFO: 127.0.0.1:63811 - "POST /api/v1/auth/login HTTP/1.1" 200 OK {"timestamp": "2026-08-06T23:37:35.759457+00:00", "level": "ERROR", "logger": "asyncio", "message": "Task was destroyed but it is pending!\ntask: wait_for=>"} {"timestamp": "2026-08-06T23:37:35.761779+00:00", "level": "WARNING", "logger": "app.core.steps.scene_context_loader", "message": "scene_detail: shot_dependency_t2i checkpoint is STALE — 이전 scene_detail 기반 ref_usage를 사용 중. drift 방지를 위해 scene_detail 완료 후 shot_dependency_t2i도 force 재실행 권장."} {"timestamp": "2026-08-06T23:37:35.767838+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "scene_detail: 255 shot_staging entries loaded"} {"timestamp": "2026-08-06T23:37:35.769762+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "scene_detail: 94 scenes with fixed elements loaded"} {"timestamp": "2026-08-06T23:37:35.784819+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "_load_chain_bg_guide_by_shot: 150 shot guides loaded (0 skipped warnings)"} {"timestamp": "2026-08-06T23:37:35.788729+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "_load_chain_bg_camera_meta_by_shot: 68 shots with camera meta loaded (0 skipped warnings)"} {"timestamp": "2026-08-06T23:37:35.790943+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "_load_chain_bg_owned_by_shot: 150 shots mapped from 71 backgrounds"} {"timestamp": "2026-08-06T23:37:35.793135+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "_load_chain_bg_id_by_shot: 150 shots mapped to bg_id from 71 backgrounds"} {"timestamp": "2026-08-06T23:37:35.798095+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "scene_detail: 21 prop term maps loaded for Task 14 namespace reconciliation"} {"timestamp": "2026-08-06T23:37:35.808753+00:00", "level": "INFO", "logger": "app.services.scene_detail_redo_service", "message": "scene_detail redo-shot: project=e716bafb-24bb-42b7-aea0-fdb383844ee8 episode=d6a9aa85-b75e-400c-980c-4ee7e876a15b S11_Shot3 (mode=force)"} 08:37:35 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-06T23:37:35.816377+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 08:38:06 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T23:38:06.312007+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 08:38:06 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-06T23:38:06.315210+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} 08:38:06 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-08-06T23:38:06.344417+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 08:38:11 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T23:38:11.621442+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 08:38:11 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-08-06T23:38:11.624820+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-06T23:38:11.774892+00:00", "level": "INFO", "logger": "app.services.scene_detail_redo_service", "message": "scene_detail redo-shot: manifest replaced (S11_Shot3, total=255, dirty=0, manifest_status=completed)"} {"timestamp": "2026-08-06T23:38:11.826461+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 106 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-08-06T23:38:11.976559+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced 977 scene_stills (shot-based) to DB"} {"timestamp": "2026-08-06T23:38:12.080921+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced scene_summary from checkpoint"} {"timestamp": "2026-08-06T23:38:12.113017+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 37 outlooks + 44 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-08-06T23:38:12.140248+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 3 entities updated, 50 total short_ids found"} {"timestamp": "2026-08-06T23:38:12.147019+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode d6a9aa85-b75e-400c-980c-4ee7e876a15b status NOT advanced — incomplete steps: ['scene_camera_flow', 'shot_dependency', 'shot_staging', 'scene_consistency', 'scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_site_layout', 'outdoor_place_spec', 'outdoor_lane_plan', 'shot_ref_classify', 'background_share_plan', 'background_classify', 'background_master_plan', 'floor_plan_prompt', 'floor_plan_overlay_payload', 'base_location_dossier', 'floor_plan_geometry_readback', 'floor_plan_semantic_readback', 'shot_projection_card', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-08-06T23:38:12.148081+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode d6a9aa85, step=scene_detail, repaired=0)"} {"timestamp": "2026-08-06T23:38:12.152701+00:00", "level": "INFO", "logger": "app.services.scene_detail_redo_service", "message": "scene_detail redo-shot: step_run promoted to status='completed' (completed=255, failed=0) project=e716bafb-24bb-42b7-aea0-fdb383844ee8 episode=d6a9aa85-b75e-400c-980c-4ee7e876a15b"} INFO: 127.0.0.1:63813 - "POST /api/v1/projects/e716bafb-24bb-42b7-aea0-fdb383844ee8/episodes/d6a9aa85-b75e-400c-980c-4ee7e876a15b/steps/scene-detail/redo-shot?scene_index=11&shot_index=3&mode=force HTTP/1.1" 200 OK INFO: 127.0.0.1:63824 - "POST /api/v1/projects/e716bafb-24bb-42b7-aea0-fdb383844ee8/episodes/d6a9aa85-b75e-400c-980c-4ee7e876a15b/stills/4180bb21-f868-4e7e-a723-f07e4727138d/generate-image HTTP/1.1" 404 Not Found {"timestamp": "2026-08-06T23:38:12.164698+00:00", "level": "WARNING", "logger": "app.core.steps.scene_context_loader", "message": "scene_detail: shot_dependency_t2i checkpoint is STALE — 이전 scene_detail 기반 ref_usage를 사용 중. drift 방지를 위해 scene_detail 완료 후 shot_dependency_t2i도 force 재실행 권장."} {"timestamp": "2026-08-06T23:38:12.169562+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "scene_detail: 255 shot_staging entries loaded"} {"timestamp": "2026-08-06T23:38:12.171266+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "scene_detail: 94 scenes with fixed elements loaded"} {"timestamp": "2026-08-06T23:38:12.184717+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "_load_chain_bg_guide_by_shot: 150 shot guides loaded (0 skipped warnings)"} {"timestamp": "2026-08-06T23:38:12.188642+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "_load_chain_bg_camera_meta_by_shot: 68 shots with camera meta loaded (0 skipped warnings)"} {"timestamp": "2026-08-06T23:38:12.190834+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "_load_chain_bg_owned_by_shot: 150 shots mapped from 71 backgrounds"} {"timestamp": "2026-08-06T23:38:12.192481+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "_load_chain_bg_id_by_shot: 150 shots mapped to bg_id from 71 backgrounds"} {"timestamp": "2026-08-06T23:38:12.196273+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "scene_detail: 21 prop term maps loaded for Task 14 namespace reconciliation"} {"timestamp": "2026-08-06T23:38:12.203638+00:00", "level": "INFO", "logger": "app.services.scene_detail_redo_service", "message": "scene_detail redo-shot: project=e716bafb-24bb-42b7-aea0-fdb383844ee8 episode=d6a9aa85-b75e-400c-980c-4ee7e876a15b S15_Shot5 (mode=force)"} {"timestamp": "2026-08-06T23:38:12.204014+00:00", "level": "WARNING", "logger": "app.core.frame_spatial_contract", "message": "frame_spatial_contract: dropping constraint for non-shot-visible character target C01 (visible=['C08'])"} 08:38:12 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-06T23:38:12.209140+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 08:39:05 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T23:39:05.649897+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 08:39:05 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-06T23:39:05.653972+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-06T23:39:05.673440+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "Scene 15: 제거할 ID: L11 — retry"} 08:39:05 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-06T23:39:05.675383+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 08:40:04 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T23:40:04.639117+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 08:40:04 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-06T23:40:04.642359+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-06T23:40:04.666427+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "Scene 15: retry 후에도 위반 {'L01'} — 강제 제거"} {"timestamp": "2026-08-06T23:40:04.666719+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "scene_detail S15 shot5 variation var_1 frame_spatial_contract phrase diagnostic: {'constraint_id': 'fsc_001', 'label_missing': True, 'zone_missing': False, 'depth_missing': False}"} {"timestamp": "2026-08-06T23:40:04.666963+00:00", "level": "WARNING", "logger": "app.core.frame_spatial_contract", "message": "frame_spatial_contract: dropping constraint for non-shot-visible character target C01 (visible=['C08'])"} {"timestamp": "2026-08-06T23:40:04.818934+00:00", "level": "INFO", "logger": "app.services.scene_detail_redo_service", "message": "scene_detail redo-shot: manifest replaced (S15_Shot5, total=255, dirty=0, manifest_status=completed)"} {"timestamp": "2026-08-06T23:40:04.883219+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 106 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-08-06T23:40:05.036652+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced 977 scene_stills (shot-based) to DB"} {"timestamp": "2026-08-06T23:40:05.157651+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced scene_summary from checkpoint"} {"timestamp": "2026-08-06T23:40:05.189455+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 37 outlooks + 44 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-08-06T23:40:05.216082+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 3 entities updated, 50 total short_ids found"} {"timestamp": "2026-08-06T23:40:05.222502+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode d6a9aa85-b75e-400c-980c-4ee7e876a15b status NOT advanced — incomplete steps: ['scene_camera_flow', 'shot_dependency', 'shot_staging', 'scene_consistency', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_site_layout', 'outdoor_place_spec', 'outdoor_lane_plan', 'shot_ref_classify', 'background_share_plan', 'background_classify', 'background_master_plan', 'floor_plan_prompt', 'floor_plan_overlay_payload', 'base_location_dossier', 'floor_plan_geometry_readback', 'floor_plan_semantic_readback', 'shot_projection_card', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-08-06T23:40:05.223560+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode d6a9aa85, step=scene_detail, repaired=0)"} {"timestamp": "2026-08-06T23:40:05.228569+00:00", "level": "INFO", "logger": "app.services.scene_detail_redo_service", "message": "scene_detail redo-shot: step_run promoted to status='completed' (completed=255, failed=0) project=e716bafb-24bb-42b7-aea0-fdb383844ee8 episode=d6a9aa85-b75e-400c-980c-4ee7e876a15b"} INFO: 127.0.0.1:63826 - "POST /api/v1/projects/e716bafb-24bb-42b7-aea0-fdb383844ee8/episodes/d6a9aa85-b75e-400c-980c-4ee7e876a15b/steps/scene-detail/redo-shot?scene_index=15&shot_index=5&mode=force HTTP/1.1" 200 OK INFO: 127.0.0.1:63857 - "POST /api/v1/projects/e716bafb-24bb-42b7-aea0-fdb383844ee8/episodes/d6a9aa85-b75e-400c-980c-4ee7e876a15b/stills/761355ad-2242-4634-8312-661f7791f1e2/generate-image HTTP/1.1" 404 Not Found {"timestamp": "2026-08-06T23:40:05.240746+00:00", "level": "WARNING", "logger": "app.core.steps.scene_context_loader", "message": "scene_detail: shot_dependency_t2i checkpoint is STALE — 이전 scene_detail 기반 ref_usage를 사용 중. drift 방지를 위해 scene_detail 완료 후 shot_dependency_t2i도 force 재실행 권장."} {"timestamp": "2026-08-06T23:40:05.246164+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "scene_detail: 255 shot_staging entries loaded"} {"timestamp": "2026-08-06T23:40:05.248101+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "scene_detail: 94 scenes with fixed elements loaded"} {"timestamp": "2026-08-06T23:40:05.263841+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "_load_chain_bg_guide_by_shot: 150 shot guides loaded (0 skipped warnings)"} {"timestamp": "2026-08-06T23:40:05.269093+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "_load_chain_bg_camera_meta_by_shot: 68 shots with camera meta loaded (0 skipped warnings)"} {"timestamp": "2026-08-06T23:40:05.271536+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "_load_chain_bg_owned_by_shot: 150 shots mapped from 71 backgrounds"} {"timestamp": "2026-08-06T23:40:05.273334+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "_load_chain_bg_id_by_shot: 150 shots mapped to bg_id from 71 backgrounds"} {"timestamp": "2026-08-06T23:40:05.277326+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "scene_detail: 21 prop term maps loaded for Task 14 namespace reconciliation"} {"timestamp": "2026-08-06T23:40:05.285251+00:00", "level": "INFO", "logger": "app.services.scene_detail_redo_service", "message": "scene_detail redo-shot: project=e716bafb-24bb-42b7-aea0-fdb383844ee8 episode=d6a9aa85-b75e-400c-980c-4ee7e876a15b S88_Shot6 (mode=force)"} 08:40:05 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-06T23:40:05.290983+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 08:40:38 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T23:40:38.554805+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 08:40:38 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-06T23:40:38.558391+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-06T23:40:38.728457+00:00", "level": "INFO", "logger": "app.services.scene_detail_redo_service", "message": "scene_detail redo-shot: manifest replaced (S88_Shot6, total=255, dirty=0, manifest_status=completed)"} {"timestamp": "2026-08-06T23:40:38.792890+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 106 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-08-06T23:40:39.045985+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced 977 scene_stills (shot-based) to DB"} {"timestamp": "2026-08-06T23:40:39.176281+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced scene_summary from checkpoint"} {"timestamp": "2026-08-06T23:40:39.205855+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 37 outlooks + 44 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-08-06T23:40:39.231977+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 4 entities updated, 53 total short_ids found"} {"timestamp": "2026-08-06T23:40:39.237863+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode d6a9aa85-b75e-400c-980c-4ee7e876a15b status NOT advanced — incomplete steps: ['scene_camera_flow', 'shot_dependency', 'shot_staging', 'scene_consistency', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_site_layout', 'outdoor_place_spec', 'outdoor_lane_plan', 'shot_ref_classify', 'background_share_plan', 'background_classify', 'background_master_plan', 'floor_plan_prompt', 'floor_plan_overlay_payload', 'base_location_dossier', 'floor_plan_geometry_readback', 'floor_plan_semantic_readback', 'shot_projection_card', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-08-06T23:40:39.239541+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode d6a9aa85, step=scene_detail, repaired=0)"} {"timestamp": "2026-08-06T23:40:39.244681+00:00", "level": "INFO", "logger": "app.services.scene_detail_redo_service", "message": "scene_detail redo-shot: step_run promoted to status='completed' (completed=255, failed=0) project=e716bafb-24bb-42b7-aea0-fdb383844ee8 episode=d6a9aa85-b75e-400c-980c-4ee7e876a15b"} INFO: 127.0.0.1:63859 - "POST /api/v1/projects/e716bafb-24bb-42b7-aea0-fdb383844ee8/episodes/d6a9aa85-b75e-400c-980c-4ee7e876a15b/steps/scene-detail/redo-shot?scene_index=88&shot_index=6&mode=force HTTP/1.1" 200 OK INFO: 127.0.0.1:63867 - "POST /api/v1/projects/e716bafb-24bb-42b7-aea0-fdb383844ee8/episodes/d6a9aa85-b75e-400c-980c-4ee7e876a15b/stills/646744a5-f7b9-444d-acb0-cb7673a55296/generate-image HTTP/1.1" 404 Not Found {"timestamp": "2026-08-06T23:40:39.256449+00:00", "level": "WARNING", "logger": "app.core.steps.scene_context_loader", "message": "scene_detail: shot_dependency_t2i checkpoint is STALE — 이전 scene_detail 기반 ref_usage를 사용 중. drift 방지를 위해 scene_detail 완료 후 shot_dependency_t2i도 force 재실행 권장."} {"timestamp": "2026-08-06T23:40:39.261484+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "scene_detail: 255 shot_staging entries loaded"} {"timestamp": "2026-08-06T23:40:39.263128+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "scene_detail: 94 scenes with fixed elements loaded"} {"timestamp": "2026-08-06T23:40:39.279294+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "_load_chain_bg_guide_by_shot: 150 shot guides loaded (0 skipped warnings)"} {"timestamp": "2026-08-06T23:40:39.284607+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "_load_chain_bg_camera_meta_by_shot: 68 shots with camera meta loaded (0 skipped warnings)"} {"timestamp": "2026-08-06T23:40:39.287302+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "_load_chain_bg_owned_by_shot: 150 shots mapped from 71 backgrounds"} {"timestamp": "2026-08-06T23:40:39.289472+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "_load_chain_bg_id_by_shot: 150 shots mapped to bg_id from 71 backgrounds"} {"timestamp": "2026-08-06T23:40:39.294258+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "scene_detail: 21 prop term maps loaded for Task 14 namespace reconciliation"} {"timestamp": "2026-08-06T23:40:39.303543+00:00", "level": "INFO", "logger": "app.services.scene_detail_redo_service", "message": "scene_detail redo-shot: project=e716bafb-24bb-42b7-aea0-fdb383844ee8 episode=d6a9aa85-b75e-400c-980c-4ee7e876a15b S7_Shot1 (mode=force)"} 08:40:39 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-06T23:40:39.310606+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 08:41:11 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T23:41:11.718538+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 08:41:11 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-06T23:41:11.721577+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-06T23:41:11.742876+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "Scene 7: 제거할 ID: L08 — retry"} 08:41:11 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-06T23:41:11.744132+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 08:41:49 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T23:41:49.488860+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 08:41:49 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-06T23:41:49.492735+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-06T23:41:49.515215+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "Scene 7: retry 후에도 위반 {'L08'} — 강제 제거"} 08:41:49 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-08-06T23:41:49.520728+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 08:41:54 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T23:41:54.931400+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 08:41:54 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-08-06T23:41:54.934407+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-06T23:41:55.079048+00:00", "level": "INFO", "logger": "app.services.scene_detail_redo_service", "message": "scene_detail redo-shot: manifest replaced (S7_Shot1, total=255, dirty=0, manifest_status=completed)"} {"timestamp": "2026-08-06T23:41:55.136081+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 106 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-08-06T23:41:55.272892+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced 977 scene_stills (shot-based) to DB"} {"timestamp": "2026-08-06T23:41:55.359761+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced scene_summary from checkpoint"} {"timestamp": "2026-08-06T23:41:55.390082+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 37 outlooks + 44 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-08-06T23:41:55.415086+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 5 entities updated, 54 total short_ids found"} {"timestamp": "2026-08-06T23:41:55.420769+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode d6a9aa85-b75e-400c-980c-4ee7e876a15b status NOT advanced — incomplete steps: ['scene_camera_flow', 'shot_dependency', 'shot_staging', 'scene_consistency', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_site_layout', 'outdoor_place_spec', 'outdoor_lane_plan', 'shot_ref_classify', 'background_share_plan', 'background_classify', 'background_master_plan', 'floor_plan_prompt', 'floor_plan_overlay_payload', 'base_location_dossier', 'floor_plan_geometry_readback', 'floor_plan_semantic_readback', 'shot_projection_card', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-08-06T23:41:55.422157+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode d6a9aa85, step=scene_detail, repaired=0)"} {"timestamp": "2026-08-06T23:41:55.426812+00:00", "level": "INFO", "logger": "app.services.scene_detail_redo_service", "message": "scene_detail redo-shot: step_run promoted to status='completed' (completed=255, failed=0) project=e716bafb-24bb-42b7-aea0-fdb383844ee8 episode=d6a9aa85-b75e-400c-980c-4ee7e876a15b"} INFO: 127.0.0.1:63869 - "POST /api/v1/projects/e716bafb-24bb-42b7-aea0-fdb383844ee8/episodes/d6a9aa85-b75e-400c-980c-4ee7e876a15b/steps/scene-detail/redo-shot?scene_index=7&shot_index=1&mode=force HTTP/1.1" 200 OK INFO: 127.0.0.1:63890 - "POST /api/v1/projects/e716bafb-24bb-42b7-aea0-fdb383844ee8/episodes/d6a9aa85-b75e-400c-980c-4ee7e876a15b/stills/a3d7f47f-3ddb-41e6-b565-0d8f910dc864/generate-image HTTP/1.1" 404 Not Found {"timestamp": "2026-08-06T23:41:55.437504+00:00", "level": "WARNING", "logger": "app.core.steps.scene_context_loader", "message": "scene_detail: shot_dependency_t2i checkpoint is STALE — 이전 scene_detail 기반 ref_usage를 사용 중. drift 방지를 위해 scene_detail 완료 후 shot_dependency_t2i도 force 재실행 권장."} {"timestamp": "2026-08-06T23:41:55.441671+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "scene_detail: 255 shot_staging entries loaded"} {"timestamp": "2026-08-06T23:41:55.443053+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "scene_detail: 94 scenes with fixed elements loaded"} {"timestamp": "2026-08-06T23:41:55.455372+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "_load_chain_bg_guide_by_shot: 150 shot guides loaded (0 skipped warnings)"} {"timestamp": "2026-08-06T23:41:55.459312+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "_load_chain_bg_camera_meta_by_shot: 68 shots with camera meta loaded (0 skipped warnings)"} {"timestamp": "2026-08-06T23:41:55.461258+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "_load_chain_bg_owned_by_shot: 150 shots mapped from 71 backgrounds"} {"timestamp": "2026-08-06T23:41:55.462913+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "_load_chain_bg_id_by_shot: 150 shots mapped to bg_id from 71 backgrounds"} {"timestamp": "2026-08-06T23:41:55.466360+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "scene_detail: 21 prop term maps loaded for Task 14 namespace reconciliation"} {"timestamp": "2026-08-06T23:41:55.473441+00:00", "level": "INFO", "logger": "app.services.scene_detail_redo_service", "message": "scene_detail redo-shot: project=e716bafb-24bb-42b7-aea0-fdb383844ee8 episode=d6a9aa85-b75e-400c-980c-4ee7e876a15b S8_Shot1 (mode=force)"} 08:41:55 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-06T23:41:55.478647+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 08:42:31 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T23:42:31.730121+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 08:42:31 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-06T23:42:31.731524+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-06T23:42:31.745376+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "scene_detail S8 shot1 variation var_1 frame_spatial_contract phrase diagnostic: {'constraint_id': 'fsc_001', 'label_missing': True, 'zone_missing': False, 'depth_missing': False}"} {"timestamp": "2026-08-06T23:42:31.748908+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "scene_detail S8 shot1 variation var_1 frame_spatial_contract phrase diagnostic: {'constraint_id': 'fsc_002', 'label_missing': True, 'zone_missing': False, 'depth_missing': False}"} 08:42:31 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-08-06T23:42:31.757931+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 08:42:39 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T23:42:39.011909+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 08:42:39 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-08-06T23:42:39.014871+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-06T23:42:39.159361+00:00", "level": "INFO", "logger": "app.services.scene_detail_redo_service", "message": "scene_detail redo-shot: manifest replaced (S8_Shot1, total=255, dirty=0, manifest_status=completed)"} {"timestamp": "2026-08-06T23:42:39.211790+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 106 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-08-06T23:42:39.353303+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced 977 scene_stills (shot-based) to DB"} {"timestamp": "2026-08-06T23:42:39.458646+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced scene_summary from checkpoint"} {"timestamp": "2026-08-06T23:42:39.490111+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 37 outlooks + 44 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-08-06T23:42:39.600313+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 4 entities updated, 54 total short_ids found"} {"timestamp": "2026-08-06T23:42:39.605500+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode d6a9aa85-b75e-400c-980c-4ee7e876a15b status NOT advanced — incomplete steps: ['scene_camera_flow', 'shot_dependency', 'shot_staging', 'scene_consistency', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_site_layout', 'outdoor_place_spec', 'outdoor_lane_plan', 'shot_ref_classify', 'background_share_plan', 'background_classify', 'background_master_plan', 'floor_plan_prompt', 'floor_plan_overlay_payload', 'base_location_dossier', 'floor_plan_geometry_readback', 'floor_plan_semantic_readback', 'shot_projection_card', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-08-06T23:42:39.607014+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode d6a9aa85, step=scene_detail, repaired=0)"} {"timestamp": "2026-08-06T23:42:39.611879+00:00", "level": "INFO", "logger": "app.services.scene_detail_redo_service", "message": "scene_detail redo-shot: step_run promoted to status='completed' (completed=255, failed=0) project=e716bafb-24bb-42b7-aea0-fdb383844ee8 episode=d6a9aa85-b75e-400c-980c-4ee7e876a15b"} INFO: 127.0.0.1:63892 - "POST /api/v1/projects/e716bafb-24bb-42b7-aea0-fdb383844ee8/episodes/d6a9aa85-b75e-400c-980c-4ee7e876a15b/steps/scene-detail/redo-shot?scene_index=8&shot_index=1&mode=force HTTP/1.1" 200 OK INFO: 127.0.0.1:63912 - "POST /api/v1/projects/e716bafb-24bb-42b7-aea0-fdb383844ee8/episodes/d6a9aa85-b75e-400c-980c-4ee7e876a15b/stills/cedfa9b6-0c88-472a-a034-ff5f644250c4/generate-image HTTP/1.1" 404 Not Found {"timestamp": "2026-08-06T23:42:39.621791+00:00", "level": "WARNING", "logger": "app.core.steps.scene_context_loader", "message": "scene_detail: shot_dependency_t2i checkpoint is STALE — 이전 scene_detail 기반 ref_usage를 사용 중. drift 방지를 위해 scene_detail 완료 후 shot_dependency_t2i도 force 재실행 권장."} {"timestamp": "2026-08-06T23:42:39.625863+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "scene_detail: 255 shot_staging entries loaded"} {"timestamp": "2026-08-06T23:42:39.627232+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "scene_detail: 94 scenes with fixed elements loaded"} {"timestamp": "2026-08-06T23:42:39.639195+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "_load_chain_bg_guide_by_shot: 150 shot guides loaded (0 skipped warnings)"} {"timestamp": "2026-08-06T23:42:39.643467+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "_load_chain_bg_camera_meta_by_shot: 68 shots with camera meta loaded (0 skipped warnings)"} {"timestamp": "2026-08-06T23:42:39.645370+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "_load_chain_bg_owned_by_shot: 150 shots mapped from 71 backgrounds"} {"timestamp": "2026-08-06T23:42:39.646950+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "_load_chain_bg_id_by_shot: 150 shots mapped to bg_id from 71 backgrounds"} {"timestamp": "2026-08-06T23:42:39.650276+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "scene_detail: 21 prop term maps loaded for Task 14 namespace reconciliation"} {"timestamp": "2026-08-06T23:42:39.657116+00:00", "level": "INFO", "logger": "app.services.scene_detail_redo_service", "message": "scene_detail redo-shot: project=e716bafb-24bb-42b7-aea0-fdb383844ee8 episode=d6a9aa85-b75e-400c-980c-4ee7e876a15b S9_Shot6 (mode=force)"} 08:42:39 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-06T23:42:39.662166+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 08:43:23 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T23:43:23.824509+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 08:43:23 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-06T23:43:23.826398+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-06T23:43:23.840617+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "scene_detail S9 shot6 variation var_1 frame_spatial_contract phrase diagnostic: {'constraint_id': 'fsc_002', 'label_missing': True, 'zone_missing': False, 'depth_missing': False}"} {"timestamp": "2026-08-06T23:43:23.840684+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "scene_detail S9 shot6 variation var_1 frame_spatial_contract phrase diagnostic: {'constraint_id': 'fsc_003', 'label_missing': True, 'zone_missing': False, 'depth_missing': False}"} 08:43:23 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-08-06T23:43:23.845699+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 08:43:27 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T23:43:27.655397+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 08:43:27 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-08-06T23:43:27.658094+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-06T23:43:27.804952+00:00", "level": "INFO", "logger": "app.services.scene_detail_redo_service", "message": "scene_detail redo-shot: manifest replaced (S9_Shot6, total=255, dirty=0, manifest_status=completed)"} {"timestamp": "2026-08-06T23:43:27.856823+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 106 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-08-06T23:43:28.005279+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced 977 scene_stills (shot-based) to DB"} {"timestamp": "2026-08-06T23:43:28.129771+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced scene_summary from checkpoint"} {"timestamp": "2026-08-06T23:43:28.160703+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 37 outlooks + 44 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-08-06T23:43:28.185507+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 4 entities updated, 54 total short_ids found"} {"timestamp": "2026-08-06T23:43:28.190337+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode d6a9aa85-b75e-400c-980c-4ee7e876a15b status NOT advanced — incomplete steps: ['scene_camera_flow', 'shot_dependency', 'shot_staging', 'scene_consistency', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_site_layout', 'outdoor_place_spec', 'outdoor_lane_plan', 'shot_ref_classify', 'background_share_plan', 'background_classify', 'background_master_plan', 'floor_plan_prompt', 'floor_plan_overlay_payload', 'base_location_dossier', 'floor_plan_geometry_readback', 'floor_plan_semantic_readback', 'shot_projection_card', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-08-06T23:43:28.191844+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode d6a9aa85, step=scene_detail, repaired=0)"} {"timestamp": "2026-08-06T23:43:28.196555+00:00", "level": "INFO", "logger": "app.services.scene_detail_redo_service", "message": "scene_detail redo-shot: step_run promoted to status='completed' (completed=255, failed=0) project=e716bafb-24bb-42b7-aea0-fdb383844ee8 episode=d6a9aa85-b75e-400c-980c-4ee7e876a15b"} INFO: 127.0.0.1:63914 - "POST /api/v1/projects/e716bafb-24bb-42b7-aea0-fdb383844ee8/episodes/d6a9aa85-b75e-400c-980c-4ee7e876a15b/steps/scene-detail/redo-shot?scene_index=9&shot_index=6&mode=force HTTP/1.1" 200 OK INFO: 127.0.0.1:63927 - "POST /api/v1/projects/e716bafb-24bb-42b7-aea0-fdb383844ee8/episodes/d6a9aa85-b75e-400c-980c-4ee7e876a15b/stills/f31e84a8-7588-41d6-8c92-303de54ac7b7/generate-image HTTP/1.1" 404 Not Found {"timestamp": "2026-08-06T23:43:28.207180+00:00", "level": "WARNING", "logger": "app.core.steps.scene_context_loader", "message": "scene_detail: shot_dependency_t2i checkpoint is STALE — 이전 scene_detail 기반 ref_usage를 사용 중. drift 방지를 위해 scene_detail 완료 후 shot_dependency_t2i도 force 재실행 권장."} {"timestamp": "2026-08-06T23:43:28.211238+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "scene_detail: 255 shot_staging entries loaded"} {"timestamp": "2026-08-06T23:43:28.212774+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "scene_detail: 94 scenes with fixed elements loaded"} {"timestamp": "2026-08-06T23:43:28.224175+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "_load_chain_bg_guide_by_shot: 150 shot guides loaded (0 skipped warnings)"} {"timestamp": "2026-08-06T23:43:28.227838+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "_load_chain_bg_camera_meta_by_shot: 68 shots with camera meta loaded (0 skipped warnings)"} {"timestamp": "2026-08-06T23:43:28.229833+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "_load_chain_bg_owned_by_shot: 150 shots mapped from 71 backgrounds"} {"timestamp": "2026-08-06T23:43:28.231804+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "_load_chain_bg_id_by_shot: 150 shots mapped to bg_id from 71 backgrounds"} {"timestamp": "2026-08-06T23:43:28.235653+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "scene_detail: 21 prop term maps loaded for Task 14 namespace reconciliation"} {"timestamp": "2026-08-06T23:43:28.243076+00:00", "level": "INFO", "logger": "app.services.scene_detail_redo_service", "message": "scene_detail redo-shot: project=e716bafb-24bb-42b7-aea0-fdb383844ee8 episode=d6a9aa85-b75e-400c-980c-4ee7e876a15b S12_Shot10 (mode=force)"} 08:43:28 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-06T23:43:28.248530+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 08:44:01 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T23:44:01.012084+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 08:44:01 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-06T23:44:01.015981+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-06T23:44:01.036307+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "Scene 12: 제거할 ID: L01 — retry"} 08:44:01 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-06T23:44:01.039446+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 08:44:40 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T23:44:40.657635+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 08:44:40 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-06T23:44:40.660099+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-06T23:44:40.692851+00:00", "level": "WARNING", "logger": "app.core.visible_entities_validator", "message": "validate_visible_entities_contract audit: S12_Shot10 entity_canon.name='고산들' base=C08 — no specific ID (candidates=['C08', 'C08O13']) within ±60 window (Source 2 downgraded to audit, see W20F2)."} {"timestamp": "2026-08-06T23:44:40.692983+00:00", "level": "WARNING", "logger": "app.core.visible_entities_validator", "message": "validate_visible_entities_contract audit: S12_Shot10 entity_canon.name='김지후(강수리영)' base=C01 — no specific ID (candidates=['C01', 'C01O01']) within ±60 window (Source 2 downgraded to audit, see W20F2)."} {"timestamp": "2026-08-06T23:44:40.834072+00:00", "level": "INFO", "logger": "app.services.scene_detail_redo_service", "message": "scene_detail redo-shot: manifest replaced (S12_Shot10, total=255, dirty=0, manifest_status=completed)"} {"timestamp": "2026-08-06T23:44:40.900037+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 106 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-08-06T23:44:41.043398+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced 977 scene_stills (shot-based) to DB"} {"timestamp": "2026-08-06T23:44:41.174841+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced scene_summary from checkpoint"} {"timestamp": "2026-08-06T23:44:41.203498+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 37 outlooks + 44 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-08-06T23:44:41.229537+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 3 entities updated, 53 total short_ids found"} {"timestamp": "2026-08-06T23:44:41.235734+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode d6a9aa85-b75e-400c-980c-4ee7e876a15b status NOT advanced — incomplete steps: ['scene_camera_flow', 'shot_dependency', 'shot_staging', 'scene_consistency', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_site_layout', 'outdoor_place_spec', 'outdoor_lane_plan', 'shot_ref_classify', 'background_share_plan', 'background_classify', 'background_master_plan', 'floor_plan_prompt', 'floor_plan_overlay_payload', 'base_location_dossier', 'floor_plan_geometry_readback', 'floor_plan_semantic_readback', 'shot_projection_card', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-08-06T23:44:41.236777+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode d6a9aa85, step=scene_detail, repaired=0)"} {"timestamp": "2026-08-06T23:44:41.241907+00:00", "level": "INFO", "logger": "app.services.scene_detail_redo_service", "message": "scene_detail redo-shot: step_run promoted to status='completed' (completed=255, failed=0) project=e716bafb-24bb-42b7-aea0-fdb383844ee8 episode=d6a9aa85-b75e-400c-980c-4ee7e876a15b"} INFO: 127.0.0.1:63929 - "POST /api/v1/projects/e716bafb-24bb-42b7-aea0-fdb383844ee8/episodes/d6a9aa85-b75e-400c-980c-4ee7e876a15b/steps/scene-detail/redo-shot?scene_index=12&shot_index=10&mode=force HTTP/1.1" 200 OK INFO: 127.0.0.1:63953 - "POST /api/v1/projects/e716bafb-24bb-42b7-aea0-fdb383844ee8/episodes/d6a9aa85-b75e-400c-980c-4ee7e876a15b/stills/2a2293f8-1937-45ce-836b-1e209ecc6e52/generate-image HTTP/1.1" 404 Not Found {"timestamp": "2026-08-06T23:44:41.253993+00:00", "level": "WARNING", "logger": "app.core.steps.scene_context_loader", "message": "scene_detail: shot_dependency_t2i checkpoint is STALE — 이전 scene_detail 기반 ref_usage를 사용 중. drift 방지를 위해 scene_detail 완료 후 shot_dependency_t2i도 force 재실행 권장."} {"timestamp": "2026-08-06T23:44:41.259000+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "scene_detail: 255 shot_staging entries loaded"} {"timestamp": "2026-08-06T23:44:41.260887+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "scene_detail: 94 scenes with fixed elements loaded"} {"timestamp": "2026-08-06T23:44:41.277472+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "_load_chain_bg_guide_by_shot: 150 shot guides loaded (0 skipped warnings)"} {"timestamp": "2026-08-06T23:44:41.282300+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "_load_chain_bg_camera_meta_by_shot: 68 shots with camera meta loaded (0 skipped warnings)"} {"timestamp": "2026-08-06T23:44:41.284925+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "_load_chain_bg_owned_by_shot: 150 shots mapped from 71 backgrounds"} {"timestamp": "2026-08-06T23:44:41.286849+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "_load_chain_bg_id_by_shot: 150 shots mapped to bg_id from 71 backgrounds"} {"timestamp": "2026-08-06T23:44:41.290960+00:00", "level": "INFO", "logger": "app.core.steps.scene_context_loader", "message": "scene_detail: 21 prop term maps loaded for Task 14 namespace reconciliation"} {"timestamp": "2026-08-06T23:44:41.299352+00:00", "level": "INFO", "logger": "app.services.scene_detail_redo_service", "message": "scene_detail redo-shot: project=e716bafb-24bb-42b7-aea0-fdb383844ee8 episode=d6a9aa85-b75e-400c-980c-4ee7e876a15b S17_Shot6 (mode=force)"} 08:44:41 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini {"timestamp": "2026-08-06T23:44:41.305333+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.1-pro-preview; provider = gemini"} 08:45:26 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T23:45:26.688840+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 08:45:26 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.1-pro-preview) 200 OK {"timestamp": "2026-08-06T23:45:26.692076+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.1-pro-preview)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-06T23:45:26.712006+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "scene_detail S17 shot6 variation var_1 frame_spatial_contract phrase diagnostic: {'constraint_id': 'fsc_002', 'label_missing': True, 'zone_missing': False, 'depth_missing': False}"} {"timestamp": "2026-08-06T23:45:26.712100+00:00", "level": "WARNING", "logger": "app.core.steps.detail_steps", "message": "scene_detail S17 shot6 variation var_1 frame_spatial_contract phrase diagnostic: {'constraint_id': 'fsc_003', 'label_missing': True, 'zone_missing': False, 'depth_missing': False}"} 08:45:26 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-08-06T23:45:26.717261+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 08:45:33 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-06T23:45:33.715482+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 08:45:33 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-08-06T23:45:33.717811+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-06T23:45:33.865826+00:00", "level": "INFO", "logger": "app.services.scene_detail_redo_service", "message": "scene_detail redo-shot: manifest replaced (S17_Shot6, total=255, dirty=0, manifest_status=completed)"} {"timestamp": "2026-08-06T23:45:33.922885+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 106 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-08-06T23:45:34.154470+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced 977 scene_stills (shot-based) to DB"} {"timestamp": "2026-08-06T23:45:34.305881+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced scene_summary from checkpoint"} {"timestamp": "2026-08-06T23:45:34.337566+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 37 outlooks + 44 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-08-06T23:45:34.364007+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 4 entities updated, 53 total short_ids found"} {"timestamp": "2026-08-06T23:45:34.368685+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode d6a9aa85-b75e-400c-980c-4ee7e876a15b status NOT advanced — incomplete steps: ['scene_camera_flow', 'shot_dependency', 'shot_staging', 'scene_consistency', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_site_layout', 'outdoor_place_spec', 'outdoor_lane_plan', 'shot_ref_classify', 'background_share_plan', 'background_classify', 'background_master_plan', 'floor_plan_prompt', 'floor_plan_overlay_payload', 'base_location_dossier', 'floor_plan_geometry_readback', 'floor_plan_semantic_readback', 'shot_projection_card', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-08-06T23:45:34.370135+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode d6a9aa85, step=scene_detail, repaired=0)"} {"timestamp": "2026-08-06T23:45:34.374913+00:00", "level": "INFO", "logger": "app.services.scene_detail_redo_service", "message": "scene_detail redo-shot: step_run promoted to status='completed' (completed=255, failed=0) project=e716bafb-24bb-42b7-aea0-fdb383844ee8 episode=d6a9aa85-b75e-400c-980c-4ee7e876a15b"} INFO: 127.0.0.1:63955 - "POST /api/v1/projects/e716bafb-24bb-42b7-aea0-fdb383844ee8/episodes/d6a9aa85-b75e-400c-980c-4ee7e876a15b/steps/scene-detail/redo-shot?scene_index=17&shot_index=6&mode=force HTTP/1.1" 200 OK INFO: 127.0.0.1:63971 - "POST /api/v1/projects/e716bafb-24bb-42b7-aea0-fdb383844ee8/episodes/d6a9aa85-b75e-400c-980c-4ee7e876a15b/stills/b82c5158-a543-4695-a225-41c5fd02efa1/generate-image HTTP/1.1" 404 Not Found INFO: 127.0.0.1:63984 - "POST /api/v1/projects/e716bafb-24bb-42b7-aea0-fdb383844ee8/episodes/d6a9aa85-b75e-400c-980c-4ee7e876a15b/stills/4180bb21-f868-4e7e-a723-f07e4727138d/generate-image HTTP/1.1" 404 Not Found INFO: 127.0.0.1:63988 - "GET /openapi.json HTTP/1.1" 404 Not Found INFO: 127.0.0.1:63997 - "POST /api/v1/auth/login HTTP/1.1" 200 OK INFO: 127.0.0.1:63999 - "POST /api/v1/projects/e716bafb-24bb-42b7-aea0-fdb383844ee8/stills/4180bb21-f868-4e7e-a723-f07e4727138d/generate-image HTTP/1.1" 422 Unprocessable Entity INFO: 127.0.0.1:64001 - "POST /api/v1/projects/e716bafb-24bb-42b7-aea0-fdb383844ee8/stills/761355ad-2242-4634-8312-661f7791f1e2/generate-image HTTP/1.1" 422 Unprocessable Entity INFO: 127.0.0.1:64003 - "POST /api/v1/projects/e716bafb-24bb-42b7-aea0-fdb383844ee8/stills/646744a5-f7b9-444d-acb0-cb7673a55296/generate-image HTTP/1.1" 422 Unprocessable Entity INFO: 127.0.0.1:64005 - "POST /api/v1/projects/e716bafb-24bb-42b7-aea0-fdb383844ee8/stills/a3d7f47f-3ddb-41e6-b565-0d8f910dc864/generate-image HTTP/1.1" 422 Unprocessable Entity INFO: 127.0.0.1:64007 - "POST /api/v1/projects/e716bafb-24bb-42b7-aea0-fdb383844ee8/stills/cedfa9b6-0c88-472a-a034-ff5f644250c4/generate-image HTTP/1.1" 422 Unprocessable Entity INFO: 127.0.0.1:64009 - "POST /api/v1/projects/e716bafb-24bb-42b7-aea0-fdb383844ee8/stills/f31e84a8-7588-41d6-8c92-303de54ac7b7/generate-image HTTP/1.1" 422 Unprocessable Entity INFO: 127.0.0.1:64011 - "POST /api/v1/projects/e716bafb-24bb-42b7-aea0-fdb383844ee8/stills/2a2293f8-1937-45ce-836b-1e209ecc6e52/generate-image HTTP/1.1" 422 Unprocessable Entity INFO: 127.0.0.1:64013 - "POST /api/v1/projects/e716bafb-24bb-42b7-aea0-fdb383844ee8/stills/b82c5158-a543-4695-a225-41c5fd02efa1/generate-image HTTP/1.1" 422 Unprocessable Entity INFO: 127.0.0.1:64036 - "POST /api/v1/auth/login HTTP/1.1" 200 OK {"timestamp": "2026-08-06T23:47:46.313182+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 106 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-08-06T23:47:46.463760+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced 977 scene_stills (shot-based) to DB"} {"timestamp": "2026-08-06T23:47:46.624308+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced scene_summary from checkpoint"} {"timestamp": "2026-08-06T23:47:46.654967+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 37 outlooks + 44 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-08-06T23:47:46.685029+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 53 total short_ids found"} {"timestamp": "2026-08-06T23:47:46.692049+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode d6a9aa85-b75e-400c-980c-4ee7e876a15b status NOT advanced — incomplete steps: ['scene_camera_flow', 'shot_dependency', 'shot_staging', 'scene_consistency', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_site_layout', 'outdoor_place_spec', 'outdoor_lane_plan', 'shot_ref_classify', 'background_share_plan', 'background_classify', 'background_master_plan', 'floor_plan_prompt', 'floor_plan_overlay_payload', 'base_location_dossier', 'floor_plan_geometry_readback', 'floor_plan_semantic_readback', 'shot_projection_card', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-08-06T23:47:46.693023+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode d6a9aa85, step=-, repaired=0)"} INFO: 127.0.0.1:64038 - "POST /api/v1/projects/e716bafb-24bb-42b7-aea0-fdb383844ee8/stills/4180bb21-f868-4e7e-a723-f07e4727138d/generate-image HTTP/1.1" 400 Bad Request {"timestamp": "2026-08-06T23:47:46.828671+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 106 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-08-06T23:47:46.973419+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced 977 scene_stills (shot-based) to DB"} {"timestamp": "2026-08-06T23:47:47.082594+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced scene_summary from checkpoint"} {"timestamp": "2026-08-06T23:47:47.110254+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 37 outlooks + 44 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-08-06T23:47:47.141614+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 53 total short_ids found"} {"timestamp": "2026-08-06T23:47:47.146418+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode d6a9aa85-b75e-400c-980c-4ee7e876a15b status NOT advanced — incomplete steps: ['scene_camera_flow', 'shot_dependency', 'shot_staging', 'scene_consistency', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_site_layout', 'outdoor_place_spec', 'outdoor_lane_plan', 'shot_ref_classify', 'background_share_plan', 'background_classify', 'background_master_plan', 'floor_plan_prompt', 'floor_plan_overlay_payload', 'base_location_dossier', 'floor_plan_geometry_readback', 'floor_plan_semantic_readback', 'shot_projection_card', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-08-06T23:47:47.148607+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode d6a9aa85, step=-, repaired=0)"} INFO: 127.0.0.1:64041 - "POST /api/v1/projects/e716bafb-24bb-42b7-aea0-fdb383844ee8/stills/761355ad-2242-4634-8312-661f7791f1e2/generate-image HTTP/1.1" 400 Bad Request {"timestamp": "2026-08-06T23:47:47.344578+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 106 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-08-06T23:47:47.490609+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced 977 scene_stills (shot-based) to DB"} {"timestamp": "2026-08-06T23:47:47.605116+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced scene_summary from checkpoint"} {"timestamp": "2026-08-06T23:47:47.633573+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 37 outlooks + 44 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-08-06T23:47:47.664610+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 53 total short_ids found"} {"timestamp": "2026-08-06T23:47:47.668502+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode d6a9aa85-b75e-400c-980c-4ee7e876a15b status NOT advanced — incomplete steps: ['scene_camera_flow', 'shot_dependency', 'shot_staging', 'scene_consistency', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_site_layout', 'outdoor_place_spec', 'outdoor_lane_plan', 'shot_ref_classify', 'background_share_plan', 'background_classify', 'background_master_plan', 'floor_plan_prompt', 'floor_plan_overlay_payload', 'base_location_dossier', 'floor_plan_geometry_readback', 'floor_plan_semantic_readback', 'shot_projection_card', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-08-06T23:47:47.669707+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode d6a9aa85, step=-, repaired=0)"} INFO: 127.0.0.1:64043 - "POST /api/v1/projects/e716bafb-24bb-42b7-aea0-fdb383844ee8/stills/646744a5-f7b9-444d-acb0-cb7673a55296/generate-image HTTP/1.1" 400 Bad Request {"timestamp": "2026-08-06T23:47:47.787197+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 106 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-08-06T23:47:47.938749+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced 977 scene_stills (shot-based) to DB"} {"timestamp": "2026-08-06T23:47:48.071588+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced scene_summary from checkpoint"} {"timestamp": "2026-08-06T23:47:48.098454+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 37 outlooks + 44 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-08-06T23:47:48.127775+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 53 total short_ids found"} {"timestamp": "2026-08-06T23:47:48.131644+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode d6a9aa85-b75e-400c-980c-4ee7e876a15b status NOT advanced — incomplete steps: ['scene_camera_flow', 'shot_dependency', 'shot_staging', 'scene_consistency', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_site_layout', 'outdoor_place_spec', 'outdoor_lane_plan', 'shot_ref_classify', 'background_share_plan', 'background_classify', 'background_master_plan', 'floor_plan_prompt', 'floor_plan_overlay_payload', 'base_location_dossier', 'floor_plan_geometry_readback', 'floor_plan_semantic_readback', 'shot_projection_card', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-08-06T23:47:48.132827+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode d6a9aa85, step=-, repaired=0)"} INFO: 127.0.0.1:64045 - "POST /api/v1/projects/e716bafb-24bb-42b7-aea0-fdb383844ee8/stills/a3d7f47f-3ddb-41e6-b565-0d8f910dc864/generate-image HTTP/1.1" 400 Bad Request {"timestamp": "2026-08-06T23:47:48.245692+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 106 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-08-06T23:47:48.393857+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced 977 scene_stills (shot-based) to DB"} {"timestamp": "2026-08-06T23:47:48.517448+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced scene_summary from checkpoint"} {"timestamp": "2026-08-06T23:47:48.547211+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 37 outlooks + 44 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-08-06T23:47:48.573742+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 53 total short_ids found"} {"timestamp": "2026-08-06T23:47:48.577836+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode d6a9aa85-b75e-400c-980c-4ee7e876a15b status NOT advanced — incomplete steps: ['scene_camera_flow', 'shot_dependency', 'shot_staging', 'scene_consistency', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_site_layout', 'outdoor_place_spec', 'outdoor_lane_plan', 'shot_ref_classify', 'background_share_plan', 'background_classify', 'background_master_plan', 'floor_plan_prompt', 'floor_plan_overlay_payload', 'base_location_dossier', 'floor_plan_geometry_readback', 'floor_plan_semantic_readback', 'shot_projection_card', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-08-06T23:47:48.579116+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode d6a9aa85, step=-, repaired=0)"} INFO: 127.0.0.1:64047 - "POST /api/v1/projects/e716bafb-24bb-42b7-aea0-fdb383844ee8/stills/cedfa9b6-0c88-472a-a034-ff5f644250c4/generate-image HTTP/1.1" 400 Bad Request {"timestamp": "2026-08-06T23:47:48.696098+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 106 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-08-06T23:47:48.926440+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced 977 scene_stills (shot-based) to DB"} {"timestamp": "2026-08-06T23:47:49.049682+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced scene_summary from checkpoint"} {"timestamp": "2026-08-06T23:47:49.078984+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 37 outlooks + 44 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-08-06T23:47:49.106229+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 53 total short_ids found"} {"timestamp": "2026-08-06T23:47:49.110947+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode d6a9aa85-b75e-400c-980c-4ee7e876a15b status NOT advanced — incomplete steps: ['scene_camera_flow', 'shot_dependency', 'shot_staging', 'scene_consistency', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_site_layout', 'outdoor_place_spec', 'outdoor_lane_plan', 'shot_ref_classify', 'background_share_plan', 'background_classify', 'background_master_plan', 'floor_plan_prompt', 'floor_plan_overlay_payload', 'base_location_dossier', 'floor_plan_geometry_readback', 'floor_plan_semantic_readback', 'shot_projection_card', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-08-06T23:47:49.112299+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode d6a9aa85, step=-, repaired=0)"} INFO: 127.0.0.1:64049 - "POST /api/v1/projects/e716bafb-24bb-42b7-aea0-fdb383844ee8/stills/f31e84a8-7588-41d6-8c92-303de54ac7b7/generate-image HTTP/1.1" 400 Bad Request {"timestamp": "2026-08-06T23:47:49.234370+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 106 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-08-06T23:47:49.381318+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced 977 scene_stills (shot-based) to DB"} {"timestamp": "2026-08-06T23:47:49.512023+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced scene_summary from checkpoint"} {"timestamp": "2026-08-06T23:47:49.542009+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 37 outlooks + 44 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-08-06T23:47:49.570110+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 53 total short_ids found"} {"timestamp": "2026-08-06T23:47:49.574394+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode d6a9aa85-b75e-400c-980c-4ee7e876a15b status NOT advanced — incomplete steps: ['scene_camera_flow', 'shot_dependency', 'shot_staging', 'scene_consistency', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_site_layout', 'outdoor_place_spec', 'outdoor_lane_plan', 'shot_ref_classify', 'background_share_plan', 'background_classify', 'background_master_plan', 'floor_plan_prompt', 'floor_plan_overlay_payload', 'base_location_dossier', 'floor_plan_geometry_readback', 'floor_plan_semantic_readback', 'shot_projection_card', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-08-06T23:47:49.576293+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode d6a9aa85, step=-, repaired=0)"} INFO: 127.0.0.1:64051 - "POST /api/v1/projects/e716bafb-24bb-42b7-aea0-fdb383844ee8/stills/2a2293f8-1937-45ce-836b-1e209ecc6e52/generate-image HTTP/1.1" 400 Bad Request {"timestamp": "2026-08-06T23:47:49.698547+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 106 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-08-06T23:47:49.850917+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced 977 scene_stills (shot-based) to DB"} {"timestamp": "2026-08-06T23:47:49.980851+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced scene_summary from checkpoint"} {"timestamp": "2026-08-06T23:47:50.011491+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 37 outlooks + 44 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-08-06T23:47:50.038977+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 53 total short_ids found"} {"timestamp": "2026-08-06T23:47:50.043575+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode d6a9aa85-b75e-400c-980c-4ee7e876a15b status NOT advanced — incomplete steps: ['scene_camera_flow', 'shot_dependency', 'shot_staging', 'scene_consistency', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_site_layout', 'outdoor_place_spec', 'outdoor_lane_plan', 'shot_ref_classify', 'background_share_plan', 'background_classify', 'background_master_plan', 'floor_plan_prompt', 'floor_plan_overlay_payload', 'base_location_dossier', 'floor_plan_geometry_readback', 'floor_plan_semantic_readback', 'shot_projection_card', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-08-06T23:47:50.044695+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode d6a9aa85, step=-, repaired=0)"} INFO: 127.0.0.1:64053 - "POST /api/v1/projects/e716bafb-24bb-42b7-aea0-fdb383844ee8/stills/b82c5158-a543-4695-a225-41c5fd02efa1/generate-image HTTP/1.1" 400 Bad Request INFO: 127.0.0.1:64070 - "POST /api/v1/auth/login HTTP/1.1" 200 OK {"timestamp": "2026-08-06T23:48:50.289788+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:e716bafb-24bb-42b7-aea0-fdb383844ee8:d6a9aa85-b75e-400c-980c-4ee7e876a15b:composite_image_gen (Step composite_image_gen for d6a9aa85-b75e-400c-980c-4ee7e876a15b)"} INFO: 127.0.0.1:64072 - "POST /api/v1/projects/e716bafb-24bb-42b7-aea0-fdb383844ee8/episodes/d6a9aa85-b75e-400c-980c-4ee7e876a15b/steps/composite_image_gen?mode=force HTTP/1.1" 200 OK {"timestamp": "2026-08-06T23:48:50.295586+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Invalidated 2 downstream steps from composite_image_gen (delete_cp=True): ['character_state_variant', 'scene_image_pipeline']"} {"timestamp": "2026-08-06T23:48:50.297242+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step composite_image_gen started (run_id=9a106009-6dfe-4ad5-8f50-51eaeaf5a4c2, model=gemini-image)"} {"timestamp": "2026-08-06T23:48:50.354474+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 106 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-08-06T23:48:50.500174+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced 977 scene_stills (shot-based) to DB"} {"timestamp": "2026-08-06T23:48:50.588182+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced scene_summary from checkpoint"} {"timestamp": "2026-08-06T23:48:50.615863+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 37 outlooks + 44 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-08-06T23:48:50.642143+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 53 total short_ids found"} {"timestamp": "2026-08-06T23:48:50.646232+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode d6a9aa85-b75e-400c-980c-4ee7e876a15b status NOT advanced — incomplete steps: ['scene_camera_flow', 'shot_dependency', 'shot_staging', 'scene_consistency', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_site_layout', 'outdoor_place_spec', 'outdoor_lane_plan', 'shot_ref_classify', 'background_share_plan', 'background_classify', 'background_master_plan', 'floor_plan_prompt', 'floor_plan_overlay_payload', 'base_location_dossier', 'floor_plan_geometry_readback', 'floor_plan_semantic_readback', 'shot_projection_card', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-08-06T23:48:50.647455+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode d6a9aa85, step=-, repaired=0)"} {"timestamp": "2026-08-06T23:48:50.708199+00:00", "level": "INFO", "logger": "app.core.steps.image_steps", "message": "Composite force: marked 27 existing composites as old"} 08:48:50 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-06T23:48:50.907829+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 08:48:52 - LiteLLM Router:INFO: router.py:1570 - litellm.completion(model=openai/gpt-5.6-sol) Exception litellm.RateLimitError: RateLimitError: OpenAIException - You have no credits remaining. Add credits to continue using the API at https://platform.openai.com/settings/organization/billing/. {"timestamp": "2026-08-06T23:48:52.480206+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[31m Exception litellm.RateLimitError: RateLimitError: OpenAIException - You have no credits remaining. Add credits to continue using the API at https://platform.openai.com/settings/organization/billing/.\u001b[0m"} 08:48:58 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-06T23:48:58.211840+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 08:48:58 - LiteLLM Router:INFO: router.py:1570 - litellm.completion(model=openai/gpt-5.6-sol) Exception litellm.RateLimitError: RateLimitError: OpenAIException - You have no credits remaining. Add credits to continue using the API at https://platform.openai.com/settings/organization/billing/. {"timestamp": "2026-08-06T23:48:58.673907+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[31m Exception litellm.RateLimitError: RateLimitError: OpenAIException - You have no credits remaining. Add credits to continue using the API at https://platform.openai.com/settings/organization/billing/.\u001b[0m"} 08:49:03 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-06T23:49:03.713723+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 08:49:04 - LiteLLM Router:INFO: router.py:1570 - litellm.completion(model=openai/gpt-5.6-sol) Exception litellm.RateLimitError: RateLimitError: OpenAIException - You have no credits remaining. Add credits to continue using the API at https://platform.openai.com/settings/organization/billing/. {"timestamp": "2026-08-06T23:49:04.180449+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[31m Exception litellm.RateLimitError: RateLimitError: OpenAIException - You have no credits remaining. Add credits to continue using the API at https://platform.openai.com/settings/organization/billing/.\u001b[0m"} 08:49:09 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-06T23:49:09.880592+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 08:49:10 - LiteLLM Router:INFO: router.py:1570 - litellm.completion(model=openai/gpt-5.6-sol) Exception litellm.RateLimitError: RateLimitError: OpenAIException - You have no credits remaining. Add credits to continue using the API at https://platform.openai.com/settings/organization/billing/. {"timestamp": "2026-08-06T23:49:10.164457+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[31m Exception litellm.RateLimitError: RateLimitError: OpenAIException - You have no credits remaining. Add credits to continue using the API at https://platform.openai.com/settings/organization/billing/.\u001b[0m"} 08:49:15 - LiteLLM Router:INFO: router.py:5437 - Trying to fallback b/w models {"timestamp": "2026-08-06T23:49:15.826518+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "Trying to fallback b/w models"} {"timestamp": "2026-08-06T23:49:15.826981+00:00", "level": "WARNING", "logger": "app.core.openai_keys", "message": "OpenAI 키 전환: primary → secondary (사유=429 · 지점=router.completion[gpt]). 이 프로세스는 이후 secondary 슬롯을 쓴다."} {"timestamp": "2026-08-06T23:49:15.827049+00:00", "level": "INFO", "logger": "app.modules.llm.llm_client", "message": "LiteLLM Router 무효화 — OpenAI 키 슬롯 전환 반영"} 08:49:15 - LiteLLM Router:INFO: router.py:812 - Routing strategy: simple-shuffle {"timestamp": "2026-08-06T23:49:15.833757+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "Routing strategy: simple-shuffle"} {"timestamp": "2026-08-06T23:49:15.834254+00:00", "level": "INFO", "logger": "app.modules.llm.llm_client", "message": "LiteLLM Router initialized: 12 deployments (1 Gemini keys, OpenAI=True slot=secondary/2)"} 08:49:15 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-06T23:49:15.835361+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 08:59:15 - LiteLLM Router:INFO: router.py:1570 - litellm.completion(model=openai/gpt-5.6-sol) Exception litellm.Timeout: APITimeoutError - Request timed out. Error_str: Request timed out. {"timestamp": "2026-08-06T23:59:15.902813+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[31m Exception litellm.Timeout: APITimeoutError - Request timed out. Error_str: Request timed out.\u001b[0m"} 08:59:21 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-06T23:59:21.108190+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 09:00:52 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-07T00:00:52.130054+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 09:00:52 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-07T00:00:52.132501+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-07T00:00:52.162196+00:00", "level": "INFO", "logger": "app.modules.image_checkpoint", "message": "Checkpoint loaded: reference — 30 completed, 0 failed"} {"timestamp": "2026-08-07T00:00:52.234888+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 고등학교 졸업식 사진 액자 (prop, t2i_count=0, base_for_variant=False, variant_self=False, required=False, skipped=True)"} {"timestamp": "2026-08-07T00:00:52.234972+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 산길의 어린 한국인 꼬마 아이 (character, t2i_count=0, base_for_variant=False, variant_self=False, required=False, skipped=True)"} {"timestamp": "2026-08-07T00:00:52.235001+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 종이 인형이 매달린 새끼줄 (prop, t2i_count=0, base_for_variant=False, variant_self=False, required=False, skipped=True)"} {"timestamp": "2026-08-07T00:00:52.235020+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 강민숙(홍은미) (꿈속 변형 상태) (character, t2i_count=0, base_for_variant=False, variant_self=True, required=False, skipped=False)"} {"timestamp": "2026-08-07T00:00:52.235042+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 과거의 조선인 육혈귀 생존자 (각성 상태) (character, t2i_count=0, base_for_variant=False, variant_self=True, required=False, skipped=False)"} {"timestamp": "2026-08-07T00:00:52.235060+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 피 묻은 대형 포댓자루 (prop, t2i_count=2, base_for_variant=False, variant_self=False, required=False, skipped=False)"} {"timestamp": "2026-08-07T00:00:52.235076+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 경신 대기근의 아낙 (육혈귀 변형 상태) (character, t2i_count=0, base_for_variant=False, variant_self=True, required=False, skipped=False)"} {"timestamp": "2026-08-07T00:00:52.235097+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 조선인 촌주 (그분 빙의 상태) (character, t2i_count=1, base_for_variant=False, variant_self=True, required=True, skipped=False)"} {"timestamp": "2026-08-07T00:00:52.235113+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 금월도 마을 주민 (빙의 상태) (character, t2i_count=0, base_for_variant=False, variant_self=True, required=False, skipped=False)"} {"timestamp": "2026-08-07T00:00:52.235128+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 조선인 촌주 (character, t2i_count=0, base_for_variant=True, variant_self=False, required=False, skipped=False)"} {"timestamp": "2026-08-07T00:00:52.235143+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 김지후(강수리영) (character, t2i_count=51, base_for_variant=True, variant_self=False, required=True, skipped=False)"} {"timestamp": "2026-08-07T00:00:52.235165+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 만월제 무악기 (prop, t2i_count=0, base_for_variant=False, variant_self=False, required=False, skipped=True)"} {"timestamp": "2026-08-07T00:00:52.235180+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 금월도 꼬마 아이 (character, t2i_count=0, base_for_variant=False, variant_self=False, required=False, skipped=True)"} {"timestamp": "2026-08-07T00:00:52.235194+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 일본군 병사 (character, t2i_count=3, base_for_variant=False, variant_self=False, required=True, skipped=False)"} {"timestamp": "2026-08-07T00:00:52.235209+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 앳된 한국인 선비 (character, t2i_count=0, base_for_variant=False, variant_self=False, required=False, skipped=True)"} {"timestamp": "2026-08-07T00:00:52.235223+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 하얀 사슴뿔 목걸이 (prop, t2i_count=0, base_for_variant=False, variant_self=False, required=False, skipped=True)"} {"timestamp": "2026-08-07T00:00:52.235239+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 38구경 권총 (prop, t2i_count=1, base_for_variant=False, variant_self=False, required=False, skipped=True)"} {"timestamp": "2026-08-07T00:00:52.235253+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 그분(검은 연기 형체) (character, t2i_count=2, base_for_variant=True, variant_self=False, required=False, skipped=False)"} {"timestamp": "2026-08-07T00:00:52.235268+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 하얀 사슴뿔 창 (prop, t2i_count=1, base_for_variant=False, variant_self=False, required=True, skipped=False)"} {"timestamp": "2026-08-07T00:00:52.235283+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 굵은 쇠사슬 (prop, t2i_count=0, base_for_variant=False, variant_self=False, required=False, skipped=True)"} {"timestamp": "2026-08-07T00:00:52.235297+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 수리영을 공격한 대형 검은 염소 (character, t2i_count=0, base_for_variant=False, variant_self=False, required=False, skipped=True)"} {"timestamp": "2026-08-07T00:00:52.235312+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 일본군 소총 (prop, t2i_count=1, base_for_variant=False, variant_self=False, required=False, skipped=True)"} {"timestamp": "2026-08-07T00:00:52.235326+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 백팩 (prop, t2i_count=0, base_for_variant=False, variant_self=False, required=False, skipped=True)"} {"timestamp": "2026-08-07T00:00:52.235341+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 핸드폰 (prop, t2i_count=2, base_for_variant=False, variant_self=False, required=False, skipped=False)"} {"timestamp": "2026-08-07T00:00:52.235355+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 과거의 조선인 육혈귀 생존자 (character, t2i_count=3, base_for_variant=True, variant_self=False, required=True, skipped=False)"} {"timestamp": "2026-08-07T00:00:52.235370+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 포댓자루 속 정체불명 형체 (character, t2i_count=0, base_for_variant=False, variant_self=False, required=False, skipped=True)"} {"timestamp": "2026-08-07T00:00:52.235397+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 염소 피 양동이 (prop, t2i_count=0, base_for_variant=False, variant_self=False, required=False, skipped=True)"} {"timestamp": "2026-08-07T00:00:52.235411+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 김지후(강수리영) (그분 빙의 상태) (character, t2i_count=0, base_for_variant=False, variant_self=True, required=False, skipped=False)"} {"timestamp": "2026-08-07T00:00:52.235425+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 노 형사 (character, t2i_count=0, base_for_variant=False, variant_self=False, required=False, skipped=True)"} {"timestamp": "2026-08-07T00:00:52.235438+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 낡은 사진첩 (prop, t2i_count=0, base_for_variant=False, variant_self=False, required=False, skipped=True)"} {"timestamp": "2026-08-07T00:00:52.235452+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 신 형사 (character, t2i_count=0, base_for_variant=False, variant_self=False, required=False, skipped=True)"} {"timestamp": "2026-08-07T00:00:52.235465+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 검은 염소 (character, t2i_count=2, base_for_variant=True, variant_self=False, required=False, skipped=False)"} {"timestamp": "2026-08-07T00:00:52.235479+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 강민숙(홍은미) (character, t2i_count=5, base_for_variant=True, variant_self=False, required=True, skipped=False)"} {"timestamp": "2026-08-07T00:00:52.235492+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 두툼한 돈봉투 (prop, t2i_count=2, base_for_variant=False, variant_self=False, required=False, skipped=False)"} {"timestamp": "2026-08-07T00:00:52.235506+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 고산들 (character, t2i_count=17, base_for_variant=True, variant_self=False, required=True, skipped=False)"} {"timestamp": "2026-08-07T00:00:52.235520+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 고산들 (육혈귀 각성 상태) (character, t2i_count=0, base_for_variant=False, variant_self=True, required=False, skipped=False)"} {"timestamp": "2026-08-07T00:00:52.235548+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 만월제 무령 (prop, t2i_count=0, base_for_variant=False, variant_self=False, required=False, skipped=True)"} {"timestamp": "2026-08-07T00:00:52.235562+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 구창모 (character, t2i_count=6, base_for_variant=False, variant_self=False, required=True, skipped=False)"} {"timestamp": "2026-08-07T00:00:52.235575+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 강영란(흰 머리 여자) (character, t2i_count=7, base_for_variant=True, variant_self=False, required=True, skipped=False)"} {"timestamp": "2026-08-07T00:00:52.235589+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 노란색 폴리스 라인 (prop, t2i_count=0, base_for_variant=False, variant_self=False, required=False, skipped=True)"} {"timestamp": "2026-08-07T00:00:52.235603+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 금월도 마을 주민 (character, t2i_count=4, base_for_variant=True, variant_self=False, required=True, skipped=False)"} {"timestamp": "2026-08-07T00:00:52.235616+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 조 형사 (character, t2i_count=0, base_for_variant=False, variant_self=False, required=False, skipped=True)"} {"timestamp": "2026-08-07T00:00:52.235629+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 손전등 (prop, t2i_count=0, base_for_variant=False, variant_self=False, required=False, skipped=True)"} {"timestamp": "2026-08-07T00:00:52.235642+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 결박용 밧줄·가죽끈 (prop, t2i_count=0, base_for_variant=False, variant_self=False, required=False, skipped=True)"} {"timestamp": "2026-08-07T00:00:52.235670+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 금월도 마을 청년 (character, t2i_count=5, base_for_variant=False, variant_self=False, required=True, skipped=False)"} {"timestamp": "2026-08-07T00:00:52.235684+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 검은 염소 머리 (prop, t2i_count=0, base_for_variant=False, variant_self=False, required=False, skipped=True)"} {"timestamp": "2026-08-07T00:00:52.235698+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 황봉업(황 씨) (character, t2i_count=2, base_for_variant=False, variant_self=False, required=True, skipped=False)"} {"timestamp": "2026-08-07T00:00:52.235712+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 강영란(흰 머리 여자) (육혈귀 각성 상태) (character, t2i_count=2, base_for_variant=False, variant_self=True, required=True, skipped=False)"} {"timestamp": "2026-08-07T00:00:52.235725+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 강영란의 의식용 칼(신칼) (prop, t2i_count=0, base_for_variant=False, variant_self=False, required=False, skipped=True)"} {"timestamp": "2026-08-07T00:00:52.235739+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 검은 염소 (초자연적 각성 상태) (character, t2i_count=0, base_for_variant=False, variant_self=True, required=False, skipped=False)"} {"timestamp": "2026-08-07T00:00:52.235753+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 경신 대기근의 어린 한국인 꼬마 아이 (character, t2i_count=0, base_for_variant=False, variant_self=False, required=False, skipped=True)"} {"timestamp": "2026-08-07T00:00:52.235766+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 도축용 칼·식칼 (prop, t2i_count=0, base_for_variant=False, variant_self=False, required=False, skipped=True)"} {"timestamp": "2026-08-07T00:00:52.235789+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 그분(버스 창문 반사 형상) (character, t2i_count=0, base_for_variant=False, variant_self=True, required=False, skipped=False)"} {"timestamp": "2026-08-07T00:00:52.235803+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 경신 대기근의 아낙 (character, t2i_count=0, base_for_variant=True, variant_self=False, required=False, skipped=False)"} {"timestamp": "2026-08-07T00:00:52.235816+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 김여상 (character, t2i_count=3, base_for_variant=False, variant_self=False, required=True, skipped=False)"} {"timestamp": "2026-08-07T00:00:52.235830+00:00", "level": "INFO", "logger": "app.services.reference_pipeline_orchestrator", "message": "Low-freq decision: 정인우 (character, t2i_count=16, base_for_variant=False, variant_self=False, required=True, skipped=False)"} {"timestamp": "2026-08-07T00:00:52.286762+00:00", "level": "INFO", "logger": "app.services.reference_phase2_service", "message": "Generating 13 standalone outfit images (parallel)"} 09:00:52 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-08-07T00:00:52.289374+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 09:00:58 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-07T00:00:58.357163+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 09:00:58 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-08-07T00:00:58.359224+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 09:00:58 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-08-07T00:00:58.368436+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 09:01:02 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-07T00:01:02.211033+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 09:01:02 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-08-07T00:01:02.214315+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 09:01:02 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-08-07T00:01:02.225036+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 09:01:06 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-07T00:01:06.064767+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 09:01:06 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-08-07T00:01:06.067840+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 09:01:06 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-08-07T00:01:06.077962+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 09:01:09 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-07T00:01:09.930859+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 09:01:09 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-08-07T00:01:09.933957+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 09:01:09 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-08-07T00:01:09.944527+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 09:01:13 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-07T00:01:13.404900+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 09:01:13 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-08-07T00:01:13.406992+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 09:01:13 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-08-07T00:01:13.418993+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 09:01:18 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-07T00:01:18.329491+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 09:01:18 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-08-07T00:01:18.332515+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 09:01:18 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-08-07T00:01:18.342548+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 09:01:22 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-07T00:01:22.198644+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 09:01:22 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-08-07T00:01:22.201615+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 09:01:22 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-08-07T00:01:22.213827+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 09:01:25 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-07T00:01:25.661528+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 09:01:25 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-08-07T00:01:25.664359+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 09:01:25 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-08-07T00:01:25.677558+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 09:01:29 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-07T00:01:29.520417+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 09:01:29 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-08-07T00:01:29.523188+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 09:01:29 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-08-07T00:01:29.536070+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 09:01:35 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-07T00:01:35.609982+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 09:01:35 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-08-07T00:01:35.612922+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 09:01:35 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-08-07T00:01:35.621965+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 09:01:40 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-07T00:01:40.709880+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 09:01:40 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-08-07T00:01:40.712309+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 09:01:40 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-08-07T00:01:40.723655+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 09:01:44 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-07T00:01:44.749630+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 09:01:44 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-08-07T00:01:44.751640+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} 09:01:44 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-08-07T00:01:44.761173+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 09:01:48 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-07T00:01:48.609607+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 09:01:48 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-08-07T00:01:48.610875+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-07T00:01:48.633659+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Generating reference image for: 경찰근무복 (type=outlook)"} {"timestamp": "2026-08-07T00:01:48.633996+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Generating reference image for: 어부작업복 (type=outlook)"} {"timestamp": "2026-08-07T00:01:48.635150+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Generating reference image for: 어두운색일상복 (type=outlook)"} {"timestamp": "2026-08-07T00:01:48.635929+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Generating reference image for: 누더기조선아낙복 (type=outlook)"} {"timestamp": "2026-08-07T00:01:48.636300+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Generating reference image for: 고급외출복 (type=outlook)"} {"timestamp": "2026-08-07T00:01:48.637984+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Generating reference image for: 붉은색무녀복 (type=outlook)"} {"timestamp": "2026-08-07T00:01:48.638168+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Generating reference image for: 신상낚시복 (type=outlook)"} {"timestamp": "2026-08-07T00:01:48.638652+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Generating reference image for: 어촌주민일상복 (type=outlook)"} {"timestamp": "2026-08-07T00:01:48.638849+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Generating reference image for: 단아생활한복 (type=outlook)"} {"timestamp": "2026-08-07T00:01:48.638991+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Generating reference image for: 물류센터작업복 (type=outlook)"} {"timestamp": "2026-08-07T00:01:48.639334+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Using type-specific ref prompt template for 어부작업복 (outlook)"} {"timestamp": "2026-08-07T00:01:48.639908+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Generating reference image for: 단정캐주얼복 (type=outlook)"} {"timestamp": "2026-08-07T00:01:48.640151+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Using type-specific ref prompt template for 경찰근무복 (outlook)"} {"timestamp": "2026-08-07T00:01:48.640347+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Using type-specific ref prompt template for 어두운색일상복 (outlook)"} {"timestamp": "2026-08-07T00:01:48.640454+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Generating reference image for: 피묻은누더기조선아낙복 (type=outlook)"} {"timestamp": "2026-08-07T00:01:48.640699+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Generating reference image for: 피묻은검은색생활한복 (type=outlook)"} {"timestamp": "2026-08-07T00:01:48.641208+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Using type-specific ref prompt template for 누더기조선아낙복 (outlook)"} {"timestamp": "2026-08-07T00:01:48.641606+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Using type-specific ref prompt template for 고급외출복 (outlook)"} {"timestamp": "2026-08-07T00:01:48.642492+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Using type-specific ref prompt template for 어촌주민일상복 (outlook)"} {"timestamp": "2026-08-07T00:01:48.643471+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Using type-specific ref prompt template for 붉은색무녀복 (outlook)"} {"timestamp": "2026-08-07T00:01:48.644395+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Using type-specific ref prompt template for 신상낚시복 (outlook)"} {"timestamp": "2026-08-07T00:01:48.645209+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Using type-specific ref prompt template for 단아생활한복 (outlook)"} {"timestamp": "2026-08-07T00:01:48.645474+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Using type-specific ref prompt template for 물류센터작업복 (outlook)"} {"timestamp": "2026-08-07T00:01:48.646596+00:00", "level": "INFO", "logger": "app.modules.llm.gemini_key_pool", "message": "Gemini key pool: 1 key(s) loaded"} {"timestamp": "2026-08-07T00:01:48.647482+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Using type-specific ref prompt template for 피묻은누더기조선아낙복 (outlook)"} {"timestamp": "2026-08-07T00:01:48.648839+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Using type-specific ref prompt template for 피묻은검은색생활한복 (outlook)"} {"timestamp": "2026-08-07T00:01:48.650635+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Using type-specific ref prompt template for 단정캐주얼복 (outlook)"} OPIK: Started logging traces to the "theroad-scene-lab" project at https://www.comet.com/opik/api/v1/session/redirect/projects/?trace_id=019fd986-c6f0-7f54-bdce-93ba097309ca&path=aHR0cHM6Ly93d3cuY29tZXQuY29tL29waWsvYXBpLw==. {"timestamp": "2026-08-07T00:01:56.575252+00:00", "level": "INFO", "logger": "app.modules.llm.image_format", "message": "ensure_png_bytes: JPEG → PNG 정규화 (482575 → 964857 bytes) [gemini-3.1-flash-image-preview/ref_image_gen_phase2_outlook]"} 09:01:56 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-07T00:01:56.656143+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} {"timestamp": "2026-08-07T00:01:56.707042+00:00", "level": "INFO", "logger": "app.modules.llm.image_format", "message": "ensure_png_bytes: JPEG → PNG 정규화 (468314 → 946618 bytes) [gemini-3.1-flash-image-preview/ref_image_gen_phase2_outlook]"} 09:01:56 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-07T00:01:56.791913+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} {"timestamp": "2026-08-07T00:01:56.880904+00:00", "level": "INFO", "logger": "app.modules.llm.image_format", "message": "ensure_png_bytes: JPEG → PNG 정규화 (583295 → 1140544 bytes) [gemini-3.1-flash-image-preview/ref_image_gen_phase2_outlook]"} 09:01:56 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-07T00:01:56.972548+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} {"timestamp": "2026-08-07T00:01:57.029388+00:00", "level": "INFO", "logger": "app.modules.llm.image_format", "message": "ensure_png_bytes: JPEG → PNG 정규화 (448529 → 885803 bytes) [gemini-3.1-flash-image-preview/ref_image_gen_phase2_outlook]"} {"timestamp": "2026-08-07T00:01:57.036634+00:00", "level": "INFO", "logger": "app.modules.llm.image_format", "message": "ensure_png_bytes: JPEG → PNG 정규화 (507172 → 938233 bytes) [gemini-3.1-flash-image-preview/ref_image_gen_phase2_outlook]"} {"timestamp": "2026-08-07T00:01:57.064391+00:00", "level": "INFO", "logger": "app.modules.llm.image_format", "message": "ensure_png_bytes: JPEG → PNG 정규화 (584486 → 1126577 bytes) [gemini-3.1-flash-image-preview/ref_image_gen_phase2_outlook]"} 09:01:57 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-07T00:01:57.107796+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 09:01:57 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-07T00:01:57.120951+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 09:01:57 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-07T00:01:57.153052+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} {"timestamp": "2026-08-07T00:01:57.177812+00:00", "level": "INFO", "logger": "app.modules.llm.image_format", "message": "ensure_png_bytes: JPEG → PNG 정규화 (628934 → 1262213 bytes) [gemini-3.1-flash-image-preview/ref_image_gen_phase2_outlook]"} 09:01:57 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-07T00:01:57.262802+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} {"timestamp": "2026-08-07T00:01:57.346798+00:00", "level": "INFO", "logger": "app.modules.llm.image_format", "message": "ensure_png_bytes: JPEG → PNG 정규화 (511112 → 1008985 bytes) [gemini-3.1-flash-image-preview/ref_image_gen_phase2_outlook]"} 09:01:57 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-07T00:01:57.424499+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} {"timestamp": "2026-08-07T00:01:57.599041+00:00", "level": "INFO", "logger": "app.modules.llm.image_format", "message": "ensure_png_bytes: JPEG → PNG 정규화 (455824 → 900793 bytes) [gemini-3.1-flash-image-preview/ref_image_gen_phase2_outlook]"} {"timestamp": "2026-08-07T00:01:57.638920+00:00", "level": "INFO", "logger": "app.modules.llm.image_format", "message": "ensure_png_bytes: JPEG → PNG 정규화 (577432 → 1153686 bytes) [gemini-3.1-flash-image-preview/ref_image_gen_phase2_outlook]"} 09:01:57 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-07T00:01:57.670751+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 09:01:57 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-07T00:01:57.723691+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} {"timestamp": "2026-08-07T00:01:57.817891+00:00", "level": "INFO", "logger": "app.modules.llm.image_format", "message": "ensure_png_bytes: JPEG → PNG 정규화 (524788 → 1052423 bytes) [gemini-3.1-flash-image-preview/ref_image_gen_phase2_outlook]"} 09:01:57 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-07T00:01:57.892207+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} {"timestamp": "2026-08-07T00:01:58.105572+00:00", "level": "INFO", "logger": "app.modules.llm.image_format", "message": "ensure_png_bytes: JPEG → PNG 정규화 (513377 → 959625 bytes) [gemini-3.1-flash-image-preview/ref_image_gen_phase2_outlook]"} 09:01:58 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-07T00:01:58.184785+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} {"timestamp": "2026-08-07T00:01:58.819667+00:00", "level": "INFO", "logger": "app.modules.llm.image_format", "message": "ensure_png_bytes: JPEG → PNG 정규화 (575035 → 1125791 bytes) [gemini-3.1-flash-image-preview/ref_image_gen_phase2_outlook]"} 09:01:58 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-07T00:01:58.898610+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 09:02:00 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-07T00:02:00.330385+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 09:02:00 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-07T00:02:00.345852+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-07T00:02:00.365641+00:00", "level": "INFO", "logger": "app.services.reference_phase2_service", "message": "Standalone outfit generated: 어부작업복"} 09:02:00 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-07T00:02:00.410783+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 09:02:00 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-07T00:02:00.418091+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-07T00:02:00.430278+00:00", "level": "INFO", "logger": "app.services.reference_phase2_service", "message": "Standalone outfit generated: 어두운색일상복"} 09:02:00 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-07T00:02:00.857734+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 09:02:00 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-07T00:02:00.869328+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-07T00:02:00.884256+00:00", "level": "INFO", "logger": "app.services.reference_phase2_service", "message": "Standalone outfit generated: 누더기조선아낙복"} 09:02:00 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-07T00:02:00.957919+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 09:02:00 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-07T00:02:00.967418+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-07T00:02:00.978589+00:00", "level": "INFO", "logger": "app.services.reference_phase2_service", "message": "Standalone outfit generated: 신상낚시복"} 09:02:01 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-07T00:02:01.245704+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 09:02:01 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-07T00:02:01.256065+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-07T00:02:01.268794+00:00", "level": "INFO", "logger": "app.services.reference_phase2_service", "message": "Standalone outfit generated: 물류센터작업복"} 09:02:01 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-07T00:02:01.389879+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 09:02:01 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-07T00:02:01.398963+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-07T00:02:01.412944+00:00", "level": "INFO", "logger": "app.services.reference_phase2_service", "message": "Standalone outfit generated: 단정캐주얼복"} 09:02:01 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-07T00:02:01.425780+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 09:02:01 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-07T00:02:01.433598+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-07T00:02:01.444135+00:00", "level": "INFO", "logger": "app.services.reference_phase2_service", "message": "Standalone outfit generated: 고급외출복"} 09:02:03 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-07T00:02:03.202691+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 09:02:03 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-07T00:02:03.215180+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-07T00:02:03.229639+00:00", "level": "INFO", "logger": "app.services.reference_phase2_service", "message": "Standalone outfit generated: 어촌주민일상복"} 09:02:05 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-07T00:02:05.280398+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 09:02:05 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-07T00:02:05.294399+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-07T00:02:05.307526+00:00", "level": "INFO", "logger": "app.services.reference_phase2_service", "message": "Standalone outfit generated: 붉은색무녀복"} 09:02:05 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-07T00:02:05.960103+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 09:02:05 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-07T00:02:05.972585+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-07T00:02:05.994797+00:00", "level": "INFO", "logger": "app.services.reference_phase2_service", "message": "Standalone outfit generated: 피묻은누더기조선아낙복"} 09:02:06 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-07T00:02:06.528348+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 09:02:06 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-07T00:02:06.539958+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-07T00:02:06.552579+00:00", "level": "INFO", "logger": "app.services.reference_phase2_service", "message": "Standalone outfit generated: 단아생활한복"} 09:02:07 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-07T00:02:07.083603+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 09:02:07 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-07T00:02:07.095077+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-07T00:02:07.110522+00:00", "level": "INFO", "logger": "app.services.reference_phase2_service", "message": "Standalone outfit generated: 경찰근무복"} 09:02:10 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-07T00:02:10.027712+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 09:02:10 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-07T00:02:10.039316+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-07T00:02:10.055683+00:00", "level": "INFO", "logger": "app.services.reference_phase2_service", "message": "Standalone outfit generated: 피묻은검은색생활한복"} {"timestamp": "2026-08-07T00:02:10.445665+00:00", "level": "INFO", "logger": "app.services.reference_phase3_service", "message": "Generating 30 composite images (face + outfit refs)"} {"timestamp": "2026-08-07T00:02:10.449847+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Generating reference image for: 강영란(흰 머리 여자) (단아생활한복) (type=composite)"} {"timestamp": "2026-08-07T00:02:10.451377+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Generating reference image for: 강영란(흰 머리 여자) (순백색무녀복) (type=composite)"} {"timestamp": "2026-08-07T00:02:10.452872+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Generating reference image for: 강영란(흰 머리 여자) (붉은색무녀복) (type=composite)"} {"timestamp": "2026-08-07T00:02:10.453510+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Generating reference image for: 김지후(강수리영) (물류센터작업복) (type=composite)"} {"timestamp": "2026-08-07T00:02:10.453908+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Generating reference image for: 김지후(강수리영) (어두운색일상복) (type=composite)"} {"timestamp": "2026-08-07T00:02:10.455191+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Generating reference image for: 검은 염소 (청년작업복) (type=composite)"} {"timestamp": "2026-08-07T00:02:10.455797+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Using type-specific ref prompt template for 강영란(흰 머리 여자) (단아생활한복) (composite)"} {"timestamp": "2026-08-07T00:02:10.463967+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Generating reference image for: 강민숙(홍은미) (낡은수감복) (type=composite)"} {"timestamp": "2026-08-07T00:02:10.482169+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Generating reference image for: 김지후(강수리영) (흰색제물복) (type=composite)"} {"timestamp": "2026-08-07T00:02:10.482407+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Generating reference image for: 황봉업(황 씨) (어부작업복) (type=composite)"} {"timestamp": "2026-08-07T00:02:10.482942+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Generating reference image for: 강민숙(홍은미) (고급외출복) (type=composite)"} {"timestamp": "2026-08-07T00:02:10.483666+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Generating reference image for: 구창모 (화려한사복) (type=composite)"} {"timestamp": "2026-08-07T00:02:10.483919+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Using type-specific ref prompt template for 강영란(흰 머리 여자) (순백색무녀복) (composite)"} {"timestamp": "2026-08-07T00:02:10.499511+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Using type-specific ref prompt template for 강영란(흰 머리 여자) (붉은색무녀복) (composite)"} {"timestamp": "2026-08-07T00:02:10.514753+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Generating reference image for: 경신 대기근의 아낙 (누더기조선아낙복) (type=composite)"} {"timestamp": "2026-08-07T00:02:10.515305+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Generating reference image for: 구창모 (경찰근무복) (type=composite)"} {"timestamp": "2026-08-07T00:02:10.515378+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Using type-specific ref prompt template for 김지후(강수리영) (물류센터작업복) (composite)"} {"timestamp": "2026-08-07T00:02:10.526113+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Using type-specific ref prompt template for 김지후(강수리영) (어두운색일상복) (composite)"} {"timestamp": "2026-08-07T00:02:10.536285+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Using type-specific ref prompt template for 김지후(강수리영) (흰색제물복) (composite)"} {"timestamp": "2026-08-07T00:02:10.545697+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Using type-specific ref prompt template for 검은 염소 (청년작업복) (composite)"} {"timestamp": "2026-08-07T00:02:10.556395+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Using type-specific ref prompt template for 강민숙(홍은미) (낡은수감복) (composite)"} {"timestamp": "2026-08-07T00:02:10.567010+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Generating reference image for: 과거의 조선인 육혈귀 생존자 (각성 상태) (피묻은피난민조선복) (type=composite)"} {"timestamp": "2026-08-07T00:02:10.567113+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Using type-specific ref prompt template for 황봉업(황 씨) (어부작업복) (composite)"} {"timestamp": "2026-08-07T00:02:10.577900+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Using type-specific ref prompt template for 강민숙(홍은미) (고급외출복) (composite)"} {"timestamp": "2026-08-07T00:02:10.587778+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Generating reference image for: 강영란(흰 머리 여자) (육혈귀 각성 상태) (피묻은순백무녀복) (type=composite)"} {"timestamp": "2026-08-07T00:02:10.588514+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Using type-specific ref prompt template for 구창모 (화려한사복) (composite)"} {"timestamp": "2026-08-07T00:02:10.598487+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Using type-specific ref prompt template for 구창모 (경찰근무복) (composite)"} {"timestamp": "2026-08-07T00:02:10.608145+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Using type-specific ref prompt template for 경신 대기근의 아낙 (누더기조선아낙복) (composite)"} {"timestamp": "2026-08-07T00:02:10.620634+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Using type-specific ref prompt template for 과거의 조선인 육혈귀 생존자 (각성 상태) (피묻은피난민조선복) (composite)"} {"timestamp": "2026-08-07T00:02:10.628729+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Using type-specific ref prompt template for 강영란(흰 머리 여자) (육혈귀 각성 상태) (피묻은순백무녀복) (composite)"} {"timestamp": "2026-08-07T00:02:18.782842+00:00", "level": "INFO", "logger": "app.modules.llm.image_format", "message": "ensure_png_bytes: JPEG → PNG 정규화 (428749 → 914744 bytes) [gemini-3.1-flash-image-preview/ref_image_gen_composite]"} 09:02:18 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-07T00:02:18.862157+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} {"timestamp": "2026-08-07T00:02:19.611350+00:00", "level": "INFO", "logger": "app.modules.llm.image_format", "message": "ensure_png_bytes: JPEG → PNG 정규화 (362571 → 771844 bytes) [gemini-3.1-flash-image-preview/ref_image_gen_composite]"} 09:02:19 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-07T00:02:19.686374+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} {"timestamp": "2026-08-07T00:02:19.860687+00:00", "level": "INFO", "logger": "app.modules.llm.image_format", "message": "ensure_png_bytes: JPEG → PNG 정규화 (373307 → 806152 bytes) [gemini-3.1-flash-image-preview/ref_image_gen_composite]"} {"timestamp": "2026-08-07T00:02:19.862065+00:00", "level": "INFO", "logger": "app.modules.llm.image_format", "message": "ensure_png_bytes: JPEG → PNG 정규화 (400902 → 903272 bytes) [gemini-3.1-flash-image-preview/ref_image_gen_composite]"} 09:02:19 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-07T00:02:19.942688+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 09:02:19 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-07T00:02:19.953906+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} {"timestamp": "2026-08-07T00:02:20.119073+00:00", "level": "INFO", "logger": "app.modules.llm.image_format", "message": "ensure_png_bytes: JPEG → PNG 정규화 (454292 → 990856 bytes) [gemini-3.1-flash-image-preview/ref_image_gen_composite]"} {"timestamp": "2026-08-07T00:02:20.150013+00:00", "level": "INFO", "logger": "app.modules.llm.image_format", "message": "ensure_png_bytes: JPEG → PNG 정규화 (468242 → 1012156 bytes) [gemini-3.1-flash-image-preview/ref_image_gen_composite]"} {"timestamp": "2026-08-07T00:02:20.162763+00:00", "level": "INFO", "logger": "app.modules.llm.image_format", "message": "ensure_png_bytes: JPEG → PNG 정규화 (375440 → 754984 bytes) [gemini-3.1-flash-image-preview/ref_image_gen_composite]"} 09:02:20 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-07T00:02:20.207667+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 09:02:20 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-07T00:02:20.243635+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 09:02:20 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-07T00:02:20.251050+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} {"timestamp": "2026-08-07T00:02:20.298455+00:00", "level": "INFO", "logger": "app.modules.llm.image_format", "message": "ensure_png_bytes: JPEG → PNG 정규화 (467635 → 1047101 bytes) [gemini-3.1-flash-image-preview/ref_image_gen_composite]"} {"timestamp": "2026-08-07T00:02:20.305208+00:00", "level": "INFO", "logger": "app.modules.llm.image_format", "message": "ensure_png_bytes: JPEG → PNG 정규화 (414088 → 902337 bytes) [gemini-3.1-flash-image-preview/ref_image_gen_composite]"} {"timestamp": "2026-08-07T00:02:20.315114+00:00", "level": "INFO", "logger": "app.modules.llm.image_format", "message": "ensure_png_bytes: JPEG → PNG 정규화 (396387 → 861513 bytes) [gemini-3.1-flash-image-preview/ref_image_gen_composite]"} 09:02:20 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-07T00:02:20.386792+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 09:02:20 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-07T00:02:20.397134+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 09:02:20 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-07T00:02:20.407855+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} {"timestamp": "2026-08-07T00:02:20.654569+00:00", "level": "INFO", "logger": "app.modules.llm.image_format", "message": "ensure_png_bytes: JPEG → PNG 정규화 (433951 → 878529 bytes) [gemini-3.1-flash-image-preview/ref_image_gen_composite]"} 09:02:20 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-07T00:02:20.733309+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} {"timestamp": "2026-08-07T00:02:21.464433+00:00", "level": "INFO", "logger": "app.modules.llm.image_format", "message": "ensure_png_bytes: JPEG → PNG 정규화 (403034 → 869926 bytes) [gemini-3.1-flash-image-preview/ref_image_gen_composite]"} 09:02:21 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-07T00:02:21.546230+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} {"timestamp": "2026-08-07T00:02:21.614476+00:00", "level": "INFO", "logger": "app.modules.llm.image_format", "message": "ensure_png_bytes: JPEG → PNG 정규화 (458944 → 980660 bytes) [gemini-3.1-flash-image-preview/ref_image_gen_composite]"} 09:02:21 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-07T00:02:21.689916+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} {"timestamp": "2026-08-07T00:02:23.397489+00:00", "level": "INFO", "logger": "app.modules.llm.image_format", "message": "ensure_png_bytes: JPEG → PNG 정규화 (387062 → 812059 bytes) [gemini-3.1-flash-image-preview/ref_image_gen_composite]"} 09:02:23 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-07T00:02:23.473358+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 09:02:23 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-07T00:02:23.576716+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 09:02:23 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-07T00:02:23.576970+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-07T00:02:23.579718+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Generating reference image for: 김지후(강수리영) (그분 빙의 상태) (피묻은흰색제물복) (type=composite)"} {"timestamp": "2026-08-07T00:02:23.579828+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Using type-specific ref prompt template for 김지후(강수리영) (그분 빙의 상태) (피묻은흰색제물복) (composite)"} 09:02:23 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-07T00:02:23.590735+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 09:02:23 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-07T00:02:23.590963+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-07T00:02:23.594219+00:00", "level": "INFO", "logger": "app.services.reference_phase3_service", "message": "Composite generated: 강영란(흰 머리 여자) + 순백색무녀복"} {"timestamp": "2026-08-07T00:02:23.594287+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Severe issue for 구창모 (화려한사복) — regenerating"} {"timestamp": "2026-08-07T00:02:23.640845+00:00", "level": "INFO", "logger": "app.modules.llm.image_format", "message": "ensure_png_bytes: JPEG → PNG 정규화 (591413 → 1187617 bytes) [gemini-3.1-flash-image-preview/ref_image_gen_composite]"} 09:02:23 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-07T00:02:23.720395+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 09:02:23 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-07T00:02:23.936836+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 09:02:23 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-07T00:02:23.943858+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-07T00:02:23.946256+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Severe issue for 강영란(흰 머리 여자) (단아생활한복) — regenerating"} 09:02:24 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-07T00:02:24.132262+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 09:02:24 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-07T00:02:24.141161+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-07T00:02:24.144337+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Generating reference image for: 정인우 (단정캐주얼복) (type=composite)"} {"timestamp": "2026-08-07T00:02:24.144693+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Using type-specific ref prompt template for 정인우 (단정캐주얼복) (composite)"} {"timestamp": "2026-08-07T00:02:24.164643+00:00", "level": "INFO", "logger": "app.services.reference_phase3_service", "message": "Composite generated: 경신 대기근의 아낙 + 누더기조선아낙복"} 09:02:25 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-07T00:02:25.040007+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 09:02:25 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-07T00:02:25.049040+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-07T00:02:25.051346+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Severe issue for 김지후(강수리영) (흰색제물복) — regenerating"} 09:02:25 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-07T00:02:25.599127+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 09:02:25 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-07T00:02:25.610845+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-07T00:02:25.613557+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Severe issue for 강민숙(홍은미) (낡은수감복) — regenerating"} 09:02:25 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-07T00:02:25.732286+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 09:02:25 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-07T00:02:25.734866+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 09:02:25 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-07T00:02:25.746731+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 09:02:25 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-07T00:02:25.753871+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 09:02:25 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-07T00:02:25.762761+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 09:02:25 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-07T00:02:25.763832+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-07T00:02:25.764268+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Generating reference image for: 정인우 (위장낚시복) (type=composite)"} {"timestamp": "2026-08-07T00:02:25.764955+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Generating reference image for: 고산들 (어두운작업복) (type=composite)"} {"timestamp": "2026-08-07T00:02:25.765656+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Generating reference image for: 김여상 (신상낚시복) (type=composite)"} {"timestamp": "2026-08-07T00:02:25.765871+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Using type-specific ref prompt template for 정인우 (위장낚시복) (composite)"} {"timestamp": "2026-08-07T00:02:25.784454+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Using type-specific ref prompt template for 고산들 (어두운작업복) (composite)"} {"timestamp": "2026-08-07T00:02:25.800799+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Using type-specific ref prompt template for 김여상 (신상낚시복) (composite)"} {"timestamp": "2026-08-07T00:02:25.815048+00:00", "level": "INFO", "logger": "app.services.reference_phase3_service", "message": "Composite generated: 황봉업(황 씨) + 어부작업복"} {"timestamp": "2026-08-07T00:02:25.821976+00:00", "level": "INFO", "logger": "app.services.reference_phase3_service", "message": "Composite generated: 검은 염소 + 청년작업복"} {"timestamp": "2026-08-07T00:02:25.826398+00:00", "level": "INFO", "logger": "app.services.reference_phase3_service", "message": "Composite generated: 강민숙(홍은미) + 고급외출복"} 09:02:26 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-07T00:02:26.057945+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 09:02:26 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-07T00:02:26.068935+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-07T00:02:26.072315+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Severe issue for 강영란(흰 머리 여자) (붉은색무녀복) — regenerating"} 09:02:27 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-07T00:02:27.417742+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 09:02:27 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-07T00:02:27.428592+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-07T00:02:27.431958+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Generating reference image for: 금월도 마을 주민 (어촌주민일상복) (type=composite)"} {"timestamp": "2026-08-07T00:02:27.432403+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Using type-specific ref prompt template for 금월도 마을 주민 (어촌주민일상복) (composite)"} {"timestamp": "2026-08-07T00:02:27.460604+00:00", "level": "INFO", "logger": "app.services.reference_phase3_service", "message": "Composite generated: 구창모 + 경찰근무복"} 09:02:27 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-07T00:02:27.961432+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 09:02:27 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-07T00:02:27.970303+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 09:02:27 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-07T00:02:27.979664+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 09:02:27 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-07T00:02:27.979937+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-07T00:02:27.980182+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Severe issue for 강영란(흰 머리 여자) (육혈귀 각성 상태) (피묻은순백무녀복) — regenerating"} {"timestamp": "2026-08-07T00:02:28.000421+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Generating reference image for: 금월도 마을 주민 (검은색생활한복) (type=composite)"} {"timestamp": "2026-08-07T00:02:28.000713+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Using type-specific ref prompt template for 금월도 마을 주민 (검은색생활한복) (composite)"} {"timestamp": "2026-08-07T00:02:28.021692+00:00", "level": "INFO", "logger": "app.services.reference_phase3_service", "message": "Composite generated: 김지후(강수리영) + 어두운색일상복"} 09:02:28 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-07T00:02:28.896537+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 09:02:28 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-07T00:02:28.904768+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-07T00:02:28.909587+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Generating reference image for: 조선인 촌주 (그분 빙의 상태) (빙의된조선시대평민복) (type=composite)"} {"timestamp": "2026-08-07T00:02:28.909977+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Using type-specific ref prompt template for 조선인 촌주 (그분 빙의 상태) (빙의된조선시대평민복) (composite)"} {"timestamp": "2026-08-07T00:02:28.937902+00:00", "level": "INFO", "logger": "app.services.reference_phase3_service", "message": "Composite generated: 김지후(강수리영) + 물류센터작업복"} 09:02:31 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-07T00:02:31.468770+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 09:02:31 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-07T00:02:31.481485+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-07T00:02:31.484612+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Severe issue for 과거의 조선인 육혈귀 생존자 (각성 상태) (피묻은피난민조선복) — regenerating"} {"timestamp": "2026-08-07T00:02:31.966323+00:00", "level": "INFO", "logger": "app.modules.llm.image_format", "message": "ensure_png_bytes: JPEG → PNG 정규화 (382281 → 840025 bytes) [gemini-3.1-flash-image-preview/ref_image_gen_composite]"} 09:02:31 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-07T00:02:31.970374+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} {"timestamp": "2026-08-07T00:02:32.422921+00:00", "level": "INFO", "logger": "app.modules.llm.image_format", "message": "ensure_png_bytes: JPEG → PNG 정규화 (401140 → 870630 bytes) [gemini-3.1-flash-image-preview/ref_image_gen_composite]"} 09:02:32 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-07T00:02:32.499034+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} {"timestamp": "2026-08-07T00:02:33.604904+00:00", "level": "INFO", "logger": "app.modules.llm.image_format", "message": "ensure_png_bytes: JPEG → PNG 정규화 (416106 → 889935 bytes) [gemini-3.1-flash-image-preview/ref_image_gen_composite]"} 09:02:33 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-07T00:02:33.608697+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} {"timestamp": "2026-08-07T00:02:33.705673+00:00", "level": "INFO", "logger": "app.modules.llm.image_format", "message": "ensure_png_bytes: JPEG → PNG 정규화 (466711 → 1046320 bytes) [gemini-3.1-flash-image-preview/ref_image_gen_composite]"} 09:02:33 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-07T00:02:33.790641+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} {"timestamp": "2026-08-07T00:02:33.928428+00:00", "level": "INFO", "logger": "app.modules.llm.image_format", "message": "ensure_png_bytes: JPEG → PNG 정규화 (382675 → 800445 bytes) [gemini-3.1-flash-image-preview/ref_image_gen_composite]"} 09:02:33 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-07T00:02:33.932887+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} {"timestamp": "2026-08-07T00:02:34.036079+00:00", "level": "INFO", "logger": "app.modules.llm.image_format", "message": "ensure_png_bytes: JPEG → PNG 정규화 (464913 → 1069353 bytes) [gemini-3.1-flash-image-preview/ref_image_gen_composite]"} 09:02:34 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-07T00:02:34.126474+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} {"timestamp": "2026-08-07T00:02:34.176548+00:00", "level": "INFO", "logger": "app.modules.llm.image_format", "message": "ensure_png_bytes: JPEG → PNG 정규화 (463030 → 1037760 bytes) [gemini-3.1-flash-image-preview/ref_image_gen_composite]"} 09:02:34 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-07T00:02:34.183403+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} {"timestamp": "2026-08-07T00:02:34.477801+00:00", "level": "INFO", "logger": "app.modules.llm.image_format", "message": "ensure_png_bytes: JPEG → PNG 정규화 (438394 → 983624 bytes) [gemini-3.1-flash-image-preview/ref_image_gen_composite]"} 09:02:34 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-07T00:02:34.557410+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} {"timestamp": "2026-08-07T00:02:34.802466+00:00", "level": "INFO", "logger": "app.modules.llm.image_format", "message": "ensure_png_bytes: JPEG → PNG 정규화 (437880 → 959017 bytes) [gemini-3.1-flash-image-preview/ref_image_gen_composite]"} 09:02:34 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-07T00:02:34.806907+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} {"timestamp": "2026-08-07T00:02:34.815303+00:00", "level": "INFO", "logger": "app.modules.llm.image_format", "message": "ensure_png_bytes: JPEG → PNG 정규화 (389526 → 866327 bytes) [gemini-3.1-flash-image-preview/ref_image_gen_composite]"} 09:02:34 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-07T00:02:34.901872+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 09:02:37 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-07T00:02:37.880668+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 09:02:37 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-07T00:02:37.880942+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-07T00:02:37.885291+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Comparison for 구창모 (화려한사복): winner=image_1 reason=두 이미지 모두 의상이 소박하지만, image_1은 검은 전통 모자와 목 부분의 대비되는 옷깃이 더해져 image_2보다 차림새가 상대적으로 화려하고 완성도 있게 보입니다."} {"timestamp": "2026-08-07T00:02:37.885760+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Generating reference image for: 금월도 마을 주민 (빙의 상태) (피묻은검은색생활한복) (type=composite)"} {"timestamp": "2026-08-07T00:02:37.885817+00:00", "level": "INFO", "logger": "app.modules.llm.image_format", "message": "ensure_png_bytes: JPEG → PNG 정규화 (421526 → 889624 bytes) [gemini-3.1-flash-image-preview/ref_image_gen_composite]"} {"timestamp": "2026-08-07T00:02:37.886000+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Using type-specific ref prompt template for 금월도 마을 주민 (빙의 상태) (피묻은검은색생활한복) (composite)"} {"timestamp": "2026-08-07T00:02:37.901508+00:00", "level": "INFO", "logger": "app.services.reference_phase3_service", "message": "Composite generated: 구창모 + 화려한사복"} {"timestamp": "2026-08-07T00:02:37.941192+00:00", "level": "INFO", "logger": "app.modules.llm.image_format", "message": "ensure_png_bytes: JPEG → PNG 정규화 (436089 → 929531 bytes) [gemini-3.1-flash-image-preview/ref_image_gen_composite]"} 09:02:37 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-07T00:02:37.974941+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 09:02:38 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-07T00:02:38.024281+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} {"timestamp": "2026-08-07T00:02:38.240717+00:00", "level": "INFO", "logger": "app.modules.llm.image_format", "message": "ensure_png_bytes: JPEG → PNG 정규화 (481714 → 925467 bytes) [gemini-3.1-flash-image-preview/ref_image_gen_composite]"} {"timestamp": "2026-08-07T00:02:38.311903+00:00", "level": "INFO", "logger": "app.modules.llm.image_format", "message": "ensure_png_bytes: JPEG → PNG 정규화 (459845 → 968186 bytes) [gemini-3.1-flash-image-preview/ref_image_gen_composite]"} 09:02:38 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-07T00:02:38.317226+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 09:02:38 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-07T00:02:38.335104+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 09:02:38 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-07T00:02:38.502085+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 09:02:38 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-07T00:02:38.507158+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-07T00:02:38.507358+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Severe issue for 고산들 (어두운작업복) — regenerating"} 09:02:39 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-07T00:02:39.284771+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 09:02:39 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-07T00:02:39.293147+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-07T00:02:39.300980+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Comparison for 강영란(흰 머리 여자) (단아생활한복): winner=image_1 reason=두 이미지 모두 단아한 생활한복 차림이지만 흰 머리는 머리쓰개에 가려져 있습니다. 그중 image_1의 인물이 조금 더 연령대가 있어 보여 ‘흰 머리 여자 강영란’이라는 묘사에 상대적으로 더 가깝습니다."} {"timestamp": "2026-08-07T00:02:39.304875+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Generating reference image for: 조선인 촌주 (조선시대평민복) (type=composite)"} {"timestamp": "2026-08-07T00:02:39.305374+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Using type-specific ref prompt template for 조선인 촌주 (조선시대평민복) (composite)"} {"timestamp": "2026-08-07T00:02:39.329188+00:00", "level": "INFO", "logger": "app.services.reference_phase3_service", "message": "Composite generated: 강영란(흰 머리 여자) + 단아생활한복"} 09:02:39 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-07T00:02:39.525726+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 09:02:39 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-07T00:02:39.533374+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-07T00:02:39.536817+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Generating reference image for: 금월도 마을 청년 (청년작업복) (type=composite)"} {"timestamp": "2026-08-07T00:02:39.537244+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Using type-specific ref prompt template for 금월도 마을 청년 (청년작업복) (composite)"} {"timestamp": "2026-08-07T00:02:39.566965+00:00", "level": "INFO", "logger": "app.services.reference_phase3_service", "message": "Composite generated: 정인우 + 단정캐주얼복"} 09:02:39 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-07T00:02:39.929550+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 09:02:39 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-07T00:02:39.948215+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-07T00:02:39.949720+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Comparison for 강민숙(홍은미) (낡은수감복): winner=image_1 reason=두 이미지 모두 인물이 화려한 전통 예복을 입고 있어 ‘낡은 수감복’과는 맞지 않습니다. 다만 image_1이 전체적으로 색감이 조금 더 바래고 차분해 보여 ‘낡은’ 인상에 아주 근소하게 더 가깝습니다."} {"timestamp": "2026-08-07T00:02:39.951169+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Generating reference image for: 경신 대기근의 아낙 (육혈귀 변형 상태) (피묻은누더기조선아낙복) (type=composite)"} {"timestamp": "2026-08-07T00:02:39.951432+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Using type-specific ref prompt template for 경신 대기근의 아낙 (육혈귀 변형 상태) (피묻은누더기조선아낙복) (composite)"} {"timestamp": "2026-08-07T00:02:39.981817+00:00", "level": "INFO", "logger": "app.services.reference_phase3_service", "message": "Composite generated: 강민숙(홍은미) + 낡은수감복"} 09:02:39 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-07T00:02:39.985960+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 09:02:39 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-07T00:02:39.986453+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-07T00:02:39.991076+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Severe issue for 정인우 (위장낚시복) — regenerating"} 09:02:40 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-07T00:02:40.232130+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 09:02:40 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-07T00:02:40.245349+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-07T00:02:40.247141+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Severe issue for 김지후(강수리영) (그분 빙의 상태) (피묻은흰색제물복) — regenerating"} 09:02:40 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-07T00:02:40.296097+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 09:02:40 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-07T00:02:40.302519+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-07T00:02:40.303183+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Comparison for 김지후(강수리영) (흰색제물복): winner=image_1 reason=두 이미지 모두 흰색 제물복이 아니라 남색 재킷과 청바지를 착용해 설명과 맞지 않습니다. 다만 image_1이 전체적으로 조금 더 밝고 흰색 요소가 상대적으로 선명해 근소하게 더 가깝습니다."} {"timestamp": "2026-08-07T00:02:40.303989+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Generating reference image for: 일본군 병사 (일본군보병제복) (type=composite)"} {"timestamp": "2026-08-07T00:02:40.304169+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Using type-specific ref prompt template for 일본군 병사 (일본군보병제복) (composite)"} {"timestamp": "2026-08-07T00:02:40.322220+00:00", "level": "INFO", "logger": "app.services.reference_phase3_service", "message": "Composite generated: 김지후(강수리영) + 흰색제물복"} 09:02:40 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-07T00:02:40.405393+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 09:02:40 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-07T00:02:40.415386+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-07T00:02:40.418337+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Generating reference image for: 과거의 조선인 육혈귀 생존자 (피난민조선복) (type=composite)"} {"timestamp": "2026-08-07T00:02:40.418700+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Using type-specific ref prompt template for 과거의 조선인 육혈귀 생존자 (피난민조선복) (composite)"} {"timestamp": "2026-08-07T00:02:40.450146+00:00", "level": "INFO", "logger": "app.services.reference_phase3_service", "message": "Composite generated: 김여상 + 신상낚시복"} 09:02:41 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-07T00:02:41.072536+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 09:02:41 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-07T00:02:41.091209+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-07T00:02:41.092542+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Comparison for 강영란(흰 머리 여자) (붉은색무녀복): winner=image_1 reason=두 이미지 모두 붉은색 무녀복을 입은 여성이지만, image_1의 인물이 조금 더 연령대가 높고 흰머리 여성인 강영란의 인상에 가깝습니다. 붉은 전통 무녀복도 분명하게 표현되어 있습니다."} {"timestamp": "2026-08-07T00:02:41.094274+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Generating reference image for: 고산들 (육혈귀 각성 상태) (젖은어두운작업복) (type=composite)"} {"timestamp": "2026-08-07T00:02:41.094667+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Using type-specific ref prompt template for 고산들 (육혈귀 각성 상태) (젖은어두운작업복) (composite)"} {"timestamp": "2026-08-07T00:02:41.127276+00:00", "level": "INFO", "logger": "app.services.reference_phase3_service", "message": "Composite generated: 강영란(흰 머리 여자) + 붉은색무녀복"} 09:02:42 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-07T00:02:42.131490+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 09:02:42 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-07T00:02:42.139353+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-07T00:02:42.151828+00:00", "level": "INFO", "logger": "app.services.reference_phase3_service", "message": "Composite generated: 금월도 마을 주민 + 검은색생활한복"} {"timestamp": "2026-08-07T00:02:42.484897+00:00", "level": "INFO", "logger": "app.modules.llm.image_format", "message": "ensure_png_bytes: JPEG → PNG 정규화 (450151 → 955617 bytes) [gemini-3.1-flash-image-preview/ref_image_gen_composite]"} 09:02:42 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-07T00:02:42.489861+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 09:02:42 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-07T00:02:42.660562+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 09:02:42 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-07T00:02:42.665770+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-07T00:02:42.676636+00:00", "level": "INFO", "logger": "app.services.reference_phase3_service", "message": "Composite generated: 금월도 마을 주민 + 어촌주민일상복"} 09:02:43 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-07T00:02:43.107011+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 09:02:43 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-07T00:02:43.117429+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-07T00:02:43.118749+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Severe issue for 조선인 촌주 (그분 빙의 상태) (빙의된조선시대평민복) — regenerating"} 09:02:45 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-07T00:02:45.356399+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 09:02:45 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-07T00:02:45.366047+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-07T00:02:45.374166+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Comparison for 강영란(흰 머리 여자) (육혈귀 각성 상태) (피묻은순백무녀복): winner=image_1 reason=image_1은 의상이 전체적으로 흰색이며 선명한 핏자국이 있어 ‘피 묻은 순백 무녀복’이라는 핵심 묘사에 더 가깝습니다. image_2는 무녀복 형태는 더 뚜렷하지만 붉은 하의와 검은 재킷의 비중이 커서 ‘순백’ 조건과는 거리가 있습니다. 다만 두 이미지 모두 흰 머리와 육혈귀 각성 상태는 분명하게 표현되지 않았습니다."} {"timestamp": "2026-08-07T00:02:45.387223+00:00", "level": "INFO", "logger": "app.services.reference_phase3_service", "message": "Composite generated: 강영란(흰 머리 여자) (육혈귀 각성 상태) + 피묻은순백무녀복"} {"timestamp": "2026-08-07T00:02:47.350800+00:00", "level": "INFO", "logger": "app.modules.llm.image_format", "message": "ensure_png_bytes: JPEG → PNG 정규화 (431155 → 970811 bytes) [gemini-3.1-flash-image-preview/ref_image_gen_composite]"} 09:02:47 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-07T00:02:47.356004+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} {"timestamp": "2026-08-07T00:02:48.138823+00:00", "level": "INFO", "logger": "app.modules.llm.image_format", "message": "ensure_png_bytes: JPEG → PNG 정규화 (416205 → 898620 bytes) [gemini-3.1-flash-image-preview/ref_image_gen_composite]"} 09:02:48 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-07T00:02:48.214540+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} {"timestamp": "2026-08-07T00:02:48.575597+00:00", "level": "INFO", "logger": "app.modules.llm.image_format", "message": "ensure_png_bytes: JPEG → PNG 정규화 (355575 → 758703 bytes) [gemini-3.1-flash-image-preview/ref_image_gen_composite]"} 09:02:48 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-07T00:02:48.649663+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} {"timestamp": "2026-08-07T00:02:48.775629+00:00", "level": "INFO", "logger": "app.modules.llm.image_format", "message": "ensure_png_bytes: JPEG → PNG 정규화 (417525 → 905946 bytes) [gemini-3.1-flash-image-preview/ref_image_gen_composite]"} 09:02:48 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-07T00:02:48.862631+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} {"timestamp": "2026-08-07T00:02:48.919756+00:00", "level": "INFO", "logger": "app.modules.llm.image_format", "message": "ensure_png_bytes: JPEG → PNG 정규화 (369396 → 787232 bytes) [gemini-3.1-flash-image-preview/ref_image_gen_composite]"} 09:02:48 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-07T00:02:48.923412+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} {"timestamp": "2026-08-07T00:02:49.938478+00:00", "level": "INFO", "logger": "app.modules.llm.image_format", "message": "ensure_png_bytes: JPEG → PNG 정규화 (386358 → 831197 bytes) [gemini-3.1-flash-image-preview/ref_image_gen_composite]"} 09:02:50 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-07T00:02:50.020149+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} {"timestamp": "2026-08-07T00:02:50.047597+00:00", "level": "INFO", "logger": "app.modules.llm.image_format", "message": "ensure_png_bytes: JPEG → PNG 정규화 (427662 → 932603 bytes) [gemini-3.1-flash-image-preview/ref_image_gen_composite]"} {"timestamp": "2026-08-07T00:02:50.106764+00:00", "level": "INFO", "logger": "app.modules.llm.image_format", "message": "ensure_png_bytes: JPEG → PNG 정규화 (432721 → 927882 bytes) [gemini-3.1-flash-image-preview/ref_image_gen_composite]"} 09:02:50 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-07T00:02:50.129627+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 09:02:50 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-07T00:02:50.187286+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 09:02:51 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-07T00:02:51.492231+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 09:02:51 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-07T00:02:51.504475+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-07T00:02:51.514056+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Comparison for 과거의 조선인 육혈귀 생존자 (각성 상태) (피묻은피난민조선복): winner=image_1 reason=image_1은 현대 작업복에 가까워 ‘피 묻은 조선 피난민 복장’은 제대로 구현하지 못했지만, 상투와 전통 망건 형태의 머리 장식, 노년 생존자 인상, 송곳니와 검은 손톱이 조선인 육혈귀의 각성 상태를 image_2보다 더 잘 전달합니다. image_2에는 핏자국이 있으나 야구모자 등 현대적 요소가 더욱 두드러집니다."} {"timestamp": "2026-08-07T00:02:51.524182+00:00", "level": "INFO", "logger": "app.services.reference_phase3_service", "message": "Composite generated: 과거의 조선인 육혈귀 생존자 (각성 상태) + 피묻은피난민조선복"} {"timestamp": "2026-08-07T00:02:51.803177+00:00", "level": "INFO", "logger": "app.modules.llm.image_format", "message": "ensure_png_bytes: JPEG → PNG 정규화 (412711 → 893707 bytes) [gemini-3.1-flash-image-preview/ref_image_gen_composite]"} 09:02:51 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-07T00:02:51.807394+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} {"timestamp": "2026-08-07T00:02:52.124324+00:00", "level": "INFO", "logger": "app.modules.llm.image_format", "message": "ensure_png_bytes: JPEG → PNG 정규화 (445637 → 983030 bytes) [gemini-3.1-flash-image-preview/ref_image_gen_composite]"} 09:02:52 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-07T00:02:52.202035+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 09:02:52 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-07T00:02:52.623568+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 09:02:52 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-07T00:02:52.636138+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-07T00:02:52.645870+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Comparison for 고산들 (어두운작업복): winner=image_1 reason=두 이미지 모두 밝은 파란색·주황색 작업복이어서 ‘어두운 작업복’과는 거리가 있지만, image_1이 조명과 색조가 더 어두워 해당 설명에 상대적으로 더 가깝습니다."} {"timestamp": "2026-08-07T00:02:52.657393+00:00", "level": "INFO", "logger": "app.services.reference_phase3_service", "message": "Composite generated: 고산들 + 어두운작업복"} 09:02:52 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-07T00:02:52.875595+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 09:02:52 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-07T00:02:52.881536+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-07T00:02:52.896835+00:00", "level": "INFO", "logger": "app.services.reference_phase3_service", "message": "Composite generated: 조선인 촌주 + 조선시대평민복"} 09:02:54 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-07T00:02:54.309522+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 09:02:54 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-07T00:02:54.319841+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-07T00:02:54.321938+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Severe issue for 과거의 조선인 육혈귀 생존자 (피난민조선복) — regenerating"} 09:02:54 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-07T00:02:54.571543+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 09:02:54 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-07T00:02:54.581310+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-07T00:02:54.597714+00:00", "level": "INFO", "logger": "app.services.reference_phase3_service", "message": "Composite generated: 일본군 병사 + 일본군보병제복"} 09:02:54 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-07T00:02:54.705288+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 09:02:54 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-07T00:02:54.721343+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-07T00:02:54.722536+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Comparison for 정인우 (위장낚시복): winner=image_2 reason=두 이미지 모두 일반적인 짙은 녹색 코트 차림으로 위장무늬 낚시복과는 거리가 있습니다. 다만 image_2는 정면 자세로 의상이 가려지지 않고 전체 형태가 더 명확하게 보여 요소 표현 측면에서 조금 더 적합합니다."} {"timestamp": "2026-08-07T00:02:54.736104+00:00", "level": "INFO", "logger": "app.services.reference_phase3_service", "message": "Composite generated: 정인우 + 위장낚시복"} {"timestamp": "2026-08-07T00:02:55.468741+00:00", "level": "INFO", "logger": "app.modules.llm.image_format", "message": "ensure_png_bytes: JPEG → PNG 정규화 (463640 → 942223 bytes) [gemini-3.1-flash-image-preview/ref_image_gen_composite]"} 09:02:55 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-07T00:02:55.473342+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 09:02:55 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-07T00:02:55.919727+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 09:02:55 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-07T00:02:55.929476+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-07T00:02:55.940634+00:00", "level": "INFO", "logger": "app.services.reference_phase3_service", "message": "Composite generated: 금월도 마을 청년 + 청년작업복"} 09:02:56 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-07T00:02:56.087491+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 09:02:56 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-07T00:02:56.095428+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-07T00:02:56.107783+00:00", "level": "INFO", "logger": "app.services.reference_phase3_service", "message": "Composite generated: 금월도 마을 주민 (빙의 상태) + 피묻은검은색생활한복"} 09:02:56 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-07T00:02:56.627093+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 09:02:56 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-07T00:02:56.637685+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-07T00:02:56.652969+00:00", "level": "INFO", "logger": "app.services.reference_phase3_service", "message": "Composite generated: 경신 대기근의 아낙 (육혈귀 변형 상태) + 피묻은누더기조선아낙복"} 09:02:57 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-07T00:02:57.308879+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 09:02:57 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-07T00:02:57.321747+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-07T00:02:57.324489+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Severe issue for 고산들 (육혈귀 각성 상태) (젖은어두운작업복) — regenerating"} 09:02:59 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-07T00:02:59.142401+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 09:02:59 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-07T00:02:59.143846+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-07T00:02:59.154692+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Comparison for 조선인 촌주 (그분 빙의 상태) (빙의된조선시대평민복): winner=image_1 reason=두 이미지 모두 조선시대 평민복과 촌주 인상을 잘 표현하지만, image_1은 어두운 회색 배경과 음영 덕분에 인물의 비정상적인 눈빛과 엄숙한 표정이 더 강조되어 ‘그분에게 빙의된 상태’라는 분위기에 더 잘 맞습니다."} {"timestamp": "2026-08-07T00:02:59.167453+00:00", "level": "INFO", "logger": "app.services.reference_phase3_service", "message": "Composite generated: 조선인 촌주 (그분 빙의 상태) + 빙의된조선시대평민복"} 09:03:00 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-07T00:03:00.555237+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 09:03:00 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-07T00:03:00.566379+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-07T00:03:00.576486+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Comparison for 김지후(강수리영) (그분 빙의 상태) (피묻은흰색제물복): winner=image_2 reason=두 이미지 모두 흰색 제물복이 아니라 야외 활동복을 입고 있어 정확히 일치하지는 않습니다. 다만 image_2는 얼굴의 검은 문양이 더 선명해 빙의 상태가 강하게 표현되고, 옷 전반의 피 얼룩도 훨씬 두드러져 설명의 핵심 분위기에 더 가깝습니다."} {"timestamp": "2026-08-07T00:03:00.590688+00:00", "level": "INFO", "logger": "app.services.reference_phase3_service", "message": "Composite generated: 김지후(강수리영) (그분 빙의 상태) + 피묻은흰색제물복"} {"timestamp": "2026-08-07T00:03:02.794280+00:00", "level": "INFO", "logger": "app.modules.llm.image_format", "message": "ensure_png_bytes: JPEG → PNG 정규화 (420061 → 880774 bytes) [gemini-3.1-flash-image-preview/ref_image_gen_composite]"} 09:03:02 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-07T00:03:02.798058+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} {"timestamp": "2026-08-07T00:03:06.488170+00:00", "level": "INFO", "logger": "app.modules.llm.image_format", "message": "ensure_png_bytes: JPEG → PNG 정규화 (401744 → 891584 bytes) [gemini-3.1-flash-image-preview/ref_image_gen_composite]"} 09:03:06 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-07T00:03:06.492219+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 09:03:11 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-07T00:03:11.072622+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 09:03:11 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-07T00:03:11.091076+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-07T00:03:11.092846+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Comparison for 고산들 (육혈귀 각성 상태) (젖은어두운작업복): winner=image_2 reason=두 이미지 모두 어두운 작업복 차림이지만, image_2는 눈이 붉게 표현되어 ‘육혈귀 각성 상태’가 더 분명하게 드러납니다."} {"timestamp": "2026-08-07T00:03:11.103584+00:00", "level": "INFO", "logger": "app.services.reference_phase3_service", "message": "Composite generated: 고산들 (육혈귀 각성 상태) + 젖은어두운작업복"} 09:03:11 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-07T00:03:11.106987+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 09:03:11 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-07T00:03:11.107830+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-07T00:03:11.118460+00:00", "level": "INFO", "logger": "app.modules.pipeline.ref_image_pipeline", "message": "Comparison for 과거의 조선인 육혈귀 생존자 (피난민조선복): winner=image_2 reason=두 이미지 모두 피난민용 조선복보다는 근대 군복에 가깝지만, image_2는 더 어둡고 낡은 색감과 분위기 덕분에 과거의 생존자·피난민이라는 설정을 조금 더 잘 전달합니다."} {"timestamp": "2026-08-07T00:03:11.126883+00:00", "level": "INFO", "logger": "app.services.reference_phase3_service", "message": "Composite generated: 과거의 조선인 육혈귀 생존자 + 피난민조선복"} {"timestamp": "2026-08-07T00:03:11.186570+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step composite_image_gen completed (completed=30/30, failed=0)"} {"timestamp": "2026-08-07T00:03:11.291806+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 106 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-08-07T00:03:11.488537+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced 977 scene_stills (shot-based) to DB"} {"timestamp": "2026-08-07T00:03:11.598464+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced scene_summary from checkpoint"} {"timestamp": "2026-08-07T00:03:11.632134+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 37 outlooks + 44 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-08-07T00:03:11.661491+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 53 total short_ids found"} {"timestamp": "2026-08-07T00:03:11.667177+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode d6a9aa85-b75e-400c-980c-4ee7e876a15b status NOT advanced — incomplete steps: ['scene_camera_flow', 'shot_dependency', 'shot_staging', 'scene_consistency', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_site_layout', 'outdoor_place_spec', 'outdoor_lane_plan', 'shot_ref_classify', 'background_share_plan', 'background_classify', 'background_master_plan', 'floor_plan_prompt', 'floor_plan_overlay_payload', 'base_location_dossier', 'floor_plan_geometry_readback', 'floor_plan_semantic_readback', 'shot_projection_card', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-08-07T00:03:11.670470+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode d6a9aa85, step=composite_image_gen, repaired=0)"} INFO: 127.0.0.1:64478 - "POST /api/v1/auth/login HTTP/1.1" 200 OK {"timestamp": "2026-08-07T00:03:31.631727+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 106 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-08-07T00:03:31.881862+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced 977 scene_stills (shot-based) to DB"} {"timestamp": "2026-08-07T00:03:31.998692+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced scene_summary from checkpoint"} {"timestamp": "2026-08-07T00:03:32.029735+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 37 outlooks + 44 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-08-07T00:03:32.055428+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 53 total short_ids found"} {"timestamp": "2026-08-07T00:03:32.059753+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode d6a9aa85-b75e-400c-980c-4ee7e876a15b status NOT advanced — incomplete steps: ['scene_camera_flow', 'shot_dependency', 'shot_staging', 'scene_consistency', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_site_layout', 'outdoor_place_spec', 'outdoor_lane_plan', 'shot_ref_classify', 'background_share_plan', 'background_classify', 'background_master_plan', 'floor_plan_prompt', 'floor_plan_overlay_payload', 'base_location_dossier', 'floor_plan_geometry_readback', 'floor_plan_semantic_readback', 'shot_projection_card', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-08-07T00:03:32.061498+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode d6a9aa85, step=-, repaired=0)"} {"timestamp": "2026-08-07T00:03:32.125483+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 106 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-08-07T00:03:32.267867+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced 977 scene_stills (shot-based) to DB"} {"timestamp": "2026-08-07T00:03:32.375279+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced scene_summary from checkpoint"} {"timestamp": "2026-08-07T00:03:32.403707+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 37 outlooks + 44 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-08-07T00:03:32.429757+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 53 total short_ids found"} {"timestamp": "2026-08-07T00:03:32.434688+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode d6a9aa85-b75e-400c-980c-4ee7e876a15b status NOT advanced — incomplete steps: ['scene_camera_flow', 'shot_dependency', 'shot_staging', 'scene_consistency', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_site_layout', 'outdoor_place_spec', 'outdoor_lane_plan', 'shot_ref_classify', 'background_share_plan', 'background_classify', 'background_master_plan', 'floor_plan_prompt', 'floor_plan_overlay_payload', 'base_location_dossier', 'floor_plan_geometry_readback', 'floor_plan_semantic_readback', 'shot_projection_card', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-08-07T00:03:32.435990+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode d6a9aa85, step=-, repaired=0)"} {"timestamp": "2026-08-07T00:03:32.490481+00:00", "level": "INFO", "logger": "app.core.asset_readiness", "message": "AssetReadiness OK: AssetReadiness episode=d6a9aa85: expected=69 registered=69 disk=69 missing=0"} {"timestamp": "2026-08-07T00:03:32.646082+00:00", "level": "INFO", "logger": "app.services.scene_reference_service", "message": "Loaded 62 existing reference images for 143 entities"} {"timestamp": "2026-08-07T00:03:32.704972+00:00", "level": "INFO", "logger": "app.services.scene_checkpoint_loaders", "message": "background_render: loaded 150 shot background mappings"} {"timestamp": "2026-08-07T00:03:33.214810+00:00", "level": "INFO", "logger": "app.services.scene_reference_service", "message": "Loaded outfit + composite + state_variant refs into scene_ref_image_map"} {"timestamp": "2026-08-07T00:03:33.218149+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 11 Shot 3: bg map ref SKIPPED — dep_scene continuity priority (W2)"} {"timestamp": "2026-08-07T00:03:33.218221+00:00", "level": "INFO", "logger": "app.services.scene_reference_service", "message": "Scene 11 Shot 3: prev-shot background ref injected (remove: ['핸드폰', '김지후(강수리영)'], loc_id: L11, role: previous_shot_same_room)"} {"timestamp": "2026-08-07T00:03:33.221824+00:00", "level": "WARNING", "logger": "app.services.scene_generation_coordinator", "message": "space_set_bg_no_plate background required waived (shot=11_3 reason=dep_continuity_priority removed=['L07B01']) — runtime reconciliation, persisted RPC unchanged"} {"timestamp": "2026-08-07T00:03:33.222899+00:00", "level": "INFO", "logger": "app.modules.pipeline.scene_image_pipeline", "message": "Generating scene image: 급정거와 인우의 하차"} {"timestamp": "2026-08-07T00:03:44.605307+00:00", "level": "INFO", "logger": "app.modules.llm.image_format", "message": "ensure_png_bytes: JPEG → PNG 정규화 (668413 → 1322283 bytes) [gemini-3.1-flash-image-preview/single_scene_image_gen]"} 09:03:44 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-07T00:03:44.608376+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 09:03:50 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-07T00:03:50.696860+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 09:03:50 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-07T00:03:50.710479+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-07T00:03:50.819005+00:00", "level": "INFO", "logger": "app.modules.pipeline.scene_image_pipeline", "message": "Scene LVM skipped: reason=off mode=off scene=11 shot=3"} INFO: 127.0.0.1:64480 - "POST /api/v1/projects/e716bafb-24bb-42b7-aea0-fdb383844ee8/stills/4180bb21-f868-4e7e-a723-f07e4727138d/generate-image HTTP/1.1" 200 OK {"timestamp": "2026-08-07T00:03:50.960995+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 106 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-08-07T00:03:51.100869+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced 977 scene_stills (shot-based) to DB"} {"timestamp": "2026-08-07T00:03:51.224018+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced scene_summary from checkpoint"} {"timestamp": "2026-08-07T00:03:51.252706+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 37 outlooks + 44 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-08-07T00:03:51.281123+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 53 total short_ids found"} {"timestamp": "2026-08-07T00:03:51.285981+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode d6a9aa85-b75e-400c-980c-4ee7e876a15b status NOT advanced — incomplete steps: ['scene_camera_flow', 'shot_dependency', 'shot_staging', 'scene_consistency', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_site_layout', 'outdoor_place_spec', 'outdoor_lane_plan', 'shot_ref_classify', 'background_share_plan', 'background_classify', 'background_master_plan', 'floor_plan_prompt', 'floor_plan_overlay_payload', 'base_location_dossier', 'floor_plan_geometry_readback', 'floor_plan_semantic_readback', 'shot_projection_card', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-08-07T00:03:51.287803+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode d6a9aa85, step=-, repaired=0)"} {"timestamp": "2026-08-07T00:03:51.353759+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 106 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-08-07T00:03:51.501183+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced 977 scene_stills (shot-based) to DB"} {"timestamp": "2026-08-07T00:03:51.632084+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced scene_summary from checkpoint"} {"timestamp": "2026-08-07T00:03:51.662610+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 37 outlooks + 44 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-08-07T00:03:51.691696+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 53 total short_ids found"} {"timestamp": "2026-08-07T00:03:51.696008+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode d6a9aa85-b75e-400c-980c-4ee7e876a15b status NOT advanced — incomplete steps: ['scene_camera_flow', 'shot_dependency', 'shot_staging', 'scene_consistency', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_site_layout', 'outdoor_place_spec', 'outdoor_lane_plan', 'shot_ref_classify', 'background_share_plan', 'background_classify', 'background_master_plan', 'floor_plan_prompt', 'floor_plan_overlay_payload', 'base_location_dossier', 'floor_plan_geometry_readback', 'floor_plan_semantic_readback', 'shot_projection_card', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-08-07T00:03:51.697296+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode d6a9aa85, step=-, repaired=0)"} {"timestamp": "2026-08-07T00:03:51.747568+00:00", "level": "INFO", "logger": "app.core.asset_readiness", "message": "AssetReadiness OK: AssetReadiness episode=d6a9aa85: expected=69 registered=69 disk=69 missing=0"} {"timestamp": "2026-08-07T00:03:51.807923+00:00", "level": "INFO", "logger": "app.services.scene_image_service", "message": "scene prompt override 적용: S15sh5 (prompt_source=zoom_continuity_anchor, group=vca-s15-zoom-4, revised_hash=8a666e16d4a5aec3)"} {"timestamp": "2026-08-07T00:03:51.893210+00:00", "level": "INFO", "logger": "app.services.scene_reference_service", "message": "Loaded 62 existing reference images for 143 entities"} {"timestamp": "2026-08-07T00:03:51.934699+00:00", "level": "INFO", "logger": "app.services.scene_checkpoint_loaders", "message": "background_render: loaded 150 shot background mappings"} {"timestamp": "2026-08-07T00:03:52.261773+00:00", "level": "INFO", "logger": "app.services.scene_reference_service", "message": "Loaded outfit + composite + state_variant refs into scene_ref_image_map"} {"timestamp": "2026-08-07T00:03:52.264792+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 15 Shot 5: dep bytes target realigned to dep_detail (2a2293f8-1937-45ce-836b-1e209ecc6e52 → 33ca2a23-79ab-42d7-9b15-e0184a840d8e) — W3 source coherence"} {"timestamp": "2026-08-07T00:03:52.265431+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 15 Shot 5: chain_bg ref SKIPPED — close framing (framing_scale='close')"} {"timestamp": "2026-08-07T00:03:52.265478+00:00", "level": "WARNING", "logger": "app.services.scene_reference_service", "message": "Scene 15 Shot 5: zoom_in_detail downgraded to continuity — subjects not in dep frame: ['C08'] (W3 exact-reuse 금지 diagnostic)"} {"timestamp": "2026-08-07T00:03:52.265502+00:00", "level": "INFO", "logger": "app.services.scene_reference_service", "message": "Scene 15 Shot 5: prev-shot background ref injected (remove: ['김지후(강수리영)'], loc_id: , role: previous_shot_continuity)"} {"timestamp": "2026-08-07T00:03:52.266719+00:00", "level": "INFO", "logger": "app.modules.pipeline.scene_image_pipeline", "message": "Generating scene image: 거울을 통한 묵직한 시선 교환"} {"timestamp": "2026-08-07T00:04:03.436446+00:00", "level": "INFO", "logger": "app.modules.llm.image_format", "message": "ensure_png_bytes: JPEG → PNG 정규화 (684919 → 1265182 bytes) [gemini-3.1-flash-image-preview/single_scene_image_gen]"} 09:04:03 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-07T00:04:03.439575+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 09:04:06 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-07T00:04:06.865021+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 09:04:06 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-07T00:04:06.873676+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-07T00:04:06.966505+00:00", "level": "INFO", "logger": "app.modules.pipeline.scene_image_pipeline", "message": "Scene LVM skipped: reason=off mode=off scene=15 shot=5"} INFO: 127.0.0.1:64495 - "POST /api/v1/projects/e716bafb-24bb-42b7-aea0-fdb383844ee8/stills/761355ad-2242-4634-8312-661f7791f1e2/generate-image HTTP/1.1" 200 OK {"timestamp": "2026-08-07T00:04:07.086141+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 106 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-08-07T00:04:07.320575+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced 977 scene_stills (shot-based) to DB"} {"timestamp": "2026-08-07T00:04:07.462412+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced scene_summary from checkpoint"} {"timestamp": "2026-08-07T00:04:07.492893+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 37 outlooks + 44 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-08-07T00:04:07.520223+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 53 total short_ids found"} {"timestamp": "2026-08-07T00:04:07.524698+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode d6a9aa85-b75e-400c-980c-4ee7e876a15b status NOT advanced — incomplete steps: ['scene_camera_flow', 'shot_dependency', 'shot_staging', 'scene_consistency', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_site_layout', 'outdoor_place_spec', 'outdoor_lane_plan', 'shot_ref_classify', 'background_share_plan', 'background_classify', 'background_master_plan', 'floor_plan_prompt', 'floor_plan_overlay_payload', 'base_location_dossier', 'floor_plan_geometry_readback', 'floor_plan_semantic_readback', 'shot_projection_card', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-08-07T00:04:07.526459+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode d6a9aa85, step=-, repaired=0)"} {"timestamp": "2026-08-07T00:04:07.583474+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 106 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-08-07T00:04:07.725788+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced 977 scene_stills (shot-based) to DB"} {"timestamp": "2026-08-07T00:04:07.881087+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced scene_summary from checkpoint"} {"timestamp": "2026-08-07T00:04:07.910178+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 37 outlooks + 44 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-08-07T00:04:07.936915+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 53 total short_ids found"} {"timestamp": "2026-08-07T00:04:07.940948+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode d6a9aa85-b75e-400c-980c-4ee7e876a15b status NOT advanced — incomplete steps: ['scene_camera_flow', 'shot_dependency', 'shot_staging', 'scene_consistency', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_site_layout', 'outdoor_place_spec', 'outdoor_lane_plan', 'shot_ref_classify', 'background_share_plan', 'background_classify', 'background_master_plan', 'floor_plan_prompt', 'floor_plan_overlay_payload', 'base_location_dossier', 'floor_plan_geometry_readback', 'floor_plan_semantic_readback', 'shot_projection_card', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-08-07T00:04:07.942265+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode d6a9aa85, step=-, repaired=0)"} {"timestamp": "2026-08-07T00:04:07.991757+00:00", "level": "INFO", "logger": "app.core.asset_readiness", "message": "AssetReadiness OK: AssetReadiness episode=d6a9aa85: expected=69 registered=69 disk=69 missing=0"} {"timestamp": "2026-08-07T00:04:08.047854+00:00", "level": "INFO", "logger": "app.services.scene_image_service", "message": "scene prompt override 적용: S88sh6 (prompt_source=outdoor_site_layout, group=osl-l17, revised_hash=a1c36c6ef945d93e)"} {"timestamp": "2026-08-07T00:04:08.134889+00:00", "level": "INFO", "logger": "app.services.scene_reference_service", "message": "Loaded 62 existing reference images for 143 entities"} {"timestamp": "2026-08-07T00:04:08.179349+00:00", "level": "INFO", "logger": "app.services.scene_checkpoint_loaders", "message": "background_render: loaded 150 shot background mappings"} {"timestamp": "2026-08-07T00:04:08.533863+00:00", "level": "INFO", "logger": "app.services.scene_reference_service", "message": "Loaded outfit + composite + state_variant refs into scene_ref_image_map"} {"timestamp": "2026-08-07T00:04:08.537087+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 88 Shot 6: dep bytes target realigned to dep_detail (69611a67-bc36-4e23-b245-012a899ebc1e → 46ca67fe-274c-4a7e-a252-81d803fa9cf5) — W3 source coherence"} {"timestamp": "2026-08-07T00:04:08.537253+00:00", "level": "INFO", "logger": "app.services.scene_reference_service", "message": "Scene 88 Shot 6: prev-shot background ref injected (remove: ['고산들', '강영란(흰 머리 여자)', '금월도 마을 주민'], loc_id: , role: previous_shot_continuity)"} {"timestamp": "2026-08-07T00:04:08.537788+00:00", "level": "INFO", "logger": "app.core.steps.outdoor_site_layout_step", "message": "composition_guide: S88sh6 연속성 anchor — prev-shot ref(idx=0 role=previous_shot_continuity) bytes 를 source S88sh3 현재-run v2 로 명시 교체"} {"timestamp": "2026-08-07T00:04:08.539115+00:00", "level": "INFO", "logger": "app.modules.pipeline.scene_image_pipeline", "message": "Generating scene image: 조타실을 장악하고 인우를 겨누는 창모"} {"timestamp": "2026-08-07T00:04:18.131587+00:00", "level": "INFO", "logger": "app.modules.llm.image_format", "message": "ensure_png_bytes: JPEG → PNG 정규화 (779087 → 1387928 bytes) [gemini-3.1-flash-image-preview/single_scene_image_gen]"} 09:04:18 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-07T00:04:18.135009+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 09:04:20 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-07T00:04:20.644070+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 09:04:20 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-07T00:04:20.657938+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-07T00:04:20.745444+00:00", "level": "INFO", "logger": "app.modules.pipeline.scene_image_pipeline", "message": "Scene LVM skipped: reason=off mode=off scene=88 shot=6"} INFO: 127.0.0.1:64510 - "POST /api/v1/projects/e716bafb-24bb-42b7-aea0-fdb383844ee8/stills/646744a5-f7b9-444d-acb0-cb7673a55296/generate-image HTTP/1.1" 200 OK {"timestamp": "2026-08-07T00:04:20.866567+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 106 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-08-07T00:04:21.006376+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced 977 scene_stills (shot-based) to DB"} {"timestamp": "2026-08-07T00:04:21.087849+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced scene_summary from checkpoint"} {"timestamp": "2026-08-07T00:04:21.117501+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 37 outlooks + 44 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-08-07T00:04:21.142562+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 53 total short_ids found"} {"timestamp": "2026-08-07T00:04:21.146376+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode d6a9aa85-b75e-400c-980c-4ee7e876a15b status NOT advanced — incomplete steps: ['scene_camera_flow', 'shot_dependency', 'shot_staging', 'scene_consistency', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_site_layout', 'outdoor_place_spec', 'outdoor_lane_plan', 'shot_ref_classify', 'background_share_plan', 'background_classify', 'background_master_plan', 'floor_plan_prompt', 'floor_plan_overlay_payload', 'base_location_dossier', 'floor_plan_geometry_readback', 'floor_plan_semantic_readback', 'shot_projection_card', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-08-07T00:04:21.147259+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode d6a9aa85, step=-, repaired=0)"} {"timestamp": "2026-08-07T00:04:21.205431+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 106 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-08-07T00:04:21.347204+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced 977 scene_stills (shot-based) to DB"} {"timestamp": "2026-08-07T00:04:21.452742+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced scene_summary from checkpoint"} {"timestamp": "2026-08-07T00:04:21.481399+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 37 outlooks + 44 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-08-07T00:04:21.506638+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 53 total short_ids found"} {"timestamp": "2026-08-07T00:04:21.510451+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode d6a9aa85-b75e-400c-980c-4ee7e876a15b status NOT advanced — incomplete steps: ['scene_camera_flow', 'shot_dependency', 'shot_staging', 'scene_consistency', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_site_layout', 'outdoor_place_spec', 'outdoor_lane_plan', 'shot_ref_classify', 'background_share_plan', 'background_classify', 'background_master_plan', 'floor_plan_prompt', 'floor_plan_overlay_payload', 'base_location_dossier', 'floor_plan_geometry_readback', 'floor_plan_semantic_readback', 'shot_projection_card', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-08-07T00:04:21.511618+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode d6a9aa85, step=-, repaired=0)"} {"timestamp": "2026-08-07T00:04:21.557190+00:00", "level": "INFO", "logger": "app.core.asset_readiness", "message": "AssetReadiness OK: AssetReadiness episode=d6a9aa85: expected=69 registered=69 disk=69 missing=0"} {"timestamp": "2026-08-07T00:04:21.609965+00:00", "level": "INFO", "logger": "app.services.scene_image_service", "message": "scene prompt override 적용: S7sh1 (prompt_source=outdoor_site_layout, group=osl-l08, revised_hash=6493bea7617b83fe)"} {"timestamp": "2026-08-07T00:04:21.694022+00:00", "level": "INFO", "logger": "app.services.scene_reference_service", "message": "Loaded 62 existing reference images for 143 entities"} {"timestamp": "2026-08-07T00:04:21.726098+00:00", "level": "INFO", "logger": "app.services.scene_checkpoint_loaders", "message": "background_render: loaded 150 shot background mappings"} {"timestamp": "2026-08-07T00:04:21.977220+00:00", "level": "INFO", "logger": "app.services.scene_reference_service", "message": "Loaded outfit + composite + state_variant refs into scene_ref_image_map"} {"timestamp": "2026-08-07T00:04:21.981350+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 7 Shot 1: background_chain ref injected (bg_id=L08B01)"} {"timestamp": "2026-08-07T00:04:21.984212+00:00", "level": "INFO", "logger": "app.core.steps.outdoor_site_layout_step", "message": "composition_guide: S7sh1 구도 스케치 ref 부착 (group=osl-shared-l08-s7 loc=L08)"} {"timestamp": "2026-08-07T00:04:21.985183+00:00", "level": "INFO", "logger": "app.modules.pipeline.scene_image_pipeline", "message": "Generating scene image: 강압적 부탁과 대치"} {"timestamp": "2026-08-07T00:04:36.903667+00:00", "level": "INFO", "logger": "app.modules.llm.image_format", "message": "ensure_png_bytes: JPEG → PNG 정규화 (889943 → 1710354 bytes) [gemini-3.1-flash-image-preview/single_scene_image_gen]"} 09:04:36 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-07T00:04:36.907164+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 09:04:40 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-07T00:04:40.663296+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 09:04:40 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-07T00:04:40.680045+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-07T00:04:40.765270+00:00", "level": "INFO", "logger": "app.modules.pipeline.scene_image_pipeline", "message": "Scene LVM skipped: reason=off mode=off scene=7 shot=1"} INFO: 127.0.0.1:64519 - "POST /api/v1/projects/e716bafb-24bb-42b7-aea0-fdb383844ee8/stills/a3d7f47f-3ddb-41e6-b565-0d8f910dc864/generate-image HTTP/1.1" 200 OK {"timestamp": "2026-08-07T00:04:40.886806+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 106 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-08-07T00:04:41.123635+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced 977 scene_stills (shot-based) to DB"} {"timestamp": "2026-08-07T00:04:41.244818+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced scene_summary from checkpoint"} {"timestamp": "2026-08-07T00:04:41.274970+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 37 outlooks + 44 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-08-07T00:04:41.300722+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 53 total short_ids found"} {"timestamp": "2026-08-07T00:04:41.304535+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode d6a9aa85-b75e-400c-980c-4ee7e876a15b status NOT advanced — incomplete steps: ['scene_camera_flow', 'shot_dependency', 'shot_staging', 'scene_consistency', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_site_layout', 'outdoor_place_spec', 'outdoor_lane_plan', 'shot_ref_classify', 'background_share_plan', 'background_classify', 'background_master_plan', 'floor_plan_prompt', 'floor_plan_overlay_payload', 'base_location_dossier', 'floor_plan_geometry_readback', 'floor_plan_semantic_readback', 'shot_projection_card', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-08-07T00:04:41.305732+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode d6a9aa85, step=-, repaired=0)"} {"timestamp": "2026-08-07T00:04:41.364359+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 106 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-08-07T00:04:41.507151+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced 977 scene_stills (shot-based) to DB"} {"timestamp": "2026-08-07T00:04:41.649461+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced scene_summary from checkpoint"} {"timestamp": "2026-08-07T00:04:41.678392+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 37 outlooks + 44 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-08-07T00:04:41.704788+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 53 total short_ids found"} {"timestamp": "2026-08-07T00:04:41.708947+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode d6a9aa85-b75e-400c-980c-4ee7e876a15b status NOT advanced — incomplete steps: ['scene_camera_flow', 'shot_dependency', 'shot_staging', 'scene_consistency', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_site_layout', 'outdoor_place_spec', 'outdoor_lane_plan', 'shot_ref_classify', 'background_share_plan', 'background_classify', 'background_master_plan', 'floor_plan_prompt', 'floor_plan_overlay_payload', 'base_location_dossier', 'floor_plan_geometry_readback', 'floor_plan_semantic_readback', 'shot_projection_card', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-08-07T00:04:41.710327+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode d6a9aa85, step=-, repaired=0)"} {"timestamp": "2026-08-07T00:04:41.756776+00:00", "level": "INFO", "logger": "app.core.asset_readiness", "message": "AssetReadiness OK: AssetReadiness episode=d6a9aa85: expected=69 registered=69 disk=69 missing=0"} {"timestamp": "2026-08-07T00:04:41.810409+00:00", "level": "INFO", "logger": "app.services.scene_image_service", "message": "scene prompt override 적용: S8sh1 (prompt_source=zoom_continuity_anchor, group=vca-s8-zoom-2, revised_hash=9e095bc74fa4ab46)"} {"timestamp": "2026-08-07T00:04:41.895011+00:00", "level": "INFO", "logger": "app.services.scene_reference_service", "message": "Loaded 62 existing reference images for 143 entities"} {"timestamp": "2026-08-07T00:04:41.923210+00:00", "level": "INFO", "logger": "app.services.scene_checkpoint_loaders", "message": "background_render: loaded 150 shot background mappings"} {"timestamp": "2026-08-07T00:04:42.172283+00:00", "level": "INFO", "logger": "app.services.scene_reference_service", "message": "Loaded outfit + composite + state_variant refs into scene_ref_image_map"} {"timestamp": "2026-08-07T00:04:42.176075+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 8 Shot 1: background_chain ref injected (bg_id=L09B01)"} 09:04:42 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-08-07T00:04:42.179873+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 09:04:50 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-07T00:04:50.853483+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 09:04:50 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-08-07T00:04:50.856227+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-07T00:04:50.861744+00:00", "level": "INFO", "logger": "app.modules.pipeline.scene_image_pipeline", "message": "Generating scene image: 돈봉투를 빼앗으며 폭발하는 지후"} {"timestamp": "2026-08-07T00:05:05.322515+00:00", "level": "INFO", "logger": "app.modules.llm.image_format", "message": "ensure_png_bytes: JPEG → PNG 정규화 (619917 → 1261432 bytes) [gemini-3.1-flash-image-preview/single_scene_image_gen]"} 09:05:05 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-07T00:05:05.325523+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 09:05:08 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-07T00:05:08.880421+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 09:05:08 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-07T00:05:08.893600+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-07T00:05:08.991467+00:00", "level": "INFO", "logger": "app.modules.pipeline.scene_image_pipeline", "message": "Scene LVM skipped: reason=off mode=off scene=8 shot=1"} INFO: 127.0.0.1:64530 - "POST /api/v1/projects/e716bafb-24bb-42b7-aea0-fdb383844ee8/stills/cedfa9b6-0c88-472a-a034-ff5f644250c4/generate-image HTTP/1.1" 200 OK {"timestamp": "2026-08-07T00:05:09.106392+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 106 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-08-07T00:05:09.257308+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced 977 scene_stills (shot-based) to DB"} {"timestamp": "2026-08-07T00:05:09.432026+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced scene_summary from checkpoint"} {"timestamp": "2026-08-07T00:05:09.464165+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 37 outlooks + 44 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-08-07T00:05:09.494266+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 53 total short_ids found"} {"timestamp": "2026-08-07T00:05:09.497958+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode d6a9aa85-b75e-400c-980c-4ee7e876a15b status NOT advanced — incomplete steps: ['scene_camera_flow', 'shot_dependency', 'shot_staging', 'scene_consistency', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_site_layout', 'outdoor_place_spec', 'outdoor_lane_plan', 'shot_ref_classify', 'background_share_plan', 'background_classify', 'background_master_plan', 'floor_plan_prompt', 'floor_plan_overlay_payload', 'base_location_dossier', 'floor_plan_geometry_readback', 'floor_plan_semantic_readback', 'shot_projection_card', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-08-07T00:05:09.499036+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode d6a9aa85, step=-, repaired=0)"} {"timestamp": "2026-08-07T00:05:09.562635+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 106 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-08-07T00:05:09.712807+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced 977 scene_stills (shot-based) to DB"} {"timestamp": "2026-08-07T00:05:09.894827+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced scene_summary from checkpoint"} {"timestamp": "2026-08-07T00:05:09.927090+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 37 outlooks + 44 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-08-07T00:05:09.964813+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 53 total short_ids found"} {"timestamp": "2026-08-07T00:05:09.969149+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode d6a9aa85-b75e-400c-980c-4ee7e876a15b status NOT advanced — incomplete steps: ['scene_camera_flow', 'shot_dependency', 'shot_staging', 'scene_consistency', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_site_layout', 'outdoor_place_spec', 'outdoor_lane_plan', 'shot_ref_classify', 'background_share_plan', 'background_classify', 'background_master_plan', 'floor_plan_prompt', 'floor_plan_overlay_payload', 'base_location_dossier', 'floor_plan_geometry_readback', 'floor_plan_semantic_readback', 'shot_projection_card', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-08-07T00:05:09.970189+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode d6a9aa85, step=-, repaired=0)"} {"timestamp": "2026-08-07T00:05:10.018148+00:00", "level": "INFO", "logger": "app.core.asset_readiness", "message": "AssetReadiness OK: AssetReadiness episode=d6a9aa85: expected=69 registered=69 disk=69 missing=0"} {"timestamp": "2026-08-07T00:05:10.075712+00:00", "level": "INFO", "logger": "app.services.scene_image_service", "message": "scene prompt override 적용: S9sh6 (prompt_source=outdoor_site_layout, group=osl-l08, revised_hash=8aec114dba8bfc27)"} {"timestamp": "2026-08-07T00:05:10.158665+00:00", "level": "INFO", "logger": "app.services.scene_reference_service", "message": "Loaded 62 existing reference images for 143 entities"} {"timestamp": "2026-08-07T00:05:10.186451+00:00", "level": "INFO", "logger": "app.services.scene_checkpoint_loaders", "message": "background_render: loaded 150 shot background mappings"} {"timestamp": "2026-08-07T00:05:10.447854+00:00", "level": "INFO", "logger": "app.services.scene_reference_service", "message": "Loaded outfit + composite + state_variant refs into scene_ref_image_map"} {"timestamp": "2026-08-07T00:05:10.451817+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 9 Shot 6: bg map ref SKIPPED — dep_scene continuity priority (W2)"} {"timestamp": "2026-08-07T00:05:10.451882+00:00", "level": "INFO", "logger": "app.services.scene_reference_service", "message": "Scene 9 Shot 6: prev-shot background ref injected (remove: none, loc_id: , role: previous_shot_same_room)"} {"timestamp": "2026-08-07T00:05:10.452296+00:00", "level": "INFO", "logger": "app.core.steps.outdoor_site_layout_step", "message": "composition_guide: S9sh6 연속성 anchor — prev-shot ref(idx=0 role=previous_shot_same_room) bytes 를 source S9sh3 현재-run v2 로 명시 교체"} {"timestamp": "2026-08-07T00:05:10.453007+00:00", "level": "WARNING", "logger": "app.services.scene_generation_coordinator", "message": "space_set_bg_no_plate background required waived (shot=9_6 reason=dep_continuity_priority removed=['L08B02']) — runtime reconciliation, persisted RPC unchanged"} {"timestamp": "2026-08-07T00:05:10.453485+00:00", "level": "INFO", "logger": "app.modules.pipeline.scene_image_pipeline", "message": "Generating scene image: 퇴로를 막아선 거대한 그림자"} {"timestamp": "2026-08-07T00:05:25.064151+00:00", "level": "INFO", "logger": "app.modules.llm.image_format", "message": "ensure_png_bytes: JPEG → PNG 정규화 (651720 → 1221054 bytes) [gemini-3.1-flash-image-preview/single_scene_image_gen]"} 09:05:25 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-07T00:05:25.067635+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 09:05:27 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-07T00:05:27.875677+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 09:05:27 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-07T00:05:27.877035+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-07T00:05:27.986714+00:00", "level": "INFO", "logger": "app.modules.pipeline.scene_image_pipeline", "message": "Scene LVM skipped: reason=off mode=off scene=9 shot=6"} INFO: 127.0.0.1:64546 - "POST /api/v1/projects/e716bafb-24bb-42b7-aea0-fdb383844ee8/stills/f31e84a8-7588-41d6-8c92-303de54ac7b7/generate-image HTTP/1.1" 200 OK {"timestamp": "2026-08-07T00:05:28.107474+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 106 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-08-07T00:05:28.353665+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced 977 scene_stills (shot-based) to DB"} {"timestamp": "2026-08-07T00:05:28.557149+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced scene_summary from checkpoint"} {"timestamp": "2026-08-07T00:05:28.592055+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 37 outlooks + 44 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-08-07T00:05:28.624226+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 53 total short_ids found"} {"timestamp": "2026-08-07T00:05:28.628607+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode d6a9aa85-b75e-400c-980c-4ee7e876a15b status NOT advanced — incomplete steps: ['scene_camera_flow', 'shot_dependency', 'shot_staging', 'scene_consistency', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_site_layout', 'outdoor_place_spec', 'outdoor_lane_plan', 'shot_ref_classify', 'background_share_plan', 'background_classify', 'background_master_plan', 'floor_plan_prompt', 'floor_plan_overlay_payload', 'base_location_dossier', 'floor_plan_geometry_readback', 'floor_plan_semantic_readback', 'shot_projection_card', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-08-07T00:05:28.629961+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode d6a9aa85, step=-, repaired=0)"} {"timestamp": "2026-08-07T00:05:28.691609+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 106 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-08-07T00:05:28.851583+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced 977 scene_stills (shot-based) to DB"} {"timestamp": "2026-08-07T00:05:29.074014+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced scene_summary from checkpoint"} {"timestamp": "2026-08-07T00:05:29.108342+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 37 outlooks + 44 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-08-07T00:05:29.136952+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 53 total short_ids found"} {"timestamp": "2026-08-07T00:05:29.141010+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode d6a9aa85-b75e-400c-980c-4ee7e876a15b status NOT advanced — incomplete steps: ['scene_camera_flow', 'shot_dependency', 'shot_staging', 'scene_consistency', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_site_layout', 'outdoor_place_spec', 'outdoor_lane_plan', 'shot_ref_classify', 'background_share_plan', 'background_classify', 'background_master_plan', 'floor_plan_prompt', 'floor_plan_overlay_payload', 'base_location_dossier', 'floor_plan_geometry_readback', 'floor_plan_semantic_readback', 'shot_projection_card', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-08-07T00:05:29.141947+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode d6a9aa85, step=-, repaired=0)"} {"timestamp": "2026-08-07T00:05:29.188792+00:00", "level": "INFO", "logger": "app.core.asset_readiness", "message": "AssetReadiness OK: AssetReadiness episode=d6a9aa85: expected=69 registered=69 disk=69 missing=0"} {"timestamp": "2026-08-07T00:05:29.329164+00:00", "level": "INFO", "logger": "app.services.scene_reference_service", "message": "Loaded 62 existing reference images for 143 entities"} {"timestamp": "2026-08-07T00:05:29.357455+00:00", "level": "INFO", "logger": "app.services.scene_checkpoint_loaders", "message": "background_render: loaded 150 shot background mappings"} {"timestamp": "2026-08-07T00:05:29.617461+00:00", "level": "INFO", "logger": "app.services.scene_reference_service", "message": "Loaded outfit + composite + state_variant refs into scene_ref_image_map"} {"timestamp": "2026-08-07T00:05:29.620546+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 12 Shot 10: chain_bg ref SKIPPED — close framing (framing_scale='close')"} {"timestamp": "2026-08-07T00:05:29.620605+00:00", "level": "WARNING", "logger": "app.services.scene_reference_service", "message": "Scene 12 Shot 10: zoom_in_detail downgraded to continuity — subjects not in dep frame: ['C01'] (W3 exact-reuse 금지 diagnostic)"} {"timestamp": "2026-08-07T00:05:29.620635+00:00", "level": "INFO", "logger": "app.services.scene_reference_service", "message": "Scene 12 Shot 10: prev-shot background ref injected (remove: none, loc_id: L10, role: previous_shot_continuity)"} 09:05:29 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-08-07T00:05:29.623483+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 09:05:36 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-07T00:05:36.984769+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 09:05:36 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-08-07T00:05:36.986810+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-07T00:05:36.991079+00:00", "level": "INFO", "logger": "app.modules.pipeline.scene_image_pipeline", "message": "Generating scene image: 제압당한 지후"} {"timestamp": "2026-08-07T00:05:48.784519+00:00", "level": "WARNING", "logger": "app.modules.pipeline.scene_image_pipeline", "message": "Scene T2I blocked (attempt 1): SAFETY"} 09:05:48 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-07T00:05:48.796324+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 09:06:09 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-07T00:06:09.361591+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 09:06:09 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-07T00:06:09.364517+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-07T00:06:09.370324+00:00", "level": "INFO", "logger": "app.modules.prompt_sanitizer", "message": "Prompt sanitized: attempt=1, strategy=film_previs, semantic_mode=none, changes=직접적인 제압 장면을 안전한 긴장 상황으로 변경했습니다. 여성이 바닥에 눌린 상태와 남성이 어깨를 강하게 짓누르는 행동을 제거하고, 여성이 넘어진 직후 스스로 몸을 지탱하며 남성이"} {"timestamp": "2026-08-07T00:06:09.370520+00:00", "level": "INFO", "logger": "app.modules.pipeline.scene_image_pipeline", "message": "Sanitized scene prompt (strategy: film_previs)"} {"timestamp": "2026-08-07T00:06:21.603737+00:00", "level": "INFO", "logger": "app.modules.llm.image_format", "message": "ensure_png_bytes: JPEG → PNG 정규화 (756325 → 1437357 bytes) [gemini-3.1-flash-image-preview/single_scene_image_gen]"} 09:06:21 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-07T00:06:21.607679+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 09:06:24 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-07T00:06:24.689850+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 09:06:24 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-07T00:06:24.706374+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-07T00:06:24.796596+00:00", "level": "INFO", "logger": "app.modules.pipeline.scene_image_pipeline", "message": "Scene LVM skipped: reason=off mode=off scene=12 shot=10"} INFO: 127.0.0.1:64559 - "POST /api/v1/projects/e716bafb-24bb-42b7-aea0-fdb383844ee8/stills/2a2293f8-1937-45ce-836b-1e209ecc6e52/generate-image HTTP/1.1" 200 OK {"timestamp": "2026-08-07T00:06:24.921244+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 106 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-08-07T00:06:25.080488+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced 977 scene_stills (shot-based) to DB"} {"timestamp": "2026-08-07T00:06:25.324668+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced scene_summary from checkpoint"} {"timestamp": "2026-08-07T00:06:25.372211+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 37 outlooks + 44 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-08-07T00:06:25.406906+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 53 total short_ids found"} {"timestamp": "2026-08-07T00:06:25.413783+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode d6a9aa85-b75e-400c-980c-4ee7e876a15b status NOT advanced — incomplete steps: ['scene_camera_flow', 'shot_dependency', 'shot_staging', 'scene_consistency', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_site_layout', 'outdoor_place_spec', 'outdoor_lane_plan', 'shot_ref_classify', 'background_share_plan', 'background_classify', 'background_master_plan', 'floor_plan_prompt', 'floor_plan_overlay_payload', 'base_location_dossier', 'floor_plan_geometry_readback', 'floor_plan_semantic_readback', 'shot_projection_card', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-08-07T00:06:25.415000+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode d6a9aa85, step=-, repaired=0)"} {"timestamp": "2026-08-07T00:06:25.486044+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 106 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-08-07T00:06:25.644419+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced 977 scene_stills (shot-based) to DB"} {"timestamp": "2026-08-07T00:06:25.943033+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced scene_summary from checkpoint"} {"timestamp": "2026-08-07T00:06:25.995241+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 37 outlooks + 44 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-08-07T00:06:26.024004+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 53 total short_ids found"} {"timestamp": "2026-08-07T00:06:26.028083+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode d6a9aa85-b75e-400c-980c-4ee7e876a15b status NOT advanced — incomplete steps: ['scene_camera_flow', 'shot_dependency', 'shot_staging', 'scene_consistency', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_site_layout', 'outdoor_place_spec', 'outdoor_lane_plan', 'shot_ref_classify', 'background_share_plan', 'background_classify', 'background_master_plan', 'floor_plan_prompt', 'floor_plan_overlay_payload', 'base_location_dossier', 'floor_plan_geometry_readback', 'floor_plan_semantic_readback', 'shot_projection_card', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-08-07T00:06:26.029320+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode d6a9aa85, step=-, repaired=0)"} {"timestamp": "2026-08-07T00:06:26.079172+00:00", "level": "INFO", "logger": "app.core.asset_readiness", "message": "AssetReadiness OK: AssetReadiness episode=d6a9aa85: expected=69 registered=69 disk=69 missing=0"} {"timestamp": "2026-08-07T00:06:26.225606+00:00", "level": "INFO", "logger": "app.services.scene_reference_service", "message": "Loaded 62 existing reference images for 143 entities"} {"timestamp": "2026-08-07T00:06:26.254816+00:00", "level": "INFO", "logger": "app.services.scene_checkpoint_loaders", "message": "background_render: loaded 150 shot background mappings"} {"timestamp": "2026-08-07T00:06:26.524646+00:00", "level": "INFO", "logger": "app.services.scene_reference_service", "message": "Loaded outfit + composite + state_variant refs into scene_ref_image_map"} {"timestamp": "2026-08-07T00:06:26.529330+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 17 Shot 6: background_chain ref injected (bg_id=L14B02)"} {"timestamp": "2026-08-07T00:06:26.530748+00:00", "level": "INFO", "logger": "app.modules.pipeline.scene_image_pipeline", "message": "Generating scene image: 상념에 잠긴 지후와 뱃머리의 산들"} {"timestamp": "2026-08-07T00:06:37.702216+00:00", "level": "INFO", "logger": "app.modules.llm.image_format", "message": "ensure_png_bytes: JPEG → PNG 정규화 (715819 → 1416028 bytes) [gemini-3.1-flash-image-preview/single_scene_image_gen]"} 09:06:37 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-08-07T00:06:37.705512+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 09:06:40 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-08-07T00:06:40.064052+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 09:06:40 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-08-07T00:06:40.074387+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-08-07T00:06:40.172152+00:00", "level": "INFO", "logger": "app.modules.pipeline.scene_image_pipeline", "message": "Scene LVM skipped: reason=off mode=off scene=17 shot=6"} INFO: 127.0.0.1:64588 - "POST /api/v1/projects/e716bafb-24bb-42b7-aea0-fdb383844ee8/stills/b82c5158-a543-4695-a225-41c5fd02efa1/generate-image HTTP/1.1" 200 OK INFO: Shutting down INFO: Waiting for application shutdown. INFO: Application shutdown complete. INFO: Finished server process [90173]