§ 64#h£ ãóL—ddlZddlmZdd„ZGd„d¦«ZdeiZddiZdS) éNçð?çø?écón—|j|j}}| tj¦«}t j|d¬¦«}t j|d¬¦«}tj|j |¬¦«|z}|}tt|j ¦«dz ¦«D]D} | dz} |j | dz} t|| ¦«} |  | | | z | dz¦«}ŒE||dd…<||z}t j|d¬¦«}t j|d¬¦«j} |  |¦«} | S)a Apply frequency-dependent scaling to an image tensor using Fourier transforms. Parameters: x: Input tensor of shape (B, C, H, W) scale_low: Scaling factor for low-frequency components (default: 1.0) scale_high: Scaling factor for high-frequency components (default: 1.5) freq_cutoff: Number of frequency indices around center to consider as low-frequency (default: 20) Returns: x_filtered: Filtered version of x in spatial domain with frequency-specific scaling applied. )éþÿÿÿéÿÿÿÿ)Údim)ÚdeviceéN)Údtyper ÚtoÚtorchÚfloat32ÚfftÚfftnÚfftshiftÚonesÚshapeÚrangeÚlenÚminÚnarrowÚ ifftshiftÚifftnÚreal)ÚxÚ scale_lowÚ scale_highÚ freq_cutoffr r Úx_freqÚmaskÚmÚdr ÚccÚf_cÚ x_filtereds ú@D:\ComfyUI_windows_portable\ComfyUI\comfy_extras\nodes_fresca.pyÚFourier_filterr(s@€ð”G˜QœXˆ6€Eð ŠUŒ]ÑÔ€AõŒXa˜XÐ &Ñ &Ô &€FÝ Œ\˜& hÐ /Ñ /Ô /€Fõ Œ:f”l¨6Ð 2Ñ 2Ô 2°ZÑ ?€DØ €AÝ •3v”|Ñ$Ô$ qÑ(Ñ )Ô )ð-ð-ˆØ!‰eˆØ Œ\˜#Ô  !Ñ #ˆÝ+˜rÑ"Ô"ˆØ HŠHS˜"˜s™( C¨!¡GÑ ,Ô ,ˆˆð €A€a€a€aDðd‰]€FõŒ]˜6 xÐ 0Ñ 0Ô 0€FÝ”˜6 xÐ0Ñ0Ô0Ô5€Jð—’˜uÑ%Ô%€Jà Ðócó:—eZdZed„¦«ZdZdZdZdZd„Z dS)ÚFreScac óD—ddddddddd œfdd dddd d œfd d ddddd œfdœiS)NÚrequired©ÚMODELÚFLOATrré g{®Gáz„?z+Scaling factor for low-frequency components)ÚdefaultrÚmaxÚstepÚtooltipgô?z,Scaling factor for high-frequency componentsÚINTréi'zFNumber of frequency indices around center to consider as low-frequency)Úmodelrrr©)Úss r'Ú INPUT_TYPESzFreSca.INPUT_TYPES7s€ð Ø#Ø%°3¸qÈÐUYØ3`ð(bð(bðcà&°DÀÈ2ÐW[Ø3að)cð)cðdà %°2¸aÈÐWXØ3{ð(}ð(}ð ~ð ðð  ð r)r.ÚpatchÚ _for_testingz3Applies frequency-dependent scaling to the guidancecón‡‡‡—ˆˆˆfd„}| ¦«}| |¦«|fS)Ncó~•—|dd}|dd}||z }t|‰‰‰¬¦«}||z}||gS)NÚ conds_outrr7)rrr)r() ÚargsÚcondÚuncondÚguidanceÚfiltered_guidanceÚ filtered_condrrrs €€€r'Úcustom_cfg_functionz)FreSca.patch..custom_cfg_functionIsbø€Ø˜ Ô$ QÔ'ˆDؘ+Ô& qÔ)ˆFà˜f‘}ˆHÝ .ØØ#Ø%Ø'ð !ñ!ô!Ð ð .°Ñ6ˆMà! 6Ð*Ð *r))ÚcloneÚ"set_model_sampler_pre_cfg_function)Úselfr8rrrrGr"s ``` r'r<z FreSca.patchHsSøøø€ð +ð +ð +ð +ð +ð +ð +ð KŠK‰MŒMˆØ ×,Ò,Ð-@ÑAÔAÐAàˆtˆ r)N) Ú__name__Ú __module__Ú __qualname__Ú classmethodr;Ú RETURN_TYPESÚFUNCTIONÚCATEGORYÚ DESCRIPTIONr<r9r)r'r+r+6sR€€€€€Øð  ð  ñ„[ð  ð€LØ€HØ€HØG€Kðððððr)r+)rrr)rÚ torch.fftrr(r+ÚNODE_CLASS_MAPPINGSÚNODE_DISPLAY_NAME_MAPPINGSr9r)r'úrVs‚ðà € € € ØÐÐÐÐÐð-ð-ð-ð-ð`%ð%ð%ð%ð%ñ%ô%ð%ðR ˆfðÐð  ˆhðÐÐÐr)