File size: 14,165 Bytes
28ae1ac
 
 
 
c1e4742
79437ec
28ae1ac
83db00c
28ae1ac
312e1b4
83db00c
312e1b4
28ae1ac
 
 
 
79437ec
83db00c
 
604c899
83db00c
7ea316d
28ae1ac
 
 
 
83db00c
 
28ae1ac
83db00c
 
28ae1ac
83db00c
 
28ae1ac
 
83db00c
28ae1ac
 
 
 
 
 
 
 
 
 
 
 
83db00c
 
28ae1ac
 
 
 
 
 
 
83db00c
 
 
 
28ae1ac
 
 
83db00c
28ae1ac
62ddcce
28ae1ac
 
 
 
83db00c
28ae1ac
 
 
 
 
 
 
 
83db00c
28ae1ac
83db00c
 
28ae1ac
 
 
f333d01
83db00c
 
f333d01
 
28ae1ac
 
 
83db00c
28ae1ac
 
 
 
 
83db00c
 
 
28ae1ac
 
 
 
 
83db00c
28ae1ac
 
83db00c
28ae1ac
 
 
 
83db00c
28ae1ac
27ae0a2
83db00c
4d8e705
 
27ae0a2
28ae1ac
83db00c
28ae1ac
 
 
 
 
83db00c
28ae1ac
 
83db00c
28ae1ac
 
 
 
83db00c
9fcf338
 
28ae1ac
 
 
 
 
 
 
83db00c
 
28ae1ac
e92bb7f
 
83db00c
e92bb7f
79437ec
83db00c
 
e92bb7f
83db00c
 
e92bb7f
83db00c
 
e92bb7f
83db00c
 
e92bb7f
83db00c
604c899
e92bb7f
83db00c
 
e92bb7f
83db00c
 
 
 
 
e92bb7f
83db00c
e92bb7f
83db00c
 
e92bb7f
 
 
28ae1ac
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
<div class="app-shell">

    <div class="app-header">
        <div class="app-header-left">
            <div class="app-logo"><svg viewBox="0 0 24 24" fill="white" xmlns="http://www.w3.org/2000/svg"><path d="M12 23c-3.6 0-8-2.69-8-7.5 0-3.5 3-6.5 4.5-8 .27-.27.75-.08.75.28v2.44c0 .42.5.63.72.28C12.28 7.5 13 3 13 1c0-.42.48-.64.8-.35C18 4.5 20 9 20 12c0 5.5-3.5 11-8 11z"/></svg></div>
            <span class="app-title">高画質AI画像編集</span>
            <span class="app-badge">v1.1</span>
            <span class="app-badge fast">4ステップ高速</span>
        </div>
        <div class="app-header-right">
            <a href="https://huggingface.co/spaces/someone-in-the-world/Selectable-Face-Swap" target="_blank" class="app-header-link">こちらも試す:顔交換(選択式)&#8594;</a>
        </div>
    </div>

    <div class="app-notice">
        <ul class="notice-list">
            <li><a href="https://github.com/PRITHIVSAKTHIUR/FireRed-Image-Edit-1.0-Fast" target="_blank">FireRed-Image-Edit-1.0-Fast</a> をベースに、生成速度を維持しながら高画質 2K 出力画像の生成を目指しています。</li>
            <li>このスペースは開発中であり、共有 GPU インフラ上で動作するため、サービスの利用可否や応答時間は変動する場合があります。</li>
            <li>このスペースを利用する際は、<a href="https://huggingface.co/content-policy" target="_blank">Hugging Face コンテンツポリシー</a>に従ってください。</li>
            <li>アプリのパフォーマンス監視と品質向上のため、入力データ(画像・テキスト)および生成された出力はデバッグ目的のみに記録され、オペレーター(<a href="https://huggingface.co/someone-in-the-world" target="_blank">someone-in-the-world</a>)のみがアクセス可能なプライベートな Hugging Face データセットに保管され、設定された上限に達すると古いデータから順に自動削除されます。この処理は正当な利益(GDPR 第6条1項(f))に基づいており、第三者への提供・販売は行いません。データへのアクセスや削除を希望する場合は、このスペースのコミュニティタブでディスカッションを開いてください。詳細は下記の<a href="#privacy-policy" onclick="document.getElementById('privacy-policy').open=true">プライバシーポリシー</a>をご覧ください。</li>
            <li>ユーザーアカウントや個人を特定できる情報(IPアドレス・セッションデータ等)は収集しません。顔その他の生体情報を含む画像はアップロードしないでください。</li>
            <li>このスペースを利用することにより、生成したコンテンツに対する一切の責任はユーザー自身が負うものとします。適用される法律または <a href="https://huggingface.co/content-policy" target="_blank">Hugging Face コンテンツポリシー</a>に違反するコンテンツを生成しないでください。</li>
        </ul>
    </div>

    <div class="app-toolbar">
        <button id="tb-upload" class="modern-tb-btn" title="画像をアップロード">
            <svg class="tb-svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 15v4a2 2 0 01-2 2H5a2 2 0 01-2-2v-4"/><polyline points="17 8 12 3 7 8"/><line x1="12" y1="3" x2="12" y2="15"/></svg><span class="tb-label">アップロード</span>
        </button>
        <button id="tb-remove" class="modern-tb-btn" title="選択した画像を削除">
            <svg class="tb-svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"/><line x1="15" y1="9" x2="9" y2="15"/><line x1="9" y1="9" x2="15" y2="15"/></svg><span class="tb-label">削除</span>
        </button>
        <button id="tb-clear" class="modern-tb-btn" title="全画像をクリア">
            <svg class="tb-svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="3 6 5 6 21 6"/><path d="M19 6v14a2 2 0 01-2 2H7a2 2 0 01-2-2V6m3 0V4a2 2 0 012-2h4a2 2 0 012 2v2"/><line x1="10" y1="11" x2="10" y2="17"/><line x1="14" y1="11" x2="14" y2="17"/></svg><span class="tb-label">全削除</span>
        </button>
        <div class="tb-sep"></div>
        <span id="tb-image-count" class="tb-info">画像なし</span>
    </div>

    <div class="app-main-row">
        <div class="app-main-left">
            <div id="gallery-drop-zone">
                <div id="upload-prompt" class="upload-prompt-modern">
                    <div id="upload-click-area" class="upload-click-area">
                        <svg viewBox="0 0 80 80" fill="none" xmlns="http://www.w3.org/2000/svg">
                            <rect x="8" y="14" width="64" height="52" rx="6" fill="none" stroke="#1E90FF" stroke-width="2" stroke-dasharray="4 3"/>
                            <polygon points="12,62 30,40 42,50 54,34 68,62" fill="rgba(30,144,255,0.15)" stroke="#1E90FF" stroke-width="1.5"/>
                            <circle cx="28" cy="30" r="6" fill="rgba(30,144,255,0.2)" stroke="#1E90FF" stroke-width="1.5"/>
                        </svg>
                        <span class="upload-main-text">クリックまたはドラッグして画像を追加</span>
                        <span class="upload-sub-text">参照ベースの編集や誘導操作のために複数の画像をサポート</span>
                    </div>
                </div>
                <input id="custom-file-input" type="file" accept="image/*" multiple style="display:none;" />
                <div id="image-gallery-grid" class="image-gallery-grid" style="display:none;"></div>
            </div>

            <div class="hint-bar">
                <b>アップロード:</b>クリックまたはドラッグして追加 &nbsp;&middot;&nbsp;
                <b>複数画像:</b>参照ベースの編集に対応 &nbsp;&middot;&nbsp;
                <kbd>削除</kbd> で選択画像を削除 &nbsp;&middot;&nbsp;
                <kbd>全削除</kbd> ですべて削除
            </div>

            <div class="suggestions-section">
                <div class="suggestions-title">クイックプロンプト</div>
                <div class="suggestions-wrap">
                    {suggestion_chips_html}
                </div>
            </div>

            <div class="examples-section">
                <div class="examples-title">クイック例</div>
                <div class="examples-scroll">
                    {example_cards_html}
                </div>
            </div>
        </div>

        <div class="app-main-right">
            <div class="panel-card">
                <div class="panel-card-title">編集指示</div>
                <div class="panel-card-body">
                    <label class="modern-label" for="custom-prompt-input">プロンプト</label>
                    <textarea id="custom-prompt-input" class="modern-textarea" rows="3" placeholder="例:アニメ風に変換、アップスケール、照明を変更..."></textarea>
                </div>
            </div>

            <div class="mode-toggle-wrap">
                <button id="mode-btn-fast" class="mode-btn mode-btn-active" onclick="window.__setMode('fast')">高速</button>
                <button id="mode-btn-hd" class="mode-btn" onclick="window.__setMode('high_detail')">高精細</button>
            </div>

            <div style="padding:12px 20px;">
                <button id="custom-run-btn" class="btn-run">
                    <svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 23c-3.6 0-8-2.69-8-7.5 0-3.5 3-6.5 4.5-8 .27-.27.75-.08.75.28v2.44c0 .42.5.63.72.28C12.28 7.5 13 3 13 1c0-.42.48-.64.8-.35C18 4.5 20 9 20 12c0 5.5-3.5 11-8 11z"/></svg>
                    <span id="run-btn-label">画像を編集</span>
                </button>
            </div>

            <div class="output-frame" style="flex:1">
                <div class="out-title">
                    <span>出力</span>
                    <span id="dl-btn-output" class="out-download-btn" title="ダウンロード">
                        <svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 16l-5-5h3V4h4v7h3l-5 5z"/><path d="M20 18H4v2h16v-2z"/></svg> 保存
                    </span>
                </div>
                <div class="out-body" id="output-image-container">
                    <div class="modern-loader" id="output-loader">
                        <div class="loader-spinner"></div>
                        <div class="loader-text">画像を処理中...</div>
                        <div class="loader-bar-track"><div class="loader-bar-fill"></div></div>
                    </div>
                    <div class="out-placeholder" id="output-placeholder">結果がここに表示されます</div>
                </div>
            </div>

            <div class="settings-group">
                <div class="settings-group-title">詳細設定</div>
                <div class="settings-group-body">
                    <div class="slider-row">
                        <label>GPU時間(秒)</label>
                        <input type="range" id="custom-gpu-duration" min="10" max="120" step="5" value="15">
                        <span class="slider-val" id="custom-gpu-duration-val">15</span>
                    </div>
                    <div class="slider-row">
                        <label>シード</label>
                        <input type="range" id="custom-seed" min="0" max="2147483647" step="1" value="0">
                        <span class="slider-val" id="custom-seed-val">0</span>
                    </div>
                    <div class="checkbox-row">
                        <input type="checkbox" id="custom-randomize" checked>
                        <label for="custom-randomize">シードをランダム化</label>
                    </div>
                    <div class="slider-row">
                        <label>ガイダンス</label>
                        <input type="range" id="custom-guidance" min="1" max="10" step="0.1" value="1.0">
                        <span class="slider-val" id="custom-guidance-val">1.0</span>
                    </div>
                    <div class="slider-row">
                        <label>ステップ数</label>
                        <input type="range" id="custom-steps" min="1" max="50" step="1" value="3">
                        <span class="slider-val" id="custom-steps-val">3</span>
                    </div>
                </div>
            </div>
        </div>
    </div>

    <div class="app-statusbar">
        <div class="sb-section" id="sb-image-count">画像がアップロードされていません</div>
        <div class="sb-section sb-fixed">準備完了</div>
    </div>

    <details id="privacy-policy" class="privacy-details">
        <summary>プライバシーポリシー</summary>
        <div class="privacy-body">
            <p><strong>スペース:</strong>高画質AI画像編集<br>
            <strong>運営者:</strong>Hugging Face の <a href="https://huggingface.co/someone-in-the-world" target="_blank">someone-in-the-world</a><br>
            <strong>最終更新:</strong>2026-05-16</p>

            <h4>収集するデータ</h4>
            <p>リクエストを送信すると、以下の情報が記録されます:入力画像とテキストプロンプト、生成された出力画像、推論パラメータ(シード、ステップ数、ガイダンススケール)、タイムスタンプ、処理時間、および成功・エラーの状態。ユーザーアカウント、IPアドレス、セッションデータは収集しません。</p>

            <h4>収集の目的</h4>
            <p>アプリのパフォーマンスのデバッグと監視のみを目的としています(正当な利益、GDPR 第6条1項(f))。</p>

            <h4>保管場所</h4>
            <p>運営者のみがアクセス可能なプライベートな Hugging Face データセットに保管されます。データは第三者への提供・販売を行いません。</p>

            <h4>保管期間</h4>
            <p>設定された上限に達すると、古いデータから順に自動的に削除されます。運営者が手動でデータを削除する場合もあります。</p>

            <h4>お客様の権利</h4>
            <p>このスペースの利用および画像の送信は完全に任意です。GDPR に基づき、以下の権利があります:</p>
            <ul>
                <li><strong>アクセス権</strong>(第15条):保有するデータのコピーを請求する権利</li>
                <li><strong>消去権</strong>(第17条):データの削除を請求する権利</li>
                <li><strong>処理制限権</strong>(第18条):処理の制限を請求する権利</li>
                <li><strong>データポータビリティ権</strong>(第20条):機械可読形式でデータを受け取る権利</li>
                <li><strong>異議申立権</strong>(第21条):正当な利益に基づく処理に異議を申し立てる権利</li>
            </ul>
            <p>これらの権利を行使するには、このスペースのコミュニティタブでディスカッションを開いてください。</p>

            <h4>監督機関への申立て</h4>
            <p>各国のデータ保護機関(例:ICO(英国)、CNIL(フランス)、BfDI(ドイツ)、または <a href="https://www.edpb.europa.eu/about-edpb/about-edpb/members_en" target="_blank">edpb.europa.eu</a> に掲載されている EU 加盟国の機関)に苦情を申し立てる権利があります。</p>
        </div>
    </details>

</div>