< Flutter UIKit />
UTD Video Effects Kit
रियल-टाइम ब्यूटी फ़िल्टर, LUT कलर ग्रेडिंग और फ़ेस इफ़ेक्ट्स।
import 'package:utd_video_effects_kit/utd_video_effects_kit.dart';
final fx = VideoEffectsProcessor.create();
final track = await LocalVideoTrack.createCameraTrack(
CameraCaptureOptions(processor: fx),
);
await fx.setSmoothing(0.6);
await fx.setFilter('teal_orange', intensity: 0.8);
await fx.setBackgroundBlur(0.4);
await fx.setEyeColor('#3366CC', opacity: 0.6);
await fx.setLipstick('#CC2244');
// Or use the built-in UI:
VideoEffectsSheet.show(context, processor: fx);46+
LUT फ़िल्टर
9
एक्सेसरीज़
6
मेकअप लुक्स
GPU
रियल-टाइम
< utd_video_effects_kit />
मुख्य विशेषताएँ
LiveKit-आधारित Flutter ऐप्स के लिए रियल-टाइम वीडियो इफ़ेक्ट्स और ब्यूटी फ़िल्टर। इफ़ेक्ट्स नेटिव GPU पाइपलाइन (Android/iOS) पर TrackProcessor के ज़रिए चलते हैं, जिनमें 46+ LUT कलर फ़िल्टर, स्किन स्मूदिंग/व्हाइटनिंग, बैकग्राउंड ब्लर और MediaPipe-संचालित फ़ेस इफ़ेक्ट्स (आँखों का रंग, मेकअप, एक्सेसरीज़) शामिल हैं। इसमें Beauty/Filters/Makeup/Accessories टैब वाला बिल्ट-इन VideoEffectsSheet UI भी है।
46+ LUT कलर फ़िल्टर (चुनिंदा + इन-हाउस लुक्स)
ब्यूटी इफ़ेक्ट्स: स्किन स्मूदिंग (फ़्रीक्वेंसी सेपरेशन), व्हाइटनिंग, बैकग्राउंड ब्लर
MediaPipe के ज़रिए फ़ेस इफ़ेक्ट्स: आँखों का रंग, मेकअप (लिपस्टिक/आईशैडो/ब्लश), 9 एक्सेसरीज़
कलर पोस्ट-प्रोसेसिंग: glow/bloom (Orton), फ़िल्म ग्रेन, vignette
स्किन रीटच: टेक्सचर डिटेल, क्लैरिटी, चुनिंदा ब्राइटनिंग
फ़ेस रीशेप: लैंडमार्क-संचालित warp (आँख बड़ी करना, चेहरा पतला, नाक संकरी, …)
ड्रॉप-इन VideoEffectsSheet UI (Beauty/Filters/Makeup/Accessories टैब)
चुनिंदा मेकअप लुक्स और स्किन-टोन प्रीसेट
डिवाइस परफ़ॉर्मेंस टियर के साथ एडैप्टिव फ़्रेम-बजट मैनेजमेंट
LocalVideoTrack से ज़ीरो-ग्लू LiveKit TrackProcessor अटैचमेंट
< utd_video_effects_kit />
शुरू करें
इंस्टॉल करें
dependencies:
utd_video_effects_kit: ^0.5.0< utd_video_effects_kit />
API संदर्भ
Main processor
The single public entry point: a LiveKit TrackProcessor that applies GPU beauty/filter effects natively.
VideoEffectsProcessorclassabstract class VideoEffectsProcessor extends TrackProcessor<VideoProcessorOptions>LiveKit-compatible video processor that applies GPU beauty/filter effects natively and exposes the result via processedTrack. Has no per-frame process() hook; pixel work runs natively.
VideoEffectsProcessor.createconstructorfactory VideoEffectsProcessor.create({EffectsState initial = const EffectsState()})Builds the default native-backed implementation. The only way to construct a processor.
पैरामीटर
initialEffectsStateडिफ़ॉल्ट = const EffectsState()Initial effect settings the processor starts with.
रिटर्न मान: VideoEffectsProcessor — A native-backed processor instance.
stategetterValueListenable<EffectsState> get stateLive, read-only snapshot of current effect settings. Bind UI to this.
रिटर्न मान: ValueListenable<EffectsState> — Listenable of the current immutable EffectsState.
isSupportedgetterbool get isSupportedWhether this device/platform can actually process pixels. False means processedTrack is a passthrough (original camera frames flow unmodified).
रिटर्न मान: bool — True if native pixel processing is available.
disposemethodvoid dispose()Final teardown: releases the effect-state listenable. Call when the live session ends. Distinct from LiveKit's per-capture destroy().
रिटर्न मान: void — Nothing.
Adaptive performance & telemetry
Frame-budget signals and on-device measurement/parity harness.
budgetExceededgetterValueListenable<bool> get budgetExceededTrue while the native pipeline sheds work to hold the frame budget (degrade level > 0). Emits only on change. Always false on unsupported platforms.
रिटर्न मान: ValueListenable<bool> — Listenable performance-mode flag.
degradeLevelgetterValueListenable<int> get degradeLevelCurrent adaptive frame-budget degrade level: 0 (full quality) .. 4 (max shedding). 0 on unsupported platforms.
रिटर्न मान: ValueListenable<int> — Listenable degrade level 0..4.
deviceTiergetterValueListenable<int> get deviceTierStatic device performance tier classified natively at attach: 0 Budget, 1 Low, 2 Mid, 3 Flagship. 3 on unsupported platforms or before first attach.
रिटर्न मान: ValueListenable<int> — Listenable device tier 0..3.
perfStatsmethodasyncFuture<EffectsPerfStats?> perfStats({bool reset = false})Pulls a snapshot of native frame-budget telemetry (over-budget rate + frame-time distribution). Returns null on web/unsupported or with no native session.
पैरामीटर
resetboolडिफ़ॉल्ट = falseClear counters after reading so the next call measures a fresh window.
रिटर्न मान: Future<EffectsPerfStats?> — Telemetry snapshot, or null if unavailable.
renderTestFramemethodasyncFuture<EffectsTestFrame?> renderTestFrame(Uint8List rgba, {required int width, required int height})Runs an RGBA8888 image through the native COLOR grade with current settings and returns the processed RGBA8888 (CPU-vs-GPU parity harness). Call with effects disabled. Returns null if unavailable.
पैरामीटर
rgbaUint8Listआवश्यकRGBA8888 row-major input, width*height*4 bytes.
widthintआवश्यकInput image width in pixels.
heightintआवश्यकInput image height in pixels.
रिटर्न मान: Future<EffectsTestFrame?> — Graded output frame, or null if unavailable.
Beauty & color setters
Skin smoothing, whitening, LUT filters, and the color-post (glow/grain/vignette) tail.
setEnabledmethodasyncFuture<void> setEnabled(bool enabled)Master on/off switch. When off the native pipeline is a 1:1 passthrough.
पैरामीटर
enabledboolआवश्यकWhether effects are applied.
रिटर्न मान: Future<void> — Completes when applied.
setSmoothingmethodasyncFuture<void> setSmoothing(double amount)Skin-smoothing strength, 0.0..1.0 (frequency-separation / bilateral).
पैरामीटर
amountdoubleआवश्यकSmoothing strength, 0.0..1.0 (0 = off).
रिटर्न मान: Future<void> — Completes when applied.
setWhiteningmethodasyncFuture<void> setWhitening(double amount)Whitening / brightness strength, 0.0..1.0.
पैरामीटर
amountdoubleआवश्यकWhitening strength, 0.0..1.0 (0 = off).
रिटर्न मान: Future<void> — Completes when applied.
setFiltermethodasyncFuture<void> setFilter(String? lutAssetKey, {double intensity = 1.0})Apply a LUT color filter by key (null clears it). See VideoEffectsFilters.
पैरामीटर
lutAssetKeyString?आवश्यकFilter key (e.g. 'warm'), or null to clear.
intensitydoubleडिफ़ॉल्ट = 1.0Blend amount, 0.0..1.0.
रिटर्न मान: Future<void> — Completes when applied.
setBackgroundBlurmethodasyncFuture<void> setBackgroundBlur(double amount)Background-blur strength, 0.0..1.0 (selfie segmentation + blur).
पैरामीटर
amountdoubleआवश्यकBlur strength, 0.0..1.0 (0 = off).
रिटर्न मान: Future<void> — Completes when applied.
setGlowmethodasyncFuture<void> setGlow(double amount)Soft glow / bloom (Orton) strength, 0.0..1.0. The highest-impact beauty color post effect.
पैरामीटर
amountdoubleआवश्यकGlow strength, 0.0..1.0 (0 = off).
रिटर्न मान: Future<void> — Completes when applied.
setGrainmethodasyncFuture<void> setGrain(double amount)Film-grain amount, 0.0..1.0 (animated per frame).
पैरामीटर
amountdoubleआवश्यकGrain amount, 0.0..1.0 (0 = off).
रिटर्न मान: Future<void> — Completes when applied.
setVignettemethodasyncFuture<void> setVignette(double amount)Vignette strength, 0.0..1.0 (darkens frame corners).
पैरामीटर
amountdoubleआवश्यकVignette strength, 0.0..1.0 (0 = off).
रिटर्न मान: Future<void> — Completes when applied.
setTextureDetailmethodasyncFuture<void> setTextureDetail(double amount)Pore/texture retained by frequency-separation smoothing, 0.0..1.0 (0 = plastic, 1 = full texture). Only affects skin when smoothing > 0.
पैरामीटर
amountdoubleआवश्यकTexture retention, 0.0..1.0.
रिटर्न मान: Future<void> — Completes when applied.
setClaritymethodasyncFuture<void> setClarity(double amount)Local-contrast clarity, signed -1.0..1.0. Positive = punchy/pop, negative = soft dreamy skin. 0 = off.
पैरामीटर
amountdoubleआवश्यकSigned clarity, -1.0..1.0.
रिटर्न मान: Future<void> — Completes when applied.
Skin retouch & tone
Selective brightening (teeth/eye/under-eye) and skin-tone presets/shift.
setTeethWhiteningmethodasyncFuture<void> setTeethWhitening(double amount)Teeth-whitening strength, 0.0..1.0 (0 = off).
पैरामीटर
amountdoubleआवश्यकTeeth-whitening strength, 0.0..1.0.
रिटर्न मान: Future<void> — Completes when applied.
setEyeBrighteningmethodasyncFuture<void> setEyeBrightening(double amount)Eye-white (sclera) brightening, 0.0..1.0 (0 = off).
पैरामीटर
amountdoubleआवश्यकEye-white brightening strength, 0.0..1.0.
रिटर्न मान: Future<void> — Completes when applied.
setUnderEyeBrighteningmethodasyncFuture<void> setUnderEyeBrightening(double amount)Under-eye (tear-trough) brightening, 0.0..1.0 (0 = off).
पैरामीटर
amountdoubleआवश्यकUnder-eye brightening strength, 0.0..1.0.
रिटर्न मान: Future<void> — Completes when applied.
setSkinColormethodasyncFuture<void> setSkinColor(String? presetKey)Apply a skin-tone preset by key (null clears it). See VideoEffectsSkinTones.
पैरामीटर
presetKeyString?आवश्यकSkin-tone preset key (e.g. 'nuanbai'), or null to clear.
रिटर्न मान: Future<void> — Completes when applied.
setSkinToneShiftmethodasyncFuture<void> setSkinToneShift(double amount)Skin-tone shift, signed -1.0..1.0: warms (+) or cools (-) skin via hue rotation gated by the adaptive skin mask. 0 = off.
पैरामीटर
amountdoubleआवश्यकSigned skin-tone shift, -1.0..1.0.
रिटर्न मान: Future<void> — Completes when applied.
setSegmentationSkinmethodasyncFuture<void> setSegmentationSkin(bool enabled)Use multiclass segmentation to refine the skin region so skin effects apply to actual skin. Loads a larger/slower model. Default off.
पैरामीटर
enabledboolआवश्यकWhether segmentation-refined skin masking is on.
रिटर्न मान: Future<void> — Completes when applied.
Makeup, sculpt & reshape setters
Landmark-driven makeup recolor, dodge/burn sculpt, and liquify reshape.
setEyeColormethodasyncFuture<void> setEyeColor(String? hex, {double opacity = 0.5})Recolor the iris with hex (e.g. '#3366CC', null clears it).
पैरामीटर
hexString?आवश्यकIris color hex, or null to clear.
opacitydoubleडिफ़ॉल्ट = 0.5Recolor strength, 0.0..1.0.
रिटर्न मान: Future<void> — Completes when applied.
setLipstickmethodasyncFuture<void> setLipstick(String? hex, {double opacity = 0.6, String finish = 'satin', String style = 'full'})Apply lipstick in hex (null clears it). finish: matte/satin/gloss. style: full/ombre/blurred.
पैरामीटर
hexString?आवश्यकLipstick color hex, or null to clear.
opacitydoubleडिफ़ॉल्ट = 0.6Strength, 0.0..1.0.
finishStringडिफ़ॉल्ट = 'satin'matte, satin, or gloss.
styleStringडिफ़ॉल्ट = 'full'full, ombre, or blurred.
रिटर्न मान: Future<void> — Completes when applied.
setEyeshadowmethodasyncFuture<void> setEyeshadow(String? hex, {double opacity = 0.45, String? color2, double shimmer = 0})Apply eyeshadow in hex (null clears it). color2 gives a two-tone gradient; shimmer adds sparkle.
पैरामीटर
hexString?आवश्यकEyeshadow color hex, or null to clear.
opacitydoubleडिफ़ॉल्ट = 0.45Strength, 0.0..1.0.
color2String?डिफ़ॉल्ट = nullSecond hex for a two-tone (darker lash-line) gradient.
shimmerdoubleडिफ़ॉल्ट = 0Sparkle amount, 0.0..1.0.
रिटर्न मान: Future<void> — Completes when applied.
setBlushmethodasyncFuture<void> setBlush(String? hex, {double opacity = 0.4})Apply blush in hex (null clears it).
पैरामीटर
hexString?आवश्यकBlush color hex, or null to clear.
opacitydoubleडिफ़ॉल्ट = 0.4Strength, 0.0..1.0.
रिटर्न मान: Future<void> — Completes when applied.
setEyelinermethodasyncFuture<void> setEyeliner(String? hex, {double opacity = 0.7, String style = 'classic'})Apply eyeliner in hex (null clears it). style: classic or wing (adds an outer flick).
पैरामीटर
hexString?आवश्यकEyeliner color hex, or null to clear.
opacitydoubleडिफ़ॉल्ट = 0.7Strength, 0.0..1.0.
styleStringडिफ़ॉल्ट = 'classic'classic or wing.
रिटर्न मान: Future<void> — Completes when applied.
setMakeupLookmethodasyncFuture<void> setMakeupLook(MakeupLook? look)Apply a coordinated MakeupLook in one call (lipstick + finish, eyeshadow, blush, eye color). Null clears all makeup regions. See VideoEffectsMakeup.looks.
पैरामीटर
lookMakeupLook?आवश्यकThe look to apply, or null to clear all makeup.
रिटर्न मान: Future<void> — Completes when applied.
setContourmethodasyncFuture<void> setContour(double amount)Contour (cool-gray cheek/nose burn) strength, 0.0..1.0 (0 = off).
पैरामीटर
amountdoubleआवश्यकContour strength, 0.0..1.0.
रिटर्न मान: Future<void> — Completes when applied.
setHighlightmethodasyncFuture<void> setHighlight(double amount)Highlight (warm-white dodge on high points) strength, 0.0..1.0 (0 = off).
पैरामीटर
amountdoubleआवश्यकHighlight strength, 0.0..1.0.
रिटर्न मान: Future<void> — Completes when applied.
setEyeEnlargemethodasyncFuture<void> setEyeEnlarge(double amount)Eye-enlarge reshape strength, 0.0..1.0 (0 = off).
पैरामीटर
amountdoubleआवश्यकEye-enlarge strength, 0.0..1.0.
रिटर्न मान: Future<void> — Completes when applied.
setFaceSlimmethodasyncFuture<void> setFaceSlim(double amount)Face-slim reshape strength, 0.0..1.0 (0 = off).
पैरामीटर
amountdoubleआवश्यकFace-slim strength, 0.0..1.0.
रिटर्न मान: Future<void> — Completes when applied.
setNoseNarrowmethodasyncFuture<void> setNoseNarrow(double amount)Nose-narrow reshape strength, 0.0..1.0 (0 = off).
पैरामीटर
amountdoubleआवश्यकNose-narrow strength, 0.0..1.0.
रिटर्न मान: Future<void> — Completes when applied.
setLipPlumpmethodasyncFuture<void> setLipPlump(double amount)Lip-plump reshape strength, 0.0..1.0 (0 = off).
पैरामीटर
amountdoubleआवश्यकLip-plump strength, 0.0..1.0.
रिटर्न मान: Future<void> — Completes when applied.
setChinShortenmethodasyncFuture<void> setChinShorten(double amount)Chin-shorten reshape strength, 0.0..1.0 (0 = off).
पैरामीटर
amountdoubleआवश्यकChin-shorten strength, 0.0..1.0.
रिटर्न मान: Future<void> — Completes when applied.
Accessories setters
Toggle landmark-positioned PNG overlays. One toggle per accessory.
setGlassesmethodasyncFuture<void> setGlasses(bool enabled)Toggle the glasses accessory overlay.
पैरामीटर
enabledboolआवश्यकWhether the glasses overlay is shown.
रिटर्न मान: Future<void> — Completes when applied.
setSunglassesmethodasyncFuture<void> setSunglasses(bool enabled)Toggle the sunglasses accessory overlay.
पैरामीटर
enabledboolआवश्यकWhether the sunglasses overlay is shown.
रिटर्न मान: Future<void> — Completes when applied.
setCrownmethodasyncFuture<void> setCrown(bool enabled)Toggle the crown accessory overlay.
पैरामीटर
enabledboolआवश्यकWhether the crown overlay is shown.
रिटर्न मान: Future<void> — Completes when applied.
setCatEarsmethodasyncFuture<void> setCatEars(bool enabled)Toggle the cat-ears accessory overlay.
पैरामीटर
enabledboolआवश्यकWhether the cat-ears overlay is shown.
रिटर्न मान: Future<void> — Completes when applied.
setFlowerCrownmethodasyncFuture<void> setFlowerCrown(bool enabled)Toggle the flower-crown accessory overlay.
पैरामीटर
enabledboolआवश्यकWhether the flower-crown overlay is shown.
रिटर्न मान: Future<void> — Completes when applied.
setPartyHatmethodasyncFuture<void> setPartyHat(bool enabled)Toggle the party-hat accessory overlay.
पैरामीटर
enabledboolआवश्यकWhether the party-hat overlay is shown.
रिटर्न मान: Future<void> — Completes when applied.
setBunnyEarsmethodasyncFuture<void> setBunnyEars(bool enabled)Toggle the bunny-ears accessory overlay.
पैरामीटर
enabledboolआवश्यकWhether the bunny-ears overlay is shown.
रिटर्न मान: Future<void> — Completes when applied.
setMustachemethodasyncFuture<void> setMustache(bool enabled)Toggle the mustache accessory overlay.
पैरामीटर
enabledboolआवश्यकWhether the mustache overlay is shown.
रिटर्न मान: Future<void> — Completes when applied.
setHalomethodasyncFuture<void> setHalo(bool enabled)Toggle the halo accessory overlay.
पैरामीटर
enabledboolआवश्यकWhether the halo overlay is shown.
रिटर्न मान: Future<void> — Completes when applied.
Built-in UI
Drop-in bottom sheet that drives a processor with Beauty/Filters/Makeup/Accessories tabs.
VideoEffectsSheetclassclass VideoEffectsSheetSelf-contained beauty & filters bottom sheet (Beauty / Filters / Makeup / Accessories tabs) that drives a VideoEffectsProcessor. Dark over-video styling; accent from theme primary; auto Arabic labels.
VideoEffectsSheet.showmethodasyncstatic Future<void> show(BuildContext context, {required VideoEffectsProcessor processor, double heightFactor = defaultHeightFactor})Opens the beauty & filters sheet for processor. Turns the master switch on (idempotent), then shows a modal bottom sheet. Returns when dismissed.
पैरामीटर
contextBuildContextआवश्यकBuild context to show the modal in.
processorVideoEffectsProcessorआवश्यकThe processor the sheet controls.
heightFactordoubleडिफ़ॉल्ट = defaultHeightFactor (0.25)Sheet height as a fraction of screen height.
रिटर्न मान: Future<void> — Completes when the sheet is dismissed.
defaultHeightFactorpropertystatic const double defaultHeightFactor = 0.25Default sheet height as a fraction of the screen height (1/4).
रिटर्न मान: double — 0.25
Catalogs (filters, skin tones, accessories, makeup)
Pure-data catalogs of bundled LUT filters, skin-tone presets, accessories, and makeup shades/looks.
VideoEffectsFiltersclassclass VideoEffectsFiltersCatalog of bundled LUT color filters (45+ entries). Static-only (private constructor).
VideoEffectsFilters.allpropertystatic const List<VideoEffectFilter> allAll bundled LUT filters, in display order (fresh, night, autumn, clean_girl, teal_orange, etc.).
रिटर्न मान: List<VideoEffectFilter> — Bundled filter catalog.
VideoEffectsFilters.assetFormethodstatic String? assetFor(String? key)The LUT asset path for a filter key, or null for an unknown/cleared key.
पैरामीटर
keyString?आवश्यकFilter key to resolve.
रिटर्न मान: String? — Asset path or null.
VideoEffectsFilters.previewFormethodstatic String previewFor(String? key)Preview thumbnail asset path for a filter key (portrait with filter applied). Null gives the unfiltered 'none' preview.
पैरामीटर
keyString?आवश्यकFilter key, or null for the 'none' preview.
रिटर्न मान: String — Preview asset path.
VideoEffectsFilters.skinPreviewFormethodstatic String skinPreviewFor(String? key)Preview thumbnail asset path for a skin-tone preset (same portrait, skin LUT grade).
पैरामीटर
keyString?आवश्यकSkin-tone key, or null for the 'none' preview.
रिटर्न मान: String — Preview asset path.
VideoEffectFilterclassclass VideoEffectFilter { const VideoEffectFilter(this.key, this.label, this.asset); }A bundled LUT color filter: stable key, human label, and 512x512 LUT PNG asset path.
पैरामीटर
keyStringआवश्यकStable key passed to setFilter, e.g. 'fresh'.
labelStringआवश्यकHuman-readable label, e.g. 'Fresh'.
assetStringआवश्यकPackaged asset path of the LUT PNG.
VideoEffectsSkinTonesclassclass VideoEffectsSkinTonesCatalog of bundled skin-tone presets (Warm/Cool/Pink/Wheat/Tan). Static-only. Has all (List<VideoEffectSkinTone>) and byKey(String?).
VideoEffectsSkinTones.byKeymethodstatic VideoEffectSkinTone? byKey(String? key)Look up a skin-tone preset by key, or null for unknown/null.
पैरामीटर
keyString?आवश्यकSkin-tone preset key.
रिटर्न मान: VideoEffectSkinTone? — Preset or null.
VideoEffectsAccessoriesclassclass VideoEffectsAccessoriesCatalog of bundled PNG accessories (glasses, crown, catEars, sunglasses, flowerCrown, partyHat, bunnyEars, mustache, halo). Static-only.
VideoEffectsAccessories.allpropertystatic const List<VideoEffectAccessory> allAll bundled accessories, each with a key matching the EffectsState toggle.
रिटर्न मान: List<VideoEffectAccessory> — Accessory catalog.
VideoEffectsAccessories.assetFormethodstatic String? assetFor(String? key)The PNG asset path for an accessory key, or null for an unknown key.
पैरामीटर
keyString?आवश्यकAccessory key to resolve.
रिटर्न मान: String? — Asset path or null.
VideoEffectsMakeupclassclass VideoEffectsMakeupCurated makeup shades + full looks. Static-only. Exposes lipstick, eyeshadow, blush, eyeColor (List<MakeupShade>) and looks (List<MakeupLook>).
VideoEffectsMakeup.lookspropertystatic const List<MakeupLook> looksCoordinated full looks (lip + eyeshadow + blush [+ eye color]): natural, glam, soft_rose, bold_berry, sunkissed, smoky_night.
रिटर्न मान: List<MakeupLook> — Curated full looks.
VideoEffectsMakeup.lookByKeymethodstatic MakeupLook? lookByKey(String? key)Look up a coordinated MakeupLook by key, or null for unknown/null.
पैरामीटर
keyString?आवश्यकLook key.
रिटर्न मान: MakeupLook? — Look or null.
Models & data types
Immutable state snapshot, catalog item types, and telemetry/parity result types.
EffectsStateclassclass EffectsState { const EffectsState({bool enabled = false, double smoothing = 0, ... bool halo = false}); }Immutable snapshot of active video-effect settings (~50 fields: enabled, smoothing, whitening, filterKey/filterIntensity, makeup hex+opacity, sculpt/reshape scalars, accessory bools). All intensities normalized 0.0..1.0.
पैरामीटर
enabledboolडिफ़ॉल्ट = falseMaster switch.
smoothingdoubleडिफ़ॉल्ट = 0Skin-smoothing strength.
filterKeyString?डिफ़ॉल्ट = nullActive LUT filter key, or null.
filterIntensitydoubleडिफ़ॉल्ट = 1.0Blend amount for filterKey.
……Plus whitening, glow, grain, vignette, clarity, makeup hex/opacity fields, reshape/sculpt scalars, and accessory bools.
copyWithmethodEffectsState copyWith({bool? enabled, double? smoothing, Object? filterKey = _unset, ...})Returns a copy with the given fields changed. Nullable fields use an _unset sentinel so passing null clears (vs leaving unchanged).
पैरामीटर
……Any subset of EffectsState fields to override.
रिटर्न मान: EffectsState — A new modified state.
toMapmethodMap<String, dynamic> toMap()Serialized form sent to the native pipeline over the method channel.
रिटर्न मान: Map<String, dynamic> — All effect fields as a map.
VideoEffectSkinToneclassconst VideoEffectSkinTone(this.key, this.label, this.skinAsset, this.bgAsset)A skin-tone preset (dual-LUT grade): a skin LUT over skin regions plus a background LUT elsewhere.
पैरामीटर
keyStringआवश्यकStable preset key, e.g. 'nuanbai'.
labelStringआवश्यकHuman label, e.g. 'Warm'.
skinAssetStringआवश्यकSkin-region LUT asset path.
bgAssetStringआवश्यकBackground LUT asset path.
VideoEffectAccessoryclassconst VideoEffectAccessory(this.key, this.label, this.asset)A landmark-positioned PNG accessory overlay.
पैरामीटर
keyStringआवश्यकStable key matching the EffectsState toggle, e.g. 'glasses'.
labelStringआवश्यकHuman-readable label.
assetStringआवश्यकPackaged transparent PNG asset path.
MakeupShadeclassconst MakeupShade(this.key, this.label, this.hex, this.opacity)A curated makeup shade: a hex color plus recommended opacity for one region. Feed hex+opacity into the matching setter.
पैरामीटर
keyStringआवश्यकStable key, e.g. 'classic_red'.
labelStringआवश्यकHuman label, e.g. 'Classic Red'.
hexStringआवश्यक#RRGGBB color.
opacitydoubleआवश्यकRecommended strength, 0.0..1.0.
MakeupLookclassconst MakeupLook(this.key, this.label, {String? lipstick, double lipstickOpacity = 0.6, String lipFinish = 'satin', String? eyeshadow, ...})A full makeup look bundling coordinated shades across regions. Apply with setMakeupLook. Has a preview getter for the thumbnail asset path.
पैरामीटर
keyStringआवश्यकStable look key.
labelStringआवश्यकHuman label.
lipstickString?डिफ़ॉल्ट = nullLipstick hex.
lipFinishStringडिफ़ॉल्ट = 'satin'matte, satin, or gloss.
eyeshadowString?डिफ़ॉल्ट = nullEyeshadow hex (plus blush, eyeColor, and per-region opacities).
EffectsPerfStatsclassclass EffectsPerfStats { const EffectsPerfStats({required int frames, ... required double frameMs}); }Immutable snapshot of native frame-budget telemetry: frame counts, over-budget/over-frame counts, raise/lower events, per-level frames, mean/p50/p95/p99/max ms, histogram bins, device tier, and budget/frame thresholds.
पैरामीटर
framesintआवश्यकTotal frames timed since last reset.
overBudgetintआवश्यकFrames slower than budgetMs.
……Plus overFrame, raiseEvents, lowerEvents, levelFrames, meanMs, maxMs, p50/p95/p99Ms, binMs, bins, tier, budgetMs, frameMs.
overBudgetRategetterdouble get overBudgetRateFraction of frames slower than budgetMs (0.0..1.0). The primary perf signal.
रिटर्न मान: double — Over-budget fraction.
overFrameRategetterdouble get overFrameRateFraction of frames slower than frameMs — i.e. frames that actually dropped.
रिटर्न मान: double — Dropped-frame fraction.
EffectsPerfStats.fromMapmethodstatic EffectsPerfStats? fromMap(Map<String, dynamic>? m)Builds a snapshot from the native channel map; null for a null/empty map.
पैरामीटर
mMap<String, dynamic>?आवश्यकNative telemetry map.
रिटर्न मान: EffectsPerfStats? — Snapshot or null.
EffectsTestFrameclassconst EffectsTestFrame({required Uint8List rgba, required int width, required int height})Result of renderTestFrame: an RGBA8888 image produced by running a known input through the native color grade with current settings.
पैरामीटर
rgbaUint8Listआवश्यकGraded pixels, RGBA8888 row-major, alpha opaque.
widthintआवश्यकImage width in pixels.
heightintआवश्यकImage height in pixels.
FrameDiffclassclass FrameDiff { const FrameDiff({required int maxDelta, required double meanDelta, required int pixels, required int diffPixels, required int threshold}); }A per-channel difference summary between two RGBA8888 buffers (pure Dart, offline-testable). Has diffFraction getter and a static compare().
पैरामीटर
maxDeltaintआवश्यकLargest absolute per-channel delta (0..255).
meanDeltadoubleआवश्यकMean absolute per-channel delta over RGB.
pixelsintआवश्यकTotal pixels compared.
diffPixelsintआवश्यकPixels differing by more than threshold.
thresholdintआवश्यकPer-channel delta counted as different.
FrameDiff.comparemethodstatic FrameDiff compare(Uint8List a, Uint8List b, {int threshold = 2})Compares two RGBA8888 buffers on RGB channels (alpha ignored). Returns a zeroed diff when sizes mismatch or are empty.
पैरामीटर
aUint8Listआवश्यकFirst RGBA8888 buffer.
bUint8Listआवश्यकSecond RGBA8888 buffer.
thresholdintडिफ़ॉल्ट = 2Per-channel delta above which a pixel counts as different.
रिटर्न मान: FrameDiff — The difference summary.
UTD के साथ बनाने के लिए तैयार हैं?
अपना अकाउंट बनाएँ, अपने मास्टर वॉलेट को फंड करें, और अपनी ज़रूरत की सेवाएँ चालू करें।