<?php

return [
	
	/*
	|--------------------------------------------------------------------------
	| Faceswap
	|--------------------------------------------------------------------------
	|
	| Faceswap Config Path.
	|
	*/
	
	'python_path'       => env('PYTHON_PATH', "/var/www/html/moro/python-service/venv/bin/python"),
	'faceswap_app_path' => env('FACE_SWAP_APP_PATH', "/var/www/html/moro/python-service"),
	'url'               => env('FACE_SWAP_SERVICE_URL', 'http://localhost:5000'),
	'timeout'           => env('FACE_SWAP_SERVICE_TIMEOUT', 5),
	'retries'           => env('FACE_SWAP_SERVICE_RETRIES', 3),

	/*
	|--------------------------------------------------------------------------
	| Virtual Try-On Driver
	|--------------------------------------------------------------------------
	|
	| Supported: "segmind", "facemint", "replicate", "mock"
	| Set FACESWAP_DRIVER in .env to switch providers.
	| "mock" is auto-selected when no driver API key is configured.
	|
	*/
	'driver' => env('FACESWAP_DRIVER', 'mock'),

	/*
	|--------------------------------------------------------------------------
	| Private Storage Mode
	|--------------------------------------------------------------------------
	|
	| Where to keep face photos + try-on results.
	|   "local" → tryon_local disk (server-local files, no cloud needed)
	|   "cloud" → do_spaces_private (requires DO_SPACES_PRIVATE_* env)
	|
	| Default is "local" so the feature works out of the box for development.
	| Switch to "cloud" for production / multi-server deployments.
	|
	*/
	'storage' => env('VIRTUAL_TRYON_STORAGE', 'local'),

	'drivers' => [

		'segmind' => [
			'api_url' => env('SEGMIND_API_URL', 'https://api.segmind.com/v1/faceswap-v4'),
			'api_key' => env('SEGMIND_API_KEY', ''),
			'timeout' => env('SEGMIND_TIMEOUT', 90),
		],

		'facemint' => [
			'base_url'          => env('FACEMINT_BASE_URL', 'https://api.facemint.io'),
			'api_key'           => env('FACEMINT_API_KEY', ''),
			'timeout'           => env('FACEMINT_TIMEOUT', 120),
			'poll_interval'     => env('FACEMINT_POLL_INTERVAL', 3),
			'max_poll_attempts' => env('FACEMINT_MAX_POLL_ATTEMPTS', 60),
		],

		'replicate' => [
			'base_url'          => env('REPLICATE_BASE_URL', 'https://api.replicate.com'),
			'api_token'         => env('REPLICATE_API_TOKEN', ''),
			// cdingram/face-swap default version. Override via env if needed.
			'model_version'     => env('REPLICATE_MODEL_VERSION', 'd1d6ea8c8be89d664a07a457526f7128109dee7030fdac424788d762c71ed111'),
			'timeout'           => env('REPLICATE_TIMEOUT', 60),
			'poll_interval'     => env('REPLICATE_POLL_INTERVAL', 3),
			'max_poll_attempts' => env('REPLICATE_MAX_POLL_ATTEMPTS', 60),
			// Data-URL cap on Replicate inputs (~256kb). Safety margin: 240kb.
			'max_input_bytes'   => env('REPLICATE_MAX_INPUT_BYTES', 240 * 1024),
		],

		'wavespeed' => [
			'base_url'          => env('WAVESPEED_BASE_URL', 'https://api.wavespeed.ai'),
			'api_key'           => env('WAVESPEED_API_KEY', ''),
			'timeout'           => env('WAVESPEED_TIMEOUT', 120),
			'poll_interval'     => env('WAVESPEED_POLL_INTERVAL', 15),
			'max_poll_attempts' => env('WAVESPEED_MAX_POLL_ATTEMPTS', 40),
		],

		'kimonopipeline' => [
			'url'      => env('KIMONO_PIPELINE_URL', 'http://127.0.0.1:5005'),
			'timeout'  => env('KIMONO_PIPELINE_TIMEOUT', 120),
			// Generation engine: 'local' (inswapper+GFPGAN, free) or 'chatgpt' (gpt-image, paid).
			'provider' => env('KIMONO_PIPELINE_PROVIDER', 'local'),
		],

	],

	// Legacy flat keys (kept for backward compat with SegmindFaceSwapService)
	'segmind_api_url'   => env('SEGMIND_API_URL', 'https://api.segmind.com/v1/faceswap-v4'),
	'segmind_api_key'   => env('SEGMIND_API_KEY', ''),
	'segmind_timeout'   => env('SEGMIND_TIMEOUT', 90),
	// Segmind faceswap-v4 詳細パラメータ
	'segmind_model_type'     => env('SEGMIND_MODEL_TYPE', 'quality'),    // "speed"(8 steps) or "quality"(30 steps)
	'segmind_style_type'     => env('SEGMIND_STYLE_TYPE', 'normal'),     // "normal"=元の表情を維持 / "style"=ターゲット寄せ
	'segmind_swap_type'      => env('SEGMIND_SWAP_TYPE', 'head'),        // "head" or "face"
	'segmind_image_quality'  => env('SEGMIND_IMAGE_QUALITY', 95),        // 10-100
];
