From f4a4cb4964527f7029d9912badb6792fcf56ac2d Mon Sep 17 00:00:00 2001 From: awsr <43862868+awsr@users.noreply.github.com> Date: Fri, 3 Apr 2026 18:50:13 -0700 Subject: [PATCH 1/5] Add missing availability check Fixes NameError: name 'ftfy' is not defined --- src/diffusers/pipelines/wan/pipeline_wan_i2v.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/diffusers/pipelines/wan/pipeline_wan_i2v.py b/src/diffusers/pipelines/wan/pipeline_wan_i2v.py index f669e9b1d0ec..82273a7722b6 100644 --- a/src/diffusers/pipelines/wan/pipeline_wan_i2v.py +++ b/src/diffusers/pipelines/wan/pipeline_wan_i2v.py @@ -94,7 +94,8 @@ def basic_clean(text): - text = ftfy.fix_text(text) + if is_ftfy_available(): + text = ftfy.fix_text(text) text = html.unescape(html.unescape(text)) return text.strip() From 37d8e4a79b4f04c48b60804ff42d3376b450ae75 Mon Sep 17 00:00:00 2001 From: awsr <43862868+awsr@users.noreply.github.com> Date: Fri, 3 Apr 2026 19:06:43 -0700 Subject: [PATCH 2/5] Add missing ftfy check to WAN Animate pipeline --- src/diffusers/pipelines/wan/pipeline_wan_animate.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/diffusers/pipelines/wan/pipeline_wan_animate.py b/src/diffusers/pipelines/wan/pipeline_wan_animate.py index 5806032c0142..80624c14a107 100644 --- a/src/diffusers/pipelines/wan/pipeline_wan_animate.py +++ b/src/diffusers/pipelines/wan/pipeline_wan_animate.py @@ -117,7 +117,8 @@ def basic_clean(text): - text = ftfy.fix_text(text) + if is_ftfy_available(): + text = ftfy.fix_text(text) text = html.unescape(html.unescape(text)) return text.strip() From 2ce6cc4c0d238a49954a4b8eb2d1d75b3588b4fd Mon Sep 17 00:00:00 2001 From: awsr <43862868+awsr@users.noreply.github.com> Date: Sat, 4 Apr 2026 02:22:38 +0000 Subject: [PATCH 3/5] Add missing critical ftfy checks --- src/diffusers/modular_pipelines/flux/encoders.py | 3 ++- src/diffusers/modular_pipelines/helios/encoders.py | 3 ++- src/diffusers/modular_pipelines/wan/encoders.py | 3 ++- src/diffusers/pipelines/chronoedit/pipeline_chronoedit.py | 3 ++- src/diffusers/pipelines/helios/pipeline_helios.py | 3 ++- src/diffusers/pipelines/helios/pipeline_helios_pyramid.py | 3 ++- src/diffusers/pipelines/lucy/pipeline_lucy_edit.py | 3 ++- src/diffusers/pipelines/skyreels_v2/pipeline_skyreels_v2.py | 3 ++- .../skyreels_v2/pipeline_skyreels_v2_diffusion_forcing.py | 3 ++- .../skyreels_v2/pipeline_skyreels_v2_diffusion_forcing_i2v.py | 3 ++- .../skyreels_v2/pipeline_skyreels_v2_diffusion_forcing_v2v.py | 3 ++- .../pipelines/skyreels_v2/pipeline_skyreels_v2_i2v.py | 3 ++- src/diffusers/pipelines/wan/pipeline_wan_vace.py | 3 ++- src/diffusers/pipelines/wan/pipeline_wan_video2video.py | 3 ++- 14 files changed, 28 insertions(+), 14 deletions(-) diff --git a/src/diffusers/modular_pipelines/flux/encoders.py b/src/diffusers/modular_pipelines/flux/encoders.py index 583c139ff22e..a36f3438ec71 100644 --- a/src/diffusers/modular_pipelines/flux/encoders.py +++ b/src/diffusers/modular_pipelines/flux/encoders.py @@ -36,7 +36,8 @@ def basic_clean(text): - text = ftfy.fix_text(text) + if is_ftfy_available(): + text = ftfy.fix_text(text) text = html.unescape(html.unescape(text)) return text.strip() diff --git a/src/diffusers/modular_pipelines/helios/encoders.py b/src/diffusers/modular_pipelines/helios/encoders.py index 4671fbd12c96..f9a43becea3f 100644 --- a/src/diffusers/modular_pipelines/helios/encoders.py +++ b/src/diffusers/modular_pipelines/helios/encoders.py @@ -36,7 +36,8 @@ def basic_clean(text): - text = ftfy.fix_text(text) + if is_ftfy_available(): + text = ftfy.fix_text(text) text = html.unescape(html.unescape(text)) return text.strip() diff --git a/src/diffusers/modular_pipelines/wan/encoders.py b/src/diffusers/modular_pipelines/wan/encoders.py index 3e675a66e4f2..8a985e3908bf 100644 --- a/src/diffusers/modular_pipelines/wan/encoders.py +++ b/src/diffusers/modular_pipelines/wan/encoders.py @@ -42,7 +42,8 @@ def basic_clean(text): - text = ftfy.fix_text(text) + if is_ftfy_available(): + text = ftfy.fix_text(text) text = html.unescape(html.unescape(text)) return text.strip() diff --git a/src/diffusers/pipelines/chronoedit/pipeline_chronoedit.py b/src/diffusers/pipelines/chronoedit/pipeline_chronoedit.py index 1e0cc0ea5c2a..0507b715d375 100644 --- a/src/diffusers/pipelines/chronoedit/pipeline_chronoedit.py +++ b/src/diffusers/pipelines/chronoedit/pipeline_chronoedit.py @@ -95,7 +95,8 @@ def basic_clean(text): - text = ftfy.fix_text(text) + if is_ftfy_available(): + text = ftfy.fix_text(text) text = html.unescape(html.unescape(text)) return text.strip() diff --git a/src/diffusers/pipelines/helios/pipeline_helios.py b/src/diffusers/pipelines/helios/pipeline_helios.py index 87a8600badab..b92cf609e15e 100644 --- a/src/diffusers/pipelines/helios/pipeline_helios.py +++ b/src/diffusers/pipelines/helios/pipeline_helios.py @@ -75,7 +75,8 @@ def basic_clean(text): - text = ftfy.fix_text(text) + if is_ftfy_available(): + text = ftfy.fix_text(text) text = html.unescape(html.unescape(text)) return text.strip() diff --git a/src/diffusers/pipelines/helios/pipeline_helios_pyramid.py b/src/diffusers/pipelines/helios/pipeline_helios_pyramid.py index 1791da11b490..2828f490a7f8 100644 --- a/src/diffusers/pipelines/helios/pipeline_helios_pyramid.py +++ b/src/diffusers/pipelines/helios/pipeline_helios_pyramid.py @@ -88,7 +88,8 @@ def optimized_scale(positive_flat, negative_flat): def basic_clean(text): - text = ftfy.fix_text(text) + if is_ftfy_available(): + text = ftfy.fix_text(text) text = html.unescape(html.unescape(text)) return text.strip() diff --git a/src/diffusers/pipelines/lucy/pipeline_lucy_edit.py b/src/diffusers/pipelines/lucy/pipeline_lucy_edit.py index 392af492b702..473d6860c291 100644 --- a/src/diffusers/pipelines/lucy/pipeline_lucy_edit.py +++ b/src/diffusers/pipelines/lucy/pipeline_lucy_edit.py @@ -101,7 +101,8 @@ def basic_clean(text): - text = ftfy.fix_text(text) + if is_ftfy_available(): + text = ftfy.fix_text(text) text = html.unescape(html.unescape(text)) return text.strip() diff --git a/src/diffusers/pipelines/skyreels_v2/pipeline_skyreels_v2.py b/src/diffusers/pipelines/skyreels_v2/pipeline_skyreels_v2.py index c92608fad3b6..906bf3962a3a 100644 --- a/src/diffusers/pipelines/skyreels_v2/pipeline_skyreels_v2.py +++ b/src/diffusers/pipelines/skyreels_v2/pipeline_skyreels_v2.py @@ -88,7 +88,8 @@ def basic_clean(text): - text = ftfy.fix_text(text) + if is_ftfy_available(): + text = ftfy.fix_text(text) text = html.unescape(html.unescape(text)) return text.strip() diff --git a/src/diffusers/pipelines/skyreels_v2/pipeline_skyreels_v2_diffusion_forcing.py b/src/diffusers/pipelines/skyreels_v2/pipeline_skyreels_v2_diffusion_forcing.py index 8751240a1af9..b2d51562b54b 100644 --- a/src/diffusers/pipelines/skyreels_v2/pipeline_skyreels_v2_diffusion_forcing.py +++ b/src/diffusers/pipelines/skyreels_v2/pipeline_skyreels_v2_diffusion_forcing.py @@ -95,7 +95,8 @@ def basic_clean(text): - text = ftfy.fix_text(text) + if is_ftfy_available(): + text = ftfy.fix_text(text) text = html.unescape(html.unescape(text)) return text.strip() diff --git a/src/diffusers/pipelines/skyreels_v2/pipeline_skyreels_v2_diffusion_forcing_i2v.py b/src/diffusers/pipelines/skyreels_v2/pipeline_skyreels_v2_diffusion_forcing_i2v.py index a8f1b3a84a4a..435fa92c318b 100644 --- a/src/diffusers/pipelines/skyreels_v2/pipeline_skyreels_v2_diffusion_forcing_i2v.py +++ b/src/diffusers/pipelines/skyreels_v2/pipeline_skyreels_v2_diffusion_forcing_i2v.py @@ -100,7 +100,8 @@ def basic_clean(text): - text = ftfy.fix_text(text) + if is_ftfy_available(): + text = ftfy.fix_text(text) text = html.unescape(html.unescape(text)) return text.strip() diff --git a/src/diffusers/pipelines/skyreels_v2/pipeline_skyreels_v2_diffusion_forcing_v2v.py b/src/diffusers/pipelines/skyreels_v2/pipeline_skyreels_v2_diffusion_forcing_v2v.py index 924acb850d09..13bc2509566e 100644 --- a/src/diffusers/pipelines/skyreels_v2/pipeline_skyreels_v2_diffusion_forcing_v2v.py +++ b/src/diffusers/pipelines/skyreels_v2/pipeline_skyreels_v2_diffusion_forcing_v2v.py @@ -96,7 +96,8 @@ def basic_clean(text): - text = ftfy.fix_text(text) + if is_ftfy_available(): + text = ftfy.fix_text(text) text = html.unescape(html.unescape(text)) return text.strip() diff --git a/src/diffusers/pipelines/skyreels_v2/pipeline_skyreels_v2_i2v.py b/src/diffusers/pipelines/skyreels_v2/pipeline_skyreels_v2_i2v.py index 7c24b898e0bb..a1392ac91d7d 100644 --- a/src/diffusers/pipelines/skyreels_v2/pipeline_skyreels_v2_i2v.py +++ b/src/diffusers/pipelines/skyreels_v2/pipeline_skyreels_v2_i2v.py @@ -94,7 +94,8 @@ def basic_clean(text): - text = ftfy.fix_text(text) + if is_ftfy_available(): + text = ftfy.fix_text(text) text = html.unescape(html.unescape(text)) return text.strip() diff --git a/src/diffusers/pipelines/wan/pipeline_wan_vace.py b/src/diffusers/pipelines/wan/pipeline_wan_vace.py index c016eec1b535..5475309c9516 100644 --- a/src/diffusers/pipelines/wan/pipeline_wan_vace.py +++ b/src/diffusers/pipelines/wan/pipeline_wan_vace.py @@ -108,7 +108,8 @@ def prepare_video_and_mask(first_img: PIL.Image.Image, last_img: PIL.Image.Image def basic_clean(text): - text = ftfy.fix_text(text) + if is_ftfy_available(): + text = ftfy.fix_text(text) text = html.unescape(html.unescape(text)) return text.strip() diff --git a/src/diffusers/pipelines/wan/pipeline_wan_video2video.py b/src/diffusers/pipelines/wan/pipeline_wan_video2video.py index 3d7c5297f4c4..3776d2f5daae 100644 --- a/src/diffusers/pipelines/wan/pipeline_wan_video2video.py +++ b/src/diffusers/pipelines/wan/pipeline_wan_video2video.py @@ -81,7 +81,8 @@ def basic_clean(text): - text = ftfy.fix_text(text) + if is_ftfy_available(): + text = ftfy.fix_text(text) text = html.unescape(html.unescape(text)) return text.strip() From 0f68e9555f61c8fdc053b604c26887f2418e7b1a Mon Sep 17 00:00:00 2001 From: awsr <43862868+awsr@users.noreply.github.com> Date: Sat, 4 Apr 2026 02:23:56 +0000 Subject: [PATCH 4/5] Explicitly guard ftfy calls --- src/diffusers/pipelines/allegro/pipeline_allegro.py | 3 ++- src/diffusers/pipelines/deepfloyd_if/pipeline_if.py | 3 ++- src/diffusers/pipelines/deepfloyd_if/pipeline_if_img2img.py | 3 ++- .../deepfloyd_if/pipeline_if_img2img_superresolution.py | 3 ++- src/diffusers/pipelines/deepfloyd_if/pipeline_if_inpainting.py | 3 ++- .../deepfloyd_if/pipeline_if_inpainting_superresolution.py | 3 ++- .../pipelines/deepfloyd_if/pipeline_if_superresolution.py | 3 ++- src/diffusers/pipelines/latte/pipeline_latte.py | 3 ++- src/diffusers/pipelines/lumina/pipeline_lumina.py | 3 ++- src/diffusers/pipelines/pag/pipeline_pag_pixart_sigma.py | 3 ++- src/diffusers/pipelines/pag/pipeline_pag_sana.py | 3 ++- src/diffusers/pipelines/pixart_alpha/pipeline_pixart_alpha.py | 3 ++- src/diffusers/pipelines/pixart_alpha/pipeline_pixart_sigma.py | 3 ++- src/diffusers/pipelines/prx/pipeline_prx.py | 3 ++- src/diffusers/pipelines/sana/pipeline_sana.py | 3 ++- src/diffusers/pipelines/sana/pipeline_sana_controlnet.py | 3 ++- src/diffusers/pipelines/sana/pipeline_sana_sprint.py | 3 ++- src/diffusers/pipelines/sana/pipeline_sana_sprint_img2img.py | 3 ++- src/diffusers/pipelines/sana_video/pipeline_sana_video.py | 3 ++- src/diffusers/pipelines/sana_video/pipeline_sana_video_i2v.py | 3 ++- 20 files changed, 40 insertions(+), 20 deletions(-) diff --git a/src/diffusers/pipelines/allegro/pipeline_allegro.py b/src/diffusers/pipelines/allegro/pipeline_allegro.py index e54e9ed20739..009bba2efab3 100644 --- a/src/diffusers/pipelines/allegro/pipeline_allegro.py +++ b/src/diffusers/pipelines/allegro/pipeline_allegro.py @@ -544,7 +544,8 @@ def _clean_caption(self, caption): if len(re.findall(regex2, caption)) > 3: caption = re.sub(regex2, " ", caption) - caption = ftfy.fix_text(caption) + if is_ftfy_available(): + caption = ftfy.fix_text(caption) caption = html.unescape(html.unescape(caption)) caption = re.sub(r"\b[a-zA-Z]{1,3}\d{3,15}\b", "", caption) # jc6640 diff --git a/src/diffusers/pipelines/deepfloyd_if/pipeline_if.py b/src/diffusers/pipelines/deepfloyd_if/pipeline_if.py index b8c70fc6528c..4c260bd2b78c 100644 --- a/src/diffusers/pipelines/deepfloyd_if/pipeline_if.py +++ b/src/diffusers/pipelines/deepfloyd_if/pipeline_if.py @@ -514,7 +514,8 @@ def _clean_caption(self, caption): if len(re.findall(regex2, caption)) > 3: caption = re.sub(regex2, " ", caption) - caption = ftfy.fix_text(caption) + if is_ftfy_available(): + caption = ftfy.fix_text(caption) caption = html.unescape(html.unescape(caption)) caption = re.sub(r"\b[a-zA-Z]{1,3}\d{3,15}\b", "", caption) # jc6640 diff --git a/src/diffusers/pipelines/deepfloyd_if/pipeline_if_img2img.py b/src/diffusers/pipelines/deepfloyd_if/pipeline_if_img2img.py index 3dadc63f4952..a6a6677a1562 100644 --- a/src/diffusers/pipelines/deepfloyd_if/pipeline_if_img2img.py +++ b/src/diffusers/pipelines/deepfloyd_if/pipeline_if_img2img.py @@ -558,7 +558,8 @@ def _clean_caption(self, caption): if len(re.findall(regex2, caption)) > 3: caption = re.sub(regex2, " ", caption) - caption = ftfy.fix_text(caption) + if is_ftfy_available(): + caption = ftfy.fix_text(caption) caption = html.unescape(html.unescape(caption)) caption = re.sub(r"\b[a-zA-Z]{1,3}\d{3,15}\b", "", caption) # jc6640 diff --git a/src/diffusers/pipelines/deepfloyd_if/pipeline_if_img2img_superresolution.py b/src/diffusers/pipelines/deepfloyd_if/pipeline_if_img2img_superresolution.py index 4839a0860462..9bba20940974 100644 --- a/src/diffusers/pipelines/deepfloyd_if/pipeline_if_img2img_superresolution.py +++ b/src/diffusers/pipelines/deepfloyd_if/pipeline_if_img2img_superresolution.py @@ -311,7 +311,8 @@ def _clean_caption(self, caption): if len(re.findall(regex2, caption)) > 3: caption = re.sub(regex2, " ", caption) - caption = ftfy.fix_text(caption) + if is_ftfy_available(): + caption = ftfy.fix_text(caption) caption = html.unescape(html.unescape(caption)) caption = re.sub(r"\b[a-zA-Z]{1,3}\d{3,15}\b", "", caption) # jc6640 diff --git a/src/diffusers/pipelines/deepfloyd_if/pipeline_if_inpainting.py b/src/diffusers/pipelines/deepfloyd_if/pipeline_if_inpainting.py index 03a9d6f7c5e8..dcefdfe3fa45 100644 --- a/src/diffusers/pipelines/deepfloyd_if/pipeline_if_inpainting.py +++ b/src/diffusers/pipelines/deepfloyd_if/pipeline_if_inpainting.py @@ -598,7 +598,8 @@ def _clean_caption(self, caption): if len(re.findall(regex2, caption)) > 3: caption = re.sub(regex2, " ", caption) - caption = ftfy.fix_text(caption) + if is_ftfy_available(): + caption = ftfy.fix_text(caption) caption = html.unescape(html.unescape(caption)) caption = re.sub(r"\b[a-zA-Z]{1,3}\d{3,15}\b", "", caption) # jc6640 diff --git a/src/diffusers/pipelines/deepfloyd_if/pipeline_if_inpainting_superresolution.py b/src/diffusers/pipelines/deepfloyd_if/pipeline_if_inpainting_superresolution.py index 841382ad9c63..ff385c03d768 100644 --- a/src/diffusers/pipelines/deepfloyd_if/pipeline_if_inpainting_superresolution.py +++ b/src/diffusers/pipelines/deepfloyd_if/pipeline_if_inpainting_superresolution.py @@ -313,7 +313,8 @@ def _clean_caption(self, caption): if len(re.findall(regex2, caption)) > 3: caption = re.sub(regex2, " ", caption) - caption = ftfy.fix_text(caption) + if is_ftfy_available(): + caption = ftfy.fix_text(caption) caption = html.unescape(html.unescape(caption)) caption = re.sub(r"\b[a-zA-Z]{1,3}\d{3,15}\b", "", caption) # jc6640 diff --git a/src/diffusers/pipelines/deepfloyd_if/pipeline_if_superresolution.py b/src/diffusers/pipelines/deepfloyd_if/pipeline_if_superresolution.py index 52ebebb6f9b4..be1f515b1ebc 100644 --- a/src/diffusers/pipelines/deepfloyd_if/pipeline_if_superresolution.py +++ b/src/diffusers/pipelines/deepfloyd_if/pipeline_if_superresolution.py @@ -269,7 +269,8 @@ def _clean_caption(self, caption): if len(re.findall(regex2, caption)) > 3: caption = re.sub(regex2, " ", caption) - caption = ftfy.fix_text(caption) + if is_ftfy_available(): + caption = ftfy.fix_text(caption) caption = html.unescape(html.unescape(caption)) caption = re.sub(r"\b[a-zA-Z]{1,3}\d{3,15}\b", "", caption) # jc6640 diff --git a/src/diffusers/pipelines/latte/pipeline_latte.py b/src/diffusers/pipelines/latte/pipeline_latte.py index 7bc7b4aa915e..cb5b686ac185 100644 --- a/src/diffusers/pipelines/latte/pipeline_latte.py +++ b/src/diffusers/pipelines/latte/pipeline_latte.py @@ -531,7 +531,8 @@ def _clean_caption(self, caption): if len(re.findall(regex2, caption)) > 3: caption = re.sub(regex2, " ", caption) - caption = ftfy.fix_text(caption) + if is_ftfy_available(): + caption = ftfy.fix_text(caption) caption = html.unescape(html.unescape(caption)) caption = re.sub(r"\b[a-zA-Z]{1,3}\d{3,15}\b", "", caption) # jc6640 diff --git a/src/diffusers/pipelines/lumina/pipeline_lumina.py b/src/diffusers/pipelines/lumina/pipeline_lumina.py index cc123218f4ee..d338eb0b6880 100644 --- a/src/diffusers/pipelines/lumina/pipeline_lumina.py +++ b/src/diffusers/pipelines/lumina/pipeline_lumina.py @@ -564,7 +564,8 @@ def _clean_caption(self, caption): if len(re.findall(regex2, caption)) > 3: caption = re.sub(regex2, " ", caption) - caption = ftfy.fix_text(caption) + if is_ftfy_available(): + caption = ftfy.fix_text(caption) caption = html.unescape(html.unescape(caption)) caption = re.sub(r"\b[a-zA-Z]{1,3}\d{3,15}\b", "", caption) # jc6640 diff --git a/src/diffusers/pipelines/pag/pipeline_pag_pixart_sigma.py b/src/diffusers/pipelines/pag/pipeline_pag_pixart_sigma.py index 2e7e8ab9814f..0cdb2ff1dbc7 100644 --- a/src/diffusers/pipelines/pag/pipeline_pag_pixart_sigma.py +++ b/src/diffusers/pipelines/pag/pipeline_pag_pixart_sigma.py @@ -518,7 +518,8 @@ def _clean_caption(self, caption): if len(re.findall(regex2, caption)) > 3: caption = re.sub(regex2, " ", caption) - caption = ftfy.fix_text(caption) + if is_ftfy_available(): + caption = ftfy.fix_text(caption) caption = html.unescape(html.unescape(caption)) caption = re.sub(r"\b[a-zA-Z]{1,3}\d{3,15}\b", "", caption) # jc6640 diff --git a/src/diffusers/pipelines/pag/pipeline_pag_sana.py b/src/diffusers/pipelines/pag/pipeline_pag_sana.py index 71861f366477..67502ffee7f1 100644 --- a/src/diffusers/pipelines/pag/pipeline_pag_sana.py +++ b/src/diffusers/pipelines/pag/pipeline_pag_sana.py @@ -579,7 +579,8 @@ def _clean_caption(self, caption): if len(re.findall(regex2, caption)) > 3: caption = re.sub(regex2, " ", caption) - caption = ftfy.fix_text(caption) + if is_ftfy_available(): + caption = ftfy.fix_text(caption) caption = html.unescape(html.unescape(caption)) caption = re.sub(r"\b[a-zA-Z]{1,3}\d{3,15}\b", "", caption) # jc6640 diff --git a/src/diffusers/pipelines/pixart_alpha/pipeline_pixart_alpha.py b/src/diffusers/pipelines/pixart_alpha/pipeline_pixart_alpha.py index 604e51d88583..000b66400cda 100644 --- a/src/diffusers/pipelines/pixart_alpha/pipeline_pixart_alpha.py +++ b/src/diffusers/pipelines/pixart_alpha/pipeline_pixart_alpha.py @@ -630,7 +630,8 @@ def _clean_caption(self, caption): if len(re.findall(regex2, caption)) > 3: caption = re.sub(regex2, " ", caption) - caption = ftfy.fix_text(caption) + if is_ftfy_available(): + caption = ftfy.fix_text(caption) caption = html.unescape(html.unescape(caption)) caption = re.sub(r"\b[a-zA-Z]{1,3}\d{3,15}\b", "", caption) # jc6640 diff --git a/src/diffusers/pipelines/pixart_alpha/pipeline_pixart_sigma.py b/src/diffusers/pipelines/pixart_alpha/pipeline_pixart_sigma.py index 286695aa8eb9..3a4fccdcb617 100644 --- a/src/diffusers/pipelines/pixart_alpha/pipeline_pixart_sigma.py +++ b/src/diffusers/pipelines/pixart_alpha/pipeline_pixart_sigma.py @@ -575,7 +575,8 @@ def _clean_caption(self, caption): if len(re.findall(regex2, caption)) > 3: caption = re.sub(regex2, " ", caption) - caption = ftfy.fix_text(caption) + if is_ftfy_available(): + caption = ftfy.fix_text(caption) caption = html.unescape(html.unescape(caption)) caption = re.sub(r"\b[a-zA-Z]{1,3}\d{3,15}\b", "", caption) # jc6640 diff --git a/src/diffusers/pipelines/prx/pipeline_prx.py b/src/diffusers/pipelines/prx/pipeline_prx.py index e14815b91c41..cfc3152f7a08 100644 --- a/src/diffusers/pipelines/prx/pipeline_prx.py +++ b/src/diffusers/pipelines/prx/pipeline_prx.py @@ -197,7 +197,8 @@ def clean_text(self, text: str) -> str: text = re.sub(regex2, " ", text) # Basic cleaning - text = ftfy.fix_text(text) + if is_ftfy_available(): + text = ftfy.fix_text(text) text = html.unescape(html.unescape(text)) text = text.strip() diff --git a/src/diffusers/pipelines/sana/pipeline_sana.py b/src/diffusers/pipelines/sana/pipeline_sana.py index 17e0be9ba7aa..fd7e1c73941b 100644 --- a/src/diffusers/pipelines/sana/pipeline_sana.py +++ b/src/diffusers/pipelines/sana/pipeline_sana.py @@ -655,7 +655,8 @@ def _clean_caption(self, caption): if len(re.findall(regex2, caption)) > 3: caption = re.sub(regex2, " ", caption) - caption = ftfy.fix_text(caption) + if is_ftfy_available(): + caption = ftfy.fix_text(caption) caption = html.unescape(html.unescape(caption)) caption = re.sub(r"\b[a-zA-Z]{1,3}\d{3,15}\b", "", caption) # jc6640 diff --git a/src/diffusers/pipelines/sana/pipeline_sana_controlnet.py b/src/diffusers/pipelines/sana/pipeline_sana_controlnet.py index d976c7035d9d..66558c94e119 100644 --- a/src/diffusers/pipelines/sana/pipeline_sana_controlnet.py +++ b/src/diffusers/pipelines/sana/pipeline_sana_controlnet.py @@ -670,7 +670,8 @@ def _clean_caption(self, caption): if len(re.findall(regex2, caption)) > 3: caption = re.sub(regex2, " ", caption) - caption = ftfy.fix_text(caption) + if is_ftfy_available(): + caption = ftfy.fix_text(caption) caption = html.unescape(html.unescape(caption)) caption = re.sub(r"\b[a-zA-Z]{1,3}\d{3,15}\b", "", caption) # jc6640 diff --git a/src/diffusers/pipelines/sana/pipeline_sana_sprint.py b/src/diffusers/pipelines/sana/pipeline_sana_sprint.py index c85f05275f51..9495415923da 100644 --- a/src/diffusers/pipelines/sana/pipeline_sana_sprint.py +++ b/src/diffusers/pipelines/sana/pipeline_sana_sprint.py @@ -546,7 +546,8 @@ def _clean_caption(self, caption): if len(re.findall(regex2, caption)) > 3: caption = re.sub(regex2, " ", caption) - caption = ftfy.fix_text(caption) + if is_ftfy_available(): + caption = ftfy.fix_text(caption) caption = html.unescape(html.unescape(caption)) caption = re.sub(r"\b[a-zA-Z]{1,3}\d{3,15}\b", "", caption) # jc6640 diff --git a/src/diffusers/pipelines/sana/pipeline_sana_sprint_img2img.py b/src/diffusers/pipelines/sana/pipeline_sana_sprint_img2img.py index a17c494e88eb..600e99cebe69 100644 --- a/src/diffusers/pipelines/sana/pipeline_sana_sprint_img2img.py +++ b/src/diffusers/pipelines/sana/pipeline_sana_sprint_img2img.py @@ -573,7 +573,8 @@ def _clean_caption(self, caption): if len(re.findall(regex2, caption)) > 3: caption = re.sub(regex2, " ", caption) - caption = ftfy.fix_text(caption) + if is_ftfy_available(): + caption = ftfy.fix_text(caption) caption = html.unescape(html.unescape(caption)) caption = re.sub(r"\b[a-zA-Z]{1,3}\d{3,15}\b", "", caption) # jc6640 diff --git a/src/diffusers/pipelines/sana_video/pipeline_sana_video.py b/src/diffusers/pipelines/sana_video/pipeline_sana_video.py index 7ae85639e358..cae9852adc95 100644 --- a/src/diffusers/pipelines/sana_video/pipeline_sana_video.py +++ b/src/diffusers/pipelines/sana_video/pipeline_sana_video.py @@ -624,7 +624,8 @@ def _clean_caption(self, caption): if len(re.findall(regex2, caption)) > 3: caption = re.sub(regex2, " ", caption) - caption = ftfy.fix_text(caption) + if is_ftfy_available(): + caption = ftfy.fix_text(caption) caption = html.unescape(html.unescape(caption)) caption = re.sub(r"\b[a-zA-Z]{1,3}\d{3,15}\b", "", caption) # jc6640 diff --git a/src/diffusers/pipelines/sana_video/pipeline_sana_video_i2v.py b/src/diffusers/pipelines/sana_video/pipeline_sana_video_i2v.py index 81df1d0759da..d7c93ef01299 100644 --- a/src/diffusers/pipelines/sana_video/pipeline_sana_video_i2v.py +++ b/src/diffusers/pipelines/sana_video/pipeline_sana_video_i2v.py @@ -626,7 +626,8 @@ def _clean_caption(self, caption): if len(re.findall(regex2, caption)) > 3: caption = re.sub(regex2, " ", caption) - caption = ftfy.fix_text(caption) + if is_ftfy_available(): + caption = ftfy.fix_text(caption) caption = html.unescape(html.unescape(caption)) caption = re.sub(r"\b[a-zA-Z]{1,3}\d{3,15}\b", "", caption) # jc6640 From 0b57dd208ae29897069c575bc98657dc869e6d23 Mon Sep 17 00:00:00 2001 From: awsr <43862868+awsr@users.noreply.github.com> Date: Sat, 4 Apr 2026 02:43:27 +0000 Subject: [PATCH 5/5] Revert "Explicitly guard ftfy calls" This reverts commit 0f68e9555f61c8fdc053b604c26887f2418e7b1a. --- src/diffusers/pipelines/allegro/pipeline_allegro.py | 3 +-- src/diffusers/pipelines/deepfloyd_if/pipeline_if.py | 3 +-- src/diffusers/pipelines/deepfloyd_if/pipeline_if_img2img.py | 3 +-- .../deepfloyd_if/pipeline_if_img2img_superresolution.py | 3 +-- src/diffusers/pipelines/deepfloyd_if/pipeline_if_inpainting.py | 3 +-- .../deepfloyd_if/pipeline_if_inpainting_superresolution.py | 3 +-- .../pipelines/deepfloyd_if/pipeline_if_superresolution.py | 3 +-- src/diffusers/pipelines/latte/pipeline_latte.py | 3 +-- src/diffusers/pipelines/lumina/pipeline_lumina.py | 3 +-- src/diffusers/pipelines/pag/pipeline_pag_pixart_sigma.py | 3 +-- src/diffusers/pipelines/pag/pipeline_pag_sana.py | 3 +-- src/diffusers/pipelines/pixart_alpha/pipeline_pixart_alpha.py | 3 +-- src/diffusers/pipelines/pixart_alpha/pipeline_pixart_sigma.py | 3 +-- src/diffusers/pipelines/prx/pipeline_prx.py | 3 +-- src/diffusers/pipelines/sana/pipeline_sana.py | 3 +-- src/diffusers/pipelines/sana/pipeline_sana_controlnet.py | 3 +-- src/diffusers/pipelines/sana/pipeline_sana_sprint.py | 3 +-- src/diffusers/pipelines/sana/pipeline_sana_sprint_img2img.py | 3 +-- src/diffusers/pipelines/sana_video/pipeline_sana_video.py | 3 +-- src/diffusers/pipelines/sana_video/pipeline_sana_video_i2v.py | 3 +-- 20 files changed, 20 insertions(+), 40 deletions(-) diff --git a/src/diffusers/pipelines/allegro/pipeline_allegro.py b/src/diffusers/pipelines/allegro/pipeline_allegro.py index 009bba2efab3..e54e9ed20739 100644 --- a/src/diffusers/pipelines/allegro/pipeline_allegro.py +++ b/src/diffusers/pipelines/allegro/pipeline_allegro.py @@ -544,8 +544,7 @@ def _clean_caption(self, caption): if len(re.findall(regex2, caption)) > 3: caption = re.sub(regex2, " ", caption) - if is_ftfy_available(): - caption = ftfy.fix_text(caption) + caption = ftfy.fix_text(caption) caption = html.unescape(html.unescape(caption)) caption = re.sub(r"\b[a-zA-Z]{1,3}\d{3,15}\b", "", caption) # jc6640 diff --git a/src/diffusers/pipelines/deepfloyd_if/pipeline_if.py b/src/diffusers/pipelines/deepfloyd_if/pipeline_if.py index 4c260bd2b78c..b8c70fc6528c 100644 --- a/src/diffusers/pipelines/deepfloyd_if/pipeline_if.py +++ b/src/diffusers/pipelines/deepfloyd_if/pipeline_if.py @@ -514,8 +514,7 @@ def _clean_caption(self, caption): if len(re.findall(regex2, caption)) > 3: caption = re.sub(regex2, " ", caption) - if is_ftfy_available(): - caption = ftfy.fix_text(caption) + caption = ftfy.fix_text(caption) caption = html.unescape(html.unescape(caption)) caption = re.sub(r"\b[a-zA-Z]{1,3}\d{3,15}\b", "", caption) # jc6640 diff --git a/src/diffusers/pipelines/deepfloyd_if/pipeline_if_img2img.py b/src/diffusers/pipelines/deepfloyd_if/pipeline_if_img2img.py index a6a6677a1562..3dadc63f4952 100644 --- a/src/diffusers/pipelines/deepfloyd_if/pipeline_if_img2img.py +++ b/src/diffusers/pipelines/deepfloyd_if/pipeline_if_img2img.py @@ -558,8 +558,7 @@ def _clean_caption(self, caption): if len(re.findall(regex2, caption)) > 3: caption = re.sub(regex2, " ", caption) - if is_ftfy_available(): - caption = ftfy.fix_text(caption) + caption = ftfy.fix_text(caption) caption = html.unescape(html.unescape(caption)) caption = re.sub(r"\b[a-zA-Z]{1,3}\d{3,15}\b", "", caption) # jc6640 diff --git a/src/diffusers/pipelines/deepfloyd_if/pipeline_if_img2img_superresolution.py b/src/diffusers/pipelines/deepfloyd_if/pipeline_if_img2img_superresolution.py index 9bba20940974..4839a0860462 100644 --- a/src/diffusers/pipelines/deepfloyd_if/pipeline_if_img2img_superresolution.py +++ b/src/diffusers/pipelines/deepfloyd_if/pipeline_if_img2img_superresolution.py @@ -311,8 +311,7 @@ def _clean_caption(self, caption): if len(re.findall(regex2, caption)) > 3: caption = re.sub(regex2, " ", caption) - if is_ftfy_available(): - caption = ftfy.fix_text(caption) + caption = ftfy.fix_text(caption) caption = html.unescape(html.unescape(caption)) caption = re.sub(r"\b[a-zA-Z]{1,3}\d{3,15}\b", "", caption) # jc6640 diff --git a/src/diffusers/pipelines/deepfloyd_if/pipeline_if_inpainting.py b/src/diffusers/pipelines/deepfloyd_if/pipeline_if_inpainting.py index dcefdfe3fa45..03a9d6f7c5e8 100644 --- a/src/diffusers/pipelines/deepfloyd_if/pipeline_if_inpainting.py +++ b/src/diffusers/pipelines/deepfloyd_if/pipeline_if_inpainting.py @@ -598,8 +598,7 @@ def _clean_caption(self, caption): if len(re.findall(regex2, caption)) > 3: caption = re.sub(regex2, " ", caption) - if is_ftfy_available(): - caption = ftfy.fix_text(caption) + caption = ftfy.fix_text(caption) caption = html.unescape(html.unescape(caption)) caption = re.sub(r"\b[a-zA-Z]{1,3}\d{3,15}\b", "", caption) # jc6640 diff --git a/src/diffusers/pipelines/deepfloyd_if/pipeline_if_inpainting_superresolution.py b/src/diffusers/pipelines/deepfloyd_if/pipeline_if_inpainting_superresolution.py index ff385c03d768..841382ad9c63 100644 --- a/src/diffusers/pipelines/deepfloyd_if/pipeline_if_inpainting_superresolution.py +++ b/src/diffusers/pipelines/deepfloyd_if/pipeline_if_inpainting_superresolution.py @@ -313,8 +313,7 @@ def _clean_caption(self, caption): if len(re.findall(regex2, caption)) > 3: caption = re.sub(regex2, " ", caption) - if is_ftfy_available(): - caption = ftfy.fix_text(caption) + caption = ftfy.fix_text(caption) caption = html.unescape(html.unescape(caption)) caption = re.sub(r"\b[a-zA-Z]{1,3}\d{3,15}\b", "", caption) # jc6640 diff --git a/src/diffusers/pipelines/deepfloyd_if/pipeline_if_superresolution.py b/src/diffusers/pipelines/deepfloyd_if/pipeline_if_superresolution.py index be1f515b1ebc..52ebebb6f9b4 100644 --- a/src/diffusers/pipelines/deepfloyd_if/pipeline_if_superresolution.py +++ b/src/diffusers/pipelines/deepfloyd_if/pipeline_if_superresolution.py @@ -269,8 +269,7 @@ def _clean_caption(self, caption): if len(re.findall(regex2, caption)) > 3: caption = re.sub(regex2, " ", caption) - if is_ftfy_available(): - caption = ftfy.fix_text(caption) + caption = ftfy.fix_text(caption) caption = html.unescape(html.unescape(caption)) caption = re.sub(r"\b[a-zA-Z]{1,3}\d{3,15}\b", "", caption) # jc6640 diff --git a/src/diffusers/pipelines/latte/pipeline_latte.py b/src/diffusers/pipelines/latte/pipeline_latte.py index cb5b686ac185..7bc7b4aa915e 100644 --- a/src/diffusers/pipelines/latte/pipeline_latte.py +++ b/src/diffusers/pipelines/latte/pipeline_latte.py @@ -531,8 +531,7 @@ def _clean_caption(self, caption): if len(re.findall(regex2, caption)) > 3: caption = re.sub(regex2, " ", caption) - if is_ftfy_available(): - caption = ftfy.fix_text(caption) + caption = ftfy.fix_text(caption) caption = html.unescape(html.unescape(caption)) caption = re.sub(r"\b[a-zA-Z]{1,3}\d{3,15}\b", "", caption) # jc6640 diff --git a/src/diffusers/pipelines/lumina/pipeline_lumina.py b/src/diffusers/pipelines/lumina/pipeline_lumina.py index d338eb0b6880..cc123218f4ee 100644 --- a/src/diffusers/pipelines/lumina/pipeline_lumina.py +++ b/src/diffusers/pipelines/lumina/pipeline_lumina.py @@ -564,8 +564,7 @@ def _clean_caption(self, caption): if len(re.findall(regex2, caption)) > 3: caption = re.sub(regex2, " ", caption) - if is_ftfy_available(): - caption = ftfy.fix_text(caption) + caption = ftfy.fix_text(caption) caption = html.unescape(html.unescape(caption)) caption = re.sub(r"\b[a-zA-Z]{1,3}\d{3,15}\b", "", caption) # jc6640 diff --git a/src/diffusers/pipelines/pag/pipeline_pag_pixart_sigma.py b/src/diffusers/pipelines/pag/pipeline_pag_pixart_sigma.py index 0cdb2ff1dbc7..2e7e8ab9814f 100644 --- a/src/diffusers/pipelines/pag/pipeline_pag_pixart_sigma.py +++ b/src/diffusers/pipelines/pag/pipeline_pag_pixart_sigma.py @@ -518,8 +518,7 @@ def _clean_caption(self, caption): if len(re.findall(regex2, caption)) > 3: caption = re.sub(regex2, " ", caption) - if is_ftfy_available(): - caption = ftfy.fix_text(caption) + caption = ftfy.fix_text(caption) caption = html.unescape(html.unescape(caption)) caption = re.sub(r"\b[a-zA-Z]{1,3}\d{3,15}\b", "", caption) # jc6640 diff --git a/src/diffusers/pipelines/pag/pipeline_pag_sana.py b/src/diffusers/pipelines/pag/pipeline_pag_sana.py index 67502ffee7f1..71861f366477 100644 --- a/src/diffusers/pipelines/pag/pipeline_pag_sana.py +++ b/src/diffusers/pipelines/pag/pipeline_pag_sana.py @@ -579,8 +579,7 @@ def _clean_caption(self, caption): if len(re.findall(regex2, caption)) > 3: caption = re.sub(regex2, " ", caption) - if is_ftfy_available(): - caption = ftfy.fix_text(caption) + caption = ftfy.fix_text(caption) caption = html.unescape(html.unescape(caption)) caption = re.sub(r"\b[a-zA-Z]{1,3}\d{3,15}\b", "", caption) # jc6640 diff --git a/src/diffusers/pipelines/pixart_alpha/pipeline_pixart_alpha.py b/src/diffusers/pipelines/pixart_alpha/pipeline_pixart_alpha.py index 000b66400cda..604e51d88583 100644 --- a/src/diffusers/pipelines/pixart_alpha/pipeline_pixart_alpha.py +++ b/src/diffusers/pipelines/pixart_alpha/pipeline_pixart_alpha.py @@ -630,8 +630,7 @@ def _clean_caption(self, caption): if len(re.findall(regex2, caption)) > 3: caption = re.sub(regex2, " ", caption) - if is_ftfy_available(): - caption = ftfy.fix_text(caption) + caption = ftfy.fix_text(caption) caption = html.unescape(html.unescape(caption)) caption = re.sub(r"\b[a-zA-Z]{1,3}\d{3,15}\b", "", caption) # jc6640 diff --git a/src/diffusers/pipelines/pixart_alpha/pipeline_pixart_sigma.py b/src/diffusers/pipelines/pixart_alpha/pipeline_pixart_sigma.py index 3a4fccdcb617..286695aa8eb9 100644 --- a/src/diffusers/pipelines/pixart_alpha/pipeline_pixart_sigma.py +++ b/src/diffusers/pipelines/pixart_alpha/pipeline_pixart_sigma.py @@ -575,8 +575,7 @@ def _clean_caption(self, caption): if len(re.findall(regex2, caption)) > 3: caption = re.sub(regex2, " ", caption) - if is_ftfy_available(): - caption = ftfy.fix_text(caption) + caption = ftfy.fix_text(caption) caption = html.unescape(html.unescape(caption)) caption = re.sub(r"\b[a-zA-Z]{1,3}\d{3,15}\b", "", caption) # jc6640 diff --git a/src/diffusers/pipelines/prx/pipeline_prx.py b/src/diffusers/pipelines/prx/pipeline_prx.py index cfc3152f7a08..e14815b91c41 100644 --- a/src/diffusers/pipelines/prx/pipeline_prx.py +++ b/src/diffusers/pipelines/prx/pipeline_prx.py @@ -197,8 +197,7 @@ def clean_text(self, text: str) -> str: text = re.sub(regex2, " ", text) # Basic cleaning - if is_ftfy_available(): - text = ftfy.fix_text(text) + text = ftfy.fix_text(text) text = html.unescape(html.unescape(text)) text = text.strip() diff --git a/src/diffusers/pipelines/sana/pipeline_sana.py b/src/diffusers/pipelines/sana/pipeline_sana.py index fd7e1c73941b..17e0be9ba7aa 100644 --- a/src/diffusers/pipelines/sana/pipeline_sana.py +++ b/src/diffusers/pipelines/sana/pipeline_sana.py @@ -655,8 +655,7 @@ def _clean_caption(self, caption): if len(re.findall(regex2, caption)) > 3: caption = re.sub(regex2, " ", caption) - if is_ftfy_available(): - caption = ftfy.fix_text(caption) + caption = ftfy.fix_text(caption) caption = html.unescape(html.unescape(caption)) caption = re.sub(r"\b[a-zA-Z]{1,3}\d{3,15}\b", "", caption) # jc6640 diff --git a/src/diffusers/pipelines/sana/pipeline_sana_controlnet.py b/src/diffusers/pipelines/sana/pipeline_sana_controlnet.py index 66558c94e119..d976c7035d9d 100644 --- a/src/diffusers/pipelines/sana/pipeline_sana_controlnet.py +++ b/src/diffusers/pipelines/sana/pipeline_sana_controlnet.py @@ -670,8 +670,7 @@ def _clean_caption(self, caption): if len(re.findall(regex2, caption)) > 3: caption = re.sub(regex2, " ", caption) - if is_ftfy_available(): - caption = ftfy.fix_text(caption) + caption = ftfy.fix_text(caption) caption = html.unescape(html.unescape(caption)) caption = re.sub(r"\b[a-zA-Z]{1,3}\d{3,15}\b", "", caption) # jc6640 diff --git a/src/diffusers/pipelines/sana/pipeline_sana_sprint.py b/src/diffusers/pipelines/sana/pipeline_sana_sprint.py index 9495415923da..c85f05275f51 100644 --- a/src/diffusers/pipelines/sana/pipeline_sana_sprint.py +++ b/src/diffusers/pipelines/sana/pipeline_sana_sprint.py @@ -546,8 +546,7 @@ def _clean_caption(self, caption): if len(re.findall(regex2, caption)) > 3: caption = re.sub(regex2, " ", caption) - if is_ftfy_available(): - caption = ftfy.fix_text(caption) + caption = ftfy.fix_text(caption) caption = html.unescape(html.unescape(caption)) caption = re.sub(r"\b[a-zA-Z]{1,3}\d{3,15}\b", "", caption) # jc6640 diff --git a/src/diffusers/pipelines/sana/pipeline_sana_sprint_img2img.py b/src/diffusers/pipelines/sana/pipeline_sana_sprint_img2img.py index 600e99cebe69..a17c494e88eb 100644 --- a/src/diffusers/pipelines/sana/pipeline_sana_sprint_img2img.py +++ b/src/diffusers/pipelines/sana/pipeline_sana_sprint_img2img.py @@ -573,8 +573,7 @@ def _clean_caption(self, caption): if len(re.findall(regex2, caption)) > 3: caption = re.sub(regex2, " ", caption) - if is_ftfy_available(): - caption = ftfy.fix_text(caption) + caption = ftfy.fix_text(caption) caption = html.unescape(html.unescape(caption)) caption = re.sub(r"\b[a-zA-Z]{1,3}\d{3,15}\b", "", caption) # jc6640 diff --git a/src/diffusers/pipelines/sana_video/pipeline_sana_video.py b/src/diffusers/pipelines/sana_video/pipeline_sana_video.py index cae9852adc95..7ae85639e358 100644 --- a/src/diffusers/pipelines/sana_video/pipeline_sana_video.py +++ b/src/diffusers/pipelines/sana_video/pipeline_sana_video.py @@ -624,8 +624,7 @@ def _clean_caption(self, caption): if len(re.findall(regex2, caption)) > 3: caption = re.sub(regex2, " ", caption) - if is_ftfy_available(): - caption = ftfy.fix_text(caption) + caption = ftfy.fix_text(caption) caption = html.unescape(html.unescape(caption)) caption = re.sub(r"\b[a-zA-Z]{1,3}\d{3,15}\b", "", caption) # jc6640 diff --git a/src/diffusers/pipelines/sana_video/pipeline_sana_video_i2v.py b/src/diffusers/pipelines/sana_video/pipeline_sana_video_i2v.py index d7c93ef01299..81df1d0759da 100644 --- a/src/diffusers/pipelines/sana_video/pipeline_sana_video_i2v.py +++ b/src/diffusers/pipelines/sana_video/pipeline_sana_video_i2v.py @@ -626,8 +626,7 @@ def _clean_caption(self, caption): if len(re.findall(regex2, caption)) > 3: caption = re.sub(regex2, " ", caption) - if is_ftfy_available(): - caption = ftfy.fix_text(caption) + caption = ftfy.fix_text(caption) caption = html.unescape(html.unescape(caption)) caption = re.sub(r"\b[a-zA-Z]{1,3}\d{3,15}\b", "", caption) # jc6640