§
    ’Þjò  ã                   ót   — d dl mZ ddlmZmZmZmZmZmZm	Z	m
Z
 ddlmZmZmZmZ dZdZ G d„ d¦  «        Zd	S )
é    )Úbuild_hf_urlé   )ÚINFOSÚPROMPT_INFOSÚDEEPY_INFOSÚDEEPY_PROMPT_INFOSÚTURBO_INFOSÚTURBO_PROMPT_INFOSÚTURBO_DEEPY_INFOSÚTURBO_DEEPY_PROMPT_INFOS)ÚCLASSICÚ
STRUCTUREDÚEDITÚSTRUCTURED_EDITzDeepBeepMeep/Fibo2zQwen3-VL-4B-Instructc                   ó  — e Zd Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Z	edd„¦   «         Z
edd
„¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         ZdS )Úfamily_handlerc                  ó
   — ddgS )NÚ	fibo2_devÚfibo2_edit_turbo© r   ó    úBC:\Users\johnn\OneDrive\Documents\AI\models\fibo2\fibo2_handler.pyÚquery_supported_typesz$family_handler.query_supported_types   s   € àÐ/Ð0Ð0r   c                  ó   — dS ©NÚfibo2r   r   r   r   Úquery_model_familyz!family_handler.query_model_family   ó   € àˆwr   c                  ó
   — ddiS )Nr   )i�  zFibo 2.0r   r   r   r   Úquery_family_infosz!family_handler.query_family_infos   s   € àÐ+Ð,Ð,r   c                  ó
   — i i fS ©Nr   r   r   r   Úquery_family_mapsz family_handler.query_family_maps   s   € à�2ˆvˆr   c                 ó   — dS r   r   )Úbase_model_types    r   Úget_lora_dirzfamily_handler.get_lora_dir   r   r   c                 óz  — | dk    }i dd“dd“dd“ddg“d	d
“dd“dd“dd“dd“dd“dd“dd“dd“dd“dd“dd“dd“i dt           “dd„ d D ¦   «         “d!g d"¢d#d$d%d&œ“d'd“d(d“d)d*“d+d,“d-d“d.d/d0gd1d$dd2œ“d3t          “d4t          “d5t          “d6t          “d7g d8¢d$d9d:d;d<d8œd=œ“d>t
          “d?t          “d@t          “¥t          dAdAdBœ¥}|rq| 	                    dCdDdidgddt          t          t          t          dEœ	¦  «         |d!         dF         d
d …         dGgz   |d!         dF<   d#|d!         dH<   dIdJg|d7         dK<   |S )LNr   Úimage_outputsTÚdevice_explicitÚdtypeÚbf16Úprofiles_dirr   Úguidance_max_phasesr   Úembedded_guidanceFÚinference_stepsÚno_negative_promptÚno_background_removalÚvae_block_sizeé   Úresolution_budgetÚ	1152x1024Úfit_into_canvas_image_refsr   Ú	max_widthi    Ú
max_heightÚtiny_vae_architectureÚflux2_klein_4bÚskip_prompt_templateÚpreserve_empty_prompt_linesÚtext_encoder_folderÚtext_encoder_URLsc           	      óL   — g | ]!}t          t          t          d |› d�¦  «        ‘Œ"S )zQwen3-VL-4B-Instruct_z.safetensors)r   ÚREPOÚTEXT_FOLDER)Ú.0Úfmts     r   ú
<listcomp>z2family_handler.query_model_def.<locals>.<listcomp>+   sD   € ð  "Rð  "Rð  "RÐqt¥,­tµ[ÐBkÐZ]ÐBkÐBkÐBkÑ"lÔ"lð  "Rð  "Rð  "Rr   )r+   Úint8_convrotÚimage_ref_choices))z!Generate without Reference ImagesÚ )z:First Reference Defines Output Dimensions (Main Image Ref)ÚKI)z.Use References with Selected Output DimensionsÚIrH   rG   zReference Images)ÚchoicesÚletters_filterÚdefaultÚlabelÚat_least_one_image_ref_neededÚinpaint_supportÚinpaint_video_prompt_typeÚVAÚinpaint_colorÚ808080Úuint8_guidesÚguide_custom_choices_image)zNo Control ImagerG   )zControl ImageÚVrV   )rJ   rK   rL   ÚvisibleÚinfosÚprompt_infosÚdeepy_infosÚdeepy_prompt_infosÚprompt_enhancer_def)ÚTÚTIÚT1ÚTI1zA Detailed Image Captionz+An Editing Instruction using {image_inputs}zA Structured Fibo Captionz+A Structured Fibo Edit using {image_inputs})Ú	selectionrL   ÚlabelsÚ!text_prompt_enhancer_instructionsÚ"image_prompt_enhancer_instructionsÚ"text_prompt_enhancer_instructions1i   )Ú#image_prompt_enhancer_instructions1Ú text_prompt_enhancer_max_tokens1Ú!image_prompt_enhancer_max_tokens1ÚnativeÚtext_to_image)	ÚacceleratedÚcapability_overridesr,   r-   r0   rX   rY   rZ   r[   rJ   )z$No Reference Images (Masked Editing)rG   rL   r^   r`   ra   )rA   r   r   r   r   r   r   r   r   Úupdater	   r
   r   r   )r%   Ú	model_defÚturboÚresults       r   Úquery_model_defzfamily_handler.query_model_def   s,  € àÐ#5Ò5ˆð
Ø˜Tð
Ø#4°dð
Ø<CÀVð
à˜W˜Ið
à'<¸að
àATÐV[ð
ð ˜tð
ð &:¸5ð
ð CZÐ[_ð
ð ˜bð	
ð #6°{ð	
ð EaÐbcð	
ð
 ˜ð
ð
  ,¨Tð
ð $Ð%5ð
ð # Dð
ð +HÈð
ð 
ð "¥;ð
ð  ð  "Rð  "Rð  yQð  "Rñ  "Rô  "Rð
ð  ð .fð .fð .fð 59ÀRÐRdð"fð "fð
ð ,¨Uð
ð ˜tð
ð &AÀ$ð
ð IXÐYað
ð drÐswð
ð  )Ð7OÐQgÐ6hØ=@ÈRÐ\að+cð +cð!
ð$ •Uð%
ð$ +­Lð%
ð$ ;HÍð%
ð$ WkÕl~ð%
ð& "Ð1IÐ1IÐ1IÐVXØ4Nð  WDØ5Pð  ZGð/Hð /Hð$Ið $Ið'
ð, 0µð-
ð, ;_Õ`dð-
ð. 1µ*ð/
ð 
õ. fuØ04Ð[_ð1
ð 
ð 
ˆð4 ð 
	GØ�MŠMØ'Ø)8¸%Ð(@Ø!3Ð 4ÈQÐfjÝ$Õ6HÝ0ÕH`ðð ñ ô ð ð 6<Ð<OÔ5PÐQZÔ5[Ð\]Ð\^Ð\^Ô5_ð  dPð  cQñ  6QˆFÐ&Ô'¨	Ñ2Ø59ˆFÐ&Ô'¨	Ñ2Ø:>À¸ˆFÐ(Ô)¨+Ñ6Øˆr   Nc                 ó2   — t           t          dgg d¢dggdœgS )Nr   )zfibo2_encoder_config.jsonzfibo2_processor_config.jsonztokenizer.jsonztokenizer_config.jsonzchat_template.jinjazflux2_vae_fp16.safetensors)ÚrepoIdÚsourceFolderListÚfileList)r@   rA   )ÚcomputeListr%   rn   s      r   Úquery_model_filesz family_handler.query_model_filesI   s?   € åµkÀ7Ð5Kð ]ð  ]ð  ]Ø;Ð<ð>ð?ð ?ð @ð 	@r   Fc                 óZ   — ddl m}  || ||||¦  «        }||j        |j        |j        dœfS )Nr   )Úload_pipeline)ÚtransformerÚtext_encoderÚvae)Úpipelinery   rz   r{   r|   )	Úmodel_filenameÚ
model_typer%   rn   Útext_encoder_filenameÚsave_quantizedÚkwargsry   r}   s	            r   Ú
load_modelzfamily_handler.load_modelO   sM   € à+Ð+Ð+Ð+Ð+Ð+Ø �= Ð1FÈ	ÐS]Ð_mÑnÔnˆØ¨Ô)=ÈxÔOdÐmuÔmyÐzÐzÐzÐzr   c                 óˆ   — |                      dddddddddddd	œ¦  «         | d
k    r|                      ddd¬¦  «         d S d S )Nr   Ú	1024x1024é2   g      @rG   ÚFGr   ç      ð?)Ú
image_modeÚ
resolutionÚ
batch_sizeÚnum_inference_stepsÚguidance_scaleÚprompt_enhancerÚvideo_prompt_typeÚmulti_prompts_gen_typeÚremove_background_images_refÚdenoising_strengthÚmasking_strengthr   é   rH   )rŒ   r�   r�   )rm   )r%   rn   Úui_defaultss      r   Úupdate_default_settingsz&family_handler.update_default_settingsU   sƒ   € à×Ò¨!¸;ÐVWÐprØ.1ÀbÐ_að  ~BØ<=ÐUXÐnqðsð sñ 	tô 	tð 	tð Ð0Ò0Ð0Ø×Ò°1ÀSÐ\`ÐÑaÔaÐaÐaÐað 1Ð0r   c                 óø   — |                      d¦  «        pg }t          |¦  «        dk    rdS |d         dk    r|rdS | dk    r-|d         dk    r|rd|                      d	d
¦  «        vrdS d|d<   dx|d<   |d<   d S )NÚ
image_refsr”   z6Fibo 2.0 supports up to four ordered reference images.r‰   é   zWMasked editing uses one Control Image and its mask; remove additional Reference Images.r   rI   r�   rG   zoFibo 2.0 Edit Turbo requires Reference Images or a Control Image with a mask. Use Dev for text-only generation.rˆ   r�   r’   r“   )ÚgetÚlen)r%   rn   ÚinputsÚ
referencess       r   Úvalidate_generative_settingsz+family_handler.validate_generative_settings]   s¸   € à—Z’Z Ñ-Ô-Ð3°ˆ
Ýˆz‰?Œ?˜QÒÐØKÐKØ�,Ô 1Ò$Ð$¨Ð$ØlÐlØÐ0Ò0Ð0Ø�lÔ# qÒ(Ð(°*Ð(ÀÈ6Ï:Ê:ÐViÐkmÑKnÔKnÐ@nÐ@nð Ið  IØ'*ˆFÐ#Ñ$ØDGÐGˆÐ#Ñ$ vÐ.@Ñ'AÐ'AÐ'Ar   c                 ó(   — ddl m}  |dd¬¦  «        S )Nr   )Úget_rgb_factorsÚfluxÚflux2)Ú
sub_family)Úshared.RGB_factorsr    )r%   r    s     r   r    zfamily_handler.get_rgb_factorsj   s)   € à6Ð6Ð6Ð6Ð6Ð6Øˆ˜v°'Ð:Ñ:Ô:Ð:r   r"   )NF)Ú__name__Ú
__module__Ú__qualname__Ústaticmethodr   r   r    r#   r&   rq   rw   rƒ   r–   rž   r    r   r   r   r   r   
   sT  € € € € € Øð1ð 1ñ „\ð1ð ðð ñ „\ðð ð-ð -ñ „\ð-ð ðð ñ „\ðð ðð ñ „\ðð ð'ð 'ñ „\ð'ðR ð@ð @ð @ñ „\ð@ð
 ð{ð {ð {ñ „\ð{ð
 ðbð bñ „\ðbð ð
Hð 
Hñ „\ð
Hð ð;ð ;ñ „\ð;ð ;ð ;r   r   N)Úshared.utils.hfr   Úhelpr   r   r   r   r	   r
   r   r   Úpromptsr   r   r   r   r@   rA   r   r   r   r   ú<module>r¬      sù   ðà (Ð (Ð (Ð (Ð (Ð (ð Uð  Uð  Uð  Uð  Uð  Uð  Uð  Uð  Uð  Uð  Uð  Uð  Uð  Uð  Uð  Uð  Uð  Uð  Uð  UØ ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?à€Ø$€ðc;ð c;ð c;ð c;ð c;ñ c;ô c;ð c;ð c;ð c;r   