import 'package:freezed_annotation/freezed_annotation.dart'; part 'wangp_ayarlari.freezed.dart'; part 'wangp_ayarlari.g.dart'; /// WanGP Standalone (wgp.py) için gelişmiş tüm üretim parametreleri. /// Tüm alanlar opsiyonel — null ise WanGP varsayılanı kullanılır. /// Segment ve GlobalAyarlar'a opsiyonel `wangpAyarlari` olarak eklenir. @freezed class WanGpAyarlari with _$WanGpAyarlari { const factory WanGpAyarlari({ // ─── Sampler / CFG ─────────────────────────────────────────────────── String? sampleSolver, // "default", "euler", "dpm++", ... double? flowShift, // genelde 1.0–17.0 double? guidanceScale, // ana CFG (zaten segmentte de var, override) double? guidance2Scale, // 2 fazlı CFG double? guidance3Scale, // 3 fazlı CFG double? switchThreshold, // faz geçiş eşiği double? switchThreshold2, int? guidancePhases, // 1, 2, 3 int? modelSwitchPhase, double? altGuidanceScale, double? altScale, double? audioGuidanceScale, double? audioScale, double? embeddedGuidanceScale, // ─── Cache / Hızlandırma ──────────────────────────────────────────── String? skipStepsCacheType, // "tea", "mag", "easy", "none" double? skipStepsMultiplier, double? skipStepsStartStepPerc, String? overrideAttention, // "sage", "sdpa", "flash", "auto" int? overrideProfile, // 1-5 arası VRAM profili // ─── Sliding Window (uzun video) ──────────────────────────────────── int? slidingWindowSize, int? slidingWindowOverlap, double? slidingWindowColorCorrectionStrength, double? slidingWindowOverlapNoise, int? slidingWindowDiscardLastFrames, // ─── RIFLEx / NAG / APG / CFG-Star ─────────────────────────────────── String? riflexSetting, // "auto", "on", "off" double? nagScale, double? nagTau, double? nagAlpha, bool? apgSwitch, bool? cfgStarSwitch, int? cfgZeroStep, // ─── Perturbation ──────────────────────────────────────────────────── bool? perturbationSwitch, String? perturbationLayers, double? perturbationStartPerc, double? perturbationEndPerc, // ─── Post-process ──────────────────────────────────────────────────── String? temporalUpsampling, // "none", "rife" String? spatialUpsampling, // "none", "lanczos" double? filmGrainIntensity, double? filmGrainSaturation, String? mmAudioSetting, // "none", "auto" String? mmAudioPrompt, String? mmAudioNegPrompt, // ─── LoRA (çoklu) ──────────────────────────────────────────────────── @Default([]) List loraDosyalari, // dosya adları/yolları @Default([]) List loraMultipliers, // her LoRA için katsayı // ─── Image / Video Prompt ─────────────────────────────────────────── String? imagePromptType, // 'S' = start, 'E' = end, 'SE' = ikisi String? imageEnd, String? videoSource, int? keepFramesVideoSource, double? inputVideoStrength, String? videoPromptType, double? imageRefsRelativeSize, bool? removeBackgroundImagesRef, // ─── Control Net ──────────────────────────────────────────────────── double? controlNetWeight, double? controlNetWeight2, double? controlNetWeightAlt, double? motionAmplitude, int? maskExpand, double? denoisingStrength, double? maskingStrength, // ─── Audio (ek) ───────────────────────────────────────────────────── String? audioGuide2, String? audioSource, String? audioPromptType, String? speakersLocations, // ─── Self Refiner ─────────────────────────────────────────────────── String? selfRefinerSetting, String? selfRefinerPlan, double? selfRefinerFUncertainty, double? selfRefinerCertainPercentage, // ─── Üretim Stratejisi ────────────────────────────────────────────── int? batchSize, int? repeatGeneration, String? multiPromptsGenType, String? multiImagesGenType, int? minFramesIfReferences, int? pauseSeconds, String? promptEnhancer, // ─── Sampling Hyperparams ─────────────────────────────────────────── double? temperature, double? topP, int? topK, // ─── Custom JSON override (her şeyi kabul) ────────────────────────── /// Yukarıda yer almayan alanları doğrudan WanGP'ye geçirmek için. /// Anahtar = wgp.py parametre adı. @Default({}) Map ozelAlanlar, }) = _WanGpAyarlari; factory WanGpAyarlari.fromJson(Map j) => _$WanGpAyarlariFromJson(j); }