diff --git a/.gitattributes b/.gitattributes index 34d8762..7e0e7c8 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1,2 +1,10 @@ **/*.png filter=lfs diff=lfs merge=lfs -text **/*.mp4 filter=lfs diff=lfs merge=lfs -text +**/*.jpg filter=lfs diff=lfs merge=lfs -text + +example_workflows/low_level/end.jpg -filter -diff -merge -text +example_workflows/low_level/fox.jpg -filter -diff -merge -text +example_workflows/low_level/shrek2.jpg -filter -diff -merge -text +example_workflows/low_level/start.jpg -filter -diff -merge -text +example_workflows/tricks/shrek2.jpg -filter -diff -merge -text +example_workflows/tricks/shrek3.jpg -filter -diff -merge -text diff --git a/LICENSE b/LICENSE index 261eeb9..fccfbeb 100644 --- a/LICENSE +++ b/LICENSE @@ -1,201 +1,381 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ + LTX-2 Community License Agreement + License date: January 5, 2026 - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +By using or distributing any portion or element of LTX-2, you agree +to be bound by this Agreement. 1. Definitions. - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. + "Agreement" means the terms and conditions for the license, use, + reproduction, and distribution of LTX-2 and the Complementary + Materials, as specified in this document. - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. + "Control" means the direct or indirect ownership of more than + fifty percent (50%) of the voting securities or other ownership + interests, or the power to direct the management and policies of + such Entity through voting rights, contract, or otherwise. - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. + "Data" means a collection of information and/or content extracted + from the dataset used with LTX-2, including to train, pretrain, + or otherwise evaluate LTX-2. The Data is not licensed under this + Agreement. - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. + "Derivatives of LTX-2" means all modifications to LTX-2, works + based on LTX-2, or any other model which is created or initialized + by transfer of patterns of the weights, parameters, activations or + output of LTX-2, to the other model, in order to cause the other + model to perform similarly to LTX-2, including – but not limited + to - distillation methods entailing the use of intermediate data + representations or methods based on the generation of synthetic + data by LTX-2 for training the other model. For clarity, Derivatives + of LTX-2 include: (i) any fine-tuned or adapted weights, parameters, + or checkpoints derived from LTX-2; (ii) derivative model architectures + that incorporate or are based upon LTX-2's architecture; and + (iii) any modified or extended versions of the Complementary + Materials. All intellectual property rights in Derivatives of LTX-2 + shall be subject to the terms of this Agreement, and you may not + claim exclusive ownership rights in any Derivatives of LTX-2 that + would restrict the rights granted herein. - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. + "Entity" means any individual, corporation, partnership, limited + liability company, or other legal entity. For purposes of this + Agreement, an Entity shall be deemed to include, on an aggregative + basis, all subsidiaries, affiliates, and other companies under + common Control with such Entity. When determining whether an Entity + meets any threshold under this Agreement (including revenue + thresholds), all subsidiaries, affiliates, and companies under + common Control shall be considered collectively. - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. + "Harm" includes but is not limited to physical, mental, + psychological, financial and reputational damage, pain, or loss. - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). + "Licensor" or "Lightricks" means the owner that is granting the + license under this Agreement. For the purposes of this Agreement, + the Licensor is Lightricks Ltd. - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. + "LTX-2" means the large language models, text/image/video/audio/3D + generation models, and multimodal large language models and their + software and algorithms, including trained model weights, parameters + (including optimizer states), machine-learning model code, + inference-enabling code, training-enabling code, fine-tuning + enabling code, accompanying source code, scripts, documentation, + tutorials, examples, and all other elements of the foregoing + distributed and made publicly available by Lightricks (including, + for example, at https://github.com/Lightricks/LTX-2) for the LTX-2 + model released on January 5, 2026. This license is applicable to + all LTX-2 versions released since January 5, 2026, and all future + releases of LTX-2 under this license. - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." + "Output" means the results of operating LTX-2 as embodied in + informational content resulting therefrom. - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. + "you" (or "your") means an individual or legal Entity licensing + LTX-2 in accordance with this Agreement and/or making use of LTX-2 + for whichever purpose and in any field of use, including usage of + LTX-2 in an end-use application - e.g. chatbot, translator, image + generator. - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. + 2. Grant of License. Subject to the terms and conditions of this + Agreement, you are granted a non-exclusive, worldwide, + non-transferable and royalty-free limited license under Licensor's + intellectual property or other rights owned by Licensor embodied + in LTX-2 to use, reproduce, prepare, distribute, publicly display, + publicly perform, sublicense, copy, create derivative works of, + and make modifications to LTX-2, for any purpose, subject to the + restrictions set forth in Attachment A; provided however, that + Entities with annual revenues of at least $10,000,000 (the + "Commercial Entities") are required to obtain a paid commercial + use license in order to use LTX-2 and Derivatives of LTX-2, + subject to the terms and provisions of a different license (the + "Commercial Use Agreement"), as will be provided by the Licensor. + Commercial Entities interested in such a commercial license are + required to contact Licensor. Any commercial use of LTX-2 or + Derivatives of LTX-2 by the Commercial Entities not in accordance + with this Agreement and/or the Commercial Use Agreement is strictly + prohibited and shall be deemed a material breach of this Agreement. + Such material breach will be subject, in addition to any license + fees owed to Licensor for the period such Commercial Entity used + LTX-2 (as will be determined by Licensor), to liquidated damages, + which will be paid to Licensor immediately upon demand, in an + amount equal to double the amount that would otherwise have been + paid by you for the relevant period of time. Such amount reflects + a reasonable estimation of the losses and administrative costs + incurred due to such breach. You agree and understand that this + remedy does not limit the Licensor's right to pursue other remedies + available at law or equity. - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. + 3. Distribution and Redistribution. You may host for third parties + remote access purposes (e.g. software-as-a-service), reproduce + and distribute copies of LTX-2 or Derivatives of LTX-2 thereof in + any medium, with or without modifications, provided that you meet + the following conditions: - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: + (a) Use-based restrictions as referenced in paragraph 4 and all + provisions of Attachment A MUST be included as an enforceable + provision by you in any type of legal agreement (e.g. a + license) governing the use and/or distribution of LTX-2 or + Derivatives of LTX-2, and you shall give notice to subsequent + users you distribute to, that LTX-2 or Derivatives of LTX-2 + are subject to paragraph 4 and Attachment A in their entirety, + including all use restrictions and acceptable use policies; - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and + (b) You must provide any third party recipients of LTX-2 or + Derivatives of LTX-2 a copy of this Agreement, including all + attachments and use policies. Any Derivative of LTX-2 (as + defined in Section 1, including but not limited to fine-tuned + weights, modified training code, models trained on Outputs, or + any other derivative) must be distributed exclusively under + the terms of this Agreement with a complete copy of this + license included; - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and + (c) You must cause any modified files to carry prominent notices + stating that you changed the files; - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and + (d) You must retain all copyright, patent, trademark, and + attribution notices excluding those notices that do not + pertain to any part of LTX-2, Derivatives of LTX-2. - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. + You may add your own copyright statement to your modifications and + may provide additional or different license terms and conditions - + respecting paragraph 3(a) - for use, reproduction, or distribution + of your modifications, or for any such Derivatives of LTX-2 as a + whole, provided your use, reproduction, and distribution of LTX-2 + otherwise complies with the conditions stated in this Agreement, + and you provide a complete copy of this Agreement with any such + use, reproduction and distribution of LTX-2 and any Derivatives + thereof. - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. + 4. Use-based restrictions. The restrictions set forth in Attachment A + are considered Use-based restrictions. Therefore, you cannot use + LTX-2 and the Derivatives of LTX-2 in violation of the specified + restricted uses. You may use LTX-2 subject to this Agreement, + including only for lawful purposes and in accordance with the + Agreement. "Use" may include creating any content with, fine-tuning, + updating, running, training, evaluating and/or re-parametrizing + LTX-2. You shall require all of your users who use LTX-2 or a + Derivative of LTX-2 to comply with the terms of this paragraph 4. - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. + 5. The Output You Generate. Except as set forth herein, Licensor + claims no rights in the Output you generate using LTX-2. You are + accountable for input you insert into LTX-2, the Output you + generate and its subsequent uses. No use of the Output can + contravene any provision as stated in the Agreement. - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. + 6. Updates and Runtime Restrictions. To the maximum extent permitted + by law, Licensor reserves the right to restrict (remotely or + otherwise) usage of LTX-2 in violation of this Agreement, update + LTX-2 through electronic means, or modify the Output of LTX-2 + based on updates. You shall undertake reasonable efforts to use + the latest version of LTX-2. Any use of the non-current version + of LTX-2 is done solely at your risk. - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, + 7. Export Controls and Sanctions Compliance. You acknowledge that + LTX-2, Derivatives of LTX-2 may be subject to export control laws + and regulations, including but not limited to the U.S. Export + Administration Regulations and sanctions programs administered by + the Office of Foreign Assets Control (OFAC). You represent and + warrant that you and any users of LTX-2 are not (i) located in, + organized under the laws of, or ordinarily resident in any country + or territory subject to comprehensive sanctions; (ii) identified + on any U.S. government restricted party list, including the + Specially Designated Nationals and Blocked Persons List; or + (iii) otherwise prohibited from receiving LTX-2 under applicable + law. You shall not export, re-export, or transfer LTX-2, directly + or indirectly, in violation of any applicable export control or + sanctions laws or regulations. You agree to comply with all + applicable trade control laws and shall indemnify and hold + Licensor harmless from any claims arising from your failure to + comply with such laws. + + 8. Trademarks and related. Nothing in this Agreement permits you to + make use of Licensor's trademarks, trade names, logos or to + otherwise suggest endorsement or misrepresent the relationship + between the parties; and any rights not expressly granted herein + are reserved by the Licensor. + + 9. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides LTX-2 on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. + implied, including, without limitation, any warranties or + conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS + FOR A PARTICULAR PURPOSE. You are solely responsible for + determining the appropriateness of using or redistributing LTX-2 + and Derivatives of LTX-2 and assume any risks associated with + your exercise of permissions under this Agreement. - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. + 10. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall Licensor be liable + to you for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as + a result of this Agreement or out of the use or inability to use + LTX-2 (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if Licensor has been + advised of the possibility of such damages. - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. + 11. Accepting Warranty or Additional Liability. While redistributing + LTX-2 and Derivatives of LTX-2, you may, provided you do not + violate the terms of this Agreement, choose to offer and charge + a fee for, acceptance of support, warranty, indemnity, or other + liability obligations. However, in accepting such obligations, + you may act only on your own behalf and on your sole + responsibility, not on behalf of Licensor, and only if you agree + to indemnify, defend, and hold Licensor harmless for any liability + incurred by, or claims asserted against Licensor, by reason of + your accepting any such warranty or additional liability. + + 12. Governing Law. This Agreement and all relations, disputes, claims + and other matters arising hereunder (including non-contractual + disputes or claims) will be governed exclusively by, and construed + exclusively in accordance with, the laws of the State of New York. + To the extent permitted by law, choice of laws rules and the + United Nations Convention on Contracts for the International Sale + of Goods will not apply. For the purposes of adjudicating any + action or proceeding to enforce the terms of this Agreement, you + hereby irrevocably consent to the exclusive jurisdiction of, and + venue in, the federal and state courts located in the County of + New York within the State of New York. The prevailing party in + any claim or dispute between the parties under this Agreement + will be entitled to reimbursement of its reasonable attorneys' + fees and costs. You hereby waive the right to a trial by jury, + to participate in a class or representative action (including in + arbitration), or to combine individual proceedings in court or + in arbitration without the consent of all parties. + + 13. Term and Termination. This Agreement is effective upon your + acceptance and continues until terminated. Licensor may terminate + this Agreement immediately upon written notice to you if you + breach any provision of this Agreement, including but not limited + to violations of the use restrictions in Attachment A or + unauthorized commercial use. Upon termination: (a) all rights + granted to you under this Agreement will immediately cease; + (b) you must immediately cease all use of LTX-2 and Derivatives + of LTX-2; (c) you must delete or destroy all copies of LTX-2 + and Derivatives of LTX-2 in your possession or control; and + (d) you must notify any third parties to whom you distributed + LTX-2 or Derivatives of LTX-2 of the termination. Sections 8-13, + and Section 15 shall survive termination of this Agreement. + Termination does not relieve you of any obligations incurred + prior to termination, including payment obligations under + Section 2. In addition, if You commence a lawsuit or other + proceedings (including a cross-claim or counterclaim in a lawsuit) + against Licensor or any person or entity alleging that LTX-2 or + any Output, or any portion of any of the foregoing, infringe any + intellectual property or other right owned or licensable by you, + then all licenses granted to you under this Agreement shall + terminate as of the date such lawsuit or other proceeding is filed. + + 14. Disputes and Arbitration. All disputes arising in connection with + this Agreement shall be finally settled by arbitration under the + Rules of Arbitration of the International Chamber of Commerce + ("ICC Rules"), by one (1) arbitrator appointed in accordance with + the ICC Rules. The seat of arbitration shall be New York, NY, USA, + and the proceedings shall be conducted in English. The arbitrator + shall be empowered to grant any relief that a court could grant. + Judgment on the arbitration award may be entered by any court + having jurisdiction thereof. Each party waives its right to a + trial by jury and to participate in any class or representative + action. + + 15. If any provision of this Agreement is held to be + invalid, illegal + or unenforceable, the remaining provisions shall be unaffected + thereby and remain valid as if such provision had not been set + forth herein. END OF TERMS AND CONDITIONS - APPENDIX: How to apply the Apache License to your work. + ATTACHMENT A: Use Restrictions - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. + When using the Outputs, LTX-2 and any Derivatives thereof, you + will comply with the Acceptable Use Policy. In addition, you + agree not to use the Outputs, LTX-2 or its Derivatives in any + of the following ways: - Copyright [yyyy] [name of copyright owner] + 1. In any way that violates any applicable national, federal, + state, local or international law or regulation; - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at + 2. For the purpose of exploiting, Harming or attempting to + exploit or Harm minors in any way; - http://www.apache.org/licenses/LICENSE-2.0 + 3. To generate or disseminate false information and/or content + with the purpose of Harming others; - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. + 4. To generate or disseminate personal identifiable information + that can be used to Harm an individual; + + 5. To generate or disseminate information and/or content (e.g. + images, code, posts, articles), and place the information + and/or content in any context (e.g. bot generating tweets) + without expressly and intelligibly disclaiming that the + information and/or content is machine generated; + + 6. To defame, disparage or otherwise harass others; + + 7. To impersonate or attempt to impersonate (e.g. deepfakes) + others without their consent; + + 8. For fully automated decision making that adversely impacts an + individual's legal rights or otherwise creates or modifies a + binding, enforceable obligation; + + 9. For any use intended to or which has the effect of + discriminating against or Harming individuals or groups based + on online or offline social behavior or known or predicted + personal or personality characteristics; + + 10. To exploit any of the vulnerabilities of a specific group of + persons based on their age, social, physical or mental + characteristics, in order to materially distort the behavior + of a person pertaining to that group in a manner that causes + or is likely to cause that person or another person physical + or psychological Harm; + + 11. For any use intended to or which has the effect of + discriminating against individuals or groups based on legally + protected characteristics or categories; + + 12. To provide medical advice and medical results interpretation; + + 13. To generate or disseminate information for the purpose to be + used for administration of justice, law enforcement, + immigration or asylum processes, such as predicting an + individual will commit fraud/crime commitment (e.g. by text + profiling, drawing causal relationships between assertions + made in documents, indiscriminate and arbitrarily-targeted use); + + 14. To generate and/or disseminate malware (including – but not + limited to – ransomware) or any other content to be used for + the purpose of harming electronic systems; + + 15. To engage in, promote, incite, or facilitate discrimination + or other unlawful or harmful conduct in the provision of + employment, employment benefits, credit, housing, or other + essential goods and services; + + 16. To engage in, promote, incite, or facilitate the harassment, + abuse, threatening, or bullying of individuals or groups of + individuals; + + 17. For military, warfare, nuclear industries or applications, + weapons development, or any use in connection with activities + that may cause death, personal injury, or severe physical or + environmental damage; + + 18. For commercial use only: To train, improve, or fine-tune any + other machine learning model, artificial intelligence system, + or competing model, except for Derivatives of LTX-2 as + expressly permitted under this Agreement; + + 19. To circumvent, disable, or interfere with any technical + limitations, safety features, content filters, or use + restrictions implemented in LTX-2 by Licensor; + + 20. To use LTX-2 or Derivatives of LTX-2 in any product, service, + or application that directly competes with Licensor's + commercial products or services, or is designed to replace or + substitute Licensor's offerings in the market, without + obtaining a separate commercial license from Licensor. diff --git a/README.md b/README.md index 04b14aa..8997786 100644 --- a/README.md +++ b/README.md @@ -1,162 +1,97 @@ # ComfyUI-LTXVideo -[![GitHub](https://img.shields.io/badge/LTXV-Repo-blue?logo=github)](https://github.com/Lightricks/LTX-Video) -[![Website](https://img.shields.io/badge/Website-LTXV-181717?logo=google-chrome)](https://www.lightricks.com/ltxv) -[![Model](https://img.shields.io/badge/HuggingFace-Model-orange?logo=huggingface)](https://huggingface.co/Lightricks/LTX-Video) -[![LTXV Trainer](https://img.shields.io/badge/LTXV-Trainer%20Repo-9146FF)](https://github.com/Lightricks/LTX-Video-Trainer) -[![Demo](https://img.shields.io/badge/Demo-Try%20Now-brightgreen?logo=vercel)](https://app.ltx.studio/ltx-video) -[![Paper](https://img.shields.io/badge/Paper-arXiv-B31B1B?logo=arxiv)](https://arxiv.org/abs/2501.00103) -[![Discord](https://img.shields.io/badge/Join-Discord-5865F2?logo=discord)](https://discord.gg/Mn8BRgUKKy) - -ComfyUI-LTXVideo is a collection of custom nodes for ComfyUI, designed to provide useful tools for working with the LTXV model. -The model itself is supported in the core ComfyUI [code](https://github.com/comfyanonymous/ComfyUI/tree/master/comfy/ldm/lightricks). -The main LTXVideo repository can be found [here](https://github.com/Lightricks/LTX-Video). - -## 🚀 New to using LTXV with ComfyUI? See our [Getting Started](https://github.com/Lightricks/ComfyUI-LTXVideo/blob/master/getting_started.md) page +[![GitHub](https://img.shields.io/badge/LTX-Repo-blue?logo=github)](https://github.com/Lightricks/LTX-2) +[![Website](https://img.shields.io/badge/Website-LTX-181717?logo=google-chrome)](https://ltx.io/model) +[![Model](https://img.shields.io/badge/HuggingFace-Model-orange?logo=huggingface)](https://huggingface.co/Lightricks/LTX-2) +[![LTXV Trainer](https://img.shields.io/badge/LTX-Trainer%20Repo-9146FF)](https://github.com/Lightricks/LTX-2/tree/main/packages/ltx-trainer) +[![Demo](https://img.shields.io/badge/Demo-Try%20Now-brightgreen?logo=vercel)](https://app.ltx.studio/ltx-2-playground/i2v) +[![Paper](https://img.shields.io/badge/Paper-arXiv-B31B1B?logo=arxiv)](https://videos.ltx.io/LTX-2/grants/LTX_2_Technical_Report_compressed.pdf) +[![Discord](https://img.shields.io/badge/Join-Discord-5865F2?logo=discord)](https://discord.gg/ltxplatform) -# ⭐ 16.07.2025 - LTXV 0.9.8 Release ⭐ +A collection of powerful custom nodes that extend ComfyUI's capabilities for the LTX-2 video generation model. -### 🚀 What's New -1. **LTXV 0.9.8 Model**
- The new model and its distilled variants offer improved prompt understanding and detail generation
- 👉 [13B Distilled model](https://huggingface.co/Lightricks/LTX-Video/blob/main/ltxv-13b-0.9.8-distilled.safetensors)
- 👉 [13B Distilled model 8-bit](https://huggingface.co/Lightricks/LTX-Video/blob/main/ltxv-13b-0.9.8-distilled-fp8.safetensors)
- 👉 [2B from 13B Distilled model](https://huggingface.co/Lightricks/LTX-Video/blob/main/ltxv-2b-0.9.8-distilled.safetensors)
- 👉 [2B from 13B Distilled model 8-bit](https://huggingface.co/Lightricks/LTX-Video/blob/main/ltxv-2b-0.9.8-distilled-fp8.safetensors)
- 👉 [IC Lora Detailer](https://huggingface.co/Lightricks/LTX-Video-ICLoRA-detailer-13b-0.9.8/resolve/main/ltxv-098-ic-lora-detailer-comfyui.safetensors)
+LTX-2 is built into ComfyUI core ([see it here](https://github.com/comfyanonymous/ComfyUI/tree/master/comfy/ldm/lightricks)), making it readily accessible to all ComfyUI users. This repository hosts additional nodes and workflows to help you get the most out of LTX-2's advanced features. + +**To learn more about LTX-2** See the [main LTX-2 repository](https://github.com/Lightricks/LTX-2) for model details and additional resources. -2. **Autoregressive Generation** - Introducing new ComfyUI nodes that enable virtually infinite video generation. The new **LTXV Looping Sampler** node allows generation of videos with arbitrary length and consistent motion. **ICLoRAs** are supported as well—by providing guidance from existing videos (e.g., depth, pose, or Canny edges), you can generate long videos in a video-to-video manner. - 👉 [Long Img2Video Generation Flow](#long-video-generation) - 👉 [Long Video2Video Generation Flow](#long-video-generation) +## Prerequisites +Before you begin using an LTX-2 workflow in ComfyUI, make sure you have: -3. **Detailer ICLoRA** - Introducing the **Detailer ICLoRA**, which enhances generated latents with fine details by applying a few additional diffusion steps. This results in significantly more detailed generations. - 👉 [Detailer ICLoRA Flow](#video-upscaling) - -# ⭐ 8.07.2025 - LTXVideo ICLora Release ⭐ -### 🚀 What's New in LTXVideo ICLoRA - -1. **Three New ICLoRA Models** - Introducing powerful in-context LoRA models that enable precise control over video generation: - - Depth Control: [LTX-Video-ICLoRA-depth-13b-0.9.7](https://huggingface.co/Lightricks/LTX-Video-ICLoRA-depth-13b-0.9.7) - - Pose Control: [LTX-Video-ICLoRA-pose-13b-0.9.7](https://huggingface.co/Lightricks/LTX-Video-ICLoRA-pose-13b-0.9.7) - - Edge/Canny Control: [LTX-Video-ICLoRA-canny-13b-0.9.7](https://huggingface.co/Lightricks/LTX-Video-ICLoRA-canny-13b-0.9.7) - -2. **New Node: 🅛🅣🅧 LTXV In Context Sampler** - A dedicated node for seamlessly integrating ICLoRA models into your workflow, enabling fine-grained control over video generation using depth maps, pose estimation, or edge detection. - -3. **Example Workflow** - Check out [example workflow](#iclora) for a complete example demonstrating how to use the ICLoRA models effectively. - -4. **Custom ICLoRA Training** - We've released a trainer that allows you to create your own specialized ICLoRA models for custom control signals. Check out the [trainer repository](https://github.com/Lightricks/LTX-Video-Trainer) to get started. +* ComfyUI installed (Download here](https://www.comfy.org/download) +* CUDA-compatible GPU with 32GB+ VRAM +* 100GB+ free disk space for models and cache -# ⭐ 9.06.2025 – LTXVideo VAE Patcher, Mask manipulation and Q8 LoRA loader nodes. ⭐ -1. **LTXV Patcher VAE**
The new node improves VAE decoding performance by reducing runtime and cutting memory consumption by up to 50%. This allows generation of higher-resolution outputs on consumer-grade GPUs with limited VRAM, without needing to load the VAE partially or decode in tiles.
-⚠️ On *Windows*, you may need to add the paths to the *MSVC compiler (cl.exe)* and *ninja.exe* to your system environment PATH variable.
-2. **LTXV Preprocess Masks**
-Preprocesses masks for use with the LTXVideo model's latent masking. It validates mask dimensions based on VAE downscaling, supports optional inversion, handles the first frame mask separately, combines temporal masks via max pooling, applies morphological operations to grow or shrink masks, and clamps values to ensure correct opacity. The result is a set of masks ready for latent-space masking. -3. **LTXV Q8 Lora Model Loader**
-Applying LoRA to an FP8-quantized model requires special handling to preserve output quality. It's crucial to apply LoRA weights using the correct precision, as the current LoRA implementation in ComfyUI does so in a non-optimal way. This node addresses that limitation by ensuring LoRA weights are applied properly, resulting in significantly better quality. If you're working with an FP8 LTXV model, using this node guarantees that LoRA behaves as expected and delivers the intended effect. +## Quick Start 🚀 + +We recommend using the LTX-2 workflows available in Comfy Manager. + +1. Open ComfyUI +2. Click the Manager button (or press Ctrl+M) +3. Select Install Custom Nodes +4. Search for “LTXVideo” +5. Click Install +6. Wait for installation to complete +7. Restart ComfyUI + +The nodes will appear in your node menu under the “LTXVideo” category. Required models will be downloaded on first use. -# ⭐ 14.05.2025 – LTXVideo 13B 0.9.7 Distilled Release ⭐ +## Example Workflows -### 🚀 What's New in LTXVideo 13B 0.9.7 Distilled -1. **LTXV 13B Distilled 🥳 0.9.7**
- Delivers cinematic-quality videos at fraction of steps needed to run full model. Only 4 or 8 steps needed for single generation.
- 👉 [Download here](https://huggingface.co/Lightricks/LTX-Video/blob/main/ltxv-13b-0.9.7-distilled.safetensors) +The ComfyUI-LTXVideo installation includes several example workflows. +You can see them all at: +''' +ComfyUI/custom_nodes/ComfyUI-LTXVideo/example_workflows/ +''' -2. **LTXV 13B Distilled Quantized 0.9.7**
- Offers reduced memory requirements and even faster inference speeds. - Ideal for consumer-grade GPUs (e.g., NVIDIA 4090, 5090).
- ***Important:*** In order to get the best performance with the quantized version please install [q8_kernels](https://github.com/Lightricks/LTXVideo-Q8-Kernels) package and use dedicated flow below.
- 👉 [Download here](https://huggingface.co/Lightricks/LTX-Video/blob/main/ltxv-13b-0.9.7-distilled-fp8.safetensors)
- 🧩 Example ComfyUI flow available in the [Example Workflows](#example-workflows) section. +* [`Text to video full model`](./example_workflows/LTX-2_T2V_Full_wLora.json) +* [`Text to video distilled model (Fast)`](./example_workflows/LTX-2_T2V_Distilled_wLora.json) +* [`Image to video full model`](./example_workflows/LTX-2_I2V_Full_wLora.json) +* [`Image to video distilled model (Fast)`](./example_workflows/LTX-2_I2V_Distilled_wLora.json) +* [`Video to video detailer`](./example_workflows/LTX-2_V2V_Detailer.json) +* [`IC-LoRA distilled model (depth + human pose + edges)`](./example_workflows/LTX-2_ICLoRA_All_Distilled.json) -3. **Updated LTV 13B Quantized version**
-From now on all our 8bit quantized models are running natively in ComfyUI, still with our Q8 patcher node you will get the best inference speed.
-👉 [Download here](https://huggingface.co/Lightricks/LTX-Video/blob/main/ltxv-13b-0.9.7-dev-fp8.safetensors)
-# ⭐ 06.05.2025 – LTXVideo 13B 0.9.7 Release ⭐ +## Required Models -### 🚀 What's New in LTXVideo 13B 0.9.7 +Download the following models: -1. **LTXV 13B 0.9.7** - Delivers cinematic-quality videos at unprecedented speed.
- 👉 [Download here](https://huggingface.co/Lightricks/LTX-Video/blob/main/ltxv-13b-0.9.7-dev.safetensors) +**LTX-2 Model Checkpoint** (choose and download one of the following) + * [`ltx-2-19b-dev-fp8.safetensors`](https://huggingface.co/Lightricks/LTX-2/blob/main/ltx-2-19b-dev-fp8.safetensors) + * [`ltx-2-19b-distilled-fp8.safetensors`](https://huggingface.co/Lightricks/LTX-2/blob/main/ltx-2-19b-distilled-fp8.safetensors) + * [`ltx-2-19b-dev.safetensors`](https://huggingface.co/Lightricks/LTX-2/blob/main/ltx-2-19b-dev.safetensors) + * [`ltx-2-19b-distilled.safetensors`](https://huggingface.co/Lightricks/LTX-2/blob/main/ltx-2-19b-distilled.safetensors) -2. **LTXV 13B Quantized 0.9.7** - Offers reduced memory requirements and even faster inference speeds. - Ideal for consumer-grade GPUs (e.g., NVIDIA 4090, 5090). - Delivers outstanding quality with improved performance.
- ***Important:*** In order to run the quantized version please install [LTXVideo-Q8-Kernels](https://github.com/Lightricks/LTXVideo-Q8-Kernels) package and use dedicated flow below. Loading the model in Comfy with LoadCheckpoint node won't work.
- 👉 [Download here](https://huggingface.co/Lightricks/LTX-Video/blob/main/ltxv-13b-0.9.7-dev-fp8.safetensors)
- 🧩 Example ComfyUI flow available in the [Example Workflows](#example-workflows) section. +**Spatial Upsampler** - Required for current two-stage pipeline implementations in this repository + * [`ltx-2-spatial-upsampler-x2-1.0.safetensors`](https://huggingface.co/Lightricks/LTX-2/blob/main/ltx-2-spatial-upsampler-x2-1.0.safetensors) -3. **Latent Upscaling Models** - Enables inference across multiple scales by upscaling latent tensors without decoding/encoding. - Multiscale inference delivers high-quality results in a fraction of the time compared to similar models.
- ***Important:*** Make sure you put the models below in **models/upscale_models** folder.
- 👉 Spatial upscaling: [Download here](https://huggingface.co/Lightricks/LTX-Video/blob/main/ltxv-spatial-upscaler-0.9.7.safetensors).
- 👉 Temporal upscaling: [Download here](https://huggingface.co/Lightricks/LTX-Video/blob/main/ltxv-temporal-upscaler-0.9.7.safetensors).
- 🧩 Example ComfyUI flow available in the [Example Workflows](#example-workflows) section. +**Temporal Upsampler** - Required for current two-stage pipeline implementations in this repository + * [`ltx-2-temporal-upsampler-x2-1.0.safetensors`](https://huggingface.co/Lightricks/LTX-2/blob/main/ltx-2-temporal-upsampler-x2-1.0.safetensors) + +**Distilled LoRA** - Required for current two-stage pipeline implementations in this repository (except DistilledPipeline and ICLoraPipeline) + * [`ltx-2-19b-distilled-lora-384.safetensors`](https://huggingface.co/Lightricks/LTX-2/blob/main/ltx-2-19b-distilled-lora-384.safetensors) + +**Gemma Text Encoder** (download all assets from the repository) + * [`Gemma 3`](https://huggingface.co/google/gemma-3-12b-it-qat-q4_0-unquantized/blob/main) + +**LoRAs** + * [`ltx-2-19b-ic-lora-canny-control.safetensors`](https://huggingface.co/Lightricks/LTX-2-19b-IC-LoRA-Canny-Control/blob/main/ltx-2-19b-ic-lora-canny-control.safetensors) + * [`ltx-2-19b-ic-lora-depth-control.safetensors`](https://huggingface.co/Lightricks/LTX-2-19b-IC-LoRA-Depth-Control/blob/main/ltx-2-19b-ic-lora-depth-control.safetensors) + * [`ltx-2-19b-ic-lora-detailer.safetensors`](https://huggingface.co/Lightricks/LTX-2-19b-IC-LoRA-Detailer/blob/main/ltx-2-19b-ic-lora-detailer.safetensors) + * [`ltx-2-19b-ic-lora-pose-control.safetensors`](https://huggingface.co/Lightricks/LTX-2-19b-IC-LoRA-Pose-Control/blob/main/ltx-2-19b-ic-lora-pose-control.safetensors) + * [`ltx-2-19b-lora-camera-control-dolly-in.safetensors`](https://huggingface.co/Lightricks/LTX-2-19b-LoRA-Camera-Control-Dolly-In/blob/main/ltx-2-19b-lora-camera-control-dolly-in.safetensors) + * [`ltx-2-19b-lora-camera-control-dolly-left.safetensors`](https://huggingface.co/Lightricks/LTX-2-19b-LoRA-Camera-Control-Dolly-Left/blob/main/ltx-2-19b-lora-camera-control-dolly-left.safetensors) + * [`ltx-2-19b-lora-camera-control-dolly-out.safetensors`](https://huggingface.co/Lightricks/LTX-2-19b-LoRA-Camera-Control-Dolly-Out/blob/main/ltx-2-19b-lora-camera-control-dolly-out.safetensors) + * [`ltx-2-19b-lora-camera-control-dolly-right.safetensors`](https://huggingface.co/Lightricks/LTX-2-19b-LoRA-Camera-Control-Dolly-Right/blob/main/ltx-2-19b-lora-camera-control-dolly-right.safetensors) + * [`ltx-2-19b-lora-camera-control-jib-down.safetensors`](https://huggingface.co/Lightricks/LTX-2-19b-LoRA-Camera-Control-Jib-Down/blob/main/ltx-2-19b-lora-camera-control-jib-down.safetensors) + * [`ltx-2-19b-lora-camera-control-jib-up.safetensors`](https://huggingface.co/Lightricks/LTX-2-19b-LoRA-Camera-Control-Jib-Up/blob/main/ltx-2-19b-lora-camera-control-jib-up.safetensors) + * [`ltx-2-19b-lora-camera-control-static.safetensors`](https://huggingface.co/Lightricks/LTX-2-19b-LoRA-Camera-Control-Static/blob/main/ltx-2-19b-lora-camera-control-static.safetensors) -### Technical Updates - -1. ***New simplified flows and nodes***
-1.1. Simplified image to video: [Download here](example_workflows/ltxv-13b-i2v-base.json).
-1.2. Simplified image to video with extension: [Download here](example_workflows/ltxv-13b-i2v-extend.json).
-1.3. Simplified image to video with keyframes: [Download here](example_workflows/ltxv-13b-i2v-keyframes.json).
- -# 17.04.2025 ⭐ LTXVideo 0.9.6 Release ⭐ - -### LTXVideo 0.9.6 introduces: - -1. LTXV 0.9.6 – higher quality, faster, great for final output. Download from [here](https://huggingface.co/Lightricks/LTX-Video/resolve/main/ltxv-2b-0.9.6-dev-04-25.safetensors). -2. LTXV 0.9.6 Distilled – our fastest model yet (only 8 steps for generation), lighter, great for rapid iteration. Download from [here](https://huggingface.co/Lightricks/LTX-Video/resolve/main/ltxv-2b-0.9.6-distilled-04-25.safetensors). - -### Technical Updates - -We introduce the __STGGuiderAdvanced__ node, which applies different CFG and STG parameters at various diffusion steps. All flows have been updated to use this node and are designed to provide optimal parameters for the best quality. -See the [Example Workflows](#example-workflows) section. - -# 5.03.2025 ⭐ LTXVideo 0.9.5 Release ⭐ - -### LTXVideo 0.9.5 introduces: - -1. Improved quality with reduced artifacts. -2. Support for higher resolution and longer sequences. -3. Frame and sequence conditioning (beyond the first frame). -4. Enhanced prompt understanding. -5. Commercial license availability. - -### Technical Updates - -Since LTXVideo is now fully supported in the ComfyUI core, we have removed the custom model implementation. Instead, we provide updated workflows to showcase the new features: - -1. **Frame Conditioning** – Enables interpolation between given frames. -2. **Sequence Conditioning** – Allows motion interpolation from a given frame sequence, enabling video extension from the beginning, end, or middle of the original video. -3. **Prompt Enhancer** – A new node that helps generate prompts optimized for the best model performance. - See the [Example Workflows](#example-workflows) section for more details. - -### LTXTricks Update - -The LTXTricks code has been integrated into this repository (in the `/tricks` folder) and will be maintained here. The original [repo](https://github.com/logtd/ComfyUI-LTXTricks) is no longer maintained, but all existing workflows should continue to function as expected. - -## 22.12.2024 - -Fixed a bug which caused the model to produce artifacts on short negative prompts when using a native CLIP Loader node. - -## 19.12.2024 ⭐ Update ⭐ - -1. Improved model - removes "strobing texture" artifacts and generates better motion. Download from [here](https://huggingface.co/Lightricks/LTX-Video/resolve/main/ltx-video-2b-v0.9.1.safetensors). -2. STG support -3. Integrated image degradation system for improved motion generation. -4. Additional initial latent optional input to chain latents for high res generation. -5. Image captioning in image to video [flow](example_workflows/ltxvideo-i2v.json). +## Advanced Techniques +### Low VRAM +* For systems with low VRAM you can use the model loader nodes from [low_vram_loaders.py](./low_vram_loaders.py). Those nodes ensure the correct order of execution and perform the model offloading such that generation fits in 32 GB VRAM. +* For complete information about using LTX-2 models, workflows, and nodes in ComfyUI, please visit our [Open Source documentation](https://docs.ltx.video/open-source-model/integration-tools/comfy-ui). diff --git a/__init__.py b/__init__.py index d77e324..03e8411 100644 --- a/__init__.py +++ b/__init__.py @@ -1,16 +1,33 @@ from .decoder_noise import DecoderNoise +from .dynamic_conditioning import DynamicConditioning from .easy_samplers import ( LinearOverlapLatentTransition, LTXVBaseSampler, LTXVExtendSampler, LTXVInContextSampler, ) -from .film_grain import LTXVFilmGrain +from .gemma_encoder import LTXVGemmaCLIPModelLoader, LTXVGemmaEnhancePrompt +from .gemma_encoder_mgpu_loader import LTXVGemmaCLIPModelLoaderMGPU from .guide import LTXVAddGuideAdvanced -from .latent_adain import LTXVAdainLatent -from .latent_upsampler import LTXVLatentUpsampler -from .latents import LTXVSelectLatents, LTXVSetVideoLatentNoiseMasks +from .guiders import GuiderParametersNode, MultimodalGuiderNode +from .latent_norm import ( + LTXVAdainLatent, + LTXVPerStepAdainPatcher, + LTXVPerStepStatNormPatcher, + LTXVStatNormLatent, +) +from .latents import ( + LTXVAddLatentGuide, + LTXVImgToVideoConditionOnly, + LTXVSelectLatents, + LTXVSetVideoLatentNoiseMasks, +) from .looping_sampler import LTXVLoopingSampler, MultiPromptProvider +from .low_vram_loaders import ( + LowVRAMAudioVAELoader, + LowVRAMCheckpointLoader, + LowVRAMLatentUpscaleModelLoader, +) from .masks import LTXVPreprocessMasks from .nodes_registry import NODE_CLASS_MAPPINGS as RUNTIME_NODE_CLASS_MAPPINGS from .nodes_registry import ( @@ -30,21 +47,22 @@ from .tiled_vae_decode import LTXVTiledVAEDecode from .tricks import NODE_CLASS_MAPPINGS as TRICKS_NODE_CLASS_MAPPINGS from .tricks import NODE_DISPLAY_NAME_MAPPINGS as TRICKS_NODE_DISPLAY_NAME_MAPPINGS from .utiltily_nodes import ImageToCPU -from .vae_patcher.vae_patcher import LTXVPatcherVAE +from .vae_patcher import LTXVPatcherVAE # Static node mappings, required for ComfyUI-Manager mapping to work NODE_CLASS_MAPPINGS = { "Set VAE Decoder Noise": DecoderNoise, "LTXVLinearOverlapLatentTransition": LinearOverlapLatentTransition, "LTXVAddGuideAdvanced": LTXVAddGuideAdvanced, + "LTXVAddLatentGuide": LTXVAddLatentGuide, "LTXVAdainLatent": LTXVAdainLatent, + "LTXVImgToVideoConditionOnly": LTXVImgToVideoConditionOnly, + "LTXVPerStepAdainPatcher": LTXVPerStepAdainPatcher, "LTXVApplySTG": LTXVApplySTG, "LTXVBaseSampler": LTXVBaseSampler, "LTXVInContextSampler": LTXVInContextSampler, "LTXVExtendSampler": LTXVExtendSampler, - "LTXVFilmGrain": LTXVFilmGrain, "LTXVPreprocessMasks": LTXVPreprocessMasks, - "LTXVLatentUpsampler": LTXVLatentUpsampler, "LTXVPatcherVAE": LTXVPatcherVAE, "LTXVPromptEnhancer": LTXVPromptEnhancer, "LTXVPromptEnhancerLoader": LTXVPromptEnhancerLoader, @@ -55,11 +73,22 @@ NODE_CLASS_MAPPINGS = { "LTXVTiledSampler": LTXVTiledSampler, "LTXVLoopingSampler": LTXVLoopingSampler, "LTXVTiledVAEDecode": LTXVTiledVAEDecode, + "MultimodalGuider": MultimodalGuiderNode, + "GuiderParameters": GuiderParametersNode, "STGAdvancedPresets": STGAdvancedPresetsNode, "STGGuiderAdvanced": STGGuiderAdvancedNode, "STGGuiderNode": STGGuiderNode, "LTXVMultiPromptProvider": MultiPromptProvider, "ImageToCPU": ImageToCPU, + "LTXVStatNormLatent": LTXVStatNormLatent, + "LTXVPerStepStatNormPatcher": LTXVPerStepStatNormPatcher, + "LTXVGemmaCLIPModelLoader": LTXVGemmaCLIPModelLoader, + "LTXVGemmaCLIPModelLoaderMGPU": LTXVGemmaCLIPModelLoaderMGPU, + "LTXVGemmaEnhancePrompt": LTXVGemmaEnhancePrompt, + "DynamicConditioning": DynamicConditioning, + "LowVRAMCheckpointLoader": LowVRAMCheckpointLoader, + "LowVRAMAudioVAELoader": LowVRAMAudioVAELoader, + "LowVRAMLatentUpscaleModelLoader": LowVRAMLatentUpscaleModelLoader, } # Consistent display names between static and dynamic node mappings in nodes_registry.py, diff --git a/dynamic_conditioning.py b/dynamic_conditioning.py new file mode 100644 index 0000000..6b598d0 --- /dev/null +++ b/dynamic_conditioning.py @@ -0,0 +1,57 @@ +import torch + +from .nodes_registry import comfy_node + + +@comfy_node(name="DynamicConditioning") +class DynamicConditioning: + @classmethod + def INPUT_TYPES(s): + return { + "required": { + "model": ("MODEL",), + "power": ("FLOAT", {"default": 1.3, "min": 1, "max": 2, "step": 0.01}), + "only_first_frame": ("BOOLEAN", {"default": True}), + } + } + + RETURN_TYPES = ("MODEL",) + FUNCTION = "apply" + CATEGORY = "lightricks/LTXV" + INIT = False + + def apply(self, model, power, only_first_frame): + self.only_first_frame = only_first_frame + self.power = power + model = model.clone() + model.set_model_denoise_mask_function(self.forward) + return (model,) + + def find_step(self, sigma: torch.Tensor, step_sigmas: torch.Tensor): + for i, step_sigma in enumerate(step_sigmas): + if step_sigma <= sigma: + return i + return len(step_sigmas) - 1 + + def forward( + self, sigma: torch.Tensor, denoise_mask: torch.Tensor, extra_options: dict + ): + model = extra_options["model"] + step_sigmas = extra_options["sigmas"] + step = self.find_step(sigma, step_sigmas) + # In order to apply power multiple times, this is the same as applying power number of times equal to step + power = self.power**step + denoise_mask = denoise_mask.clone() + if self.only_first_frame: + num_channels = model.model_patcher.model.diffusion_model.in_channels + denoise_mask[:, :num_channels, :1] **= power + else: + denoise_mask **= power + # make sure to update the denoise mask in the model, to get correct timestep values for all tokens + for k in model.conds: + if "positive" in k or "negative" in k: + for cond in model.conds[k]: + if "model_conds" in cond and "denoise_mask" in cond["model_conds"]: + cond["model_conds"]["denoise_mask"].cond = denoise_mask + # print(f"DynamicConditioning: power: {power}, step: {step}, sigma: {sigma}, step_sigmas: {step_sigmas}") + return denoise_mask diff --git a/easy_samplers.py b/easy_samplers.py index b42e905..84d7fd0 100644 --- a/easy_samplers.py +++ b/easy_samplers.py @@ -4,16 +4,30 @@ import comfy import comfy_extras import nodes import torch -from comfy_extras.nodes_custom_sampler import SamplerCustomAdvanced +from comfy_extras.nodes_custom_sampler import SamplerCustomAdvanced, SplitSigmas from comfy_extras.nodes_lt import EmptyLTXVLatentVideo, LTXVAddGuide, LTXVCropGuides -from nodes import VAEEncode from .guide import blur_internal -from .latent_adain import LTXVAdainLatent +from .latent_norm import LTXVAdainLatent from .latents import LTXVAddLatentGuide, LTXVSelectLatents from .nodes_registry import comfy_node +def _get_raw_conds_from_guider(guider): + if not hasattr(guider, "raw_conds"): + if "negative" not in guider.original_conds: + # for BasicGuider + raise ValueError( + "Guider does not have negative conds, cannot use it as a guider." + ) + raw_pos = guider.original_conds["positive"] + positive = [[raw_pos[0]["cross_attn"], copy.deepcopy(raw_pos[0])]] + raw_neg = guider.original_conds["negative"] + negative = [[raw_neg[0]["cross_attn"], copy.deepcopy(raw_neg[0])]] + guider.raw_conds = (positive, negative) + return guider.raw_conds + + @comfy_node( name="LTXVBaseSampler", ) @@ -104,7 +118,7 @@ class LTXVBaseSampler: } RETURN_TYPES = ("LATENT", "CONDITIONING", "CONDITIONING") - RETURN_NAMES = ("denoised_output", "positive", "negative") + RETURN_NAMES = ("denoised", "positive", "negative") FUNCTION = "sample" CATEGORY = "sampling" @@ -129,7 +143,12 @@ class LTXVBaseSampler: optional_negative_index=-1, optional_negative_index_strength=1.0, optional_initialization_latents=None, + guiding_start_step=0, + guiding_end_step=1000, ): + guider = copy.copy(guider) + guider.original_conds = copy.deepcopy(guider.original_conds) + positive, negative = _get_raw_conds_from_guider(guider) if optional_cond_images is not None: optional_cond_images = ( @@ -143,7 +162,7 @@ class LTXVBaseSampler: .movedim(1, -1) .clamp(0, 1) ) - optional_cond_images = comfy_extras.nodes_lt.LTXVPreprocess().preprocess( + optional_cond_images = comfy_extras.nodes_lt.LTXVPreprocess.execute( optional_cond_images, crf )[0] for i in range(optional_cond_images.shape[0]): @@ -158,52 +177,60 @@ class LTXVBaseSampler: optional_cond_images ), "Number of optional cond images must match number of optional cond indices" - try: - positive, negative = guider.raw_conds - except AttributeError: - raise ValueError( - "Guider does not have raw conds, cannot use it as a guider. " - "Please use STGGuiderAdvanced." - ) - if optional_initialization_latents is None: - (latents,) = EmptyLTXVLatentVideo().generate(width, height, num_frames, 1) + (latents,) = EmptyLTXVLatentVideo().execute(width, height, num_frames, 1) else: latents = optional_initialization_latents - if ( - optional_cond_images is not None - and optional_cond_images.shape[0] == 1 - and optional_cond_indices[0] == 0 - ): - pixels = comfy.utils.common_upscale( - optional_cond_images[0].unsqueeze(0).movedim(-1, 1), - width, - height, - "bilinear", - "center", - ).movedim(1, -1) - encode_pixels = pixels[:, :, :, :3] + if optional_cond_images is not None and 0 in optional_cond_indices: + # apply classical i2v conditioning on the first frame + idx_0 = optional_cond_indices.index(0) + encode_pixels = optional_cond_images[idx_0 : idx_0 + 1, :, :, :3] t = vae.encode(encode_pixels) latents["samples"][:, :, : t.shape[2]] = t - conditioning_latent_frames_mask = torch.ones( - (1, 1, latents["samples"].shape[2], 1, 1), - dtype=torch.float32, - device=latents["samples"].device, - ) - conditioning_latent_frames_mask[:, :, : t.shape[2]] = 1.0 - strength - latents["noise_mask"] = conditioning_latent_frames_mask + if "noise_mask" not in latents: + conditioning_latent_frames_mask = torch.ones( + (1, 1, latents["samples"].shape[2], 1, 1), + dtype=torch.float32, + device=latents["samples"].device, + ) + conditioning_latent_frames_mask[:, :, : t.shape[2]] = 1.0 - strength + latents["noise_mask"] = conditioning_latent_frames_mask + else: + latents["noise_mask"][:, :, : t.shape[2]] = 1.0 - strength + conditioning_latent_frames_mask = latents["noise_mask"] + else: + conditioning_latent_frames_mask = None - elif optional_cond_images is not None: + high_sigmas, rest_sigmas = SplitSigmas().get_sigmas(sigmas, guiding_start_step) + middle_sigmas, low_sigmas = SplitSigmas().get_sigmas( + rest_sigmas, guiding_end_step - guiding_start_step + ) + + if len(high_sigmas) > 1: + print("Denoising with no conditioning on sigmas: ", high_sigmas) + (_, new_latents) = SamplerCustomAdvanced().sample( + noise=noise, + guider=guider, + sampler=sampler, + sigmas=high_sigmas, + latent_image=latents, + ) + + if optional_cond_images is not None: + # add conditioning on keyframes with index > 0 for cond_image, cond_idx in zip( optional_cond_images, optional_cond_indices ): + if cond_idx == 0: + # 0 is handled by classical i2v conditioning + continue ( positive, negative, latents, - ) = LTXVAddGuide().generate( + ) = LTXVAddGuide.execute( positive=positive, negative=negative, vae=vae, @@ -228,25 +255,40 @@ class LTXVBaseSampler: strength=optional_negative_index_strength, ) - guider = copy.copy(guider) guider.set_conds(positive, negative) # Denoise the latent video + print("Denoising with conditioning on sigmas: ", middle_sigmas) (output_latents, denoised_output_latents) = SamplerCustomAdvanced().sample( noise=noise, guider=guider, sampler=sampler, - sigmas=sigmas, + sigmas=middle_sigmas, latent_image=latents, ) # Clean up guides if image conditioning was used - positive, negative, denoised_output_latents = LTXVCropGuides().crop( + positive, negative, denoised_output_latents = LTXVCropGuides.execute( positive=positive, negative=negative, latent=denoised_output_latents, ) + denoised_output_latents["noise_mask"] = conditioning_latent_frames_mask + + if len(low_sigmas) > 1: + print( + "Denoising with no conditioning but with classical i2v noise mask on sigmas: ", + low_sigmas, + ) + (_, denoised_output_latents) = SamplerCustomAdvanced().sample( + noise=noise, + guider=guider, + sampler=sampler, + sigmas=low_sigmas, + latent_image=denoised_output_latents, + ) + return (denoised_output_latents, positive, negative) @@ -254,7 +296,6 @@ class LTXVBaseSampler: name="LTXVExtendSampler", ) class LTXVExtendSampler: - @classmethod def INPUT_TYPES(s): return { @@ -307,11 +348,25 @@ class LTXVExtendSampler: "LATENT", {"tooltip": "Optional latents to guide the sampling."}, ), + "optional_cond_images": ( + "IMAGE", + {"tooltip": "The images to use for conditioning the sampling."}, + ), + "optional_cond_indices": ("STRING",), + "cond_image_strength": ( + "FLOAT", + { + "default": 1.0, + "min": 0.0, + "max": 1.0, + "tooltip": "The strength of the conditioning on the images.", + }, + ), }, } RETURN_TYPES = ("LATENT", "CONDITIONING", "CONDITIONING") - RETURN_NAMES = ("denoised_output", "positive", "negative") + RETURN_NAMES = ("denoised_video", "positive", "negative") FUNCTION = "sample" CATEGORY = "sampling" @@ -328,22 +383,31 @@ class LTXVExtendSampler: noise, strength=0.5, guiding_strength=1.0, + cond_image_strength=1.0, optional_guiding_latents=None, + optional_cond_images=None, + optional_cond_indices=None, optional_reference_latents=None, optional_initialization_latents=None, adain_factor=0.0, optional_negative_index_latents=None, optional_negative_index=-1, optional_negative_index_strength=1.0, + guiding_start_step=0, + guiding_end_step=1000, + normalize_per_frame=False, ): + guider = copy.copy(guider) + guider.original_conds = copy.deepcopy(guider.original_conds) - try: - positive, negative = guider.raw_conds - except AttributeError: - raise ValueError( - "Guider does not have raw conds, cannot use it as a guider. " - "Please use STGGuiderAdvanced." - ) + if optional_cond_indices is not None and optional_cond_images is not None: + optional_cond_indices = optional_cond_indices.split(",") + optional_cond_indices = [int(i) for i in optional_cond_indices] + assert len(optional_cond_indices) == len( + optional_cond_images + ), "Number of optional cond images must match number of optional cond indices" + + positive, negative = _get_raw_conds_from_guider(guider) samples = latents["samples"] batch, channels, frames, height, width = samples.shape @@ -362,7 +426,7 @@ class LTXVExtendSampler: ) if optional_initialization_latents is None: - new_latents = EmptyLTXVLatentVideo().generate( + new_latents = EmptyLTXVLatentVideo.execute( width=width * width_scale_factor, height=height * height_scale_factor, length=overlap * time_scale_factor + num_new_frames, @@ -389,6 +453,46 @@ class LTXVExtendSampler: strength=strength, ) + high_sigmas, rest_sigmas = SplitSigmas().get_sigmas(sigmas, guiding_start_step) + middle_sigmas, low_sigmas = SplitSigmas().get_sigmas( + rest_sigmas, guiding_end_step - guiding_start_step + ) + + if optional_cond_images is not None: + print("Adding conditioning on keyframes") + for cond_image, cond_idx in zip( + optional_cond_images, optional_cond_indices + ): + if optional_guiding_latents is not None and cond_idx % 8 == 1: + raise ValueError( + f"Conditioning image index {cond_idx} (relative to the in the temporal chunk) is a multiple of 8 + 1," + "and guiding latents are used. Please provide other conditioning image indices" + ) + ( + positive, + negative, + new_latents, + ) = LTXVAddGuide.execute( + positive=positive, + negative=negative, + vae=vae, + latent=new_latents, + image=cond_image.unsqueeze(0), + frame_idx=cond_idx, + strength=cond_image_strength, + ) + + if len(high_sigmas) > 1: + guider.set_conds(positive, negative) + print("Denoising with overlap conditioning only on sigmas: ", high_sigmas) + (_, new_latents) = SamplerCustomAdvanced().sample( + noise=noise, + guider=guider, + sampler=sampler, + sigmas=high_sigmas, + latent_image=new_latents, + ) + if optional_guiding_latents is not None: optional_guiding_latents = LTXVSelectLatents().select_latents( optional_guiding_latents, overlap, -1 @@ -406,6 +510,7 @@ class LTXVExtendSampler: latent_idx=last_overlap_latents["samples"].shape[2], strength=guiding_strength, ) + if optional_negative_index_latents is not None: ( positive, @@ -421,37 +526,94 @@ class LTXVExtendSampler: strength=optional_negative_index_strength, ) - guider = copy.copy(guider) guider.set_conds(positive, negative) # Denoise the latent video + print("Denoising with full conditioning on sigmas: ", middle_sigmas) (output_latents, denoised_output_latents) = SamplerCustomAdvanced().sample( noise=noise, guider=guider, sampler=sampler, - sigmas=sigmas, + sigmas=middle_sigmas, latent_image=new_latents, ) - # Clean up guides if image conditioning was used - positive, negative, denoised_output_latents = LTXVCropGuides().crop( + positive, negative, denoised_output_latents = LTXVCropGuides.execute( positive=positive, negative=negative, latent=denoised_output_latents, ) + if len(low_sigmas) > 1: + ( + positive, + negative, + denoised_output_latents, + ) = LTXVAddLatentGuide().generate( + vae=vae, + positive=positive, + negative=negative, + latent=denoised_output_latents, + guiding_latent=last_overlap_latents, + latent_idx=0, + strength=strength, + ) + + if optional_cond_images is not None: + print("Adding conditioning on keyframes") + for cond_image, cond_idx in zip( + optional_cond_images, optional_cond_indices + ): + if optional_guiding_latents is not None and cond_idx % 8 == 1: + raise ValueError( + f"Conditioning image index {cond_idx} (relative to the in the temporal chunk) is a multiple of 8 + 1," + "and guiding latents are used. Please provide other conditioning image indices" + ) + ( + positive, + negative, + denoised_output_latents, + ) = LTXVAddGuide.execute( + positive=positive, + negative=negative, + vae=vae, + latent=denoised_output_latents, + image=cond_image.unsqueeze(0), + frame_idx=cond_idx, + strength=cond_image_strength, + ) + + guider.set_conds(positive, negative) + print( + "Denoising with overlap + keyframes conditioning only on sigmas: ", + low_sigmas, + ) + (_, denoised_output_latents) = SamplerCustomAdvanced().sample( + noise=noise, + guider=guider, + sampler=sampler, + sigmas=low_sigmas, + latent_image=denoised_output_latents, + ) + positive, negative, denoised_output_latents = LTXVCropGuides.execute( + positive=positive, + negative=negative, + latent=denoised_output_latents, + ) + + if optional_reference_latents is not None: + denoised_output_latents = LTXVAdainLatent().batch_normalize( + latents=denoised_output_latents, + reference=optional_reference_latents, + factor=adain_factor, + per_frame=normalize_per_frame, + )[0] + # drop first output latent as it's a reinterpreted 8-frame latent understood as a 1-frame latent truncated_denoised_output_latents = LTXVSelectLatents().select_latents( denoised_output_latents, 1, -1 )[0] - if optional_reference_latents is not None: - truncated_denoised_output_latents = LTXVAdainLatent().batch_normalize( - latents=truncated_denoised_output_latents, - reference=optional_reference_latents, - factor=adain_factor, - )[0] - # Fuse new frames with old ones by calling LinearOverlapLatentTransition (latents,) = LinearOverlapLatentTransition().process( latents, truncated_denoised_output_latents, overlap - 1, axis=2 @@ -484,7 +646,7 @@ class LTXVInContextSampler: ), }, "optional": { - "optional_cond_image": ( + "optional_cond_images": ( "IMAGE", { "tooltip": "The image to use for conditioning the sampling, if not provided, the sampling will be unconditioned (t2v setup). The image will be resized to the size of the first frame." @@ -504,7 +666,7 @@ class LTXVInContextSampler: } RETURN_TYPES = ("LATENT", "CONDITIONING", "CONDITIONING") - RETURN_NAMES = ("denoised_output", "positive", "negative") + RETURN_NAMES = ("denoised_video", "positive", "negative") FUNCTION = "sample" CATEGORY = "sampling" @@ -516,22 +678,31 @@ class LTXVInContextSampler: sigmas, noise, guiding_latents, - optional_cond_image=None, + optional_cond_images=None, + optional_cond_indices=None, num_frames=0, optional_initialization_latents=None, optional_negative_index_latents=None, optional_negative_index=-1, optional_negative_index_strength=1.0, - optional_cond_strength=1.0, - optional_guiding_strength=1.0, + cond_image_strength=1.0, + guiding_strength=1.0, + guiding_start_step=0, + guiding_end_step=1000, ): - try: - positive, negative = guider.raw_conds - except AttributeError: - raise ValueError( - "Guider does not have raw conds, cannot use it as a guider. " - "Please use STGGuiderAdvanced." - ) + guider = copy.copy(guider) + guider.original_conds = copy.deepcopy(guider.original_conds) + if optional_cond_images is None: + optional_cond_indices = None + + if optional_cond_indices is not None and optional_cond_images is not None: + optional_cond_indices = optional_cond_indices.split(",") + optional_cond_indices = [int(i) for i in optional_cond_indices] + assert len(optional_cond_indices) == len( + optional_cond_images + ), "Number of optional cond images must match number of optional cond indices" + + positive, negative = _get_raw_conds_from_guider(guider) time_scale_factor, width_scale_factor, height_scale_factor = ( vae.downscale_index_formula @@ -544,45 +715,40 @@ class LTXVInContextSampler: if optional_initialization_latents is not None: new_latents = optional_initialization_latents else: - new_latents = EmptyLTXVLatentVideo().generate( + new_latents = EmptyLTXVLatentVideo.execute( width=width * width_scale_factor, height=height * height_scale_factor, length=(frames - 1) * time_scale_factor + 1, batch_size=1, )[0] - if optional_cond_image is not None: - optional_cond_image = ( - comfy.utils.common_upscale( - optional_cond_image.movedim(-1, 1), - width * width_scale_factor, - height * height_scale_factor, - "bilinear", - crop="disabled", - ) - .movedim(1, -1) - .clamp(0, 1) + high_sigmas, rest_sigmas = SplitSigmas().get_sigmas(sigmas, guiding_start_step) + middle_sigmas, low_sigmas = SplitSigmas().get_sigmas( + rest_sigmas, guiding_end_step - guiding_start_step + ) + + if len(high_sigmas) > 1: + print( + "Denoising with keyframes only [if available] on sigmas: ", + high_sigmas, ) - (cond_image_latent,) = VAEEncode().encode(vae, optional_cond_image) - ( - positive, - negative, - new_latents, - ) = LTXVAddLatentGuide().generate( - vae=vae, - positive=positive, - negative=negative, - latent=new_latents, - guiding_latent=cond_image_latent, - latent_idx=0, - strength=optional_cond_strength, + (_, new_latents) = SamplerCustomAdvanced().sample( + noise=noise, + guider=guider, + sampler=sampler, + sigmas=high_sigmas, + latent_image=new_latents, ) - if optional_cond_image is not None: + if optional_cond_indices is not None and 0 in optional_cond_indices: guiding_latents = LTXVSelectLatents().select_latents( guiding_latents, 1, -1 )[0] + skip_one_guiding_latent = True + else: + skip_one_guiding_latent = False + print("Adding conditioning on guiding latents") ( positive, negative, @@ -593,9 +759,31 @@ class LTXVInContextSampler: negative=negative, latent=new_latents, guiding_latent=guiding_latents, - latent_idx=1 if optional_cond_image is not None else 0, - strength=optional_guiding_strength, + latent_idx=1 if skip_one_guiding_latent else 0, + strength=guiding_strength, ) + if optional_cond_images is not None: + print("Adding conditioning on keyframes", optional_cond_indices) + for cond_image, cond_idx in zip( + optional_cond_images, optional_cond_indices + ): + if cond_idx % 8 == 1: + raise ValueError( + f"Conditioning image index {cond_idx} is a multiple of 8 + 1 and guiding latents are used. Please provide other cond image indices" + ) + ( + positive, + negative, + new_latents, + ) = LTXVAddGuide.execute( + positive=positive, + negative=negative, + vae=vae, + latent=new_latents, + image=cond_image.unsqueeze(0), + frame_idx=cond_idx, + strength=cond_image_strength, + ) if optional_negative_index_latents is not None: ( positive, @@ -611,25 +799,44 @@ class LTXVInContextSampler: strength=optional_negative_index_strength, ) - guider = copy.copy(guider) guider.set_conds(positive, negative) # Denoise the latent video + print("Denoising with full conditioning on sigmas: ", middle_sigmas) (_, denoised_output_latents) = SamplerCustomAdvanced().sample( noise=noise, guider=guider, sampler=sampler, - sigmas=sigmas, + sigmas=middle_sigmas, latent_image=new_latents, ) # Clean up guides if image conditioning was used - positive, negative, denoised_output_latents = LTXVCropGuides().crop( + positive, negative, denoised_output_latents = LTXVCropGuides.execute( positive=positive, negative=negative, latent=denoised_output_latents, ) + if len(low_sigmas) > 1: + guider.set_conds(positive, negative) + print( + "Denoising with keyframes only [if available] conditioning on sigmas: ", + low_sigmas, + ) + (_, denoised_output_latents) = SamplerCustomAdvanced().sample( + noise=noise, + guider=guider, + sampler=sampler, + sigmas=low_sigmas, + latent_image=denoised_output_latents, + ) + positive, negative, denoised_output_latents = LTXVCropGuides.execute( + positive=positive, + negative=negative, + latent=denoised_output_latents, + ) + return (denoised_output_latents, positive, negative) @@ -690,7 +897,9 @@ class LinearOverlapLatentTransition: ] combined_samples = torch.cat(parts, dim=axis) - combined_batch_index = torch.arange(0, combined_samples.shape[0]) + combined_batch_index = torch.arange(0, combined_samples.shape[0]).to( + dtype=torch.float32 + ) return ( { diff --git a/embeddings_connector.py b/embeddings_connector.py new file mode 100644 index 0000000..9465fb4 --- /dev/null +++ b/embeddings_connector.py @@ -0,0 +1,331 @@ +import math +from typing import Optional + +import comfy.ldm.common_dit +import torch +from comfy.ldm.lightricks.model import ( + CrossAttention, + FeedForward, + generate_freq_grid_np, + interleaved_freqs_cis, + split_freqs_cis, +) +from torch import nn + +from .pos_embedding_exp_values import POS_EMBEDDING_EXP_VALUES + + +class BasicTransformerBlock1D(nn.Module): + r""" + A basic Transformer block. + + Parameters: + + dim (`int`): The number of channels in the input and output. + num_attention_heads (`int`): The number of heads to use for multi-head attention. + attention_head_dim (`int`): The number of channels in each head. + dropout (`float`, *optional*, defaults to 0.0): The dropout probability to use. + activation_fn (`str`, *optional*, defaults to `"geglu"`): Activation function to be used in feed-forward. + attention_bias (: + obj: `bool`, *optional*, defaults to `False`): Configure if the attentions should contain a bias parameter. + upcast_attention (`bool`, *optional*): + Whether to upcast the attention computation to float32. This is useful for mixed precision training. + norm_elementwise_affine (`bool`, *optional*, defaults to `True`): + Whether to use learnable elementwise affine parameters for normalization. + standardization_norm (`str`, *optional*, defaults to `"layer_norm"`): The type of pre-normalization to use. Can be `"layer_norm"` or `"rms_norm"`. + norm_eps (`float`, *optional*, defaults to 1e-5): Epsilon value for normalization layers. + qk_norm (`str`, *optional*, defaults to None): + Set to 'layer_norm' or `rms_norm` to perform query and key normalization. + final_dropout (`bool` *optional*, defaults to False): + Whether to apply a final dropout after the last feed-forward layer. + ff_inner_dim (`int`, *optional*): Dimension of the inner feed-forward layer. If not provided, defaults to `dim * 4`. + ff_bias (`bool`, *optional*, defaults to `True`): Whether to use bias in the feed-forward layer. + attention_out_bias (`bool`, *optional*, defaults to `True`): Whether to use bias in the attention output layer. + use_rope (`bool`, *optional*, defaults to `False`): Whether to use Rotary Position Embeddings (RoPE). + ffn_dim_mult (`int`, *optional*, defaults to 4): Multiplier for the inner dimension of the feed-forward layer. + """ + + def __init__( + self, + dim, + n_heads, + d_head, + context_dim=None, + attn_precision=None, + dtype=None, + device=None, + operations=None, + ): + super().__init__() + + # Define 3 blocks. Each block has its own normalization layer. + # 1. Self-Attn + self.attn1 = CrossAttention( + query_dim=dim, + heads=n_heads, + dim_head=d_head, + context_dim=None, + dtype=dtype, + device=device, + operations=operations, + ) + + # 3. Feed-forward + self.ff = FeedForward( + dim, + dim_out=dim, + glu=True, + dtype=dtype, + device=device, + operations=operations, + ) + + def forward(self, hidden_states, attention_mask=None, pe=None) -> torch.FloatTensor: + + # Notice that normalization is always applied before the real computation in the following blocks. + + # 1. Normalization Before Self-Attention + norm_hidden_states = comfy.ldm.common_dit.rms_norm(hidden_states) + + norm_hidden_states = norm_hidden_states.squeeze(1) + + # 2. Self-Attention + attn_output = self.attn1(norm_hidden_states, mask=attention_mask, pe=pe) + + hidden_states = attn_output + hidden_states + if hidden_states.ndim == 4: + hidden_states = hidden_states.squeeze(1) + + # 3. Normalization before Feed-Forward + norm_hidden_states = comfy.ldm.common_dit.rms_norm(hidden_states) + + # 4. Feed-forward + ff_output = self.ff(norm_hidden_states) + + hidden_states = ff_output + hidden_states + if hidden_states.ndim == 4: + hidden_states = hidden_states.squeeze(1) + + return hidden_states + + +class Embeddings1DConnector(nn.Module): + _supports_gradient_checkpointing = True + + def __init__( + self, + in_channels=128, + cross_attention_dim=2048, + attention_head_dim=128, + num_attention_heads=30, + num_layers=2, + positional_embedding_theta=10000.0, + positional_embedding_max_pos=[1], + causal_temporal_positioning=False, + num_learnable_registers: Optional[int] = 128, + dtype=None, + device=None, + operations=None, + split_rope=False, + double_precision_rope=False, + **kwargs, + ): + super().__init__() + self.dtype = dtype + self.out_channels = in_channels + self.num_attention_heads = num_attention_heads + self.inner_dim = num_attention_heads * attention_head_dim + self.causal_temporal_positioning = causal_temporal_positioning + self.positional_embedding_theta = positional_embedding_theta + self.positional_embedding_max_pos = positional_embedding_max_pos + self.split_rope = split_rope + self.double_precision_rope = double_precision_rope + self.transformer_1d_blocks = nn.ModuleList( + [ + BasicTransformerBlock1D( + self.inner_dim, + num_attention_heads, + attention_head_dim, + context_dim=cross_attention_dim, + dtype=dtype, + device=device, + operations=operations, + ) + for _ in range(num_layers) + ] + ) + + inner_dim = num_attention_heads * attention_head_dim + self.num_learnable_registers = num_learnable_registers + if self.num_learnable_registers: + self.learnable_registers = nn.Parameter( + torch.rand( + self.num_learnable_registers, inner_dim, dtype=dtype, device=device + ) + * 2.0 + - 1.0 + ) + + def get_fractional_positions(self, indices_grid): + fractional_positions = torch.stack( + [ + indices_grid[:, i] / self.positional_embedding_max_pos[i] + for i in range(1) + ], + dim=-1, + ) + return fractional_positions + + def precompute_freqs(self, indices_grid, spacing): + source_dtype = indices_grid.dtype + dtype = ( + torch.float32 + if source_dtype in (torch.bfloat16, torch.float16) + else source_dtype + ) + + fractional_positions = self.get_fractional_positions(indices_grid) + indices = ( + generate_freq_grid_np( + self.positional_embedding_theta, + indices_grid.shape[1], + self.inner_dim, + ) + if self.double_precision_rope + else self.generate_freq_grid(spacing, dtype, fractional_positions.device) + ).to(device=fractional_positions.device) + + if spacing == "exp_2": + freqs = ( + (indices * fractional_positions.unsqueeze(-1)) + .transpose(-1, -2) + .flatten(2) + ) + else: + freqs = ( + (indices * (fractional_positions.unsqueeze(-1) * 2 - 1)) + .transpose(-1, -2) + .flatten(2) + ) + return freqs + + def generate_freq_grid(self, spacing, dtype, device): + dim = self.inner_dim + theta = self.positional_embedding_theta + n_pos_dims = 1 + n_elem = 2 * n_pos_dims # 2 for cos and sin e.g. x 3 = 6 + start = 1 + end = theta + + if spacing == "exp": + # Workaround float precision issues when calculating positional embeddings exponents to ensure compatibility with JAX. + indices = torch.tensor(POS_EMBEDDING_EXP_VALUES, dtype=dtype, device=device) + elif spacing == "exp_2": + indices = 1.0 / theta ** (torch.arange(0, dim, n_elem, device=device) / dim) + indices = indices.to(dtype=dtype) + elif spacing == "linear": + indices = torch.linspace( + start, end, dim // n_elem, device=device, dtype=dtype + ) + elif spacing == "sqrt": + indices = torch.linspace( + start**2, end**2, dim // n_elem, device=device, dtype=dtype + ).sqrt() + + indices = indices * math.pi / 2 + + return indices + + def precompute_freqs_cis(self, indices_grid, spacing="exp"): + dim = self.inner_dim + n_elem = 2 # 2 because of cos and sin + freqs = self.precompute_freqs(indices_grid, spacing) + if self.split_rope: + expected_freqs = dim // 2 + current_freqs = freqs.shape[-1] + pad_size = expected_freqs - current_freqs + cos_freq, sin_freq = split_freqs_cis( + freqs, pad_size, self.num_attention_heads + ) + else: + cos_freq, sin_freq = interleaved_freqs_cis(freqs, dim % n_elem) + return cos_freq.to(self.dtype), sin_freq.to(self.dtype), self.split_rope + + def forward( + self, + hidden_states: torch.Tensor, + attention_mask: Optional[torch.Tensor] = None, + ): + """ + The [`Transformer2DModel`] forward method. + + Args: + hidden_states (`torch.LongTensor` of shape `(batch size, num latent pixels)` if discrete, `torch.FloatTensor` of shape `(batch size, channel, height, width)` if continuous): + Input `hidden_states`. + indices_grid (`torch.LongTensor` of shape `(batch size, 3, num latent pixels)`): + attention_mask ( `torch.Tensor`, *optional*): + An attention mask of shape `(batch, key_tokens)` is applied to `encoder_hidden_states`. If `1` the mask + is kept, otherwise if `0` it is discarded. Mask will be converted into a bias, which adds large + negative values to the attention scores corresponding to "discard" tokens. + Returns: + If `return_dict` is True, an [`~models.transformer_2d.Transformer2DModelOutput`] is returned, otherwise a + `tuple` where the first element is the sample tensor. + """ + # 1. Input + + if self.num_learnable_registers: + # replace all padded tokens with learnable registers + assert ( + hidden_states.shape[1] % self.num_learnable_registers == 0 + ), f"Hidden states sequence length {hidden_states.shape[1]} must be divisible by num_learnable_registers {self.num_learnable_registers}." + + num_registers_duplications = ( + hidden_states.shape[1] // self.num_learnable_registers + ) + learnable_registers = torch.tile( + self.learnable_registers, (num_registers_duplications, 1) + ) + attention_mask_binary = ( + attention_mask.squeeze(1).squeeze(1).unsqueeze(-1) >= -9000.0 + ).int() + + non_zero_hidden_states = hidden_states[ + :, attention_mask_binary.squeeze().bool(), : + ] + non_zero_nums = non_zero_hidden_states.shape[1] + pad_length = hidden_states.shape[1] - non_zero_nums + adjusted_hidden_states = torch.nn.functional.pad( + non_zero_hidden_states, pad=(0, 0, 0, pad_length), value=0 + ) + flipped_mask = torch.flip(attention_mask_binary, dims=[1]) + hidden_states = ( + flipped_mask * adjusted_hidden_states + + (1 - flipped_mask) * learnable_registers + ) + + attention_mask = torch.full_like( + attention_mask, + 0.0, + dtype=attention_mask.dtype, + device=attention_mask.device, + ) + + indices_grid = torch.arange( + hidden_states.shape[1], dtype=torch.float32, device=hidden_states.device + ) + indices_grid = indices_grid[None, None, :] + freqs_cis = self.precompute_freqs_cis(indices_grid) + + # 2. Blocks + for block_idx, block in enumerate(self.transformer_1d_blocks): + hidden_states = block( + hidden_states, attention_mask=attention_mask, pe=freqs_cis + ) + + # 3. Output + # if self.output_scale is not None: + # hidden_states = hidden_states / self.output_scale + + hidden_states = comfy.ldm.common_dit.rms_norm(hidden_states) + + return hidden_states, attention_mask diff --git a/example_workflows/13b-distilled/ltxv-13b-dist-i2v-base-fp8.json b/example_workflows/13b-distilled/ltxv-13b-dist-i2v-base-fp8.json deleted file mode 100644 index a1e3754..0000000 --- a/example_workflows/13b-distilled/ltxv-13b-dist-i2v-base-fp8.json +++ /dev/null @@ -1,3281 +0,0 @@ -{ - "id": "394ed254-7306-42a2-9ae6-aa880ce4456d", - "revision": 0, - "last_node_id": 1891, - "last_link_id": 5434, - "nodes": [ - { - "id": 7, - "type": "CLIPTextEncode", - "pos": [ - 722.5008544921875, - 2398.3359375 - ], - "size": [ - 317.832275390625, - 213.2843780517578 - ], - "flags": {}, - "order": 19, - "mode": 0, - "inputs": [ - { - "localized_name": "clip", - "name": "clip", - "type": "CLIP", - "link": 75 - }, - { - "localized_name": "text", - "name": "text", - "type": "STRING", - "widget": { - "name": "text" - }, - "link": null - } - ], - "outputs": [ - { - "localized_name": "CONDITIONING", - "name": "CONDITIONING", - "type": "CONDITIONING", - "slot_index": 0, - "links": [ - 3365 - ] - } - ], - "title": "CLIP Text Encode (Negative Prompt)", - "properties": { - "Node name for S&R": "CLIPTextEncode", - "cnr_id": "comfy-core", - "ver": "0.3.28" - }, - "widgets_values": [ - "low quality, worst quality, deformed, distorted, disfigured, motion smear, motion artifacts, fused fingers, bad anatomy, weird hand, ugly" - ], - "color": "#322", - "bgcolor": "#533" - }, - { - "id": 38, - "type": "CLIPLoader", - "pos": [ - 339.99981689453125, - 2310.293701171875 - ], - "size": [ - 315, - 106 - ], - "flags": {}, - "order": 0, - "mode": 0, - "inputs": [ - { - "localized_name": "clip_name", - "name": "clip_name", - "type": "COMBO", - "widget": { - "name": "clip_name" - }, - "link": null - }, - { - "localized_name": "type", - "name": "type", - "type": "COMBO", - "widget": { - "name": "type" - }, - "link": null - }, - { - "localized_name": "device", - "name": "device", - "shape": 7, - "type": "COMBO", - "widget": { - "name": "device" - }, - "link": null - } - ], - "outputs": [ - { - "localized_name": "CLIP", - "name": "CLIP", - "type": "CLIP", - "slot_index": 0, - "links": [ - 74, - 75 - ] - } - ], - "properties": { - "Node name for S&R": "CLIPLoader", - "cnr_id": "comfy-core", - "ver": "0.3.28" - }, - "widgets_values": [ - "t5xxl_fp16.safetensors", - "ltxv", - "default" - ] - }, - { - "id": 1828, - "type": "LTXVLatentUpsamplerModelLoader", - "pos": [ - 3321.04248046875, - 2117.79833984375 - ], - "size": [ - 344.3999938964844, - 106 - ], - "flags": {}, - "order": 1, - "mode": 0, - "inputs": [ - { - "localized_name": "upscale_model", - "name": "upscale_model", - "type": "COMBO", - "widget": { - "name": "upscale_model" - }, - "link": null - }, - { - "localized_name": "spatial_upsample", - "name": "spatial_upsample", - "type": "BOOLEAN", - "widget": { - "name": "spatial_upsample" - }, - "link": null - }, - { - "localized_name": "temporal_upsample", - "name": "temporal_upsample", - "type": "BOOLEAN", - "widget": { - "name": "temporal_upsample" - }, - "link": null - } - ], - "outputs": [ - { - "localized_name": "UPSCALE_MODEL", - "name": "UPSCALE_MODEL", - "type": "UPSCALE_MODEL", - "links": [ - 5303 - ] - } - ], - "properties": { - "Node name for S&R": "LTXVLatentUpsamplerModelLoader" - }, - "widgets_values": [ - "ltxv-spatial-upscaler-0.9.8.safetensors", - true, - false - ] - }, - { - "id": 1661, - "type": "ImageResizeKJ", - "pos": [ - 4768.9892578125, - 2174.69091796875 - ], - "size": [ - 315, - 238 - ], - "flags": {}, - "order": 34, - "mode": 0, - "inputs": [ - { - "localized_name": "image", - "name": "image", - "type": "IMAGE", - "link": 4749 - }, - { - "localized_name": "width_input", - "name": "width_input", - "shape": 7, - "type": "INT", - "link": null - }, - { - "localized_name": "height_input", - "name": "height_input", - "shape": 7, - "type": "INT", - "link": null - }, - { - "localized_name": "get_image_size", - "name": "get_image_size", - "shape": 7, - "type": "IMAGE", - "link": null - }, - { - "localized_name": "width", - "name": "width", - "type": "INT", - "widget": { - "name": "width" - }, - "link": null - }, - { - "localized_name": "height", - "name": "height", - "type": "INT", - "widget": { - "name": "height" - }, - "link": null - }, - { - "localized_name": "upscale_method", - "name": "upscale_method", - "type": "COMBO", - "widget": { - "name": "upscale_method" - }, - "link": null - }, - { - "localized_name": "keep_proportion", - "name": "keep_proportion", - "type": "BOOLEAN", - "widget": { - "name": "keep_proportion" - }, - "link": null - }, - { - "localized_name": "divisible_by", - "name": "divisible_by", - "type": "INT", - "widget": { - "name": "divisible_by" - }, - "link": null - }, - { - "localized_name": "crop", - "name": "crop", - "shape": 7, - "type": "COMBO", - "widget": { - "name": "crop" - }, - "link": null - } - ], - "outputs": [ - { - "localized_name": "IMAGE", - "name": "IMAGE", - "type": "IMAGE", - "links": [ - 4751 - ] - }, - { - "localized_name": "width", - "name": "width", - "type": "INT", - "links": null - }, - { - "localized_name": "height", - "name": "height", - "type": "INT", - "links": null - } - ], - "properties": { - "Node name for S&R": "ImageResizeKJ" - }, - "widgets_values": [ - 1280, - 1280, - "bicubic", - true, - 2, - "center" - ] - }, - { - "id": 1335, - "type": "VAEDecode", - "pos": [ - 2515.01953125, - 2253.726318359375 - ], - "size": [ - 210, - 46 - ], - "flags": {}, - "order": 28, - "mode": 0, - "inputs": [ - { - "localized_name": "samples", - "name": "samples", - "type": "LATENT", - "link": 3576 - }, - { - "localized_name": "vae", - "name": "vae", - "type": "VAE", - "link": 5368 - } - ], - "outputs": [ - { - "localized_name": "IMAGE", - "name": "IMAGE", - "type": "IMAGE", - "links": [ - 3578 - ] - } - ], - "properties": { - "Node name for S&R": "VAEDecode", - "cnr_id": "comfy-core", - "ver": "0.3.29" - }, - "widgets_values": [] - }, - { - "id": 1699, - "type": "LTXVFilmGrain", - "pos": [ - 5123.873046875, - 2174.69091796875 - ], - "size": [ - 210, - 82 - ], - "flags": {}, - "order": 35, - "mode": 0, - "inputs": [ - { - "localized_name": "images", - "name": "images", - "type": "IMAGE", - "link": 4751 - }, - { - "localized_name": "grain_intensity", - "name": "grain_intensity", - "type": "FLOAT", - "widget": { - "name": "grain_intensity" - }, - "link": null - }, - { - "localized_name": "saturation", - "name": "saturation", - "type": "FLOAT", - "widget": { - "name": "saturation" - }, - "link": null - } - ], - "outputs": [ - { - "localized_name": "IMAGE", - "name": "IMAGE", - "type": "IMAGE", - "links": [ - 4752 - ] - } - ], - "properties": { - "Node name for S&R": "LTXVFilmGrain" - }, - "widgets_values": [ - 0.010000000000000002, - 0.5 - ] - }, - { - "id": 1336, - "type": "VHS_VideoCombine", - "pos": [ - 2789.545166015625, - 2253.726318359375 - ], - "size": [ - 471.0374755859375, - 624.691650390625 - ], - "flags": {}, - "order": 30, - "mode": 0, - "inputs": [ - { - "localized_name": "images", - "name": "images", - "shape": 7, - "type": "IMAGE", - "link": 3578 - }, - { - "localized_name": "audio", - "name": "audio", - "shape": 7, - "type": "AUDIO", - "link": null - }, - { - "localized_name": "meta_batch", - "name": "meta_batch", - "shape": 7, - "type": "VHS_BatchManager", - "link": null - }, - { - "localized_name": "vae", - "name": "vae", - "shape": 7, - "type": "VAE", - "link": null - }, - { - "localized_name": "frame_rate", - "name": "frame_rate", - "type": "FLOAT", - "widget": { - "name": "frame_rate" - }, - "link": null - }, - { - "localized_name": "loop_count", - "name": "loop_count", - "type": "INT", - "widget": { - "name": "loop_count" - }, - "link": null - }, - { - "localized_name": "filename_prefix", - "name": "filename_prefix", - "type": "STRING", - "widget": { - "name": "filename_prefix" - }, - "link": null - }, - { - "localized_name": "format", - "name": "format", - "type": "COMBO", - "widget": { - "name": "format" - }, - "link": null - }, - { - "localized_name": "pingpong", - "name": "pingpong", - "type": "BOOLEAN", - "widget": { - "name": "pingpong" - }, - "link": null - }, - { - "localized_name": "save_output", - "name": "save_output", - "type": "BOOLEAN", - "widget": { - "name": "save_output" - }, - "link": null - } - ], - "outputs": [ - { - "localized_name": "Filenames", - "name": "Filenames", - "type": "VHS_FILENAMES", - "links": null - } - ], - "properties": { - "Node name for S&R": "VHS_VideoCombine" - }, - "widgets_values": { - "frame_rate": 24, - "loop_count": 0, - "filename_prefix": "ltxv-base", - "format": "video/h264-mp4", - "pix_fmt": "yuv420p", - "crf": 19, - "save_metadata": true, - "pingpong": false, - "save_output": false, - "videopreview": { - "hidden": false, - "paused": false, - "params": { - "filename": "ltxv-base_00004.mp4", - "subfolder": "", - "type": "temp", - "format": "video/h264-mp4", - "frame_rate": 24 - } - } - } - }, - { - "id": 1858, - "type": "Note", - "pos": [ - 1090.729736328125, - 2106.790283203125 - ], - "size": [ - 313.80950927734375, - 120.61924743652344 - ], - "flags": {}, - "order": 2, - "mode": 0, - "inputs": [], - "outputs": [], - "properties": {}, - "widgets_values": [ - "Framerate can be adjusted, just make sure you are using the same framerate in your VideoCombine node to see proper playback.\n\n60FPS = Lower quality, more motion\n24 FPS = Higher quality, less motion" - ], - "color": "#432", - "bgcolor": "#653" - }, - { - "id": 1859, - "type": "Note", - "pos": [ - 2134.832763671875, - 2111.12353515625 - ], - "size": [ - 298.2620544433594, - 88 - ], - "flags": {}, - "order": 3, - "mode": 0, - "inputs": [], - "outputs": [], - "properties": {}, - "widgets_values": [ - "We generate at a base resolution of 768x512.\nThe video will be upscaled later to FHD." - ], - "color": "#432", - "bgcolor": "#653" - }, - { - "id": 1823, - "type": "Note", - "pos": [ - 1779.07470703125, - 2575.503662109375 - ], - "size": [ - 276.017578125, - 171.05442810058594 - ], - "flags": {}, - "order": 4, - "mode": 0, - "inputs": [], - "outputs": [], - "properties": {}, - "widgets_values": [ - "The Advanced STG Guider dynamically controls the diffusion model's denoising process by mapping sigma values to specific configuration parameters (CFG scale, STG scale/rescale factors, and attention layer skipping patterns), enabling precise control at different denoising stages independently of step numbers while supporting additional techniques like CFG-Zero rescaling and threshold-based noise prediction zeroing." - ], - "color": "#432", - "bgcolor": "#653" - }, - { - "id": 1860, - "type": "Note", - "pos": [ - 2134.832763671875, - 2658.40869140625 - ], - "size": [ - 300, - 130 - ], - "flags": {}, - "order": 5, - "mode": 0, - "inputs": [], - "outputs": [], - "properties": {}, - "widgets_values": [ - "crop decides if the conditioning image(s) is center-cropped or resized by stretching \n\ncrf and blur are preprocessing parameters for conditioning image(s) to make them look more like video frames, which helps with the dynamicity of the generated video" - ], - "color": "#432", - "bgcolor": "#653" - }, - { - "id": 1861, - "type": "Note", - "pos": [ - 1510, - 2368.19873046875 - ], - "size": [ - 216.66220092773438, - 88 - ], - "flags": {}, - "order": 6, - "mode": 0, - "inputs": [], - "outputs": [], - "properties": {}, - "widgets_values": [ - "Presets override the values inside 🅛🅣🅧 STG Guider Advanced node." - ], - "color": "#432", - "bgcolor": "#653" - }, - { - "id": 1825, - "type": "Note", - "pos": [ - 444.50042724609375, - 2121.438720703125 - ], - "size": [ - 232.79998779296875, - 88 - ], - "flags": {}, - "order": 7, - "mode": 0, - "inputs": [], - "outputs": [], - "properties": {}, - "widgets_values": [ - "Best use descriptive prompt, but you can even leave it empty in i2v case." - ], - "color": "#432", - "bgcolor": "#653" - }, - { - "id": 1863, - "type": "Note", - "pos": [ - 3343.06640625, - 2550.423583984375 - ], - "size": [ - 322.3760986328125, - 88 - ], - "flags": {}, - "order": 8, - "mode": 0, - "inputs": [], - "outputs": [], - "properties": {}, - "widgets_values": [ - "Depending on the latent upscaler model used, it can increase either spatial or temporal resolution, without moving to/from pixel space. " - ], - "color": "#432", - "bgcolor": "#653" - }, - { - "id": 1862, - "type": "Note", - "pos": [ - 4133.2216796875, - 2710.51806640625 - ], - "size": [ - 335.1761474609375, - 148.08804321289062 - ], - "flags": {}, - "order": 9, - "mode": 0, - "inputs": [], - "outputs": [], - "properties": {}, - "widgets_values": [ - "If you are not constrained in VRAM, run 1x1 tile starting from step 18 \nIf you are constrained in your available VRAM, run 2x2 tiles and use somewhat lower noies levels, starting from step 23.\n\n" - ], - "color": "#432", - "bgcolor": "#653" - }, - { - "id": 1599, - "type": "VHS_VideoCombine", - "pos": [ - 5363.87255859375, - 2174.69091796875 - ], - "size": [ - 610.8043212890625, - 719.1004028320312 - ], - "flags": {}, - "order": 36, - "mode": 0, - "inputs": [ - { - "localized_name": "images", - "name": "images", - "shape": 7, - "type": "IMAGE", - "link": 4752 - }, - { - "localized_name": "audio", - "name": "audio", - "shape": 7, - "type": "AUDIO", - "link": null - }, - { - "localized_name": "meta_batch", - "name": "meta_batch", - "shape": 7, - "type": "VHS_BatchManager", - "link": null - }, - { - "localized_name": "vae", - "name": "vae", - "shape": 7, - "type": "VAE", - "link": null - }, - { - "localized_name": "frame_rate", - "name": "frame_rate", - "type": "FLOAT", - "widget": { - "name": "frame_rate" - }, - "link": null - }, - { - "localized_name": "loop_count", - "name": "loop_count", - "type": "INT", - "widget": { - "name": "loop_count" - }, - "link": null - }, - { - "localized_name": "filename_prefix", - "name": "filename_prefix", - "type": "STRING", - "widget": { - "name": "filename_prefix" - }, - "link": null - }, - { - "localized_name": "format", - "name": "format", - "type": "COMBO", - "widget": { - "name": "format" - }, - "link": null - }, - { - "localized_name": "pingpong", - "name": "pingpong", - "type": "BOOLEAN", - "widget": { - "name": "pingpong" - }, - "link": null - }, - { - "localized_name": "save_output", - "name": "save_output", - "type": "BOOLEAN", - "widget": { - "name": "save_output" - }, - "link": null - } - ], - "outputs": [ - { - "localized_name": "Filenames", - "name": "Filenames", - "type": "VHS_FILENAMES", - "links": null - } - ], - "properties": { - "Node name for S&R": "VHS_VideoCombine", - "cnr_id": "comfyui-videohelpersuite", - "ver": "2c25b8b53835aaeb63f831b3137c705cf9f85dce" - }, - "widgets_values": { - "frame_rate": 24, - "loop_count": 0, - "filename_prefix": "ltxv-hd", - "format": "video/h264-mp4", - "pix_fmt": "yuv420p", - "crf": 18, - "save_metadata": false, - "pingpong": false, - "save_output": false, - "videopreview": { - "hidden": false, - "paused": false, - "params": { - "filename": "ltxv-hd_00004.mp4", - "subfolder": "", - "type": "temp", - "format": "video/h264-mp4", - "frame_rate": 24, - "workflow": "ltxv_00055.png", - "fullpath": "C:\\Users\\Zeev\\Projects\\ComfyUI\\temp\\ltxv_00055.mp4" - }, - "muted": true - } - } - }, - { - "id": 1872, - "type": "Set VAE Decoder Noise", - "pos": [ - 2513.900390625, - 2383.17529296875 - ], - "size": [ - 235.1999969482422, - 130 - ], - "flags": {}, - "order": 23, - "mode": 0, - "inputs": [ - { - "localized_name": "vae", - "name": "vae", - "type": "VAE", - "link": 5367 - }, - { - "localized_name": "timestep", - "name": "timestep", - "type": "FLOAT", - "widget": { - "name": "timestep" - }, - "link": null - }, - { - "localized_name": "scale", - "name": "scale", - "type": "FLOAT", - "widget": { - "name": "scale" - }, - "link": null - }, - { - "localized_name": "seed", - "name": "seed", - "type": "INT", - "widget": { - "name": "seed" - }, - "link": null - } - ], - "outputs": [ - { - "localized_name": "VAE", - "name": "VAE", - "type": "VAE", - "links": [ - 5368 - ] - } - ], - "properties": { - "Node name for S&R": "Set VAE Decoder Noise" - }, - "widgets_values": [ - 0.05, - 0.025, - 42, - "fixed" - ] - }, - { - "id": 1876, - "type": "FloatToSigmas", - "pos": [ - 2223.5966796875, - 2857.569091796875 - ], - "size": [ - 216.59999084472656, - 26 - ], - "flags": {}, - "order": 20, - "mode": 0, - "inputs": [ - { - "localized_name": "float_list", - "name": "float_list", - "type": "FLOAT", - "link": 5379 - } - ], - "outputs": [ - { - "localized_name": "SIGMAS", - "name": "SIGMAS", - "type": "SIGMAS", - "links": [ - 5380 - ] - } - ], - "properties": { - "Node name for S&R": "FloatToSigmas" - }, - "widgets_values": [] - }, - { - "id": 73, - "type": "KSamplerSelect", - "pos": [ - 1510, - 2608.19873046875 - ], - "size": [ - 251.94110107421875, - 58 - ], - "flags": {}, - "order": 10, - "mode": 0, - "inputs": [ - { - "localized_name": "sampler_name", - "name": "sampler_name", - "type": "COMBO", - "widget": { - "name": "sampler_name" - }, - "link": null - } - ], - "outputs": [ - { - "localized_name": "SAMPLER", - "name": "SAMPLER", - "type": "SAMPLER", - "links": [ - 5224, - 5419 - ] - } - ], - "properties": { - "Node name for S&R": "KSamplerSelect", - "cnr_id": "comfy-core", - "ver": "0.3.28" - }, - "widgets_values": [ - "euler_ancestral" - ] - }, - { - "id": 1241, - "type": "LTXVConditioning", - "pos": [ - 1082.930419921875, - 2271.91064453125 - ], - "size": [ - 328.21636962890625, - 78 - ], - "flags": {}, - "order": 24, - "mode": 0, - "inputs": [ - { - "localized_name": "positive", - "name": "positive", - "type": "CONDITIONING", - "link": 3364 - }, - { - "localized_name": "negative", - "name": "negative", - "type": "CONDITIONING", - "link": 3365 - }, - { - "localized_name": "frame_rate", - "name": "frame_rate", - "type": "FLOAT", - "widget": { - "name": "frame_rate" - }, - "link": null - } - ], - "outputs": [ - { - "localized_name": "positive", - "name": "positive", - "type": "CONDITIONING", - "slot_index": 0, - "links": [ - 5274, - 5406 - ] - }, - { - "localized_name": "negative", - "name": "negative", - "type": "CONDITIONING", - "slot_index": 1, - "links": [ - 5275, - 5405 - ] - } - ], - "properties": { - "Node name for S&R": "LTXVConditioning", - "cnr_id": "comfy-core", - "ver": "0.3.28" - }, - "widgets_values": [ - 24.000000000000004 - ] - }, - { - "id": 1874, - "type": "Note", - "pos": [ - 1488.787353515625, - 2789.536376953125 - ], - "size": [ - 303.5919494628906, - 88 - ], - "flags": {}, - "order": 11, - "mode": 0, - "inputs": [], - "outputs": [], - "properties": {}, - "widgets_values": [ - "Full list of sigmas for the distilled model:\n1.0000, 0.9937, 0.9875, 0.9812, 0.9750, 0.9094, 0.7250, 0.4219, 0.0" - ], - "color": "#432", - "bgcolor": "#653" - }, - { - "id": 1887, - "type": "STGGuiderAdvanced", - "pos": [ - 1798.5238037109375, - 2258.350830078125 - ], - "size": [ - 278.79998779296875, - 262 - ], - "flags": {}, - "order": 26, - "mode": 0, - "inputs": [ - { - "localized_name": "model", - "name": "model", - "type": "MODEL", - "link": 5432 - }, - { - "localized_name": "positive", - "name": "positive", - "type": "CONDITIONING", - "link": 5406 - }, - { - "localized_name": "negative", - "name": "negative", - "type": "CONDITIONING", - "link": 5405 - }, - { - "localized_name": "preset", - "name": "preset", - "shape": 7, - "type": "STG_ADVANCED_PRESET", - "link": null - }, - { - "localized_name": "skip_steps_sigma_threshold", - "name": "skip_steps_sigma_threshold", - "type": "FLOAT", - "widget": { - "name": "skip_steps_sigma_threshold" - }, - "link": null - }, - { - "localized_name": "cfg_star_rescale", - "name": "cfg_star_rescale", - "type": "BOOLEAN", - "widget": { - "name": "cfg_star_rescale" - }, - "link": null - }, - { - "localized_name": "sigmas", - "name": "sigmas", - "type": "STRING", - "widget": { - "name": "sigmas" - }, - "link": null - }, - { - "localized_name": "cfg_values", - "name": "cfg_values", - "type": "STRING", - "widget": { - "name": "cfg_values" - }, - "link": null - }, - { - "localized_name": "stg_scale_values", - "name": "stg_scale_values", - "type": "STRING", - "widget": { - "name": "stg_scale_values" - }, - "link": null - }, - { - "localized_name": "stg_rescale_values", - "name": "stg_rescale_values", - "type": "STRING", - "widget": { - "name": "stg_rescale_values" - }, - "link": null - }, - { - "localized_name": "stg_layers_indices", - "name": "stg_layers_indices", - "type": "STRING", - "widget": { - "name": "stg_layers_indices" - }, - "link": null - } - ], - "outputs": [ - { - "localized_name": "GUIDER", - "name": "GUIDER", - "type": "GUIDER", - "links": [ - 5412 - ] - } - ], - "properties": { - "Node name for S&R": "STGGuiderAdvanced" - }, - "widgets_values": [ - 0.9970000000000002, - true, - "1.0, 0.9933, 0.9850, 0.9767, 0.9008, 0.6180", - "1,1,1,1,1,1", - "0,0,0,0,0,0", - "1, 1, 1, 1, 1, 1", - "[25], [35], [35], [42], [42], [42]" - ] - }, - { - "id": 1507, - "type": "RandomNoise", - "pos": [ - 1847.874755859375, - 2114.199462890625 - ], - "size": [ - 210, - 82 - ], - "flags": {}, - "order": 12, - "mode": 0, - "inputs": [ - { - "localized_name": "noise_seed", - "name": "noise_seed", - "type": "INT", - "widget": { - "name": "noise_seed" - }, - "link": null - } - ], - "outputs": [ - { - "localized_name": "NOISE", - "name": "NOISE", - "type": "NOISE", - "slot_index": 0, - "links": [ - 4053 - ] - } - ], - "properties": { - "Node name for S&R": "RandomNoise", - "cnr_id": "comfy-core", - "ver": "0.3.28" - }, - "widgets_values": [ - 118, - "fixed" - ] - }, - { - "id": 1813, - "type": "STGGuiderAdvanced", - "pos": [ - 3716.509033203125, - 2267.65087890625 - ], - "size": [ - 278.79998779296875, - 262 - ], - "flags": {}, - "order": 25, - "mode": 0, - "inputs": [ - { - "localized_name": "model", - "name": "model", - "type": "MODEL", - "link": 5431 - }, - { - "localized_name": "positive", - "name": "positive", - "type": "CONDITIONING", - "link": 5274 - }, - { - "localized_name": "negative", - "name": "negative", - "type": "CONDITIONING", - "link": 5275 - }, - { - "localized_name": "preset", - "name": "preset", - "shape": 7, - "type": "STG_ADVANCED_PRESET", - "link": null - }, - { - "localized_name": "skip_steps_sigma_threshold", - "name": "skip_steps_sigma_threshold", - "type": "FLOAT", - "widget": { - "name": "skip_steps_sigma_threshold" - }, - "link": null - }, - { - "localized_name": "cfg_star_rescale", - "name": "cfg_star_rescale", - "type": "BOOLEAN", - "widget": { - "name": "cfg_star_rescale" - }, - "link": null - }, - { - "localized_name": "sigmas", - "name": "sigmas", - "type": "STRING", - "widget": { - "name": "sigmas" - }, - "link": null - }, - { - "localized_name": "cfg_values", - "name": "cfg_values", - "type": "STRING", - "widget": { - "name": "cfg_values" - }, - "link": null - }, - { - "localized_name": "stg_scale_values", - "name": "stg_scale_values", - "type": "STRING", - "widget": { - "name": "stg_scale_values" - }, - "link": null - }, - { - "localized_name": "stg_rescale_values", - "name": "stg_rescale_values", - "type": "STRING", - "widget": { - "name": "stg_rescale_values" - }, - "link": null - }, - { - "localized_name": "stg_layers_indices", - "name": "stg_layers_indices", - "type": "STRING", - "widget": { - "name": "stg_layers_indices" - }, - "link": null - } - ], - "outputs": [ - { - "localized_name": "GUIDER", - "name": "GUIDER", - "type": "GUIDER", - "links": [ - 5421 - ] - } - ], - "properties": { - "Node name for S&R": "STGGuiderAdvanced" - }, - "widgets_values": [ - 0.9970000000000002, - true, - "1", - "1", - "0", - "1", - "[42]" - ] - }, - { - "id": 1875, - "type": "StringToFloatList", - "pos": [ - 1864.56298828125, - 2803.1142578125 - ], - "size": [ - 210, - 88 - ], - "flags": {}, - "order": 13, - "mode": 0, - "inputs": [ - { - "localized_name": "string", - "name": "string", - "type": "STRING", - "widget": { - "name": "string" - }, - "link": null - } - ], - "outputs": [ - { - "localized_name": "FLOAT", - "name": "FLOAT", - "type": "FLOAT", - "links": [ - 5379 - ] - } - ], - "properties": { - "Node name for S&R": "StringToFloatList", - "cnr_id": "comfyui-kjnodes", - "ver": "0addfc6101f7a834c7fb6e0a1b26529360ab5350" - }, - "widgets_values": [ - "1.0000, 0.9937, 0.9875, 0.9812, 0.9750, 0.9094, 0.7250, 0.4219, 0.0" - ], - "color": "#223", - "bgcolor": "#335" - }, - { - "id": 1889, - "type": "FloatToSigmas", - "pos": [ - 4146.88916015625, - 2597.5654296875 - ], - "size": [ - 216.59999084472656, - 26 - ], - "flags": {}, - "order": 21, - "mode": 0, - "inputs": [ - { - "localized_name": "float_list", - "name": "float_list", - "type": "FLOAT", - "link": 5414 - } - ], - "outputs": [ - { - "localized_name": "SIGMAS", - "name": "SIGMAS", - "type": "SIGMAS", - "links": [ - 5420 - ] - } - ], - "properties": { - "Node name for S&R": "FloatToSigmas" - }, - "widgets_values": [] - }, - { - "id": 1888, - "type": "StringToFloatList", - "pos": [ - 3717.850341796875, - 2600.141845703125 - ], - "size": [ - 395.74224853515625, - 88 - ], - "flags": {}, - "order": 14, - "mode": 0, - "inputs": [ - { - "localized_name": "string", - "name": "string", - "type": "STRING", - "widget": { - "name": "string" - }, - "link": null - } - ], - "outputs": [ - { - "localized_name": "FLOAT", - "name": "FLOAT", - "type": "FLOAT", - "links": [ - 5414 - ] - } - ], - "properties": { - "Node name for S&R": "StringToFloatList", - "cnr_id": "comfyui-kjnodes", - "ver": "0addfc6101f7a834c7fb6e0a1b26529360ab5350" - }, - "widgets_values": [ - "0.85, 0.7250, 0.6, 0.4219, 0.0" - ], - "color": "#223", - "bgcolor": "#335" - }, - { - "id": 1598, - "type": "RandomNoise", - "pos": [ - 3782.752197265625, - 2126.30908203125 - ], - "size": [ - 210, - 82 - ], - "flags": {}, - "order": 15, - "mode": 0, - "inputs": [ - { - "localized_name": "noise_seed", - "name": "noise_seed", - "type": "INT", - "widget": { - "name": "noise_seed" - }, - "link": null - } - ], - "outputs": [ - { - "localized_name": "NOISE", - "name": "NOISE", - "type": "NOISE", - "links": [ - 5418 - ] - } - ], - "properties": { - "Node name for S&R": "RandomNoise", - "cnr_id": "comfy-core", - "ver": "0.3.30" - }, - "widgets_values": [ - 1252, - "fixed" - ] - }, - { - "id": 1601, - "type": "VAEDecodeTiled", - "pos": [ - 4519.10546875, - 2174.69091796875 - ], - "size": [ - 210, - 150 - ], - "flags": {}, - "order": 33, - "mode": 0, - "inputs": [ - { - "localized_name": "samples", - "name": "samples", - "type": "LATENT", - "link": 5423 - }, - { - "localized_name": "vae", - "name": "vae", - "type": "VAE", - "link": 5369 - }, - { - "localized_name": "tile_size", - "name": "tile_size", - "type": "INT", - "widget": { - "name": "tile_size" - }, - "link": null - }, - { - "localized_name": "overlap", - "name": "overlap", - "type": "INT", - "widget": { - "name": "overlap" - }, - "link": null - }, - { - "localized_name": "temporal_size", - "name": "temporal_size", - "type": "INT", - "widget": { - "name": "temporal_size" - }, - "link": null - }, - { - "localized_name": "temporal_overlap", - "name": "temporal_overlap", - "type": "INT", - "widget": { - "name": "temporal_overlap" - }, - "link": null - } - ], - "outputs": [ - { - "localized_name": "IMAGE", - "name": "IMAGE", - "type": "IMAGE", - "links": [ - 4749 - ] - } - ], - "properties": { - "Node name for S&R": "VAEDecodeTiled", - "cnr_id": "comfy-core", - "ver": "0.3.29" - }, - "widgets_values": [ - 1280, - 128, - 128, - 32 - ] - }, - { - "id": 1206, - "type": "LoadImage", - "pos": [ - 1069.734375, - 2577.37060546875 - ], - "size": [ - 342.5999755859375, - 314 - ], - "flags": {}, - "order": 16, - "mode": 0, - "inputs": [ - { - "localized_name": "image", - "name": "image", - "type": "COMBO", - "widget": { - "name": "image" - }, - "link": null - }, - { - "localized_name": "choose file to upload", - "name": "upload", - "type": "IMAGEUPLOAD", - "widget": { - "name": "upload" - }, - "link": null - } - ], - "outputs": [ - { - "localized_name": "IMAGE", - "name": "IMAGE", - "type": "IMAGE", - "links": [ - 5162, - 5424 - ] - }, - { - "localized_name": "MASK", - "name": "MASK", - "type": "MASK", - "links": null - } - ], - "properties": { - "Node name for S&R": "LoadImage", - "cnr_id": "comfy-core", - "ver": "0.3.30" - }, - "widgets_values": [ - "1.jpg", - "image" - ] - }, - { - "id": 1890, - "type": "LTXVTiledSampler", - "pos": [ - 4127.365234375, - 2141.89501953125 - ], - "size": [ - 329.20001220703125, - 379.9051818847656 - ], - "flags": {}, - "order": 32, - "mode": 0, - "inputs": [ - { - "localized_name": "model", - "name": "model", - "type": "MODEL", - "link": 5433 - }, - { - "localized_name": "vae", - "name": "vae", - "type": "VAE", - "link": 5417 - }, - { - "localized_name": "noise", - "name": "noise", - "type": "NOISE", - "link": 5418 - }, - { - "localized_name": "sampler", - "name": "sampler", - "type": "SAMPLER", - "link": 5419 - }, - { - "localized_name": "sigmas", - "name": "sigmas", - "type": "SIGMAS", - "link": 5420 - }, - { - "localized_name": "guider", - "name": "guider", - "type": "GUIDER", - "link": 5421 - }, - { - "localized_name": "latents", - "name": "latents", - "type": "LATENT", - "link": 5422 - }, - { - "localized_name": "optional_cond_images", - "name": "optional_cond_images", - "shape": 7, - "type": "IMAGE", - "link": 5424 - }, - { - "localized_name": "horizontal_tiles", - "name": "horizontal_tiles", - "type": "INT", - "widget": { - "name": "horizontal_tiles" - }, - "link": null - }, - { - "localized_name": "vertical_tiles", - "name": "vertical_tiles", - "type": "INT", - "widget": { - "name": "vertical_tiles" - }, - "link": null - }, - { - "localized_name": "overlap", - "name": "overlap", - "type": "INT", - "widget": { - "name": "overlap" - }, - "link": null - }, - { - "localized_name": "latents_cond_strength", - "name": "latents_cond_strength", - "type": "FLOAT", - "widget": { - "name": "latents_cond_strength" - }, - "link": null - }, - { - "localized_name": "boost_latent_similarity", - "name": "boost_latent_similarity", - "type": "BOOLEAN", - "widget": { - "name": "boost_latent_similarity" - }, - "link": null - }, - { - "localized_name": "crop", - "name": "crop", - "type": "COMBO", - "widget": { - "name": "crop" - }, - "link": null - }, - { - "localized_name": "optional_cond_indices", - "name": "optional_cond_indices", - "shape": 7, - "type": "STRING", - "widget": { - "name": "optional_cond_indices" - }, - "link": null - }, - { - "localized_name": "images_cond_strengths", - "name": "images_cond_strengths", - "shape": 7, - "type": "STRING", - "widget": { - "name": "images_cond_strengths" - }, - "link": null - } - ], - "outputs": [ - { - "localized_name": "output", - "name": "output", - "type": "LATENT", - "links": [ - 5423 - ] - }, - { - "localized_name": "denoised_output", - "name": "denoised_output", - "type": "LATENT", - "links": null - } - ], - "properties": { - "Node name for S&R": "LTXVTiledSampler" - }, - "widgets_values": [ - 1, - 1, - 1, - 0.15, - false, - "center", - "0", - "0.9" - ] - }, - { - "id": 1338, - "type": "LTXVBaseSampler", - "pos": [ - 2134.832763671875, - 2253.726318359375 - ], - "size": [ - 312.3999938964844, - 346 - ], - "flags": {}, - "order": 27, - "mode": 0, - "inputs": [ - { - "localized_name": "model", - "name": "model", - "type": "MODEL", - "link": 5430 - }, - { - "localized_name": "vae", - "name": "vae", - "type": "VAE", - "link": 5243 - }, - { - "localized_name": "guider", - "name": "guider", - "type": "GUIDER", - "link": 5412 - }, - { - "localized_name": "sampler", - "name": "sampler", - "type": "SAMPLER", - "link": 5224 - }, - { - "localized_name": "sigmas", - "name": "sigmas", - "type": "SIGMAS", - "link": 5380 - }, - { - "localized_name": "noise", - "name": "noise", - "type": "NOISE", - "link": 4053 - }, - { - "localized_name": "optional_cond_images", - "name": "optional_cond_images", - "shape": 7, - "type": "IMAGE", - "link": 5162 - }, - { - "localized_name": "width", - "name": "width", - "type": "INT", - "widget": { - "name": "width" - }, - "link": null - }, - { - "localized_name": "height", - "name": "height", - "type": "INT", - "widget": { - "name": "height" - }, - "link": null - }, - { - "localized_name": "num_frames", - "name": "num_frames", - "type": "INT", - "widget": { - "name": "num_frames" - }, - "link": null - }, - { - "localized_name": "optional_cond_indices", - "name": "optional_cond_indices", - "shape": 7, - "type": "STRING", - "widget": { - "name": "optional_cond_indices" - }, - "link": null - }, - { - "localized_name": "strength", - "name": "strength", - "shape": 7, - "type": "FLOAT", - "widget": { - "name": "strength" - }, - "link": null - }, - { - "localized_name": "crop", - "name": "crop", - "shape": 7, - "type": "COMBO", - "widget": { - "name": "crop" - }, - "link": null - }, - { - "localized_name": "crf", - "name": "crf", - "shape": 7, - "type": "INT", - "widget": { - "name": "crf" - }, - "link": null - }, - { - "localized_name": "blur", - "name": "blur", - "shape": 7, - "type": "INT", - "widget": { - "name": "blur" - }, - "link": null - } - ], - "outputs": [ - { - "localized_name": "denoised_output", - "name": "denoised_output", - "type": "LATENT", - "links": [ - 3576, - 5426, - 5427 - ] - } - ], - "properties": { - "Node name for S&R": "LTXVBaseSampler" - }, - "widgets_values": [ - 768, - 512, - 97, - "0", - 0.8, - "center", - 30, - 1 - ] - }, - { - "id": 1593, - "type": "LTXVAdainLatent", - "pos": [ - 3455.4423828125, - 2417.39697265625 - ], - "size": [ - 210, - 78 - ], - "flags": {}, - "order": 31, - "mode": 0, - "inputs": [ - { - "localized_name": "latents", - "name": "latents", - "type": "LATENT", - "link": 5429 - }, - { - "localized_name": "reference", - "name": "reference", - "type": "LATENT", - "link": 5427 - }, - { - "localized_name": "factor", - "name": "factor", - "type": "FLOAT", - "widget": { - "name": "factor" - }, - "link": null - } - ], - "outputs": [ - { - "localized_name": "LATENT", - "name": "LATENT", - "type": "LATENT", - "links": [ - 5422 - ] - } - ], - "properties": { - "Node name for S&R": "LTXVAdainLatent" - }, - "widgets_values": [ - 0.25 - ] - }, - { - "id": 1691, - "type": "LTXVLatentUpsampler", - "pos": [ - 3422.25244140625, - 2277.841796875 - ], - "size": [ - 235.1999969482422, - 66 - ], - "flags": {}, - "order": 29, - "mode": 0, - "inputs": [ - { - "localized_name": "samples", - "name": "samples", - "type": "LATENT", - "link": 5426 - }, - { - "localized_name": "upscale_model", - "name": "upscale_model", - "type": "UPSCALE_MODEL", - "link": 5303 - }, - { - "localized_name": "vae", - "name": "vae", - "type": "VAE", - "link": 5287 - } - ], - "outputs": [ - { - "localized_name": "LATENT", - "name": "LATENT", - "type": "LATENT", - "links": [ - 5429 - ] - } - ], - "properties": { - "Node name for S&R": "LTXVLatentUpsampler" - }, - "widgets_values": [] - }, - { - "id": 6, - "type": "CLIPTextEncode", - "pos": [ - 717.5663452148438, - 2114.04638671875 - ], - "size": [ - 307.2346496582031, - 204.2556610107422 - ], - "flags": {}, - "order": 18, - "mode": 0, - "inputs": [ - { - "localized_name": "clip", - "name": "clip", - "type": "CLIP", - "link": 74 - }, - { - "localized_name": "text", - "name": "text", - "type": "STRING", - "widget": { - "name": "text" - }, - "link": null - } - ], - "outputs": [ - { - "localized_name": "CONDITIONING", - "name": "CONDITIONING", - "type": "CONDITIONING", - "slot_index": 0, - "links": [ - 3364 - ] - } - ], - "title": "CLIP Text Encode (Positive Prompt)", - "properties": { - "Node name for S&R": "CLIPTextEncode", - "cnr_id": "comfy-core", - "ver": "0.3.28" - }, - "widgets_values": [ - "" - ], - "color": "#232", - "bgcolor": "#353" - }, - { - "id": 1891, - "type": "LTXQ8Patch", - "pos": [ - 1078.3681640625, - 2439.87646484375 - ], - "size": [ - 315, - 58 - ], - "flags": {}, - "order": 22, - "mode": 0, - "inputs": [ - { - "localized_name": "model", - "name": "model", - "type": "MODEL", - "link": 5434 - }, - { - "localized_name": "use_fp8_attention", - "name": "use_fp8_attention", - "type": "BOOLEAN", - "widget": { - "name": "use_fp8_attention" - }, - "link": null - } - ], - "outputs": [ - { - "localized_name": "MODEL", - "name": "MODEL", - "type": "MODEL", - "links": [ - 5430, - 5431, - 5432, - 5433 - ] - } - ], - "properties": { - "Node name for S&R": "LTXQ8Patch" - }, - "widgets_values": [ - false - ] - }, - { - "id": 44, - "type": "CheckpointLoaderSimple", - "pos": [ - 693.0345458984375, - 2696.984619140625 - ], - "size": [ - 339.6689147949219, - 126.58426666259766 - ], - "flags": {}, - "order": 17, - "mode": 0, - "inputs": [ - { - "localized_name": "ckpt_name", - "name": "ckpt_name", - "type": "COMBO", - "widget": { - "name": "ckpt_name" - }, - "link": null - } - ], - "outputs": [ - { - "localized_name": "MODEL", - "name": "MODEL", - "type": "MODEL", - "slot_index": 0, - "links": [ - 5434 - ] - }, - { - "localized_name": "CLIP", - "name": "CLIP", - "type": "CLIP", - "links": [] - }, - { - "localized_name": "VAE", - "name": "VAE", - "type": "VAE", - "slot_index": 2, - "links": [ - 5243, - 5287, - 5367, - 5369, - 5417 - ] - } - ], - "properties": { - "Node name for S&R": "CheckpointLoaderSimple", - "cnr_id": "comfy-core", - "ver": "0.3.28" - }, - "widgets_values": [ - "ltxv-13b-0.9.7-distilled-fp8.safetensors" - ] - } - ], - "links": [ - [ - 74, - 38, - 0, - 6, - 0, - "CLIP" - ], - [ - 75, - 38, - 0, - 7, - 0, - "CLIP" - ], - [ - 3364, - 6, - 0, - 1241, - 0, - "CONDITIONING" - ], - [ - 3365, - 7, - 0, - 1241, - 1, - "CONDITIONING" - ], - [ - 3576, - 1338, - 0, - 1335, - 0, - "LATENT" - ], - [ - 3578, - 1335, - 0, - 1336, - 0, - "IMAGE" - ], - [ - 4053, - 1507, - 0, - 1338, - 5, - "NOISE" - ], - [ - 4749, - 1601, - 0, - 1661, - 0, - "IMAGE" - ], - [ - 4751, - 1661, - 0, - 1699, - 0, - "IMAGE" - ], - [ - 4752, - 1699, - 0, - 1599, - 0, - "IMAGE" - ], - [ - 5162, - 1206, - 0, - 1338, - 6, - "IMAGE" - ], - [ - 5224, - 73, - 0, - 1338, - 3, - "SAMPLER" - ], - [ - 5243, - 44, - 2, - 1338, - 1, - "VAE" - ], - [ - 5274, - 1241, - 0, - 1813, - 1, - "CONDITIONING" - ], - [ - 5275, - 1241, - 1, - 1813, - 2, - "CONDITIONING" - ], - [ - 5287, - 44, - 2, - 1691, - 2, - "VAE" - ], - [ - 5303, - 1828, - 0, - 1691, - 1, - "UPSCALE_MODEL" - ], - [ - 5367, - 44, - 2, - 1872, - 0, - "VAE" - ], - [ - 5368, - 1872, - 0, - 1335, - 1, - "VAE" - ], - [ - 5369, - 44, - 2, - 1601, - 1, - "VAE" - ], - [ - 5379, - 1875, - 0, - 1876, - 0, - "FLOAT" - ], - [ - 5380, - 1876, - 0, - 1338, - 4, - "SIGMAS" - ], - [ - 5405, - 1241, - 1, - 1887, - 2, - "CONDITIONING" - ], - [ - 5406, - 1241, - 0, - 1887, - 1, - "CONDITIONING" - ], - [ - 5412, - 1887, - 0, - 1338, - 2, - "GUIDER" - ], - [ - 5414, - 1888, - 0, - 1889, - 0, - "FLOAT" - ], - [ - 5417, - 44, - 2, - 1890, - 1, - "VAE" - ], - [ - 5418, - 1598, - 0, - 1890, - 2, - "NOISE" - ], - [ - 5419, - 73, - 0, - 1890, - 3, - "SAMPLER" - ], - [ - 5420, - 1889, - 0, - 1890, - 4, - "SIGMAS" - ], - [ - 5421, - 1813, - 0, - 1890, - 5, - "GUIDER" - ], - [ - 5422, - 1593, - 0, - 1890, - 6, - "LATENT" - ], - [ - 5423, - 1890, - 0, - 1601, - 0, - "LATENT" - ], - [ - 5424, - 1206, - 0, - 1890, - 7, - "IMAGE" - ], - [ - 5426, - 1338, - 0, - 1691, - 0, - "LATENT" - ], - [ - 5427, - 1338, - 0, - 1593, - 1, - "LATENT" - ], - [ - 5429, - 1691, - 0, - 1593, - 0, - "LATENT" - ], - [ - 5430, - 1891, - 0, - 1338, - 0, - "MODEL" - ], - [ - 5431, - 1891, - 0, - 1813, - 0, - "MODEL" - ], - [ - 5432, - 1891, - 0, - 1887, - 0, - "MODEL" - ], - [ - 5433, - 1891, - 0, - 1890, - 0, - "MODEL" - ], - [ - 5434, - 44, - 0, - 1891, - 0, - "MODEL" - ] - ], - "groups": [ - { - "id": 20, - "title": "Base Low Res Generation ", - "bounding": [ - 1500, - 2037.5235595703125, - 1770.58251953125, - 850.8944091796875 - ], - "color": "#3f789e", - "font_size": 24, - "flags": {}, - "nodes": [ - 1335, - 1336, - 1859, - 1823, - 1860, - 1861, - 1872, - 1876, - 73, - 1874, - 1887, - 1507, - 1875, - 1338 - ] - }, - { - "id": 34, - "title": "Latent Upscaler", - "bounding": [ - 3311.04248046875, - 2044.1983642578125, - 364.39990234375, - 604.2252197265625 - ], - "color": "#3f789e", - "font_size": 24, - "flags": {}, - "nodes": [ - 1828, - 1863, - 1593, - 1691 - ] - }, - { - "id": 41, - "title": "Setup", - "bounding": [ - 329.9997863769531, - 2040.44580078125, - 1092.333984375, - 860.9241943359375 - ], - "color": "#3f789e", - "font_size": 24, - "flags": {}, - "nodes": [ - 7, - 38, - 1858, - 1825, - 1241, - 1206, - 6, - 1891, - 44 - ] - }, - { - "id": 42, - "title": "Add Details", - "bounding": [ - 3706.5087890625, - 2052.71044921875, - 2278.168701171875, - 851.0821533203125 - ], - "color": "#3f789e", - "font_size": 24, - "flags": {}, - "nodes": [ - 1661, - 1699, - 1862, - 1599, - 1813, - 1889, - 1888, - 1598, - 1601, - 1890 - ] - } - ], - "config": {}, - "extra": { - "ds": { - "scale": 0.826446280991736, - "offset": [ - -246.5641740545353, - -2117.9274079767492 - ] - }, - "frontendVersion": "1.17.11", - "VHS_latentpreview": true, - "VHS_latentpreviewrate": 0, - "VHS_MetadataImage": true, - "VHS_KeepIntermediate": true, - "prompt": { - "6": { - "inputs": { - "text": "", - "clip": [ - "38", - 0 - ] - }, - "class_type": "CLIPTextEncode", - "_meta": { - "title": "CLIP Text Encode (Positive Prompt)" - } - }, - "7": { - "inputs": { - "text": "low quality, worst quality, deformed, distorted, disfigured, motion smear, motion artifacts, fused fingers, bad anatomy, weird hand, ugly", - "clip": [ - "38", - 0 - ] - }, - "class_type": "CLIPTextEncode", - "_meta": { - "title": "CLIP Text Encode (Negative Prompt)" - } - }, - "38": { - "inputs": { - "clip_name": "t5xxl_fp16.safetensors", - "type": "ltxv", - "device": "default" - }, - "class_type": "CLIPLoader", - "_meta": { - "title": "Load CLIP" - } - }, - "44": { - "inputs": { - "ckpt_name": "ltxv-13b-0.9.7-distilled-fp8.safetensors" - }, - "class_type": "CheckpointLoaderSimple", - "_meta": { - "title": "Load Checkpoint" - } - }, - "73": { - "inputs": { - "sampler_name": "euler_ancestral" - }, - "class_type": "KSamplerSelect", - "_meta": { - "title": "KSamplerSelect" - } - }, - "1206": { - "inputs": { - "image": "0x1900-000000-80-0-0.jpg" - }, - "class_type": "LoadImage", - "_meta": { - "title": "Load Image" - } - }, - "1241": { - "inputs": { - "frame_rate": 24.000000000000004, - "positive": [ - "6", - 0 - ], - "negative": [ - "7", - 0 - ] - }, - "class_type": "LTXVConditioning", - "_meta": { - "title": "LTXVConditioning" - } - }, - "1335": { - "inputs": { - "samples": [ - "1338", - 0 - ], - "vae": [ - "1872", - 0 - ] - }, - "class_type": "VAEDecode", - "_meta": { - "title": "VAE Decode" - } - }, - "1336": { - "inputs": { - "frame_rate": 24, - "loop_count": 0, - "filename_prefix": "ltxv-base", - "format": "video/h264-mp4", - "pix_fmt": "yuv420p", - "crf": 19, - "save_metadata": true, - "pingpong": false, - "save_output": false, - "images": [ - "1335", - 0 - ] - }, - "class_type": "VHS_VideoCombine", - "_meta": { - "title": "Video Combine 🎥🅥🅗🅢" - } - }, - "1338": { - "inputs": { - "width": 768, - "height": 512, - "num_frames": 97, - "optional_cond_indices": "0", - "strength": 0.8, - "crop": "center", - "crf": 30, - "blur": 1, - "model": [ - "1891", - 0 - ], - "vae": [ - "44", - 2 - ], - "guider": [ - "1887", - 0 - ], - "sampler": [ - "73", - 0 - ], - "sigmas": [ - "1876", - 0 - ], - "noise": [ - "1507", - 0 - ], - "optional_cond_images": [ - "1206", - 0 - ] - }, - "class_type": "LTXVBaseSampler", - "_meta": { - "title": "🅛🅣🅧 LTXV Base Sampler" - } - }, - "1507": { - "inputs": { - "noise_seed": 118 - }, - "class_type": "RandomNoise", - "_meta": { - "title": "RandomNoise" - } - }, - "1593": { - "inputs": { - "factor": 0.25, - "latents": [ - "1691", - 0 - ], - "reference": [ - "1338", - 0 - ] - }, - "class_type": "LTXVAdainLatent", - "_meta": { - "title": "🅛🅣🅧 LTXV Adain Latent" - } - }, - "1598": { - "inputs": { - "noise_seed": 1252 - }, - "class_type": "RandomNoise", - "_meta": { - "title": "RandomNoise" - } - }, - "1599": { - "inputs": { - "frame_rate": 24, - "loop_count": 0, - "filename_prefix": "ltxv-hd", - "format": "video/h264-mp4", - "pix_fmt": "yuv420p", - "crf": 18, - "save_metadata": false, - "pingpong": false, - "save_output": false, - "images": [ - "1699", - 0 - ] - }, - "class_type": "VHS_VideoCombine", - "_meta": { - "title": "Video Combine 🎥🅥🅗🅢" - } - }, - "1601": { - "inputs": { - "tile_size": 1280, - "overlap": 128, - "temporal_size": 128, - "temporal_overlap": 32, - "samples": [ - "1890", - 0 - ], - "vae": [ - "44", - 2 - ] - }, - "class_type": "VAEDecodeTiled", - "_meta": { - "title": "VAE Decode (Tiled)" - } - }, - "1661": { - "inputs": { - "width": 1280, - "height": 1280, - "upscale_method": "bicubic", - "keep_proportion": true, - "divisible_by": 2, - "crop": "center", - "image": [ - "1601", - 0 - ] - }, - "class_type": "ImageResizeKJ", - "_meta": { - "title": "Resize Image" - } - }, - "1691": { - "inputs": { - "samples": [ - "1338", - 0 - ], - "upscale_model": [ - "1828", - 0 - ], - "vae": [ - "44", - 2 - ] - }, - "class_type": "LTXVLatentUpsampler", - "_meta": { - "title": "🅛🅣🅧 LTXV Latent Upsampler" - } - }, - "1699": { - "inputs": { - "grain_intensity": 0.010000000000000002, - "saturation": 0.5, - "images": [ - "1661", - 0 - ] - }, - "class_type": "LTXVFilmGrain", - "_meta": { - "title": "🅛🅣🅧 LTXV Film Grain" - } - }, - "1813": { - "inputs": { - "skip_steps_sigma_threshold": 0.9970000000000002, - "cfg_star_rescale": true, - "sigmas": "1", - "cfg_values": "1", - "stg_scale_values": "0", - "stg_rescale_values": "1", - "stg_layers_indices": "[42]", - "model": [ - "1891", - 0 - ], - "positive": [ - "1241", - 0 - ], - "negative": [ - "1241", - 1 - ] - }, - "class_type": "STGGuiderAdvanced", - "_meta": { - "title": "🅛🅣🅧 STG Guider Advanced" - } - }, - "1828": { - "inputs": { - "upscale_model": "ltxv-spatial-upscaler-0.9.8.safetensors", - "spatial_upsample": true, - "temporal_upsample": false - }, - "class_type": "LTXVLatentUpsamplerModelLoader", - "_meta": { - "title": "🅛🅣🅧 LTXV Latent Upsampler Model Loader" - } - }, - "1872": { - "inputs": { - "timestep": 0.05, - "scale": 0.025, - "seed": 42, - "vae": [ - "44", - 2 - ] - }, - "class_type": "Set VAE Decoder Noise", - "_meta": { - "title": "🅛🅣🅧 Set VAE Decoder Noise" - } - }, - "1875": { - "inputs": { - "string": "1.0000, 0.9937, 0.9875, 0.9812, 0.9750, 0.9094, 0.7250, 0.4219, 0.0" - }, - "class_type": "StringToFloatList", - "_meta": { - "title": "String to Float List" - } - }, - "1876": { - "inputs": { - "float_list": [ - "1875", - 0 - ] - }, - "class_type": "FloatToSigmas", - "_meta": { - "title": "Float To Sigmas" - } - }, - "1887": { - "inputs": { - "skip_steps_sigma_threshold": 0.9970000000000002, - "cfg_star_rescale": true, - "sigmas": "1.0, 0.9933, 0.9850, 0.9767, 0.9008, 0.6180", - "cfg_values": "1,1,1,1,1,1", - "stg_scale_values": "0,0,0,0,0,0", - "stg_rescale_values": "1, 1, 1, 1, 1, 1", - "stg_layers_indices": "[25], [35], [35], [42], [42], [42]", - "model": [ - "1891", - 0 - ], - "positive": [ - "1241", - 0 - ], - "negative": [ - "1241", - 1 - ] - }, - "class_type": "STGGuiderAdvanced", - "_meta": { - "title": "🅛🅣🅧 STG Guider Advanced" - } - }, - "1888": { - "inputs": { - "string": "0.85, 0.7250, 0.6, 0.4219, 0.0" - }, - "class_type": "StringToFloatList", - "_meta": { - "title": "String to Float List" - } - }, - "1889": { - "inputs": { - "float_list": [ - "1888", - 0 - ] - }, - "class_type": "FloatToSigmas", - "_meta": { - "title": "Float To Sigmas" - } - }, - "1890": { - "inputs": { - "horizontal_tiles": 1, - "vertical_tiles": 1, - "overlap": 1, - "latents_cond_strength": 0.15, - "boost_latent_similarity": false, - "crop": "center", - "optional_cond_indices": "0", - "images_cond_strengths": "0.9", - "model": [ - "1891", - 0 - ], - "vae": [ - "44", - 2 - ], - "noise": [ - "1598", - 0 - ], - "sampler": [ - "73", - 0 - ], - "sigmas": [ - "1889", - 0 - ], - "guider": [ - "1813", - 0 - ], - "latents": [ - "1593", - 0 - ], - "optional_cond_images": [ - "1206", - 0 - ] - }, - "class_type": "LTXVTiledSampler", - "_meta": { - "title": "🅛🅣🅧 LTXV Tiled Sampler" - } - }, - "1891": { - "inputs": { - "use_fp8_attention": false, - "model": [ - "44", - 0 - ] - }, - "class_type": "LTXQ8Patch", - "_meta": { - "title": "🅛🅣🅧 LTXQ8Patch" - } - } - }, - "comfy_fork_version": "develop@6c5efbfb", - "workspace_info": { - "id": "elBQFQknIoLYTEwIloQuw" - }, - "node_versions": { - "comfy-core": "0.3.30", - "comfyui-kjnodes": "1.0.8" - } - }, - "version": 0.4 -} diff --git a/example_workflows/13b-distilled/ltxv-13b-dist-i2v-base.json b/example_workflows/13b-distilled/ltxv-13b-dist-i2v-base.json deleted file mode 100644 index 3951fd7..0000000 --- a/example_workflows/13b-distilled/ltxv-13b-dist-i2v-base.json +++ /dev/null @@ -1,3211 +0,0 @@ -{ - "id": "394ed254-7306-42a2-9ae6-aa880ce4456d", - "revision": 0, - "last_node_id": 1890, - "last_link_id": 5429, - "nodes": [ - { - "id": 7, - "type": "CLIPTextEncode", - "pos": [ - 722.5008544921875, - 2398.3359375 - ], - "size": [ - 317.832275390625, - 213.2843780517578 - ], - "flags": {}, - "order": 19, - "mode": 0, - "inputs": [ - { - "localized_name": "clip", - "name": "clip", - "type": "CLIP", - "link": 75 - }, - { - "localized_name": "text", - "name": "text", - "type": "STRING", - "widget": { - "name": "text" - }, - "link": null - } - ], - "outputs": [ - { - "localized_name": "CONDITIONING", - "name": "CONDITIONING", - "type": "CONDITIONING", - "slot_index": 0, - "links": [ - 3365 - ] - } - ], - "title": "CLIP Text Encode (Negative Prompt)", - "properties": { - "Node name for S&R": "CLIPTextEncode", - "cnr_id": "comfy-core", - "ver": "0.3.28" - }, - "widgets_values": [ - "low quality, worst quality, deformed, distorted, disfigured, motion smear, motion artifacts, fused fingers, bad anatomy, weird hand, ugly" - ], - "color": "#322", - "bgcolor": "#533" - }, - { - "id": 38, - "type": "CLIPLoader", - "pos": [ - 339.99981689453125, - 2310.293701171875 - ], - "size": [ - 315, - 106 - ], - "flags": {}, - "order": 0, - "mode": 0, - "inputs": [ - { - "localized_name": "clip_name", - "name": "clip_name", - "type": "COMBO", - "widget": { - "name": "clip_name" - }, - "link": null - }, - { - "localized_name": "type", - "name": "type", - "type": "COMBO", - "widget": { - "name": "type" - }, - "link": null - }, - { - "localized_name": "device", - "name": "device", - "shape": 7, - "type": "COMBO", - "widget": { - "name": "device" - }, - "link": null - } - ], - "outputs": [ - { - "localized_name": "CLIP", - "name": "CLIP", - "type": "CLIP", - "slot_index": 0, - "links": [ - 74, - 75 - ] - } - ], - "properties": { - "Node name for S&R": "CLIPLoader", - "cnr_id": "comfy-core", - "ver": "0.3.28" - }, - "widgets_values": [ - "t5xxl_fp16.safetensors", - "ltxv", - "default" - ] - }, - { - "id": 1828, - "type": "LTXVLatentUpsamplerModelLoader", - "pos": [ - 3321.04248046875, - 2117.79833984375 - ], - "size": [ - 344.3999938964844, - 106 - ], - "flags": {}, - "order": 1, - "mode": 0, - "inputs": [ - { - "localized_name": "upscale_model", - "name": "upscale_model", - "type": "COMBO", - "widget": { - "name": "upscale_model" - }, - "link": null - }, - { - "localized_name": "spatial_upsample", - "name": "spatial_upsample", - "type": "BOOLEAN", - "widget": { - "name": "spatial_upsample" - }, - "link": null - }, - { - "localized_name": "temporal_upsample", - "name": "temporal_upsample", - "type": "BOOLEAN", - "widget": { - "name": "temporal_upsample" - }, - "link": null - } - ], - "outputs": [ - { - "localized_name": "UPSCALE_MODEL", - "name": "UPSCALE_MODEL", - "type": "UPSCALE_MODEL", - "links": [ - 5303 - ] - } - ], - "properties": { - "Node name for S&R": "LTXVLatentUpsamplerModelLoader" - }, - "widgets_values": [ - "ltxv-spatial-upscaler-0.9.8.safetensors", - true, - false - ] - }, - { - "id": 1661, - "type": "ImageResizeKJ", - "pos": [ - 4768.9892578125, - 2174.69091796875 - ], - "size": [ - 315, - 238 - ], - "flags": {}, - "order": 33, - "mode": 0, - "inputs": [ - { - "localized_name": "image", - "name": "image", - "type": "IMAGE", - "link": 4749 - }, - { - "localized_name": "width_input", - "name": "width_input", - "shape": 7, - "type": "INT", - "link": null - }, - { - "localized_name": "height_input", - "name": "height_input", - "shape": 7, - "type": "INT", - "link": null - }, - { - "localized_name": "get_image_size", - "name": "get_image_size", - "shape": 7, - "type": "IMAGE", - "link": null - }, - { - "localized_name": "width", - "name": "width", - "type": "INT", - "widget": { - "name": "width" - }, - "link": null - }, - { - "localized_name": "height", - "name": "height", - "type": "INT", - "widget": { - "name": "height" - }, - "link": null - }, - { - "localized_name": "upscale_method", - "name": "upscale_method", - "type": "COMBO", - "widget": { - "name": "upscale_method" - }, - "link": null - }, - { - "localized_name": "keep_proportion", - "name": "keep_proportion", - "type": "BOOLEAN", - "widget": { - "name": "keep_proportion" - }, - "link": null - }, - { - "localized_name": "divisible_by", - "name": "divisible_by", - "type": "INT", - "widget": { - "name": "divisible_by" - }, - "link": null - }, - { - "localized_name": "crop", - "name": "crop", - "shape": 7, - "type": "COMBO", - "widget": { - "name": "crop" - }, - "link": null - } - ], - "outputs": [ - { - "localized_name": "IMAGE", - "name": "IMAGE", - "type": "IMAGE", - "links": [ - 4751 - ] - }, - { - "localized_name": "width", - "name": "width", - "type": "INT", - "links": null - }, - { - "localized_name": "height", - "name": "height", - "type": "INT", - "links": null - } - ], - "properties": { - "Node name for S&R": "ImageResizeKJ" - }, - "widgets_values": [ - 1280, - 1280, - "bicubic", - true, - 2, - "center" - ] - }, - { - "id": 1335, - "type": "VAEDecode", - "pos": [ - 2515.01953125, - 2253.726318359375 - ], - "size": [ - 210, - 46 - ], - "flags": {}, - "order": 27, - "mode": 0, - "inputs": [ - { - "localized_name": "samples", - "name": "samples", - "type": "LATENT", - "link": 3576 - }, - { - "localized_name": "vae", - "name": "vae", - "type": "VAE", - "link": 5368 - } - ], - "outputs": [ - { - "localized_name": "IMAGE", - "name": "IMAGE", - "type": "IMAGE", - "links": [ - 3578 - ] - } - ], - "properties": { - "Node name for S&R": "VAEDecode", - "cnr_id": "comfy-core", - "ver": "0.3.29" - }, - "widgets_values": [] - }, - { - "id": 1699, - "type": "LTXVFilmGrain", - "pos": [ - 5123.873046875, - 2174.69091796875 - ], - "size": [ - 210, - 82 - ], - "flags": {}, - "order": 34, - "mode": 0, - "inputs": [ - { - "localized_name": "images", - "name": "images", - "type": "IMAGE", - "link": 4751 - }, - { - "localized_name": "grain_intensity", - "name": "grain_intensity", - "type": "FLOAT", - "widget": { - "name": "grain_intensity" - }, - "link": null - }, - { - "localized_name": "saturation", - "name": "saturation", - "type": "FLOAT", - "widget": { - "name": "saturation" - }, - "link": null - } - ], - "outputs": [ - { - "localized_name": "IMAGE", - "name": "IMAGE", - "type": "IMAGE", - "links": [ - 4752 - ] - } - ], - "properties": { - "Node name for S&R": "LTXVFilmGrain" - }, - "widgets_values": [ - 0.010000000000000002, - 0.5 - ] - }, - { - "id": 1336, - "type": "VHS_VideoCombine", - "pos": [ - 2789.545166015625, - 2253.726318359375 - ], - "size": [ - 471.0374755859375, - 624.691650390625 - ], - "flags": {}, - "order": 29, - "mode": 0, - "inputs": [ - { - "localized_name": "images", - "name": "images", - "shape": 7, - "type": "IMAGE", - "link": 3578 - }, - { - "localized_name": "audio", - "name": "audio", - "shape": 7, - "type": "AUDIO", - "link": null - }, - { - "localized_name": "meta_batch", - "name": "meta_batch", - "shape": 7, - "type": "VHS_BatchManager", - "link": null - }, - { - "localized_name": "vae", - "name": "vae", - "shape": 7, - "type": "VAE", - "link": null - }, - { - "localized_name": "frame_rate", - "name": "frame_rate", - "type": "FLOAT", - "widget": { - "name": "frame_rate" - }, - "link": null - }, - { - "localized_name": "loop_count", - "name": "loop_count", - "type": "INT", - "widget": { - "name": "loop_count" - }, - "link": null - }, - { - "localized_name": "filename_prefix", - "name": "filename_prefix", - "type": "STRING", - "widget": { - "name": "filename_prefix" - }, - "link": null - }, - { - "localized_name": "format", - "name": "format", - "type": "COMBO", - "widget": { - "name": "format" - }, - "link": null - }, - { - "localized_name": "pingpong", - "name": "pingpong", - "type": "BOOLEAN", - "widget": { - "name": "pingpong" - }, - "link": null - }, - { - "localized_name": "save_output", - "name": "save_output", - "type": "BOOLEAN", - "widget": { - "name": "save_output" - }, - "link": null - } - ], - "outputs": [ - { - "localized_name": "Filenames", - "name": "Filenames", - "type": "VHS_FILENAMES", - "links": null - } - ], - "properties": { - "Node name for S&R": "VHS_VideoCombine" - }, - "widgets_values": { - "frame_rate": 24, - "loop_count": 0, - "filename_prefix": "ltxv-base", - "format": "video/h264-mp4", - "pix_fmt": "yuv420p", - "crf": 19, - "save_metadata": true, - "pingpong": false, - "save_output": false, - "videopreview": { - "hidden": false, - "paused": false, - "params": { - "filename": "ltxv-base_00002.mp4", - "subfolder": "", - "type": "temp", - "format": "video/h264-mp4", - "frame_rate": 24 - } - } - } - }, - { - "id": 1858, - "type": "Note", - "pos": [ - 1090.729736328125, - 2106.790283203125 - ], - "size": [ - 313.80950927734375, - 120.61924743652344 - ], - "flags": {}, - "order": 2, - "mode": 0, - "inputs": [], - "outputs": [], - "properties": {}, - "widgets_values": [ - "Framerate can be adjusted, just make sure you are using the same framerate in your VideoCombine node to see proper playback.\n\n60FPS = Lower quality, more motion\n24 FPS = Higher quality, less motion" - ], - "color": "#432", - "bgcolor": "#653" - }, - { - "id": 1859, - "type": "Note", - "pos": [ - 2134.832763671875, - 2111.12353515625 - ], - "size": [ - 298.2620544433594, - 88 - ], - "flags": {}, - "order": 3, - "mode": 0, - "inputs": [], - "outputs": [], - "properties": {}, - "widgets_values": [ - "We generate at a base resolution of 768x512.\nThe video will be upscaled later to FHD." - ], - "color": "#432", - "bgcolor": "#653" - }, - { - "id": 1823, - "type": "Note", - "pos": [ - 1779.07470703125, - 2575.503662109375 - ], - "size": [ - 276.017578125, - 171.05442810058594 - ], - "flags": {}, - "order": 4, - "mode": 0, - "inputs": [], - "outputs": [], - "properties": {}, - "widgets_values": [ - "The Advanced STG Guider dynamically controls the diffusion model's denoising process by mapping sigma values to specific configuration parameters (CFG scale, STG scale/rescale factors, and attention layer skipping patterns), enabling precise control at different denoising stages independently of step numbers while supporting additional techniques like CFG-Zero rescaling and threshold-based noise prediction zeroing." - ], - "color": "#432", - "bgcolor": "#653" - }, - { - "id": 1860, - "type": "Note", - "pos": [ - 2134.832763671875, - 2658.40869140625 - ], - "size": [ - 300, - 130 - ], - "flags": {}, - "order": 5, - "mode": 0, - "inputs": [], - "outputs": [], - "properties": {}, - "widgets_values": [ - "crop decides if the conditioning image(s) is center-cropped or resized by stretching \n\ncrf and blur are preprocessing parameters for conditioning image(s) to make them look more like video frames, which helps with the dynamicity of the generated video" - ], - "color": "#432", - "bgcolor": "#653" - }, - { - "id": 1861, - "type": "Note", - "pos": [ - 1510, - 2368.19873046875 - ], - "size": [ - 216.66220092773438, - 88 - ], - "flags": {}, - "order": 6, - "mode": 0, - "inputs": [], - "outputs": [], - "properties": {}, - "widgets_values": [ - "Presets override the values inside 🅛🅣🅧 STG Guider Advanced node." - ], - "color": "#432", - "bgcolor": "#653" - }, - { - "id": 1825, - "type": "Note", - "pos": [ - 444.50042724609375, - 2121.438720703125 - ], - "size": [ - 232.79998779296875, - 88 - ], - "flags": {}, - "order": 7, - "mode": 0, - "inputs": [], - "outputs": [], - "properties": {}, - "widgets_values": [ - "Best use descriptive prompt, but you can even leave it empty in i2v case." - ], - "color": "#432", - "bgcolor": "#653" - }, - { - "id": 1863, - "type": "Note", - "pos": [ - 3343.06640625, - 2550.423583984375 - ], - "size": [ - 322.3760986328125, - 88 - ], - "flags": {}, - "order": 8, - "mode": 0, - "inputs": [], - "outputs": [], - "properties": {}, - "widgets_values": [ - "Depending on the latent upscaler model used, it can increase either spatial or temporal resolution, without moving to/from pixel space. " - ], - "color": "#432", - "bgcolor": "#653" - }, - { - "id": 1862, - "type": "Note", - "pos": [ - 4133.2216796875, - 2710.51806640625 - ], - "size": [ - 335.1761474609375, - 148.08804321289062 - ], - "flags": {}, - "order": 9, - "mode": 0, - "inputs": [], - "outputs": [], - "properties": {}, - "widgets_values": [ - "If you are not constrained in VRAM, run 1x1 tile starting from step 18 \nIf you are constrained in your available VRAM, run 2x2 tiles and use somewhat lower noies levels, starting from step 23.\n\n" - ], - "color": "#432", - "bgcolor": "#653" - }, - { - "id": 1599, - "type": "VHS_VideoCombine", - "pos": [ - 5363.87255859375, - 2174.69091796875 - ], - "size": [ - 610.8043212890625, - 719.1004028320312 - ], - "flags": {}, - "order": 35, - "mode": 0, - "inputs": [ - { - "localized_name": "images", - "name": "images", - "shape": 7, - "type": "IMAGE", - "link": 4752 - }, - { - "localized_name": "audio", - "name": "audio", - "shape": 7, - "type": "AUDIO", - "link": null - }, - { - "localized_name": "meta_batch", - "name": "meta_batch", - "shape": 7, - "type": "VHS_BatchManager", - "link": null - }, - { - "localized_name": "vae", - "name": "vae", - "shape": 7, - "type": "VAE", - "link": null - }, - { - "localized_name": "frame_rate", - "name": "frame_rate", - "type": "FLOAT", - "widget": { - "name": "frame_rate" - }, - "link": null - }, - { - "localized_name": "loop_count", - "name": "loop_count", - "type": "INT", - "widget": { - "name": "loop_count" - }, - "link": null - }, - { - "localized_name": "filename_prefix", - "name": "filename_prefix", - "type": "STRING", - "widget": { - "name": "filename_prefix" - }, - "link": null - }, - { - "localized_name": "format", - "name": "format", - "type": "COMBO", - "widget": { - "name": "format" - }, - "link": null - }, - { - "localized_name": "pingpong", - "name": "pingpong", - "type": "BOOLEAN", - "widget": { - "name": "pingpong" - }, - "link": null - }, - { - "localized_name": "save_output", - "name": "save_output", - "type": "BOOLEAN", - "widget": { - "name": "save_output" - }, - "link": null - } - ], - "outputs": [ - { - "localized_name": "Filenames", - "name": "Filenames", - "type": "VHS_FILENAMES", - "links": null - } - ], - "properties": { - "Node name for S&R": "VHS_VideoCombine", - "cnr_id": "comfyui-videohelpersuite", - "ver": "2c25b8b53835aaeb63f831b3137c705cf9f85dce" - }, - "widgets_values": { - "frame_rate": 24, - "loop_count": 0, - "filename_prefix": "ltxv-hd", - "format": "video/h264-mp4", - "pix_fmt": "yuv420p", - "crf": 18, - "save_metadata": false, - "pingpong": false, - "save_output": false, - "videopreview": { - "hidden": false, - "paused": false, - "params": { - "filename": "ltxv-hd_00003.mp4", - "subfolder": "", - "type": "temp", - "format": "video/h264-mp4", - "frame_rate": 24, - "workflow": "ltxv_00055.png", - "fullpath": "C:\\Users\\Zeev\\Projects\\ComfyUI\\temp\\ltxv_00055.mp4" - }, - "muted": true - } - } - }, - { - "id": 1872, - "type": "Set VAE Decoder Noise", - "pos": [ - 2513.900390625, - 2383.17529296875 - ], - "size": [ - 235.1999969482422, - 130 - ], - "flags": {}, - "order": 22, - "mode": 0, - "inputs": [ - { - "localized_name": "vae", - "name": "vae", - "type": "VAE", - "link": 5367 - }, - { - "localized_name": "timestep", - "name": "timestep", - "type": "FLOAT", - "widget": { - "name": "timestep" - }, - "link": null - }, - { - "localized_name": "scale", - "name": "scale", - "type": "FLOAT", - "widget": { - "name": "scale" - }, - "link": null - }, - { - "localized_name": "seed", - "name": "seed", - "type": "INT", - "widget": { - "name": "seed" - }, - "link": null - } - ], - "outputs": [ - { - "localized_name": "VAE", - "name": "VAE", - "type": "VAE", - "links": [ - 5368 - ] - } - ], - "properties": { - "Node name for S&R": "Set VAE Decoder Noise" - }, - "widgets_values": [ - 0.05, - 0.025, - 42, - "fixed" - ] - }, - { - "id": 1876, - "type": "FloatToSigmas", - "pos": [ - 2223.5966796875, - 2857.569091796875 - ], - "size": [ - 216.59999084472656, - 26 - ], - "flags": {}, - "order": 20, - "mode": 0, - "inputs": [ - { - "localized_name": "float_list", - "name": "float_list", - "type": "FLOAT", - "link": 5379 - } - ], - "outputs": [ - { - "localized_name": "SIGMAS", - "name": "SIGMAS", - "type": "SIGMAS", - "links": [ - 5380 - ] - } - ], - "properties": { - "Node name for S&R": "FloatToSigmas" - }, - "widgets_values": [] - }, - { - "id": 73, - "type": "KSamplerSelect", - "pos": [ - 1510, - 2608.19873046875 - ], - "size": [ - 251.94110107421875, - 58 - ], - "flags": {}, - "order": 10, - "mode": 0, - "inputs": [ - { - "localized_name": "sampler_name", - "name": "sampler_name", - "type": "COMBO", - "widget": { - "name": "sampler_name" - }, - "link": null - } - ], - "outputs": [ - { - "localized_name": "SAMPLER", - "name": "SAMPLER", - "type": "SAMPLER", - "links": [ - 5224, - 5419 - ] - } - ], - "properties": { - "Node name for S&R": "KSamplerSelect", - "cnr_id": "comfy-core", - "ver": "0.3.28" - }, - "widgets_values": [ - "euler_ancestral" - ] - }, - { - "id": 1241, - "type": "LTXVConditioning", - "pos": [ - 1082.930419921875, - 2271.91064453125 - ], - "size": [ - 328.21636962890625, - 78 - ], - "flags": {}, - "order": 23, - "mode": 0, - "inputs": [ - { - "localized_name": "positive", - "name": "positive", - "type": "CONDITIONING", - "link": 3364 - }, - { - "localized_name": "negative", - "name": "negative", - "type": "CONDITIONING", - "link": 3365 - }, - { - "localized_name": "frame_rate", - "name": "frame_rate", - "type": "FLOAT", - "widget": { - "name": "frame_rate" - }, - "link": null - } - ], - "outputs": [ - { - "localized_name": "positive", - "name": "positive", - "type": "CONDITIONING", - "slot_index": 0, - "links": [ - 5274, - 5406 - ] - }, - { - "localized_name": "negative", - "name": "negative", - "type": "CONDITIONING", - "slot_index": 1, - "links": [ - 5275, - 5405 - ] - } - ], - "properties": { - "Node name for S&R": "LTXVConditioning", - "cnr_id": "comfy-core", - "ver": "0.3.28" - }, - "widgets_values": [ - 24.000000000000004 - ] - }, - { - "id": 6, - "type": "CLIPTextEncode", - "pos": [ - 717.5663452148438, - 2114.04638671875 - ], - "size": [ - 307.2346496582031, - 204.2556610107422 - ], - "flags": {}, - "order": 18, - "mode": 0, - "inputs": [ - { - "localized_name": "clip", - "name": "clip", - "type": "CLIP", - "link": 74 - }, - { - "localized_name": "text", - "name": "text", - "type": "STRING", - "widget": { - "name": "text" - }, - "link": null - } - ], - "outputs": [ - { - "localized_name": "CONDITIONING", - "name": "CONDITIONING", - "type": "CONDITIONING", - "slot_index": 0, - "links": [ - 3364 - ] - } - ], - "title": "CLIP Text Encode (Positive Prompt)", - "properties": { - "Node name for S&R": "CLIPTextEncode", - "cnr_id": "comfy-core", - "ver": "0.3.28" - }, - "widgets_values": [ - "gorilla enters the scene and hugs the man" - ], - "color": "#232", - "bgcolor": "#353" - }, - { - "id": 1874, - "type": "Note", - "pos": [ - 1488.787353515625, - 2789.536376953125 - ], - "size": [ - 303.5919494628906, - 88 - ], - "flags": {}, - "order": 11, - "mode": 0, - "inputs": [], - "outputs": [], - "properties": {}, - "widgets_values": [ - "Full list of sigmas for the distilled model:\n1.0000, 0.9937, 0.9875, 0.9812, 0.9750, 0.9094, 0.7250, 0.4219, 0.0" - ], - "color": "#432", - "bgcolor": "#653" - }, - { - "id": 1887, - "type": "STGGuiderAdvanced", - "pos": [ - 1798.5238037109375, - 2258.350830078125 - ], - "size": [ - 278.79998779296875, - 262 - ], - "flags": {}, - "order": 25, - "mode": 0, - "inputs": [ - { - "localized_name": "model", - "name": "model", - "type": "MODEL", - "link": 5407 - }, - { - "localized_name": "positive", - "name": "positive", - "type": "CONDITIONING", - "link": 5406 - }, - { - "localized_name": "negative", - "name": "negative", - "type": "CONDITIONING", - "link": 5405 - }, - { - "localized_name": "preset", - "name": "preset", - "shape": 7, - "type": "STG_ADVANCED_PRESET", - "link": null - }, - { - "localized_name": "skip_steps_sigma_threshold", - "name": "skip_steps_sigma_threshold", - "type": "FLOAT", - "widget": { - "name": "skip_steps_sigma_threshold" - }, - "link": null - }, - { - "localized_name": "cfg_star_rescale", - "name": "cfg_star_rescale", - "type": "BOOLEAN", - "widget": { - "name": "cfg_star_rescale" - }, - "link": null - }, - { - "localized_name": "sigmas", - "name": "sigmas", - "type": "STRING", - "widget": { - "name": "sigmas" - }, - "link": null - }, - { - "localized_name": "cfg_values", - "name": "cfg_values", - "type": "STRING", - "widget": { - "name": "cfg_values" - }, - "link": null - }, - { - "localized_name": "stg_scale_values", - "name": "stg_scale_values", - "type": "STRING", - "widget": { - "name": "stg_scale_values" - }, - "link": null - }, - { - "localized_name": "stg_rescale_values", - "name": "stg_rescale_values", - "type": "STRING", - "widget": { - "name": "stg_rescale_values" - }, - "link": null - }, - { - "localized_name": "stg_layers_indices", - "name": "stg_layers_indices", - "type": "STRING", - "widget": { - "name": "stg_layers_indices" - }, - "link": null - } - ], - "outputs": [ - { - "localized_name": "GUIDER", - "name": "GUIDER", - "type": "GUIDER", - "links": [ - 5412 - ] - } - ], - "properties": { - "Node name for S&R": "STGGuiderAdvanced" - }, - "widgets_values": [ - 0.9970000000000002, - true, - "1.0, 0.9933, 0.9850, 0.9767, 0.9008, 0.6180", - "1,1,1,1,1,1", - "0,0,0,0,0,0", - "1, 1, 1, 1, 1, 1", - "[25], [35], [35], [42], [42], [42]" - ] - }, - { - "id": 1507, - "type": "RandomNoise", - "pos": [ - 1847.874755859375, - 2114.199462890625 - ], - "size": [ - 210, - 82 - ], - "flags": {}, - "order": 12, - "mode": 0, - "inputs": [ - { - "localized_name": "noise_seed", - "name": "noise_seed", - "type": "INT", - "widget": { - "name": "noise_seed" - }, - "link": null - } - ], - "outputs": [ - { - "localized_name": "NOISE", - "name": "NOISE", - "type": "NOISE", - "slot_index": 0, - "links": [ - 4053 - ] - } - ], - "properties": { - "Node name for S&R": "RandomNoise", - "cnr_id": "comfy-core", - "ver": "0.3.28" - }, - "widgets_values": [ - 118, - "fixed" - ] - }, - { - "id": 1813, - "type": "STGGuiderAdvanced", - "pos": [ - 3716.509033203125, - 2267.65087890625 - ], - "size": [ - 278.79998779296875, - 262 - ], - "flags": {}, - "order": 24, - "mode": 0, - "inputs": [ - { - "localized_name": "model", - "name": "model", - "type": "MODEL", - "link": 5240 - }, - { - "localized_name": "positive", - "name": "positive", - "type": "CONDITIONING", - "link": 5274 - }, - { - "localized_name": "negative", - "name": "negative", - "type": "CONDITIONING", - "link": 5275 - }, - { - "localized_name": "preset", - "name": "preset", - "shape": 7, - "type": "STG_ADVANCED_PRESET", - "link": null - }, - { - "localized_name": "skip_steps_sigma_threshold", - "name": "skip_steps_sigma_threshold", - "type": "FLOAT", - "widget": { - "name": "skip_steps_sigma_threshold" - }, - "link": null - }, - { - "localized_name": "cfg_star_rescale", - "name": "cfg_star_rescale", - "type": "BOOLEAN", - "widget": { - "name": "cfg_star_rescale" - }, - "link": null - }, - { - "localized_name": "sigmas", - "name": "sigmas", - "type": "STRING", - "widget": { - "name": "sigmas" - }, - "link": null - }, - { - "localized_name": "cfg_values", - "name": "cfg_values", - "type": "STRING", - "widget": { - "name": "cfg_values" - }, - "link": null - }, - { - "localized_name": "stg_scale_values", - "name": "stg_scale_values", - "type": "STRING", - "widget": { - "name": "stg_scale_values" - }, - "link": null - }, - { - "localized_name": "stg_rescale_values", - "name": "stg_rescale_values", - "type": "STRING", - "widget": { - "name": "stg_rescale_values" - }, - "link": null - }, - { - "localized_name": "stg_layers_indices", - "name": "stg_layers_indices", - "type": "STRING", - "widget": { - "name": "stg_layers_indices" - }, - "link": null - } - ], - "outputs": [ - { - "localized_name": "GUIDER", - "name": "GUIDER", - "type": "GUIDER", - "links": [ - 5421 - ] - } - ], - "properties": { - "Node name for S&R": "STGGuiderAdvanced" - }, - "widgets_values": [ - 0.9970000000000002, - true, - "1", - "1", - "0", - "1", - "[42]" - ] - }, - { - "id": 1875, - "type": "StringToFloatList", - "pos": [ - 1864.56298828125, - 2803.1142578125 - ], - "size": [ - 210, - 88 - ], - "flags": {}, - "order": 13, - "mode": 0, - "inputs": [ - { - "localized_name": "string", - "name": "string", - "type": "STRING", - "widget": { - "name": "string" - }, - "link": null - } - ], - "outputs": [ - { - "localized_name": "FLOAT", - "name": "FLOAT", - "type": "FLOAT", - "links": [ - 5379 - ] - } - ], - "properties": { - "Node name for S&R": "StringToFloatList", - "cnr_id": "comfyui-kjnodes", - "ver": "0addfc6101f7a834c7fb6e0a1b26529360ab5350" - }, - "widgets_values": [ - "1.0000, 0.9937, 0.9875, 0.9812, 0.9750, 0.9094, 0.7250, 0.4219, 0.0" - ], - "color": "#223", - "bgcolor": "#335" - }, - { - "id": 1889, - "type": "FloatToSigmas", - "pos": [ - 4146.88916015625, - 2597.5654296875 - ], - "size": [ - 216.59999084472656, - 26 - ], - "flags": {}, - "order": 21, - "mode": 0, - "inputs": [ - { - "localized_name": "float_list", - "name": "float_list", - "type": "FLOAT", - "link": 5414 - } - ], - "outputs": [ - { - "localized_name": "SIGMAS", - "name": "SIGMAS", - "type": "SIGMAS", - "links": [ - 5420 - ] - } - ], - "properties": { - "Node name for S&R": "FloatToSigmas" - }, - "widgets_values": [] - }, - { - "id": 1888, - "type": "StringToFloatList", - "pos": [ - 3717.850341796875, - 2600.141845703125 - ], - "size": [ - 395.74224853515625, - 88 - ], - "flags": {}, - "order": 14, - "mode": 0, - "inputs": [ - { - "localized_name": "string", - "name": "string", - "type": "STRING", - "widget": { - "name": "string" - }, - "link": null - } - ], - "outputs": [ - { - "localized_name": "FLOAT", - "name": "FLOAT", - "type": "FLOAT", - "links": [ - 5414 - ] - } - ], - "properties": { - "Node name for S&R": "StringToFloatList", - "cnr_id": "comfyui-kjnodes", - "ver": "0addfc6101f7a834c7fb6e0a1b26529360ab5350" - }, - "widgets_values": [ - "0.85, 0.7250, 0.6, 0.4219, 0.0" - ], - "color": "#223", - "bgcolor": "#335" - }, - { - "id": 1598, - "type": "RandomNoise", - "pos": [ - 3782.752197265625, - 2126.30908203125 - ], - "size": [ - 210, - 82 - ], - "flags": {}, - "order": 15, - "mode": 0, - "inputs": [ - { - "localized_name": "noise_seed", - "name": "noise_seed", - "type": "INT", - "widget": { - "name": "noise_seed" - }, - "link": null - } - ], - "outputs": [ - { - "localized_name": "NOISE", - "name": "NOISE", - "type": "NOISE", - "links": [ - 5418 - ] - } - ], - "properties": { - "Node name for S&R": "RandomNoise", - "cnr_id": "comfy-core", - "ver": "0.3.30" - }, - "widgets_values": [ - 1252, - "fixed" - ] - }, - { - "id": 1601, - "type": "VAEDecodeTiled", - "pos": [ - 4519.10546875, - 2174.69091796875 - ], - "size": [ - 210, - 150 - ], - "flags": {}, - "order": 32, - "mode": 0, - "inputs": [ - { - "localized_name": "samples", - "name": "samples", - "type": "LATENT", - "link": 5423 - }, - { - "localized_name": "vae", - "name": "vae", - "type": "VAE", - "link": 5369 - }, - { - "localized_name": "tile_size", - "name": "tile_size", - "type": "INT", - "widget": { - "name": "tile_size" - }, - "link": null - }, - { - "localized_name": "overlap", - "name": "overlap", - "type": "INT", - "widget": { - "name": "overlap" - }, - "link": null - }, - { - "localized_name": "temporal_size", - "name": "temporal_size", - "type": "INT", - "widget": { - "name": "temporal_size" - }, - "link": null - }, - { - "localized_name": "temporal_overlap", - "name": "temporal_overlap", - "type": "INT", - "widget": { - "name": "temporal_overlap" - }, - "link": null - } - ], - "outputs": [ - { - "localized_name": "IMAGE", - "name": "IMAGE", - "type": "IMAGE", - "links": [ - 4749 - ] - } - ], - "properties": { - "Node name for S&R": "VAEDecodeTiled", - "cnr_id": "comfy-core", - "ver": "0.3.29" - }, - "widgets_values": [ - 1280, - 128, - 128, - 32 - ] - }, - { - "id": 1206, - "type": "LoadImage", - "pos": [ - 1069.734375, - 2577.37060546875 - ], - "size": [ - 342.5999755859375, - 314 - ], - "flags": {}, - "order": 16, - "mode": 0, - "inputs": [ - { - "localized_name": "image", - "name": "image", - "type": "COMBO", - "widget": { - "name": "image" - }, - "link": null - }, - { - "localized_name": "choose file to upload", - "name": "upload", - "type": "IMAGEUPLOAD", - "widget": { - "name": "upload" - }, - "link": null - } - ], - "outputs": [ - { - "localized_name": "IMAGE", - "name": "IMAGE", - "type": "IMAGE", - "links": [ - 5162, - 5424 - ] - }, - { - "localized_name": "MASK", - "name": "MASK", - "type": "MASK", - "links": null - } - ], - "properties": { - "Node name for S&R": "LoadImage", - "cnr_id": "comfy-core", - "ver": "0.3.30" - }, - "widgets_values": [ - "0x1900-000000-80-0-0.jpg", - "image" - ] - }, - { - "id": 1890, - "type": "LTXVTiledSampler", - "pos": [ - 4127.365234375, - 2141.89501953125 - ], - "size": [ - 329.20001220703125, - 379.9051818847656 - ], - "flags": {}, - "order": 31, - "mode": 0, - "inputs": [ - { - "localized_name": "model", - "name": "model", - "type": "MODEL", - "link": 5416 - }, - { - "localized_name": "vae", - "name": "vae", - "type": "VAE", - "link": 5417 - }, - { - "localized_name": "noise", - "name": "noise", - "type": "NOISE", - "link": 5418 - }, - { - "localized_name": "sampler", - "name": "sampler", - "type": "SAMPLER", - "link": 5419 - }, - { - "localized_name": "sigmas", - "name": "sigmas", - "type": "SIGMAS", - "link": 5420 - }, - { - "localized_name": "guider", - "name": "guider", - "type": "GUIDER", - "link": 5421 - }, - { - "localized_name": "latents", - "name": "latents", - "type": "LATENT", - "link": 5422 - }, - { - "localized_name": "optional_cond_images", - "name": "optional_cond_images", - "shape": 7, - "type": "IMAGE", - "link": 5424 - }, - { - "localized_name": "horizontal_tiles", - "name": "horizontal_tiles", - "type": "INT", - "widget": { - "name": "horizontal_tiles" - }, - "link": null - }, - { - "localized_name": "vertical_tiles", - "name": "vertical_tiles", - "type": "INT", - "widget": { - "name": "vertical_tiles" - }, - "link": null - }, - { - "localized_name": "overlap", - "name": "overlap", - "type": "INT", - "widget": { - "name": "overlap" - }, - "link": null - }, - { - "localized_name": "latents_cond_strength", - "name": "latents_cond_strength", - "type": "FLOAT", - "widget": { - "name": "latents_cond_strength" - }, - "link": null - }, - { - "localized_name": "boost_latent_similarity", - "name": "boost_latent_similarity", - "type": "BOOLEAN", - "widget": { - "name": "boost_latent_similarity" - }, - "link": null - }, - { - "localized_name": "crop", - "name": "crop", - "type": "COMBO", - "widget": { - "name": "crop" - }, - "link": null - }, - { - "localized_name": "optional_cond_indices", - "name": "optional_cond_indices", - "shape": 7, - "type": "STRING", - "widget": { - "name": "optional_cond_indices" - }, - "link": null - }, - { - "localized_name": "images_cond_strengths", - "name": "images_cond_strengths", - "shape": 7, - "type": "STRING", - "widget": { - "name": "images_cond_strengths" - }, - "link": null - } - ], - "outputs": [ - { - "localized_name": "output", - "name": "output", - "type": "LATENT", - "links": [ - 5423 - ] - }, - { - "localized_name": "denoised_output", - "name": "denoised_output", - "type": "LATENT", - "links": null - } - ], - "properties": { - "Node name for S&R": "LTXVTiledSampler" - }, - "widgets_values": [ - 1, - 1, - 1, - 0.15, - false, - "center", - "0", - "0.9" - ] - }, - { - "id": 44, - "type": "CheckpointLoaderSimple", - "pos": [ - 1076.8690185546875, - 2403.034912109375 - ], - "size": [ - 339.6689147949219, - 126.58426666259766 - ], - "flags": {}, - "order": 17, - "mode": 0, - "inputs": [ - { - "localized_name": "ckpt_name", - "name": "ckpt_name", - "type": "COMBO", - "widget": { - "name": "ckpt_name" - }, - "link": null - } - ], - "outputs": [ - { - "localized_name": "MODEL", - "name": "MODEL", - "type": "MODEL", - "slot_index": 0, - "links": [ - 5236, - 5240, - 5407, - 5416 - ] - }, - { - "localized_name": "CLIP", - "name": "CLIP", - "type": "CLIP", - "links": [] - }, - { - "localized_name": "VAE", - "name": "VAE", - "type": "VAE", - "slot_index": 2, - "links": [ - 5243, - 5287, - 5367, - 5369, - 5417 - ] - } - ], - "properties": { - "Node name for S&R": "CheckpointLoaderSimple", - "cnr_id": "comfy-core", - "ver": "0.3.28" - }, - "widgets_values": [ - "ltxv-13b-0.9.7-distilled.safetensors" - ] - }, - { - "id": 1338, - "type": "LTXVBaseSampler", - "pos": [ - 2134.832763671875, - 2253.726318359375 - ], - "size": [ - 312.3999938964844, - 346 - ], - "flags": {}, - "order": 26, - "mode": 0, - "inputs": [ - { - "localized_name": "model", - "name": "model", - "type": "MODEL", - "link": 5236 - }, - { - "localized_name": "vae", - "name": "vae", - "type": "VAE", - "link": 5243 - }, - { - "localized_name": "guider", - "name": "guider", - "type": "GUIDER", - "link": 5412 - }, - { - "localized_name": "sampler", - "name": "sampler", - "type": "SAMPLER", - "link": 5224 - }, - { - "localized_name": "sigmas", - "name": "sigmas", - "type": "SIGMAS", - "link": 5380 - }, - { - "localized_name": "noise", - "name": "noise", - "type": "NOISE", - "link": 4053 - }, - { - "localized_name": "optional_cond_images", - "name": "optional_cond_images", - "shape": 7, - "type": "IMAGE", - "link": 5162 - }, - { - "localized_name": "width", - "name": "width", - "type": "INT", - "widget": { - "name": "width" - }, - "link": null - }, - { - "localized_name": "height", - "name": "height", - "type": "INT", - "widget": { - "name": "height" - }, - "link": null - }, - { - "localized_name": "num_frames", - "name": "num_frames", - "type": "INT", - "widget": { - "name": "num_frames" - }, - "link": null - }, - { - "localized_name": "optional_cond_indices", - "name": "optional_cond_indices", - "shape": 7, - "type": "STRING", - "widget": { - "name": "optional_cond_indices" - }, - "link": null - }, - { - "localized_name": "strength", - "name": "strength", - "shape": 7, - "type": "FLOAT", - "widget": { - "name": "strength" - }, - "link": null - }, - { - "localized_name": "crop", - "name": "crop", - "shape": 7, - "type": "COMBO", - "widget": { - "name": "crop" - }, - "link": null - }, - { - "localized_name": "crf", - "name": "crf", - "shape": 7, - "type": "INT", - "widget": { - "name": "crf" - }, - "link": null - }, - { - "localized_name": "blur", - "name": "blur", - "shape": 7, - "type": "INT", - "widget": { - "name": "blur" - }, - "link": null - } - ], - "outputs": [ - { - "localized_name": "denoised_output", - "name": "denoised_output", - "type": "LATENT", - "links": [ - 3576, - 5426, - 5427 - ] - } - ], - "properties": { - "Node name for S&R": "LTXVBaseSampler" - }, - "widgets_values": [ - 768, - 512, - 97, - "0", - 0.8, - "center", - 30, - 1 - ] - }, - { - "id": 1593, - "type": "LTXVAdainLatent", - "pos": [ - 3455.4423828125, - 2417.39697265625 - ], - "size": [ - 210, - 78 - ], - "flags": {}, - "order": 30, - "mode": 0, - "inputs": [ - { - "localized_name": "latents", - "name": "latents", - "type": "LATENT", - "link": 5429 - }, - { - "localized_name": "reference", - "name": "reference", - "type": "LATENT", - "link": 5427 - }, - { - "localized_name": "factor", - "name": "factor", - "type": "FLOAT", - "widget": { - "name": "factor" - }, - "link": null - } - ], - "outputs": [ - { - "localized_name": "LATENT", - "name": "LATENT", - "type": "LATENT", - "links": [ - 5422 - ] - } - ], - "properties": { - "Node name for S&R": "LTXVAdainLatent" - }, - "widgets_values": [ - 0.25 - ] - }, - { - "id": 1691, - "type": "LTXVLatentUpsampler", - "pos": [ - 3422.25244140625, - 2277.841796875 - ], - "size": [ - 235.1999969482422, - 66 - ], - "flags": {}, - "order": 28, - "mode": 0, - "inputs": [ - { - "localized_name": "samples", - "name": "samples", - "type": "LATENT", - "link": 5426 - }, - { - "localized_name": "upscale_model", - "name": "upscale_model", - "type": "UPSCALE_MODEL", - "link": 5303 - }, - { - "localized_name": "vae", - "name": "vae", - "type": "VAE", - "link": 5287 - } - ], - "outputs": [ - { - "localized_name": "LATENT", - "name": "LATENT", - "type": "LATENT", - "links": [ - 5429 - ] - } - ], - "properties": { - "Node name for S&R": "LTXVLatentUpsampler" - }, - "widgets_values": [] - } - ], - "links": [ - [ - 74, - 38, - 0, - 6, - 0, - "CLIP" - ], - [ - 75, - 38, - 0, - 7, - 0, - "CLIP" - ], - [ - 3364, - 6, - 0, - 1241, - 0, - "CONDITIONING" - ], - [ - 3365, - 7, - 0, - 1241, - 1, - "CONDITIONING" - ], - [ - 3576, - 1338, - 0, - 1335, - 0, - "LATENT" - ], - [ - 3578, - 1335, - 0, - 1336, - 0, - "IMAGE" - ], - [ - 4053, - 1507, - 0, - 1338, - 5, - "NOISE" - ], - [ - 4749, - 1601, - 0, - 1661, - 0, - "IMAGE" - ], - [ - 4751, - 1661, - 0, - 1699, - 0, - "IMAGE" - ], - [ - 4752, - 1699, - 0, - 1599, - 0, - "IMAGE" - ], - [ - 5162, - 1206, - 0, - 1338, - 6, - "IMAGE" - ], - [ - 5224, - 73, - 0, - 1338, - 3, - "SAMPLER" - ], - [ - 5236, - 44, - 0, - 1338, - 0, - "MODEL" - ], - [ - 5240, - 44, - 0, - 1813, - 0, - "MODEL" - ], - [ - 5243, - 44, - 2, - 1338, - 1, - "VAE" - ], - [ - 5274, - 1241, - 0, - 1813, - 1, - "CONDITIONING" - ], - [ - 5275, - 1241, - 1, - 1813, - 2, - "CONDITIONING" - ], - [ - 5287, - 44, - 2, - 1691, - 2, - "VAE" - ], - [ - 5303, - 1828, - 0, - 1691, - 1, - "UPSCALE_MODEL" - ], - [ - 5367, - 44, - 2, - 1872, - 0, - "VAE" - ], - [ - 5368, - 1872, - 0, - 1335, - 1, - "VAE" - ], - [ - 5369, - 44, - 2, - 1601, - 1, - "VAE" - ], - [ - 5379, - 1875, - 0, - 1876, - 0, - "FLOAT" - ], - [ - 5380, - 1876, - 0, - 1338, - 4, - "SIGMAS" - ], - [ - 5405, - 1241, - 1, - 1887, - 2, - "CONDITIONING" - ], - [ - 5406, - 1241, - 0, - 1887, - 1, - "CONDITIONING" - ], - [ - 5407, - 44, - 0, - 1887, - 0, - "MODEL" - ], - [ - 5412, - 1887, - 0, - 1338, - 2, - "GUIDER" - ], - [ - 5414, - 1888, - 0, - 1889, - 0, - "FLOAT" - ], - [ - 5416, - 44, - 0, - 1890, - 0, - "MODEL" - ], - [ - 5417, - 44, - 2, - 1890, - 1, - "VAE" - ], - [ - 5418, - 1598, - 0, - 1890, - 2, - "NOISE" - ], - [ - 5419, - 73, - 0, - 1890, - 3, - "SAMPLER" - ], - [ - 5420, - 1889, - 0, - 1890, - 4, - "SIGMAS" - ], - [ - 5421, - 1813, - 0, - 1890, - 5, - "GUIDER" - ], - [ - 5422, - 1593, - 0, - 1890, - 6, - "LATENT" - ], - [ - 5423, - 1890, - 0, - 1601, - 0, - "LATENT" - ], - [ - 5424, - 1206, - 0, - 1890, - 7, - "IMAGE" - ], - [ - 5426, - 1338, - 0, - 1691, - 0, - "LATENT" - ], - [ - 5427, - 1338, - 0, - 1593, - 1, - "LATENT" - ], - [ - 5429, - 1691, - 0, - 1593, - 0, - "LATENT" - ] - ], - "groups": [ - { - "id": 20, - "title": "Base Low Res Generation ", - "bounding": [ - 1500, - 2037.5235595703125, - 1770.58251953125, - 850.8944091796875 - ], - "color": "#3f789e", - "font_size": 24, - "flags": {}, - "nodes": [ - 1335, - 1336, - 1859, - 1823, - 1860, - 1861, - 1872, - 1876, - 73, - 1874, - 1887, - 1507, - 1875, - 1338 - ] - }, - { - "id": 34, - "title": "Latent Upscaler", - "bounding": [ - 3311.04248046875, - 2044.1983642578125, - 364.39990234375, - 604.2252197265625 - ], - "color": "#3f789e", - "font_size": 24, - "flags": {}, - "nodes": [ - 1828, - 1863, - 1593, - 1691 - ] - }, - { - "id": 41, - "title": "Setup", - "bounding": [ - 329.9997863769531, - 2040.44580078125, - 1092.333984375, - 860.9241943359375 - ], - "color": "#3f789e", - "font_size": 24, - "flags": {}, - "nodes": [ - 7, - 38, - 1858, - 1825, - 1241, - 6, - 1206, - 44 - ] - }, - { - "id": 42, - "title": "Add Details", - "bounding": [ - 3706.5087890625, - 2052.71044921875, - 2278.168701171875, - 851.0821533203125 - ], - "color": "#3f789e", - "font_size": 24, - "flags": {}, - "nodes": [ - 1661, - 1699, - 1862, - 1599, - 1813, - 1889, - 1888, - 1598, - 1601, - 1890 - ] - } - ], - "config": {}, - "extra": { - "ds": { - "scale": 0.6830134553650705, - "offset": [ - -715.3375588717321, - -2094.1065481265505 - ] - }, - "frontendVersion": "1.17.11", - "VHS_latentpreview": true, - "VHS_latentpreviewrate": 0, - "VHS_MetadataImage": true, - "VHS_KeepIntermediate": true, - "prompt": { - "6": { - "inputs": { - "text": "gorilla enters the scene and hugs the man", - "clip": [ - "38", - 0 - ] - }, - "class_type": "CLIPTextEncode", - "_meta": { - "title": "CLIP Text Encode (Positive Prompt)" - } - }, - "7": { - "inputs": { - "text": "low quality, worst quality, deformed, distorted, disfigured, motion smear, motion artifacts, fused fingers, bad anatomy, weird hand, ugly", - "clip": [ - "38", - 0 - ] - }, - "class_type": "CLIPTextEncode", - "_meta": { - "title": "CLIP Text Encode (Negative Prompt)" - } - }, - "38": { - "inputs": { - "clip_name": "t5xxl_fp16.safetensors", - "type": "ltxv", - "device": "default" - }, - "class_type": "CLIPLoader", - "_meta": { - "title": "Load CLIP" - } - }, - "44": { - "inputs": { - "ckpt_name": "ltxv-13b-0.9.7-distilled.safetensors" - }, - "class_type": "CheckpointLoaderSimple", - "_meta": { - "title": "Load Checkpoint" - } - }, - "73": { - "inputs": { - "sampler_name": "euler_ancestral" - }, - "class_type": "KSamplerSelect", - "_meta": { - "title": "KSamplerSelect" - } - }, - "1206": { - "inputs": { - "image": "0x1900-000000-80-0-0.jpg" - }, - "class_type": "LoadImage", - "_meta": { - "title": "Load Image" - } - }, - "1241": { - "inputs": { - "frame_rate": 24.000000000000004, - "positive": [ - "6", - 0 - ], - "negative": [ - "7", - 0 - ] - }, - "class_type": "LTXVConditioning", - "_meta": { - "title": "LTXVConditioning" - } - }, - "1335": { - "inputs": { - "samples": [ - "1338", - 0 - ], - "vae": [ - "1872", - 0 - ] - }, - "class_type": "VAEDecode", - "_meta": { - "title": "VAE Decode" - } - }, - "1336": { - "inputs": { - "frame_rate": 24, - "loop_count": 0, - "filename_prefix": "ltxv-base", - "format": "video/h264-mp4", - "pix_fmt": "yuv420p", - "crf": 19, - "save_metadata": true, - "pingpong": false, - "save_output": false, - "images": [ - "1335", - 0 - ] - }, - "class_type": "VHS_VideoCombine", - "_meta": { - "title": "Video Combine 🎥🅥🅗🅢" - } - }, - "1338": { - "inputs": { - "width": 768, - "height": 512, - "num_frames": 97, - "optional_cond_indices": "0", - "strength": 0.8, - "crop": "center", - "crf": 30, - "blur": 1, - "model": [ - "44", - 0 - ], - "vae": [ - "44", - 2 - ], - "guider": [ - "1887", - 0 - ], - "sampler": [ - "73", - 0 - ], - "sigmas": [ - "1876", - 0 - ], - "noise": [ - "1507", - 0 - ], - "optional_cond_images": [ - "1206", - 0 - ] - }, - "class_type": "LTXVBaseSampler", - "_meta": { - "title": "🅛🅣🅧 LTXV Base Sampler" - } - }, - "1507": { - "inputs": { - "noise_seed": 118 - }, - "class_type": "RandomNoise", - "_meta": { - "title": "RandomNoise" - } - }, - "1593": { - "inputs": { - "factor": 0.25, - "latents": [ - "1691", - 0 - ], - "reference": [ - "1338", - 0 - ] - }, - "class_type": "LTXVAdainLatent", - "_meta": { - "title": "🅛🅣🅧 LTXV Adain Latent" - } - }, - "1598": { - "inputs": { - "noise_seed": 1252 - }, - "class_type": "RandomNoise", - "_meta": { - "title": "RandomNoise" - } - }, - "1599": { - "inputs": { - "frame_rate": 24, - "loop_count": 0, - "filename_prefix": "ltxv-hd", - "format": "video/h264-mp4", - "pix_fmt": "yuv420p", - "crf": 18, - "save_metadata": false, - "pingpong": false, - "save_output": false, - "images": [ - "1699", - 0 - ] - }, - "class_type": "VHS_VideoCombine", - "_meta": { - "title": "Video Combine 🎥🅥🅗🅢" - } - }, - "1601": { - "inputs": { - "tile_size": 1280, - "overlap": 128, - "temporal_size": 128, - "temporal_overlap": 32, - "samples": [ - "1890", - 0 - ], - "vae": [ - "44", - 2 - ] - }, - "class_type": "VAEDecodeTiled", - "_meta": { - "title": "VAE Decode (Tiled)" - } - }, - "1661": { - "inputs": { - "width": 1280, - "height": 1280, - "upscale_method": "bicubic", - "keep_proportion": true, - "divisible_by": 2, - "crop": "center", - "image": [ - "1601", - 0 - ] - }, - "class_type": "ImageResizeKJ", - "_meta": { - "title": "Resize Image" - } - }, - "1691": { - "inputs": { - "samples": [ - "1338", - 0 - ], - "upscale_model": [ - "1828", - 0 - ], - "vae": [ - "44", - 2 - ] - }, - "class_type": "LTXVLatentUpsampler", - "_meta": { - "title": "🅛🅣🅧 LTXV Latent Upsampler" - } - }, - "1699": { - "inputs": { - "grain_intensity": 0.010000000000000002, - "saturation": 0.5, - "images": [ - "1661", - 0 - ] - }, - "class_type": "LTXVFilmGrain", - "_meta": { - "title": "🅛🅣🅧 LTXV Film Grain" - } - }, - "1813": { - "inputs": { - "skip_steps_sigma_threshold": 0.9970000000000002, - "cfg_star_rescale": true, - "sigmas": "1", - "cfg_values": "1", - "stg_scale_values": "0", - "stg_rescale_values": "1", - "stg_layers_indices": "[42]", - "model": [ - "44", - 0 - ], - "positive": [ - "1241", - 0 - ], - "negative": [ - "1241", - 1 - ] - }, - "class_type": "STGGuiderAdvanced", - "_meta": { - "title": "🅛🅣🅧 STG Guider Advanced" - } - }, - "1828": { - "inputs": { - "upscale_model": "ltxv-spatial-upscaler-0.9.8.safetensors", - "spatial_upsample": true, - "temporal_upsample": false - }, - "class_type": "LTXVLatentUpsamplerModelLoader", - "_meta": { - "title": "🅛🅣🅧 LTXV Latent Upsampler Model Loader" - } - }, - "1872": { - "inputs": { - "timestep": 0.05, - "scale": 0.025, - "seed": 42, - "vae": [ - "44", - 2 - ] - }, - "class_type": "Set VAE Decoder Noise", - "_meta": { - "title": "🅛🅣🅧 Set VAE Decoder Noise" - } - }, - "1875": { - "inputs": { - "string": "1.0000, 0.9937, 0.9875, 0.9812, 0.9750, 0.9094, 0.7250, 0.4219, 0.0" - }, - "class_type": "StringToFloatList", - "_meta": { - "title": "String to Float List" - } - }, - "1876": { - "inputs": { - "float_list": [ - "1875", - 0 - ] - }, - "class_type": "FloatToSigmas", - "_meta": { - "title": "Float To Sigmas" - } - }, - "1887": { - "inputs": { - "skip_steps_sigma_threshold": 0.9970000000000002, - "cfg_star_rescale": true, - "sigmas": "1.0, 0.9933, 0.9850, 0.9767, 0.9008, 0.6180", - "cfg_values": "1,1,1,1,1,1", - "stg_scale_values": "0,0,0,0,0,0", - "stg_rescale_values": "1, 1, 1, 1, 1, 1", - "stg_layers_indices": "[25], [35], [35], [42], [42], [42]", - "model": [ - "44", - 0 - ], - "positive": [ - "1241", - 0 - ], - "negative": [ - "1241", - 1 - ] - }, - "class_type": "STGGuiderAdvanced", - "_meta": { - "title": "🅛🅣🅧 STG Guider Advanced" - } - }, - "1888": { - "inputs": { - "string": "0.85, 0.7250, 0.6, 0.4219, 0.0" - }, - "class_type": "StringToFloatList", - "_meta": { - "title": "String to Float List" - } - }, - "1889": { - "inputs": { - "float_list": [ - "1888", - 0 - ] - }, - "class_type": "FloatToSigmas", - "_meta": { - "title": "Float To Sigmas" - } - }, - "1890": { - "inputs": { - "horizontal_tiles": 1, - "vertical_tiles": 1, - "overlap": 1, - "latents_cond_strength": 0.15, - "boost_latent_similarity": false, - "crop": "center", - "optional_cond_indices": "0", - "images_cond_strengths": "0.9", - "model": [ - "44", - 0 - ], - "vae": [ - "44", - 2 - ], - "noise": [ - "1598", - 0 - ], - "sampler": [ - "73", - 0 - ], - "sigmas": [ - "1889", - 0 - ], - "guider": [ - "1813", - 0 - ], - "latents": [ - "1593", - 0 - ], - "optional_cond_images": [ - "1206", - 0 - ] - }, - "class_type": "LTXVTiledSampler", - "_meta": { - "title": "🅛🅣🅧 LTXV Tiled Sampler" - } - } - }, - "comfy_fork_version": "develop@6c5efbfb", - "workspace_info": { - "id": "elBQFQknIoLYTEwIloQuw" - }, - "node_versions": { - "comfy-core": "0.3.30", - "comfyui-kjnodes": "1.0.8" - } - }, - "version": 0.4 -} diff --git a/example_workflows/13b-distilled/ltxv-13b-dist-i2v-extend.json b/example_workflows/13b-distilled/ltxv-13b-dist-i2v-extend.json deleted file mode 100644 index fd7ac74..0000000 --- a/example_workflows/13b-distilled/ltxv-13b-dist-i2v-extend.json +++ /dev/null @@ -1,3739 +0,0 @@ -{ - "id": "394ed254-7306-42a2-9ae6-aa880ce4456d", - "revision": 0, - "last_node_id": 1890, - "last_link_id": 5424, - "nodes": [ - { - "id": 7, - "type": "CLIPTextEncode", - "pos": [ - 722.5008544921875, - 2398.3359375 - ], - "size": [ - 317.832275390625, - 213.2843780517578 - ], - "flags": {}, - "order": 21, - "mode": 0, - "inputs": [ - { - "localized_name": "clip", - "name": "clip", - "type": "CLIP", - "link": 75 - }, - { - "localized_name": "text", - "name": "text", - "type": "STRING", - "widget": { - "name": "text" - }, - "link": null - } - ], - "outputs": [ - { - "localized_name": "CONDITIONING", - "name": "CONDITIONING", - "type": "CONDITIONING", - "slot_index": 0, - "links": [ - 3365 - ] - } - ], - "title": "CLIP Text Encode (Negative Prompt)", - "properties": { - "cnr_id": "comfy-core", - "ver": "0.3.28", - "Node name for S&R": "CLIPTextEncode" - }, - "widgets_values": [ - "low quality, worst quality, deformed, distorted, disfigured, motion smear, motion artifacts, fused fingers, bad anatomy, weird hand, ugly" - ], - "color": "#322", - "bgcolor": "#533" - }, - { - "id": 38, - "type": "CLIPLoader", - "pos": [ - 339.99981689453125, - 2310.293701171875 - ], - "size": [ - 315, - 106 - ], - "flags": {}, - "order": 0, - "mode": 0, - "inputs": [ - { - "localized_name": "clip_name", - "name": "clip_name", - "type": "COMBO", - "widget": { - "name": "clip_name" - }, - "link": null - }, - { - "localized_name": "type", - "name": "type", - "type": "COMBO", - "widget": { - "name": "type" - }, - "link": null - }, - { - "localized_name": "device", - "name": "device", - "shape": 7, - "type": "COMBO", - "widget": { - "name": "device" - }, - "link": null - } - ], - "outputs": [ - { - "localized_name": "CLIP", - "name": "CLIP", - "type": "CLIP", - "slot_index": 0, - "links": [ - 74, - 75 - ] - } - ], - "properties": { - "cnr_id": "comfy-core", - "ver": "0.3.28", - "Node name for S&R": "CLIPLoader" - }, - "widgets_values": [ - "t5xxl_fp16.safetensors", - "ltxv", - "default" - ] - }, - { - "id": 1828, - "type": "LTXVLatentUpsamplerModelLoader", - "pos": [ - 4692.08154296875, - 2119.833251953125 - ], - "size": [ - 344.3999938964844, - 106 - ], - "flags": {}, - "order": 1, - "mode": 0, - "inputs": [ - { - "localized_name": "upscale_model", - "name": "upscale_model", - "type": "COMBO", - "widget": { - "name": "upscale_model" - }, - "link": null - }, - { - "localized_name": "spatial_upsample", - "name": "spatial_upsample", - "type": "BOOLEAN", - "widget": { - "name": "spatial_upsample" - }, - "link": null - }, - { - "localized_name": "temporal_upsample", - "name": "temporal_upsample", - "type": "BOOLEAN", - "widget": { - "name": "temporal_upsample" - }, - "link": null - } - ], - "outputs": [ - { - "localized_name": "UPSCALE_MODEL", - "name": "UPSCALE_MODEL", - "type": "UPSCALE_MODEL", - "links": [ - 5303 - ] - } - ], - "properties": { - "Node name for S&R": "LTXVLatentUpsamplerModelLoader" - }, - "widgets_values": [ - "ltxv-spatial-upscaler-0.9.8.safetensors", - true, - false - ] - }, - { - "id": 1661, - "type": "ImageResizeKJ", - "pos": [ - 6183.54443359375, - 2173.679931640625 - ], - "size": [ - 315, - 238 - ], - "flags": {}, - "order": 38, - "mode": 0, - "inputs": [ - { - "localized_name": "image", - "name": "image", - "type": "IMAGE", - "link": 4749 - }, - { - "localized_name": "width_input", - "name": "width_input", - "shape": 7, - "type": "INT", - "link": null - }, - { - "localized_name": "height_input", - "name": "height_input", - "shape": 7, - "type": "INT", - "link": null - }, - { - "localized_name": "get_image_size", - "name": "get_image_size", - "shape": 7, - "type": "IMAGE", - "link": null - }, - { - "localized_name": "width", - "name": "width", - "type": "INT", - "widget": { - "name": "width" - }, - "link": null - }, - { - "localized_name": "height", - "name": "height", - "type": "INT", - "widget": { - "name": "height" - }, - "link": null - }, - { - "localized_name": "upscale_method", - "name": "upscale_method", - "type": "COMBO", - "widget": { - "name": "upscale_method" - }, - "link": null - }, - { - "localized_name": "keep_proportion", - "name": "keep_proportion", - "type": "BOOLEAN", - "widget": { - "name": "keep_proportion" - }, - "link": null - }, - { - "localized_name": "divisible_by", - "name": "divisible_by", - "type": "INT", - "widget": { - "name": "divisible_by" - }, - "link": null - }, - { - "localized_name": "crop", - "name": "crop", - "shape": 7, - "type": "COMBO", - "widget": { - "name": "crop" - }, - "link": null - } - ], - "outputs": [ - { - "localized_name": "IMAGE", - "name": "IMAGE", - "type": "IMAGE", - "links": [ - 4751 - ] - }, - { - "localized_name": "width", - "name": "width", - "type": "INT", - "links": null - }, - { - "localized_name": "height", - "name": "height", - "type": "INT", - "links": null - } - ], - "properties": { - "Node name for S&R": "ImageResizeKJ" - }, - "widgets_values": [ - 1280, - 1280, - "bicubic", - true, - 2, - "center" - ] - }, - { - "id": 1335, - "type": "VAEDecode", - "pos": [ - 2515.01953125, - 2253.726318359375 - ], - "size": [ - 210, - 46 - ], - "flags": {}, - "order": 29, - "mode": 0, - "inputs": [ - { - "localized_name": "samples", - "name": "samples", - "type": "LATENT", - "link": 3576 - }, - { - "localized_name": "vae", - "name": "vae", - "type": "VAE", - "link": 5368 - } - ], - "outputs": [ - { - "localized_name": "IMAGE", - "name": "IMAGE", - "type": "IMAGE", - "links": [ - 3578 - ] - } - ], - "properties": { - "cnr_id": "comfy-core", - "ver": "0.3.29", - "Node name for S&R": "VAEDecode" - }, - "widgets_values": [] - }, - { - "id": 1699, - "type": "LTXVFilmGrain", - "pos": [ - 6538.42822265625, - 2173.679931640625 - ], - "size": [ - 210, - 82 - ], - "flags": {}, - "order": 39, - "mode": 0, - "inputs": [ - { - "localized_name": "images", - "name": "images", - "type": "IMAGE", - "link": 4751 - }, - { - "localized_name": "grain_intensity", - "name": "grain_intensity", - "type": "FLOAT", - "widget": { - "name": "grain_intensity" - }, - "link": null - }, - { - "localized_name": "saturation", - "name": "saturation", - "type": "FLOAT", - "widget": { - "name": "saturation" - }, - "link": null - } - ], - "outputs": [ - { - "localized_name": "IMAGE", - "name": "IMAGE", - "type": "IMAGE", - "links": [ - 4752 - ] - } - ], - "properties": { - "Node name for S&R": "LTXVFilmGrain" - }, - "widgets_values": [ - 0.010000000000000002, - 0.5 - ] - }, - { - "id": 1336, - "type": "VHS_VideoCombine", - "pos": [ - 2789.545166015625, - 2253.726318359375 - ], - "size": [ - 471.0374755859375, - 624.691650390625 - ], - "flags": {}, - "order": 31, - "mode": 0, - "inputs": [ - { - "localized_name": "images", - "name": "images", - "shape": 7, - "type": "IMAGE", - "link": 3578 - }, - { - "localized_name": "audio", - "name": "audio", - "shape": 7, - "type": "AUDIO", - "link": null - }, - { - "localized_name": "meta_batch", - "name": "meta_batch", - "shape": 7, - "type": "VHS_BatchManager", - "link": null - }, - { - "localized_name": "vae", - "name": "vae", - "shape": 7, - "type": "VAE", - "link": null - }, - { - "localized_name": "frame_rate", - "name": "frame_rate", - "type": "FLOAT", - "widget": { - "name": "frame_rate" - }, - "link": null - }, - { - "localized_name": "loop_count", - "name": "loop_count", - "type": "INT", - "widget": { - "name": "loop_count" - }, - "link": null - }, - { - "localized_name": "filename_prefix", - "name": "filename_prefix", - "type": "STRING", - "widget": { - "name": "filename_prefix" - }, - "link": null - }, - { - "localized_name": "format", - "name": "format", - "type": "COMBO", - "widget": { - "name": "format" - }, - "link": null - }, - { - "localized_name": "pingpong", - "name": "pingpong", - "type": "BOOLEAN", - "widget": { - "name": "pingpong" - }, - "link": null - }, - { - "localized_name": "save_output", - "name": "save_output", - "type": "BOOLEAN", - "widget": { - "name": "save_output" - }, - "link": null - } - ], - "outputs": [ - { - "localized_name": "Filenames", - "name": "Filenames", - "type": "VHS_FILENAMES", - "links": null - } - ], - "properties": { - "Node name for S&R": "VHS_VideoCombine" - }, - "widgets_values": { - "frame_rate": 24, - "loop_count": 0, - "filename_prefix": "ltxv-base", - "format": "video/h264-mp4", - "pix_fmt": "yuv420p", - "crf": 19, - "save_metadata": true, - "pingpong": false, - "save_output": false, - "videopreview": { - "hidden": false, - "paused": false, - "params": { - "filename": "ltxv-base_00042.mp4", - "subfolder": "", - "type": "temp", - "format": "video/h264-mp4", - "frame_rate": 24 - } - } - } - }, - { - "id": 1858, - "type": "Note", - "pos": [ - 1090.729736328125, - 2106.790283203125 - ], - "size": [ - 313.80950927734375, - 120.61924743652344 - ], - "flags": {}, - "order": 2, - "mode": 0, - "inputs": [], - "outputs": [], - "properties": {}, - "widgets_values": [ - "Framerate can be adjusted, just make sure you are using the same framerate in your VideoCombine node to see proper playback.\n\n60FPS = Lower quality, more motion\n24 FPS = Higher quality, less motion" - ], - "color": "#432", - "bgcolor": "#653" - }, - { - "id": 1859, - "type": "Note", - "pos": [ - 2134.832763671875, - 2111.12353515625 - ], - "size": [ - 298.2620544433594, - 88 - ], - "flags": {}, - "order": 3, - "mode": 0, - "inputs": [], - "outputs": [], - "properties": {}, - "widgets_values": [ - "We generate at a base resolution of 768x512.\nThe video will be upscaled later to FHD." - ], - "color": "#432", - "bgcolor": "#653" - }, - { - "id": 1823, - "type": "Note", - "pos": [ - 1779.07470703125, - 2575.503662109375 - ], - "size": [ - 276.017578125, - 171.05442810058594 - ], - "flags": {}, - "order": 4, - "mode": 0, - "inputs": [], - "outputs": [], - "properties": {}, - "widgets_values": [ - "The Advanced STG Guider dynamically controls the diffusion model's denoising process by mapping sigma values to specific configuration parameters (CFG scale, STG scale/rescale factors, and attention layer skipping patterns), enabling precise control at different denoising stages independently of step numbers while supporting additional techniques like CFG-Zero rescaling and threshold-based noise prediction zeroing." - ], - "color": "#432", - "bgcolor": "#653" - }, - { - "id": 1860, - "type": "Note", - "pos": [ - 2134.832763671875, - 2658.40869140625 - ], - "size": [ - 300, - 130 - ], - "flags": {}, - "order": 5, - "mode": 0, - "inputs": [], - "outputs": [], - "properties": {}, - "widgets_values": [ - "crop decides if the conditioning image(s) is center-cropped or resized by stretching \n\ncrf and blur are preprocessing parameters for conditioning image(s) to make them look more like video frames, which helps with the dynamicity of the generated video" - ], - "color": "#432", - "bgcolor": "#653" - }, - { - "id": 1861, - "type": "Note", - "pos": [ - 1510, - 2368.19873046875 - ], - "size": [ - 216.66220092773438, - 88 - ], - "flags": {}, - "order": 6, - "mode": 0, - "inputs": [], - "outputs": [], - "properties": {}, - "widgets_values": [ - "Presets override the values inside 🅛🅣🅧 STG Guider Advanced node." - ], - "color": "#432", - "bgcolor": "#653" - }, - { - "id": 1825, - "type": "Note", - "pos": [ - 444.50042724609375, - 2121.438720703125 - ], - "size": [ - 232.79998779296875, - 88 - ], - "flags": {}, - "order": 7, - "mode": 0, - "inputs": [], - "outputs": [], - "properties": {}, - "widgets_values": [ - "Best use descriptive prompt, but you can even leave it empty in i2v case." - ], - "color": "#432", - "bgcolor": "#653" - }, - { - "id": 1691, - "type": "LTXVLatentUpsampler", - "pos": [ - 4801.28125, - 2288.74267578125 - ], - "size": [ - 235.1999969482422, - 66 - ], - "flags": {}, - "order": 33, - "mode": 0, - "inputs": [ - { - "localized_name": "samples", - "name": "samples", - "type": "LATENT", - "link": 5364 - }, - { - "localized_name": "upscale_model", - "name": "upscale_model", - "type": "UPSCALE_MODEL", - "link": 5303 - }, - { - "localized_name": "vae", - "name": "vae", - "type": "VAE", - "link": 5287 - } - ], - "outputs": [ - { - "localized_name": "LATENT", - "name": "LATENT", - "type": "LATENT", - "links": [ - 5297 - ] - } - ], - "properties": { - "Node name for S&R": "LTXVLatentUpsampler" - }, - "widgets_values": [] - }, - { - "id": 1593, - "type": "LTXVAdainLatent", - "pos": [ - 4826.4814453125, - 2419.431884765625 - ], - "size": [ - 210, - 78 - ], - "flags": {}, - "order": 35, - "mode": 0, - "inputs": [ - { - "localized_name": "latents", - "name": "latents", - "type": "LATENT", - "link": 5297 - }, - { - "localized_name": "reference", - "name": "reference", - "type": "LATENT", - "link": 5365 - }, - { - "localized_name": "factor", - "name": "factor", - "type": "FLOAT", - "widget": { - "name": "factor" - }, - "link": null - } - ], - "outputs": [ - { - "localized_name": "LATENT", - "name": "LATENT", - "type": "LATENT", - "links": [ - 5422 - ] - } - ], - "properties": { - "Node name for S&R": "LTXVAdainLatent" - }, - "widgets_values": [ - 0.25 - ] - }, - { - "id": 1863, - "type": "Note", - "pos": [ - 4714.10546875, - 2552.45849609375 - ], - "size": [ - 322.3760986328125, - 88 - ], - "flags": {}, - "order": 8, - "mode": 0, - "inputs": [], - "outputs": [], - "properties": {}, - "widgets_values": [ - "Depending on the latent upscaler model used, it can increase either spatial or temporal resolution, without moving to/from pixel space. " - ], - "color": "#432", - "bgcolor": "#653" - }, - { - "id": 1862, - "type": "Note", - "pos": [ - 5547.77685546875, - 2709.507080078125 - ], - "size": [ - 335.1761474609375, - 148.08804321289062 - ], - "flags": {}, - "order": 9, - "mode": 0, - "inputs": [], - "outputs": [], - "properties": {}, - "widgets_values": [ - "If you are not constrained in VRAM, run 1x1 tile starting from step 18 \nIf you are constrained in your available VRAM, run 2x2 tiles and use somewhat lower noies levels, starting from step 23.\n\n" - ], - "color": "#432", - "bgcolor": "#653" - }, - { - "id": 1599, - "type": "VHS_VideoCombine", - "pos": [ - 6778.427734375, - 2173.679931640625 - ], - "size": [ - 610.8043212890625, - 719.1004028320312 - ], - "flags": {}, - "order": 40, - "mode": 0, - "inputs": [ - { - "localized_name": "images", - "name": "images", - "shape": 7, - "type": "IMAGE", - "link": 4752 - }, - { - "localized_name": "audio", - "name": "audio", - "shape": 7, - "type": "AUDIO", - "link": null - }, - { - "localized_name": "meta_batch", - "name": "meta_batch", - "shape": 7, - "type": "VHS_BatchManager", - "link": null - }, - { - "localized_name": "vae", - "name": "vae", - "shape": 7, - "type": "VAE", - "link": null - }, - { - "localized_name": "frame_rate", - "name": "frame_rate", - "type": "FLOAT", - "widget": { - "name": "frame_rate" - }, - "link": null - }, - { - "localized_name": "loop_count", - "name": "loop_count", - "type": "INT", - "widget": { - "name": "loop_count" - }, - "link": null - }, - { - "localized_name": "filename_prefix", - "name": "filename_prefix", - "type": "STRING", - "widget": { - "name": "filename_prefix" - }, - "link": null - }, - { - "localized_name": "format", - "name": "format", - "type": "COMBO", - "widget": { - "name": "format" - }, - "link": null - }, - { - "localized_name": "pingpong", - "name": "pingpong", - "type": "BOOLEAN", - "widget": { - "name": "pingpong" - }, - "link": null - }, - { - "localized_name": "save_output", - "name": "save_output", - "type": "BOOLEAN", - "widget": { - "name": "save_output" - }, - "link": null - } - ], - "outputs": [ - { - "localized_name": "Filenames", - "name": "Filenames", - "type": "VHS_FILENAMES", - "links": null - } - ], - "properties": { - "Node name for S&R": "VHS_VideoCombine", - "cnr_id": "comfyui-videohelpersuite", - "ver": "2c25b8b53835aaeb63f831b3137c705cf9f85dce" - }, - "widgets_values": { - "frame_rate": 24, - "loop_count": 0, - "filename_prefix": "ltxv-hd", - "format": "video/h264-mp4", - "pix_fmt": "yuv420p", - "crf": 18, - "save_metadata": false, - "pingpong": false, - "save_output": false, - "videopreview": { - "hidden": false, - "paused": true, - "params": { - "filename": "ltxv-hd_00004.mp4", - "subfolder": "", - "type": "temp", - "format": "video/h264-mp4", - "frame_rate": 24, - "workflow": "ltxv_00055.png", - "fullpath": "C:\\Users\\Zeev\\Projects\\ComfyUI\\temp\\ltxv_00055.mp4" - }, - "muted": true - } - } - }, - { - "id": 1865, - "type": "VAEDecode", - "pos": [ - 3763.29150390625, - 2248.952880859375 - ], - "size": [ - 210, - 46 - ], - "flags": {}, - "order": 32, - "mode": 0, - "inputs": [ - { - "localized_name": "samples", - "name": "samples", - "type": "LATENT", - "link": 5355 - }, - { - "localized_name": "vae", - "name": "vae", - "type": "VAE", - "link": 5370 - } - ], - "outputs": [ - { - "localized_name": "IMAGE", - "name": "IMAGE", - "type": "IMAGE", - "links": [ - 5356 - ] - } - ], - "properties": { - "cnr_id": "comfy-core", - "ver": "0.3.30", - "Node name for S&R": "VAEDecode" - }, - "widgets_values": [] - }, - { - "id": 1868, - "type": "RandomNoise", - "pos": [ - 3500, - 2120 - ], - "size": [ - 210, - 82 - ], - "flags": {}, - "order": 10, - "mode": 0, - "inputs": [ - { - "localized_name": "noise_seed", - "name": "noise_seed", - "type": "INT", - "widget": { - "name": "noise_seed" - }, - "link": null - } - ], - "outputs": [ - { - "localized_name": "NOISE", - "name": "NOISE", - "type": "NOISE", - "links": [ - 5357 - ] - } - ], - "properties": { - "cnr_id": "comfy-core", - "ver": "0.3.30", - "Node name for S&R": "RandomNoise" - }, - "widgets_values": [ - 2840, - "fixed" - ] - }, - { - "id": 1870, - "type": "Note", - "pos": [ - 3372.0966796875, - 2521.112060546875 - ], - "size": [ - 300, - 130 - ], - "flags": {}, - "order": 11, - "mode": 0, - "inputs": [], - "outputs": [], - "properties": {}, - "widgets_values": [ - "Overlap decides how many of the last frames in the input video are used to condition the new video generation. The total number of frames generated is frame_overlap + num_new_frames, and then the new video and the previous video are fused by this node and the full extended video is returned." - ], - "color": "#432", - "bgcolor": "#653" - }, - { - "id": 1872, - "type": "Set VAE Decoder Noise", - "pos": [ - 2513.900390625, - 2383.17529296875 - ], - "size": [ - 235.1999969482422, - 130 - ], - "flags": {}, - "order": 22, - "mode": 0, - "inputs": [ - { - "localized_name": "vae", - "name": "vae", - "type": "VAE", - "link": 5367 - }, - { - "localized_name": "timestep", - "name": "timestep", - "type": "FLOAT", - "widget": { - "name": "timestep" - }, - "link": null - }, - { - "localized_name": "scale", - "name": "scale", - "type": "FLOAT", - "widget": { - "name": "scale" - }, - "link": null - }, - { - "localized_name": "seed", - "name": "seed", - "type": "INT", - "widget": { - "name": "seed" - }, - "link": null - } - ], - "outputs": [ - { - "localized_name": "VAE", - "name": "VAE", - "type": "VAE", - "links": [ - 5368 - ] - } - ], - "properties": { - "Node name for S&R": "Set VAE Decoder Noise" - }, - "widgets_values": [ - 0.05, - 0.025, - 42, - "fixed" - ] - }, - { - "id": 44, - "type": "CheckpointLoaderSimple", - "pos": [ - 1076.880615234375, - 2416.77880859375 - ], - "size": [ - 334.6303405761719, - 98 - ], - "flags": {}, - "order": 12, - "mode": 0, - "inputs": [ - { - "localized_name": "ckpt_name", - "name": "ckpt_name", - "type": "COMBO", - "widget": { - "name": "ckpt_name" - }, - "link": null - } - ], - "outputs": [ - { - "localized_name": "MODEL", - "name": "MODEL", - "type": "MODEL", - "slot_index": 0, - "links": [ - 5236, - 5240, - 5358, - 5407, - 5416 - ] - }, - { - "localized_name": "CLIP", - "name": "CLIP", - "type": "CLIP", - "links": [] - }, - { - "localized_name": "VAE", - "name": "VAE", - "type": "VAE", - "slot_index": 2, - "links": [ - 5243, - 5287, - 5359, - 5367, - 5369, - 5370, - 5417 - ] - } - ], - "properties": { - "cnr_id": "comfy-core", - "ver": "0.3.28", - "Node name for S&R": "CheckpointLoaderSimple" - }, - "widgets_values": [ - "ltxv-13b-0.9.7-distilled.safetensors" - ] - }, - { - "id": 1876, - "type": "FloatToSigmas", - "pos": [ - 2223.5966796875, - 2857.569091796875 - ], - "size": [ - 216.59999084472656, - 26 - ], - "flags": {}, - "order": 23, - "mode": 0, - "inputs": [ - { - "localized_name": "float_list", - "name": "float_list", - "type": "FLOAT", - "link": 5379 - } - ], - "outputs": [ - { - "localized_name": "SIGMAS", - "name": "SIGMAS", - "type": "SIGMAS", - "links": [ - 5380, - 5382 - ] - } - ], - "properties": { - "Node name for S&R": "FloatToSigmas" - }, - "widgets_values": [] - }, - { - "id": 73, - "type": "KSamplerSelect", - "pos": [ - 1510, - 2608.19873046875 - ], - "size": [ - 251.94110107421875, - 58 - ], - "flags": {}, - "order": 13, - "mode": 0, - "inputs": [ - { - "localized_name": "sampler_name", - "name": "sampler_name", - "type": "COMBO", - "widget": { - "name": "sampler_name" - }, - "link": null - } - ], - "outputs": [ - { - "localized_name": "SAMPLER", - "name": "SAMPLER", - "type": "SAMPLER", - "links": [ - 5224, - 5362, - 5419 - ] - } - ], - "properties": { - "cnr_id": "comfy-core", - "ver": "0.3.28", - "Node name for S&R": "KSamplerSelect" - }, - "widgets_values": [ - "euler_ancestral" - ] - }, - { - "id": 1866, - "type": "VHS_VideoCombine", - "pos": [ - 4038.7578125, - 2250.240234375 - ], - "size": [ - 553.4302368164062, - 679.6201782226562 - ], - "flags": {}, - "order": 34, - "mode": 0, - "inputs": [ - { - "localized_name": "images", - "name": "images", - "shape": 7, - "type": "IMAGE", - "link": 5356 - }, - { - "localized_name": "audio", - "name": "audio", - "shape": 7, - "type": "AUDIO", - "link": null - }, - { - "localized_name": "meta_batch", - "name": "meta_batch", - "shape": 7, - "type": "VHS_BatchManager", - "link": null - }, - { - "localized_name": "vae", - "name": "vae", - "shape": 7, - "type": "VAE", - "link": null - }, - { - "localized_name": "frame_rate", - "name": "frame_rate", - "type": "FLOAT", - "widget": { - "name": "frame_rate" - }, - "link": null - }, - { - "localized_name": "loop_count", - "name": "loop_count", - "type": "INT", - "widget": { - "name": "loop_count" - }, - "link": null - }, - { - "localized_name": "filename_prefix", - "name": "filename_prefix", - "type": "STRING", - "widget": { - "name": "filename_prefix" - }, - "link": null - }, - { - "localized_name": "format", - "name": "format", - "type": "COMBO", - "widget": { - "name": "format" - }, - "link": null - }, - { - "localized_name": "pingpong", - "name": "pingpong", - "type": "BOOLEAN", - "widget": { - "name": "pingpong" - }, - "link": null - }, - { - "localized_name": "save_output", - "name": "save_output", - "type": "BOOLEAN", - "widget": { - "name": "save_output" - }, - "link": null - } - ], - "outputs": [ - { - "localized_name": "Filenames", - "name": "Filenames", - "type": "VHS_FILENAMES", - "links": null - } - ], - "properties": { - "Node name for S&R": "VHS_VideoCombine" - }, - "widgets_values": { - "frame_rate": 24, - "loop_count": 0, - "filename_prefix": "ltxv-extend", - "format": "video/h264-mp4", - "pix_fmt": "yuv420p", - "crf": 19, - "save_metadata": true, - "pingpong": false, - "save_output": false, - "videopreview": { - "hidden": false, - "paused": false, - "params": { - "filename": "ltxv-extend_00016.mp4", - "subfolder": "", - "type": "temp", - "format": "video/h264-mp4", - "frame_rate": 24 - } - } - } - }, - { - "id": 1867, - "type": "LTXVExtendSampler", - "pos": [ - 3360, - 2260 - ], - "size": [ - 305.9637451171875, - 202 - ], - "flags": {}, - "order": 30, - "mode": 0, - "inputs": [ - { - "localized_name": "model", - "name": "model", - "type": "MODEL", - "link": 5358 - }, - { - "localized_name": "vae", - "name": "vae", - "type": "VAE", - "link": 5359 - }, - { - "localized_name": "latents", - "name": "latents", - "type": "LATENT", - "link": 5360 - }, - { - "localized_name": "guider", - "name": "guider", - "type": "GUIDER", - "link": 5413 - }, - { - "localized_name": "sampler", - "name": "sampler", - "type": "SAMPLER", - "link": 5362 - }, - { - "localized_name": "sigmas", - "name": "sigmas", - "type": "SIGMAS", - "link": 5382 - }, - { - "localized_name": "noise", - "name": "noise", - "type": "NOISE", - "link": 5357 - }, - { - "localized_name": "num_new_frames", - "name": "num_new_frames", - "type": "INT", - "widget": { - "name": "num_new_frames" - }, - "link": null - }, - { - "localized_name": "frame_overlap", - "name": "frame_overlap", - "type": "INT", - "widget": { - "name": "frame_overlap" - }, - "link": null - } - ], - "outputs": [ - { - "localized_name": "denoised_output", - "name": "denoised_output", - "type": "LATENT", - "links": [ - 5355, - 5364, - 5365 - ] - } - ], - "properties": { - "Node name for S&R": "LTXVExtendSampler" - }, - "widgets_values": [ - 120, - 24 - ] - }, - { - "id": 1241, - "type": "LTXVConditioning", - "pos": [ - 1082.930419921875, - 2271.91064453125 - ], - "size": [ - 328.21636962890625, - 78 - ], - "flags": {}, - "order": 25, - "mode": 0, - "inputs": [ - { - "localized_name": "positive", - "name": "positive", - "type": "CONDITIONING", - "link": 3364 - }, - { - "localized_name": "negative", - "name": "negative", - "type": "CONDITIONING", - "link": 3365 - }, - { - "localized_name": "frame_rate", - "name": "frame_rate", - "type": "FLOAT", - "widget": { - "name": "frame_rate" - }, - "link": null - } - ], - "outputs": [ - { - "localized_name": "positive", - "name": "positive", - "type": "CONDITIONING", - "slot_index": 0, - "links": [ - 5274, - 5406 - ] - }, - { - "localized_name": "negative", - "name": "negative", - "type": "CONDITIONING", - "slot_index": 1, - "links": [ - 5275, - 5405 - ] - } - ], - "properties": { - "cnr_id": "comfy-core", - "ver": "0.3.28", - "Node name for S&R": "LTXVConditioning" - }, - "widgets_values": [ - 24.000000000000004 - ] - }, - { - "id": 6, - "type": "CLIPTextEncode", - "pos": [ - 717.5663452148438, - 2114.04638671875 - ], - "size": [ - 307.2346496582031, - 204.2556610107422 - ], - "flags": {}, - "order": 20, - "mode": 0, - "inputs": [ - { - "localized_name": "clip", - "name": "clip", - "type": "CLIP", - "link": 74 - }, - { - "localized_name": "text", - "name": "text", - "type": "STRING", - "widget": { - "name": "text" - }, - "link": null - } - ], - "outputs": [ - { - "localized_name": "CONDITIONING", - "name": "CONDITIONING", - "type": "CONDITIONING", - "slot_index": 0, - "links": [ - 3364 - ] - } - ], - "title": "CLIP Text Encode (Positive Prompt)", - "properties": { - "cnr_id": "comfy-core", - "ver": "0.3.28", - "Node name for S&R": "CLIPTextEncode" - }, - "widgets_values": [ - "gorilla enters the scene and hugs the man" - ], - "color": "#232", - "bgcolor": "#353" - }, - { - "id": 1874, - "type": "Note", - "pos": [ - 1488.787353515625, - 2789.536376953125 - ], - "size": [ - 303.5919494628906, - 88 - ], - "flags": {}, - "order": 14, - "mode": 0, - "inputs": [], - "outputs": [], - "properties": {}, - "widgets_values": [ - "Full list of sigmas for the distilled model:\n1.0000, 0.9937, 0.9875, 0.9812, 0.9750, 0.9094, 0.7250, 0.4219, 0.0" - ], - "color": "#432", - "bgcolor": "#653" - }, - { - "id": 1887, - "type": "STGGuiderAdvanced", - "pos": [ - 1798.5238037109375, - 2258.350830078125 - ], - "size": [ - 278.79998779296875, - 262 - ], - "flags": {}, - "order": 27, - "mode": 0, - "inputs": [ - { - "localized_name": "model", - "name": "model", - "type": "MODEL", - "link": 5407 - }, - { - "localized_name": "positive", - "name": "positive", - "type": "CONDITIONING", - "link": 5406 - }, - { - "localized_name": "negative", - "name": "negative", - "type": "CONDITIONING", - "link": 5405 - }, - { - "localized_name": "preset", - "name": "preset", - "shape": 7, - "type": "STG_ADVANCED_PRESET", - "link": null - }, - { - "localized_name": "skip_steps_sigma_threshold", - "name": "skip_steps_sigma_threshold", - "type": "FLOAT", - "widget": { - "name": "skip_steps_sigma_threshold" - }, - "link": null - }, - { - "localized_name": "cfg_star_rescale", - "name": "cfg_star_rescale", - "type": "BOOLEAN", - "widget": { - "name": "cfg_star_rescale" - }, - "link": null - }, - { - "localized_name": "sigmas", - "name": "sigmas", - "type": "STRING", - "widget": { - "name": "sigmas" - }, - "link": null - }, - { - "localized_name": "cfg_values", - "name": "cfg_values", - "type": "STRING", - "widget": { - "name": "cfg_values" - }, - "link": null - }, - { - "localized_name": "stg_scale_values", - "name": "stg_scale_values", - "type": "STRING", - "widget": { - "name": "stg_scale_values" - }, - "link": null - }, - { - "localized_name": "stg_rescale_values", - "name": "stg_rescale_values", - "type": "STRING", - "widget": { - "name": "stg_rescale_values" - }, - "link": null - }, - { - "localized_name": "stg_layers_indices", - "name": "stg_layers_indices", - "type": "STRING", - "widget": { - "name": "stg_layers_indices" - }, - "link": null - } - ], - "outputs": [ - { - "localized_name": "GUIDER", - "name": "GUIDER", - "type": "GUIDER", - "links": [ - 5412, - 5413 - ] - } - ], - "properties": { - "Node name for S&R": "STGGuiderAdvanced" - }, - "widgets_values": [ - 0.9970000000000002, - true, - "1.0, 0.9933, 0.9850, 0.9767, 0.9008, 0.6180", - "1,1,1,1,1,1", - "0,0,0,0,0,0", - "1, 1, 1, 1, 1, 1", - "[25], [35], [35], [42], [42], [42]" - ] - }, - { - "id": 1338, - "type": "LTXVBaseSampler", - "pos": [ - 2134.832763671875, - 2253.726318359375 - ], - "size": [ - 312.3999938964844, - 346 - ], - "flags": {}, - "order": 28, - "mode": 0, - "inputs": [ - { - "localized_name": "model", - "name": "model", - "type": "MODEL", - "link": 5236 - }, - { - "localized_name": "vae", - "name": "vae", - "type": "VAE", - "link": 5243 - }, - { - "localized_name": "guider", - "name": "guider", - "type": "GUIDER", - "link": 5412 - }, - { - "localized_name": "sampler", - "name": "sampler", - "type": "SAMPLER", - "link": 5224 - }, - { - "localized_name": "sigmas", - "name": "sigmas", - "type": "SIGMAS", - "link": 5380 - }, - { - "localized_name": "noise", - "name": "noise", - "type": "NOISE", - "link": 4053 - }, - { - "localized_name": "optional_cond_images", - "name": "optional_cond_images", - "shape": 7, - "type": "IMAGE", - "link": 5162 - }, - { - "localized_name": "width", - "name": "width", - "type": "INT", - "widget": { - "name": "width" - }, - "link": null - }, - { - "localized_name": "height", - "name": "height", - "type": "INT", - "widget": { - "name": "height" - }, - "link": null - }, - { - "localized_name": "num_frames", - "name": "num_frames", - "type": "INT", - "widget": { - "name": "num_frames" - }, - "link": null - }, - { - "localized_name": "optional_cond_indices", - "name": "optional_cond_indices", - "shape": 7, - "type": "STRING", - "widget": { - "name": "optional_cond_indices" - }, - "link": null - }, - { - "localized_name": "strength", - "name": "strength", - "shape": 7, - "type": "FLOAT", - "widget": { - "name": "strength" - }, - "link": null - }, - { - "localized_name": "crop", - "name": "crop", - "shape": 7, - "type": "COMBO", - "widget": { - "name": "crop" - }, - "link": null - }, - { - "localized_name": "crf", - "name": "crf", - "shape": 7, - "type": "INT", - "widget": { - "name": "crf" - }, - "link": null - }, - { - "localized_name": "blur", - "name": "blur", - "shape": 7, - "type": "INT", - "widget": { - "name": "blur" - }, - "link": null - } - ], - "outputs": [ - { - "localized_name": "denoised_output", - "name": "denoised_output", - "type": "LATENT", - "links": [ - 3576, - 5360 - ] - } - ], - "properties": { - "Node name for S&R": "LTXVBaseSampler" - }, - "widgets_values": [ - 768, - 512, - 97, - "0", - 0.8, - "center", - 30, - 1 - ] - }, - { - "id": 1507, - "type": "RandomNoise", - "pos": [ - 1847.874755859375, - 2114.199462890625 - ], - "size": [ - 210, - 82 - ], - "flags": {}, - "order": 15, - "mode": 0, - "inputs": [ - { - "localized_name": "noise_seed", - "name": "noise_seed", - "type": "INT", - "widget": { - "name": "noise_seed" - }, - "link": null - } - ], - "outputs": [ - { - "localized_name": "NOISE", - "name": "NOISE", - "type": "NOISE", - "slot_index": 0, - "links": [ - 4053 - ] - } - ], - "properties": { - "cnr_id": "comfy-core", - "ver": "0.3.28", - "Node name for S&R": "RandomNoise" - }, - "widgets_values": [ - 118, - "fixed" - ] - }, - { - "id": 1813, - "type": "STGGuiderAdvanced", - "pos": [ - 5131.06298828125, - 2266.639892578125 - ], - "size": [ - 278.79998779296875, - 262 - ], - "flags": {}, - "order": 26, - "mode": 0, - "inputs": [ - { - "localized_name": "model", - "name": "model", - "type": "MODEL", - "link": 5240 - }, - { - "localized_name": "positive", - "name": "positive", - "type": "CONDITIONING", - "link": 5274 - }, - { - "localized_name": "negative", - "name": "negative", - "type": "CONDITIONING", - "link": 5275 - }, - { - "localized_name": "preset", - "name": "preset", - "shape": 7, - "type": "STG_ADVANCED_PRESET", - "link": null - }, - { - "localized_name": "skip_steps_sigma_threshold", - "name": "skip_steps_sigma_threshold", - "type": "FLOAT", - "widget": { - "name": "skip_steps_sigma_threshold" - }, - "link": null - }, - { - "localized_name": "cfg_star_rescale", - "name": "cfg_star_rescale", - "type": "BOOLEAN", - "widget": { - "name": "cfg_star_rescale" - }, - "link": null - }, - { - "localized_name": "sigmas", - "name": "sigmas", - "type": "STRING", - "widget": { - "name": "sigmas" - }, - "link": null - }, - { - "localized_name": "cfg_values", - "name": "cfg_values", - "type": "STRING", - "widget": { - "name": "cfg_values" - }, - "link": null - }, - { - "localized_name": "stg_scale_values", - "name": "stg_scale_values", - "type": "STRING", - "widget": { - "name": "stg_scale_values" - }, - "link": null - }, - { - "localized_name": "stg_rescale_values", - "name": "stg_rescale_values", - "type": "STRING", - "widget": { - "name": "stg_rescale_values" - }, - "link": null - }, - { - "localized_name": "stg_layers_indices", - "name": "stg_layers_indices", - "type": "STRING", - "widget": { - "name": "stg_layers_indices" - }, - "link": null - } - ], - "outputs": [ - { - "localized_name": "GUIDER", - "name": "GUIDER", - "type": "GUIDER", - "links": [ - 5421 - ] - } - ], - "properties": { - "Node name for S&R": "STGGuiderAdvanced" - }, - "widgets_values": [ - 0.9970000000000002, - true, - "1", - "1", - "0", - "1", - "[42]" - ] - }, - { - "id": 1875, - "type": "StringToFloatList", - "pos": [ - 1864.56298828125, - 2803.1142578125 - ], - "size": [ - 210, - 88 - ], - "flags": {}, - "order": 16, - "mode": 0, - "inputs": [ - { - "localized_name": "string", - "name": "string", - "type": "STRING", - "widget": { - "name": "string" - }, - "link": null - } - ], - "outputs": [ - { - "localized_name": "FLOAT", - "name": "FLOAT", - "type": "FLOAT", - "links": [ - 5379 - ] - } - ], - "properties": { - "Node name for S&R": "StringToFloatList", - "cnr_id": "comfyui-kjnodes", - "ver": "0addfc6101f7a834c7fb6e0a1b26529360ab5350" - }, - "widgets_values": [ - "1.0000, 0.9937, 0.9875, 0.9812, 0.9750, 0.9094, 0.7250, 0.4219, 0.0" - ], - "color": "#223", - "bgcolor": "#335" - }, - { - "id": 1889, - "type": "FloatToSigmas", - "pos": [ - 5561.4443359375, - 2596.554443359375 - ], - "size": [ - 216.59999084472656, - 26 - ], - "flags": {}, - "order": 24, - "mode": 0, - "inputs": [ - { - "localized_name": "float_list", - "name": "float_list", - "type": "FLOAT", - "link": 5414 - } - ], - "outputs": [ - { - "localized_name": "SIGMAS", - "name": "SIGMAS", - "type": "SIGMAS", - "links": [ - 5420 - ] - } - ], - "properties": { - "Node name for S&R": "FloatToSigmas" - } - }, - { - "id": 1888, - "type": "StringToFloatList", - "pos": [ - 5132.404296875, - 2599.130859375 - ], - "size": [ - 395.74224853515625, - 88 - ], - "flags": {}, - "order": 17, - "mode": 0, - "inputs": [ - { - "localized_name": "string", - "name": "string", - "type": "STRING", - "widget": { - "name": "string" - }, - "link": null - } - ], - "outputs": [ - { - "localized_name": "FLOAT", - "name": "FLOAT", - "type": "FLOAT", - "links": [ - 5414 - ] - } - ], - "properties": { - "Node name for S&R": "StringToFloatList", - "cnr_id": "comfyui-kjnodes", - "ver": "0addfc6101f7a834c7fb6e0a1b26529360ab5350" - }, - "widgets_values": [ - "0.85, 0.7250, 0.6, 0.4219, 0.0" - ], - "color": "#223", - "bgcolor": "#335" - }, - { - "id": 1598, - "type": "RandomNoise", - "pos": [ - 5197.30615234375, - 2125.298095703125 - ], - "size": [ - 210, - 82 - ], - "flags": {}, - "order": 18, - "mode": 0, - "inputs": [ - { - "localized_name": "noise_seed", - "name": "noise_seed", - "type": "INT", - "widget": { - "name": "noise_seed" - }, - "link": null - } - ], - "outputs": [ - { - "localized_name": "NOISE", - "name": "NOISE", - "type": "NOISE", - "links": [ - 5418 - ] - } - ], - "properties": { - "cnr_id": "comfy-core", - "ver": "0.3.30", - "Node name for S&R": "RandomNoise" - }, - "widgets_values": [ - 1252, - "fixed" - ] - }, - { - "id": 1890, - "type": "LTXVTiledSampler", - "pos": [ - 5541.92041015625, - 2140.884033203125 - ], - "size": [ - 329.20001220703125, - 366 - ], - "flags": {}, - "order": 36, - "mode": 0, - "inputs": [ - { - "localized_name": "model", - "name": "model", - "type": "MODEL", - "link": 5416 - }, - { - "localized_name": "vae", - "name": "vae", - "type": "VAE", - "link": 5417 - }, - { - "localized_name": "noise", - "name": "noise", - "type": "NOISE", - "link": 5418 - }, - { - "localized_name": "sampler", - "name": "sampler", - "type": "SAMPLER", - "link": 5419 - }, - { - "localized_name": "sigmas", - "name": "sigmas", - "type": "SIGMAS", - "link": 5420 - }, - { - "localized_name": "guider", - "name": "guider", - "type": "GUIDER", - "link": 5421 - }, - { - "localized_name": "latents", - "name": "latents", - "type": "LATENT", - "link": 5422 - }, - { - "localized_name": "optional_cond_images", - "name": "optional_cond_images", - "shape": 7, - "type": "IMAGE", - "link": 5424 - }, - { - "localized_name": "horizontal_tiles", - "name": "horizontal_tiles", - "type": "INT", - "widget": { - "name": "horizontal_tiles" - }, - "link": null - }, - { - "localized_name": "vertical_tiles", - "name": "vertical_tiles", - "type": "INT", - "widget": { - "name": "vertical_tiles" - }, - "link": null - }, - { - "localized_name": "overlap", - "name": "overlap", - "type": "INT", - "widget": { - "name": "overlap" - }, - "link": null - }, - { - "localized_name": "latents_cond_strength", - "name": "latents_cond_strength", - "type": "FLOAT", - "widget": { - "name": "latents_cond_strength" - }, - "link": null - }, - { - "localized_name": "boost_latent_similarity", - "name": "boost_latent_similarity", - "type": "BOOLEAN", - "widget": { - "name": "boost_latent_similarity" - }, - "link": null - }, - { - "localized_name": "crop", - "name": "crop", - "type": "COMBO", - "widget": { - "name": "crop" - }, - "link": null - }, - { - "localized_name": "optional_cond_indices", - "name": "optional_cond_indices", - "shape": 7, - "type": "STRING", - "widget": { - "name": "optional_cond_indices" - }, - "link": null - }, - { - "localized_name": "images_cond_strengths", - "name": "images_cond_strengths", - "shape": 7, - "type": "STRING", - "widget": { - "name": "images_cond_strengths" - }, - "link": null - } - ], - "outputs": [ - { - "localized_name": "output", - "name": "output", - "type": "LATENT", - "links": [ - 5423 - ] - }, - { - "localized_name": "denoised_output", - "name": "denoised_output", - "type": "LATENT", - "links": null - } - ], - "properties": { - "Node name for S&R": "LTXVTiledSampler" - }, - "widgets_values": [ - 1, - 1, - 1, - 0.15, - false, - "center", - "0", - "0.9" - ] - }, - { - "id": 1206, - "type": "LoadImage", - "pos": [ - 1069.734375, - 2577.37060546875 - ], - "size": [ - 342.5999755859375, - 314 - ], - "flags": {}, - "order": 19, - "mode": 0, - "inputs": [ - { - "localized_name": "image", - "name": "image", - "type": "COMBO", - "widget": { - "name": "image" - }, - "link": null - }, - { - "localized_name": "choose file to upload", - "name": "upload", - "type": "IMAGEUPLOAD", - "widget": { - "name": "upload" - }, - "link": null - } - ], - "outputs": [ - { - "localized_name": "IMAGE", - "name": "IMAGE", - "type": "IMAGE", - "links": [ - 5162, - 5424 - ] - }, - { - "localized_name": "MASK", - "name": "MASK", - "type": "MASK", - "links": null - } - ], - "properties": { - "cnr_id": "comfy-core", - "ver": "0.3.30", - "Node name for S&R": "LoadImage" - }, - "widgets_values": [ - "bravoski_lonely_warrior._Scenic_background_peace._--v_6.1_54cc19b8-1dd7-4df7-b74e-e2585b9c4458_0.png", - "image" - ] - }, - { - "id": 1601, - "type": "VAEDecodeTiled", - "pos": [ - 5933.66064453125, - 2173.679931640625 - ], - "size": [ - 210, - 150 - ], - "flags": {}, - "order": 37, - "mode": 0, - "inputs": [ - { - "localized_name": "samples", - "name": "samples", - "type": "LATENT", - "link": 5423 - }, - { - "localized_name": "vae", - "name": "vae", - "type": "VAE", - "link": 5369 - }, - { - "localized_name": "tile_size", - "name": "tile_size", - "type": "INT", - "widget": { - "name": "tile_size" - }, - "link": null - }, - { - "localized_name": "overlap", - "name": "overlap", - "type": "INT", - "widget": { - "name": "overlap" - }, - "link": null - }, - { - "localized_name": "temporal_size", - "name": "temporal_size", - "type": "INT", - "widget": { - "name": "temporal_size" - }, - "link": null - }, - { - "localized_name": "temporal_overlap", - "name": "temporal_overlap", - "type": "INT", - "widget": { - "name": "temporal_overlap" - }, - "link": null - } - ], - "outputs": [ - { - "localized_name": "IMAGE", - "name": "IMAGE", - "type": "IMAGE", - "links": [ - 4749 - ] - } - ], - "properties": { - "cnr_id": "comfy-core", - "ver": "0.3.29", - "Node name for S&R": "VAEDecodeTiled" - }, - "widgets_values": [ - 1280, - 128, - 128, - 32 - ] - } - ], - "links": [ - [ - 74, - 38, - 0, - 6, - 0, - "CLIP" - ], - [ - 75, - 38, - 0, - 7, - 0, - "CLIP" - ], - [ - 3364, - 6, - 0, - 1241, - 0, - "CONDITIONING" - ], - [ - 3365, - 7, - 0, - 1241, - 1, - "CONDITIONING" - ], - [ - 3576, - 1338, - 0, - 1335, - 0, - "LATENT" - ], - [ - 3578, - 1335, - 0, - 1336, - 0, - "IMAGE" - ], - [ - 4053, - 1507, - 0, - 1338, - 5, - "NOISE" - ], - [ - 4749, - 1601, - 0, - 1661, - 0, - "IMAGE" - ], - [ - 4751, - 1661, - 0, - 1699, - 0, - "IMAGE" - ], - [ - 4752, - 1699, - 0, - 1599, - 0, - "IMAGE" - ], - [ - 5162, - 1206, - 0, - 1338, - 6, - "IMAGE" - ], - [ - 5224, - 73, - 0, - 1338, - 3, - "SAMPLER" - ], - [ - 5236, - 44, - 0, - 1338, - 0, - "MODEL" - ], - [ - 5240, - 44, - 0, - 1813, - 0, - "MODEL" - ], - [ - 5243, - 44, - 2, - 1338, - 1, - "VAE" - ], - [ - 5274, - 1241, - 0, - 1813, - 1, - "CONDITIONING" - ], - [ - 5275, - 1241, - 1, - 1813, - 2, - "CONDITIONING" - ], - [ - 5287, - 44, - 2, - 1691, - 2, - "VAE" - ], - [ - 5297, - 1691, - 0, - 1593, - 0, - "LATENT" - ], - [ - 5303, - 1828, - 0, - 1691, - 1, - "UPSCALE_MODEL" - ], - [ - 5355, - 1867, - 0, - 1865, - 0, - "LATENT" - ], - [ - 5356, - 1865, - 0, - 1866, - 0, - "IMAGE" - ], - [ - 5357, - 1868, - 0, - 1867, - 6, - "NOISE" - ], - [ - 5358, - 44, - 0, - 1867, - 0, - "MODEL" - ], - [ - 5359, - 44, - 2, - 1867, - 1, - "VAE" - ], - [ - 5360, - 1338, - 0, - 1867, - 2, - "LATENT" - ], - [ - 5362, - 73, - 0, - 1867, - 4, - "SAMPLER" - ], - [ - 5364, - 1867, - 0, - 1691, - 0, - "LATENT" - ], - [ - 5365, - 1867, - 0, - 1593, - 1, - "LATENT" - ], - [ - 5367, - 44, - 2, - 1872, - 0, - "VAE" - ], - [ - 5368, - 1872, - 0, - 1335, - 1, - "VAE" - ], - [ - 5369, - 44, - 2, - 1601, - 1, - "VAE" - ], - [ - 5370, - 44, - 2, - 1865, - 1, - "VAE" - ], - [ - 5379, - 1875, - 0, - 1876, - 0, - "FLOAT" - ], - [ - 5380, - 1876, - 0, - 1338, - 4, - "SIGMAS" - ], - [ - 5382, - 1876, - 0, - 1867, - 5, - "SIGMAS" - ], - [ - 5405, - 1241, - 1, - 1887, - 2, - "CONDITIONING" - ], - [ - 5406, - 1241, - 0, - 1887, - 1, - "CONDITIONING" - ], - [ - 5407, - 44, - 0, - 1887, - 0, - "MODEL" - ], - [ - 5412, - 1887, - 0, - 1338, - 2, - "GUIDER" - ], - [ - 5413, - 1887, - 0, - 1867, - 3, - "GUIDER" - ], - [ - 5414, - 1888, - 0, - 1889, - 0, - "FLOAT" - ], - [ - 5416, - 44, - 0, - 1890, - 0, - "MODEL" - ], - [ - 5417, - 44, - 2, - 1890, - 1, - "VAE" - ], - [ - 5418, - 1598, - 0, - 1890, - 2, - "NOISE" - ], - [ - 5419, - 73, - 0, - 1890, - 3, - "SAMPLER" - ], - [ - 5420, - 1889, - 0, - 1890, - 4, - "SIGMAS" - ], - [ - 5421, - 1813, - 0, - 1890, - 5, - "GUIDER" - ], - [ - 5422, - 1593, - 0, - 1890, - 6, - "LATENT" - ], - [ - 5423, - 1890, - 0, - 1601, - 0, - "LATENT" - ], - [ - 5424, - 1206, - 0, - 1890, - 7, - "IMAGE" - ] - ], - "groups": [ - { - "id": 20, - "title": "Base Low Res Generation ", - "bounding": [ - 1500, - 2037.5235595703125, - 1770.58251953125, - 850.8944091796875 - ], - "color": "#3f789e", - "font_size": 24, - "flags": {}, - "nodes": [ - 1335, - 1336, - 1859, - 1823, - 1860, - 1861, - 1872, - 1876, - 73, - 1874, - 1887, - 1338, - 1507, - 1875 - ] - }, - { - "id": 34, - "title": "Latent Upscaler", - "bounding": [ - 4682.08154296875, - 2046.2330322265625, - 364.39990234375, - 604.2252197265625 - ], - "color": "#3f789e", - "font_size": 24, - "flags": {}, - "nodes": [ - 1828, - 1691, - 1593, - 1863 - ] - }, - { - "id": 41, - "title": "Setup", - "bounding": [ - 329.9997863769531, - 2040.44580078125, - 1092.333984375, - 860.9241943359375 - ], - "color": "#3f789e", - "font_size": 24, - "flags": {}, - "nodes": [ - 7, - 38, - 1858, - 1825, - 44, - 1241, - 6, - 1206 - ] - }, - { - "id": 42, - "title": "Add Details", - "bounding": [ - 5121.06298828125, - 2051.697998046875, - 2278.168701171875, - 851.0821533203125 - ], - "color": "#3f789e", - "font_size": 24, - "flags": {}, - "nodes": [ - 1661, - 1699, - 1862, - 1599, - 1813, - 1889, - 1888, - 1598, - 1890, - 1601 - ] - }, - { - "id": 43, - "title": "Extend", - "bounding": [ - 3340.832275390625, - 2042.8255615234375, - 1261.35595703125, - 897.0347900390625 - ], - "color": "#3f789e", - "font_size": 24, - "flags": {}, - "nodes": [ - 1865, - 1868, - 1870, - 1866, - 1867 - ] - } - ], - "config": {}, - "extra": { - "ds": { - "scale": 0.3504938994813925, - "offset": [ - 155.50582134587447, - -906.0461897551281 - ] - }, - "frontendVersion": "1.17.11", - "VHS_latentpreview": true, - "VHS_latentpreviewrate": 0, - "VHS_MetadataImage": true, - "VHS_KeepIntermediate": true, - "prompt": { - "6": { - "inputs": { - "text": "gorilla enters the scene and hugs the man", - "clip": [ - "38", - 0 - ] - }, - "class_type": "CLIPTextEncode", - "_meta": { - "title": "CLIP Text Encode (Positive Prompt)" - } - }, - "7": { - "inputs": { - "text": "low quality, worst quality, deformed, distorted, disfigured, motion smear, motion artifacts, fused fingers, bad anatomy, weird hand, ugly", - "clip": [ - "38", - 0 - ] - }, - "class_type": "CLIPTextEncode", - "_meta": { - "title": "CLIP Text Encode (Negative Prompt)" - } - }, - "38": { - "inputs": { - "clip_name": "t5xxl_fp16.safetensors", - "type": "ltxv", - "device": "default" - }, - "class_type": "CLIPLoader", - "_meta": { - "title": "Load CLIP" - } - }, - "44": { - "inputs": { - "ckpt_name": "ltxv-13b-0.9.7-distilled.safetensors" - }, - "class_type": "CheckpointLoaderSimple", - "_meta": { - "title": "Load Checkpoint" - } - }, - "73": { - "inputs": { - "sampler_name": "euler_ancestral" - }, - "class_type": "KSamplerSelect", - "_meta": { - "title": "KSamplerSelect" - } - }, - "1206": { - "inputs": { - "image": "bravoski_lonely_warrior._Scenic_background_peace._--v_6.1_54cc19b8-1dd7-4df7-b74e-e2585b9c4458_0.png" - }, - "class_type": "LoadImage", - "_meta": { - "title": "Load Image" - } - }, - "1241": { - "inputs": { - "frame_rate": 24.000000000000004, - "positive": [ - "6", - 0 - ], - "negative": [ - "7", - 0 - ] - }, - "class_type": "LTXVConditioning", - "_meta": { - "title": "LTXVConditioning" - } - }, - "1335": { - "inputs": { - "samples": [ - "1338", - 0 - ], - "vae": [ - "1872", - 0 - ] - }, - "class_type": "VAEDecode", - "_meta": { - "title": "VAE Decode" - } - }, - "1336": { - "inputs": { - "frame_rate": 24, - "loop_count": 0, - "filename_prefix": "ltxv-base", - "format": "video/h264-mp4", - "pix_fmt": "yuv420p", - "crf": 19, - "save_metadata": true, - "pingpong": false, - "save_output": false, - "images": [ - "1335", - 0 - ] - }, - "class_type": "VHS_VideoCombine", - "_meta": { - "title": "Video Combine 🎥🅥🅗🅢" - } - }, - "1338": { - "inputs": { - "width": 768, - "height": 512, - "num_frames": 97, - "optional_cond_indices": "0", - "strength": 0.8, - "crop": "center", - "crf": 30, - "blur": 1, - "model": [ - "44", - 0 - ], - "vae": [ - "44", - 2 - ], - "guider": [ - "1887", - 0 - ], - "sampler": [ - "73", - 0 - ], - "sigmas": [ - "1876", - 0 - ], - "noise": [ - "1507", - 0 - ], - "optional_cond_images": [ - "1206", - 0 - ] - }, - "class_type": "LTXVBaseSampler", - "_meta": { - "title": "🅛🅣🅧 LTXV Base Sampler" - } - }, - "1507": { - "inputs": { - "noise_seed": 118 - }, - "class_type": "RandomNoise", - "_meta": { - "title": "RandomNoise" - } - }, - "1593": { - "inputs": { - "factor": 0.25, - "latents": [ - "1691", - 0 - ], - "reference": [ - "1867", - 0 - ] - }, - "class_type": "LTXVAdainLatent", - "_meta": { - "title": "🅛🅣🅧 LTXV Adain Latent" - } - }, - "1598": { - "inputs": { - "noise_seed": 1252 - }, - "class_type": "RandomNoise", - "_meta": { - "title": "RandomNoise" - } - }, - "1599": { - "inputs": { - "frame_rate": 24, - "loop_count": 0, - "filename_prefix": "ltxv-hd", - "format": "video/h264-mp4", - "pix_fmt": "yuv420p", - "crf": 18, - "save_metadata": false, - "pingpong": false, - "save_output": false, - "images": [ - "1699", - 0 - ] - }, - "class_type": "VHS_VideoCombine", - "_meta": { - "title": "Video Combine 🎥🅥🅗🅢" - } - }, - "1601": { - "inputs": { - "tile_size": 1280, - "overlap": 128, - "temporal_size": 128, - "temporal_overlap": 32, - "samples": [ - "1890", - 0 - ], - "vae": [ - "44", - 2 - ] - }, - "class_type": "VAEDecodeTiled", - "_meta": { - "title": "VAE Decode (Tiled)" - } - }, - "1661": { - "inputs": { - "width": 1280, - "height": 1280, - "upscale_method": "bicubic", - "keep_proportion": true, - "divisible_by": 2, - "crop": "center", - "image": [ - "1601", - 0 - ] - }, - "class_type": "ImageResizeKJ", - "_meta": { - "title": "Resize Image" - } - }, - "1691": { - "inputs": { - "samples": [ - "1867", - 0 - ], - "upscale_model": [ - "1828", - 0 - ], - "vae": [ - "44", - 2 - ] - }, - "class_type": "LTXVLatentUpsampler", - "_meta": { - "title": "🅛🅣🅧 LTXV Latent Upsampler" - } - }, - "1699": { - "inputs": { - "grain_intensity": 0.010000000000000002, - "saturation": 0.5, - "images": [ - "1661", - 0 - ] - }, - "class_type": "LTXVFilmGrain", - "_meta": { - "title": "🅛🅣🅧 LTXV Film Grain" - } - }, - "1813": { - "inputs": { - "skip_steps_sigma_threshold": 0.9970000000000002, - "cfg_star_rescale": true, - "sigmas": "1", - "cfg_values": "1", - "stg_scale_values": "0", - "stg_rescale_values": "1", - "stg_layers_indices": "[42]", - "model": [ - "44", - 0 - ], - "positive": [ - "1241", - 0 - ], - "negative": [ - "1241", - 1 - ] - }, - "class_type": "STGGuiderAdvanced", - "_meta": { - "title": "🅛🅣🅧 STG Guider Advanced" - } - }, - "1828": { - "inputs": { - "upscale_model": "ltxv-spatial-upscaler-0.9.8.safetensors", - "spatial_upsample": true, - "temporal_upsample": false - }, - "class_type": "LTXVLatentUpsamplerModelLoader", - "_meta": { - "title": "🅛🅣🅧 LTXV Latent Upsampler Model Loader" - } - }, - "1865": { - "inputs": { - "samples": [ - "1867", - 0 - ], - "vae": [ - "44", - 2 - ] - }, - "class_type": "VAEDecode", - "_meta": { - "title": "VAE Decode" - } - }, - "1866": { - "inputs": { - "frame_rate": 24, - "loop_count": 0, - "filename_prefix": "ltxv-extend", - "format": "video/h264-mp4", - "pix_fmt": "yuv420p", - "crf": 19, - "save_metadata": true, - "pingpong": false, - "save_output": false, - "images": [ - "1865", - 0 - ] - }, - "class_type": "VHS_VideoCombine", - "_meta": { - "title": "Video Combine 🎥🅥🅗🅢" - } - }, - "1867": { - "inputs": { - "num_new_frames": 120, - "frame_overlap": 24, - "model": [ - "44", - 0 - ], - "vae": [ - "44", - 2 - ], - "latents": [ - "1338", - 0 - ], - "guider": [ - "1887", - 0 - ], - "sampler": [ - "73", - 0 - ], - "sigmas": [ - "1876", - 0 - ], - "noise": [ - "1868", - 0 - ] - }, - "class_type": "LTXVExtendSampler", - "_meta": { - "title": "🅛🅣🅧 LTXV Extend Sampler" - } - }, - "1868": { - "inputs": { - "noise_seed": 2840 - }, - "class_type": "RandomNoise", - "_meta": { - "title": "RandomNoise" - } - }, - "1872": { - "inputs": { - "timestep": 0.05, - "scale": 0.025, - "seed": 42, - "vae": [ - "44", - 2 - ] - }, - "class_type": "Set VAE Decoder Noise", - "_meta": { - "title": "🅛🅣🅧 Set VAE Decoder Noise" - } - }, - "1875": { - "inputs": { - "string": "1.0000, 0.9937, 0.9875, 0.9812, 0.9750, 0.9094, 0.7250, 0.4219, 0.0" - }, - "class_type": "StringToFloatList", - "_meta": { - "title": "String to Float List" - } - }, - "1876": { - "inputs": { - "float_list": [ - "1875", - 0 - ] - }, - "class_type": "FloatToSigmas", - "_meta": { - "title": "Float To Sigmas" - } - }, - "1887": { - "inputs": { - "skip_steps_sigma_threshold": 0.9970000000000002, - "cfg_star_rescale": true, - "sigmas": "1.0, 0.9933, 0.9850, 0.9767, 0.9008, 0.6180", - "cfg_values": "1,1,1,1,1,1", - "stg_scale_values": "0,0,0,0,0,0", - "stg_rescale_values": "1, 1, 1, 1, 1, 1", - "stg_layers_indices": "[25], [35], [35], [42], [42], [42]", - "model": [ - "44", - 0 - ], - "positive": [ - "1241", - 0 - ], - "negative": [ - "1241", - 1 - ] - }, - "class_type": "STGGuiderAdvanced", - "_meta": { - "title": "🅛🅣🅧 STG Guider Advanced" - } - }, - "1888": { - "inputs": { - "string": "0.85, 0.7250, 0.6, 0.4219, 0.0" - }, - "class_type": "StringToFloatList", - "_meta": { - "title": "String to Float List" - } - }, - "1889": { - "inputs": { - "float_list": [ - "1888", - 0 - ] - }, - "class_type": "FloatToSigmas", - "_meta": { - "title": "Float To Sigmas" - } - }, - "1890": { - "inputs": { - "horizontal_tiles": 1, - "vertical_tiles": 1, - "overlap": 1, - "latents_cond_strength": 0.15, - "boost_latent_similarity": false, - "crop": "center", - "optional_cond_indices": "0", - "images_cond_strengths": "0.9", - "model": [ - "44", - 0 - ], - "vae": [ - "44", - 2 - ], - "noise": [ - "1598", - 0 - ], - "sampler": [ - "73", - 0 - ], - "sigmas": [ - "1889", - 0 - ], - "guider": [ - "1813", - 0 - ], - "latents": [ - "1593", - 0 - ], - "optional_cond_images": [ - "1206", - 0 - ] - }, - "class_type": "LTXVTiledSampler", - "_meta": { - "title": "🅛🅣🅧 LTXV Tiled Sampler" - } - } - }, - "comfy_fork_version": "develop@580b3007", - "workspace_info": { - "id": "elBQFQknIoLYTEwIloQuw" - }, - "node_versions": { - "comfy-core": "0.3.20" - } - }, - "version": 0.4 -} diff --git a/example_workflows/13b-distilled/ltxv-13b-dist-i2v-keyframes.json b/example_workflows/13b-distilled/ltxv-13b-dist-i2v-keyframes.json deleted file mode 100644 index 07ec106..0000000 --- a/example_workflows/13b-distilled/ltxv-13b-dist-i2v-keyframes.json +++ /dev/null @@ -1,3466 +0,0 @@ -{ - "id": "394ed254-7306-42a2-9ae6-aa880ce4456d", - "revision": 0, - "last_node_id": 1876, - "last_link_id": 5384, - "nodes": [ - { - "id": 1241, - "type": "LTXVConditioning", - "pos": [ - 1090.674072265625, - 2272.830322265625 - ], - "size": [ - 328.21636962890625, - 78 - ], - "flags": {}, - "order": 21, - "mode": 0, - "inputs": [ - { - "localized_name": "positive", - "name": "positive", - "type": "CONDITIONING", - "link": 3364 - }, - { - "localized_name": "negative", - "name": "negative", - "type": "CONDITIONING", - "link": 3365 - }, - { - "localized_name": "frame_rate", - "name": "frame_rate", - "type": "FLOAT", - "widget": { - "name": "frame_rate" - }, - "link": null - } - ], - "outputs": [ - { - "localized_name": "positive", - "name": "positive", - "type": "CONDITIONING", - "slot_index": 0, - "links": [ - 5227, - 5274 - ] - }, - { - "localized_name": "negative", - "name": "negative", - "type": "CONDITIONING", - "slot_index": 1, - "links": [ - 5228, - 5275 - ] - } - ], - "properties": { - "cnr_id": "comfy-core", - "ver": "0.3.28", - "Node name for S&R": "LTXVConditioning" - }, - "widgets_values": [ - 24.000000000000004 - ] - }, - { - "id": 7, - "type": "CLIPTextEncode", - "pos": [ - 730.2447509765625, - 2399.255615234375 - ], - "size": [ - 317.832275390625, - 213.2843780517578 - ], - "flags": {}, - "order": 16, - "mode": 0, - "inputs": [ - { - "localized_name": "clip", - "name": "clip", - "type": "CLIP", - "link": 75 - }, - { - "localized_name": "text", - "name": "text", - "type": "STRING", - "widget": { - "name": "text" - }, - "link": null - } - ], - "outputs": [ - { - "localized_name": "CONDITIONING", - "name": "CONDITIONING", - "type": "CONDITIONING", - "slot_index": 0, - "links": [ - 3365 - ] - } - ], - "title": "CLIP Text Encode (Negative Prompt)", - "properties": { - "cnr_id": "comfy-core", - "ver": "0.3.28", - "Node name for S&R": "CLIPTextEncode" - }, - "widgets_values": [ - "low quality, worst quality, deformed, distorted, disfigured, motion smear, motion artifacts, fused fingers, bad anatomy, weird hand, ugly" - ], - "color": "#322", - "bgcolor": "#533" - }, - { - "id": 38, - "type": "CLIPLoader", - "pos": [ - 347.74371337890625, - 2311.21337890625 - ], - "size": [ - 315, - 106 - ], - "flags": {}, - "order": 0, - "mode": 0, - "inputs": [ - { - "localized_name": "clip_name", - "name": "clip_name", - "type": "COMBO", - "widget": { - "name": "clip_name" - }, - "link": null - }, - { - "localized_name": "type", - "name": "type", - "type": "COMBO", - "widget": { - "name": "type" - }, - "link": null - }, - { - "localized_name": "device", - "name": "device", - "shape": 7, - "type": "COMBO", - "widget": { - "name": "device" - }, - "link": null - } - ], - "outputs": [ - { - "localized_name": "CLIP", - "name": "CLIP", - "type": "CLIP", - "slot_index": 0, - "links": [ - 74, - 75 - ] - } - ], - "properties": { - "cnr_id": "comfy-core", - "ver": "0.3.28", - "Node name for S&R": "CLIPLoader" - }, - "widgets_values": [ - "t5xxl_fp16.safetensors", - "ltxv", - "default" - ] - }, - { - "id": 1828, - "type": "LTXVLatentUpsamplerModelLoader", - "pos": [ - 3338.0751953125, - 2116.379638671875 - ], - "size": [ - 344.3999938964844, - 106 - ], - "flags": {}, - "order": 1, - "mode": 0, - "inputs": [ - { - "localized_name": "upscale_model", - "name": "upscale_model", - "type": "COMBO", - "widget": { - "name": "upscale_model" - }, - "link": null - }, - { - "localized_name": "spatial_upsample", - "name": "spatial_upsample", - "type": "BOOLEAN", - "widget": { - "name": "spatial_upsample" - }, - "link": null - }, - { - "localized_name": "temporal_upsample", - "name": "temporal_upsample", - "type": "BOOLEAN", - "widget": { - "name": "temporal_upsample" - }, - "link": null - } - ], - "outputs": [ - { - "localized_name": "UPSCALE_MODEL", - "name": "UPSCALE_MODEL", - "type": "UPSCALE_MODEL", - "links": [ - 5303 - ] - } - ], - "properties": { - "Node name for S&R": "LTXVLatentUpsamplerModelLoader" - }, - "widgets_values": [ - "ltxv-spatial-upscaler-0.9.8.safetensors", - true, - false - ] - }, - { - "id": 1661, - "type": "ImageResizeKJ", - "pos": [ - 4825.6025390625, - 2168.989501953125 - ], - "size": [ - 315, - 238 - ], - "flags": {}, - "order": 33, - "mode": 0, - "inputs": [ - { - "localized_name": "image", - "name": "image", - "type": "IMAGE", - "link": 4749 - }, - { - "localized_name": "width_input", - "name": "width_input", - "shape": 7, - "type": "INT", - "link": null - }, - { - "localized_name": "height_input", - "name": "height_input", - "shape": 7, - "type": "INT", - "link": null - }, - { - "localized_name": "get_image_size", - "name": "get_image_size", - "shape": 7, - "type": "IMAGE", - "link": null - }, - { - "localized_name": "width", - "name": "width", - "type": "INT", - "widget": { - "name": "width" - }, - "link": null - }, - { - "localized_name": "height", - "name": "height", - "type": "INT", - "widget": { - "name": "height" - }, - "link": null - }, - { - "localized_name": "upscale_method", - "name": "upscale_method", - "type": "COMBO", - "widget": { - "name": "upscale_method" - }, - "link": null - }, - { - "localized_name": "keep_proportion", - "name": "keep_proportion", - "type": "BOOLEAN", - "widget": { - "name": "keep_proportion" - }, - "link": null - }, - { - "localized_name": "divisible_by", - "name": "divisible_by", - "type": "INT", - "widget": { - "name": "divisible_by" - }, - "link": null - }, - { - "localized_name": "crop", - "name": "crop", - "shape": 7, - "type": "COMBO", - "widget": { - "name": "crop" - }, - "link": null - } - ], - "outputs": [ - { - "localized_name": "IMAGE", - "name": "IMAGE", - "type": "IMAGE", - "links": [ - 4751 - ] - }, - { - "localized_name": "width", - "name": "width", - "type": "INT", - "links": null - }, - { - "localized_name": "height", - "name": "height", - "type": "INT", - "links": null - } - ], - "properties": { - "Node name for S&R": "ImageResizeKJ" - }, - "widgets_values": [ - 1280, - 1280, - "bicubic", - true, - 2, - "center" - ] - }, - { - "id": 1335, - "type": "VAEDecode", - "pos": [ - 2515.01953125, - 2253.726318359375 - ], - "size": [ - 210, - 46 - ], - "flags": {}, - "order": 27, - "mode": 0, - "inputs": [ - { - "localized_name": "samples", - "name": "samples", - "type": "LATENT", - "link": 3576 - }, - { - "localized_name": "vae", - "name": "vae", - "type": "VAE", - "link": 5361 - } - ], - "outputs": [ - { - "localized_name": "IMAGE", - "name": "IMAGE", - "type": "IMAGE", - "links": [ - 3578 - ] - } - ], - "properties": { - "cnr_id": "comfy-core", - "ver": "0.3.29", - "Node name for S&R": "VAEDecode" - }, - "widgets_values": [] - }, - { - "id": 1699, - "type": "LTXVFilmGrain", - "pos": [ - 5175.60205078125, - 2168.989501953125 - ], - "size": [ - 210, - 82 - ], - "flags": {}, - "order": 34, - "mode": 0, - "inputs": [ - { - "localized_name": "images", - "name": "images", - "type": "IMAGE", - "link": 4751 - }, - { - "localized_name": "grain_intensity", - "name": "grain_intensity", - "type": "FLOAT", - "widget": { - "name": "grain_intensity" - }, - "link": null - }, - { - "localized_name": "saturation", - "name": "saturation", - "type": "FLOAT", - "widget": { - "name": "saturation" - }, - "link": null - } - ], - "outputs": [ - { - "localized_name": "IMAGE", - "name": "IMAGE", - "type": "IMAGE", - "links": [ - 4752 - ] - } - ], - "properties": { - "Node name for S&R": "LTXVFilmGrain" - }, - "widgets_values": [ - 0.010000000000000002, - 0.5 - ] - }, - { - "id": 1336, - "type": "VHS_VideoCombine", - "pos": [ - 2789.545166015625, - 2253.726318359375 - ], - "size": [ - 471.0374755859375, - 624.691650390625 - ], - "flags": {}, - "order": 29, - "mode": 0, - "inputs": [ - { - "localized_name": "images", - "name": "images", - "shape": 7, - "type": "IMAGE", - "link": 3578 - }, - { - "localized_name": "audio", - "name": "audio", - "shape": 7, - "type": "AUDIO", - "link": null - }, - { - "localized_name": "meta_batch", - "name": "meta_batch", - "shape": 7, - "type": "VHS_BatchManager", - "link": null - }, - { - "localized_name": "vae", - "name": "vae", - "shape": 7, - "type": "VAE", - "link": null - }, - { - "localized_name": "frame_rate", - "name": "frame_rate", - "type": "FLOAT", - "widget": { - "name": "frame_rate" - }, - "link": null - }, - { - "localized_name": "loop_count", - "name": "loop_count", - "type": "INT", - "widget": { - "name": "loop_count" - }, - "link": null - }, - { - "localized_name": "filename_prefix", - "name": "filename_prefix", - "type": "STRING", - "widget": { - "name": "filename_prefix" - }, - "link": null - }, - { - "localized_name": "format", - "name": "format", - "type": "COMBO", - "widget": { - "name": "format" - }, - "link": null - }, - { - "localized_name": "pingpong", - "name": "pingpong", - "type": "BOOLEAN", - "widget": { - "name": "pingpong" - }, - "link": null - }, - { - "localized_name": "save_output", - "name": "save_output", - "type": "BOOLEAN", - "widget": { - "name": "save_output" - }, - "link": null - } - ], - "outputs": [ - { - "localized_name": "Filenames", - "name": "Filenames", - "type": "VHS_FILENAMES", - "links": null - } - ], - "properties": { - "Node name for S&R": "VHS_VideoCombine" - }, - "widgets_values": { - "frame_rate": 24, - "loop_count": 0, - "filename_prefix": "ltxv-base", - "format": "video/h264-mp4", - "pix_fmt": "yuv420p", - "crf": 19, - "save_metadata": true, - "pingpong": false, - "save_output": false, - "videopreview": { - "hidden": false, - "paused": false, - "params": { - "filename": "ltxv-base_00053.mp4", - "subfolder": "", - "type": "temp", - "format": "video/h264-mp4", - "frame_rate": 24 - } - } - } - }, - { - "id": 6, - "type": "CLIPTextEncode", - "pos": [ - 725.3102416992188, - 2114.966064453125 - ], - "size": [ - 307.2346496582031, - 204.2556610107422 - ], - "flags": {}, - "order": 15, - "mode": 0, - "inputs": [ - { - "localized_name": "clip", - "name": "clip", - "type": "CLIP", - "link": 74 - }, - { - "localized_name": "text", - "name": "text", - "type": "STRING", - "widget": { - "name": "text" - }, - "link": null - } - ], - "outputs": [ - { - "localized_name": "CONDITIONING", - "name": "CONDITIONING", - "type": "CONDITIONING", - "slot_index": 0, - "links": [ - 3364 - ] - } - ], - "title": "CLIP Text Encode (Positive Prompt)", - "properties": { - "cnr_id": "comfy-core", - "ver": "0.3.28", - "Node name for S&R": "CLIPTextEncode" - }, - "widgets_values": [ - "" - ], - "color": "#232", - "bgcolor": "#353" - }, - { - "id": 1507, - "type": "RandomNoise", - "pos": [ - 1847.874755859375, - 2114.199462890625 - ], - "size": [ - 210, - 82 - ], - "flags": {}, - "order": 2, - "mode": 0, - "inputs": [ - { - "localized_name": "noise_seed", - "name": "noise_seed", - "type": "INT", - "widget": { - "name": "noise_seed" - }, - "link": null - } - ], - "outputs": [ - { - "localized_name": "NOISE", - "name": "NOISE", - "type": "NOISE", - "slot_index": 0, - "links": [ - 4053 - ] - } - ], - "properties": { - "cnr_id": "comfy-core", - "ver": "0.3.28", - "Node name for S&R": "RandomNoise" - }, - "widgets_values": [ - 108, - "fixed" - ] - }, - { - "id": 1858, - "type": "Note", - "pos": [ - 1098.473388671875, - 2107.7099609375 - ], - "size": [ - 313.80950927734375, - 120.61924743652344 - ], - "flags": {}, - "order": 3, - "mode": 0, - "inputs": [], - "outputs": [], - "properties": {}, - "widgets_values": [ - "Framerate can be adjusted, just make sure you are using the same framerate in your VideoCombine node to see proper playback.\n\n60FPS = Lower quality, more motion\n24 FPS = Higher quality, less motion" - ], - "color": "#432", - "bgcolor": "#653" - }, - { - "id": 1825, - "type": "Note", - "pos": [ - 452.24432373046875, - 2122.3583984375 - ], - "size": [ - 232.79998779296875, - 88 - ], - "flags": {}, - "order": 4, - "mode": 0, - "inputs": [], - "outputs": [], - "properties": {}, - "widgets_values": [ - "Best use descriptive prompt, but you can even leave it empty in i2v case." - ], - "color": "#432", - "bgcolor": "#653" - }, - { - "id": 1691, - "type": "LTXVLatentUpsampler", - "pos": [ - 3447.275146484375, - 2285.2890625 - ], - "size": [ - 235.1999969482422, - 66 - ], - "flags": {}, - "order": 28, - "mode": 0, - "inputs": [ - { - "localized_name": "samples", - "name": "samples", - "type": "LATENT", - "link": 5295 - }, - { - "localized_name": "upscale_model", - "name": "upscale_model", - "type": "UPSCALE_MODEL", - "link": 5303 - }, - { - "localized_name": "vae", - "name": "vae", - "type": "VAE", - "link": 5287 - } - ], - "outputs": [ - { - "localized_name": "LATENT", - "name": "LATENT", - "type": "LATENT", - "links": [ - 5297 - ] - } - ], - "properties": { - "Node name for S&R": "LTXVLatentUpsampler" - }, - "widgets_values": [] - }, - { - "id": 1593, - "type": "LTXVAdainLatent", - "pos": [ - 3472.47509765625, - 2415.978271484375 - ], - "size": [ - 210, - 78 - ], - "flags": {}, - "order": 30, - "mode": 0, - "inputs": [ - { - "localized_name": "latents", - "name": "latents", - "type": "LATENT", - "link": 5297 - }, - { - "localized_name": "reference", - "name": "reference", - "type": "LATENT", - "link": 5302 - }, - { - "localized_name": "factor", - "name": "factor", - "type": "FLOAT", - "widget": { - "name": "factor" - }, - "link": null - } - ], - "outputs": [ - { - "localized_name": "LATENT", - "name": "LATENT", - "type": "LATENT", - "links": [ - 5371 - ] - } - ], - "properties": { - "Node name for S&R": "LTXVAdainLatent" - }, - "widgets_values": [ - 0.25 - ] - }, - { - "id": 1863, - "type": "Note", - "pos": [ - 3360.09912109375, - 2549.0048828125 - ], - "size": [ - 322.3760986328125, - 88 - ], - "flags": {}, - "order": 5, - "mode": 0, - "inputs": [], - "outputs": [], - "properties": {}, - "widgets_values": [ - "Depending on the latent upscaler model used, it can increase either spatial or temporal resolution, without moving to/from pixel space. " - ], - "color": "#432", - "bgcolor": "#653" - }, - { - "id": 1599, - "type": "VHS_VideoCombine", - "pos": [ - 5415.6015625, - 2168.989501953125 - ], - "size": [ - 610.8043212890625, - 719.1004028320312 - ], - "flags": {}, - "order": 35, - "mode": 0, - "inputs": [ - { - "localized_name": "images", - "name": "images", - "shape": 7, - "type": "IMAGE", - "link": 4752 - }, - { - "localized_name": "audio", - "name": "audio", - "shape": 7, - "type": "AUDIO", - "link": null - }, - { - "localized_name": "meta_batch", - "name": "meta_batch", - "shape": 7, - "type": "VHS_BatchManager", - "link": null - }, - { - "localized_name": "vae", - "name": "vae", - "shape": 7, - "type": "VAE", - "link": null - }, - { - "localized_name": "frame_rate", - "name": "frame_rate", - "type": "FLOAT", - "widget": { - "name": "frame_rate" - }, - "link": null - }, - { - "localized_name": "loop_count", - "name": "loop_count", - "type": "INT", - "widget": { - "name": "loop_count" - }, - "link": null - }, - { - "localized_name": "filename_prefix", - "name": "filename_prefix", - "type": "STRING", - "widget": { - "name": "filename_prefix" - }, - "link": null - }, - { - "localized_name": "format", - "name": "format", - "type": "COMBO", - "widget": { - "name": "format" - }, - "link": null - }, - { - "localized_name": "pingpong", - "name": "pingpong", - "type": "BOOLEAN", - "widget": { - "name": "pingpong" - }, - "link": null - }, - { - "localized_name": "save_output", - "name": "save_output", - "type": "BOOLEAN", - "widget": { - "name": "save_output" - }, - "link": null - } - ], - "outputs": [ - { - "localized_name": "Filenames", - "name": "Filenames", - "type": "VHS_FILENAMES", - "links": null - } - ], - "properties": { - "Node name for S&R": "VHS_VideoCombine", - "cnr_id": "comfyui-videohelpersuite", - "ver": "2c25b8b53835aaeb63f831b3137c705cf9f85dce" - }, - "widgets_values": { - "frame_rate": 24, - "loop_count": 0, - "filename_prefix": "ltxv-hd", - "format": "video/h264-mp4", - "pix_fmt": "yuv420p", - "crf": 18, - "save_metadata": false, - "pingpong": false, - "save_output": false, - "videopreview": { - "hidden": false, - "paused": true, - "params": { - "filename": "ltxv-hd_00009.mp4", - "subfolder": "", - "type": "temp", - "format": "video/h264-mp4", - "frame_rate": 24, - "workflow": "ltxv_00055.png", - "fullpath": "C:\\Users\\Zeev\\Projects\\ComfyUI\\temp\\ltxv_00055.mp4" - }, - "muted": true - } - } - }, - { - "id": 1206, - "type": "LoadImage", - "pos": [ - 347.743896484375, - 2700.919677734375 - ], - "size": [ - 342.5999755859375, - 314 - ], - "flags": {}, - "order": 6, - "mode": 0, - "inputs": [ - { - "localized_name": "image", - "name": "image", - "type": "COMBO", - "widget": { - "name": "image" - }, - "link": null - }, - { - "localized_name": "choose file to upload", - "name": "upload", - "type": "IMAGEUPLOAD", - "widget": { - "name": "upload" - }, - "link": null - } - ], - "outputs": [ - { - "localized_name": "IMAGE", - "name": "IMAGE", - "type": "IMAGE", - "links": [ - 5355 - ] - }, - { - "localized_name": "MASK", - "name": "MASK", - "type": "MASK", - "links": null - } - ], - "properties": { - "cnr_id": "comfy-core", - "ver": "0.3.30", - "Node name for S&R": "LoadImage" - }, - "widgets_values": [ - "5aa.png", - "image" - ] - }, - { - "id": 1865, - "type": "LoadImage", - "pos": [ - 707.743896484375, - 2700.919677734375 - ], - "size": [ - 342.5999755859375, - 314 - ], - "flags": {}, - "order": 7, - "mode": 0, - "inputs": [ - { - "localized_name": "image", - "name": "image", - "type": "COMBO", - "widget": { - "name": "image" - }, - "link": null - }, - { - "localized_name": "choose file to upload", - "name": "upload", - "type": "IMAGEUPLOAD", - "widget": { - "name": "upload" - }, - "link": null - } - ], - "outputs": [ - { - "localized_name": "IMAGE", - "name": "IMAGE", - "type": "IMAGE", - "links": [ - 5356 - ] - }, - { - "localized_name": "MASK", - "name": "MASK", - "type": "MASK", - "links": null - } - ], - "properties": { - "cnr_id": "comfy-core", - "ver": "0.3.30", - "Node name for S&R": "LoadImage" - }, - "widgets_values": [ - "5B.png", - "image" - ] - }, - { - "id": 1866, - "type": "LoadImage", - "pos": [ - 1067.74365234375, - 2700.919677734375 - ], - "size": [ - 342.5999755859375, - 314 - ], - "flags": {}, - "order": 8, - "mode": 0, - "inputs": [ - { - "localized_name": "image", - "name": "image", - "type": "COMBO", - "widget": { - "name": "image" - }, - "link": null - }, - { - "localized_name": "choose file to upload", - "name": "upload", - "type": "IMAGEUPLOAD", - "widget": { - "name": "upload" - }, - "link": null - } - ], - "outputs": [ - { - "localized_name": "IMAGE", - "name": "IMAGE", - "type": "IMAGE", - "links": [ - 5358 - ] - }, - { - "localized_name": "MASK", - "name": "MASK", - "type": "MASK", - "links": null - } - ], - "properties": { - "cnr_id": "comfy-core", - "ver": "0.3.30", - "Node name for S&R": "LoadImage" - }, - "widgets_values": [ - "5C.png", - "image" - ] - }, - { - "id": 1867, - "type": "ImageBatch", - "pos": [ - 1197.74365234375, - 3080.919677734375 - ], - "size": [ - 210, - 46 - ], - "flags": {}, - "order": 17, - "mode": 0, - "inputs": [ - { - "localized_name": "image1", - "name": "image1", - "type": "IMAGE", - "link": 5355 - }, - { - "localized_name": "image2", - "name": "image2", - "type": "IMAGE", - "link": 5356 - } - ], - "outputs": [ - { - "localized_name": "IMAGE", - "name": "IMAGE", - "type": "IMAGE", - "links": [ - 5357 - ] - } - ], - "properties": { - "cnr_id": "comfy-core", - "ver": "0.3.30", - "Node name for S&R": "ImageBatch" - }, - "widgets_values": [] - }, - { - "id": 1869, - "type": "Note", - "pos": [ - 727.5205688476562, - 3077.712890625 - ], - "size": [ - 300, - 130 - ], - "flags": {}, - "order": 9, - "mode": 0, - "inputs": [], - "outputs": [], - "properties": {}, - "widgets_values": [ - "This flow shows keyframe interpolation, where keyframes are positioned in indices 0, 40 and 90 in 🅛🅣🅧 LTXV Base Sampler." - ], - "color": "#432", - "bgcolor": "#653" - }, - { - "id": 1870, - "type": "Set VAE Decoder Noise", - "pos": [ - 2495.60595703125, - 2370.852783203125 - ], - "size": [ - 235.1999969482422, - 130 - ], - "flags": {}, - "order": 18, - "mode": 0, - "inputs": [ - { - "localized_name": "vae", - "name": "vae", - "type": "VAE", - "link": 5360 - }, - { - "localized_name": "timestep", - "name": "timestep", - "type": "FLOAT", - "widget": { - "name": "timestep" - }, - "link": null - }, - { - "localized_name": "scale", - "name": "scale", - "type": "FLOAT", - "widget": { - "name": "scale" - }, - "link": null - }, - { - "localized_name": "seed", - "name": "seed", - "type": "INT", - "widget": { - "name": "seed" - }, - "link": null - } - ], - "outputs": [ - { - "localized_name": "VAE", - "name": "VAE", - "type": "VAE", - "links": [ - 5361, - 5362 - ] - } - ], - "properties": { - "Node name for S&R": "Set VAE Decoder Noise" - }, - "widgets_values": [ - 0.05, - 0.025, - 42, - "fixed" - ] - }, - { - "id": 73, - "type": "KSamplerSelect", - "pos": [ - 1510.7999267578125, - 2524.198486328125 - ], - "size": [ - 251.94110107421875, - 58 - ], - "flags": {}, - "order": 10, - "mode": 0, - "inputs": [ - { - "localized_name": "sampler_name", - "name": "sampler_name", - "type": "COMBO", - "widget": { - "name": "sampler_name" - }, - "link": null - } - ], - "outputs": [ - { - "localized_name": "SAMPLER", - "name": "SAMPLER", - "type": "SAMPLER", - "links": [ - 5224, - 5368 - ] - } - ], - "properties": { - "cnr_id": "comfy-core", - "ver": "0.3.28", - "Node name for S&R": "KSamplerSelect" - }, - "widgets_values": [ - "euler_ancestral" - ] - }, - { - "id": 44, - "type": "CheckpointLoaderSimple", - "pos": [ - 1084.624267578125, - 2417.698486328125 - ], - "size": [ - 334.6303405761719, - 98 - ], - "flags": {}, - "order": 11, - "mode": 0, - "inputs": [ - { - "localized_name": "ckpt_name", - "name": "ckpt_name", - "type": "COMBO", - "widget": { - "name": "ckpt_name" - }, - "link": null - } - ], - "outputs": [ - { - "localized_name": "MODEL", - "name": "MODEL", - "type": "MODEL", - "slot_index": 0, - "links": [ - 5236, - 5239, - 5240, - 5365 - ] - }, - { - "localized_name": "CLIP", - "name": "CLIP", - "type": "CLIP", - "links": [] - }, - { - "localized_name": "VAE", - "name": "VAE", - "type": "VAE", - "slot_index": 2, - "links": [ - 5243, - 5287, - 5360, - 5366 - ] - } - ], - "properties": { - "cnr_id": "comfy-core", - "ver": "0.3.28", - "Node name for S&R": "CheckpointLoaderSimple" - }, - "widgets_values": [ - "ltxv-13b-0.9.7-distilled.safetensors" - ] - }, - { - "id": 1873, - "type": "LTXVTiledSampler", - "pos": [ - 4184.95068359375, - 2168.989501953125 - ], - "size": [ - 329.20001220703125, - 366 - ], - "flags": {}, - "order": 31, - "mode": 0, - "inputs": [ - { - "localized_name": "model", - "name": "model", - "type": "MODEL", - "link": 5365 - }, - { - "localized_name": "vae", - "name": "vae", - "type": "VAE", - "link": 5366 - }, - { - "localized_name": "noise", - "name": "noise", - "type": "NOISE", - "link": 5367 - }, - { - "localized_name": "sampler", - "name": "sampler", - "type": "SAMPLER", - "link": 5368 - }, - { - "localized_name": "sigmas", - "name": "sigmas", - "type": "SIGMAS", - "link": 5374 - }, - { - "localized_name": "guider", - "name": "guider", - "type": "GUIDER", - "link": 5370 - }, - { - "localized_name": "latents", - "name": "latents", - "type": "LATENT", - "link": 5371 - }, - { - "localized_name": "optional_cond_images", - "name": "optional_cond_images", - "shape": 7, - "type": "IMAGE", - "link": 5384 - }, - { - "localized_name": "horizontal_tiles", - "name": "horizontal_tiles", - "type": "INT", - "widget": { - "name": "horizontal_tiles" - }, - "link": null - }, - { - "localized_name": "vertical_tiles", - "name": "vertical_tiles", - "type": "INT", - "widget": { - "name": "vertical_tiles" - }, - "link": null - }, - { - "localized_name": "overlap", - "name": "overlap", - "type": "INT", - "widget": { - "name": "overlap" - }, - "link": null - }, - { - "localized_name": "latents_cond_strength", - "name": "latents_cond_strength", - "type": "FLOAT", - "widget": { - "name": "latents_cond_strength" - }, - "link": null - }, - { - "localized_name": "boost_latent_similarity", - "name": "boost_latent_similarity", - "type": "BOOLEAN", - "widget": { - "name": "boost_latent_similarity" - }, - "link": null - }, - { - "localized_name": "crop", - "name": "crop", - "type": "COMBO", - "widget": { - "name": "crop" - }, - "link": null - }, - { - "localized_name": "optional_cond_indices", - "name": "optional_cond_indices", - "shape": 7, - "type": "STRING", - "widget": { - "name": "optional_cond_indices" - }, - "link": null - }, - { - "localized_name": "images_cond_strengths", - "name": "images_cond_strengths", - "shape": 7, - "type": "STRING", - "widget": { - "name": "images_cond_strengths" - }, - "link": null - } - ], - "outputs": [ - { - "localized_name": "output", - "name": "output", - "type": "LATENT", - "links": [ - 5372 - ] - }, - { - "localized_name": "denoised_output", - "name": "denoised_output", - "type": "LATENT", - "links": null - } - ], - "properties": { - "Node name for S&R": "LTXVTiledSampler" - }, - "widgets_values": [ - 1, - 1, - 1, - 0.15, - false, - "center", - "0, 40, 90", - "0.9" - ] - }, - { - "id": 1601, - "type": "VAEDecodeTiled", - "pos": [ - 4565.6015625, - 2168.989501953125 - ], - "size": [ - 210, - 150 - ], - "flags": {}, - "order": 32, - "mode": 0, - "inputs": [ - { - "localized_name": "samples", - "name": "samples", - "type": "LATENT", - "link": 5372 - }, - { - "localized_name": "vae", - "name": "vae", - "type": "VAE", - "link": 5362 - }, - { - "localized_name": "tile_size", - "name": "tile_size", - "type": "INT", - "widget": { - "name": "tile_size" - }, - "link": null - }, - { - "localized_name": "overlap", - "name": "overlap", - "type": "INT", - "widget": { - "name": "overlap" - }, - "link": null - }, - { - "localized_name": "temporal_size", - "name": "temporal_size", - "type": "INT", - "widget": { - "name": "temporal_size" - }, - "link": null - }, - { - "localized_name": "temporal_overlap", - "name": "temporal_overlap", - "type": "INT", - "widget": { - "name": "temporal_overlap" - }, - "link": null - } - ], - "outputs": [ - { - "localized_name": "IMAGE", - "name": "IMAGE", - "type": "IMAGE", - "links": [ - 4749 - ] - } - ], - "properties": { - "cnr_id": "comfy-core", - "ver": "0.3.29", - "Node name for S&R": "VAEDecodeTiled" - }, - "widgets_values": [ - 1280, - 128, - 128, - 32 - ] - }, - { - "id": 1598, - "type": "RandomNoise", - "pos": [ - 3834.480224609375, - 2120.607666015625 - ], - "size": [ - 210, - 82 - ], - "flags": {}, - "order": 12, - "mode": 0, - "inputs": [ - { - "localized_name": "noise_seed", - "name": "noise_seed", - "type": "INT", - "widget": { - "name": "noise_seed" - }, - "link": null - } - ], - "outputs": [ - { - "localized_name": "NOISE", - "name": "NOISE", - "type": "NOISE", - "links": [ - 5367 - ] - } - ], - "properties": { - "cnr_id": "comfy-core", - "ver": "0.3.30", - "Node name for S&R": "RandomNoise" - }, - "widgets_values": [ - 414, - "fixed" - ] - }, - { - "id": 1813, - "type": "STGGuiderAdvanced", - "pos": [ - 3768.236572265625, - 2261.949462890625 - ], - "size": [ - 278.79998779296875, - 262 - ], - "flags": {}, - "order": 24, - "mode": 0, - "inputs": [ - { - "localized_name": "model", - "name": "model", - "type": "MODEL", - "link": 5240 - }, - { - "localized_name": "positive", - "name": "positive", - "type": "CONDITIONING", - "link": 5274 - }, - { - "localized_name": "negative", - "name": "negative", - "type": "CONDITIONING", - "link": 5275 - }, - { - "localized_name": "preset", - "name": "preset", - "shape": 7, - "type": "STG_ADVANCED_PRESET", - "link": null - }, - { - "localized_name": "skip_steps_sigma_threshold", - "name": "skip_steps_sigma_threshold", - "type": "FLOAT", - "widget": { - "name": "skip_steps_sigma_threshold" - }, - "link": null - }, - { - "localized_name": "cfg_star_rescale", - "name": "cfg_star_rescale", - "type": "BOOLEAN", - "widget": { - "name": "cfg_star_rescale" - }, - "link": null - }, - { - "localized_name": "sigmas", - "name": "sigmas", - "type": "STRING", - "widget": { - "name": "sigmas" - }, - "link": null - }, - { - "localized_name": "cfg_values", - "name": "cfg_values", - "type": "STRING", - "widget": { - "name": "cfg_values" - }, - "link": null - }, - { - "localized_name": "stg_scale_values", - "name": "stg_scale_values", - "type": "STRING", - "widget": { - "name": "stg_scale_values" - }, - "link": null - }, - { - "localized_name": "stg_rescale_values", - "name": "stg_rescale_values", - "type": "STRING", - "widget": { - "name": "stg_rescale_values" - }, - "link": null - }, - { - "localized_name": "stg_layers_indices", - "name": "stg_layers_indices", - "type": "STRING", - "widget": { - "name": "stg_layers_indices" - }, - "link": null - } - ], - "outputs": [ - { - "localized_name": "GUIDER", - "name": "GUIDER", - "type": "GUIDER", - "links": [ - 5370 - ] - } - ], - "properties": { - "Node name for S&R": "STGGuiderAdvanced" - }, - "widgets_values": [ - 0.9970000000000002, - true, - "1", - "1", - "0", - "1", - "[42]" - ] - }, - { - "id": 1874, - "type": "StringToFloatList", - "pos": [ - 3791.60791015625, - 2611.287841796875 - ], - "size": [ - 228.27821350097656, - 88 - ], - "flags": {}, - "order": 13, - "mode": 0, - "inputs": [ - { - "localized_name": "string", - "name": "string", - "type": "STRING", - "widget": { - "name": "string" - }, - "link": null - } - ], - "outputs": [ - { - "localized_name": "FLOAT", - "name": "FLOAT", - "type": "FLOAT", - "links": [ - 5373 - ] - } - ], - "properties": { - "Node name for S&R": "StringToFloatList", - "cnr_id": "comfyui-kjnodes", - "ver": "0addfc6101f7a834c7fb6e0a1b26529360ab5350" - }, - "widgets_values": [ - "0.85, 0.7250, 0.6, 0.4219, 0.0" - ], - "color": "#223", - "bgcolor": "#335" - }, - { - "id": 1875, - "type": "FloatToSigmas", - "pos": [ - 4058.982177734375, - 2617.095947265625 - ], - "size": [ - 216.59999084472656, - 26 - ], - "flags": {}, - "order": 19, - "mode": 0, - "inputs": [ - { - "localized_name": "float_list", - "name": "float_list", - "type": "FLOAT", - "link": 5373 - } - ], - "outputs": [ - { - "localized_name": "SIGMAS", - "name": "SIGMAS", - "type": "SIGMAS", - "links": [ - 5374 - ] - } - ], - "properties": { - "Node name for S&R": "FloatToSigmas" - } - }, - { - "id": 1807, - "type": "STGGuiderAdvanced", - "pos": [ - 1779.07470703125, - 2253.726318359375 - ], - "size": [ - 278.79998779296875, - 262 - ], - "flags": {}, - "order": 23, - "mode": 0, - "inputs": [ - { - "localized_name": "model", - "name": "model", - "type": "MODEL", - "link": 5239 - }, - { - "localized_name": "positive", - "name": "positive", - "type": "CONDITIONING", - "link": 5227 - }, - { - "localized_name": "negative", - "name": "negative", - "type": "CONDITIONING", - "link": 5228 - }, - { - "localized_name": "preset", - "name": "preset", - "shape": 7, - "type": "STG_ADVANCED_PRESET", - "link": null - }, - { - "localized_name": "skip_steps_sigma_threshold", - "name": "skip_steps_sigma_threshold", - "type": "FLOAT", - "widget": { - "name": "skip_steps_sigma_threshold" - }, - "link": null - }, - { - "localized_name": "cfg_star_rescale", - "name": "cfg_star_rescale", - "type": "BOOLEAN", - "widget": { - "name": "cfg_star_rescale" - }, - "link": null - }, - { - "localized_name": "sigmas", - "name": "sigmas", - "type": "STRING", - "widget": { - "name": "sigmas" - }, - "link": null - }, - { - "localized_name": "cfg_values", - "name": "cfg_values", - "type": "STRING", - "widget": { - "name": "cfg_values" - }, - "link": null - }, - { - "localized_name": "stg_scale_values", - "name": "stg_scale_values", - "type": "STRING", - "widget": { - "name": "stg_scale_values" - }, - "link": null - }, - { - "localized_name": "stg_rescale_values", - "name": "stg_rescale_values", - "type": "STRING", - "widget": { - "name": "stg_rescale_values" - }, - "link": null - }, - { - "localized_name": "stg_layers_indices", - "name": "stg_layers_indices", - "type": "STRING", - "widget": { - "name": "stg_layers_indices" - }, - "link": null - } - ], - "outputs": [ - { - "localized_name": "GUIDER", - "name": "GUIDER", - "type": "GUIDER", - "links": [ - 5167 - ] - } - ], - "properties": { - "Node name for S&R": "STGGuiderAdvanced" - }, - "widgets_values": [ - 0.9970000000000002, - true, - "1.0, 0.9933, 0.9850, 0.9767, 0.9008, 0.6180", - "1,1,1,1,1,1", - "0,0,0,0,0,0", - "1, 1, 1, 1, 1, 1", - "[35], [35], [35], [42], [42], [42]" - ] - }, - { - "id": 1868, - "type": "ImageBatch", - "pos": [ - 1197.74365234375, - 3180.919677734375 - ], - "size": [ - 210, - 46 - ], - "flags": {}, - "order": 22, - "mode": 0, - "inputs": [ - { - "localized_name": "image1", - "name": "image1", - "type": "IMAGE", - "link": 5357 - }, - { - "localized_name": "image2", - "name": "image2", - "type": "IMAGE", - "link": 5358 - } - ], - "outputs": [ - { - "localized_name": "IMAGE", - "name": "IMAGE", - "type": "IMAGE", - "links": [ - 5378 - ] - } - ], - "properties": { - "cnr_id": "comfy-core", - "ver": "0.3.30", - "Node name for S&R": "ImageBatch" - }, - "widgets_values": [] - }, - { - "id": 1338, - "type": "LTXVBaseSampler", - "pos": [ - 2134.832763671875, - 2253.726318359375 - ], - "size": [ - 312.3999938964844, - 346 - ], - "flags": {}, - "order": 26, - "mode": 0, - "inputs": [ - { - "localized_name": "model", - "name": "model", - "type": "MODEL", - "link": 5236 - }, - { - "localized_name": "vae", - "name": "vae", - "type": "VAE", - "link": 5243 - }, - { - "localized_name": "guider", - "name": "guider", - "type": "GUIDER", - "link": 5167 - }, - { - "localized_name": "sampler", - "name": "sampler", - "type": "SAMPLER", - "link": 5224 - }, - { - "localized_name": "sigmas", - "name": "sigmas", - "type": "SIGMAS", - "link": 5364 - }, - { - "localized_name": "noise", - "name": "noise", - "type": "NOISE", - "link": 4053 - }, - { - "localized_name": "optional_cond_images", - "name": "optional_cond_images", - "shape": 7, - "type": "IMAGE", - "link": 5383 - }, - { - "localized_name": "width", - "name": "width", - "type": "INT", - "widget": { - "name": "width" - }, - "link": null - }, - { - "localized_name": "height", - "name": "height", - "type": "INT", - "widget": { - "name": "height" - }, - "link": null - }, - { - "localized_name": "num_frames", - "name": "num_frames", - "type": "INT", - "widget": { - "name": "num_frames" - }, - "link": null - }, - { - "localized_name": "optional_cond_indices", - "name": "optional_cond_indices", - "shape": 7, - "type": "STRING", - "widget": { - "name": "optional_cond_indices" - }, - "link": null - }, - { - "localized_name": "strength", - "name": "strength", - "shape": 7, - "type": "FLOAT", - "widget": { - "name": "strength" - }, - "link": null - }, - { - "localized_name": "crop", - "name": "crop", - "shape": 7, - "type": "COMBO", - "widget": { - "name": "crop" - }, - "link": null - }, - { - "localized_name": "crf", - "name": "crf", - "shape": 7, - "type": "INT", - "widget": { - "name": "crf" - }, - "link": null - }, - { - "localized_name": "blur", - "name": "blur", - "shape": 7, - "type": "INT", - "widget": { - "name": "blur" - }, - "link": null - } - ], - "outputs": [ - { - "localized_name": "denoised_output", - "name": "denoised_output", - "type": "LATENT", - "links": [ - 3576, - 5295, - 5302 - ] - } - ], - "properties": { - "Node name for S&R": "LTXVBaseSampler" - }, - "widgets_values": [ - 768, - 512, - 97, - "0, 40, 90", - 0.8, - "center", - 30, - 1 - ] - }, - { - "id": 1876, - "type": "BlurImageFast", - "pos": [ - 1515.010986328125, - 2793.010986328125 - ], - "size": [ - 315, - 82 - ], - "flags": {}, - "order": 25, - "mode": 0, - "inputs": [ - { - "localized_name": "images", - "name": "images", - "type": "IMAGE", - "link": 5378 - }, - { - "localized_name": "radius_x", - "name": "radius_x", - "type": "INT", - "widget": { - "name": "radius_x" - }, - "link": null - }, - { - "localized_name": "radius_y", - "name": "radius_y", - "type": "INT", - "widget": { - "name": "radius_y" - }, - "link": null - } - ], - "outputs": [ - { - "localized_name": "IMAGE", - "name": "IMAGE", - "type": "IMAGE", - "links": [ - 5383, - 5384 - ] - } - ], - "properties": { - "Node name for S&R": "BlurImageFast" - }, - "widgets_values": [ - 1, - 1 - ] - }, - { - "id": 1871, - "type": "StringToFloatList", - "pos": [ - 1518.1845703125, - 2642.684814453125 - ], - "size": [ - 210, - 88 - ], - "flags": {}, - "order": 14, - "mode": 0, - "inputs": [ - { - "localized_name": "string", - "name": "string", - "type": "STRING", - "widget": { - "name": "string" - }, - "link": null - } - ], - "outputs": [ - { - "localized_name": "FLOAT", - "name": "FLOAT", - "type": "FLOAT", - "links": [ - 5363 - ] - } - ], - "properties": { - "Node name for S&R": "StringToFloatList", - "cnr_id": "comfyui-kjnodes", - "ver": "0addfc6101f7a834c7fb6e0a1b26529360ab5350" - }, - "widgets_values": [ - "1.0000, 0.9937, 0.9875, 0.9812, 0.9750, 0.9094, 0.7250, 0.4219, 0.0" - ], - "color": "#223", - "bgcolor": "#335" - }, - { - "id": 1872, - "type": "FloatToSigmas", - "pos": [ - 1832.147705078125, - 2643.280517578125 - ], - "size": [ - 216.59999084472656, - 26 - ], - "flags": {}, - "order": 20, - "mode": 0, - "inputs": [ - { - "localized_name": "float_list", - "name": "float_list", - "type": "FLOAT", - "link": 5363 - } - ], - "outputs": [ - { - "localized_name": "SIGMAS", - "name": "SIGMAS", - "type": "SIGMAS", - "links": [ - 5364 - ] - } - ], - "properties": { - "Node name for S&R": "FloatToSigmas" - }, - "widgets_values": [] - } - ], - "links": [ - [ - 74, - 38, - 0, - 6, - 0, - "CLIP" - ], - [ - 75, - 38, - 0, - 7, - 0, - "CLIP" - ], - [ - 3364, - 6, - 0, - 1241, - 0, - "CONDITIONING" - ], - [ - 3365, - 7, - 0, - 1241, - 1, - "CONDITIONING" - ], - [ - 3576, - 1338, - 0, - 1335, - 0, - "LATENT" - ], - [ - 3578, - 1335, - 0, - 1336, - 0, - "IMAGE" - ], - [ - 4053, - 1507, - 0, - 1338, - 5, - "NOISE" - ], - [ - 4749, - 1601, - 0, - 1661, - 0, - "IMAGE" - ], - [ - 4751, - 1661, - 0, - 1699, - 0, - "IMAGE" - ], - [ - 4752, - 1699, - 0, - 1599, - 0, - "IMAGE" - ], - [ - 5167, - 1807, - 0, - 1338, - 2, - "GUIDER" - ], - [ - 5224, - 73, - 0, - 1338, - 3, - "SAMPLER" - ], - [ - 5227, - 1241, - 0, - 1807, - 1, - "CONDITIONING" - ], - [ - 5228, - 1241, - 1, - 1807, - 2, - "CONDITIONING" - ], - [ - 5236, - 44, - 0, - 1338, - 0, - "MODEL" - ], - [ - 5239, - 44, - 0, - 1807, - 0, - "MODEL" - ], - [ - 5240, - 44, - 0, - 1813, - 0, - "MODEL" - ], - [ - 5243, - 44, - 2, - 1338, - 1, - "VAE" - ], - [ - 5274, - 1241, - 0, - 1813, - 1, - "CONDITIONING" - ], - [ - 5275, - 1241, - 1, - 1813, - 2, - "CONDITIONING" - ], - [ - 5287, - 44, - 2, - 1691, - 2, - "VAE" - ], - [ - 5295, - 1338, - 0, - 1691, - 0, - "LATENT" - ], - [ - 5297, - 1691, - 0, - 1593, - 0, - "LATENT" - ], - [ - 5302, - 1338, - 0, - 1593, - 1, - "LATENT" - ], - [ - 5303, - 1828, - 0, - 1691, - 1, - "UPSCALE_MODEL" - ], - [ - 5355, - 1206, - 0, - 1867, - 0, - "IMAGE" - ], - [ - 5356, - 1865, - 0, - 1867, - 1, - "IMAGE" - ], - [ - 5357, - 1867, - 0, - 1868, - 0, - "IMAGE" - ], - [ - 5358, - 1866, - 0, - 1868, - 1, - "IMAGE" - ], - [ - 5360, - 44, - 2, - 1870, - 0, - "VAE" - ], - [ - 5361, - 1870, - 0, - 1335, - 1, - "VAE" - ], - [ - 5362, - 1870, - 0, - 1601, - 1, - "VAE" - ], - [ - 5363, - 1871, - 0, - 1872, - 0, - "FLOAT" - ], - [ - 5364, - 1872, - 0, - 1338, - 4, - "SIGMAS" - ], - [ - 5365, - 44, - 0, - 1873, - 0, - "MODEL" - ], - [ - 5366, - 44, - 2, - 1873, - 1, - "VAE" - ], - [ - 5367, - 1598, - 0, - 1873, - 2, - "NOISE" - ], - [ - 5368, - 73, - 0, - 1873, - 3, - "SAMPLER" - ], - [ - 5370, - 1813, - 0, - 1873, - 5, - "GUIDER" - ], - [ - 5371, - 1593, - 0, - 1873, - 6, - "LATENT" - ], - [ - 5372, - 1873, - 0, - 1601, - 0, - "LATENT" - ], - [ - 5373, - 1874, - 0, - 1875, - 0, - "FLOAT" - ], - [ - 5374, - 1875, - 0, - 1873, - 4, - "SIGMAS" - ], - [ - 5378, - 1868, - 0, - 1876, - 0, - "IMAGE" - ], - [ - 5383, - 1876, - 0, - 1338, - 6, - "IMAGE" - ], - [ - 5384, - 1876, - 0, - 1873, - 7, - "IMAGE" - ] - ], - "groups": [ - { - "id": 20, - "title": "Base Low Res Generation ", - "bounding": [ - 1500, - 2037.5235595703125, - 1770.58251953125, - 850.8944091796875 - ], - "color": "#3f789e", - "font_size": 24, - "flags": {}, - "nodes": [ - 1335, - 1336, - 1507, - 1870, - 73, - 1807, - 1338, - 1876, - 1871, - 1872 - ] - }, - { - "id": 34, - "title": "Latent Upscaler", - "bounding": [ - 3328.0751953125, - 2042.7794189453125, - 364.39990234375, - 604.2252197265625 - ], - "color": "#3f789e", - "font_size": 24, - "flags": {}, - "nodes": [ - 1828, - 1691, - 1593, - 1863 - ] - }, - { - "id": 41, - "title": "Setup", - "bounding": [ - 337.74371337890625, - 2034.1099853515625, - 1091.51123046875, - 1202.8096923828125 - ], - "color": "#3f789e", - "font_size": 24, - "flags": {}, - "nodes": [ - 1241, - 7, - 38, - 6, - 1858, - 1825, - 1206, - 1865, - 1866, - 1867, - 1869, - 44, - 1868 - ] - }, - { - "id": 42, - "title": "Add Details", - "bounding": [ - 3758.236572265625, - 2047.007568359375, - 2278.168701171875, - 851.0821533203125 - ], - "color": "#3f789e", - "font_size": 24, - "flags": {}, - "nodes": [ - 1661, - 1699, - 1599, - 1873, - 1601, - 1598, - 1813, - 1874, - 1875 - ] - } - ], - "config": {}, - "extra": { - "ds": { - "scale": 0.7513148009015783, - "offset": [ - -371.96540421292207, - -1823.9250455358406 - ] - }, - "frontendVersion": "1.17.11", - "VHS_latentpreview": true, - "VHS_latentpreviewrate": 0, - "VHS_MetadataImage": true, - "VHS_KeepIntermediate": true, - "prompt": { - "6": { - "inputs": { - "text": "", - "clip": [ - "38", - 0 - ] - }, - "class_type": "CLIPTextEncode", - "_meta": { - "title": "CLIP Text Encode (Positive Prompt)" - } - }, - "7": { - "inputs": { - "text": "low quality, worst quality, deformed, distorted, disfigured, motion smear, motion artifacts, fused fingers, bad anatomy, weird hand, ugly", - "clip": [ - "38", - 0 - ] - }, - "class_type": "CLIPTextEncode", - "_meta": { - "title": "CLIP Text Encode (Negative Prompt)" - } - }, - "38": { - "inputs": { - "clip_name": "t5xxl_fp16.safetensors", - "type": "ltxv", - "device": "default" - }, - "class_type": "CLIPLoader", - "_meta": { - "title": "Load CLIP" - } - }, - "44": { - "inputs": { - "ckpt_name": "ltxv-13b-0.9.7-distilled.safetensors" - }, - "class_type": "CheckpointLoaderSimple", - "_meta": { - "title": "Load Checkpoint" - } - }, - "73": { - "inputs": { - "sampler_name": "euler_ancestral" - }, - "class_type": "KSamplerSelect", - "_meta": { - "title": "KSamplerSelect" - } - }, - "1206": { - "inputs": { - "image": "5aa.png" - }, - "class_type": "LoadImage", - "_meta": { - "title": "Load Image" - } - }, - "1241": { - "inputs": { - "frame_rate": 24.000000000000004, - "positive": [ - "6", - 0 - ], - "negative": [ - "7", - 0 - ] - }, - "class_type": "LTXVConditioning", - "_meta": { - "title": "LTXVConditioning" - } - }, - "1335": { - "inputs": { - "samples": [ - "1338", - 0 - ], - "vae": [ - "1870", - 0 - ] - }, - "class_type": "VAEDecode", - "_meta": { - "title": "VAE Decode" - } - }, - "1336": { - "inputs": { - "frame_rate": 24, - "loop_count": 0, - "filename_prefix": "ltxv-base", - "format": "video/h264-mp4", - "pix_fmt": "yuv420p", - "crf": 19, - "save_metadata": true, - "pingpong": false, - "save_output": false, - "images": [ - "1335", - 0 - ] - }, - "class_type": "VHS_VideoCombine", - "_meta": { - "title": "Video Combine 🎥🅥🅗🅢" - } - }, - "1338": { - "inputs": { - "width": 768, - "height": 512, - "num_frames": 97, - "optional_cond_indices": "0, 40, 90", - "strength": 0.8, - "crop": "center", - "crf": 30, - "blur": 1, - "model": [ - "44", - 0 - ], - "vae": [ - "44", - 2 - ], - "guider": [ - "1807", - 0 - ], - "sampler": [ - "73", - 0 - ], - "sigmas": [ - "1872", - 0 - ], - "noise": [ - "1507", - 0 - ], - "optional_cond_images": [ - "1876", - 0 - ] - }, - "class_type": "LTXVBaseSampler", - "_meta": { - "title": "🅛🅣🅧 LTXV Base Sampler" - } - }, - "1507": { - "inputs": { - "noise_seed": 108 - }, - "class_type": "RandomNoise", - "_meta": { - "title": "RandomNoise" - } - }, - "1593": { - "inputs": { - "factor": 0.25, - "latents": [ - "1691", - 0 - ], - "reference": [ - "1338", - 0 - ] - }, - "class_type": "LTXVAdainLatent", - "_meta": { - "title": "🅛🅣🅧 LTXV Adain Latent" - } - }, - "1598": { - "inputs": { - "noise_seed": 414 - }, - "class_type": "RandomNoise", - "_meta": { - "title": "RandomNoise" - } - }, - "1599": { - "inputs": { - "frame_rate": 24, - "loop_count": 0, - "filename_prefix": "ltxv-hd", - "format": "video/h264-mp4", - "pix_fmt": "yuv420p", - "crf": 18, - "save_metadata": false, - "pingpong": false, - "save_output": false, - "images": [ - "1699", - 0 - ] - }, - "class_type": "VHS_VideoCombine", - "_meta": { - "title": "Video Combine 🎥🅥🅗🅢" - } - }, - "1601": { - "inputs": { - "tile_size": 1280, - "overlap": 128, - "temporal_size": 128, - "temporal_overlap": 32, - "samples": [ - "1873", - 0 - ], - "vae": [ - "1870", - 0 - ] - }, - "class_type": "VAEDecodeTiled", - "_meta": { - "title": "VAE Decode (Tiled)" - } - }, - "1661": { - "inputs": { - "width": 1280, - "height": 1280, - "upscale_method": "bicubic", - "keep_proportion": true, - "divisible_by": 2, - "crop": "center", - "image": [ - "1601", - 0 - ] - }, - "class_type": "ImageResizeKJ", - "_meta": { - "title": "Resize Image" - } - }, - "1691": { - "inputs": { - "samples": [ - "1338", - 0 - ], - "upscale_model": [ - "1828", - 0 - ], - "vae": [ - "44", - 2 - ] - }, - "class_type": "LTXVLatentUpsampler", - "_meta": { - "title": "🅛🅣🅧 LTXV Latent Upsampler" - } - }, - "1699": { - "inputs": { - "grain_intensity": 0.010000000000000002, - "saturation": 0.5, - "images": [ - "1661", - 0 - ] - }, - "class_type": "LTXVFilmGrain", - "_meta": { - "title": "🅛🅣🅧 LTXV Film Grain" - } - }, - "1807": { - "inputs": { - "skip_steps_sigma_threshold": 0.9970000000000002, - "cfg_star_rescale": true, - "sigmas": "1.0, 0.9933, 0.9850, 0.9767, 0.9008, 0.6180", - "cfg_values": "1,1,1,1,1,1", - "stg_scale_values": "0,0,0,0,0,0", - "stg_rescale_values": "1, 1, 1, 1, 1, 1", - "stg_layers_indices": "[35], [35], [35], [42], [42], [42]", - "model": [ - "44", - 0 - ], - "positive": [ - "1241", - 0 - ], - "negative": [ - "1241", - 1 - ] - }, - "class_type": "STGGuiderAdvanced", - "_meta": { - "title": "🅛🅣🅧 STG Guider Advanced" - } - }, - "1813": { - "inputs": { - "skip_steps_sigma_threshold": 0.9970000000000002, - "cfg_star_rescale": true, - "sigmas": "1", - "cfg_values": "1", - "stg_scale_values": "0", - "stg_rescale_values": "1", - "stg_layers_indices": "[42]", - "model": [ - "44", - 0 - ], - "positive": [ - "1241", - 0 - ], - "negative": [ - "1241", - 1 - ] - }, - "class_type": "STGGuiderAdvanced", - "_meta": { - "title": "🅛🅣🅧 STG Guider Advanced" - } - }, - "1828": { - "inputs": { - "upscale_model": "ltxv-spatial-upscaler-0.9.8.safetensors", - "spatial_upsample": true, - "temporal_upsample": false - }, - "class_type": "LTXVLatentUpsamplerModelLoader", - "_meta": { - "title": "🅛🅣🅧 LTXV Latent Upsampler Model Loader" - } - }, - "1865": { - "inputs": { - "image": "5B.png" - }, - "class_type": "LoadImage", - "_meta": { - "title": "Load Image" - } - }, - "1866": { - "inputs": { - "image": "5C.png" - }, - "class_type": "LoadImage", - "_meta": { - "title": "Load Image" - } - }, - "1867": { - "inputs": { - "image1": [ - "1206", - 0 - ], - "image2": [ - "1865", - 0 - ] - }, - "class_type": "ImageBatch", - "_meta": { - "title": "Batch Images" - } - }, - "1868": { - "inputs": { - "image1": [ - "1867", - 0 - ], - "image2": [ - "1866", - 0 - ] - }, - "class_type": "ImageBatch", - "_meta": { - "title": "Batch Images" - } - }, - "1870": { - "inputs": { - "timestep": 0.05, - "scale": 0.025, - "seed": 42, - "vae": [ - "44", - 2 - ] - }, - "class_type": "Set VAE Decoder Noise", - "_meta": { - "title": "🅛🅣🅧 Set VAE Decoder Noise" - } - }, - "1871": { - "inputs": { - "string": "1.0000, 0.9937, 0.9875, 0.9812, 0.9750, 0.9094, 0.7250, 0.4219, 0.0" - }, - "class_type": "StringToFloatList", - "_meta": { - "title": "String to Float List" - } - }, - "1872": { - "inputs": { - "float_list": [ - "1871", - 0 - ] - }, - "class_type": "FloatToSigmas", - "_meta": { - "title": "Float To Sigmas" - } - }, - "1873": { - "inputs": { - "horizontal_tiles": 1, - "vertical_tiles": 1, - "overlap": 1, - "latents_cond_strength": 0.15, - "boost_latent_similarity": false, - "crop": "center", - "optional_cond_indices": "0, 40, 90", - "images_cond_strengths": "0.9", - "model": [ - "44", - 0 - ], - "vae": [ - "44", - 2 - ], - "noise": [ - "1598", - 0 - ], - "sampler": [ - "73", - 0 - ], - "sigmas": [ - "1875", - 0 - ], - "guider": [ - "1813", - 0 - ], - "latents": [ - "1593", - 0 - ], - "optional_cond_images": [ - "1876", - 0 - ] - }, - "class_type": "LTXVTiledSampler", - "_meta": { - "title": "🅛🅣🅧 LTXV Tiled Sampler" - } - }, - "1874": { - "inputs": { - "string": "0.85, 0.7250, 0.6, 0.4219, 0.0" - }, - "class_type": "StringToFloatList", - "_meta": { - "title": "String to Float List" - } - }, - "1875": { - "inputs": { - "float_list": [ - "1874", - 0 - ] - }, - "class_type": "FloatToSigmas", - "_meta": { - "title": "Float To Sigmas" - } - }, - "1876": { - "inputs": { - "radius_x": 1, - "radius_y": 1, - "images": [ - "1868", - 0 - ] - }, - "class_type": "BlurImageFast", - "_meta": { - "title": "Blur Image (Fast)" - } - } - }, - "comfy_fork_version": "develop@580b3007", - "workspace_info": { - "id": "elBQFQknIoLYTEwIloQuw" - }, - "node_versions": { - "comfy-core": "0.3.20" - } - }, - "version": 0.4 -} diff --git a/example_workflows/LTX-2_I2V_Distilled_wLora.json b/example_workflows/LTX-2_I2V_Distilled_wLora.json new file mode 100644 index 0000000..323808e --- /dev/null +++ b/example_workflows/LTX-2_I2V_Distilled_wLora.json @@ -0,0 +1,3282 @@ +{ + "id": "5775f45b-ae48-4889-b57c-dbdb70f74381", + "revision": 0, + "last_node_id": 5214, + "last_link_id": 13953, + "nodes": [ + { + "id": 5185, + "type": "EmptyImage", + "pos": [ + -2667.561287475645, + 6824.636229314792 + ], + "size": [ + 210, + 130 + ], + "flags": {}, + "order": 0, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "IMAGE", + "type": "IMAGE", + "links": [ + 13943 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.5.1", + "Node name for S&R": "EmptyImage" + }, + "widgets_values": [ + 1920, + 1088, + 1, + 0 + ] + }, + { + "id": 5186, + "type": "PrimitiveInt", + "pos": [ + -2669.265782707413, + 7006.326003754771 + ], + "size": [ + 210, + 82 + ], + "flags": {}, + "order": 1, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "INT", + "type": "INT", + "links": [ + 13944 + ] + } + ], + "title": "length", + "properties": { + "cnr_id": "comfy-core", + "ver": "0.5.1", + "Node name for S&R": "PrimitiveInt" + }, + "widgets_values": [ + 121, + "fixed" + ] + }, + { + "id": 5196, + "type": "CM_FloatToInt", + "pos": [ + -2673.4965346008653, + 7259.13385362648 + ], + "size": [ + 214.03773034527285, + 58 + ], + "flags": {}, + "order": 13, + "mode": 0, + "inputs": [ + { + "name": "a", + "type": "FLOAT", + "widget": { + "name": "a" + }, + "link": 13948 + } + ], + "outputs": [ + { + "name": "INT", + "type": "INT", + "links": [ + 13949 + ] + } + ], + "title": "Frame Rate", + "properties": { + "Node name for S&R": "CM_FloatToInt" + }, + "widgets_values": [ + 0 + ] + }, + { + "id": 5190, + "type": "CreateVideo", + "pos": [ + -1150.8629295969438, + 6768.122273238377 + ], + "size": [ + 210, + 78 + ], + "flags": {}, + "order": 20, + "mode": 0, + "inputs": [ + { + "name": "images", + "type": "IMAGE", + "link": 13930 + }, + { + "name": "audio", + "shape": 7, + "type": "AUDIO", + "link": 13931 + }, + { + "name": "fps", + "type": "FLOAT", + "widget": { + "name": "fps" + }, + "link": 13932 + } + ], + "outputs": [ + { + "name": "VIDEO", + "type": "VIDEO", + "links": [ + 13946 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.5.1", + "Node name for S&R": "CreateVideo" + }, + "widgets_values": [ + 30 + ] + }, + { + "id": 4958, + "type": "SaveVideo", + "pos": [ + -908.3162271395863, + 6765.627599904565 + ], + "size": [ + 632.4072425120453, + 817.489191202842 + ], + "flags": {}, + "order": 21, + "mode": 0, + "inputs": [ + { + "name": "video", + "type": "VIDEO", + "link": 13946 + } + ], + "outputs": [], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.5.1" + }, + "widgets_values": [ + "video/LTX-2", + "auto", + "auto" + ] + }, + { + "id": 5184, + "type": "PrimitiveFloat", + "pos": [ + -2674.0643381993596, + 7141.5495111297 + ], + "size": [ + 219.3647216161935, + 58 + ], + "flags": {}, + "order": 2, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "FLOAT", + "type": "FLOAT", + "links": [ + 13923, + 13932, + 13948 + ] + } + ], + "title": "Frame Rate", + "properties": { + "cnr_id": "comfy-core", + "ver": "0.5.1", + "Node name for S&R": "PrimitiveFloat" + }, + "widgets_values": [ + 24 + ] + }, + { + "id": 5176, + "type": "CheckpointLoaderSimple", + "pos": [ + -3163.6484542778676, + 6835.212679199566 + ], + "size": [ + 429.0602433593749, + 115.06840156250018 + ], + "flags": {}, + "order": 3, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "links": [ + 13934, + 13947 + ] + }, + { + "name": "CLIP", + "type": "CLIP", + "links": [] + }, + { + "name": "VAE", + "type": "VAE", + "links": [ + 13939 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.56", + "Node name for S&R": "CheckpointLoaderSimple" + }, + "widgets_values": [ + "ltx-2-19b-distilled.safetensors" + ] + }, + { + "id": 5178, + "type": "LTXVGemmaCLIPModelLoader", + "pos": [ + -3158.5490398695288, + 7158.821506282883 + ], + "size": [ + 421.93656760943577, + 106 + ], + "flags": {}, + "order": 4, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "clip", + "type": "CLIP", + "links": [ + 13924, + 13926 + ] + } + ], + "properties": { + "Node name for S&R": "LTXVGemmaCLIPModelLoader", + "widget_ue_connectable": { + "model_path": true, + "max_length": true + } + }, + "widgets_values": [ + "gemma-3-12b-it-qat-q4_0-unquantized/model-00001-of-00005.safetensors", + "ltx-2-19b-distilled.safetensors", + 1024 + ] + }, + { + "id": 5188, + "type": "LTXVAudioVAELoader", + "pos": [ + -3153.75563617144, + 7313.4443822788235 + ], + "size": [ + 424.18031362607053, + 58 + ], + "flags": {}, + "order": 5, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "Audio VAE", + "type": "VAE", + "links": [ + 13935 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.64", + "Node name for S&R": "LTXVAudioVAELoader" + }, + "widgets_values": [ + "ltx-2-19b-distilled.safetensors" + ] + }, + { + "id": 5182, + "type": "LoraLoaderModelOnly", + "pos": [ + -1958.7895251485363, + 6623.839323304449 + ], + "size": [ + 210, + 82 + ], + "flags": {}, + "order": 14, + "mode": 4, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 13934 + } + ], + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "links": [ + 13941 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.68", + "Node name for S&R": "LoraLoaderModelOnly" + }, + "widgets_values": [ + "your_camera_lora.safetensors", + 1 + ] + }, + { + "id": 5183, + "type": "LoraLoaderModelOnly", + "pos": [ + -1740.2505912634988, + 6624.698937379894 + ], + "size": [ + 210, + 82 + ], + "flags": {}, + "order": 15, + "mode": 4, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 13947 + } + ], + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "links": [ + 13936 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.68", + "Node name for S&R": "LoraLoaderModelOnly" + }, + "widgets_values": [ + "your_camera_lora.safetensors", + 1 + ] + }, + { + "id": 5174, + "type": "CLIPTextEncode", + "pos": [ + -1674.9082842387786, + 7164.805578586365 + ], + "size": [ + 307.2346496582031, + 76 + ], + "flags": { + "collapsed": true + }, + "order": 17, + "mode": 0, + "inputs": [ + { + "name": "clip", + "type": "CLIP", + "link": 13924 + }, + { + "name": "text", + "type": "STRING", + "widget": { + "name": "text" + }, + "link": 13925 + } + ], + "outputs": [ + { + "name": "CONDITIONING", + "type": "CONDITIONING", + "slot_index": 0, + "links": [ + 13921, + 13950 + ] + } + ], + "title": "Enhanced Prompt (Positive)", + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.28", + "Node name for S&R": "CLIPTextEncode" + }, + "widgets_values": [ + "" + ], + "color": "#232", + "bgcolor": "#353" + }, + { + "id": 5173, + "type": "LTXVConditioning", + "pos": [ + -1670.0361297856184, + 7232.400593532743 + ], + "size": [ + 210, + 94 + ], + "flags": {}, + "order": 18, + "mode": 0, + "inputs": [ + { + "name": "positive", + "type": "CONDITIONING", + "link": 13921 + }, + { + "name": "negative", + "type": "CONDITIONING", + "link": 13950 + }, + { + "name": "frame_rate", + "type": "FLOAT", + "widget": { + "name": "frame_rate" + }, + "link": 13923 + } + ], + "outputs": [ + { + "name": "positive", + "type": "CONDITIONING", + "slot_index": 0, + "links": [ + 13937 + ] + }, + { + "name": "negative", + "type": "CONDITIONING", + "slot_index": 1, + "links": [ + 13938 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.28", + "Node name for S&R": "LTXVConditioning" + }, + "widgets_values": [ + 25 + ] + }, + { + "id": 5210, + "type": "LatentUpscaleModelLoader", + "pos": [ + -3139.869216300637, + 7005.9900104735725 + ], + "size": [ + 399.6787452278271, + 58 + ], + "flags": {}, + "order": 6, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "LATENT_UPSCALE_MODEL", + "type": "LATENT_UPSCALE_MODEL", + "links": [ + 13953 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.7.0", + "Node name for S&R": "LatentUpscaleModelLoader" + }, + "widgets_values": [ + "ltx-2-spatial-upscaler-x2-1.0.safetensors" + ] + }, + { + "id": 5212, + "type": "MarkdownNote", + "pos": [ + -3624.6205106722414, + 6715.620851300959 + ], + "size": [ + 421.1303542521987, + 436.3332627074051 + ], + "flags": { + "collapsed": false + }, + "order": 7, + "mode": 0, + "inputs": [], + "outputs": [], + "title": "Model Links", + "properties": {}, + "widgets_values": [ + "## Model Links\n\n**LTX-2 Model Weights**\n\n- [ltx-2-19b-distilled.safetensors](https://huggingface.co/Lightricks/LTX-2/resolve/main/ltx-2-19b-distilled.safetensors)\n- [ ltx-2-spatial-upscaler-x2-1.0.safetensors ](https://huggingface.co/Lightricks/LTX-2/tree/main/ltx-2-spatial-upscaler-x2-1.0.safetensors)\n\n**Text Encoder**\n- [Google Gemma 3](https://huggingface.co/google/gemma-3-12b-pt)\n\n**Model Storage Location**\n\n```\n📂 ComfyUI/\n├── 📂 models/\n│ ├── 📂 text_encoders/\n│ │ ├── comfy_gemma_3_12B_it.safetensors\n│ ├── 📂 checkpoints/\n│ │ └── ltx-2-19b-distilled.safetensors\n│ ├── 📂 latent_upscale_models/ \n └── ltx-2-spatial-upscaler-x2-1.0.safetensors\n```\n\n## Report Issues\nTo report any issues when running this workflow, [go to GitHub](https://github.com/Lightricks/ComfyUI-LTXVideo/issues)\n" + ], + "color": "#432", + "bgcolor": "#653" + }, + { + "id": 5211, + "type": "MarkdownNote", + "pos": [ + -3623.5618947453854, + 7193.231548656596 + ], + "size": [ + 420.9178919734818, + 209.33158232705227 + ], + "flags": { + "collapsed": false + }, + "order": 8, + "mode": 0, + "inputs": [], + "outputs": [], + "title": "Prompting LTX-2", + "properties": {}, + "widgets_values": [ + "## LTX-2 Prompting Tips\n1. **Core Actions**: Describe events and actions as they occur over time \n2. **Audio**: Describe sounds and dialogue needed for the scene \n3. **Reference Image**: Do not repeat details already present \n4. **Consistency**: Avoid instructions that do not match the reference image, as this will degrade results" + ], + "color": "#432", + "bgcolor": "#653" + }, + { + "id": 5213, + "type": "MarkdownNote", + "pos": [ + -2682.3402563401937, + 6633.478072231158 + ], + "size": [ + 240.16187366614236, + 98.41687371924309 + ], + "flags": { + "collapsed": false + }, + "order": 9, + "mode": 0, + "inputs": [], + "outputs": [], + "title": "Video Size", + "properties": {}, + "widgets_values": [ + "Width & height settings must be divisible by 32 + 1. \nFrame count must be divisible by 8 + 1. \n\n\nRunning with invalid parameters **will not cause errors**. Instead, the flow will silently choose the closest valid parameters. " + ], + "color": "#432", + "bgcolor": "#653" + }, + { + "id": 5214, + "type": "MarkdownNote", + "pos": [ + -1985.053544501217, + 6321.755714756273 + ], + "size": [ + 469.5872194653941, + 209.10385276580928 + ], + "flags": { + "collapsed": false + }, + "order": 10, + "mode": 0, + "inputs": [], + "outputs": [], + "title": "LoRA", + "properties": {}, + "widgets_values": [ + "# Using LoRAs\n**Ctrl + B to enable**\n\nFor the camera LoRA we recommend setting strength = 1\n\nYou can use LTX [Ready to use camera LoRAs](https://huggingface.co/collections/Lightricks/ltx-2)\n\n\n\n\nUse a second LoRa only when the details are important in the LoRa. \n\n## Training\nWe have made available a full trainer to help you to train your own LoRA. You can [find it here](https://github.com/Lightricks/LTX-2)." + ], + "color": "#432", + "bgcolor": "#653" + }, + { + "id": 5192, + "type": "LTXVGemmaEnhancePrompt", + "pos": [ + -1661.3146912335997, + 7116.792700532783 + ], + "size": [ + 361.2680247659398, + 425.1336513712222 + ], + "flags": { + "collapsed": true + }, + "order": 16, + "mode": 0, + "inputs": [ + { + "name": "clip", + "type": "CLIP", + "link": 13926 + }, + { + "name": "image", + "shape": 7, + "type": "IMAGE", + "link": 13927 + }, + { + "name": "prompt", + "type": "STRING", + "widget": { + "name": "prompt" + }, + "link": 13928 + } + ], + "outputs": [ + { + "name": "enhanced_prompt", + "type": "STRING", + "links": [ + 13925 + ] + } + ], + "title": "Enhancer", + "properties": { + "Node name for S&R": "LTXVGemmaEnhancePrompt" + }, + "widgets_values": [ + "", + "You are a Creative Assistant writing concise, action-focused image-to-video prompts. Given an image (first frame) and user Raw Input Prompt, generate a prompt to guide video generation from that image.\n\n#### Guidelines:\n- Analyze the Image: Identify Subject, Setting, Elements, Style and Mood.\n- Follow user Raw Input Prompt: Include all requested motion, actions, camera movements, audio, and details. If in conflict with the image, prioritize user request while maintaining visual consistency (describe transition from image to user's scene).\n- Describe only changes from the image: Don't reiterate established visual details. Inaccurate descriptions may cause scene cuts.\n- Active language: Use present-progressive verbs (\"is walking,\" \"speaking\"). If no action specified, describe natural movements.\n- Chronological flow: Use temporal connectors (\"as,\" \"then,\" \"while\").\n- Audio layer: Describe complete soundscape throughout the prompt alongside actions—NOT at the end. Align audio intensity with action tempo. Include natural background audio, ambient sounds, effects, speech or music (when requested). Be specific (e.g., \"soft footsteps on tile\") not vague (e.g., \"ambient sound\").\n- Speech (only when requested): Provide exact words in quotes with character's visual/voice characteristics (e.g., \"The tall man speaks in a low, gravelly voice\"), language if not English and accent if relevant. If general conversation mentioned without text, generate contextual quoted dialogue. (i.e., \"The man is talking\" input -> the output should include exact spoken words, like: \"The man is talking in an excited voice saying: 'You won't believe what I just saw!' His hands gesture expressively as he speaks, eyebrows raised with enthusiasm. The ambient sound of a quiet room underscores his animated speech.\")\n- Style: Include visual style at beginning: \"Style: