import{s as _e,o as xe,n as be}from"../chunks/scheduler.53228c21.js";import{S as ye,i as we,e as r,s,c as x,h as ve,a as c,d as n,b as i,f as te,g as b,j as y,k as Z,l as _,m as o,n as w,t as v,o as M,p as $}from"../chunks/index.100fac89.js";import{C as Me}from"../chunks/CopyLLMTxtMenu.20a72e0e.js";import{D as he}from"../chunks/Docstring.49101787.js";import{C as $e}from"../chunks/CodeBlock.d30a6509.js";import{E as Te}from"../chunks/ExampleCodeBlock.4a9effb9.js";import{H as le,E as Fe}from"../chunks/MermaidChart.svelte_svelte_type_style_lang.4d82655d.js";function Pe(N){let l,k="Examples:",g,d,m;return d=new $e({props:{code:"aW1wb3J0JTIwdG9yY2glMEFmcm9tJTIwZGlmZnVzZXJzJTIwaW1wb3J0JTIwRmx1eDJQaXBlbGluZSUwQSUwQXBpcGUlMjAlM0QlMjBGbHV4MlBpcGVsaW5lLmZyb21fcHJldHJhaW5lZCglMjJibGFjay1mb3Jlc3QtbGFicyUyRkZMVVguMi1kZXYlMjIlMkMlMjB0b3JjaF9kdHlwZSUzRHRvcmNoLmJmbG9hdDE2KSUwQXBpcGUudG8oJTIyY3VkYSUyMiklMEFwcm9tcHQlMjAlM0QlMjAlMjJBJTIwY2F0JTIwaG9sZGluZyUyMGElMjBzaWduJTIwdGhhdCUyMHNheXMlMjBoZWxsbyUyMHdvcmxkJTIyJTBBJTIzJTIwRGVwZW5kaW5nJTIwb24lMjB0aGUlMjB2YXJpYW50JTIwYmVpbmclMjB1c2VkJTJDJTIwdGhlJTIwcGlwZWxpbmUlMjBjYWxsJTIwd2lsbCUyMHNsaWdodGx5JTIwdmFyeS4lMEElMjMlMjBSZWZlciUyMHRvJTIwdGhlJTIwcGlwZWxpbmUlMjBkb2N1bWVudGF0aW9uJTIwZm9yJTIwbW9yZSUyMGRldGFpbHMuJTBBaW1hZ2UlMjAlM0QlMjBwaXBlKHByb21wdCUyQyUyMG51bV9pbmZlcmVuY2Vfc3RlcHMlM0Q1MCUyQyUyMGd1aWRhbmNlX3NjYWxlJTNEMi41KS5pbWFnZXMlNUIwJTVEJTBBaW1hZ2Uuc2F2ZSglMjJmbHV4LnBuZyUyMik=",highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">import</span> torch
<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">from</span> diffusers <span class="hljs-keyword">import</span> Flux2Pipeline

<span class="hljs-meta">&gt;&gt;&gt; </span>pipe = Flux2Pipeline.from_pretrained(<span class="hljs-string">&quot;black-forest-labs/FLUX.2-dev&quot;</span>, torch_dtype=torch.bfloat16)
<span class="hljs-meta">&gt;&gt;&gt; </span>pipe.to(<span class="hljs-string">&quot;cuda&quot;</span>)
<span class="hljs-meta">&gt;&gt;&gt; </span>prompt = <span class="hljs-string">&quot;A cat holding a sign that says hello world&quot;</span>
<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-comment"># Depending on the variant being used, the pipeline call will slightly vary.</span>
<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-comment"># Refer to the pipeline documentation for more details.</span>
<span class="hljs-meta">&gt;&gt;&gt; </span>image = pipe(prompt, num_inference_steps=<span class="hljs-number">50</span>, guidance_scale=<span class="hljs-number">2.5</span>).images[<span class="hljs-number">0</span>]
<span class="hljs-meta">&gt;&gt;&gt; </span>image.save(<span class="hljs-string">&quot;flux.png&quot;</span>)`,wrap:!1}}),{c(){l=r("p"),l.textContent=k,g=s(),x(d.$$.fragment)},l(a){l=c(a,"P",{"data-svelte-h":!0}),y(l)!=="svelte-kvfsh7"&&(l.textContent=k),g=i(a),b(d.$$.fragment,a)},m(a,u){o(a,l,u),o(a,g,u),w(d,a,u),m=!0},p:be,i(a){m||(v(d.$$.fragment,a),m=!0)},o(a){M(d.$$.fragment,a),m=!1},d(a){a&&(n(l),n(g)),$(d,a)}}}function ke(N){let l,k,g,d,m,a,u,A,T,re='<img alt="LoRA" src="https://img.shields.io/badge/LoRA-d8b4fe?style=flat"/> <img alt="MPS" src="https://img.shields.io/badge/MPS-000000?style=flat&amp;logo=apple&amp;logoColor=white%22"/>',V,I,ce='Flux.2 is the recent series of image generation models from Black Forest Labs, preceded by the <a href="./flux">Flux.1</a> series. It is an entirely new model with a new architecture and pre-training done from scratch!',z,C,pe='Original model checkpoints for Flux can be found <a href="https://huggingface.co/black-forest-labs" rel="nofollow">here</a>. Original inference code can be found <a href="https://github.com/black-forest-labs/flux2" rel="nofollow">here</a>.',S,F,de='<p>Flux2 can be quite expensive to run on consumer hardware devices. However, you can perform a suite of optimizations to run it faster and in a more memory-friendly manner. Check out <a href="https://huggingface.co/blog/sd3#memory-optimizations-for-sd3" rel="nofollow">this section</a> for more details. Additionally, Flux can benefit from quantization for memory efficiency with a trade-off in inference latency. Refer to <a href="https://huggingface.co/blog/quanto-diffusers" rel="nofollow">this blog post</a> to learn more.</p> <p><a href="../../optimization/cache">Caching</a> may also speed up inference by storing and reusing intermediate outputs.</p>',O,j,R,L,me=`Flux.2 can potentially generate better better outputs with better prompts. We can “upsample”
an input prompt by setting the <code>caption_upsample_temperature</code> argument in the pipeline call arguments.
The <a href="https://github.com/black-forest-labs/flux2/blob/5a5d316b1b42f6b59a8c9194b77c8256be848432/src/flux2/text_encoder.py#L140" rel="nofollow">official implementation</a> recommends this value to be 0.15.`,Q,J,Y,p,G,ne,U,ue="The Flux2 pipeline for text-to-image generation.",oe,W,fe='Reference: <a href="https://bfl.ai/blog/flux-2" rel="nofollow">https://bfl.ai/blog/flux-2</a>',ae,h,H,se,q,ge="Function invoked when calling the pipeline for generation.",ie,P,X,B,K,D,ee;return m=new Me({props:{containerStyle:"float: right; margin-left: 10px; display: inline-flex; position: relative; z-index: 10;"}}),u=new le({props:{title:"Flux2",local:"flux2",headingTag:"h1"}}),j=new le({props:{title:"Caption upsampling",local:"caption-upsampling",headingTag:"h2"}}),J=new le({props:{title:"Flux2Pipeline",local:"diffusers.Flux2Pipeline",headingTag:"h2"}}),G=new he({props:{name:"class diffusers.Flux2Pipeline",anchor:"diffusers.Flux2Pipeline",parameters:[{name:"scheduler",val:": FlowMatchEulerDiscreteScheduler"},{name:"vae",val:": AutoencoderKLFlux2"},{name:"text_encoder",val:": Mistral3ForConditionalGeneration"},{name:"tokenizer",val:": AutoProcessor"},{name:"transformer",val:": Flux2Transformer2DModel"}],parametersDescription:[{anchor:"diffusers.Flux2Pipeline.transformer",description:`<strong>transformer</strong> (<a href="/docs/diffusers/main/en/api/models/flux2_transformer#diffusers.Flux2Transformer2DModel">Flux2Transformer2DModel</a>) &#x2014;
Conditional Transformer (MMDiT) architecture to denoise the encoded image latents.`,name:"transformer"},{anchor:"diffusers.Flux2Pipeline.scheduler",description:`<strong>scheduler</strong> (<a href="/docs/diffusers/main/en/api/schedulers/flow_match_euler_discrete#diffusers.FlowMatchEulerDiscreteScheduler">FlowMatchEulerDiscreteScheduler</a>) &#x2014;
A scheduler to be used in combination with <code>transformer</code> to denoise the encoded image latents.`,name:"scheduler"},{anchor:"diffusers.Flux2Pipeline.vae",description:`<strong>vae</strong> (<code>AutoencoderKLFlux2</code>) &#x2014;
Variational Auto-Encoder (VAE) Model to encode and decode images to and from latent representations.`,name:"vae"},{anchor:"diffusers.Flux2Pipeline.text_encoder",description:`<strong>text_encoder</strong> (<code>Mistral3ForConditionalGeneration</code>) &#x2014;
<a href="https://huggingface.co/docs/transformers/en/model_doc/mistral3#transformers.Mistral3ForConditionalGeneration" rel="nofollow">Mistral3ForConditionalGeneration</a>`,name:"text_encoder"},{anchor:"diffusers.Flux2Pipeline.tokenizer",description:`<strong>tokenizer</strong> (<code>AutoProcessor</code>) &#x2014;
Tokenizer of class
<a href="https://huggingface.co/docs/transformers/en/model_doc/pixtral#transformers.PixtralProcessor" rel="nofollow">PixtralProcessor</a>.`,name:"tokenizer"}],source:"https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/flux2/pipeline_flux2.py#L251"}}),H=new he({props:{name:"__call__",anchor:"diffusers.Flux2Pipeline.__call__",parameters:[{name:"image",val:": typing.Union[typing.List[PIL.Image.Image], PIL.Image.Image, NoneType] = None"},{name:"prompt",val:": typing.Union[str, typing.List[str]] = None"},{name:"height",val:": typing.Optional[int] = None"},{name:"width",val:": typing.Optional[int] = None"},{name:"num_inference_steps",val:": int = 50"},{name:"sigmas",val:": typing.Optional[typing.List[float]] = None"},{name:"guidance_scale",val:": typing.Optional[float] = 4.0"},{name:"num_images_per_prompt",val:": int = 1"},{name:"generator",val:": typing.Union[torch._C.Generator, typing.List[torch._C.Generator], NoneType] = None"},{name:"latents",val:": typing.Optional[torch.Tensor] = None"},{name:"prompt_embeds",val:": typing.Optional[torch.Tensor] = None"},{name:"output_type",val:": typing.Optional[str] = 'pil'"},{name:"return_dict",val:": bool = True"},{name:"attention_kwargs",val:": typing.Optional[typing.Dict[str, typing.Any]] = None"},{name:"callback_on_step_end",val:": typing.Optional[typing.Callable[[int, int, typing.Dict], NoneType]] = None"},{name:"callback_on_step_end_tensor_inputs",val:": typing.List[str] = ['latents']"},{name:"max_sequence_length",val:": int = 512"},{name:"text_encoder_out_layers",val:": typing.Tuple[int] = (10, 20, 30)"},{name:"caption_upsample_temperature",val:": float = None"}],parametersDescription:[{anchor:"diffusers.Flux2Pipeline.__call__.image",description:`<strong>image</strong> (<code>torch.Tensor</code>, <code>PIL.Image.Image</code>, <code>np.ndarray</code>, <code>List[torch.Tensor]</code>, <code>List[PIL.Image.Image]</code>, or <code>List[np.ndarray]</code>) &#x2014;
<code>Image</code>, numpy array or tensor representing an image batch to be used as the starting point. For both
numpy array and pytorch tensor, the expected value range is between <code>[0, 1]</code> If it&#x2019;s a tensor or a list
or tensors, the expected shape should be <code>(B, C, H, W)</code> or <code>(C, H, W)</code>. If it is a numpy array or a
list of arrays, the expected shape should be <code>(B, H, W, C)</code> or <code>(H, W, C)</code> It can also accept image
latents as <code>image</code>, but if passing latents directly it is not encoded again.`,name:"image"},{anchor:"diffusers.Flux2Pipeline.__call__.prompt",description:`<strong>prompt</strong> (<code>str</code> or <code>List[str]</code>, <em>optional</em>) &#x2014;
The prompt or prompts to guide the image generation. If not defined, one has to pass <code>prompt_embeds</code>.
instead.`,name:"prompt"},{anchor:"diffusers.Flux2Pipeline.__call__.guidance_scale",description:`<strong>guidance_scale</strong> (<code>float</code>, <em>optional</em>, defaults to 1.0) &#x2014;
Embedded guiddance scale is enabled by setting <code>guidance_scale</code> &gt; 1. Higher <code>guidance_scale</code> encourages
a model to generate images more aligned with <code>prompt</code> at the expense of lower image quality.</p>
<p>Guidance-distilled models approximates true classifer-free guidance for <code>guidance_scale</code> &gt; 1. Refer to
the <a href="https://huggingface.co/papers/2210.03142" rel="nofollow">paper</a> to learn more.`,name:"guidance_scale"},{anchor:"diffusers.Flux2Pipeline.__call__.height",description:`<strong>height</strong> (<code>int</code>, <em>optional</em>, defaults to self.unet.config.sample_size * self.vae_scale_factor) &#x2014;
The height in pixels of the generated image. This is set to 1024 by default for the best results.`,name:"height"},{anchor:"diffusers.Flux2Pipeline.__call__.width",description:`<strong>width</strong> (<code>int</code>, <em>optional</em>, defaults to self.unet.config.sample_size * self.vae_scale_factor) &#x2014;
The width in pixels of the generated image. This is set to 1024 by default for the best results.`,name:"width"},{anchor:"diffusers.Flux2Pipeline.__call__.num_inference_steps",description:`<strong>num_inference_steps</strong> (<code>int</code>, <em>optional</em>, defaults to 50) &#x2014;
The number of denoising steps. More denoising steps usually lead to a higher quality image at the
expense of slower inference.`,name:"num_inference_steps"},{anchor:"diffusers.Flux2Pipeline.__call__.sigmas",description:`<strong>sigmas</strong> (<code>List[float]</code>, <em>optional</em>) &#x2014;
Custom sigmas to use for the denoising process with schedulers which support a <code>sigmas</code> argument in
their <code>set_timesteps</code> method. If not defined, the default behavior when <code>num_inference_steps</code> is passed
will be used.`,name:"sigmas"},{anchor:"diffusers.Flux2Pipeline.__call__.num_images_per_prompt",description:`<strong>num_images_per_prompt</strong> (<code>int</code>, <em>optional</em>, defaults to 1) &#x2014;
The number of images to generate per prompt.`,name:"num_images_per_prompt"},{anchor:"diffusers.Flux2Pipeline.__call__.generator",description:`<strong>generator</strong> (<code>torch.Generator</code> or <code>List[torch.Generator]</code>, <em>optional</em>) &#x2014;
One or a list of <a href="https://pytorch.org/docs/stable/generated/torch.Generator.html" rel="nofollow">torch generator(s)</a>
to make generation deterministic.`,name:"generator"},{anchor:"diffusers.Flux2Pipeline.__call__.latents",description:`<strong>latents</strong> (<code>torch.Tensor</code>, <em>optional</em>) &#x2014;
Pre-generated noisy latents, sampled from a Gaussian distribution, to be used as inputs for image
generation. Can be used to tweak the same generation with different prompts. If not provided, a latents
tensor will be generated by sampling using the supplied random <code>generator</code>.`,name:"latents"},{anchor:"diffusers.Flux2Pipeline.__call__.prompt_embeds",description:`<strong>prompt_embeds</strong> (<code>torch.Tensor</code>, <em>optional</em>) &#x2014;
Pre-generated text embeddings. Can be used to easily tweak text inputs, <em>e.g.</em> prompt weighting. If not
provided, text embeddings will be generated from <code>prompt</code> input argument.`,name:"prompt_embeds"},{anchor:"diffusers.Flux2Pipeline.__call__.output_type",description:`<strong>output_type</strong> (<code>str</code>, <em>optional</em>, defaults to <code>&quot;pil&quot;</code>) &#x2014;
The output format of the generate image. Choose between
<a href="https://pillow.readthedocs.io/en/stable/" rel="nofollow">PIL</a>: <code>PIL.Image.Image</code> or <code>np.array</code>.`,name:"output_type"},{anchor:"diffusers.Flux2Pipeline.__call__.return_dict",description:`<strong>return_dict</strong> (<code>bool</code>, <em>optional</em>, defaults to <code>True</code>) &#x2014;
Whether or not to return a <code>~pipelines.qwenimage.QwenImagePipelineOutput</code> instead of a plain tuple.`,name:"return_dict"},{anchor:"diffusers.Flux2Pipeline.__call__.attention_kwargs",description:`<strong>attention_kwargs</strong> (<code>dict</code>, <em>optional</em>) &#x2014;
A kwargs dictionary that if specified is passed along to the <code>AttentionProcessor</code> as defined under
<code>self.processor</code> in
<a href="https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/attention_processor.py" rel="nofollow">diffusers.models.attention_processor</a>.`,name:"attention_kwargs"},{anchor:"diffusers.Flux2Pipeline.__call__.callback_on_step_end",description:`<strong>callback_on_step_end</strong> (<code>Callable</code>, <em>optional</em>) &#x2014;
A function that calls at the end of each denoising steps during the inference. The function is called
with the following arguments: <code>callback_on_step_end(self: DiffusionPipeline, step: int, timestep: int, callback_kwargs: Dict)</code>. <code>callback_kwargs</code> will include a list of all tensors as specified by
<code>callback_on_step_end_tensor_inputs</code>.`,name:"callback_on_step_end"},{anchor:"diffusers.Flux2Pipeline.__call__.callback_on_step_end_tensor_inputs",description:`<strong>callback_on_step_end_tensor_inputs</strong> (<code>List</code>, <em>optional</em>) &#x2014;
The list of tensor inputs for the <code>callback_on_step_end</code> function. The tensors specified in the list
will be passed as <code>callback_kwargs</code> argument. You will only be able to include variables listed in the
<code>._callback_tensor_inputs</code> attribute of your pipeline class.`,name:"callback_on_step_end_tensor_inputs"},{anchor:"diffusers.Flux2Pipeline.__call__.max_sequence_length",description:"<strong>max_sequence_length</strong> (<code>int</code> defaults to 512) &#x2014; Maximum sequence length to use with the <code>prompt</code>.",name:"max_sequence_length"},{anchor:"diffusers.Flux2Pipeline.__call__.text_encoder_out_layers",description:`<strong>text_encoder_out_layers</strong> (<code>Tuple[int]</code>) &#x2014;
Layer indices to use in the <code>text_encoder</code> to derive the final prompt embeddings.`,name:"text_encoder_out_layers"},{anchor:"diffusers.Flux2Pipeline.__call__.caption_upsample_temperature",description:`<strong>caption_upsample_temperature</strong> (<code>float</code>) &#x2014;
When specified, we will try to perform caption upsampling for potentially improved outputs. We
recommend setting it to 0.15 if caption upsampling is to be performed.`,name:"caption_upsample_temperature"}],source:"https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/flux2/pipeline_flux2.py#L743",returnDescription:`<script context="module">export const metadata = 'undefined';<\/script>


<p><code>~pipelines.flux2.Flux2PipelineOutput</code> if
<code>return_dict</code> is True, otherwise a <code>tuple</code>. When returning a tuple, the first element is a list with the
generated images.</p>
`,returnType:`<script context="module">export const metadata = 'undefined';<\/script>


<p><code>~pipelines.flux2.Flux2PipelineOutput</code> or <code>tuple</code></p>
`}}),P=new Te({props:{anchor:"diffusers.Flux2Pipeline.__call__.example",$$slots:{default:[Pe]},$$scope:{ctx:N}}}),B=new Fe({props:{source:"https://github.com/huggingface/diffusers/blob/main/docs/source/en/api/pipelines/flux2.md"}}),{c(){l=r("meta"),k=s(),g=r("p"),d=s(),x(m.$$.fragment),a=s(),x(u.$$.fragment),A=s(),T=r("div"),T.innerHTML=re,V=s(),I=r("p"),I.innerHTML=ce,z=s(),C=r("p"),C.innerHTML=pe,S=s(),F=r("blockquote"),F.innerHTML=de,O=s(),x(j.$$.fragment),R=s(),L=r("p"),L.innerHTML=me,Q=s(),x(J.$$.fragment),Y=s(),p=r("div"),x(G.$$.fragment),ne=s(),U=r("p"),U.textContent=ue,oe=s(),W=r("p"),W.innerHTML=fe,ae=s(),h=r("div"),x(H.$$.fragment),se=s(),q=r("p"),q.textContent=ge,ie=s(),x(P.$$.fragment),X=s(),x(B.$$.fragment),K=s(),D=r("p"),this.h()},l(e){const t=ve("svelte-u9bgzb",document.head);l=c(t,"META",{name:!0,content:!0}),t.forEach(n),k=i(e),g=c(e,"P",{}),te(g).forEach(n),d=i(e),b(m.$$.fragment,e),a=i(e),b(u.$$.fragment,e),A=i(e),T=c(e,"DIV",{class:!0,"data-svelte-h":!0}),y(T)!=="svelte-1elo7hh"&&(T.innerHTML=re),V=i(e),I=c(e,"P",{"data-svelte-h":!0}),y(I)!=="svelte-1togc7r"&&(I.innerHTML=ce),z=i(e),C=c(e,"P",{"data-svelte-h":!0}),y(C)!=="svelte-otikoq"&&(C.innerHTML=pe),S=i(e),F=c(e,"BLOCKQUOTE",{class:!0,"data-svelte-h":!0}),y(F)!=="svelte-79zmu7"&&(F.innerHTML=de),O=i(e),b(j.$$.fragment,e),R=i(e),L=c(e,"P",{"data-svelte-h":!0}),y(L)!=="svelte-1r5tu3c"&&(L.innerHTML=me),Q=i(e),b(J.$$.fragment,e),Y=i(e),p=c(e,"DIV",{class:!0});var f=te(p);b(G.$$.fragment,f),ne=i(f),U=c(f,"P",{"data-svelte-h":!0}),y(U)!=="svelte-1hjjsby"&&(U.textContent=ue),oe=i(f),W=c(f,"P",{"data-svelte-h":!0}),y(W)!=="svelte-a2p6bq"&&(W.innerHTML=fe),ae=i(f),h=c(f,"DIV",{class:!0});var E=te(h);b(H.$$.fragment,E),se=i(E),q=c(E,"P",{"data-svelte-h":!0}),y(q)!=="svelte-v78lg8"&&(q.textContent=ge),ie=i(E),b(P.$$.fragment,E),E.forEach(n),f.forEach(n),X=i(e),b(B.$$.fragment,e),K=i(e),D=c(e,"P",{}),te(D).forEach(n),this.h()},h(){Z(l,"name","hf:doc:metadata"),Z(l,"content",Ie),Z(T,"class","flex flex-wrap space-x-1"),Z(F,"class","tip"),Z(h,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),Z(p,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8")},m(e,t){_(document.head,l),o(e,k,t),o(e,g,t),o(e,d,t),w(m,e,t),o(e,a,t),w(u,e,t),o(e,A,t),o(e,T,t),o(e,V,t),o(e,I,t),o(e,z,t),o(e,C,t),o(e,S,t),o(e,F,t),o(e,O,t),w(j,e,t),o(e,R,t),o(e,L,t),o(e,Q,t),w(J,e,t),o(e,Y,t),o(e,p,t),w(G,p,null),_(p,ne),_(p,U),_(p,oe),_(p,W),_(p,ae),_(p,h),w(H,h,null),_(h,se),_(h,q),_(h,ie),w(P,h,null),o(e,X,t),w(B,e,t),o(e,K,t),o(e,D,t),ee=!0},p(e,[t]){const f={};t&2&&(f.$$scope={dirty:t,ctx:e}),P.$set(f)},i(e){ee||(v(m.$$.fragment,e),v(u.$$.fragment,e),v(j.$$.fragment,e),v(J.$$.fragment,e),v(G.$$.fragment,e),v(H.$$.fragment,e),v(P.$$.fragment,e),v(B.$$.fragment,e),ee=!0)},o(e){M(m.$$.fragment,e),M(u.$$.fragment,e),M(j.$$.fragment,e),M(J.$$.fragment,e),M(G.$$.fragment,e),M(H.$$.fragment,e),M(P.$$.fragment,e),M(B.$$.fragment,e),ee=!1},d(e){e&&(n(k),n(g),n(d),n(a),n(A),n(T),n(V),n(I),n(z),n(C),n(S),n(F),n(O),n(R),n(L),n(Q),n(Y),n(p),n(X),n(K),n(D)),n(l),$(m,e),$(u,e),$(j,e),$(J,e),$(G),$(H),$(P),$(B,e)}}}const Ie='{"title":"Flux2","local":"flux2","sections":[{"title":"Caption upsampling","local":"caption-upsampling","sections":[],"depth":2},{"title":"Flux2Pipeline","local":"diffusers.Flux2Pipeline","sections":[],"depth":2}],"depth":1}';function Ce(N){return xe(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class We extends ye{constructor(l){super(),we(this,l,Ce,ke,_e,{})}}export{We as component};
