import{s as Gt,n as It,o as Ht}from"../chunks/scheduler.e4ff9b64.js";import{S as Bt,i as Vt,e as i,s as a,c as r,h as kt,a as p,d as l,b as n,f as Rt,g as M,j as m,k as Me,l as Et,m as s,n as c,t as f,o,p as u}from"../chunks/index.09f1bca0.js";import{C as Nt,H as ce,E as Ft}from"../chunks/MermaidChart.svelte_svelte_type_style_lang.dde31fc2.js";import{C as y}from"../chunks/CodeBlock.54e44b16.js";function Qt(it){let d,fe,me,oe,w,ue,T,ye,J,pt='<a href="https://hf.co/papers/2306.00637" rel="nofollow">Wuerstchen</a> 模型通过将潜在空间压缩 42 倍，在不影响图像质量的情况下大幅降低计算成本并加速推理。在训练过程中，Wuerstchen 使用两个模型（VQGAN + 自动编码器）来压缩潜在表示，然后第三个模型（文本条件潜在扩散模型）在这个高度压缩的空间上进行条件化以生成图像。',de,U,mt="为了将先验模型放入 GPU 内存并加速训练，尝试分别启用 <code>gradient_accumulation_steps</code>、<code>gradient_checkpointing</code> 和 <code>mixed_precision</code>。",be,j,rt='本指南探讨 <a href="https://github.com/huggingface/diffusers/blob/main/examples/wuerstchen/text_to_image/train_text_to_image_prior.py" rel="nofollow">train_text_to_image_prior.py</a> 脚本，帮助您更熟悉它，以及如何根据您的用例进行适配。',he,g,Mt="在运行脚本之前，请确保从源代码安装库：",_e,$,we,Z,ct="然后导航到包含训练脚本的示例文件夹，并安装脚本所需的依赖项：",Te,x,Je,b,ft='<p>🤗 Accelerate 是一个帮助您在多个 GPU/TPU 上或使用混合精度进行训练的库。它会根据您的硬件和环境自动配置训练设置。查看 🤗 Accelerate <a href="https://huggingface.co/docs/accelerate/quicktour" rel="nofollow">快速入门</a> 以了解更多信息。</p>',Ue,W,ot="初始化一个 🤗 Accelerate 环境：",je,C,ge,X,ut="要设置一个默认的 🤗 Accelerate 环境而不选择任何配置：",$e,v,Ze,R,yt="或者，如果您的环境不支持交互式 shell，例如笔记本，您可以使用：",xe,G,We,I,dt='最后，如果您想在自己的数据集上训练模型，请查看 <a href="create_dataset">创建训练数据集</a> 指南，了解如何创建与训练脚本兼容的数据集。',Ce,h,bt='<p>以下部分重点介绍了训练脚本中对于理解如何修改它很重要的部分，但并未涵盖 <a href="https://github.com/huggingface/diffusers/blob/main/examples/wuerstchen/text_to_image/train_text_to_image_prior.py" rel="nofollow">脚本</a> 的详细信息。如果您有兴趣了解更多，请随时阅读脚本，并告诉我们您是否有任何问题或疑虑。</p>',Xe,H,ve,B,ht='训练脚本提供了许多参数来帮助您自定义训练运行。所有参数及其描述都可以在 <a href="https://github.com/huggingface/diffusers/blob/6e68c71503682c8693cb5b06a4da4911dfd655ee/examples/wuerstchen/text_to_image/train_text_to_image_prior.py#L192" rel="nofollow"><code>parse_args()</code></a> 函数中找到。它为每个参数提供了默认值，例如训练批次大小和学习率，但如果您愿意，也可以在训练命令中设置自己的值。',Re,V,_t="例如，要使用 fp16 格式的混合精度加速训练，请在训练命令中添加 <code>--mixed_precision</code> 参数：",Ge,k,Ie,E,wt='大多数参数与 <a href="text2image#script-parameters">文本到图像</a> 训练指南中的参数相同，因此让我们直接深入 Wuerstchen 训练脚本！',He,N,Be,F,Tt='训练脚本也与 <a href="text2image#training-script">文本到图像</a> 训练指南类似，但已修改以支持 Wuerstchen。本指南重点介绍 Wuerstchen 训练脚本中独特的代码。',Ve,Q,Jt='<a href="https://github.com/huggingface/diffusers/blob/6e68c71503682c8693cb5b06a4da4911dfd655ee/examples/wuerstchen/text_to_image/train_text_to_image_prior.py#L441" rel="nofollow"><code>main()</code></a> 函数首先初始化图像编码器 - 一个 <a href="https://github.com/huggingface/diffusers/blob/main/examples/wuerstchen/text_to_image/modeling_efficient_net_encoder.py" rel="nofollow">EfficientNet</a> - 以及通常的调度器和分词器。',ke,A,Ee,Y,Ut="您还将加载 <code>WuerstchenPrior</code> 模型以进行优化。",Ne,L,Fe,S,jt='接下来，您将对图像应用一些 <a href="https://github.com/huggingface/diffusers/blob/65ef7a0c5c594b4f84092e328fbdd73183613b30/examples/wuerstchen/text_to_image/train_text_to_image_prior.py#L656" rel="nofollow">transforms</a> 并对标题进行 <a href="https://github.com/huggingface/diffusers/blob/65ef7a0c5c594b4f84092e328fbdd73183613b30/examples/wuerstchen/text_to_image/train_text_to_image_prior.py#L637" rel="nofollow">tokenize</a>：',Qe,z,Ae,q,gt='最后，<a href="https://github.com/huggingface/diffusers/blob/65ef7a0c5c594b4f84092e328fbdd73183613b30/examples/wuerstchen/text_to_image/train_text_to_image_prior.py#L656" rel="nofollow">训练循环</a>处理使用<code>EfficientNetEncoder</code>将图像压缩到潜在空间，向潜在表示添加噪声，并使用<code>WuerstchenPrior</code>模型预测噪声残差。',Ye,P,Le,D,$t='如果您想了解更多关于训练循环的工作原理，请查看<a href="../using-diffusers/write_own_pipeline">理解管道、模型和调度器</a>教程，该教程分解了去噪过程的基本模式。',Se,K,ze,O,Zt="一旦您完成了所有更改或对默认配置满意，就可以启动训练脚本了！🚀",qe,ee,xt='设置<code>DATASET_NAME</code>环境变量为Hub中的数据集名称。本指南使用<a href="https://huggingface.co/datasets/lambdalabs/naruto-blip-captions" rel="nofollow">Naruto BLIP captions</a>数据集，但您也可以创建和训练自己的数据集（参见<a href="create_dataset">创建用于训练的数据集</a>指南）。',Pe,_,Wt="<p>要使用Weights &amp; Biases监控训练进度，请在训练命令中添加<code>--report_to=wandb</code>参数。您还需要在训练命令中添加<code>--validation_prompt</code>以跟踪结果。这对于调试模型和查看中间结果非常有用。</p>",De,te,Ke,le,Ct="训练完成后，您可以使用新训练的模型进行推理！",Oe,se,et,ae,tt,ne,Xt=`恭喜您训练了一个Wuerstchen模型！要了解更多关于如何使用您的新模型的信息，请参
以下内容可能有所帮助：`,lt,ie,vt='<li>查看 <a href="../api/pipelines/wuerstchen#text-to-image-generation">Wuerstchen</a> API 文档，了解更多关于如何使用该管道进行文本到图像生成及其限制的信息。</li>',st,pe,at,re,nt;return w=new Nt({props:{containerStyle:"float: right; margin-left: 10px; display: inline-flex; position: relative; z-index: 10;"}}),T=new ce({props:{title:"Wuerstchen",local:"wuerstchen",headingTag:"h1"}}),$=new y({props:{code:"Z2l0JTIwY2xvbmUlMjBodHRwcyUzQSUyRiUyRmdpdGh1Yi5jb20lMkZodWdnaW5nZmFjZSUyRmRpZmZ1c2VycyUwQWNkJTIwZGlmZnVzZXJzJTBBcGlwJTIwaW5zdGFsbCUyMC4=",highlighted:`git <span class="hljs-built_in">clone</span> https://github.com/huggingface/diffusers
<span class="hljs-built_in">cd</span> diffusers
pip install .`,wrap:!1}}),x=new y({props:{code:"Y2QlMjBleGFtcGxlcyUyRnd1ZXJzdGNoZW4lMkZ0ZXh0X3RvX2ltYWdlJTBBcGlwJTIwaW5zdGFsbCUyMC1yJTIwcmVxdWlyZW1lbnRzLnR4dA==",highlighted:`<span class="hljs-built_in">cd</span> examples/wuerstchen/text_to_image
pip install -r requirements.txt`,wrap:!1}}),C=new y({props:{code:"YWNjZWxlcmF0ZSUyMGNvbmZpZw==",highlighted:"accelerate config",wrap:!1}}),v=new y({props:{code:"YWNjZWxlcmF0ZSUyMGNvbmZpZyUyMGRlZmF1bHQ=",highlighted:"accelerate config default",wrap:!1}}),G=new y({props:{code:"ZnJvbSUyMGFjY2VsZXJhdGUudXRpbHMlMjBpbXBvcnQlMjB3cml0ZV9iYXNpY19jb25maWclMEElMEF3cml0ZV9iYXNpY19jb25maWcoKQ==",highlighted:`<span class="hljs-keyword">from</span> accelerate.utils <span class="hljs-keyword">import</span> write_basic_config

write_basic_config()`,wrap:!1}}),H=new ce({props:{title:"脚本参数",local:"脚本参数",headingTag:"h2"}}),k=new y({props:{code:"YWNjZWxlcmF0ZSUyMGxhdW5jaCUyMHRyYWluX3RleHRfdG9faW1hZ2VfcHJpb3IucHklMjAlNUMlMEElMjAlMjAtLW1peGVkX3ByZWNpc2lvbiUzRCUyMmZwMTYlMjI=",highlighted:`accelerate launch train_text_to_image_prior.py \\
  --mixed_precision=<span class="hljs-string">&quot;fp16&quot;</span>`,wrap:!1}}),N=new ce({props:{title:"训练脚本",local:"训练脚本",headingTag:"h2"}}),A=new y({props:{code:"d2l0aCUyMENvbnRleHRNYW5hZ2VycyhkZWVwc3BlZWRfemVyb19pbml0X2Rpc2FibGVkX2NvbnRleHRfbWFuYWdlcigpKSUzQSUwQSUyMCUyMCUyMCUyMHByZXRyYWluZWRfY2hlY2twb2ludF9maWxlJTIwJTNEJTIwaGZfaHViX2Rvd25sb2FkKCUyMmRvbWUyNzIlMkZ3dWVyc3RjaGVuJTIyJTJDJTIwZmlsZW5hbWUlM0QlMjJtb2RlbF92Ml9zdGFnZV9iLnB0JTIyKSUwQSUyMCUyMCUyMCUyMHN0YXRlX2RpY3QlMjAlM0QlMjB0b3JjaC5sb2FkKHByZXRyYWluZWRfY2hlY2twb2ludF9maWxlJTJDJTIwbWFwX2xvY2F0aW9uJTNEJTIyY3B1JTIyKSUwQSUyMCUyMCUyMCUyMGltYWdlX2VuY29kZXIlMjAlM0QlMjBFZmZpY2llbnROZXRFbmNvZGVyKCklMEElMjAlMjAlMjAlMjBpbWFnZV9lbmNvZGVyLmxvYWRfc3RhdGVfZGljdChzdGF0ZV9kaWN0JTVCJTIyZWZmbmV0X3N0YXRlX2RpY3QlMjIlNUQpJTBBJTIwJTIwJTIwJTIwaW1hZ2VfZW5jb2Rlci5ldmFsKCk=",highlighted:`<span class="hljs-keyword">with</span> ContextManagers(deepspeed_zero_init_disabled_context_manager()):
    pretrained_checkpoint_file = hf_hub_download(<span class="hljs-string">&quot;dome272/wuerstchen&quot;</span>, filename=<span class="hljs-string">&quot;model_v2_stage_b.pt&quot;</span>)
    state_dict = torch.load(pretrained_checkpoint_file, map_location=<span class="hljs-string">&quot;cpu&quot;</span>)
    image_encoder = EfficientNetEncoder()
    image_encoder.load_state_dict(state_dict[<span class="hljs-string">&quot;effnet_state_dict&quot;</span>])
    image_encoder.<span class="hljs-built_in">eval</span>()`,wrap:!1}}),L=new y({props:{code:"cHJpb3IlMjAlM0QlMjBXdWVyc3RjaGVuUHJpb3IuZnJvbV9wcmV0cmFpbmVkKGFyZ3MucHJldHJhaW5lZF9wcmlvcl9tb2RlbF9uYW1lX29yX3BhdGglMkMlMjBzdWJmb2xkZXIlM0QlMjJwcmlvciUyMiklMEElMEFvcHRpbWl6ZXIlMjAlM0QlMjBvcHRpbWl6ZXJfY2xzKCUwQSUyMCUyMCUyMCUyMHByaW9yLnBhcmFtZXRlcnMoKSUyQyUwQSUyMCUyMCUyMCUyMGxyJTNEYXJncy5sZWFybmluZ19yYXRlJTJDJTBBJTIwJTIwJTIwJTIwYmV0YXMlM0QoYXJncy5hZGFtX2JldGExJTJDJTIwYXJncy5hZGFtX2JldGEyKSUyQyUwQSUyMCUyMCUyMCUyMHdlaWdodF9kZWNheSUzRGFyZ3MuYWRhbV93ZWlnaHRfZGVjYXklMkMlMEElMjAlMjAlMjAlMjBlcHMlM0RhcmdzLmFkYW1fZXBzaWxvbiUyQyUwQSk=",highlighted:`prior = WuerstchenPrior.from_pretrained(args.pretrained_prior_model_name_or_path, subfolder=<span class="hljs-string">&quot;prior&quot;</span>)

optimizer = optimizer_cls(
    prior.parameters(),
    lr=args.learning_rate,
    betas=(args.adam_beta1, args.adam_beta2),
    weight_decay=args.adam_weight_decay,
    eps=args.adam_epsilon,
)`,wrap:!1}}),z=new y({props:{code:"ZGVmJTIwcHJlcHJvY2Vzc190cmFpbihleGFtcGxlcyklM0ElMEElMjAlMjAlMjAlMjBpbWFnZXMlMjAlM0QlMjAlNUJpbWFnZS5jb252ZXIlMEF0KCUyMlJHQiUyMiklMjBmb3IlMjBpbWFnZSUyMGluJTIwZXhhbXBsZXMlNUJpbWFnZV9jb2x1bW4lNUQlNUQlMEElMjAlMjAlMjAlMjBleGFtcGxlcyU1QiUyMmVmZm5ldF9waXhlbF92YWx1ZXMlMjIlNUQlMjAlM0QlMjAlNUJlZmZuZXRfdHJhbnNmb3JtcyhpbWFnZSklMjBmb3IlMjBpbWFnZSUyMGluJTIwaW1hZ2VzJTVEJTBBJTIwJTIwJTIwJTIwZXhhbXBsZXMlNUIlMjJ0ZXh0X2lucHV0X2lkcyUyMiU1RCUyQyUyMGV4YW1wbGVzJTVCJTIydGV4dF9tYXNrJTIyJTVEJTIwJTNEJTIwdG9rZW5pemVfY2FwdGlvbnMoZXhhbXBsZXMpJTBBJTIwJTIwJTIwJTIwcmV0dXJuJTIwZXhhbXBsZXM=",highlighted:`<span class="hljs-keyword">def</span> <span class="hljs-title function_">preprocess_train</span>(<span class="hljs-params">examples</span>):
    images = [image.conver
t(<span class="hljs-string">&quot;RGB&quot;</span>) <span class="hljs-keyword">for</span> image <span class="hljs-keyword">in</span> examples[image_column]]
    examples[<span class="hljs-string">&quot;effnet_pixel_values&quot;</span>] = [effnet_transforms(image) <span class="hljs-keyword">for</span> image <span class="hljs-keyword">in</span> images]
    examples[<span class="hljs-string">&quot;text_input_ids&quot;</span>], examples[<span class="hljs-string">&quot;text_mask&quot;</span>] = tokenize_captions(examples)
    <span class="hljs-keyword">return</span> examples`,wrap:!1}}),P=new y({props:{code:"cHJlZF9ub2lzZSUyMCUzRCUyMHByaW9yKG5vaXN5X2xhdGVudHMlMkMlMjB0aW1lc3RlcHMlMkMlMjBwcm9tcHRfZW1iZWRzKQ==",highlighted:"pred_noise = prior(noisy_latents, timesteps, prompt_embeds)",wrap:!1}}),K=new ce({props:{title:"启动脚本",local:"启动脚本",headingTag:"h2"}}),te=new y({props:{code:"ZXhwb3J0JTIwREFUQVNFVF9OQU1FJTNEJTIybGFtYmRhbGFicyUyRm5hcnV0by1ibGlwLWNhcHRpb25zJTIyJTBBJTBBYWNjZWxlcmF0ZSUyMGxhdW5jaCUyMCUyMHRyYWluX3RleHRfdG9faW1hZ2VfcHJpb3IucHklMjAlNUMlMEElMjAlMjAtLW1peGVkX3ByZWNpc2lvbiUzRCUyMmZwMTYlMjIlMjAlNUMlMEElMjAlMjAtLWRhdGFzZXRfbmFtZSUzRCUyNERBVEFTRVRfTkFNRSUyMCU1QyUwQSUyMCUyMC0tcmVzb2x1dGlvbiUzRDc2OCUyMCU1QyUwQSUyMCUyMC0tdHJhaW5fYmF0Y2hfc2l6ZSUzRDQlMjAlNUMlMEElMjAlMjAtLWdyYWRpZW50X2FjY3VtdWxhdGlvbl9zdGVwcyUzRDQlMjAlNUMlMEElMjAlMjAtLWdyYWRpZW50X2NoZWNrcG9pbnRpbmclMjAlNUMlMEElMjAlMjAtLWRhdGFsb2FkZXJfbnVtX3dvcmtlcnMlM0Q0JTIwJTVDJTBBJTIwJTIwLS1tYXhfdHJhaW5fc3RlcHMlM0QxNTAwMCUyMCU1QyUwQSUyMCUyMC0tbGVhcm5pbmdfcmF0ZSUzRDFlLTA1JTIwJTVDJTBBJTIwJTIwLS1tYXhfZ3JhZF9ub3JtJTNEMSUyMCU1QyUwQSUyMCUyMC0tY2hlY2twb2ludHNfdG90YWxfbGltaXQlM0QzJTIwJTVDJTBBJTIwJTIwLS1scl9zY2hlZHVsZXIlM0QlMjJjb25zdGFudCUyMiUyMCU1QyUwQSUyMCUyMC0tbHJfd2FybXVwX3N0ZXBzJTNEMCUyMCU1QyUwQSUyMCUyMC0tdmFsaWRhdGlvbl9wcm9tcHRzJTNEJTIyQSUyMHJvYm90JTIwbmFydXRvJTJDJTIwNGslMjBwaG90byUyMiUyMCU1QyUwQSUyMCUyMC0tcmVwb3J0X3RvJTNEJTIyd2FuZGIlMjIlMjAlNUMlMEElMjAlMjAtLXB1c2hfdG9faHViJTIwJTVDJTBBJTIwJTIwLS1vdXRwdXRfZGlyJTNEJTIyd3VlcnN0Y2hlbi1wcmlvci1uYXJ1dG8tbW9kZWwlMjI=",highlighted:`<span class="hljs-built_in">export</span> DATASET_NAME=<span class="hljs-string">&quot;lambdalabs/naruto-blip-captions&quot;</span>

accelerate launch  train_text_to_image_prior.py \\
  --mixed_precision=<span class="hljs-string">&quot;fp16&quot;</span> \\
  --dataset_name=<span class="hljs-variable">$DATASET_NAME</span> \\
  --resolution=768 \\
  --train_batch_size=4 \\
  --gradient_accumulation_steps=4 \\
  --gradient_checkpointing \\
  --dataloader_num_workers=4 \\
  --max_train_steps=15000 \\
  --learning_rate=1e-05 \\
  --max_grad_norm=1 \\
  --checkpoints_total_limit=3 \\
  --lr_scheduler=<span class="hljs-string">&quot;constant&quot;</span> \\
  --lr_warmup_steps=0 \\
  --validation_prompts=<span class="hljs-string">&quot;A robot naruto, 4k photo&quot;</span> \\
  --report_to=<span class="hljs-string">&quot;wandb&quot;</span> \\
  --push_to_hub \\
  --output_dir=<span class="hljs-string">&quot;wuerstchen-prior-naruto-model&quot;</span>`,wrap:!1}}),se=new y({props:{code:"aW1wb3J0JTIwdG9yY2glMEFmcm9tJTIwZGlmZnVzZXJzJTIwaW1wb3J0JTIwQXV0b1BpcGVsaW5lRm9yVGV4dDJJbWFnZSUwQWZyb20lMjBkaWZmdXNlcnMucGlwZWxpbmVzLnd1ZXJzdGNoZW4lMjBpbXBvcnQlMjBERUZBVUxUX1NUQUdFX0NfVElNRVNURVBTJTBBJTBBcGlwZWxpbmUlMjAlM0QlMjBBdXRvUGlwZWxpbmVGb3JUZXh0MkltYWdlLmZyb21fcHJldHJhaW5lZCglMjJwYXRoJTJGdG8lMkZzYXZlZCUyRm1vZGVsJTIyJTJDJTIwdG9yY2hfZHR5cGUlM0R0b3JjaC5mbG9hdDE2KS50byglMjJjdWRhJTIyKSUwQSUwQWNhcHRpb24lMjAlM0QlMjAlMjJBJTIwY3V0ZSUyMGJpcmQlMjBuYXJ1dG8lMjBob2xkaW5nJTIwYSUyMHNoaWVsZCUyMiUwQWltYWdlcyUyMCUzRCUyMHBpcGVsaW5lKCUwQSUyMCUyMCUyMCUyMGNhcHRpb24lMkMlMEElMjAlMjAlMjAlMjB3aWR0aCUzRDEwMjQlMkMlMEElMjAlMjAlMjAlMjBoZWlnaHQlM0QxNTM2JTJDJTBBJTIwJTIwJTIwJTIwcHJpb3JfdGltZXN0ZXBzJTNEREVGQVVMVF9TVEFHRV9DX1RJTUVTVEVQUyUyQyUwQSUyMCUyMCUyMCUyMHByaW9yX2d1aWRhbmNlX3NjYWxlJTNENC4wJTJDJTBBJTIwJTIwJTIwJTIwbnVtX2ltYWdlc19wZXJfcHJvbXB0JTNEMiUyQyUwQSkuaW1hZ2Vz",highlighted:`<span class="hljs-keyword">import</span> torch
<span class="hljs-keyword">from</span> diffusers <span class="hljs-keyword">import</span> AutoPipelineForText2Image
<span class="hljs-keyword">from</span> diffusers.pipelines.wuerstchen <span class="hljs-keyword">import</span> DEFAULT_STAGE_C_TIMESTEPS

pipeline = AutoPipelineForText2Image.from_pretrained(<span class="hljs-string">&quot;path/to/saved/model&quot;</span>, torch_dtype=torch.float16).to(<span class="hljs-string">&quot;cuda&quot;</span>)

caption = <span class="hljs-string">&quot;A cute bird naruto holding a shield&quot;</span>
images = pipeline(
    caption,
    width=<span class="hljs-number">1024</span>,
    height=<span class="hljs-number">1536</span>,
    prior_timesteps=DEFAULT_STAGE_C_TIMESTEPS,
    prior_guidance_scale=<span class="hljs-number">4.0</span>,
    num_images_per_prompt=<span class="hljs-number">2</span>,
).images`,wrap:!1}}),ae=new ce({props:{title:"下一步",local:"下一步",headingTag:"h2"}}),pe=new Ft({props:{source:"https://github.com/huggingface/diffusers/blob/main/docs/source/zh/training/wuerstchen.md"}}),{c(){d=i("meta"),fe=a(),me=i("p"),oe=a(),r(w.$$.fragment),ue=a(),r(T.$$.fragment),ye=a(),J=i("p"),J.innerHTML=pt,de=a(),U=i("p"),U.innerHTML=mt,be=a(),j=i("p"),j.innerHTML=rt,he=a(),g=i("p"),g.textContent=Mt,_e=a(),r($.$$.fragment),we=a(),Z=i("p"),Z.textContent=ct,Te=a(),r(x.$$.fragment),Je=a(),b=i("blockquote"),b.innerHTML=ft,Ue=a(),W=i("p"),W.textContent=ot,je=a(),r(C.$$.fragment),ge=a(),X=i("p"),X.textContent=ut,$e=a(),r(v.$$.fragment),Ze=a(),R=i("p"),R.textContent=yt,xe=a(),r(G.$$.fragment),We=a(),I=i("p"),I.innerHTML=dt,Ce=a(),h=i("blockquote"),h.innerHTML=bt,Xe=a(),r(H.$$.fragment),ve=a(),B=i("p"),B.innerHTML=ht,Re=a(),V=i("p"),V.innerHTML=_t,Ge=a(),r(k.$$.fragment),Ie=a(),E=i("p"),E.innerHTML=wt,He=a(),r(N.$$.fragment),Be=a(),F=i("p"),F.innerHTML=Tt,Ve=a(),Q=i("p"),Q.innerHTML=Jt,ke=a(),r(A.$$.fragment),Ee=a(),Y=i("p"),Y.innerHTML=Ut,Ne=a(),r(L.$$.fragment),Fe=a(),S=i("p"),S.innerHTML=jt,Qe=a(),r(z.$$.fragment),Ae=a(),q=i("p"),q.innerHTML=gt,Ye=a(),r(P.$$.fragment),Le=a(),D=i("p"),D.innerHTML=$t,Se=a(),r(K.$$.fragment),ze=a(),O=i("p"),O.textContent=Zt,qe=a(),ee=i("p"),ee.innerHTML=xt,Pe=a(),_=i("blockquote"),_.innerHTML=Wt,De=a(),r(te.$$.fragment),Ke=a(),le=i("p"),le.textContent=Ct,Oe=a(),r(se.$$.fragment),et=a(),r(ae.$$.fragment),tt=a(),ne=i("p"),ne.textContent=Xt,lt=a(),ie=i("ul"),ie.innerHTML=vt,st=a(),r(pe.$$.fragment),at=a(),re=i("p"),this.h()},l(e){const t=kt("svelte-u9bgzb",document.head);d=p(t,"META",{name:!0,content:!0}),t.forEach(l),fe=n(e),me=p(e,"P",{}),Rt(me).forEach(l),oe=n(e),M(w.$$.fragment,e),ue=n(e),M(T.$$.fragment,e),ye=n(e),J=p(e,"P",{"data-svelte-h":!0}),m(J)!=="svelte-1y37dzb"&&(J.innerHTML=pt),de=n(e),U=p(e,"P",{"data-svelte-h":!0}),m(U)!=="svelte-1hevm7y"&&(U.innerHTML=mt),be=n(e),j=p(e,"P",{"data-svelte-h":!0}),m(j)!=="svelte-15amkt"&&(j.innerHTML=rt),he=n(e),g=p(e,"P",{"data-svelte-h":!0}),m(g)!=="svelte-sgtnc7"&&(g.textContent=Mt),_e=n(e),M($.$$.fragment,e),we=n(e),Z=p(e,"P",{"data-svelte-h":!0}),m(Z)!=="svelte-9jjxff"&&(Z.textContent=ct),Te=n(e),M(x.$$.fragment,e),Je=n(e),b=p(e,"BLOCKQUOTE",{class:!0,"data-svelte-h":!0}),m(b)!=="svelte-1dw8om7"&&(b.innerHTML=ft),Ue=n(e),W=p(e,"P",{"data-svelte-h":!0}),m(W)!=="svelte-1cwu974"&&(W.textContent=ot),je=n(e),M(C.$$.fragment,e),ge=n(e),X=p(e,"P",{"data-svelte-h":!0}),m(X)!=="svelte-6b3ch3"&&(X.textContent=ut),$e=n(e),M(v.$$.fragment,e),Ze=n(e),R=p(e,"P",{"data-svelte-h":!0}),m(R)!=="svelte-1dtw1zl"&&(R.textContent=yt),xe=n(e),M(G.$$.fragment,e),We=n(e),I=p(e,"P",{"data-svelte-h":!0}),m(I)!=="svelte-48cuyc"&&(I.innerHTML=dt),Ce=n(e),h=p(e,"BLOCKQUOTE",{class:!0,"data-svelte-h":!0}),m(h)!=="svelte-jlize0"&&(h.innerHTML=bt),Xe=n(e),M(H.$$.fragment,e),ve=n(e),B=p(e,"P",{"data-svelte-h":!0}),m(B)!=="svelte-1oqektq"&&(B.innerHTML=ht),Re=n(e),V=p(e,"P",{"data-svelte-h":!0}),m(V)!=="svelte-1q1qn86"&&(V.innerHTML=_t),Ge=n(e),M(k.$$.fragment,e),Ie=n(e),E=p(e,"P",{"data-svelte-h":!0}),m(E)!=="svelte-1sf1qme"&&(E.innerHTML=wt),He=n(e),M(N.$$.fragment,e),Be=n(e),F=p(e,"P",{"data-svelte-h":!0}),m(F)!=="svelte-wph2oy"&&(F.innerHTML=Tt),Ve=n(e),Q=p(e,"P",{"data-svelte-h":!0}),m(Q)!=="svelte-3ku2gt"&&(Q.innerHTML=Jt),ke=n(e),M(A.$$.fragment,e),Ee=n(e),Y=p(e,"P",{"data-svelte-h":!0}),m(Y)!=="svelte-1yy5jk"&&(Y.innerHTML=Ut),Ne=n(e),M(L.$$.fragment,e),Fe=n(e),S=p(e,"P",{"data-svelte-h":!0}),m(S)!=="svelte-1bm1yy2"&&(S.innerHTML=jt),Qe=n(e),M(z.$$.fragment,e),Ae=n(e),q=p(e,"P",{"data-svelte-h":!0}),m(q)!=="svelte-1ybzclb"&&(q.innerHTML=gt),Ye=n(e),M(P.$$.fragment,e),Le=n(e),D=p(e,"P",{"data-svelte-h":!0}),m(D)!=="svelte-1kc06wj"&&(D.innerHTML=$t),Se=n(e),M(K.$$.fragment,e),ze=n(e),O=p(e,"P",{"data-svelte-h":!0}),m(O)!=="svelte-eho98"&&(O.textContent=Zt),qe=n(e),ee=p(e,"P",{"data-svelte-h":!0}),m(ee)!=="svelte-m0a24v"&&(ee.innerHTML=xt),Pe=n(e),_=p(e,"BLOCKQUOTE",{class:!0,"data-svelte-h":!0}),m(_)!=="svelte-1bncsqp"&&(_.innerHTML=Wt),De=n(e),M(te.$$.fragment,e),Ke=n(e),le=p(e,"P",{"data-svelte-h":!0}),m(le)!=="svelte-2s2vlp"&&(le.textContent=Ct),Oe=n(e),M(se.$$.fragment,e),et=n(e),M(ae.$$.fragment,e),tt=n(e),ne=p(e,"P",{"data-svelte-h":!0}),m(ne)!=="svelte-1y86jkc"&&(ne.textContent=Xt),lt=n(e),ie=p(e,"UL",{"data-svelte-h":!0}),m(ie)!=="svelte-thqmm8"&&(ie.innerHTML=vt),st=n(e),M(pe.$$.fragment,e),at=n(e),re=p(e,"P",{}),Rt(re).forEach(l),this.h()},h(){Me(d,"name","hf:doc:metadata"),Me(d,"content",At),Me(b,"class","tip"),Me(h,"class","tip"),Me(_,"class","tip")},m(e,t){Et(document.head,d),s(e,fe,t),s(e,me,t),s(e,oe,t),c(w,e,t),s(e,ue,t),c(T,e,t),s(e,ye,t),s(e,J,t),s(e,de,t),s(e,U,t),s(e,be,t),s(e,j,t),s(e,he,t),s(e,g,t),s(e,_e,t),c($,e,t),s(e,we,t),s(e,Z,t),s(e,Te,t),c(x,e,t),s(e,Je,t),s(e,b,t),s(e,Ue,t),s(e,W,t),s(e,je,t),c(C,e,t),s(e,ge,t),s(e,X,t),s(e,$e,t),c(v,e,t),s(e,Ze,t),s(e,R,t),s(e,xe,t),c(G,e,t),s(e,We,t),s(e,I,t),s(e,Ce,t),s(e,h,t),s(e,Xe,t),c(H,e,t),s(e,ve,t),s(e,B,t),s(e,Re,t),s(e,V,t),s(e,Ge,t),c(k,e,t),s(e,Ie,t),s(e,E,t),s(e,He,t),c(N,e,t),s(e,Be,t),s(e,F,t),s(e,Ve,t),s(e,Q,t),s(e,ke,t),c(A,e,t),s(e,Ee,t),s(e,Y,t),s(e,Ne,t),c(L,e,t),s(e,Fe,t),s(e,S,t),s(e,Qe,t),c(z,e,t),s(e,Ae,t),s(e,q,t),s(e,Ye,t),c(P,e,t),s(e,Le,t),s(e,D,t),s(e,Se,t),c(K,e,t),s(e,ze,t),s(e,O,t),s(e,qe,t),s(e,ee,t),s(e,Pe,t),s(e,_,t),s(e,De,t),c(te,e,t),s(e,Ke,t),s(e,le,t),s(e,Oe,t),c(se,e,t),s(e,et,t),c(ae,e,t),s(e,tt,t),s(e,ne,t),s(e,lt,t),s(e,ie,t),s(e,st,t),c(pe,e,t),s(e,at,t),s(e,re,t),nt=!0},p:It,i(e){nt||(f(w.$$.fragment,e),f(T.$$.fragment,e),f($.$$.fragment,e),f(x.$$.fragment,e),f(C.$$.fragment,e),f(v.$$.fragment,e),f(G.$$.fragment,e),f(H.$$.fragment,e),f(k.$$.fragment,e),f(N.$$.fragment,e),f(A.$$.fragment,e),f(L.$$.fragment,e),f(z.$$.fragment,e),f(P.$$.fragment,e),f(K.$$.fragment,e),f(te.$$.fragment,e),f(se.$$.fragment,e),f(ae.$$.fragment,e),f(pe.$$.fragment,e),nt=!0)},o(e){o(w.$$.fragment,e),o(T.$$.fragment,e),o($.$$.fragment,e),o(x.$$.fragment,e),o(C.$$.fragment,e),o(v.$$.fragment,e),o(G.$$.fragment,e),o(H.$$.fragment,e),o(k.$$.fragment,e),o(N.$$.fragment,e),o(A.$$.fragment,e),o(L.$$.fragment,e),o(z.$$.fragment,e),o(P.$$.fragment,e),o(K.$$.fragment,e),o(te.$$.fragment,e),o(se.$$.fragment,e),o(ae.$$.fragment,e),o(pe.$$.fragment,e),nt=!1},d(e){e&&(l(fe),l(me),l(oe),l(ue),l(ye),l(J),l(de),l(U),l(be),l(j),l(he),l(g),l(_e),l(we),l(Z),l(Te),l(Je),l(b),l(Ue),l(W),l(je),l(ge),l(X),l($e),l(Ze),l(R),l(xe),l(We),l(I),l(Ce),l(h),l(Xe),l(ve),l(B),l(Re),l(V),l(Ge),l(Ie),l(E),l(He),l(Be),l(F),l(Ve),l(Q),l(ke),l(Ee),l(Y),l(Ne),l(Fe),l(S),l(Qe),l(Ae),l(q),l(Ye),l(Le),l(D),l(Se),l(ze),l(O),l(qe),l(ee),l(Pe),l(_),l(De),l(Ke),l(le),l(Oe),l(et),l(tt),l(ne),l(lt),l(ie),l(st),l(at),l(re)),l(d),u(w,e),u(T,e),u($,e),u(x,e),u(C,e),u(v,e),u(G,e),u(H,e),u(k,e),u(N,e),u(A,e),u(L,e),u(z,e),u(P,e),u(K,e),u(te,e),u(se,e),u(ae,e),u(pe,e)}}}const At='{"title":"Wuerstchen","local":"wuerstchen","sections":[{"title":"脚本参数","local":"脚本参数","sections":[],"depth":2},{"title":"训练脚本","local":"训练脚本","sections":[],"depth":2},{"title":"启动脚本","local":"启动脚本","sections":[],"depth":2},{"title":"下一步","local":"下一步","sections":[],"depth":2}],"depth":1}';function Yt(it){return Ht(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class Pt extends Bt{constructor(d){super(),Vt(this,d,Yt,Qt,Gt,{})}}export{Pt as component};
