Buckets:
| import{s as Xt,o as Ht,n as Ft}from"../chunks/scheduler.53228c21.js";import{S as Ot,i as At,e as r,s as a,c as d,h as Yt,a as l,d as n,b as i,f as I,g as c,j as h,k as x,l as o,m as s,n as g,t as u,o as f,p as _}from"../chunks/index.cac5d66a.js";import{C as Kt}from"../chunks/CopyLLMTxtMenu.54ac3dec.js";import{D as U}from"../chunks/Docstring.5a04f810.js";import{C as Ce}from"../chunks/CodeBlock.606cbaf4.js";import{E as en}from"../chunks/ExampleCodeBlock.1fc71c90.js";import{H as me,E as tn}from"../chunks/MermaidChart.svelte_svelte_type_style_lang.bbffb525.js";function nn(Ue){let b,W="Examples:",$,v,J;return v=new Ce({props:{code:"aW1wb3J0JTIwdG9yY2glMEFmcm9tJTIwZGlmZnVzZXJzJTIwaW1wb3J0JTIwSm95SW1hZ2VFZGl0UGlwZWxpbmUlMEFmcm9tJTIwZGlmZnVzZXJzLnV0aWxzJTIwaW1wb3J0JTIwbG9hZF9pbWFnZSUwQSUwQW1vZGVsX2lkJTIwJTNEJTIwJTIyamRvcGVuc291cmNlJTJGSm95QUktSW1hZ2UtRWRpdC1EaWZmdXNlcnMlMjIlMEFwaXBlJTIwJTNEJTIwSm95SW1hZ2VFZGl0UGlwZWxpbmUuZnJvbV9wcmV0cmFpbmVkKG1vZGVsX2lkJTJDJTIwdG9yY2hfZHR5cGUlM0R0b3JjaC5iZmxvYXQxNiklMEFwaXBlLnRvKCUyMmN1ZGElMjIpJTBBJTBBaW1hZ2UlMjAlM0QlMjBsb2FkX2ltYWdlKCUyMmh0dHBzJTNBJTJGJTJGaHVnZ2luZ2ZhY2UuY28lMkZkYXRhc2V0cyUyRmRpZmZ1c2VycyUyRmRvY3MtaW1hZ2VzJTJGcmVzb2x2ZSUyRm1haW4lMkZhc3Ryb25hdXQuanBnJTIyKSUwQW91dHB1dCUyMCUzRCUyMHBpcGUoJTBBJTIwJTIwJTIwJTIwaW1hZ2UlM0RpbWFnZSUyQyUyMCUyMCUyMyUyMHBhc3MlMjBhbiUyMGltYWdlJTIwZm9yJTIwZWRpdGluZyUzQiUyMG9taXQlMjBmb3IlMjB0ZXh0LXRvLWltYWdlJTIwZ2VuZXJhdGlvbiUwQSUyMCUyMCUyMCUyMHByb21wdCUzRCUyMkFkZCUyMHdpbmdzJTIwdG8lMjB0aGUlMjBhc3Ryb25hdXQuJTIyJTJDJTBBJTIwJTIwJTIwJTIwbnVtX2luZmVyZW5jZV9zdGVwcyUzRDQwJTJDJTBBJTIwJTIwJTIwJTIwZ3VpZGFuY2Vfc2NhbGUlM0Q0LjAlMkMlMEElMjAlMjAlMjAlMjBnZW5lcmF0b3IlM0R0b3JjaC5tYW51YWxfc2VlZCgwKSUyQyUwQSklMEFvdXRwdXQuaW1hZ2VzJTVCMCU1RC5zYXZlKCUyMmpveWltYWdlX2VkaXQucG5nJTIyKQ==",highlighted:`<span class="hljs-meta">>>> </span><span class="hljs-keyword">import</span> torch | |
| <span class="hljs-meta">>>> </span><span class="hljs-keyword">from</span> diffusers <span class="hljs-keyword">import</span> JoyImageEditPipeline | |
| <span class="hljs-meta">>>> </span><span class="hljs-keyword">from</span> diffusers.utils <span class="hljs-keyword">import</span> load_image | |
| <span class="hljs-meta">>>> </span>model_id = <span class="hljs-string">"jdopensource/JoyAI-Image-Edit-Diffusers"</span> | |
| <span class="hljs-meta">>>> </span>pipe = JoyImageEditPipeline.from_pretrained(model_id, torch_dtype=torch.bfloat16) | |
| <span class="hljs-meta">>>> </span>pipe.to(<span class="hljs-string">"cuda"</span>) | |
| <span class="hljs-meta">>>> </span>image = load_image(<span class="hljs-string">"https://huggingface.co/datasets/diffusers/docs-images/resolve/main/astronaut.jpg"</span>) | |
| <span class="hljs-meta">>>> </span>output = pipe( | |
| <span class="hljs-meta">... </span> image=image, <span class="hljs-comment"># pass an image for editing; omit for text-to-image generation</span> | |
| <span class="hljs-meta">... </span> prompt=<span class="hljs-string">"Add wings to the astronaut."</span>, | |
| <span class="hljs-meta">... </span> num_inference_steps=<span class="hljs-number">40</span>, | |
| <span class="hljs-meta">... </span> guidance_scale=<span class="hljs-number">4.0</span>, | |
| <span class="hljs-meta">... </span> generator=torch.manual_seed(<span class="hljs-number">0</span>), | |
| <span class="hljs-meta">... </span>) | |
| <span class="hljs-meta">>>> </span>output.images[<span class="hljs-number">0</span>].save(<span class="hljs-string">"joyimage_edit.png"</span>)`,lang:"python",wrap:!1}}),{c(){b=r("p"),b.textContent=W,$=a(),d(v.$$.fragment)},l(y){b=l(y,"P",{"data-svelte-h":!0}),h(b)!=="svelte-kvfsh7"&&(b.textContent=W),$=i(y),c(v.$$.fragment,y)},m(y,w){s(y,b,w),s(y,$,w),g(v,y,w),J=!0},p:Ft,i(y){J||(u(v.$$.fragment,y),J=!0)},o(y){f(v.$$.fragment,y),J=!1},d(y){y&&(n(b),n($)),_(v,y)}}}function an(Ue){let b,W,$,v,J,y,w,Pe,G,Tt='<a href="https://github.com/jd-opensource/JoyAI-Image" rel="nofollow">JoyAI-Image</a> is a unified multimodal foundation model for image understanding, text-to-image generation, and instruction-guided image editing. It combines an 8B Multimodal Large Language Model (MLLM) with a 16B Multimodal Diffusion Transformer (MMDiT). A central principle of JoyAI-Image is the closed-loop collaboration between understanding, generation, and editing.',Ze,V,Mt="JoyAI-Image-Edit supports general image editing as well as spatial editing capabilities including object move, object rotation, and camera control.",ke,L,Et='<thead><tr><th align="center">Model</th> <th align="center">Description</th> <th align="center">Download</th></tr></thead> <tbody><tr><td align="center">JoyAI-Image-Edit</td> <td align="center">Instruction-guided image editing with precise and controllable spatial manipulation</td> <td align="center"><a href="https://huggingface.co/jdopensource/JoyAI-Image-Edit-Diffusers" rel="nofollow">Hugging Face</a></td></tr></tbody>',Ne,B,We,z,Ge,R,jt='JoyAI-Image supports three spatial editing prompt patterns: <strong>Object Move</strong>, <strong>Object Rotation</strong>, and <strong>Camera Control</strong>. For best results, follow the prompt templates below as closely as possible. For more information, refer to <a href="https://github.com/EasonXiao-888/SpatialEdit" rel="nofollow">SpatialEdit</a>.',Ve,S,Le,q,Ct="Move a target object into a specified region marked by a red box in the input image.",Be,D,ze,Q,Re,X,Ut="Rotate an object to a specific canonical view. Supported <code><view></code> values: <code>front</code>, <code>right</code>, <code>left</code>, <code>rear</code>, <code>front right</code>, <code>front left</code>, <code>rear right</code>, <code>rear left</code>.",Se,H,qe,F,De,O,Pt="Change the camera viewpoint while keeping the 3D scene unchanged.",Qe,A,Xe,Y,He,p,K,it,de,Zt="Diffusion pipeline for image editing using the JoyImage architecture.",ot,ce,kt=`The pipeline encodes text and image conditioning via a Qwen3-VL text encoder, denoises latents with a 3-D | |
| transformer, and decodes the result with a WAN VAE.`,st,ge,Nt="Model offloading order: text_encoder -> transformer -> vae.",rt,T,ee,lt,ue,Wt="Generate an edited image conditioned on a reference image and a text prompt.",pt,P,mt,Z,te,dt,fe,Gt="Validate pipeline inputs before the forward pass.",ct,k,ne,gt,_e,Vt="Invert <code>normalize_latents</code> to recover the original latent scale.",ut,M,ae,ft,he,Lt="Encode a text prompt into embeddings (text-only path).",_t,ye,Bt="Pre-computed <code>prompt_embeds</code> bypass encoding entirely.",ht,E,ie,yt,be,zt="Encode prompts that contain inline image tokens via the Qwen processor.",bt,ve,Rt=`<code><image>\\n</code> placeholders in each prompt string are replaced by the Qwen vision special tokens before being | |
| fed to the multimodal encoder.`,vt,j,oe,Jt,Je,St="Normalise latents using per-channel statistics from the VAE config.",wt,we,qt=`Uses (latent - mean) / std when the VAE exposes <code>latents_mean</code> and <code>latents_std</code>; otherwise falls back to | |
| scaling by <code>scaling_factor</code>.`,It,N,se,xt,Ie,Dt="Prepare the initial noisy latent tensor for the denoising loop.",Fe,re,Oe,C,le,$t,xe,Qt="Output class for JoyImageEdit generation pipelines.",Ae,pe,Ye,je,Ke;return J=new Kt({props:{containerStyle:"float: right; margin-left: 10px; display: inline-flex; position: relative; z-index: 10;"}}),w=new me({props:{title:"JoyAI-Image-Edit",local:"joyai-image-edit",headingTag:"h1"}}),B=new Ce({props:{code:"aW1wb3J0JTIwdG9yY2glMEFmcm9tJTIwZGlmZnVzZXJzJTIwaW1wb3J0JTIwSm95SW1hZ2VFZGl0UGlwZWxpbmUlMEFmcm9tJTIwZGlmZnVzZXJzLnV0aWxzJTIwaW1wb3J0JTIwbG9hZF9pbWFnZSUwQSUwQXBpcGVsaW5lJTIwJTNEJTIwSm95SW1hZ2VFZGl0UGlwZWxpbmUuZnJvbV9wcmV0cmFpbmVkKCUwQSUyMCUyMCUyMCUyMCUyMmpkb3BlbnNvdXJjZSUyRkpveUFJLUltYWdlLUVkaXQtRGlmZnVzZXJzJTIyJTJDJTIwdG9yY2hfZHR5cGUlM0R0b3JjaC5iZmxvYXQxNiUwQSklMEFwaXBlbGluZS50byglMjJjdWRhJTIyKSUwQSUwQWltYWdlJTIwJTNEJTIwbG9hZF9pbWFnZSglMjJodHRwcyUzQSUyRiUyRmh1Z2dpbmdmYWNlLmNvJTJGZGF0YXNldHMlMkZodWdnaW5nZmFjZSUyRmRvY3VtZW50YXRpb24taW1hZ2VzJTJGcmVzb2x2ZSUyRm1haW4lMkZkaWZmdXNlcnMlMkZhc3Ryb25hdXQuanBnJTIyKSUwQXByb21wdCUyMCUzRCUyMCUyMkFkZCUyMHdpbmdzJTIwdG8lMjB0aGUlMjBhc3Ryb25hdXQuJTIyJTBBJTBBb3V0cHV0JTIwJTNEJTIwcGlwZWxpbmUoJTBBJTIwJTIwJTIwJTIwaW1hZ2UlM0RpbWFnZSUyQyUwQSUyMCUyMCUyMCUyMHByb21wdCUzRHByb21wdCUyQyUwQSUyMCUyMCUyMCUyMG51bV9pbmZlcmVuY2Vfc3RlcHMlM0Q0MCUyQyUwQSUyMCUyMCUyMCUyMGd1aWRhbmNlX3NjYWxlJTNENC4wJTJDJTBBJTIwJTIwJTIwJTIwZ2VuZXJhdG9yJTNEdG9yY2guR2VuZXJhdG9yKCUyMmN1ZGElMjIpLm1hbnVhbF9zZWVkKDApJTJDJTBBKS5pbWFnZXMlNUIwJTVEJTBBb3V0cHV0LnNhdmUoJTIyam95aW1hZ2VfZWRpdF9vdXRwdXQucG5nJTIyKQ==",highlighted:`<span class="hljs-keyword">import</span> torch | |
| <span class="hljs-keyword">from</span> diffusers <span class="hljs-keyword">import</span> JoyImageEditPipeline | |
| <span class="hljs-keyword">from</span> diffusers.utils <span class="hljs-keyword">import</span> load_image | |
| pipeline = JoyImageEditPipeline.from_pretrained( | |
| <span class="hljs-string">"jdopensource/JoyAI-Image-Edit-Diffusers"</span>, torch_dtype=torch.bfloat16 | |
| ) | |
| pipeline.to(<span class="hljs-string">"cuda"</span>) | |
| image = load_image(<span class="hljs-string">"https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/diffusers/astronaut.jpg"</span>) | |
| prompt = <span class="hljs-string">"Add wings to the astronaut."</span> | |
| output = pipeline( | |
| image=image, | |
| prompt=prompt, | |
| num_inference_steps=<span class="hljs-number">40</span>, | |
| guidance_scale=<span class="hljs-number">4.0</span>, | |
| generator=torch.Generator(<span class="hljs-string">"cuda"</span>).manual_seed(<span class="hljs-number">0</span>), | |
| ).images[<span class="hljs-number">0</span>] | |
| output.save(<span class="hljs-string">"joyimage_edit_output.png"</span>)`,lang:"python",wrap:!1}}),z=new me({props:{title:"Spatial editing",local:"spatial-editing",headingTag:"h2"}}),S=new me({props:{title:"Object Move",local:"object-move",headingTag:"h3"}}),D=new Ce({props:{code:"TW92ZSUyMHRoZSUyMCUzQ29iamVjdCUzRSUyMGludG8lMjB0aGUlMjByZWQlMjBib3glMjBhbmQlMjBmaW5hbGx5JTIwcmVtb3ZlJTIwdGhlJTIwcmVkJTIwYm94Lg==",highlighted:"Move the <object> into the red box and finally remove the red box.",lang:"text",wrap:!1}}),Q=new me({props:{title:"Object Rotation",local:"object-rotation",headingTag:"h3"}}),H=new Ce({props:{code:"Um90YXRlJTIwdGhlJTIwJTNDb2JqZWN0JTNFJTIwdG8lMjBzaG93JTIwdGhlJTIwJTNDdmlldyUzRSUyMHNpZGUlMjB2aWV3Lg==",highlighted:"Rotate the <object> to show the <view> side view.",lang:"text",wrap:!1}}),F=new me({props:{title:"Camera Control",local:"camera-control",headingTag:"h3"}}),A=new Ce({props:{code:"TW92ZSUyMHRoZSUyMGNhbWVyYS4lMEEtJTIwQ2FtZXJhJTIwcm90YXRpb24lM0ElMjBZYXclMjAlN0J5X3JvdGF0aW9uJTdEJUMyJUIwJTJDJTIwUGl0Y2glMjAlN0JwX3JvdGF0aW9uJTdEJUMyJUIwLiUwQS0lMjBDYW1lcmElMjB6b29tJTNBJTIwaW4lMkZvdXQlMkZ1bmNoYW5nZWQuJTBBLSUyMEtlZXAlMjB0aGUlMjAzRCUyMHNjZW5lJTIwc3RhdGljJTNCJTIwb25seSUyMGNoYW5nZSUyMHRoZSUyMHZpZXdwb2ludC4=",highlighted:`Move the camera. | |
| - Camera rotation: Yaw {y_rotation}°, Pitch {p_rotation}°. | |
| - Camera zoom: in/out/unchanged. | |
| - Keep the 3D scene static; only change the viewpoint.`,lang:"text",wrap:!1}}),Y=new me({props:{title:"JoyImageEditPipeline",local:"diffusers.JoyImageEditPipeline",headingTag:"h2"}}),K=new U({props:{name:"class diffusers.JoyImageEditPipeline",anchor:"diffusers.JoyImageEditPipeline",parameters:[{name:"scheduler",val:": FlowMatchEulerDiscreteScheduler"},{name:"vae",val:": AutoencoderKLWan"},{name:"text_encoder",val:": Qwen3VLForConditionalGeneration"},{name:"tokenizer",val:": Qwen2Tokenizer"},{name:"transformer",val:": JoyImageEditTransformer3DModel"},{name:"processor",val:": Qwen3VLProcessor"},{name:"text_token_max_length",val:": int = 2048"}],source:"https://github.com/huggingface/diffusers/blob/vr_13231/src/diffusers/pipelines/joyimage/pipeline_joyimage_edit.py#L100"}}),ee=new U({props:{name:"__call__",anchor:"diffusers.JoyImageEditPipeline.__call__",parameters:[{name:"image",val:": PIL.Image.Image | numpy.ndarray | torch.Tensor | list[PIL.Image.Image] | list[numpy.ndarray] | list[torch.Tensor] | None = None"},{name:"prompt",val:": str | list[str] = None"},{name:"height",val:": int | None = None"},{name:"width",val:": int | None = None"},{name:"num_inference_steps",val:": int = 40"},{name:"timesteps",val:": typing.List[int] = None"},{name:"sigmas",val:": typing.List[float] = None"},{name:"guidance_scale",val:": float = 4.0"},{name:"negative_prompt",val:": typing.Union[str, typing.List[str], NoneType] = None"},{name:"num_images_per_prompt",val:": typing.Optional[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:"prompt_embeds_mask",val:": typing.Optional[torch.Tensor] = None"},{name:"negative_prompt_embeds",val:": typing.Optional[torch.Tensor] = None"},{name:"negative_prompt_embeds_mask",val:": typing.Optional[torch.Tensor] = None"},{name:"output_type",val:": typing.Optional[str] = 'pil'"},{name:"return_dict",val:": bool = True"},{name:"callback_on_step_end",val:": typing.Union[typing.Callable[[int, int, typing.Dict], NoneType], diffusers.callbacks.PipelineCallback, diffusers.callbacks.MultiPipelineCallbacks, NoneType] = None"},{name:"callback_on_step_end_tensor_inputs",val:": typing.List[str] = ['latents']"},{name:"max_sequence_length",val:": int = 4096"},{name:"enable_denormalization",val:": bool = True"}],parametersDescription:[{anchor:"diffusers.JoyImageEditPipeline.__call__.prompt",description:`<strong>prompt</strong> (<em>str</em> or <em>List[str]</em>) — | |
| The prompt or prompts to guide generation.`,name:"prompt"},{anchor:"diffusers.JoyImageEditPipeline.__call__.height",description:`<strong>height</strong> (<em>int</em>) — | |
| Height of the generated output in pixels.`,name:"height"},{anchor:"diffusers.JoyImageEditPipeline.__call__.width",description:`<strong>width</strong> (<em>int</em>) — | |
| Width of the generated output in pixels.`,name:"width"},{anchor:"diffusers.JoyImageEditPipeline.__call__.image",description:`<strong>image</strong> (<em>PipelineImageInput</em>, <em>optional</em>) — | |
| Reference image used for conditioning. When provided the pipeline operates in image-editing mode with | |
| <code>num_items=2</code>.`,name:"image"},{anchor:"diffusers.JoyImageEditPipeline.__call__.num_inference_steps",description:`<strong>num_inference_steps</strong> (<em>int</em>, <em>optional</em>, defaults to 40) — | |
| Number of denoising steps. More steps generally improve quality at the cost of slower inference.`,name:"num_inference_steps"},{anchor:"diffusers.JoyImageEditPipeline.__call__.timesteps",description:`<strong>timesteps</strong> (<em>List[int]</em>, <em>optional</em>) — | |
| Custom timesteps for the denoising process. When provided, <code>num_inference_steps</code> is inferred from the | |
| list length.`,name:"timesteps"},{anchor:"diffusers.JoyImageEditPipeline.__call__.sigmas",description:`<strong>sigmas</strong> (<em>List[float]</em>, <em>optional</em>) — | |
| Custom sigmas for the denoising process. Mutually exclusive with <code>timesteps</code>.`,name:"sigmas"},{anchor:"diffusers.JoyImageEditPipeline.__call__.guidance_scale",description:`<strong>guidance_scale</strong> (<em>float</em>, <em>optional</em>, defaults to 4.0) — | |
| Classifier-free guidance scale.`,name:"guidance_scale"},{anchor:"diffusers.JoyImageEditPipeline.__call__.negative_prompt",description:`<strong>negative_prompt</strong> (<em>str</em> or <em>List[str]</em>, <em>optional</em>) — | |
| Negative prompt(s) used to suppress undesired content.`,name:"negative_prompt"},{anchor:"diffusers.JoyImageEditPipeline.__call__.num_images_per_prompt",description:`<strong>num_images_per_prompt</strong> (<em>int</em>, <em>optional</em>, defaults to 1) — | |
| Number of generated samples per prompt.`,name:"num_images_per_prompt"},{anchor:"diffusers.JoyImageEditPipeline.__call__.generator",description:`<strong>generator</strong> (<em>torch.Generator</em> or <em>List[torch.Generator]</em>, <em>optional</em>) — | |
| RNG generator(s) for deterministic sampling.`,name:"generator"},{anchor:"diffusers.JoyImageEditPipeline.__call__.latents",description:`<strong>latents</strong> (<em>torch.Tensor</em>, <em>optional</em>) — | |
| Pre-generated noisy latents for the target slot. Sampled from a Gaussian distribution when not | |
| provided. Can be used to seed generation from a specific starting noise tensor.`,name:"latents"},{anchor:"diffusers.JoyImageEditPipeline.__call__.prompt_embeds",description:`<strong>prompt_embeds</strong> (<em>torch.Tensor</em>, <em>optional</em>) — | |
| Pre-computed prompt embeddings. When provided <code>prompt</code> can be omitted.`,name:"prompt_embeds"},{anchor:"diffusers.JoyImageEditPipeline.__call__.prompt_embeds_mask",description:`<strong>prompt_embeds_mask</strong> (<em>torch.Tensor</em>, <em>optional</em>) — | |
| Attention mask for <code>prompt_embeds</code>.`,name:"prompt_embeds_mask"},{anchor:"diffusers.JoyImageEditPipeline.__call__.negative_prompt_embeds",description:`<strong>negative_prompt_embeds</strong> (<em>torch.Tensor</em>, <em>optional</em>) — | |
| Pre-computed negative prompt embeddings.`,name:"negative_prompt_embeds"},{anchor:"diffusers.JoyImageEditPipeline.__call__.negative_prompt_embeds_mask",description:`<strong>negative_prompt_embeds_mask</strong> (<em>torch.Tensor</em>, <em>optional</em>) — | |
| Attention mask for <code>negative_prompt_embeds</code>.`,name:"negative_prompt_embeds_mask"},{anchor:"diffusers.JoyImageEditPipeline.__call__.output_type",description:`<strong>output_type</strong> (<em>str</em>, <em>optional</em>, defaults to <code>"pil"</code>) — | |
| Output format. Pass <code>"latent"</code> to return raw latents.`,name:"output_type"},{anchor:"diffusers.JoyImageEditPipeline.__call__.return_dict",description:`<strong>return_dict</strong> (<em>bool</em>, <em>optional</em>, defaults to <em>True</em>) — | |
| Whether to return a <a href="/docs/diffusers/pr_13231/en/api/pipelines/joyimage_edit#diffusers.JoyImageEditPipelineOutput">JoyImageEditPipelineOutput</a> or a plain tensor.`,name:"return_dict"},{anchor:"diffusers.JoyImageEditPipeline.__call__.callback_on_step_end",description:`<strong>callback_on_step_end</strong> (<em>Callable</em>, <em>PipelineCallback</em>, <em>MultiPipelineCallbacks</em>, <em>optional</em>) — | |
| Callback invoked at the end of each denoising step with signature <code>(self, step: int, timestep: int, callback_kwargs: Dict)</code>.`,name:"callback_on_step_end"},{anchor:"diffusers.JoyImageEditPipeline.__call__.callback_on_step_end_tensor_inputs",description:`<strong>callback_on_step_end_tensor_inputs</strong> (<em>List[str]</em>, <em>optional</em>, defaults to <code>["latents"]</code>) — | |
| Tensor keys included in <code>callback_kwargs</code> for <code>callback_on_step_end</code>.`,name:"callback_on_step_end_tensor_inputs"},{anchor:"diffusers.JoyImageEditPipeline.__call__.max_sequence_length",description:`<strong>max_sequence_length</strong> (<em>int</em>, <em>optional</em>, defaults to 4096) — | |
| Maximum sequence length for prompt encoding.`,name:"max_sequence_length"},{anchor:"diffusers.JoyImageEditPipeline.__call__.enable_denormalization",description:`<strong>enable_denormalization</strong> (<em>bool</em>, <em>optional</em>, defaults to <em>True</em>) — | |
| Denormalise latents before VAE decoding.`,name:"enable_denormalization"}],source:"https://github.com/huggingface/diffusers/blob/vr_13231/src/diffusers/pipelines/joyimage/pipeline_joyimage_edit.py#L600",returnDescription:`<script context="module">export const metadata = 'undefined';<\/script> | |
| <p>If <code>return_dict</code> is <code>True</code>, returns a pipeline output object containing the generated image(s). | |
| Otherwise returns the image tensor directly.</p> | |
| `,returnType:`<script context="module">export const metadata = 'undefined';<\/script> | |
| <p>[<em>~pipelines.joyimage.JoyImageEditPipelineOutput</em>] or <em>torch.Tensor</em></p> | |
| `}}),P=new en({props:{anchor:"diffusers.JoyImageEditPipeline.__call__.example",$$slots:{default:[nn]},$$scope:{ctx:Ue}}}),te=new U({props:{name:"check_inputs",anchor:"diffusers.JoyImageEditPipeline.check_inputs",parameters:[{name:"prompt",val:""},{name:"height",val:""},{name:"width",val:""},{name:"negative_prompt",val:" = None"},{name:"prompt_embeds",val:" = None"},{name:"negative_prompt_embeds",val:" = None"},{name:"prompt_embeds_mask",val:" = None"},{name:"negative_prompt_embeds_mask",val:" = None"},{name:"callback_on_step_end_tensor_inputs",val:" = None"}],source:"https://github.com/huggingface/diffusers/blob/vr_13231/src/diffusers/pipelines/joyimage/pipeline_joyimage_edit.py#L409",raiseDescription:`<script context="module">export const metadata = 'undefined';<\/script> | |
| <ul> | |
| <li><code>ValueError</code> — On any invalid combination of arguments.</li> | |
| </ul> | |
| `,raiseType:`<script context="module">export const metadata = 'undefined';<\/script> | |
| <p><code>ValueError</code></p> | |
| `}}),ne=new U({props:{name:"denormalize_latents",anchor:"diffusers.JoyImageEditPipeline.denormalize_latents",parameters:[{name:"latent",val:": Tensor"}],parametersDescription:[{anchor:"diffusers.JoyImageEditPipeline.denormalize_latents.latent",description:"<strong>latent</strong> — Normalised latent tensor.",name:"latent"}],source:"https://github.com/huggingface/diffusers/blob/vr_13231/src/diffusers/pipelines/joyimage/pipeline_joyimage_edit.py#L476",returnDescription:`<script context="module">export const metadata = 'undefined';<\/script> | |
| <p>Latent tensor in the scale expected by <code>vae.decode</code>.</p> | |
| `}}),ae=new U({props:{name:"encode_prompt",anchor:"diffusers.JoyImageEditPipeline.encode_prompt",parameters:[{name:"prompt",val:": typing.Union[str, typing.List[str]]"},{name:"device",val:": typing.Optional[torch.device] = None"},{name:"num_images_per_prompt",val:": int = 1"},{name:"prompt_embeds",val:": typing.Optional[torch.Tensor] = None"},{name:"prompt_embeds_mask",val:": typing.Optional[torch.Tensor] = None"},{name:"max_sequence_length",val:": int = 1024"},{name:"template_type",val:": str = 'image'"}],parametersDescription:[{anchor:"diffusers.JoyImageEditPipeline.encode_prompt.prompt",description:"<strong>prompt</strong> — Prompt string or list of prompt strings.",name:"prompt"},{anchor:"diffusers.JoyImageEditPipeline.encode_prompt.device",description:"<strong>device</strong> — Target device.",name:"device"},{anchor:"diffusers.JoyImageEditPipeline.encode_prompt.num_images_per_prompt",description:"<strong>num_images_per_prompt</strong> — Number of outputs to generate per prompt.",name:"num_images_per_prompt"},{anchor:"diffusers.JoyImageEditPipeline.encode_prompt.prompt_embeds",description:"<strong>prompt_embeds</strong> — Pre-computed prompt embeddings.",name:"prompt_embeds"},{anchor:"diffusers.JoyImageEditPipeline.encode_prompt.prompt_embeds_mask",description:"<strong>prompt_embeds_mask</strong> — Attention mask for pre-computed embeddings.",name:"prompt_embeds_mask"},{anchor:"diffusers.JoyImageEditPipeline.encode_prompt.max_sequence_length",description:"<strong>max_sequence_length</strong> — Maximum output sequence length.",name:"max_sequence_length"},{anchor:"diffusers.JoyImageEditPipeline.encode_prompt.template_type",description:"<strong>template_type</strong> — Prompt template key (<code>"image"</code> or <code>"multiple_images"</code>).",name:"template_type"}],source:"https://github.com/huggingface/diffusers/blob/vr_13231/src/diffusers/pipelines/joyimage/pipeline_joyimage_edit.py#L364",returnDescription:`<script context="module">export const metadata = 'undefined';<\/script> | |
| <p>Tuple of (prompt_embeds, prompt_embeds_mask).</p> | |
| `}}),ie=new U({props:{name:"encode_prompt_multiple_images",anchor:"diffusers.JoyImageEditPipeline.encode_prompt_multiple_images",parameters:[{name:"prompt",val:": typing.Union[str, typing.List[str]]"},{name:"device",val:": typing.Optional[torch.device] = None"},{name:"num_images_per_prompt",val:": int = 1"},{name:"images",val:": typing.Optional[torch.Tensor] = None"},{name:"prompt_embeds",val:": typing.Optional[torch.Tensor] = None"},{name:"prompt_embeds_mask",val:": typing.Optional[torch.Tensor] = None"},{name:"template_type",val:": typing.Optional[str] = 'multiple_images'"},{name:"max_sequence_length",val:": typing.Optional[int] = None"}],parametersDescription:[{anchor:"diffusers.JoyImageEditPipeline.encode_prompt_multiple_images.prompt",description:"<strong>prompt</strong> — Prompt string(s), optionally containing <code><image>\\n</code> tokens.",name:"prompt"},{anchor:"diffusers.JoyImageEditPipeline.encode_prompt_multiple_images.device",description:"<strong>device</strong> — Target device.",name:"device"},{anchor:"diffusers.JoyImageEditPipeline.encode_prompt_multiple_images.num_images_per_prompt",description:"<strong>num_images_per_prompt</strong> — Number of outputs to generate per prompt.",name:"num_images_per_prompt"},{anchor:"diffusers.JoyImageEditPipeline.encode_prompt_multiple_images.images",description:"<strong>images</strong> — Pixel tensors corresponding to the inline image tokens.",name:"images"},{anchor:"diffusers.JoyImageEditPipeline.encode_prompt_multiple_images.prompt_embeds",description:"<strong>prompt_embeds</strong> — Pre-computed prompt embeddings.",name:"prompt_embeds"},{anchor:"diffusers.JoyImageEditPipeline.encode_prompt_multiple_images.prompt_embeds_mask",description:"<strong>prompt_embeds_mask</strong> — Attention mask for pre-computed embeddings.",name:"prompt_embeds_mask"},{anchor:"diffusers.JoyImageEditPipeline.encode_prompt_multiple_images.template_type",description:"<strong>template_type</strong> — Must be <code>"multiple_images"</code>.",name:"template_type"},{anchor:"diffusers.JoyImageEditPipeline.encode_prompt_multiple_images.max_sequence_length",description:`<strong>max_sequence_length</strong> — If set, truncate the output to this length | |
| (keeping the last <code>max_sequence_length</code> tokens).`,name:"max_sequence_length"}],source:"https://github.com/huggingface/diffusers/blob/vr_13231/src/diffusers/pipelines/joyimage/pipeline_joyimage_edit.py#L286",returnDescription:`<script context="module">export const metadata = 'undefined';<\/script> | |
| <p>Tuple of (prompt_embeds, prompt_embeds_mask).</p> | |
| `}}),oe=new U({props:{name:"normalize_latents",anchor:"diffusers.JoyImageEditPipeline.normalize_latents",parameters:[{name:"latent",val:": Tensor"}],parametersDescription:[{anchor:"diffusers.JoyImageEditPipeline.normalize_latents.latent",description:"<strong>latent</strong> — Raw latent tensor from <code>vae.encode</code>.",name:"latent"}],source:"https://github.com/huggingface/diffusers/blob/vr_13231/src/diffusers/pipelines/joyimage/pipeline_joyimage_edit.py#L447",returnDescription:`<script context="module">export const metadata = 'undefined';<\/script> | |
| <p>Normalised latent tensor.</p> | |
| `}}),se=new U({props:{name:"prepare_latents",anchor:"diffusers.JoyImageEditPipeline.prepare_latents",parameters:[{name:"batch_size",val:": int"},{name:"num_channels_latents",val:": int"},{name:"height",val:": int"},{name:"width",val:": int"},{name:"video_length",val:": int"},{name:"dtype",val:": dtype"},{name:"device",val:": device"},{name:"generator",val:": typing.Union[torch._C.Generator, typing.List[torch._C.Generator], NoneType]"},{name:"latents",val:": typing.Optional[torch.Tensor] = None"},{name:"image",val:": typing.Optional[typing.List[PIL.Image.Image]] = None"},{name:"enable_denormalization",val:": bool = True"}],parametersDescription:[{anchor:"diffusers.JoyImageEditPipeline.prepare_latents.batch_size",description:"<strong>batch_size</strong> — Number of samples in the batch.",name:"batch_size"},{anchor:"diffusers.JoyImageEditPipeline.prepare_latents.num_channels_latents",description:"<strong>num_channels_latents</strong> — Latent channel dimension from the transformer config.",name:"num_channels_latents"},{anchor:"diffusers.JoyImageEditPipeline.prepare_latents.height",description:"<strong>height</strong> — Spatial height in pixels.",name:"height"},{anchor:"diffusers.JoyImageEditPipeline.prepare_latents.width",description:"<strong>width</strong> — Spatial width in pixels.",name:"width"},{anchor:"diffusers.JoyImageEditPipeline.prepare_latents.video_length",description:"<strong>video_length</strong> — Number of frames (1 for image inference).",name:"video_length"},{anchor:"diffusers.JoyImageEditPipeline.prepare_latents.dtype",description:"<strong>dtype</strong> — Floating-point dtype for the latent tensor.",name:"dtype"},{anchor:"diffusers.JoyImageEditPipeline.prepare_latents.device",description:"<strong>device</strong> — Target device.",name:"device"},{anchor:"diffusers.JoyImageEditPipeline.prepare_latents.generator",description:"<strong>generator</strong> — RNG generator(s) for reproducible sampling.",name:"generator"},{anchor:"diffusers.JoyImageEditPipeline.prepare_latents.latents",description:"<strong>latents</strong> — Optional user-provided initial noise for the target slot. When <code>None</code> random noise is sampled.",name:"latents"},{anchor:"diffusers.JoyImageEditPipeline.prepare_latents.image",description:"<strong>image</strong> — Optional list of PIL reference images to VAE-encode as conditioning slots.",name:"image"},{anchor:"diffusers.JoyImageEditPipeline.prepare_latents.enable_denormalization",description:"<strong>enable_denormalization</strong> — Whether to normalise encoded reference latents.",name:"enable_denormalization"}],source:"https://github.com/huggingface/diffusers/blob/vr_13231/src/diffusers/pipelines/joyimage/pipeline_joyimage_edit.py#L502",returnDescription:`<script context="module">export const metadata = 'undefined';<\/script> | |
| <p>Tuple of <code>(latents, image_latents)</code> where <code>latents</code> has shape <code>(B, 1, C, T, H', W')</code> and | |
| <code>image_latents</code> has shape <code>(B, N_ref, C, T, H', W')</code> or <code>None</code> when no reference images are given.</p> | |
| `,raiseDescription:`<script context="module">export const metadata = 'undefined';<\/script> | |
| <ul> | |
| <li><code>ValueError</code> — If <code>generator</code> is a list whose length differs from <code>batch_size</code>.</li> | |
| </ul> | |
| `,raiseType:`<script context="module">export const metadata = 'undefined';<\/script> | |
| <p><code>ValueError</code></p> | |
| `}}),re=new me({props:{title:"JoyImageEditPipelineOutput",local:"diffusers.JoyImageEditPipelineOutput",headingTag:"h2"}}),le=new U({props:{name:"class diffusers.JoyImageEditPipelineOutput",anchor:"diffusers.JoyImageEditPipelineOutput",parameters:[{name:"images",val:": typing.Union[typing.List[PIL.Image.Image], numpy.ndarray]"}],source:"https://github.com/huggingface/diffusers/blob/vr_13231/src/diffusers/pipelines/joyimage/pipeline_output.py#L11"}}),pe=new tn({props:{source:"https://github.com/huggingface/diffusers/blob/main/docs/source/en/api/pipelines/joyimage_edit.md"}}),{c(){b=r("meta"),W=a(),$=r("p"),v=a(),d(J.$$.fragment),y=a(),d(w.$$.fragment),Pe=a(),G=r("p"),G.innerHTML=Tt,Ze=a(),V=r("p"),V.textContent=Mt,ke=a(),L=r("table"),L.innerHTML=Et,Ne=a(),d(B.$$.fragment),We=a(),d(z.$$.fragment),Ge=a(),R=r("p"),R.innerHTML=jt,Ve=a(),d(S.$$.fragment),Le=a(),q=r("p"),q.textContent=Ct,Be=a(),d(D.$$.fragment),ze=a(),d(Q.$$.fragment),Re=a(),X=r("p"),X.innerHTML=Ut,Se=a(),d(H.$$.fragment),qe=a(),d(F.$$.fragment),De=a(),O=r("p"),O.textContent=Pt,Qe=a(),d(A.$$.fragment),Xe=a(),d(Y.$$.fragment),He=a(),p=r("div"),d(K.$$.fragment),it=a(),de=r("p"),de.textContent=Zt,ot=a(),ce=r("p"),ce.textContent=kt,st=a(),ge=r("p"),ge.textContent=Nt,rt=a(),T=r("div"),d(ee.$$.fragment),lt=a(),ue=r("p"),ue.textContent=Wt,pt=a(),d(P.$$.fragment),mt=a(),Z=r("div"),d(te.$$.fragment),dt=a(),fe=r("p"),fe.textContent=Gt,ct=a(),k=r("div"),d(ne.$$.fragment),gt=a(),_e=r("p"),_e.innerHTML=Vt,ut=a(),M=r("div"),d(ae.$$.fragment),ft=a(),he=r("p"),he.textContent=Lt,_t=a(),ye=r("p"),ye.innerHTML=Bt,ht=a(),E=r("div"),d(ie.$$.fragment),yt=a(),be=r("p"),be.textContent=zt,bt=a(),ve=r("p"),ve.innerHTML=Rt,vt=a(),j=r("div"),d(oe.$$.fragment),Jt=a(),Je=r("p"),Je.textContent=St,wt=a(),we=r("p"),we.innerHTML=qt,It=a(),N=r("div"),d(se.$$.fragment),xt=a(),Ie=r("p"),Ie.textContent=Dt,Fe=a(),d(re.$$.fragment),Oe=a(),C=r("div"),d(le.$$.fragment),$t=a(),xe=r("p"),xe.textContent=Qt,Ae=a(),d(pe.$$.fragment),Ye=a(),je=r("p"),this.h()},l(e){const t=Yt("svelte-u9bgzb",document.head);b=l(t,"META",{name:!0,content:!0}),t.forEach(n),W=i(e),$=l(e,"P",{}),I($).forEach(n),v=i(e),c(J.$$.fragment,e),y=i(e),c(w.$$.fragment,e),Pe=i(e),G=l(e,"P",{"data-svelte-h":!0}),h(G)!=="svelte-fblxqr"&&(G.innerHTML=Tt),Ze=i(e),V=l(e,"P",{"data-svelte-h":!0}),h(V)!=="svelte-13rby5l"&&(V.textContent=Mt),ke=i(e),L=l(e,"TABLE",{"data-svelte-h":!0}),h(L)!=="svelte-1tnbtzw"&&(L.innerHTML=Et),Ne=i(e),c(B.$$.fragment,e),We=i(e),c(z.$$.fragment,e),Ge=i(e),R=l(e,"P",{"data-svelte-h":!0}),h(R)!=="svelte-c0vonw"&&(R.innerHTML=jt),Ve=i(e),c(S.$$.fragment,e),Le=i(e),q=l(e,"P",{"data-svelte-h":!0}),h(q)!=="svelte-1hvxdo6"&&(q.textContent=Ct),Be=i(e),c(D.$$.fragment,e),ze=i(e),c(Q.$$.fragment,e),Re=i(e),X=l(e,"P",{"data-svelte-h":!0}),h(X)!=="svelte-d1ycjx"&&(X.innerHTML=Ut),Se=i(e),c(H.$$.fragment,e),qe=i(e),c(F.$$.fragment,e),De=i(e),O=l(e,"P",{"data-svelte-h":!0}),h(O)!=="svelte-123huua"&&(O.textContent=Pt),Qe=i(e),c(A.$$.fragment,e),Xe=i(e),c(Y.$$.fragment,e),He=i(e),p=l(e,"DIV",{class:!0});var m=I(p);c(K.$$.fragment,m),it=i(m),de=l(m,"P",{"data-svelte-h":!0}),h(de)!=="svelte-19riz1u"&&(de.textContent=Zt),ot=i(m),ce=l(m,"P",{"data-svelte-h":!0}),h(ce)!=="svelte-nj07fr"&&(ce.textContent=kt),st=i(m),ge=l(m,"P",{"data-svelte-h":!0}),h(ge)!=="svelte-e88585"&&(ge.textContent=Nt),rt=i(m),T=l(m,"DIV",{class:!0});var $e=I(T);c(ee.$$.fragment,$e),lt=i($e),ue=l($e,"P",{"data-svelte-h":!0}),h(ue)!=="svelte-v4p6pb"&&(ue.textContent=Wt),pt=i($e),c(P.$$.fragment,$e),$e.forEach(n),mt=i(m),Z=l(m,"DIV",{class:!0});var et=I(Z);c(te.$$.fragment,et),dt=i(et),fe=l(et,"P",{"data-svelte-h":!0}),h(fe)!=="svelte-152obmb"&&(fe.textContent=Gt),et.forEach(n),ct=i(m),k=l(m,"DIV",{class:!0});var tt=I(k);c(ne.$$.fragment,tt),gt=i(tt),_e=l(tt,"P",{"data-svelte-h":!0}),h(_e)!=="svelte-1bpqw41"&&(_e.innerHTML=Vt),tt.forEach(n),ut=i(m),M=l(m,"DIV",{class:!0});var Te=I(M);c(ae.$$.fragment,Te),ft=i(Te),he=l(Te,"P",{"data-svelte-h":!0}),h(he)!=="svelte-a23g02"&&(he.textContent=Lt),_t=i(Te),ye=l(Te,"P",{"data-svelte-h":!0}),h(ye)!=="svelte-1mmbfv8"&&(ye.innerHTML=Bt),Te.forEach(n),ht=i(m),E=l(m,"DIV",{class:!0});var Me=I(E);c(ie.$$.fragment,Me),yt=i(Me),be=l(Me,"P",{"data-svelte-h":!0}),h(be)!=="svelte-1slavro"&&(be.textContent=zt),bt=i(Me),ve=l(Me,"P",{"data-svelte-h":!0}),h(ve)!=="svelte-h89zvv"&&(ve.innerHTML=Rt),Me.forEach(n),vt=i(m),j=l(m,"DIV",{class:!0});var Ee=I(j);c(oe.$$.fragment,Ee),Jt=i(Ee),Je=l(Ee,"P",{"data-svelte-h":!0}),h(Je)!=="svelte-191fbh6"&&(Je.textContent=St),wt=i(Ee),we=l(Ee,"P",{"data-svelte-h":!0}),h(we)!=="svelte-ynhd6z"&&(we.innerHTML=qt),Ee.forEach(n),It=i(m),N=l(m,"DIV",{class:!0});var nt=I(N);c(se.$$.fragment,nt),xt=i(nt),Ie=l(nt,"P",{"data-svelte-h":!0}),h(Ie)!=="svelte-12nb4p5"&&(Ie.textContent=Dt),nt.forEach(n),m.forEach(n),Fe=i(e),c(re.$$.fragment,e),Oe=i(e),C=l(e,"DIV",{class:!0});var at=I(C);c(le.$$.fragment,at),$t=i(at),xe=l(at,"P",{"data-svelte-h":!0}),h(xe)!=="svelte-1h05eig"&&(xe.textContent=Qt),at.forEach(n),Ae=i(e),c(pe.$$.fragment,e),Ye=i(e),je=l(e,"P",{}),I(je).forEach(n),this.h()},h(){x(b,"name","hf:doc:metadata"),x(b,"content",on),x(T,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),x(Z,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),x(k,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),x(M,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),x(E,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),x(j,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),x(N,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),x(p,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),x(C,"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){o(document.head,b),s(e,W,t),s(e,$,t),s(e,v,t),g(J,e,t),s(e,y,t),g(w,e,t),s(e,Pe,t),s(e,G,t),s(e,Ze,t),s(e,V,t),s(e,ke,t),s(e,L,t),s(e,Ne,t),g(B,e,t),s(e,We,t),g(z,e,t),s(e,Ge,t),s(e,R,t),s(e,Ve,t),g(S,e,t),s(e,Le,t),s(e,q,t),s(e,Be,t),g(D,e,t),s(e,ze,t),g(Q,e,t),s(e,Re,t),s(e,X,t),s(e,Se,t),g(H,e,t),s(e,qe,t),g(F,e,t),s(e,De,t),s(e,O,t),s(e,Qe,t),g(A,e,t),s(e,Xe,t),g(Y,e,t),s(e,He,t),s(e,p,t),g(K,p,null),o(p,it),o(p,de),o(p,ot),o(p,ce),o(p,st),o(p,ge),o(p,rt),o(p,T),g(ee,T,null),o(T,lt),o(T,ue),o(T,pt),g(P,T,null),o(p,mt),o(p,Z),g(te,Z,null),o(Z,dt),o(Z,fe),o(p,ct),o(p,k),g(ne,k,null),o(k,gt),o(k,_e),o(p,ut),o(p,M),g(ae,M,null),o(M,ft),o(M,he),o(M,_t),o(M,ye),o(p,ht),o(p,E),g(ie,E,null),o(E,yt),o(E,be),o(E,bt),o(E,ve),o(p,vt),o(p,j),g(oe,j,null),o(j,Jt),o(j,Je),o(j,wt),o(j,we),o(p,It),o(p,N),g(se,N,null),o(N,xt),o(N,Ie),s(e,Fe,t),g(re,e,t),s(e,Oe,t),s(e,C,t),g(le,C,null),o(C,$t),o(C,xe),s(e,Ae,t),g(pe,e,t),s(e,Ye,t),s(e,je,t),Ke=!0},p(e,[t]){const m={};t&2&&(m.$$scope={dirty:t,ctx:e}),P.$set(m)},i(e){Ke||(u(J.$$.fragment,e),u(w.$$.fragment,e),u(B.$$.fragment,e),u(z.$$.fragment,e),u(S.$$.fragment,e),u(D.$$.fragment,e),u(Q.$$.fragment,e),u(H.$$.fragment,e),u(F.$$.fragment,e),u(A.$$.fragment,e),u(Y.$$.fragment,e),u(K.$$.fragment,e),u(ee.$$.fragment,e),u(P.$$.fragment,e),u(te.$$.fragment,e),u(ne.$$.fragment,e),u(ae.$$.fragment,e),u(ie.$$.fragment,e),u(oe.$$.fragment,e),u(se.$$.fragment,e),u(re.$$.fragment,e),u(le.$$.fragment,e),u(pe.$$.fragment,e),Ke=!0)},o(e){f(J.$$.fragment,e),f(w.$$.fragment,e),f(B.$$.fragment,e),f(z.$$.fragment,e),f(S.$$.fragment,e),f(D.$$.fragment,e),f(Q.$$.fragment,e),f(H.$$.fragment,e),f(F.$$.fragment,e),f(A.$$.fragment,e),f(Y.$$.fragment,e),f(K.$$.fragment,e),f(ee.$$.fragment,e),f(P.$$.fragment,e),f(te.$$.fragment,e),f(ne.$$.fragment,e),f(ae.$$.fragment,e),f(ie.$$.fragment,e),f(oe.$$.fragment,e),f(se.$$.fragment,e),f(re.$$.fragment,e),f(le.$$.fragment,e),f(pe.$$.fragment,e),Ke=!1},d(e){e&&(n(W),n($),n(v),n(y),n(Pe),n(G),n(Ze),n(V),n(ke),n(L),n(Ne),n(We),n(Ge),n(R),n(Ve),n(Le),n(q),n(Be),n(ze),n(Re),n(X),n(Se),n(qe),n(De),n(O),n(Qe),n(Xe),n(He),n(p),n(Fe),n(Oe),n(C),n(Ae),n(Ye),n(je)),n(b),_(J,e),_(w,e),_(B,e),_(z,e),_(S,e),_(D,e),_(Q,e),_(H,e),_(F,e),_(A,e),_(Y,e),_(K),_(ee),_(P),_(te),_(ne),_(ae),_(ie),_(oe),_(se),_(re,e),_(le),_(pe,e)}}}const on='{"title":"JoyAI-Image-Edit","local":"joyai-image-edit","sections":[{"title":"Spatial editing","local":"spatial-editing","sections":[{"title":"Object Move","local":"object-move","sections":[],"depth":3},{"title":"Object Rotation","local":"object-rotation","sections":[],"depth":3},{"title":"Camera Control","local":"camera-control","sections":[],"depth":3}],"depth":2},{"title":"JoyImageEditPipeline","local":"diffusers.JoyImageEditPipeline","sections":[],"depth":2},{"title":"JoyImageEditPipelineOutput","local":"diffusers.JoyImageEditPipelineOutput","sections":[],"depth":2}],"depth":1}';function sn(Ue){return Ht(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class un extends Ot{constructor(b){super(),At(this,b,sn,an,Xt,{})}}export{un as component}; | |
Xet Storage Details
- Size:
- 39.8 kB
- Xet hash:
- 3ab326baf0fc6ca0925289a68ee42835ab2f9f35f50a7ad44d1bc3cbc9d93454
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.