/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 [45858] INFO: Waiting for application startup. {"timestamp": "2026-07-10T01:58:54.702317+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) {"timestamp": "2026-07-10T01:59:10.386557+00:00", "level": "INFO", "logger": "app.modules.llm.gemini_key_pool", "message": "Gemini key pool: 1 key(s) loaded"} INFO: 127.0.0.1:64197 - "GET /api/v1/health HTTP/1.1" 200 OK INFO: 127.0.0.1:64201 - "POST /api/v1/auth/login HTTP/1.1" 200 OK INFO: 127.0.0.1:64201 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:64201 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:64201 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:64201 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:64201 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:64201 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:64201 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:64201 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:64201 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:64201 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:64201 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:64201 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:64201 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:64201 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:64201 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:64201 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:64201 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:64201 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:64201 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:64201 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:64201 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:64201 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:64201 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:64201 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:64201 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:64201 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:64201 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:64201 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:64201 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:64201 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:64201 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:64201 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:64201 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:64201 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:64201 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:64201 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:64201 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:64201 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:64201 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:64201 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:64201 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:64201 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:64201 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:64201 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:64201 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:64201 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:64201 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:64201 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:64201 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:64201 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:64201 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:64201 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:64201 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:64201 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:64201 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:64201 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:64201 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:64201 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:64201 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:64201 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:64201 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:64201 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:64201 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:64201 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-10T01:59:22.421024+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:da87ee4a-b20b-45ab-ba40-f30d1166f6bd:39263663-935e-4316-b481-837ff5731dfd:scene_image_pipeline (Step scene_image_pipeline for 39263663-935e-4316-b481-837ff5731dfd)"} INFO: 127.0.0.1:64201 - "POST /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps/scene_image_pipeline?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-10T01:59:22.437920+00:00", "level": "WARNING", "logger": "app.core.step_runner", "message": "[RECOVERY] step=scene_image_pipeline status=running → force-like"} {"timestamp": "2026-07-10T01:59:22.439073+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step scene_image_pipeline started (run_id=1a1e25b3-fddc-43e3-a2b2-e2e88bb9083f, model=mixed)"} {"timestamp": "2026-07-10T01:59:22.493285+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 40 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-10T01:59:22.534773+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced 215 scene_stills (shot-based) to DB"} {"timestamp": "2026-07-10T01:59:22.548599+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced scene_summary from checkpoint"} {"timestamp": "2026-07-10T01:59:22.564280+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 12 outlooks + 11 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-07-10T01:59:22.566930+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Removed 1 orphan outlooks: ['70년대아동복']"} {"timestamp": "2026-07-10T01:59:22.576533+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 26 total short_ids found"} {"timestamp": "2026-07-10T01:59:22.582747+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 39263663, step=-, repaired=0)"} {"timestamp": "2026-07-10T01:59:22.626090+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 40 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-10T01:59:22.671557+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced 215 scene_stills (shot-based) to DB"} {"timestamp": "2026-07-10T01:59:22.687399+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced scene_summary from checkpoint"} {"timestamp": "2026-07-10T01:59:22.702687+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 12 outlooks + 11 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-07-10T01:59:22.705199+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Removed 1 orphan outlooks: ['70년대아동복']"} {"timestamp": "2026-07-10T01:59:22.713464+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 26 total short_ids found"} {"timestamp": "2026-07-10T01:59:22.719476+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 39263663, step=-, repaired=0)"} {"timestamp": "2026-07-10T01:59:22.747998+00:00", "level": "INFO", "logger": "app.core.asset_readiness", "message": "AssetReadiness OK: AssetReadiness episode=39263663: expected=23 registered=23 disk=23 missing=0"} {"timestamp": "2026-07-10T01:59:22.750195+00:00", "level": "INFO", "logger": "app.modules.image_checkpoint", "message": "Checkpoint loaded: scene — 41 completed, 19 failed"} {"timestamp": "2026-07-10T01:59:22.822371+00:00", "level": "INFO", "logger": "app.services.scene_reference_service", "message": "Loaded 18 existing reference images for 51 entities"} {"timestamp": "2026-07-10T01:59:22.822439+00:00", "level": "INFO", "logger": "app.services.scene_validation_service", "message": "Skipping legacy scene image validation — scene_lvm_validation_mode=off (LVM 2 disabled by cost policy; only mode='full' enables it)."} {"timestamp": "2026-07-10T01:59:22.859923+00:00", "level": "INFO", "logger": "app.services.scene_reference_service", "message": "Loaded outfit + composite + state_variant refs into scene_ref_image_map"} {"timestamp": "2026-07-10T01:59:22.871831+00:00", "level": "INFO", "logger": "app.services.scene_checkpoint_loaders", "message": "background_render: loaded 28 shot background mappings"} {"timestamp": "2026-07-10T01:59:22.887789+00:00", "level": "INFO", "logger": "app.services.scene_checkpoint_loaders", "message": "outdoor_direct: 28 shots direct-compose 활성"} {"timestamp": "2026-07-10T01:59:22.920668+00:00", "level": "INFO", "logger": "app.services.scene_image_service", "message": "zoom_continuity(batch): dep edge 추가 — still[44](zoom (23, 2)) → still[43](source (23, 1))"} {"timestamp": "2026-07-10T01:59:22.921027+00:00", "level": "INFO", "logger": "app.services.scene_image_service", "message": "immobilized_prev_frame(batch): dep edge 추가 — still[1](target (1, 5)) → still[0](env anchor (1, 4))"} {"timestamp": "2026-07-10T01:59:22.926760+00:00", "level": "INFO", "logger": "app.core.steps.indoor_shared_pose_guide_context", "message": "indoor_shared_pose_guide diag: group=indoor-s5-L05B01 shot=None status=all_members_done_skip reason="} {"timestamp": "2026-07-10T01:59:22.926796+00:00", "level": "INFO", "logger": "app.core.steps.indoor_shared_pose_guide_context", "message": "indoor_shared_pose_guide diag: group=indoor-s12-L05B06 shot=None status=all_members_done_skip reason="} {"timestamp": "2026-07-10T01:59:22.926815+00:00", "level": "INFO", "logger": "app.core.steps.indoor_shared_pose_guide_context", "message": "indoor_shared_pose_guide diag: group=indoor-s14-L05B07 shot=None status=all_members_done_skip reason="} {"timestamp": "2026-07-10T01:59:22.926833+00:00", "level": "INFO", "logger": "app.core.steps.indoor_shared_pose_guide_context", "message": "indoor_shared_pose_guide diag: group=indoor-s16-L13B03 shot=None status=all_members_done_skip reason="} {"timestamp": "2026-07-10T01:59:22.926847+00:00", "level": "INFO", "logger": "app.core.steps.indoor_shared_pose_guide_context", "message": "indoor_shared_pose_guide diag: group=indoor-s18-L05B04 shot=None status=all_members_done_skip reason="} {"timestamp": "2026-07-10T01:59:22.926860+00:00", "level": "INFO", "logger": "app.core.steps.indoor_shared_pose_guide_context", "message": "indoor_shared_pose_guide diag: group=indoor-s20-L15B01 shot=None status=all_members_done_skip reason="} {"timestamp": "2026-07-10T01:59:22.926875+00:00", "level": "INFO", "logger": "app.core.steps.indoor_shared_pose_guide_context", "message": "indoor_shared_pose_guide diag: group=indoor-s21-L13B01 shot=None status=all_members_done_skip reason="} {"timestamp": "2026-07-10T01:59:22.926889+00:00", "level": "INFO", "logger": "app.core.steps.indoor_shared_pose_guide_context", "message": "indoor_shared_pose_guide diag: group=indoor-s25-L05B03 shot=None status=all_members_done_skip reason="} {"timestamp": "2026-07-10T01:59:22.926902+00:00", "level": "INFO", "logger": "app.core.steps.indoor_shared_pose_guide_context", "message": "indoor_shared_pose_guide diag: group=indoor-s29-L19B01 shot=None status=all_members_done_skip reason="} {"timestamp": "2026-07-10T01:59:22.926916+00:00", "level": "INFO", "logger": "app.core.steps.indoor_shared_pose_guide_context", "message": "indoor_shared_pose_guide: precompute 완료 — guides=0, diagnostics=9, candidates_indoor_gate(indoor=7/outdoor=14 locs)"} {"timestamp": "2026-07-10T01:59:22.926942+00:00", "level": "INFO", "logger": "app.services.scene_image_service", "message": "Scene generation: 60 scenes in 12 batches (max_concurrent=15)"} {"timestamp": "2026-07-10T01:59:22.942608+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "outdoor_prev_frame(batch): S2sh2 history fallback — primary_location UUID 로 prev 프레임 확보"} {"timestamp": "2026-07-10T01:59:22.942875+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 1 Shot 4: state_variant=['C04']"} {"timestamp": "2026-07-10T01:59:22.943355+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "outdoor_prev_frame(batch): S11sh4 history fallback — primary_location UUID 로 prev 프레임 확보"} {"timestamp": "2026-07-10T01:59:23.013359+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 6 Shot 1: outdoor direct canon refs injected (batch, place=bg_coastal_road)"} {"timestamp": "2026-07-10T01:59:23.013727+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 15 Shot 1: outdoor direct canon refs injected (batch, place=bg_coastal_bus_stop)"} {"timestamp": "2026-07-10T01:59:23.013856+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 26 Shot 1: outdoor direct canon refs injected (batch, place=bg_foggy_harbor)"} {"timestamp": "2026-07-10T01:59:23.013948+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 1 Shot 4: outdoor direct canon refs injected (batch, place=bg_forest_path)"} {"timestamp": "2026-07-10T01:59:23.014509+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 11 Shot 4: outdoor direct canon refs injected (batch, place=bg_rooftop_unit)"} {"timestamp": "2026-07-10T01:59:23.014577+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 22 Shot 1: outdoor direct canon refs injected (batch, place=bg_police_station)"} {"timestamp": "2026-07-10T01:59:23.014666+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 2 Shot 2: outdoor direct canon refs injected (batch, place=bg_urban_alley)"} {"timestamp": "2026-07-10T01:59:23.015848+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 9: 1 prompts total, generating last 1 T2I + 1 angle"} {"timestamp": "2026-07-10T01:59:23.016429+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 49: 1 prompts total, generating last 1 T2I + 1 angle"} {"timestamp": "2026-07-10T01:59:23.017517+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 18: 1 prompts total, generating last 1 T2I + 1 angle"} {"timestamp": "2026-07-10T01:59:23.017903+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 27: 1 prompts total, generating last 1 T2I + 1 angle"} {"timestamp": "2026-07-10T01:59:23.018220+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 42: 1 prompts total, generating last 1 T2I + 1 angle"} {"timestamp": "2026-07-10T01:59:23.018554+00:00", "level": "INFO", "logger": "app.core.steps.visual_continuity_anchor_step", "message": "registered_pose_guide: S1sh4 no-guide degrade (group=vca-s1-c04-immobilized, reason=no_environment_bg_plate)"} {"timestamp": "2026-07-10T01:59:23.018651+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 2: 1 prompts total, generating last 1 T2I + 1 angle"} {"timestamp": "2026-07-10T01:59:23.018750+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 0: 1 prompts total, generating last 1 T2I + 1 angle"} {"timestamp": "2026-07-10T01:59:23.022023+00:00", "level": "INFO", "logger": "app.modules.llm.llm_client", "message": "Opik callback enabled (project: theroad-scene-lab)"} 10:59:23 - LiteLLM Router:INFO: router.py:812 - Routing strategy: simple-shuffle {"timestamp": "2026-07-10T01:59:23.039409+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "Routing strategy: simple-shuffle"} {"timestamp": "2026-07-10T01:59:23.039677+00:00", "level": "INFO", "logger": "app.modules.llm.llm_client", "message": "LiteLLM Router initialized: 10 deployments (1 Gemini keys, OpenAI=True)"} 10:59:23 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-luna; provider = openai {"timestamp": "2026-07-10T01:59:23.150405+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-luna; provider = openai"} 10:59:23 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-luna; provider = openai {"timestamp": "2026-07-10T01:59:23.150971+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-luna; provider = openai"} 10:59:23 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-luna; provider = openai {"timestamp": "2026-07-10T01:59:23.152231+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-luna; provider = openai"} 10:59:23 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-luna; provider = openai {"timestamp": "2026-07-10T01:59:23.152759+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-luna; provider = openai"} 10:59:23 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-luna; provider = openai {"timestamp": "2026-07-10T01:59:23.153127+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-luna; provider = openai"} 10:59:23 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-luna; provider = openai {"timestamp": "2026-07-10T01:59:23.153278+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-luna; provider = openai"} 10:59:23 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-luna; provider = openai {"timestamp": "2026-07-10T01:59:23.153675+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-luna; provider = openai"} 10:59:26 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T01:59:26.844805+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 10:59:26 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-luna) 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=06a5051f-ed92-747c-8000-690f126e04c6&path=aHR0cHM6Ly93d3cuY29tZXQuY29tL29waWsvYXBpLw==. {"timestamp": "2026-07-10T01:59:26.848916+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-luna)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T01:59:26.851927+00:00", "level": "INFO", "logger": "app.modules.pipeline.scene_image_pipeline", "message": "Generating scene image: 갯바위에 앉아 지친 수리영"} 10:59:26 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T01:59:26.958592+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 10:59:26 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-luna) 200 OK {"timestamp": "2026-07-10T01:59:26.959580+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-luna)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T01:59:26.960322+00:00", "level": "INFO", "logger": "app.modules.pipeline.scene_image_pipeline", "message": "Generating scene image: 멍하게 밤바다를 응시하는 수리영"} 10:59:27 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T01:59:27.189757+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 10:59:27 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-luna) 200 OK {"timestamp": "2026-07-10T01:59:27.191389+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-luna)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T01:59:27.193078+00:00", "level": "INFO", "logger": "app.modules.pipeline.scene_image_pipeline", "message": "Generating scene image: 출발 직전의 다급한 수리영"} 10:59:28 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T01:59:28.132720+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 10:59:28 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-luna) 200 OK {"timestamp": "2026-07-10T01:59:28.135024+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-luna)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T01:59:28.136669+00:00", "level": "INFO", "logger": "app.modules.pipeline.scene_image_pipeline", "message": "Generating scene image: 불길한 이변 감지"} 10:59:28 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T01:59:28.206588+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 10:59:28 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-luna) 200 OK {"timestamp": "2026-07-10T01:59:28.208284+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-luna)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T01:59:28.209628+00:00", "level": "INFO", "logger": "app.modules.pipeline.scene_image_pipeline", "message": "Generating scene image: 겁에 질린 채 도망치던 남자가 검은 인영의 갑작스러운 습격을 받는 순간"} 10:59:28 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T01:59:28.264288+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 10:59:28 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-luna) 200 OK {"timestamp": "2026-07-10T01:59:28.265062+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-luna)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T01:59:28.265564+00:00", "level": "INFO", "logger": "app.modules.pipeline.scene_image_pipeline", "message": "Generating scene image: 번뜩이는 붉은 눈동자"} 10:59:28 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T01:59:28.596833+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 10:59:28 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-luna) 200 OK {"timestamp": "2026-07-10T01:59:28.599380+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-luna)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T01:59:28.601077+00:00", "level": "INFO", "logger": "app.modules.pipeline.scene_image_pipeline", "message": "Generating scene image: 활기찬 해안도로 라이딩"} OPIK: Started logging traces to the "Default Project" project at https://www.comet.com/opik/api/v1/session/redirect/projects/?trace_id=019f49c0-7a54-72fb-abd7-66f4ae084606&path=aHR0cHM6Ly93d3cuY29tZXQuY29tL29waWsvYXBpLw==. 10:59:38 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T01:59:38.843011+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 10:59:39 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T01:59:39.492547+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 10:59:40 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T01:59:40.486043+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 10:59:40 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T01:59:40.652828+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 10:59:40 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T01:59:40.663807+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T01:59:40.764610+00:00", "level": "INFO", "logger": "app.modules.pipeline.scene_image_pipeline", "message": "Scene LVM skipped: reason=off mode=off scene=22 shot=1"} 10:59:41 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T01:59:41.245585+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 10:59:41 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T01:59:41.255088+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T01:59:41.352684+00:00", "level": "INFO", "logger": "app.modules.pipeline.scene_image_pipeline", "message": "Scene LVM skipped: reason=off mode=off scene=11 shot=4"} 10:59:41 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T01:59:41.971091+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 10:59:41 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T01:59:41.980105+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T01:59:42.073357+00:00", "level": "INFO", "logger": "app.modules.pipeline.scene_image_pipeline", "message": "Scene LVM skipped: reason=off mode=off scene=6 shot=1"} {"timestamp": "2026-07-10T01:59:44.922098+00:00", "level": "WARNING", "logger": "app.modules.pipeline.scene_image_pipeline", "message": "Scene T2I blocked (attempt 1): SAFETY"} 10:59:44 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T01:59:44.932443+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 10:59:49 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T01:59:49.027600+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 10:59:49 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T01:59:49.391155+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 10:59:50 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T01:59:50.731436+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 10:59:51 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T01:59:51.176008+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 10:59:51 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T01:59:51.182498+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T01:59:51.263413+00:00", "level": "INFO", "logger": "app.modules.pipeline.scene_image_pipeline", "message": "Scene LVM skipped: reason=off mode=off scene=26 shot=1"} 10:59:51 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T01:59:51.403046+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 10:59:51 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T01:59:51.405747+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T01:59:51.475290+00:00", "level": "INFO", "logger": "app.modules.pipeline.scene_image_pipeline", "message": "Scene LVM skipped: reason=off mode=off scene=1 shot=4"} 10:59:52 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T01:59:52.133379+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 10:59:52 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T01:59:52.143117+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T01:59:52.223332+00:00", "level": "INFO", "logger": "app.modules.pipeline.scene_image_pipeline", "message": "Scene LVM skipped: reason=off mode=off scene=15 shot=1"} INFO: 127.0.0.1:64255 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 10:59:57 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T01:59:57.354500+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 10:59:57 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T01:59:57.358904+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T01:59:57.363946+00:00", "level": "INFO", "logger": "app.modules.prompt_sanitizer", "message": "Prompt sanitized: attempt=1, strategy=film_previs, semantic_mode=none, changes=목을 물어 살점을 찢는 직접적 공격과 신체 훼손을 제거했습니다. 대신 남성이 여성의 어깨에서 고개를 들어 올리는 순간, 눈에 비치는 은은한 붉은 반사와 두 성인의 표정·시선·거리로"} {"timestamp": "2026-07-10T01:59:57.364157+00:00", "level": "INFO", "logger": "app.modules.pipeline.scene_image_pipeline", "message": "Sanitized scene prompt (strategy: film_previs)"} 11:00:09 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T02:00:09.753405+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 11:00:11 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T02:00:11.348928+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 11:00:11 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T02:00:11.358564+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T02:00:11.435530+00:00", "level": "INFO", "logger": "app.modules.pipeline.scene_image_pipeline", "message": "Scene LVM skipped: reason=off mode=off scene=2 shot=2"} {"timestamp": "2026-07-10T02:00:12.067243+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 1 Shot 5: state_variant=['C04']"} {"timestamp": "2026-07-10T02:00:12.098358+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 15 Shot 6: outdoor direct canon refs injected (batch, place=bg_coastal_bus_stop)"} {"timestamp": "2026-07-10T02:00:12.108165+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 9 Shot 1: outdoor direct canon refs injected (batch, place=bg_coastal_road)"} {"timestamp": "2026-07-10T02:00:12.109307+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 1 Shot 5: outdoor direct canon refs injected (batch, place=bg_forest_path)"} {"timestamp": "2026-07-10T02:00:12.141239+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 19 Shot 8: outdoor direct canon refs injected (batch, place=bg_large_market)"} {"timestamp": "2026-07-10T02:00:12.142224+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 26 Shot 10: outdoor direct canon refs injected (batch, place=bg_foggy_harbor)"} {"timestamp": "2026-07-10T02:00:12.142326+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 26 Shot 6: outdoor direct canon refs injected (batch, place=bg_foggy_harbor)"} {"timestamp": "2026-07-10T02:00:12.142701+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 28: 1 prompts total, generating last 1 T2I + 1 angle"} {"timestamp": "2026-07-10T02:00:12.143004+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 15: 1 prompts total, generating last 1 T2I + 1 angle"} {"timestamp": "2026-07-10T02:00:12.143685+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 28 Shot 5: outdoor direct canon refs injected (batch, place=bg_small_fishing_boat)"} {"timestamp": "2026-07-10T02:00:12.144009+00:00", "level": "INFO", "logger": "app.core.steps.visual_continuity_anchor_step", "message": "registered_pose_guide: S1sh5 no-guide degrade (group=vca-s1-c04-immobilized, reason=no_environment_bg_plate)"} {"timestamp": "2026-07-10T02:00:12.144721+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 36: 1 prompts total, generating last 1 T2I + 1 angle"} {"timestamp": "2026-07-10T02:00:12.145013+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 51: 1 prompts total, generating last 1 T2I + 1 angle"} {"timestamp": "2026-07-10T02:00:12.145482+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 50: 1 prompts total, generating last 1 T2I + 1 angle"} {"timestamp": "2026-07-10T02:00:12.146117+00:00", "level": "INFO", "logger": "app.core.steps.visual_continuity_anchor_step", "message": "immobilized_prev_frame: S1sh5 env 멤버 S1sh4 완성 프레임 append (group=vca-s1-c04-immobilized)"} {"timestamp": "2026-07-10T02:00:12.147816+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 54: 1 prompts total, generating last 1 T2I + 1 angle"} 11:00:12 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-luna; provider = openai {"timestamp": "2026-07-10T02:00:12.148856+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 1: 1 prompts total, generating last 1 T2I + 1 angle"} 11:00:12 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-luna; provider = openai {"timestamp": "2026-07-10T02:00:12.149626+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-luna; provider = openai"} 11:00:12 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-luna; provider = openai {"timestamp": "2026-07-10T02:00:12.150677+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-luna; provider = openai"} 11:00:12 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-luna; provider = openai {"timestamp": "2026-07-10T02:00:12.152728+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-luna; provider = openai"} 11:00:12 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-luna; provider = openai 11:00:12 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-luna; provider = openai {"timestamp": "2026-07-10T02:00:12.155533+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-luna; provider = openai"} {"timestamp": "2026-07-10T02:00:12.155890+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-luna; provider = openai"} {"timestamp": "2026-07-10T02:00:12.156724+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-luna; provider = openai"} 11:00:12 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-luna; provider = openai {"timestamp": "2026-07-10T02:00:12.158520+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-luna; provider = openai"} 11:00:15 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T02:00:15.439762+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 11:00:15 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-luna) 200 OK {"timestamp": "2026-07-10T02:00:15.442508+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-luna)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T02:00:15.444657+00:00", "level": "INFO", "logger": "app.modules.pipeline.scene_image_pipeline", "message": "Generating scene image: 수리영과 인우의 조우, 배에 동승하기 위한 설득"} 11:00:15 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T02:00:15.502849+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 11:00:15 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-luna) 200 OK {"timestamp": "2026-07-10T02:00:15.503540+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-luna)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T02:00:15.504079+00:00", "level": "INFO", "logger": "app.modules.pipeline.scene_image_pipeline", "message": "Generating scene image: 바삐 달려가는 수리영"} 11:00:15 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T02:00:15.750659+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 11:00:15 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-luna) 200 OK {"timestamp": "2026-07-10T02:00:15.754843+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-luna)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T02:00:15.755884+00:00", "level": "INFO", "logger": "app.modules.pipeline.scene_image_pipeline", "message": "Generating scene image: 음성 메시지를 남기는 수리영"} 11:00:15 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T02:00:15.814348+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 11:00:15 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-luna) 200 OK {"timestamp": "2026-07-10T02:00:15.815260+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-luna)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T02:00:15.820303+00:00", "level": "INFO", "logger": "app.modules.pipeline.scene_image_pipeline", "message": "Generating scene image: CCTV 위치 확인 후 혜수에게 전화하는 수리영"} 11:00:16 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T02:00:16.196837+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 11:00:16 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-luna) 200 OK {"timestamp": "2026-07-10T02:00:16.200003+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-luna)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T02:00:16.202395+00:00", "level": "INFO", "logger": "app.modules.pipeline.scene_image_pipeline", "message": "Generating scene image: 이모와 조카가 대화를 나누고 헤어지는 일상적 공간 → 정체불명의 시선이 "} 11:00:16 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T02:00:16.269545+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 11:00:16 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-luna) 200 OK {"timestamp": "2026-07-10T02:00:16.269856+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-luna)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T02:00:16.270700+00:00", "level": "INFO", "logger": "app.modules.pipeline.scene_image_pipeline", "message": "Generating scene image: 사진을 보고 당황하는 인우"} 11:00:17 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T02:00:17.406994+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 11:00:17 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-luna) 200 OK {"timestamp": "2026-07-10T02:00:17.408384+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-luna)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T02:00:17.412964+00:00", "level": "INFO", "logger": "app.modules.pipeline.scene_image_pipeline", "message": "Generating scene image: 검은 인영의 갑작스러운 습격"} INFO: 127.0.0.1:64301 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 11:00:26 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T02:00:26.692177+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 11:00:28 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T02:00:28.137431+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 11:00:28 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T02:00:28.145702+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T02:00:28.222680+00:00", "level": "INFO", "logger": "app.modules.pipeline.scene_image_pipeline", "message": "Scene LVM skipped: reason=off mode=off scene=9 shot=1"} 11:00:29 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T02:00:29.591932+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 11:00:32 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T02:00:32.142218+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 11:00:32 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T02:00:32.154337+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T02:00:32.232387+00:00", "level": "INFO", "logger": "app.modules.pipeline.scene_image_pipeline", "message": "Scene LVM skipped: reason=off mode=off scene=26 shot=10"} 11:00:36 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T02:00:36.213641+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 11:00:37 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T02:00:37.005903+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 11:00:38 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T02:00:38.197802+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 11:00:38 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T02:00:38.210142+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T02:00:38.289643+00:00", "level": "INFO", "logger": "app.modules.pipeline.scene_image_pipeline", "message": "Scene LVM skipped: reason=off mode=off scene=1 shot=5"} 11:00:39 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T02:00:39.134033+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 11:00:39 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T02:00:39.144376+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T02:00:39.218848+00:00", "level": "INFO", "logger": "app.modules.pipeline.scene_image_pipeline", "message": "Scene LVM skipped: reason=off mode=off scene=26 shot=6"} 11:00:41 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T02:00:41.091079+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 11:00:43 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T02:00:43.061923+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 11:00:43 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T02:00:43.071456+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T02:00:43.149014+00:00", "level": "INFO", "logger": "app.modules.pipeline.scene_image_pipeline", "message": "Scene LVM skipped: reason=off mode=off scene=28 shot=5"} 11:00:50 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T02:00:50.077163+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 11:00:51 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T02:00:51.552566+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 11:00:51 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T02:00:51.561215+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T02:00:51.654052+00:00", "level": "INFO", "logger": "app.modules.pipeline.scene_image_pipeline", "message": "Scene LVM skipped: reason=off mode=off scene=15 shot=6"} INFO: 127.0.0.1:64338 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 11:00:57 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T02:00:57.100609+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 11:00:58 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T02:00:58.539591+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 11:00:58 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T02:00:58.548691+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T02:00:58.653118+00:00", "level": "INFO", "logger": "app.modules.pipeline.scene_image_pipeline", "message": "Scene LVM skipped: reason=off mode=off scene=19 shot=8"} {"timestamp": "2026-07-10T02:00:59.318235+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 13 Shot 3: dep bytes target realigned to dep_detail (866d324b-82bd-49af-bcee-6e25b4ba709f → e49f5465-1b96-4f28-bede-d7e271080240) — W3 source coherence"} {"timestamp": "2026-07-10T02:00:59.318918+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "scene prompt override 적용(batch): S13sh3 (prompt_source=zoom_continuity_anchor, group=vca-s13-zoom-2)"} {"timestamp": "2026-07-10T02:00:59.319287+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "scene prompt override 적용(batch): S13sh5 (prompt_source=zoom_continuity_anchor, group=vca-s13-zoom-2)"} {"timestamp": "2026-07-10T02:00:59.367390+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 24 Shot 3: outdoor direct canon refs injected (batch, place=bg_coastal_road)"} {"timestamp": "2026-07-10T02:00:59.367746+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 3 Shot 3: outdoor direct canon refs injected (batch, place=bg_forest_path)"} {"timestamp": "2026-07-10T02:00:59.368084+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 13 Shot 3: outdoor direct canon refs injected (batch, place=bg_rooftop_unit)"} {"timestamp": "2026-07-10T02:00:59.368242+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 13 Shot 5: outdoor direct canon refs injected (batch, place=bg_rooftop_unit)"} {"timestamp": "2026-07-10T02:00:59.368605+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 28 Shot 10: outdoor direct canon refs injected (batch, place=bg_small_fishing_boat)"} {"timestamp": "2026-07-10T02:00:59.368912+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 45: 1 prompts total, generating last 1 T2I + 1 angle"} {"timestamp": "2026-07-10T02:00:59.369740+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 4: 1 prompts total, generating last 1 T2I + 1 angle"} {"timestamp": "2026-07-10T02:00:59.370409+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 23: 1 prompts total, generating last 1 T2I + 1 angle"} {"timestamp": "2026-07-10T02:00:59.370746+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 24: 1 prompts total, generating last 1 T2I + 1 angle"} {"timestamp": "2026-07-10T02:00:59.371781+00:00", "level": "INFO", "logger": "app.services.scene_generation_coordinator", "message": "Scene 55: 1 prompts total, generating last 1 T2I + 1 angle"} 11:00:59 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-luna; provider = openai {"timestamp": "2026-07-10T02:00:59.374711+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-luna; provider = openai"} 11:00:59 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-luna; provider = openai {"timestamp": "2026-07-10T02:00:59.375777+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-luna; provider = openai"} 11:00:59 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-luna; provider = openai {"timestamp": "2026-07-10T02:00:59.377655+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-luna; provider = openai"} 11:00:59 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-luna; provider = openai {"timestamp": "2026-07-10T02:00:59.377958+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-luna; provider = openai"} 11:00:59 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-luna; provider = openai {"timestamp": "2026-07-10T02:00:59.378231+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-luna; provider = openai"} 11:01:02 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T02:01:02.945533+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 11:01:02 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-luna) 200 OK {"timestamp": "2026-07-10T02:01:02.947125+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-luna)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T02:01:02.949773+00:00", "level": "INFO", "logger": "app.modules.pipeline.scene_image_pipeline", "message": "Generating scene image: 수리영의 비보를 듣고 경악하는 혜수"} 11:01:02 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T02:01:02.981477+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 11:01:02 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-luna) 200 OK {"timestamp": "2026-07-10T02:01:02.982302+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-luna)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T02:01:02.982899+00:00", "level": "INFO", "logger": "app.modules.pipeline.scene_image_pipeline", "message": "Generating scene image: 거센 비바람을 뚫고 페달을 밟는 수리영의 투지"} 11:01:03 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T02:01:03.088243+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 11:01:03 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-luna) 200 OK {"timestamp": "2026-07-10T02:01:03.090183+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-luna)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T02:01:03.091916+00:00", "level": "INFO", "logger": "app.modules.pipeline.scene_image_pipeline", "message": "Generating scene image: 혜수와 수리영의 충격적인 조우"} 11:01:03 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T02:01:03.343436+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 11:01:03 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-luna) 200 OK {"timestamp": "2026-07-10T02:01:03.346089+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-luna)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T02:01:03.348829+00:00", "level": "INFO", "logger": "app.modules.pipeline.scene_image_pipeline", "message": "Generating scene image: 조타실 입구에서의 물리적 충돌"} 11:01:04 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T02:01:04.428013+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 11:01:04 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-luna) 200 OK {"timestamp": "2026-07-10T02:01:04.429444+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-luna)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T02:01:04.432524+00:00", "level": "INFO", "logger": "app.modules.pipeline.scene_image_pipeline", "message": "Generating scene image: 사건 수사를 지휘하는 혜수"} 11:01:14 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T02:01:14.698432+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 11:01:17 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T02:01:17.241973+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 11:01:17 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T02:01:17.614327+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 11:01:17 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T02:01:17.619406+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} 11:01:17 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T02:01:17.644558+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} {"timestamp": "2026-07-10T02:01:17.727303+00:00", "level": "INFO", "logger": "app.modules.pipeline.scene_image_pipeline", "message": "Scene LVM skipped: reason=off mode=off scene=24 shot=3"} 11:01:18 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T02:01:18.793508+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 11:01:18 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T02:01:18.804195+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T02:01:18.896654+00:00", "level": "INFO", "logger": "app.modules.pipeline.scene_image_pipeline", "message": "Scene LVM skipped: reason=off mode=off scene=13 shot=3"} 11:01:19 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T02:01:19.198015+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 11:01:19 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T02:01:19.205194+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T02:01:19.281792+00:00", "level": "INFO", "logger": "app.modules.pipeline.scene_image_pipeline", "message": "Scene LVM skipped: reason=off mode=off scene=28 shot=10"} 11:01:21 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T02:01:21.189677+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} INFO: 127.0.0.1:64383 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK 11:01:22 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T02:01:22.723759+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 11:01:22 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T02:01:22.733366+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T02:01:22.824746+00:00", "level": "INFO", "logger": "app.modules.pipeline.scene_image_pipeline", "message": "Scene LVM skipped: reason=off mode=off scene=13 shot=5"} 11:01:24 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T02:01:24.517684+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 11:01:26 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T02:01:26.013183+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 11:01:26 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T02:01:26.027531+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T02:01:26.121965+00:00", "level": "INFO", "logger": "app.modules.pipeline.scene_image_pipeline", "message": "Scene LVM skipped: reason=off mode=off scene=3 shot=3"} {"timestamp": "2026-07-10T02:01:26.610065+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step scene_image_pipeline completed (completed=60/60, failed=0)"} {"timestamp": "2026-07-10T02:01:26.637455+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Synced 40 entities to DB from checkpoint (upsert); removed 0 stale links"} {"timestamp": "2026-07-10T02:01:26.673471+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced 215 scene_stills (shot-based) to DB"} {"timestamp": "2026-07-10T02:01:26.686317+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_writer", "message": "Synced scene_summary from checkpoint"} {"timestamp": "2026-07-10T02:01:26.697988+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Synced 12 outlooks + 11 character-outlook links (Δ +0 / -0)"} {"timestamp": "2026-07-10T02:01:26.700029+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.outlook_sync_service", "message": "Removed 1 orphan outlooks: ['70년대아동복']"} {"timestamp": "2026-07-10T02:01:26.707052+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 26 total short_ids found"} {"timestamp": "2026-07-10T02:01:26.712003+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode 39263663, step=scene_image_pipeline, repaired=0)"} INFO: 127.0.0.1:64411 - "GET /api/v1/projects/da87ee4a-b20b-45ab-ba40-f30d1166f6bd/episodes/39263663-935e-4316-b481-837ff5731dfd/steps HTTP/1.1" 200 OK INFO: Shutting down INFO: Waiting for application shutdown. INFO: Application shutdown complete. INFO: Finished server process [45858]