Greasy Fork

Adobe Firefly 下载

Adobe Firefly 直接提供下载按钮, 无水印

当前为 2023-06-05 提交的版本,查看 最新版本

// ==UserScript==
// @name         Adobe Firefly 下载
// @namespace    http://tampermonkey.net/
// @version      1.1
// @description  Adobe Firefly 直接提供下载按钮, 无水印
// @license      AGPL-3.0-or-later
// @author       Y.V
// @match        *://firefly.adobe.com/*
// @icon         https://firefly.adobe.com/adobe_favicon.ico
// @grant        GM_addStyle
// @grant        GM_xmlhttpRequest
// @grant        GM_registerMenuCommand
// @grant        unsafeWindow
// @require        https://code.jquery.com/jquery-3.6.0.min.js
// ==/UserScript==
(function () {
    "use strict";


    let init = false;
    let initCanvas = false;
    let initSpBtn = false;

    const main = () => {
        const newImgEls = $(".clio-thumbnail-wrapper img");
        const canvas = $("canvas")[0];
        const testEl = $("test")[0];

        // 生成式
        var generativeFill = $('sp-theme clio-inpaint')[0].shadowRoot

        if (newImgEls.length == 4) {

            if (!init) {
                newImgEls.each(function () {
                    const buttonEl = $("<button class='test'>");
                    const timestamp = Date.now();
                    const fileName = "image" + timestamp + ".jpg";
                    buttonEl.text("下载图片");
                    $(buttonEl).css({
                        "display": "inline-block",
                        "position": "absolute",
                        "bottom": "0px",
                        "right": "0px",
                        "padding": "10px",
                        "background-color": "#fff",
                        "border": "1px solid #ccc",
                        "border-radius": "5px",
                        "font-size": "14px",
                        "font-weight": "bold",
                        "text-transform": "uppercase",
                        "color": "#333",
                        "cursor": "pointer"
                    });

                    buttonEl.on("click", () => {
                        const linkEl = $("<a>");
                        linkEl.attr("href", $(this).attr("src"));
                        linkEl.attr("download", fileName);
                        linkEl.css("display", "none");
                        $("body").append(linkEl);
                        linkEl[0].click();
                        linkEl.remove();
                    });
                    $(this).parent().parent().parent().parent().append(buttonEl);
                });
                init = true;
            }
        }

        if (!testEl) {
            const buttonEl = $("<button class='test'>");
            buttonEl.text("下载图片");
            $(buttonEl).css({
                "display": "inline-block",
                "position": "absolute",
                "bottom": "0px",
                "right": "0px",
                "padding": "10px",
                "z-index": "9999",
                "background-color": "#fff",
                "border": "1px solid #ccc",
                "border-radius": "5px",
                "font-size": "14px",
                "font-weight": "bold",
                "text-transform": "uppercase",
                "color": "#333",
                "cursor": "pointer"
            });

            buttonEl.on("click", () => {


                // 将 canvas 转换为 data URL 格式
                const dataURL = canvas.toDataURL("image/png");
                // 创建一个临时链接并下载图片
                const link = $("<a>").attr({
                    "href": dataURL,
                    "download": "image" + Date.now() + ".png",
                }).appendTo("body");
                link[0].click();
                link.remove();
            });

            if (canvas) {
                canvas.parentElement.appendChild(buttonEl.get(0))
            }
        }

        if (generativeFill) {
            var b = $(generativeFill).find('main clio-md-stage')[0].shadowRoot
            var c = $(b).find('#container clio-md-compositor-canvas')[0].shadowRoot
            var gfCanvas = $(c).find('canvas')[0]


            const buttonEl = $("<button class='test'>");
            buttonEl.text("下载图片");
            $(buttonEl).css({
                "display": "inline-block",
                "position": "absolute",
                "bottom": "0px",
                "right": "0px",
                "padding": "10px",
                "z-index": "9999",
                "background-color": "#fff",
                "border": "1px solid #ccc",
                "border-radius": "5px",
                "font-size": "14px",
                "font-weight": "bold",
                "text-transform": "uppercase",
                "color": "#333",
                "cursor": "pointer"
            });

            buttonEl.on("click", () => {


                // 将 canvas 转换为 data URL 格式
                const dataURL = gfCanvas.toDataURL("image/png");
                // 创建一个临时链接并下载图片
                const link = $("<a>").attr({
                    "href": dataURL,
                    "download": "image" + Date.now() + ".png",
                }).appendTo("body");
                link[0].click();
                link.remove();
            });

            if (gfCanvas) {
                $(generativeFill)[0].appendChild(buttonEl.get(0))
            }

        }



    }

    let  id = setInterval(main, 1 * 1000);


    setInterval(()=>{
        const sp = $('sp-button')
        if (sp) {
            if (!initSpBtn) {
                sp.click(function(){
                    init = false;
                    $('.test').remove()
                })
            } else {
                initSpBtn = true
            }
        }
    }, 1000)





})();